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

package replay

import (
	_ "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"
	_ "go.buf.build/protocolbuffers/go/linuxgit/tidbcloud/base"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	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)
)

// ReplayDesiredState represents the user-desired state of the replay
type ReplayDesiredState int32

const (
	ReplayDesiredState_REPLAY_DESIRED_STATE_UNSPECIFIED ReplayDesiredState = 0
	ReplayDesiredState_REPLAY_DESIRED_STATE_DEPLOY      ReplayDesiredState = 1 // User wants to deploy
	ReplayDesiredState_REPLAY_DESIRED_STATE_ACTIVE      ReplayDesiredState = 2 // User wants it active
	ReplayDesiredState_REPLAY_DESIRED_STATE_PAUSE       ReplayDesiredState = 3 // User wants to pause
)

// Enum value maps for ReplayDesiredState.
var (
	ReplayDesiredState_name = map[int32]string{
		0: "REPLAY_DESIRED_STATE_UNSPECIFIED",
		1: "REPLAY_DESIRED_STATE_DEPLOY",
		2: "REPLAY_DESIRED_STATE_ACTIVE",
		3: "REPLAY_DESIRED_STATE_PAUSE",
	}
	ReplayDesiredState_value = map[string]int32{
		"REPLAY_DESIRED_STATE_UNSPECIFIED": 0,
		"REPLAY_DESIRED_STATE_DEPLOY":      1,
		"REPLAY_DESIRED_STATE_ACTIVE":      2,
		"REPLAY_DESIRED_STATE_PAUSE":       3,
	}
)

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

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

func (ReplayDesiredState) Descriptor() protoreflect.EnumDescriptor {
	return file_replay_replay_proto_enumTypes[0].Descriptor()
}

func (ReplayDesiredState) Type() protoreflect.EnumType {
	return &file_replay_replay_proto_enumTypes[0]
}

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

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

// ReplayCurrentState represents the actual runtime state of the replay
type ReplayCurrentState int32

const (
	ReplayCurrentState_REPLAY_CURRENT_STATE_UNSPECIFIED ReplayCurrentState = 0
	ReplayCurrentState_REPLAY_CURRENT_STATE_PENDING     ReplayCurrentState = 1 // Waiting to start
	ReplayCurrentState_REPLAY_CURRENT_STATE_DEPLOYING   ReplayCurrentState = 2 // Deploying resources
	ReplayCurrentState_REPLAY_CURRENT_STATE_DEPLOYED    ReplayCurrentState = 3 // Resources deployed
	ReplayCurrentState_REPLAY_CURRENT_STATE_STARTING    ReplayCurrentState = 4 // Starting replay
	ReplayCurrentState_REPLAY_CURRENT_STATE_RUNNING     ReplayCurrentState = 5 // Running replay
	ReplayCurrentState_REPLAY_CURRENT_STATE_PAUSING     ReplayCurrentState = 6 // Pausing replay
	ReplayCurrentState_REPLAY_CURRENT_STATE_PAUSED      ReplayCurrentState = 7 // Paused
	ReplayCurrentState_REPLAY_CURRENT_STATE_DELETING    ReplayCurrentState = 8 // Deleting resources
	ReplayCurrentState_REPLAY_CURRENT_STATE_DELETED     ReplayCurrentState = 9 // Deleted
)

// Enum value maps for ReplayCurrentState.
var (
	ReplayCurrentState_name = map[int32]string{
		0: "REPLAY_CURRENT_STATE_UNSPECIFIED",
		1: "REPLAY_CURRENT_STATE_PENDING",
		2: "REPLAY_CURRENT_STATE_DEPLOYING",
		3: "REPLAY_CURRENT_STATE_DEPLOYED",
		4: "REPLAY_CURRENT_STATE_STARTING",
		5: "REPLAY_CURRENT_STATE_RUNNING",
		6: "REPLAY_CURRENT_STATE_PAUSING",
		7: "REPLAY_CURRENT_STATE_PAUSED",
		8: "REPLAY_CURRENT_STATE_DELETING",
		9: "REPLAY_CURRENT_STATE_DELETED",
	}
	ReplayCurrentState_value = map[string]int32{
		"REPLAY_CURRENT_STATE_UNSPECIFIED": 0,
		"REPLAY_CURRENT_STATE_PENDING":     1,
		"REPLAY_CURRENT_STATE_DEPLOYING":   2,
		"REPLAY_CURRENT_STATE_DEPLOYED":    3,
		"REPLAY_CURRENT_STATE_STARTING":    4,
		"REPLAY_CURRENT_STATE_RUNNING":     5,
		"REPLAY_CURRENT_STATE_PAUSING":     6,
		"REPLAY_CURRENT_STATE_PAUSED":      7,
		"REPLAY_CURRENT_STATE_DELETING":    8,
		"REPLAY_CURRENT_STATE_DELETED":     9,
	}
)

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

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

func (ReplayCurrentState) Descriptor() protoreflect.EnumDescriptor {
	return file_replay_replay_proto_enumTypes[1].Descriptor()
}

func (ReplayCurrentState) Type() protoreflect.EnumType {
	return &file_replay_replay_proto_enumTypes[1]
}

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

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

// ReplayPhase represents the phase in replay status
type ReplayPhase int32

const (
	ReplayPhase_REPLAY_PHASE_UNSPECIFIED ReplayPhase = 0
	ReplayPhase_REPLAY_PHASE_PENDING     ReplayPhase = 1 // Waiting to start
	ReplayPhase_REPLAY_PHASE_CREATING    ReplayPhase = 2 // Creating resources
	ReplayPhase_REPLAY_PHASE_RUNNING     ReplayPhase = 3 // Running replay
	ReplayPhase_REPLAY_PHASE_STOPPED     ReplayPhase = 4 // Stopped
	ReplayPhase_REPLAY_PHASE_DELETED     ReplayPhase = 5 // Deleted
	ReplayPhase_REPLAY_PHASE_FAILED      ReplayPhase = 6 // Failed
)

// Enum value maps for ReplayPhase.
var (
	ReplayPhase_name = map[int32]string{
		0: "REPLAY_PHASE_UNSPECIFIED",
		1: "REPLAY_PHASE_PENDING",
		2: "REPLAY_PHASE_CREATING",
		3: "REPLAY_PHASE_RUNNING",
		4: "REPLAY_PHASE_STOPPED",
		5: "REPLAY_PHASE_DELETED",
		6: "REPLAY_PHASE_FAILED",
	}
	ReplayPhase_value = map[string]int32{
		"REPLAY_PHASE_UNSPECIFIED": 0,
		"REPLAY_PHASE_PENDING":     1,
		"REPLAY_PHASE_CREATING":    2,
		"REPLAY_PHASE_RUNNING":     3,
		"REPLAY_PHASE_STOPPED":     4,
		"REPLAY_PHASE_DELETED":     5,
		"REPLAY_PHASE_FAILED":      6,
	}
)

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

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

func (ReplayPhase) Descriptor() protoreflect.EnumDescriptor {
	return file_replay_replay_proto_enumTypes[2].Descriptor()
}

func (ReplayPhase) Type() protoreflect.EnumType {
	return &file_replay_replay_proto_enumTypes[2]
}

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

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

// ReplayTaskPhase represents the phase of a replay task
type ReplayTaskPhase int32

const (
	ReplayTaskPhase_REPLAY_TASK_PHASE_UNSPECIFIED ReplayTaskPhase = 0
	ReplayTaskPhase_REPLAY_TASK_PHASE_PENDING     ReplayTaskPhase = 1
	ReplayTaskPhase_REPLAY_TASK_PHASE_RUNNING     ReplayTaskPhase = 2
	ReplayTaskPhase_REPLAY_TASK_PHASE_STOPPED     ReplayTaskPhase = 3
	ReplayTaskPhase_REPLAY_TASK_PHASE_DELETED     ReplayTaskPhase = 4
)

// Enum value maps for ReplayTaskPhase.
var (
	ReplayTaskPhase_name = map[int32]string{
		0: "REPLAY_TASK_PHASE_UNSPECIFIED",
		1: "REPLAY_TASK_PHASE_PENDING",
		2: "REPLAY_TASK_PHASE_RUNNING",
		3: "REPLAY_TASK_PHASE_STOPPED",
		4: "REPLAY_TASK_PHASE_DELETED",
	}
	ReplayTaskPhase_value = map[string]int32{
		"REPLAY_TASK_PHASE_UNSPECIFIED": 0,
		"REPLAY_TASK_PHASE_PENDING":     1,
		"REPLAY_TASK_PHASE_RUNNING":     2,
		"REPLAY_TASK_PHASE_STOPPED":     3,
		"REPLAY_TASK_PHASE_DELETED":     4,
	}
)

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

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

func (ReplayTaskPhase) Descriptor() protoreflect.EnumDescriptor {
	return file_replay_replay_proto_enumTypes[3].Descriptor()
}

func (ReplayTaskPhase) Type() protoreflect.EnumType {
	return &file_replay_replay_proto_enumTypes[3]
}

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

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

type CreateReplayRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	OrgId         string                 `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"`
	ClusterId     string                 `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	Replay        *ReplaySpec            `protobuf:"bytes,3,opt,name=replay,proto3" json:"replay,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CreateReplayRequest) ProtoMessage() {}

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

func (x *CreateReplayRequest) GetOrgId() string {
	if x != nil {
		return x.OrgId
	}
	return ""
}

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

func (x *CreateReplayRequest) GetReplay() *ReplaySpec {
	if x != nil {
		return x.Replay
	}
	return nil
}

type CreateReplayResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ReplayId      string                 `protobuf:"bytes,1,opt,name=replay_id,json=replayId,proto3" json:"replay_id,omitempty"`
	Replay        *Replay                `protobuf:"bytes,2,opt,name=replay,proto3" json:"replay,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*CreateReplayResponse) ProtoMessage() {}

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

func (x *CreateReplayResponse) GetReplayId() string {
	if x != nil {
		return x.ReplayId
	}
	return ""
}

func (x *CreateReplayResponse) GetReplay() *Replay {
	if x != nil {
		return x.Replay
	}
	return nil
}

type ListReplaysRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	OrgId         string                 `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"`
	ClusterId     string                 `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	PageSize      int32                  `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	Page          int32                  `protobuf:"varint,4,opt,name=page,proto3" json:"page,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListReplaysRequest) ProtoMessage() {}

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

func (x *ListReplaysRequest) GetOrgId() string {
	if x != nil {
		return x.OrgId
	}
	return ""
}

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

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

func (x *ListReplaysRequest) GetPage() int32 {
	if x != nil {
		return x.Page
	}
	return 0
}

type ListReplaysResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Replays       []*Replay              `protobuf:"bytes,1,rep,name=replays,proto3" json:"replays,omitempty"`
	TotalSize     int32                  `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListReplaysResponse) Reset() {
	*x = ListReplaysResponse{}
	mi := &file_replay_replay_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListReplaysResponse) ProtoMessage() {}

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

func (x *ListReplaysResponse) GetReplays() []*Replay {
	if x != nil {
		return x.Replays
	}
	return nil
}

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

type GetReplayRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	OrgId         string                 `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"`
	ClusterId     string                 `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ReplayId      string                 `protobuf:"bytes,3,opt,name=replay_id,json=replayId,proto3" json:"replay_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetReplayRequest) Reset() {
	*x = GetReplayRequest{}
	mi := &file_replay_replay_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetReplayRequest) ProtoMessage() {}

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

func (x *GetReplayRequest) GetOrgId() string {
	if x != nil {
		return x.OrgId
	}
	return ""
}

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

func (x *GetReplayRequest) GetReplayId() string {
	if x != nil {
		return x.ReplayId
	}
	return ""
}

type GetReplayResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Replay        *Replay                `protobuf:"bytes,1,opt,name=replay,proto3" json:"replay,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetReplayResponse) Reset() {
	*x = GetReplayResponse{}
	mi := &file_replay_replay_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*GetReplayResponse) ProtoMessage() {}

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

func (x *GetReplayResponse) GetReplay() *Replay {
	if x != nil {
		return x.Replay
	}
	return nil
}

type UpdateReplayRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	OrgId         string                 `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"`
	ClusterId     string                 `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ReplayId      string                 `protobuf:"bytes,3,opt,name=replay_id,json=replayId,proto3" json:"replay_id,omitempty"`
	Replay        *ReplaySpec            `protobuf:"bytes,4,opt,name=replay,proto3" json:"replay,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*UpdateReplayRequest) ProtoMessage() {}

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

func (x *UpdateReplayRequest) GetOrgId() string {
	if x != nil {
		return x.OrgId
	}
	return ""
}

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

func (x *UpdateReplayRequest) GetReplayId() string {
	if x != nil {
		return x.ReplayId
	}
	return ""
}

func (x *UpdateReplayRequest) GetReplay() *ReplaySpec {
	if x != nil {
		return x.Replay
	}
	return nil
}

type UpdateReplayResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Replay        *Replay                `protobuf:"bytes,1,opt,name=replay,proto3" json:"replay,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*UpdateReplayResponse) ProtoMessage() {}

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

func (x *UpdateReplayResponse) GetReplay() *Replay {
	if x != nil {
		return x.Replay
	}
	return nil
}

type DeleteReplayRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	OrgId         string                 `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"`
	ClusterId     string                 `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ReplayId      string                 `protobuf:"bytes,3,opt,name=replay_id,json=replayId,proto3" json:"replay_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DeleteReplayRequest) ProtoMessage() {}

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

func (x *DeleteReplayRequest) GetOrgId() string {
	if x != nil {
		return x.OrgId
	}
	return ""
}

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

func (x *DeleteReplayRequest) GetReplayId() string {
	if x != nil {
		return x.ReplayId
	}
	return ""
}

type StartReplayRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	OrgId         string                 `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"`
	ClusterId     string                 `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ReplayId      string                 `protobuf:"bytes,3,opt,name=replay_id,json=replayId,proto3" json:"replay_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StartReplayRequest) ProtoMessage() {}

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

func (x *StartReplayRequest) GetOrgId() string {
	if x != nil {
		return x.OrgId
	}
	return ""
}

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

func (x *StartReplayRequest) GetReplayId() string {
	if x != nil {
		return x.ReplayId
	}
	return ""
}

type StopReplayRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	OrgId         string                 `protobuf:"bytes,1,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"`
	ClusterId     string                 `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	ReplayId      string                 `protobuf:"bytes,3,opt,name=replay_id,json=replayId,proto3" json:"replay_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StopReplayRequest) ProtoMessage() {}

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

func (x *StopReplayRequest) GetOrgId() string {
	if x != nil {
		return x.OrgId
	}
	return ""
}

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

func (x *StopReplayRequest) GetReplayId() string {
	if x != nil {
		return x.ReplayId
	}
	return ""
}

// ReplaySpec defines the specification for creating/updating a replay
type ReplaySpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// source_cluster_id is the cluster to replay audit logs from
	SourceClusterId string `protobuf:"bytes,1,opt,name=source_cluster_id,json=sourceClusterId,proto3" json:"source_cluster_id,omitempty"`
	// target_cluster_id is the cluster to replay audit logs to
	TargetClusterId string `protobuf:"bytes,2,opt,name=target_cluster_id,json=targetClusterId,proto3" json:"target_cluster_id,omitempty"`
	// replay_tasks contains advanced replay task configurations
	ReplayTasks []*ReplayTask `protobuf:"bytes,3,rep,name=replay_tasks,json=replayTasks,proto3" json:"replay_tasks,omitempty"`
	// replay_config contains common replay configuration
	ReplayConfig *ReplayCommonConfig `protobuf:"bytes,4,opt,name=replay_config,json=replayConfig,proto3" json:"replay_config,omitempty"`
	// replicas specifies the number of replicas (default: 1)
	Replicas int32 `protobuf:"varint,5,opt,name=replicas,proto3" json:"replicas,omitempty"`
	// task_resources defines resource allocation for replay tasks
	TaskResources *ReplayTaskResources `protobuf:"bytes,6,opt,name=task_resources,json=taskResources,proto3" json:"task_resources,omitempty"`
	// replay_image specifies the container image for replay tasks
	ReplayImage string `protobuf:"bytes,7,opt,name=replay_image,json=replayImage,proto3" json:"replay_image,omitempty"`
	// source_audit_credential specifies the audit log access credential
	SourceAuditCredential *AuditLogAddr `protobuf:"bytes,8,opt,name=source_audit_credential,json=sourceAuditCredential,proto3" json:"source_audit_credential,omitempty"`
	// cloud_provider is the cloud provider (aws, gcp, azure, aliyun)
	CloudProvider string `protobuf:"bytes,9,opt,name=cloud_provider,json=cloudProvider,proto3" json:"cloud_provider,omitempty"`
	// region is the cloud region
	Region string `protobuf:"bytes,10,opt,name=region,proto3" json:"region,omitempty"`
	// project id
	ProjectId     string `protobuf:"bytes,11,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReplaySpec) ProtoMessage() {}

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

func (x *ReplaySpec) GetSourceClusterId() string {
	if x != nil {
		return x.SourceClusterId
	}
	return ""
}

func (x *ReplaySpec) GetTargetClusterId() string {
	if x != nil {
		return x.TargetClusterId
	}
	return ""
}

func (x *ReplaySpec) GetReplayTasks() []*ReplayTask {
	if x != nil {
		return x.ReplayTasks
	}
	return nil
}

func (x *ReplaySpec) GetReplayConfig() *ReplayCommonConfig {
	if x != nil {
		return x.ReplayConfig
	}
	return nil
}

func (x *ReplaySpec) GetReplicas() int32 {
	if x != nil {
		return x.Replicas
	}
	return 0
}

func (x *ReplaySpec) GetTaskResources() *ReplayTaskResources {
	if x != nil {
		return x.TaskResources
	}
	return nil
}

func (x *ReplaySpec) GetReplayImage() string {
	if x != nil {
		return x.ReplayImage
	}
	return ""
}

func (x *ReplaySpec) GetSourceAuditCredential() *AuditLogAddr {
	if x != nil {
		return x.SourceAuditCredential
	}
	return nil
}

func (x *ReplaySpec) GetCloudProvider() string {
	if x != nil {
		return x.CloudProvider
	}
	return ""
}

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

func (x *ReplaySpec) GetProjectId() string {
	if x != nil {
		return x.ProjectId
	}
	return ""
}

// Replay represents a complete replay task with status
type Replay struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// replay_id is the unique identifier for the replay task
	ReplayId string `protobuf:"bytes,1,opt,name=replay_id,json=replayId,proto3" json:"replay_id,omitempty"`
	// org_id is the organization ID
	OrgId string `protobuf:"bytes,2,opt,name=org_id,json=orgId,proto3" json:"org_id,omitempty"`
	// project_id is the project ID
	ProjectId string `protobuf:"bytes,3,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// cluster_id is the target cluster ID (same as target_cluster_id in spec)
	ClusterId string `protobuf:"bytes,4,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"`
	// desired_state is the user-desired state
	DesiredState ReplayDesiredState `protobuf:"varint,5,opt,name=desired_state,json=desiredState,proto3,enum=replay.ReplayDesiredState" json:"desired_state,omitempty"`
	// current_state is the actual runtime state
	CurrentState ReplayCurrentState `protobuf:"varint,6,opt,name=current_state,json=currentState,proto3,enum=replay.ReplayCurrentState" json:"current_state,omitempty"`
	// source_cluster_id is the cluster to replay audit logs from
	SourceClusterId string `protobuf:"bytes,7,opt,name=source_cluster_id,json=sourceClusterId,proto3" json:"source_cluster_id,omitempty"`
	// cloud_provider is the cloud provider (aws/gcp/azure/aliyun)
	CloudProvider string `protobuf:"bytes,8,opt,name=cloud_provider,json=cloudProvider,proto3" json:"cloud_provider,omitempty"`
	// region is the deployment region
	Region string `protobuf:"bytes,18,opt,name=region,proto3" json:"region,omitempty"`
	// replay_tasks contains the replay task list
	ReplayTasks []*ReplayTask `protobuf:"bytes,9,rep,name=replay_tasks,json=replayTasks,proto3" json:"replay_tasks,omitempty"`
	// replay_config contains common replay configuration
	ReplayConfig *ReplayCommonConfig `protobuf:"bytes,10,opt,name=replay_config,json=replayConfig,proto3" json:"replay_config,omitempty"`
	// replicas specifies the number of replicas
	Replicas int32 `protobuf:"varint,11,opt,name=replicas,proto3" json:"replicas,omitempty"`
	// task_resources defines resource allocation
	TaskResources *ReplayTaskResources `protobuf:"bytes,12,opt,name=task_resources,json=taskResources,proto3" json:"task_resources,omitempty"`
	// replay_image specifies the container image
	ReplayImage string `protobuf:"bytes,13,opt,name=replay_image,json=replayImage,proto3" json:"replay_image,omitempty"`
	// source_audit_credential specifies audit log access credential
	SourceAuditCredential *AuditLogAddr `protobuf:"bytes,14,opt,name=source_audit_credential,json=sourceAuditCredential,proto3" json:"source_audit_credential,omitempty"`
	// replay_status contains detailed status information
	ReplayStatus *ReplayStatus `protobuf:"bytes,15,opt,name=replay_status,json=replayStatus,proto3" json:"replay_status,omitempty"`
	// created_at is the creation timestamp
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// updated_at is the last update timestamp
	UpdatedAt     *timestamppb.Timestamp `protobuf:"bytes,17,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Replay) ProtoMessage() {}

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

func (x *Replay) GetReplayId() string {
	if x != nil {
		return x.ReplayId
	}
	return ""
}

func (x *Replay) GetOrgId() string {
	if x != nil {
		return x.OrgId
	}
	return ""
}

func (x *Replay) GetProjectId() string {
	if x != nil {
		return x.ProjectId
	}
	return ""
}

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

func (x *Replay) GetDesiredState() ReplayDesiredState {
	if x != nil {
		return x.DesiredState
	}
	return ReplayDesiredState_REPLAY_DESIRED_STATE_UNSPECIFIED
}

func (x *Replay) GetCurrentState() ReplayCurrentState {
	if x != nil {
		return x.CurrentState
	}
	return ReplayCurrentState_REPLAY_CURRENT_STATE_UNSPECIFIED
}

func (x *Replay) GetSourceClusterId() string {
	if x != nil {
		return x.SourceClusterId
	}
	return ""
}

func (x *Replay) GetCloudProvider() string {
	if x != nil {
		return x.CloudProvider
	}
	return ""
}

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

func (x *Replay) GetReplayTasks() []*ReplayTask {
	if x != nil {
		return x.ReplayTasks
	}
	return nil
}

func (x *Replay) GetReplayConfig() *ReplayCommonConfig {
	if x != nil {
		return x.ReplayConfig
	}
	return nil
}

func (x *Replay) GetReplicas() int32 {
	if x != nil {
		return x.Replicas
	}
	return 0
}

func (x *Replay) GetTaskResources() *ReplayTaskResources {
	if x != nil {
		return x.TaskResources
	}
	return nil
}

func (x *Replay) GetReplayImage() string {
	if x != nil {
		return x.ReplayImage
	}
	return ""
}

func (x *Replay) GetSourceAuditCredential() *AuditLogAddr {
	if x != nil {
		return x.SourceAuditCredential
	}
	return nil
}

func (x *Replay) GetReplayStatus() *ReplayStatus {
	if x != nil {
		return x.ReplayStatus
	}
	return nil
}

func (x *Replay) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Replay) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

// ReplayCommonConfig contains common configuration for all replay tasks
type ReplayCommonConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// replay_config contains replay-specific configurations
	ReplayConfig *ReplayConfig `protobuf:"bytes,1,opt,name=replay_config,json=replayConfig,proto3" json:"replay_config,omitempty"`
	// username for database connection
	Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	// password for database connection (will be encrypted)
	Password      string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReplayCommonConfig) ProtoMessage() {}

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

func (x *ReplayCommonConfig) GetReplayConfig() *ReplayConfig {
	if x != nil {
		return x.ReplayConfig
	}
	return nil
}

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

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

// ReplayConfig contains detailed replay configuration
type ReplayConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// replay_start_time is the start time in the upstream cluster
	ReplayStartTime string `protobuf:"bytes,1,opt,name=replay_start_time,json=replayStartTime,proto3" json:"replay_start_time,omitempty"`
	// run_start_time is the local time when replay starts
	RunStartTime string `protobuf:"bytes,2,opt,name=run_start_time,json=runStartTime,proto3" json:"run_start_time,omitempty"`
	// replay_index specifies the replay index
	ReplayIndex int32 `protobuf:"varint,3,opt,name=replay_index,json=replayIndex,proto3" json:"replay_index,omitempty"`
	// custom_arguments contains custom key-value arguments
	CustomArguments map[string]string `protobuf:"bytes,4,rep,name=custom_arguments,json=customArguments,proto3" json:"custom_arguments,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// format of the audit log
	Format string `protobuf:"bytes,5,opt,name=format,proto3" json:"format,omitempty"`
	// ignore_errs ignores errors during replay
	IgnoreErrs bool `protobuf:"varint,6,opt,name=ignore_errs,json=ignoreErrs,proto3" json:"ignore_errs,omitempty"`
	// ps_close closes prepared statements
	PsClose string `protobuf:"bytes,7,opt,name=ps_close,json=psClose,proto3" json:"ps_close,omitempty"`
	// buf_size specifies the buffer size
	BufSize int32 `protobuf:"varint,8,opt,name=buf_size,json=bufSize,proto3" json:"buf_size,omitempty"`
	// speed specifies the replay speed (e.g., "1x", "2x", "0.5x")
	Speed string `protobuf:"bytes,9,opt,name=speed,proto3" json:"speed,omitempty"`
	// dynamic_input enables dynamic input mode
	DynamicInput bool `protobuf:"varint,10,opt,name=dynamic_input,json=dynamicInput,proto3" json:"dynamic_input,omitempty"`
	// read_only enables read-only mode
	ReadOnly      bool `protobuf:"varint,11,opt,name=read_only,json=readOnly,proto3" json:"read_only,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReplayConfig) ProtoMessage() {}

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

func (x *ReplayConfig) GetReplayStartTime() string {
	if x != nil {
		return x.ReplayStartTime
	}
	return ""
}

func (x *ReplayConfig) GetRunStartTime() string {
	if x != nil {
		return x.RunStartTime
	}
	return ""
}

func (x *ReplayConfig) GetReplayIndex() int32 {
	if x != nil {
		return x.ReplayIndex
	}
	return 0
}

func (x *ReplayConfig) GetCustomArguments() map[string]string {
	if x != nil {
		return x.CustomArguments
	}
	return nil
}

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

func (x *ReplayConfig) GetIgnoreErrs() bool {
	if x != nil {
		return x.IgnoreErrs
	}
	return false
}

func (x *ReplayConfig) GetPsClose() string {
	if x != nil {
		return x.PsClose
	}
	return ""
}

func (x *ReplayConfig) GetBufSize() int32 {
	if x != nil {
		return x.BufSize
	}
	return 0
}

func (x *ReplayConfig) GetSpeed() string {
	if x != nil {
		return x.Speed
	}
	return ""
}

func (x *ReplayConfig) GetDynamicInput() bool {
	if x != nil {
		return x.DynamicInput
	}
	return false
}

func (x *ReplayConfig) GetReadOnly() bool {
	if x != nil {
		return x.ReadOnly
	}
	return false
}

// ReplayTaskResources defines resource requirements for replay tasks
type ReplayTaskResources struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// instance_type specifies the instance type (e.g., "c6i.8xlarge")
	InstanceType string `protobuf:"bytes,1,opt,name=instance_type,json=instanceType,proto3" json:"instance_type,omitempty"`
	// storage_size specifies the storage size (e.g., "200G")
	StorageSize   string `protobuf:"bytes,2,opt,name=storage_size,json=storageSize,proto3" json:"storage_size,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ReplayTaskResources) Reset() {
	*x = ReplayTaskResources{}
	mi := &file_replay_replay_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ReplayTaskResources) ProtoMessage() {}

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

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

func (x *ReplayTaskResources) GetStorageSize() string {
	if x != nil {
		return x.StorageSize
	}
	return ""
}

// ReplayTask represents a single replay task
type ReplayTask struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name of the replay task
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// data_source specifies the source of audit logs
	DataSource *ReplayDataSource `protobuf:"bytes,2,opt,name=data_source,json=dataSource,proto3" json:"data_source,omitempty"`
	// data_target specifies the target database
	DataTarget *ReplayDataTarget `protobuf:"bytes,3,opt,name=data_target,json=dataTarget,proto3" json:"data_target,omitempty"`
	// replicas specifies the number of replicas for this task
	Replicas int32 `protobuf:"varint,4,opt,name=replicas,proto3" json:"replicas,omitempty"`
	// replay_start_time is the start time in the upstream cluster
	ReplayStartTime string `protobuf:"bytes,5,opt,name=replay_start_time,json=replayStartTime,proto3" json:"replay_start_time,omitempty"`
	// run_start_time is the local time when replay starts
	RunStartTime string `protobuf:"bytes,6,opt,name=run_start_time,json=runStartTime,proto3" json:"run_start_time,omitempty"`
	// resources for this specific task
	Resources *ReplayTaskResources `protobuf:"bytes,7,opt,name=resources,proto3" json:"resources,omitempty"`
	// per_replay_configs contains per-replica configurations
	PerReplayConfigs []*ReplayConfig `protobuf:"bytes,8,rep,name=per_replay_configs,json=perReplayConfigs,proto3" json:"per_replay_configs,omitempty"`
	// image specifies the container image for this task
	Image         string `protobuf:"bytes,9,opt,name=image,proto3" json:"image,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ReplayTask) Reset() {
	*x = ReplayTask{}
	mi := &file_replay_replay_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ReplayTask) ProtoMessage() {}

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

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

func (x *ReplayTask) GetDataSource() *ReplayDataSource {
	if x != nil {
		return x.DataSource
	}
	return nil
}

func (x *ReplayTask) GetDataTarget() *ReplayDataTarget {
	if x != nil {
		return x.DataTarget
	}
	return nil
}

func (x *ReplayTask) GetReplicas() int32 {
	if x != nil {
		return x.Replicas
	}
	return 0
}

func (x *ReplayTask) GetReplayStartTime() string {
	if x != nil {
		return x.ReplayStartTime
	}
	return ""
}

func (x *ReplayTask) GetRunStartTime() string {
	if x != nil {
		return x.RunStartTime
	}
	return ""
}

func (x *ReplayTask) GetResources() *ReplayTaskResources {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *ReplayTask) GetPerReplayConfigs() []*ReplayConfig {
	if x != nil {
		return x.PerReplayConfigs
	}
	return nil
}

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

// ReplayDataSource specifies the source of audit logs
type ReplayDataSource struct {
	state               protoimpl.MessageState `protogen:"open.v1"`
	SourceAuditLogAddrs []*AuditLogAddr        `protobuf:"bytes,1,rep,name=source_audit_log_addrs,json=sourceAuditLogAddrs,proto3" json:"source_audit_log_addrs,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*ReplayDataSource) ProtoMessage() {}

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

func (x *ReplayDataSource) GetSourceAuditLogAddrs() []*AuditLogAddr {
	if x != nil {
		return x.SourceAuditLogAddrs
	}
	return nil
}

// ReplayDataTarget specifies the target database connection
type ReplayDataTarget struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// endpoint is the database endpoint
	Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	// username for database connection
	Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	// password for database connection
	Password      string `protobuf:"bytes,3,opt,name=password,proto3" json:"password,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReplayDataTarget) ProtoMessage() {}

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

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

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

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

// AuditLogAddr specifies the address of audit logs
type AuditLogAddr struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Storage:
	//
	//	*AuditLogAddr_Aws
	//	*AuditLogAddr_Gcp
	//	*AuditLogAddr_Aliyun
	Storage       isAuditLogAddr_Storage `protobuf_oneof:"storage"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AuditLogAddr) ProtoMessage() {}

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

func (x *AuditLogAddr) GetStorage() isAuditLogAddr_Storage {
	if x != nil {
		return x.Storage
	}
	return nil
}

func (x *AuditLogAddr) GetAws() *AWSAuditLog {
	if x != nil {
		if x, ok := x.Storage.(*AuditLogAddr_Aws); ok {
			return x.Aws
		}
	}
	return nil
}

func (x *AuditLogAddr) GetGcp() *GCPAuditLog {
	if x != nil {
		if x, ok := x.Storage.(*AuditLogAddr_Gcp); ok {
			return x.Gcp
		}
	}
	return nil
}

func (x *AuditLogAddr) GetAliyun() *AliyunAuditLog {
	if x != nil {
		if x, ok := x.Storage.(*AuditLogAddr_Aliyun); ok {
			return x.Aliyun
		}
	}
	return nil
}

type isAuditLogAddr_Storage interface {
	isAuditLogAddr_Storage()
}

type AuditLogAddr_Aws struct {
	Aws *AWSAuditLog `protobuf:"bytes,1,opt,name=aws,proto3,oneof"`
}

type AuditLogAddr_Gcp struct {
	Gcp *GCPAuditLog `protobuf:"bytes,2,opt,name=gcp,proto3,oneof"`
}

type AuditLogAddr_Aliyun struct {
	Aliyun *AliyunAuditLog `protobuf:"bytes,3,opt,name=aliyun,proto3,oneof"`
}

func (*AuditLogAddr_Aws) isAuditLogAddr_Storage() {}

func (*AuditLogAddr_Gcp) isAuditLogAddr_Storage() {}

func (*AuditLogAddr_Aliyun) isAuditLogAddr_Storage() {}

// AWSAuditLog specifies AWS S3 audit log location
type AWSAuditLog struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// s3_url is the S3 URL of the audit log
	S3Url string `protobuf:"bytes,1,opt,name=s3_url,json=s3Url,proto3" json:"s3_url,omitempty"`
	// role_arn is the IAM role ARN for accessing S3
	RoleArn string `protobuf:"bytes,2,opt,name=role_arn,json=roleArn,proto3" json:"role_arn,omitempty"`
	// external_id is the external ID for role assumption
	ExternalId    string `protobuf:"bytes,3,opt,name=external_id,json=externalId,proto3" json:"external_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AWSAuditLog) ProtoMessage() {}

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

func (x *AWSAuditLog) GetS3Url() string {
	if x != nil {
		return x.S3Url
	}
	return ""
}

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

func (x *AWSAuditLog) GetExternalId() string {
	if x != nil {
		return x.ExternalId
	}
	return ""
}

// GCPAuditLog specifies GCP GCS audit log location
type GCPAuditLog struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// gcs_url is the GCS URL of the audit log
	GcsUrl string `protobuf:"bytes,1,opt,name=gcs_url,json=gcsUrl,proto3" json:"gcs_url,omitempty"`
	// service_account_json is the GCP service account JSON for accessing GCS
	ServiceAccountJson string `protobuf:"bytes,2,opt,name=service_account_json,json=serviceAccountJson,proto3" json:"service_account_json,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*GCPAuditLog) ProtoMessage() {}

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

func (x *GCPAuditLog) GetGcsUrl() string {
	if x != nil {
		return x.GcsUrl
	}
	return ""
}

func (x *GCPAuditLog) GetServiceAccountJson() string {
	if x != nil {
		return x.ServiceAccountJson
	}
	return ""
}

// AliyunAuditLog specifies an audit log source for Aliyun replay flows.
//
// It supports two bucket_url modes:
//   - URL-only: when access_key_id and secret_access_key are omitted, bucket_url
//     is used as an already-resolved audit log URL/prefix as provided. This may
//     include endpoint, credential, or signed query parameters.
//   - OSS conversion: when access_key_id and secret_access_key are provided,
//     bucket_url must be an oss:// URL/prefix and the service builds an
//     S3-compatible OSS URL for replay execution.
type AliyunAuditLog struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// access_key_id is the Aliyun access key id for OSS conversion. Provide it
	// together with secret_access_key only when bucket_url is an oss:// URL.
	AccessKeyId string `protobuf:"bytes,1,opt,name=access_key_id,json=accessKeyId,proto3" json:"access_key_id,omitempty"`
	// secret_access_key is the Aliyun secret access key for OSS conversion.
	// Provide it together with access_key_id only when bucket_url is an oss:// URL.
	SecretAccessKey string `protobuf:"bytes,2,opt,name=secret_access_key,json=secretAccessKey,proto3" json:"secret_access_key,omitempty"`
	// bucket_url is the audit log URL/prefix. Without access keys it is accepted
	// as the final audit-log URL, including endpoint, credential, or signed query
	// parameters; with access keys it must be an oss:// URL/prefix. The service
	// stores bucket_url as sensitive material and redacts credential-like query
	// parameters from read/status payloads.
	BucketUrl     string `protobuf:"bytes,3,opt,name=bucket_url,json=bucketUrl,proto3" json:"bucket_url,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AliyunAuditLog) ProtoMessage() {}

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

func (x *AliyunAuditLog) GetAccessKeyId() string {
	if x != nil {
		return x.AccessKeyId
	}
	return ""
}

func (x *AliyunAuditLog) GetSecretAccessKey() string {
	if x != nil {
		return x.SecretAccessKey
	}
	return ""
}

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

// ReplayStatus represents the current status of a replay
type ReplayStatus struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// phase is the current phase of the replay
	Phase ReplayPhase `protobuf:"varint,1,opt,name=phase,proto3,enum=replay.ReplayPhase" json:"phase,omitempty"`
	// message contains human-readable status message
	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
	// tasks contains status of individual replay tasks
	Tasks []*ReplayTaskStatus `protobuf:"bytes,3,rep,name=tasks,proto3" json:"tasks,omitempty"`
	// last_update_time is the last status update time
	LastUpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"`
	// aws_node_role_arn is the AWS IAM role ARN for replay nodes
	AwsNodeRoleArn string `protobuf:"bytes,5,opt,name=aws_node_role_arn,json=awsNodeRoleArn,proto3" json:"aws_node_role_arn,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*ReplayStatus) ProtoMessage() {}

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

func (x *ReplayStatus) GetPhase() ReplayPhase {
	if x != nil {
		return x.Phase
	}
	return ReplayPhase_REPLAY_PHASE_UNSPECIFIED
}

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

func (x *ReplayStatus) GetTasks() []*ReplayTaskStatus {
	if x != nil {
		return x.Tasks
	}
	return nil
}

func (x *ReplayStatus) GetLastUpdateTime() *timestamppb.Timestamp {
	if x != nil {
		return x.LastUpdateTime
	}
	return nil
}

func (x *ReplayStatus) GetAwsNodeRoleArn() string {
	if x != nil {
		return x.AwsNodeRoleArn
	}
	return ""
}

// ReplayTaskStatus contains status of a single replay task
type ReplayTaskStatus struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name of the task
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// replica_statuses contains status of each replica
	ReplicaStatuses []*ReplayReplicaStatus `protobuf:"bytes,2,rep,name=replica_statuses,json=replicaStatuses,proto3" json:"replica_statuses,omitempty"`
	// message contains task-level status message
	Message       string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReplayTaskStatus) ProtoMessage() {}

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

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

func (x *ReplayTaskStatus) GetReplicaStatuses() []*ReplayReplicaStatus {
	if x != nil {
		return x.ReplicaStatuses
	}
	return nil
}

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

// ReplayReplicaStatus contains status of a single replica
type ReplayReplicaStatus struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// pod_name is the Kubernetes pod name
	PodName string `protobuf:"bytes,1,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"`
	// index is the replica index
	Index int32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
	// phase is the current phase of the replica
	Phase ReplayTaskPhase `protobuf:"varint,3,opt,name=phase,proto3,enum=replay.ReplayTaskPhase" json:"phase,omitempty"`
	// ready indicates if the replica is ready
	Ready bool `protobuf:"varint,4,opt,name=ready,proto3" json:"ready,omitempty"`
	// message contains replica-level status message
	Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
	// task_info contains detailed task information
	TaskInfo      *ReplayTaskInfo `protobuf:"bytes,6,opt,name=task_info,json=taskInfo,proto3" json:"task_info,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReplayReplicaStatus) ProtoMessage() {}

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

func (x *ReplayReplicaStatus) GetPodName() string {
	if x != nil {
		return x.PodName
	}
	return ""
}

func (x *ReplayReplicaStatus) GetIndex() int32 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *ReplayReplicaStatus) GetPhase() ReplayTaskPhase {
	if x != nil {
		return x.Phase
	}
	return ReplayTaskPhase_REPLAY_TASK_PHASE_UNSPECIFIED
}

func (x *ReplayReplicaStatus) GetReady() bool {
	if x != nil {
		return x.Ready
	}
	return false
}

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

func (x *ReplayReplicaStatus) GetTaskInfo() *ReplayTaskInfo {
	if x != nil {
		return x.TaskInfo
	}
	return nil
}

// ReplayTaskInfo contains detailed information about a replay task
type ReplayTaskInfo struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// type of the replay task
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	// status of the replay task
	Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
	// start_time when the task started
	StartTime string `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// end_time when the task ended
	EndTime string `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	// progress percentage (0-100)
	Progress int32 `protobuf:"varint,5,opt,name=progress,proto3" json:"progress,omitempty"`
	// error message if any
	Error string `protobuf:"bytes,6,opt,name=error,proto3" json:"error,omitempty"`
	// last_command_timestamp is the timestamp of the last replayed command
	LastCommandTimestamp string `protobuf:"bytes,7,opt,name=last_command_timestamp,json=lastCommandTimestamp,proto3" json:"last_command_timestamp,omitempty"`
	// sync_time is the synchronization time
	SyncTime string `protobuf:"bytes,8,opt,name=sync_time,json=syncTime,proto3" json:"sync_time,omitempty"`
	// source_audit_log_addrs lists the audit log sources
	SourceAuditLogAddrs []*AuditLogAddr `protobuf:"bytes,9,rep,name=source_audit_log_addrs,json=sourceAuditLogAddrs,proto3" json:"source_audit_log_addrs,omitempty"`
	// total_commands is the total number of commands to replay
	TotalCommands int64 `protobuf:"varint,10,opt,name=total_commands,json=totalCommands,proto3" json:"total_commands,omitempty"`
	// replayed_commands is the number of commands replayed
	ReplayedCommands int64 `protobuf:"varint,11,opt,name=replayed_commands,json=replayedCommands,proto3" json:"replayed_commands,omitempty"`
	// failed_commands is the number of failed commands
	FailedCommands int64 `protobuf:"varint,12,opt,name=failed_commands,json=failedCommands,proto3" json:"failed_commands,omitempty"`
	// total_bytes is the total size of audit logs in bytes
	TotalBytes int64 `protobuf:"varint,13,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"`
	// processed_bytes is the number of bytes processed
	ProcessedBytes int64 `protobuf:"varint,14,opt,name=processed_bytes,json=processedBytes,proto3" json:"processed_bytes,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*ReplayTaskInfo) ProtoMessage() {}

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

func (x *ReplayTaskInfo) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

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

func (x *ReplayTaskInfo) GetStartTime() string {
	if x != nil {
		return x.StartTime
	}
	return ""
}

func (x *ReplayTaskInfo) GetEndTime() string {
	if x != nil {
		return x.EndTime
	}
	return ""
}

func (x *ReplayTaskInfo) GetProgress() int32 {
	if x != nil {
		return x.Progress
	}
	return 0
}

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

func (x *ReplayTaskInfo) GetLastCommandTimestamp() string {
	if x != nil {
		return x.LastCommandTimestamp
	}
	return ""
}

func (x *ReplayTaskInfo) GetSyncTime() string {
	if x != nil {
		return x.SyncTime
	}
	return ""
}

func (x *ReplayTaskInfo) GetSourceAuditLogAddrs() []*AuditLogAddr {
	if x != nil {
		return x.SourceAuditLogAddrs
	}
	return nil
}

func (x *ReplayTaskInfo) GetTotalCommands() int64 {
	if x != nil {
		return x.TotalCommands
	}
	return 0
}

func (x *ReplayTaskInfo) GetReplayedCommands() int64 {
	if x != nil {
		return x.ReplayedCommands
	}
	return 0
}

func (x *ReplayTaskInfo) GetFailedCommands() int64 {
	if x != nil {
		return x.FailedCommands
	}
	return 0
}

func (x *ReplayTaskInfo) GetTotalBytes() int64 {
	if x != nil {
		return x.TotalBytes
	}
	return 0
}

func (x *ReplayTaskInfo) GetProcessedBytes() int64 {
	if x != nil {
		return x.ProcessedBytes
	}
	return 0
}

var File_replay_replay_proto protoreflect.FileDescriptor

const file_replay_replay_proto_rawDesc = "" +
	"\n" +
	"\x13replay/replay.proto\x12\x06replay\x1a\x0fbase/base.proto\x1a\x13common/common.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a.protoc-gen-openapiv2/options/annotations.proto\x1a\x17validate/validate.proto\"\x86\x01\n" +
	"\x13CreateReplayRequest\x12\x1a\n" +
	"\x06org_id\x18\x01 \x01(\tB\x03\xe0A\x02R\x05orgId\x12\"\n" +
	"\n" +
	"cluster_id\x18\x02 \x01(\tB\x03\xe0A\x02R\tclusterId\x12/\n" +
	"\x06replay\x18\x03 \x01(\v2\x12.replay.ReplaySpecB\x03\xe0A\x02R\x06replay\"[\n" +
	"\x14CreateReplayResponse\x12\x1b\n" +
	"\treplay_id\x18\x01 \x01(\tR\breplayId\x12&\n" +
	"\x06replay\x18\x02 \x01(\v2\x0e.replay.ReplayR\x06replay\"\x8f\x01\n" +
	"\x12ListReplaysRequest\x12\x1a\n" +
	"\x06org_id\x18\x01 \x01(\tB\x03\xe0A\x02R\x05orgId\x12\"\n" +
	"\n" +
	"cluster_id\x18\x02 \x01(\tB\x03\xe0A\x01R\tclusterId\x12 \n" +
	"\tpage_size\x18\x03 \x01(\x05B\x03\xe0A\x01R\bpageSize\x12\x17\n" +
	"\x04page\x18\x04 \x01(\x05B\x03\xe0A\x01R\x04page\"^\n" +
	"\x13ListReplaysResponse\x12(\n" +
	"\areplays\x18\x01 \x03(\v2\x0e.replay.ReplayR\areplays\x12\x1d\n" +
	"\n" +
	"total_size\x18\x03 \x01(\x05R\ttotalSize\"t\n" +
	"\x10GetReplayRequest\x12\x1a\n" +
	"\x06org_id\x18\x01 \x01(\tB\x03\xe0A\x02R\x05orgId\x12\"\n" +
	"\n" +
	"cluster_id\x18\x02 \x01(\tB\x03\xe0A\x02R\tclusterId\x12 \n" +
	"\treplay_id\x18\x03 \x01(\tB\x03\xe0A\x02R\breplayId\";\n" +
	"\x11GetReplayResponse\x12&\n" +
	"\x06replay\x18\x01 \x01(\v2\x0e.replay.ReplayR\x06replay\"\xa8\x01\n" +
	"\x13UpdateReplayRequest\x12\x1a\n" +
	"\x06org_id\x18\x01 \x01(\tB\x03\xe0A\x02R\x05orgId\x12\"\n" +
	"\n" +
	"cluster_id\x18\x02 \x01(\tB\x03\xe0A\x02R\tclusterId\x12 \n" +
	"\treplay_id\x18\x03 \x01(\tB\x03\xe0A\x02R\breplayId\x12/\n" +
	"\x06replay\x18\x04 \x01(\v2\x12.replay.ReplaySpecB\x03\xe0A\x02R\x06replay\">\n" +
	"\x14UpdateReplayResponse\x12&\n" +
	"\x06replay\x18\x01 \x01(\v2\x0e.replay.ReplayR\x06replay\"w\n" +
	"\x13DeleteReplayRequest\x12\x1a\n" +
	"\x06org_id\x18\x01 \x01(\tB\x03\xe0A\x02R\x05orgId\x12\"\n" +
	"\n" +
	"cluster_id\x18\x02 \x01(\tB\x03\xe0A\x02R\tclusterId\x12 \n" +
	"\treplay_id\x18\x03 \x01(\tB\x03\xe0A\x02R\breplayId\"v\n" +
	"\x12StartReplayRequest\x12\x1a\n" +
	"\x06org_id\x18\x01 \x01(\tB\x03\xe0A\x02R\x05orgId\x12\"\n" +
	"\n" +
	"cluster_id\x18\x02 \x01(\tB\x03\xe0A\x02R\tclusterId\x12 \n" +
	"\treplay_id\x18\x03 \x01(\tB\x03\xe0A\x02R\breplayId\"u\n" +
	"\x11StopReplayRequest\x12\x1a\n" +
	"\x06org_id\x18\x01 \x01(\tB\x03\xe0A\x02R\x05orgId\x12\"\n" +
	"\n" +
	"cluster_id\x18\x02 \x01(\tB\x03\xe0A\x02R\tclusterId\x12 \n" +
	"\treplay_id\x18\x03 \x01(\tB\x03\xe0A\x02R\breplayId\"\xc2\x04\n" +
	"\n" +
	"ReplaySpec\x12/\n" +
	"\x11source_cluster_id\x18\x01 \x01(\tB\x03\xe0A\x02R\x0fsourceClusterId\x12/\n" +
	"\x11target_cluster_id\x18\x02 \x01(\tB\x03\xe0A\x02R\x0ftargetClusterId\x12:\n" +
	"\freplay_tasks\x18\x03 \x03(\v2\x12.replay.ReplayTaskB\x03\xe0A\x01R\vreplayTasks\x12D\n" +
	"\rreplay_config\x18\x04 \x01(\v2\x1a.replay.ReplayCommonConfigB\x03\xe0A\x01R\freplayConfig\x12\x1f\n" +
	"\breplicas\x18\x05 \x01(\x05B\x03\xe0A\x01R\breplicas\x12G\n" +
	"\x0etask_resources\x18\x06 \x01(\v2\x1b.replay.ReplayTaskResourcesB\x03\xe0A\x01R\rtaskResources\x12&\n" +
	"\freplay_image\x18\a \x01(\tB\x03\xe0A\x01R\vreplayImage\x12Q\n" +
	"\x17source_audit_credential\x18\b \x01(\v2\x14.replay.AuditLogAddrB\x03\xe0A\x01R\x15sourceAuditCredential\x12*\n" +
	"\x0ecloud_provider\x18\t \x01(\tB\x03\xe0A\x02R\rcloudProvider\x12\x1b\n" +
	"\x06region\x18\n" +
	" \x01(\tB\x03\xe0A\x02R\x06region\x12\"\n" +
	"\n" +
	"project_id\x18\v \x01(\tB\x03\xe0A\x01R\tprojectId\"\xa2\a\n" +
	"\x06Replay\x12 \n" +
	"\treplay_id\x18\x01 \x01(\tB\x03\xe0A\x03R\breplayId\x12\x1a\n" +
	"\x06org_id\x18\x02 \x01(\tB\x03\xe0A\x03R\x05orgId\x12\"\n" +
	"\n" +
	"project_id\x18\x03 \x01(\tB\x03\xe0A\x03R\tprojectId\x12\"\n" +
	"\n" +
	"cluster_id\x18\x04 \x01(\tB\x03\xe0A\x03R\tclusterId\x12D\n" +
	"\rdesired_state\x18\x05 \x01(\x0e2\x1a.replay.ReplayDesiredStateB\x03\xe0A\x02R\fdesiredState\x12D\n" +
	"\rcurrent_state\x18\x06 \x01(\x0e2\x1a.replay.ReplayCurrentStateB\x03\xe0A\x03R\fcurrentState\x12*\n" +
	"\x11source_cluster_id\x18\a \x01(\tR\x0fsourceClusterId\x12*\n" +
	"\x0ecloud_provider\x18\b \x01(\tB\x03\xe0A\x03R\rcloudProvider\x12\x1b\n" +
	"\x06region\x18\x12 \x01(\tB\x03\xe0A\x03R\x06region\x12:\n" +
	"\freplay_tasks\x18\t \x03(\v2\x12.replay.ReplayTaskB\x03\xe0A\x02R\vreplayTasks\x12D\n" +
	"\rreplay_config\x18\n" +
	" \x01(\v2\x1a.replay.ReplayCommonConfigB\x03\xe0A\x02R\freplayConfig\x12\x1a\n" +
	"\breplicas\x18\v \x01(\x05R\breplicas\x12B\n" +
	"\x0etask_resources\x18\f \x01(\v2\x1b.replay.ReplayTaskResourcesR\rtaskResources\x12!\n" +
	"\freplay_image\x18\r \x01(\tR\vreplayImage\x12L\n" +
	"\x17source_audit_credential\x18\x0e \x01(\v2\x14.replay.AuditLogAddrR\x15sourceAuditCredential\x12>\n" +
	"\rreplay_status\x18\x0f \x01(\v2\x14.replay.ReplayStatusB\x03\xe0A\x03R\freplayStatus\x12>\n" +
	"\n" +
	"created_at\x18\x10 \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\tcreatedAt\x12>\n" +
	"\n" +
	"updated_at\x18\x11 \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\tupdatedAt\"\x96\x01\n" +
	"\x12ReplayCommonConfig\x12>\n" +
	"\rreplay_config\x18\x01 \x01(\v2\x14.replay.ReplayConfigB\x03\xe0A\x01R\freplayConfig\x12\x1f\n" +
	"\busername\x18\x02 \x01(\tB\x03\xe0A\x01R\busername\x12\x1f\n" +
	"\bpassword\x18\x03 \x01(\tB\x03\xe0A\x01R\bpassword\"\x9b\x04\n" +
	"\fReplayConfig\x12/\n" +
	"\x11replay_start_time\x18\x01 \x01(\tB\x03\xe0A\x01R\x0freplayStartTime\x12)\n" +
	"\x0erun_start_time\x18\x02 \x01(\tB\x03\xe0A\x01R\frunStartTime\x12&\n" +
	"\freplay_index\x18\x03 \x01(\x05B\x03\xe0A\x01R\vreplayIndex\x12Y\n" +
	"\x10custom_arguments\x18\x04 \x03(\v2).replay.ReplayConfig.CustomArgumentsEntryB\x03\xe0A\x01R\x0fcustomArguments\x12\x1b\n" +
	"\x06format\x18\x05 \x01(\tB\x03\xe0A\x01R\x06format\x12$\n" +
	"\vignore_errs\x18\x06 \x01(\bB\x03\xe0A\x01R\n" +
	"ignoreErrs\x12\x1e\n" +
	"\bps_close\x18\a \x01(\tB\x03\xe0A\x01R\apsClose\x12\x1e\n" +
	"\bbuf_size\x18\b \x01(\x05B\x03\xe0A\x01R\abufSize\x12\x19\n" +
	"\x05speed\x18\t \x01(\tB\x03\xe0A\x01R\x05speed\x12(\n" +
	"\rdynamic_input\x18\n" +
	" \x01(\bB\x03\xe0A\x01R\fdynamicInput\x12 \n" +
	"\tread_only\x18\v \x01(\bB\x03\xe0A\x01R\breadOnly\x1aB\n" +
	"\x14CustomArgumentsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"g\n" +
	"\x13ReplayTaskResources\x12(\n" +
	"\rinstance_type\x18\x01 \x01(\tB\x03\xe0A\x01R\finstanceType\x12&\n" +
	"\fstorage_size\x18\x02 \x01(\tB\x03\xe0A\x01R\vstorageSize\"\xc6\x03\n" +
	"\n" +
	"ReplayTask\x12\x17\n" +
	"\x04name\x18\x01 \x01(\tB\x03\xe0A\x02R\x04name\x12>\n" +
	"\vdata_source\x18\x02 \x01(\v2\x18.replay.ReplayDataSourceB\x03\xe0A\x02R\n" +
	"dataSource\x12>\n" +
	"\vdata_target\x18\x03 \x01(\v2\x18.replay.ReplayDataTargetB\x03\xe0A\x02R\n" +
	"dataTarget\x12\x1f\n" +
	"\breplicas\x18\x04 \x01(\x05B\x03\xe0A\x01R\breplicas\x12/\n" +
	"\x11replay_start_time\x18\x05 \x01(\tB\x03\xe0A\x01R\x0freplayStartTime\x12)\n" +
	"\x0erun_start_time\x18\x06 \x01(\tB\x03\xe0A\x01R\frunStartTime\x12>\n" +
	"\tresources\x18\a \x01(\v2\x1b.replay.ReplayTaskResourcesB\x03\xe0A\x01R\tresources\x12G\n" +
	"\x12per_replay_configs\x18\b \x03(\v2\x14.replay.ReplayConfigB\x03\xe0A\x01R\x10perReplayConfigs\x12\x19\n" +
	"\x05image\x18\t \x01(\tB\x03\xe0A\x01R\x05image\"b\n" +
	"\x10ReplayDataSource\x12N\n" +
	"\x16source_audit_log_addrs\x18\x01 \x03(\v2\x14.replay.AuditLogAddrB\x03\xe0A\x02R\x13sourceAuditLogAddrs\"u\n" +
	"\x10ReplayDataTarget\x12\x1f\n" +
	"\bendpoint\x18\x01 \x01(\tB\x03\xe0A\x02R\bendpoint\x12\x1f\n" +
	"\busername\x18\x02 \x01(\tB\x03\xe0A\x01R\busername\x12\x1f\n" +
	"\bpassword\x18\x03 \x01(\tB\x03\xe0A\x01R\bpassword\"\x9d\x01\n" +
	"\fAuditLogAddr\x12'\n" +
	"\x03aws\x18\x01 \x01(\v2\x13.replay.AWSAuditLogH\x00R\x03aws\x12'\n" +
	"\x03gcp\x18\x02 \x01(\v2\x13.replay.GCPAuditLogH\x00R\x03gcp\x120\n" +
	"\x06aliyun\x18\x03 \x01(\v2\x16.replay.AliyunAuditLogH\x00R\x06aliyunB\t\n" +
	"\astorage\"o\n" +
	"\vAWSAuditLog\x12\x1a\n" +
	"\x06s3_url\x18\x01 \x01(\tB\x03\xe0A\x02R\x05s3Url\x12\x1e\n" +
	"\brole_arn\x18\x02 \x01(\tB\x03\xe0A\x02R\aroleArn\x12$\n" +
	"\vexternal_id\x18\x03 \x01(\tB\x03\xe0A\x01R\n" +
	"externalId\"b\n" +
	"\vGCPAuditLog\x12\x1c\n" +
	"\agcs_url\x18\x01 \x01(\tB\x03\xe0A\x02R\x06gcsUrl\x125\n" +
	"\x14service_account_json\x18\x02 \x01(\tB\x03\xe0A\x01R\x12serviceAccountJson\"\x8e\x01\n" +
	"\x0eAliyunAuditLog\x12'\n" +
	"\raccess_key_id\x18\x01 \x01(\tB\x03\xe0A\x01R\vaccessKeyId\x12/\n" +
	"\x11secret_access_key\x18\x02 \x01(\tB\x03\xe0A\x01R\x0fsecretAccessKey\x12\"\n" +
	"\n" +
	"bucket_url\x18\x03 \x01(\tB\x03\xe0A\x01R\tbucketUrl\"\xf4\x01\n" +
	"\fReplayStatus\x12)\n" +
	"\x05phase\x18\x01 \x01(\x0e2\x13.replay.ReplayPhaseR\x05phase\x12\x18\n" +
	"\amessage\x18\x02 \x01(\tR\amessage\x12.\n" +
	"\x05tasks\x18\x03 \x03(\v2\x18.replay.ReplayTaskStatusR\x05tasks\x12D\n" +
	"\x10last_update_time\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\x0elastUpdateTime\x12)\n" +
	"\x11aws_node_role_arn\x18\x05 \x01(\tR\x0eawsNodeRoleArn\"\x88\x01\n" +
	"\x10ReplayTaskStatus\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12F\n" +
	"\x10replica_statuses\x18\x02 \x03(\v2\x1b.replay.ReplayReplicaStatusR\x0freplicaStatuses\x12\x18\n" +
	"\amessage\x18\x03 \x01(\tR\amessage\"\xda\x01\n" +
	"\x13ReplayReplicaStatus\x12\x19\n" +
	"\bpod_name\x18\x01 \x01(\tR\apodName\x12\x14\n" +
	"\x05index\x18\x02 \x01(\x05R\x05index\x12-\n" +
	"\x05phase\x18\x03 \x01(\x0e2\x17.replay.ReplayTaskPhaseR\x05phase\x12\x14\n" +
	"\x05ready\x18\x04 \x01(\bR\x05ready\x12\x18\n" +
	"\amessage\x18\x05 \x01(\tR\amessage\x123\n" +
	"\ttask_info\x18\x06 \x01(\v2\x16.replay.ReplayTaskInfoR\btaskInfo\"\x8d\x04\n" +
	"\x0eReplayTaskInfo\x12\x12\n" +
	"\x04type\x18\x01 \x01(\tR\x04type\x12\x16\n" +
	"\x06status\x18\x02 \x01(\tR\x06status\x12\x1d\n" +
	"\n" +
	"start_time\x18\x03 \x01(\tR\tstartTime\x12\x19\n" +
	"\bend_time\x18\x04 \x01(\tR\aendTime\x12\x1a\n" +
	"\bprogress\x18\x05 \x01(\x05R\bprogress\x12\x14\n" +
	"\x05error\x18\x06 \x01(\tR\x05error\x124\n" +
	"\x16last_command_timestamp\x18\a \x01(\tR\x14lastCommandTimestamp\x12\x1b\n" +
	"\tsync_time\x18\b \x01(\tR\bsyncTime\x12I\n" +
	"\x16source_audit_log_addrs\x18\t \x03(\v2\x14.replay.AuditLogAddrR\x13sourceAuditLogAddrs\x12%\n" +
	"\x0etotal_commands\x18\n" +
	" \x01(\x03R\rtotalCommands\x12+\n" +
	"\x11replayed_commands\x18\v \x01(\x03R\x10replayedCommands\x12'\n" +
	"\x0ffailed_commands\x18\f \x01(\x03R\x0efailedCommands\x12\x1f\n" +
	"\vtotal_bytes\x18\r \x01(\x03R\n" +
	"totalBytes\x12'\n" +
	"\x0fprocessed_bytes\x18\x0e \x01(\x03R\x0eprocessedBytes*\x9c\x01\n" +
	"\x12ReplayDesiredState\x12$\n" +
	" REPLAY_DESIRED_STATE_UNSPECIFIED\x10\x00\x12\x1f\n" +
	"\x1bREPLAY_DESIRED_STATE_DEPLOY\x10\x01\x12\x1f\n" +
	"\x1bREPLAY_DESIRED_STATE_ACTIVE\x10\x02\x12\x1e\n" +
	"\x1aREPLAY_DESIRED_STATE_PAUSE\x10\x03*\xf0\x02\n" +
	"\x12ReplayCurrentState\x12$\n" +
	" REPLAY_CURRENT_STATE_UNSPECIFIED\x10\x00\x12 \n" +
	"\x1cREPLAY_CURRENT_STATE_PENDING\x10\x01\x12\"\n" +
	"\x1eREPLAY_CURRENT_STATE_DEPLOYING\x10\x02\x12!\n" +
	"\x1dREPLAY_CURRENT_STATE_DEPLOYED\x10\x03\x12!\n" +
	"\x1dREPLAY_CURRENT_STATE_STARTING\x10\x04\x12 \n" +
	"\x1cREPLAY_CURRENT_STATE_RUNNING\x10\x05\x12 \n" +
	"\x1cREPLAY_CURRENT_STATE_PAUSING\x10\x06\x12\x1f\n" +
	"\x1bREPLAY_CURRENT_STATE_PAUSED\x10\a\x12!\n" +
	"\x1dREPLAY_CURRENT_STATE_DELETING\x10\b\x12 \n" +
	"\x1cREPLAY_CURRENT_STATE_DELETED\x10\t*\xc7\x01\n" +
	"\vReplayPhase\x12\x1c\n" +
	"\x18REPLAY_PHASE_UNSPECIFIED\x10\x00\x12\x18\n" +
	"\x14REPLAY_PHASE_PENDING\x10\x01\x12\x19\n" +
	"\x15REPLAY_PHASE_CREATING\x10\x02\x12\x18\n" +
	"\x14REPLAY_PHASE_RUNNING\x10\x03\x12\x18\n" +
	"\x14REPLAY_PHASE_STOPPED\x10\x04\x12\x18\n" +
	"\x14REPLAY_PHASE_DELETED\x10\x05\x12\x17\n" +
	"\x13REPLAY_PHASE_FAILED\x10\x06*\xb0\x01\n" +
	"\x0fReplayTaskPhase\x12!\n" +
	"\x1dREPLAY_TASK_PHASE_UNSPECIFIED\x10\x00\x12\x1d\n" +
	"\x19REPLAY_TASK_PHASE_PENDING\x10\x01\x12\x1d\n" +
	"\x19REPLAY_TASK_PHASE_RUNNING\x10\x02\x12\x1d\n" +
	"\x19REPLAY_TASK_PHASE_STOPPED\x10\x03\x12\x1d\n" +
	"\x19REPLAY_TASK_PHASE_DELETED\x10\x042\xed\b\n" +
	"\rReplayService\x12\x9a\x01\n" +
	"\fCreateReplay\x12\x1b.replay.CreateReplayRequest\x1a\x1c.replay.CreateReplayResponse\"O\x92A\x0e*\fCreateReplay\x82\xd3\xe4\x93\x028:\x01*\"3/api/v1/orgs/{org_id}/clusters/{cluster_id}/replays\x12\x93\x01\n" +
	"\vListReplays\x12\x1a.replay.ListReplaysRequest\x1a\x1b.replay.ListReplaysResponse\"K\x92A\r*\vListReplays\x82\xd3\xe4\x93\x025\x123/api/v1/orgs/{org_id}/clusters/{cluster_id}/replays\x12\x97\x01\n" +
	"\tGetReplay\x12\x18.replay.GetReplayRequest\x1a\x19.replay.GetReplayResponse\"U\x92A\v*\tGetReplay\x82\xd3\xe4\x93\x02A\x12?/api/v1/orgs/{org_id}/clusters/{cluster_id}/replays/{replay_id}\x12\xa6\x01\n" +
	"\fUpdateReplay\x12\x1b.replay.UpdateReplayRequest\x1a\x1c.replay.UpdateReplayResponse\"[\x92A\x0e*\fUpdateReplay\x82\xd3\xe4\x93\x02D:\x01*2?/api/v1/orgs/{org_id}/clusters/{cluster_id}/replays/{replay_id}\x12\x9d\x01\n" +
	"\fDeleteReplay\x12\x1b.replay.DeleteReplayRequest\x1a\x16.google.protobuf.Empty\"X\x92A\x0e*\fDeleteReplay\x82\xd3\xe4\x93\x02A*?/api/v1/orgs/{org_id}/clusters/{cluster_id}/replays/{replay_id}\x12\xa3\x01\n" +
	"\vStartReplay\x12\x1a.replay.StartReplayRequest\x1a\x16.google.protobuf.Empty\"`\x92A\r*\vStartReplay\x82\xd3\xe4\x93\x02J:\x01*\"E/api/v1/orgs/{org_id}/clusters/{cluster_id}/replays/{replay_id}:start\x12\x9f\x01\n" +
	"\n" +
	"StopReplay\x12\x19.replay.StopReplayRequest\x1a\x16.google.protobuf.Empty\"^\x92A\f*\n" +
	"StopReplay\x82\xd3\xe4\x93\x02I:\x01*\"D/api/v1/orgs/{org_id}/clusters/{cluster_id}/replays/{replay_id}:stopB\x85\x02\x92A\xbc\x01\x12\x052\x030.1*\x01\x02ZY\n" +
	"W\n" +
	"\x06bearer\x12M\b\x02\x128Authentication token, prefixed by Bearer: Bearer <token>\x1a\rAuthorization \x02b\f\n" +
	"\n" +
	"\n" +
	"\x06bearer\x12\x00rG\n" +
	"\x16DBaaS Dataflow Service\x12-https://github.com/tidbcloud/dataflow-serviceZCgithub.com/tidbcloud/dataflow-service/idl/pbgen/proto/replay;replayb\x06proto3"

var (
	file_replay_replay_proto_rawDescOnce sync.Once
	file_replay_replay_proto_rawDescData []byte
)

func file_replay_replay_proto_rawDescGZIP() []byte {
	file_replay_replay_proto_rawDescOnce.Do(func() {
		file_replay_replay_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_replay_replay_proto_rawDesc), len(file_replay_replay_proto_rawDesc)))
	})
	return file_replay_replay_proto_rawDescData
}

var file_replay_replay_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_replay_replay_proto_msgTypes = make([]protoimpl.MessageInfo, 28)
var file_replay_replay_proto_goTypes = []any{
	(ReplayDesiredState)(0),       // 0: replay.ReplayDesiredState
	(ReplayCurrentState)(0),       // 1: replay.ReplayCurrentState
	(ReplayPhase)(0),              // 2: replay.ReplayPhase
	(ReplayTaskPhase)(0),          // 3: replay.ReplayTaskPhase
	(*CreateReplayRequest)(nil),   // 4: replay.CreateReplayRequest
	(*CreateReplayResponse)(nil),  // 5: replay.CreateReplayResponse
	(*ListReplaysRequest)(nil),    // 6: replay.ListReplaysRequest
	(*ListReplaysResponse)(nil),   // 7: replay.ListReplaysResponse
	(*GetReplayRequest)(nil),      // 8: replay.GetReplayRequest
	(*GetReplayResponse)(nil),     // 9: replay.GetReplayResponse
	(*UpdateReplayRequest)(nil),   // 10: replay.UpdateReplayRequest
	(*UpdateReplayResponse)(nil),  // 11: replay.UpdateReplayResponse
	(*DeleteReplayRequest)(nil),   // 12: replay.DeleteReplayRequest
	(*StartReplayRequest)(nil),    // 13: replay.StartReplayRequest
	(*StopReplayRequest)(nil),     // 14: replay.StopReplayRequest
	(*ReplaySpec)(nil),            // 15: replay.ReplaySpec
	(*Replay)(nil),                // 16: replay.Replay
	(*ReplayCommonConfig)(nil),    // 17: replay.ReplayCommonConfig
	(*ReplayConfig)(nil),          // 18: replay.ReplayConfig
	(*ReplayTaskResources)(nil),   // 19: replay.ReplayTaskResources
	(*ReplayTask)(nil),            // 20: replay.ReplayTask
	(*ReplayDataSource)(nil),      // 21: replay.ReplayDataSource
	(*ReplayDataTarget)(nil),      // 22: replay.ReplayDataTarget
	(*AuditLogAddr)(nil),          // 23: replay.AuditLogAddr
	(*AWSAuditLog)(nil),           // 24: replay.AWSAuditLog
	(*GCPAuditLog)(nil),           // 25: replay.GCPAuditLog
	(*AliyunAuditLog)(nil),        // 26: replay.AliyunAuditLog
	(*ReplayStatus)(nil),          // 27: replay.ReplayStatus
	(*ReplayTaskStatus)(nil),      // 28: replay.ReplayTaskStatus
	(*ReplayReplicaStatus)(nil),   // 29: replay.ReplayReplicaStatus
	(*ReplayTaskInfo)(nil),        // 30: replay.ReplayTaskInfo
	nil,                           // 31: replay.ReplayConfig.CustomArgumentsEntry
	(*timestamppb.Timestamp)(nil), // 32: google.protobuf.Timestamp
	(*emptypb.Empty)(nil),         // 33: google.protobuf.Empty
}
var file_replay_replay_proto_depIdxs = []int32{
	15, // 0: replay.CreateReplayRequest.replay:type_name -> replay.ReplaySpec
	16, // 1: replay.CreateReplayResponse.replay:type_name -> replay.Replay
	16, // 2: replay.ListReplaysResponse.replays:type_name -> replay.Replay
	16, // 3: replay.GetReplayResponse.replay:type_name -> replay.Replay
	15, // 4: replay.UpdateReplayRequest.replay:type_name -> replay.ReplaySpec
	16, // 5: replay.UpdateReplayResponse.replay:type_name -> replay.Replay
	20, // 6: replay.ReplaySpec.replay_tasks:type_name -> replay.ReplayTask
	17, // 7: replay.ReplaySpec.replay_config:type_name -> replay.ReplayCommonConfig
	19, // 8: replay.ReplaySpec.task_resources:type_name -> replay.ReplayTaskResources
	23, // 9: replay.ReplaySpec.source_audit_credential:type_name -> replay.AuditLogAddr
	0,  // 10: replay.Replay.desired_state:type_name -> replay.ReplayDesiredState
	1,  // 11: replay.Replay.current_state:type_name -> replay.ReplayCurrentState
	20, // 12: replay.Replay.replay_tasks:type_name -> replay.ReplayTask
	17, // 13: replay.Replay.replay_config:type_name -> replay.ReplayCommonConfig
	19, // 14: replay.Replay.task_resources:type_name -> replay.ReplayTaskResources
	23, // 15: replay.Replay.source_audit_credential:type_name -> replay.AuditLogAddr
	27, // 16: replay.Replay.replay_status:type_name -> replay.ReplayStatus
	32, // 17: replay.Replay.created_at:type_name -> google.protobuf.Timestamp
	32, // 18: replay.Replay.updated_at:type_name -> google.protobuf.Timestamp
	18, // 19: replay.ReplayCommonConfig.replay_config:type_name -> replay.ReplayConfig
	31, // 20: replay.ReplayConfig.custom_arguments:type_name -> replay.ReplayConfig.CustomArgumentsEntry
	21, // 21: replay.ReplayTask.data_source:type_name -> replay.ReplayDataSource
	22, // 22: replay.ReplayTask.data_target:type_name -> replay.ReplayDataTarget
	19, // 23: replay.ReplayTask.resources:type_name -> replay.ReplayTaskResources
	18, // 24: replay.ReplayTask.per_replay_configs:type_name -> replay.ReplayConfig
	23, // 25: replay.ReplayDataSource.source_audit_log_addrs:type_name -> replay.AuditLogAddr
	24, // 26: replay.AuditLogAddr.aws:type_name -> replay.AWSAuditLog
	25, // 27: replay.AuditLogAddr.gcp:type_name -> replay.GCPAuditLog
	26, // 28: replay.AuditLogAddr.aliyun:type_name -> replay.AliyunAuditLog
	2,  // 29: replay.ReplayStatus.phase:type_name -> replay.ReplayPhase
	28, // 30: replay.ReplayStatus.tasks:type_name -> replay.ReplayTaskStatus
	32, // 31: replay.ReplayStatus.last_update_time:type_name -> google.protobuf.Timestamp
	29, // 32: replay.ReplayTaskStatus.replica_statuses:type_name -> replay.ReplayReplicaStatus
	3,  // 33: replay.ReplayReplicaStatus.phase:type_name -> replay.ReplayTaskPhase
	30, // 34: replay.ReplayReplicaStatus.task_info:type_name -> replay.ReplayTaskInfo
	23, // 35: replay.ReplayTaskInfo.source_audit_log_addrs:type_name -> replay.AuditLogAddr
	4,  // 36: replay.ReplayService.CreateReplay:input_type -> replay.CreateReplayRequest
	6,  // 37: replay.ReplayService.ListReplays:input_type -> replay.ListReplaysRequest
	8,  // 38: replay.ReplayService.GetReplay:input_type -> replay.GetReplayRequest
	10, // 39: replay.ReplayService.UpdateReplay:input_type -> replay.UpdateReplayRequest
	12, // 40: replay.ReplayService.DeleteReplay:input_type -> replay.DeleteReplayRequest
	13, // 41: replay.ReplayService.StartReplay:input_type -> replay.StartReplayRequest
	14, // 42: replay.ReplayService.StopReplay:input_type -> replay.StopReplayRequest
	5,  // 43: replay.ReplayService.CreateReplay:output_type -> replay.CreateReplayResponse
	7,  // 44: replay.ReplayService.ListReplays:output_type -> replay.ListReplaysResponse
	9,  // 45: replay.ReplayService.GetReplay:output_type -> replay.GetReplayResponse
	11, // 46: replay.ReplayService.UpdateReplay:output_type -> replay.UpdateReplayResponse
	33, // 47: replay.ReplayService.DeleteReplay:output_type -> google.protobuf.Empty
	33, // 48: replay.ReplayService.StartReplay:output_type -> google.protobuf.Empty
	33, // 49: replay.ReplayService.StopReplay:output_type -> google.protobuf.Empty
	43, // [43:50] is the sub-list for method output_type
	36, // [36:43] is the sub-list for method input_type
	36, // [36:36] is the sub-list for extension type_name
	36, // [36:36] is the sub-list for extension extendee
	0,  // [0:36] is the sub-list for field type_name
}

func init() { file_replay_replay_proto_init() }
func file_replay_replay_proto_init() {
	if File_replay_replay_proto != nil {
		return
	}
	file_replay_replay_proto_msgTypes[19].OneofWrappers = []any{
		(*AuditLogAddr_Aws)(nil),
		(*AuditLogAddr_Gcp)(nil),
		(*AuditLogAddr_Aliyun)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_replay_replay_proto_rawDesc), len(file_replay_replay_proto_rawDesc)),
			NumEnums:      4,
			NumMessages:   28,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_replay_replay_proto_goTypes,
		DependencyIndexes: file_replay_replay_proto_depIdxs,
		EnumInfos:         file_replay_replay_proto_enumTypes,
		MessageInfos:      file_replay_replay_proto_msgTypes,
	}.Build()
	File_replay_replay_proto = out.File
	file_replay_replay_proto_goTypes = nil
	file_replay_replay_proto_depIdxs = nil
}
