// Copyright IBM Corp. 2020, 2026
// SPDX-License-Identifier: BUSL-1.1

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

package oplog

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb"
	structpb "google.golang.org/protobuf/types/known/structpb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	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)
)

// OpType provides the type of database operation the Any message represents
// (create, update, delete)
type OpType int32

const (
	// OP_TYPE_UNSPECIFIED defines an unspecified operation.
	OpType_OP_TYPE_UNSPECIFIED OpType = 0
	// OP_TYPE_CREATE defines a create operation.
	OpType_OP_TYPE_CREATE OpType = 1
	// OP_TYPE_UPDATE defines an update operation.
	OpType_OP_TYPE_UPDATE OpType = 2
	// OP_TYPE_DELETE defines a delete operation.
	OpType_OP_TYPE_DELETE OpType = 3
	// OP_TYPE_CREATE_ITEMS defines a create operation for multiple items.
	OpType_OP_TYPE_CREATE_ITEMS OpType = 4
	// OP_TYPE_DELETE_ITEMS defines a delete operation for multiple items.
	OpType_OP_TYPE_DELETE_ITEMS OpType = 5
)

// Enum value maps for OpType.
var (
	OpType_name = map[int32]string{
		0: "OP_TYPE_UNSPECIFIED",
		1: "OP_TYPE_CREATE",
		2: "OP_TYPE_UPDATE",
		3: "OP_TYPE_DELETE",
		4: "OP_TYPE_CREATE_ITEMS",
		5: "OP_TYPE_DELETE_ITEMS",
	}
	OpType_value = map[string]int32{
		"OP_TYPE_UNSPECIFIED":  0,
		"OP_TYPE_CREATE":       1,
		"OP_TYPE_UPDATE":       2,
		"OP_TYPE_DELETE":       3,
		"OP_TYPE_CREATE_ITEMS": 4,
		"OP_TYPE_DELETE_ITEMS": 5,
	}
)

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

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

func (OpType) Descriptor() protoreflect.EnumDescriptor {
	return file_controller_storage_oplog_v1_any_operation_proto_enumTypes[0].Descriptor()
}

func (OpType) Type() protoreflect.EnumType {
	return &file_controller_storage_oplog_v1_any_operation_proto_enumTypes[0]
}

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

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

// AnyOperation provides a message for anything and the type of operation it
// represents.
type AnyOperation struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// type_name defines type of operation.
	TypeName string `protobuf:"bytes,1,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"`
	// value are the bytes of a marshaled proto buff.
	Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	// operation_type defines the type of database operation.
	OperationType OpType `protobuf:"varint,3,opt,name=operation_type,json=operationType,proto3,enum=controller.storage.oplog.v1.OpType" json:"operation_type,omitempty"`
	// field_mask is the mask of fields to update.
	FieldMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"`
	// null_mask is the mask of fields to set to null.
	NullMask *fieldmaskpb.FieldMask `protobuf:"bytes,5,opt,name=null_mask,json=nullMask,proto3" json:"null_mask,omitempty"`
	// Options for the operations (see dbw package for definition/documentation of
	// options)
	Options       *OperationOptions `protobuf:"bytes,6,opt,name=options,proto3" json:"options,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AnyOperation) ProtoMessage() {}

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

func (x *AnyOperation) GetTypeName() string {
	if x != nil {
		return x.TypeName
	}
	return ""
}

func (x *AnyOperation) GetValue() []byte {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *AnyOperation) GetOperationType() OpType {
	if x != nil {
		return x.OperationType
	}
	return OpType_OP_TYPE_UNSPECIFIED
}

func (x *AnyOperation) GetFieldMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.FieldMask
	}
	return nil
}

func (x *AnyOperation) GetNullMask() *fieldmaskpb.FieldMask {
	if x != nil {
		return x.NullMask
	}
	return nil
}

func (x *AnyOperation) GetOptions() *OperationOptions {
	if x != nil {
		return x.Options
	}
	return nil
}

// OperationOptions represent operations options which can/will affect the oplog write
// operation.  These options are a subset of the dbw.Options. We will not try to
// keep the docs in-sync from the dbw package, so if you need more information
// on what the option does please see the dbw package docs.
type OperationOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// with_version (see dbw package for docs)
	WithVersion *wrapperspb.UInt32Value `protobuf:"bytes,1,opt,name=with_version,json=withVersion,proto3" json:"with_version,omitempty"`
	// with_skip_vet_for_write (see dbw package for docs)
	WithSkipVetForWrite bool `protobuf:"varint,2,opt,name=with_skip_vet_for_write,json=withSkipVetForWrite,proto3" json:"with_skip_vet_for_write,omitempty"`
	// with_where_clause (see dbw package for docs)
	WithWhereClause string `protobuf:"bytes,3,opt,name=with_where_clause,json=withWhereClause,proto3" json:"with_where_clause,omitempty"`
	// with_where_clause_args (see dbw package for docs)
	WithWhereClauseArgs []*structpb.Value `protobuf:"bytes,4,rep,name=with_where_clause_args,json=withWhereClauseArgs,proto3" json:"with_where_clause_args,omitempty"`
	// with_on_conflict (see dbw package for docs)
	WithOnConflict *WithOnConflict `protobuf:"bytes,5,opt,name=with_on_conflict,json=withOnConflict,proto3" json:"with_on_conflict,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*OperationOptions) ProtoMessage() {}

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

func (x *OperationOptions) GetWithVersion() *wrapperspb.UInt32Value {
	if x != nil {
		return x.WithVersion
	}
	return nil
}

func (x *OperationOptions) GetWithSkipVetForWrite() bool {
	if x != nil {
		return x.WithSkipVetForWrite
	}
	return false
}

func (x *OperationOptions) GetWithWhereClause() string {
	if x != nil {
		return x.WithWhereClause
	}
	return ""
}

func (x *OperationOptions) GetWithWhereClauseArgs() []*structpb.Value {
	if x != nil {
		return x.WithWhereClauseArgs
	}
	return nil
}

func (x *OperationOptions) GetWithOnConflict() *WithOnConflict {
	if x != nil {
		return x.WithOnConflict
	}
	return nil
}

// WithOnConflict defines the parameters needed for an sql "on conflict clause"
type WithOnConflict struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// target defines the on conflict target
	//
	// Types that are valid to be assigned to Target:
	//
	//	*WithOnConflict_Constraint
	//	*WithOnConflict_Columns
	Target isWithOnConflict_Target `protobuf_oneof:"target"`
	// action defines the on conflict action
	//
	// Types that are valid to be assigned to Action:
	//
	//	*WithOnConflict_DoNothing
	//	*WithOnConflict_UpdateAll
	//	*WithOnConflict_ColumnValues
	Action        isWithOnConflict_Action `protobuf_oneof:"action"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*WithOnConflict) ProtoMessage() {}

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

func (x *WithOnConflict) GetTarget() isWithOnConflict_Target {
	if x != nil {
		return x.Target
	}
	return nil
}

func (x *WithOnConflict) GetConstraint() string {
	if x != nil {
		if x, ok := x.Target.(*WithOnConflict_Constraint); ok {
			return x.Constraint
		}
	}
	return ""
}

func (x *WithOnConflict) GetColumns() *Columns {
	if x != nil {
		if x, ok := x.Target.(*WithOnConflict_Columns); ok {
			return x.Columns
		}
	}
	return nil
}

func (x *WithOnConflict) GetAction() isWithOnConflict_Action {
	if x != nil {
		return x.Action
	}
	return nil
}

func (x *WithOnConflict) GetDoNothing() bool {
	if x != nil {
		if x, ok := x.Action.(*WithOnConflict_DoNothing); ok {
			return x.DoNothing
		}
	}
	return false
}

func (x *WithOnConflict) GetUpdateAll() bool {
	if x != nil {
		if x, ok := x.Action.(*WithOnConflict_UpdateAll); ok {
			return x.UpdateAll
		}
	}
	return false
}

func (x *WithOnConflict) GetColumnValues() *ColumnValues {
	if x != nil {
		if x, ok := x.Action.(*WithOnConflict_ColumnValues); ok {
			return x.ColumnValues
		}
	}
	return nil
}

type isWithOnConflict_Target interface {
	isWithOnConflict_Target()
}

type WithOnConflict_Constraint struct {
	// constraint is the on conflict constraint
	Constraint string `protobuf:"bytes,10,opt,name=constraint,proto3,oneof"`
}

type WithOnConflict_Columns struct {
	// columns are the on conflict columns
	Columns *Columns `protobuf:"bytes,11,opt,name=columns,proto3,oneof"`
}

func (*WithOnConflict_Constraint) isWithOnConflict_Target() {}

func (*WithOnConflict_Columns) isWithOnConflict_Target() {}

type isWithOnConflict_Action interface {
	isWithOnConflict_Action()
}

type WithOnConflict_DoNothing struct {
	// do_nothing defines an on conflict action of do nothing
	DoNothing bool `protobuf:"varint,50,opt,name=do_nothing,json=doNothing,proto3,oneof"`
}

type WithOnConflict_UpdateAll struct {
	// update_all defines an on conflict action of updating all the columns
	UpdateAll bool `protobuf:"varint,51,opt,name=update_all,json=updateAll,proto3,oneof"`
}

type WithOnConflict_ColumnValues struct {
	// column_values defines on conflict action with the columns to update
	ColumnValues *ColumnValues `protobuf:"bytes,52,opt,name=column_values,json=columnValues,proto3,oneof"`
}

func (*WithOnConflict_DoNothing) isWithOnConflict_Action() {}

func (*WithOnConflict_UpdateAll) isWithOnConflict_Action() {}

func (*WithOnConflict_ColumnValues) isWithOnConflict_Action() {}

// Columns defines a set of column properties
type Columns struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name of the columns
	Names         []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Columns) ProtoMessage() {}

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

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

// ColumnValue defines a column value
type ColumnValue struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name of the column
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// value of the column
	//
	// Types that are valid to be assigned to Value:
	//
	//	*ColumnValue_Raw
	//	*ColumnValue_ExprValue
	//	*ColumnValue_Column
	Value         isColumnValue_Value `protobuf_oneof:"value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ColumnValue) ProtoMessage() {}

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

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

func (x *ColumnValue) GetValue() isColumnValue_Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *ColumnValue) GetRaw() *structpb.Value {
	if x != nil {
		if x, ok := x.Value.(*ColumnValue_Raw); ok {
			return x.Raw
		}
	}
	return nil
}

func (x *ColumnValue) GetExprValue() *ExprValue {
	if x != nil {
		if x, ok := x.Value.(*ColumnValue_ExprValue); ok {
			return x.ExprValue
		}
	}
	return nil
}

func (x *ColumnValue) GetColumn() *Column {
	if x != nil {
		if x, ok := x.Value.(*ColumnValue_Column); ok {
			return x.Column
		}
	}
	return nil
}

type isColumnValue_Value interface {
	isColumnValue_Value()
}

type ColumnValue_Raw struct {
	Raw *structpb.Value `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

type ColumnValue_ExprValue struct {
	ExprValue *ExprValue `protobuf:"bytes,3,opt,name=expr_value,json=exprValue,proto3,oneof"`
}

type ColumnValue_Column struct {
	Column *Column `protobuf:"bytes,4,opt,name=column,proto3,oneof"`
}

func (*ColumnValue_Raw) isColumnValue_Value() {}

func (*ColumnValue_ExprValue) isColumnValue_Value() {}

func (*ColumnValue_Column) isColumnValue_Value() {}

// ColumnValues defines a set of column value properies
type ColumnValues struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// values are the values of the columns
	Values        []*ColumnValue `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ColumnValues) ProtoMessage() {}

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

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

// ExprValue defines an expr value that can be used as a column value
type ExprValue struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// sql is the sql clause of the expr
	Sql string `protobuf:"bytes,1,opt,name=sql,proto3" json:"sql,omitempty"`
	// args are the sql args of the expr
	Args          []*structpb.Value `protobuf:"bytes,2,rep,name=args,proto3" json:"args,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ExprValue) ProtoMessage() {}

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

func (x *ExprValue) GetSql() string {
	if x != nil {
		return x.Sql
	}
	return ""
}

func (x *ExprValue) GetArgs() []*structpb.Value {
	if x != nil {
		return x.Args
	}
	return nil
}

// Column represents a table Column
type Column struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name of the column
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// table name of the column
	Table         string `protobuf:"bytes,2,opt,name=table,proto3" json:"table,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Column) ProtoMessage() {}

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

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

func (x *Column) GetTable() string {
	if x != nil {
		return x.Table
	}
	return ""
}

var File_controller_storage_oplog_v1_any_operation_proto protoreflect.FileDescriptor

const file_controller_storage_oplog_v1_any_operation_proto_rawDesc = "" +
	"\n" +
	"/controller/storage/oplog/v1/any_operation.proto\x12\x1bcontroller.storage.oplog.v1\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xca\x02\n" +
	"\fAnyOperation\x12\x1b\n" +
	"\ttype_name\x18\x01 \x01(\tR\btypeName\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value\x12J\n" +
	"\x0eoperation_type\x18\x03 \x01(\x0e2#.controller.storage.oplog.v1.OpTypeR\roperationType\x129\n" +
	"\n" +
	"field_mask\x18\x04 \x01(\v2\x1a.google.protobuf.FieldMaskR\tfieldMask\x127\n" +
	"\tnull_mask\x18\x05 \x01(\v2\x1a.google.protobuf.FieldMaskR\bnullMask\x12G\n" +
	"\aoptions\x18\x06 \x01(\v2-.controller.storage.oplog.v1.OperationOptionsR\aoptions\"\xd9\x02\n" +
	"\x10OperationOptions\x12?\n" +
	"\fwith_version\x18\x01 \x01(\v2\x1c.google.protobuf.UInt32ValueR\vwithVersion\x124\n" +
	"\x17with_skip_vet_for_write\x18\x02 \x01(\bR\x13withSkipVetForWrite\x12*\n" +
	"\x11with_where_clause\x18\x03 \x01(\tR\x0fwithWhereClause\x12K\n" +
	"\x16with_where_clause_args\x18\x04 \x03(\v2\x16.google.protobuf.ValueR\x13withWhereClauseArgs\x12U\n" +
	"\x10with_on_conflict\x18\x05 \x01(\v2+.controller.storage.oplog.v1.WithOnConflictR\x0ewithOnConflict\"\x9c\x02\n" +
	"\x0eWithOnConflict\x12 \n" +
	"\n" +
	"constraint\x18\n" +
	" \x01(\tH\x00R\n" +
	"constraint\x12@\n" +
	"\acolumns\x18\v \x01(\v2$.controller.storage.oplog.v1.ColumnsH\x00R\acolumns\x12\x1f\n" +
	"\n" +
	"do_nothing\x182 \x01(\bH\x01R\tdoNothing\x12\x1f\n" +
	"\n" +
	"update_all\x183 \x01(\bH\x01R\tupdateAll\x12P\n" +
	"\rcolumn_values\x184 \x01(\v2).controller.storage.oplog.v1.ColumnValuesH\x01R\fcolumnValuesB\b\n" +
	"\x06targetB\b\n" +
	"\x06action\"\x1f\n" +
	"\aColumns\x12\x14\n" +
	"\x05names\x18\x01 \x03(\tR\x05names\"\xde\x01\n" +
	"\vColumnValue\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12*\n" +
	"\x03raw\x18\x02 \x01(\v2\x16.google.protobuf.ValueH\x00R\x03raw\x12G\n" +
	"\n" +
	"expr_value\x18\x03 \x01(\v2&.controller.storage.oplog.v1.ExprValueH\x00R\texprValue\x12=\n" +
	"\x06column\x18\x04 \x01(\v2#.controller.storage.oplog.v1.ColumnH\x00R\x06columnB\a\n" +
	"\x05value\"P\n" +
	"\fColumnValues\x12@\n" +
	"\x06values\x18\x01 \x03(\v2(.controller.storage.oplog.v1.ColumnValueR\x06values\"I\n" +
	"\tExprValue\x12\x10\n" +
	"\x03sql\x18\x01 \x01(\tR\x03sql\x12*\n" +
	"\x04args\x18\x02 \x03(\v2\x16.google.protobuf.ValueR\x04args\"2\n" +
	"\x06Column\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
	"\x05table\x18\x02 \x01(\tR\x05table*\x91\x01\n" +
	"\x06OpType\x12\x17\n" +
	"\x13OP_TYPE_UNSPECIFIED\x10\x00\x12\x12\n" +
	"\x0eOP_TYPE_CREATE\x10\x01\x12\x12\n" +
	"\x0eOP_TYPE_UPDATE\x10\x02\x12\x12\n" +
	"\x0eOP_TYPE_DELETE\x10\x03\x12\x18\n" +
	"\x14OP_TYPE_CREATE_ITEMS\x10\x04\x12\x18\n" +
	"\x14OP_TYPE_DELETE_ITEMS\x10\x05B4Z2github.com/hashicorp/boundary/internal/oplog;oplogb\x06proto3"

var (
	file_controller_storage_oplog_v1_any_operation_proto_rawDescOnce sync.Once
	file_controller_storage_oplog_v1_any_operation_proto_rawDescData []byte
)

func file_controller_storage_oplog_v1_any_operation_proto_rawDescGZIP() []byte {
	file_controller_storage_oplog_v1_any_operation_proto_rawDescOnce.Do(func() {
		file_controller_storage_oplog_v1_any_operation_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_controller_storage_oplog_v1_any_operation_proto_rawDesc), len(file_controller_storage_oplog_v1_any_operation_proto_rawDesc)))
	})
	return file_controller_storage_oplog_v1_any_operation_proto_rawDescData
}

var file_controller_storage_oplog_v1_any_operation_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_controller_storage_oplog_v1_any_operation_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_controller_storage_oplog_v1_any_operation_proto_goTypes = []any{
	(OpType)(0),                    // 0: controller.storage.oplog.v1.OpType
	(*AnyOperation)(nil),           // 1: controller.storage.oplog.v1.AnyOperation
	(*OperationOptions)(nil),       // 2: controller.storage.oplog.v1.OperationOptions
	(*WithOnConflict)(nil),         // 3: controller.storage.oplog.v1.WithOnConflict
	(*Columns)(nil),                // 4: controller.storage.oplog.v1.Columns
	(*ColumnValue)(nil),            // 5: controller.storage.oplog.v1.ColumnValue
	(*ColumnValues)(nil),           // 6: controller.storage.oplog.v1.ColumnValues
	(*ExprValue)(nil),              // 7: controller.storage.oplog.v1.ExprValue
	(*Column)(nil),                 // 8: controller.storage.oplog.v1.Column
	(*fieldmaskpb.FieldMask)(nil),  // 9: google.protobuf.FieldMask
	(*wrapperspb.UInt32Value)(nil), // 10: google.protobuf.UInt32Value
	(*structpb.Value)(nil),         // 11: google.protobuf.Value
}
var file_controller_storage_oplog_v1_any_operation_proto_depIdxs = []int32{
	0,  // 0: controller.storage.oplog.v1.AnyOperation.operation_type:type_name -> controller.storage.oplog.v1.OpType
	9,  // 1: controller.storage.oplog.v1.AnyOperation.field_mask:type_name -> google.protobuf.FieldMask
	9,  // 2: controller.storage.oplog.v1.AnyOperation.null_mask:type_name -> google.protobuf.FieldMask
	2,  // 3: controller.storage.oplog.v1.AnyOperation.options:type_name -> controller.storage.oplog.v1.OperationOptions
	10, // 4: controller.storage.oplog.v1.OperationOptions.with_version:type_name -> google.protobuf.UInt32Value
	11, // 5: controller.storage.oplog.v1.OperationOptions.with_where_clause_args:type_name -> google.protobuf.Value
	3,  // 6: controller.storage.oplog.v1.OperationOptions.with_on_conflict:type_name -> controller.storage.oplog.v1.WithOnConflict
	4,  // 7: controller.storage.oplog.v1.WithOnConflict.columns:type_name -> controller.storage.oplog.v1.Columns
	6,  // 8: controller.storage.oplog.v1.WithOnConflict.column_values:type_name -> controller.storage.oplog.v1.ColumnValues
	11, // 9: controller.storage.oplog.v1.ColumnValue.raw:type_name -> google.protobuf.Value
	7,  // 10: controller.storage.oplog.v1.ColumnValue.expr_value:type_name -> controller.storage.oplog.v1.ExprValue
	8,  // 11: controller.storage.oplog.v1.ColumnValue.column:type_name -> controller.storage.oplog.v1.Column
	5,  // 12: controller.storage.oplog.v1.ColumnValues.values:type_name -> controller.storage.oplog.v1.ColumnValue
	11, // 13: controller.storage.oplog.v1.ExprValue.args:type_name -> google.protobuf.Value
	14, // [14:14] is the sub-list for method output_type
	14, // [14:14] is the sub-list for method input_type
	14, // [14:14] is the sub-list for extension type_name
	14, // [14:14] is the sub-list for extension extendee
	0,  // [0:14] is the sub-list for field type_name
}

func init() { file_controller_storage_oplog_v1_any_operation_proto_init() }
func file_controller_storage_oplog_v1_any_operation_proto_init() {
	if File_controller_storage_oplog_v1_any_operation_proto != nil {
		return
	}
	file_controller_storage_oplog_v1_any_operation_proto_msgTypes[2].OneofWrappers = []any{
		(*WithOnConflict_Constraint)(nil),
		(*WithOnConflict_Columns)(nil),
		(*WithOnConflict_DoNothing)(nil),
		(*WithOnConflict_UpdateAll)(nil),
		(*WithOnConflict_ColumnValues)(nil),
	}
	file_controller_storage_oplog_v1_any_operation_proto_msgTypes[4].OneofWrappers = []any{
		(*ColumnValue_Raw)(nil),
		(*ColumnValue_ExprValue)(nil),
		(*ColumnValue_Column)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_controller_storage_oplog_v1_any_operation_proto_rawDesc), len(file_controller_storage_oplog_v1_any_operation_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   8,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_controller_storage_oplog_v1_any_operation_proto_goTypes,
		DependencyIndexes: file_controller_storage_oplog_v1_any_operation_proto_depIdxs,
		EnumInfos:         file_controller_storage_oplog_v1_any_operation_proto_enumTypes,
		MessageInfos:      file_controller_storage_oplog_v1_any_operation_proto_msgTypes,
	}.Build()
	File_controller_storage_oplog_v1_any_operation_proto = out.File
	file_controller_storage_oplog_v1_any_operation_proto_goTypes = nil
	file_controller_storage_oplog_v1_any_operation_proto_depIdxs = nil
}
