blob: 8842a409c2c13ca5eece922d484202811a1fdb6c [file] [edit]
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.11
// protoc v6.33.2
// source: google/spanner/v1/mutation.proto
package spannerpb
import (
reflect "reflect"
sync "sync"
unsafe "unsafe"
_ "google.golang.org/genproto/googleapis/api/annotations"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
structpb "google.golang.org/protobuf/types/known/structpb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)
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)
)
// A modification to one or more Cloud Spanner rows. Mutations can be
// applied to a Cloud Spanner database by sending them in a
// [Commit][google.spanner.v1.Spanner.Commit] call.
type Mutation struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required. The operation to perform.
//
// Types that are valid to be assigned to Operation:
//
// *Mutation_Insert
// *Mutation_Update
// *Mutation_InsertOrUpdate
// *Mutation_Replace
// *Mutation_Delete_
// *Mutation_Send_
// *Mutation_Ack_
Operation isMutation_Operation `protobuf_oneof:"operation"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Mutation) Reset() {
*x = Mutation{}
mi := &file_google_spanner_v1_mutation_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Mutation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Mutation) ProtoMessage() {}
func (x *Mutation) ProtoReflect() protoreflect.Message {
mi := &file_google_spanner_v1_mutation_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 Mutation.ProtoReflect.Descriptor instead.
func (*Mutation) Descriptor() ([]byte, []int) {
return file_google_spanner_v1_mutation_proto_rawDescGZIP(), []int{0}
}
func (x *Mutation) GetOperation() isMutation_Operation {
if x != nil {
return x.Operation
}
return nil
}
func (x *Mutation) GetInsert() *Mutation_Write {
if x != nil {
if x, ok := x.Operation.(*Mutation_Insert); ok {
return x.Insert
}
}
return nil
}
func (x *Mutation) GetUpdate() *Mutation_Write {
if x != nil {
if x, ok := x.Operation.(*Mutation_Update); ok {
return x.Update
}
}
return nil
}
func (x *Mutation) GetInsertOrUpdate() *Mutation_Write {
if x != nil {
if x, ok := x.Operation.(*Mutation_InsertOrUpdate); ok {
return x.InsertOrUpdate
}
}
return nil
}
func (x *Mutation) GetReplace() *Mutation_Write {
if x != nil {
if x, ok := x.Operation.(*Mutation_Replace); ok {
return x.Replace
}
}
return nil
}
func (x *Mutation) GetDelete() *Mutation_Delete {
if x != nil {
if x, ok := x.Operation.(*Mutation_Delete_); ok {
return x.Delete
}
}
return nil
}
func (x *Mutation) GetSend() *Mutation_Send {
if x != nil {
if x, ok := x.Operation.(*Mutation_Send_); ok {
return x.Send
}
}
return nil
}
func (x *Mutation) GetAck() *Mutation_Ack {
if x != nil {
if x, ok := x.Operation.(*Mutation_Ack_); ok {
return x.Ack
}
}
return nil
}
type isMutation_Operation interface {
isMutation_Operation()
}
type Mutation_Insert struct {
// Insert new rows in a table. If any of the rows already exist,
// the write or transaction fails with error `ALREADY_EXISTS`.
Insert *Mutation_Write `protobuf:"bytes,1,opt,name=insert,proto3,oneof"`
}
type Mutation_Update struct {
// Update existing rows in a table. If any of the rows does not
// already exist, the transaction fails with error `NOT_FOUND`.
Update *Mutation_Write `protobuf:"bytes,2,opt,name=update,proto3,oneof"`
}
type Mutation_InsertOrUpdate struct {
// Like [insert][google.spanner.v1.Mutation.insert], except that if the row
// already exists, then its column values are overwritten with the ones
// provided. Any column values not explicitly written are preserved.
//
// When using
// [insert_or_update][google.spanner.v1.Mutation.insert_or_update], just as
// when using [insert][google.spanner.v1.Mutation.insert], all `NOT NULL`
// columns in the table must be given a value. This holds true even when the
// row already exists and will therefore actually be updated.
InsertOrUpdate *Mutation_Write `protobuf:"bytes,3,opt,name=insert_or_update,json=insertOrUpdate,proto3,oneof"`
}
type Mutation_Replace struct {
// Like [insert][google.spanner.v1.Mutation.insert], except that if the row
// already exists, it is deleted, and the column values provided are
// inserted instead. Unlike
// [insert_or_update][google.spanner.v1.Mutation.insert_or_update], this
// means any values not explicitly written become `NULL`.
//
// In an interleaved table, if you create the child table with the
// `ON DELETE CASCADE` annotation, then replacing a parent row
// also deletes the child rows. Otherwise, you must delete the
// child rows before you replace the parent row.
Replace *Mutation_Write `protobuf:"bytes,4,opt,name=replace,proto3,oneof"`
}
type Mutation_Delete_ struct {
// Delete rows from a table. Succeeds whether or not the named
// rows were present.
Delete *Mutation_Delete `protobuf:"bytes,5,opt,name=delete,proto3,oneof"`
}
type Mutation_Send_ struct {
// Send a message to a queue.
Send *Mutation_Send `protobuf:"bytes,6,opt,name=send,proto3,oneof"`
}
type Mutation_Ack_ struct {
// Ack a message from a queue.
Ack *Mutation_Ack `protobuf:"bytes,7,opt,name=ack,proto3,oneof"`
}
func (*Mutation_Insert) isMutation_Operation() {}
func (*Mutation_Update) isMutation_Operation() {}
func (*Mutation_InsertOrUpdate) isMutation_Operation() {}
func (*Mutation_Replace) isMutation_Operation() {}
func (*Mutation_Delete_) isMutation_Operation() {}
func (*Mutation_Send_) isMutation_Operation() {}
func (*Mutation_Ack_) isMutation_Operation() {}
// Arguments to [insert][google.spanner.v1.Mutation.insert],
// [update][google.spanner.v1.Mutation.update],
// [insert_or_update][google.spanner.v1.Mutation.insert_or_update], and
// [replace][google.spanner.v1.Mutation.replace] operations.
type Mutation_Write struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required. The table whose rows will be written.
Table string `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"`
// The names of the columns in
// [table][google.spanner.v1.Mutation.Write.table] to be written.
//
// The list of columns must contain enough columns to allow
// Cloud Spanner to derive values for all primary key columns in the
// row(s) to be modified.
Columns []string `protobuf:"bytes,2,rep,name=columns,proto3" json:"columns,omitempty"`
// The values to be written. `values` can contain more than one
// list of values. If it does, then multiple rows are written, one
// for each entry in `values`. Each list in `values` must have
// exactly as many entries as there are entries in
// [columns][google.spanner.v1.Mutation.Write.columns] above. Sending
// multiple lists is equivalent to sending multiple `Mutation`s, each
// containing one `values` entry and repeating
// [table][google.spanner.v1.Mutation.Write.table] and
// [columns][google.spanner.v1.Mutation.Write.columns]. Individual values in
// each list are encoded as described [here][google.spanner.v1.TypeCode].
Values []*structpb.ListValue `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Mutation_Write) Reset() {
*x = Mutation_Write{}
mi := &file_google_spanner_v1_mutation_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Mutation_Write) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Mutation_Write) ProtoMessage() {}
func (x *Mutation_Write) ProtoReflect() protoreflect.Message {
mi := &file_google_spanner_v1_mutation_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 Mutation_Write.ProtoReflect.Descriptor instead.
func (*Mutation_Write) Descriptor() ([]byte, []int) {
return file_google_spanner_v1_mutation_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Mutation_Write) GetTable() string {
if x != nil {
return x.Table
}
return ""
}
func (x *Mutation_Write) GetColumns() []string {
if x != nil {
return x.Columns
}
return nil
}
func (x *Mutation_Write) GetValues() []*structpb.ListValue {
if x != nil {
return x.Values
}
return nil
}
// Arguments to [delete][google.spanner.v1.Mutation.delete] operations.
type Mutation_Delete struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required. The table whose rows will be deleted.
Table string `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"`
// Required. The primary keys of the rows within
// [table][google.spanner.v1.Mutation.Delete.table] to delete. The primary
// keys must be specified in the order in which they appear in the `PRIMARY
// KEY()` clause of the table's equivalent DDL statement (the DDL statement
// used to create the table). Delete is idempotent. The transaction will
// succeed even if some or all rows do not exist.
KeySet *KeySet `protobuf:"bytes,2,opt,name=key_set,json=keySet,proto3" json:"key_set,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Mutation_Delete) Reset() {
*x = Mutation_Delete{}
mi := &file_google_spanner_v1_mutation_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Mutation_Delete) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Mutation_Delete) ProtoMessage() {}
func (x *Mutation_Delete) ProtoReflect() protoreflect.Message {
mi := &file_google_spanner_v1_mutation_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 Mutation_Delete.ProtoReflect.Descriptor instead.
func (*Mutation_Delete) Descriptor() ([]byte, []int) {
return file_google_spanner_v1_mutation_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Mutation_Delete) GetTable() string {
if x != nil {
return x.Table
}
return ""
}
func (x *Mutation_Delete) GetKeySet() *KeySet {
if x != nil {
return x.KeySet
}
return nil
}
// Arguments to [send][google.spanner.v1.Mutation.send] operations.
type Mutation_Send struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required. The queue to which the message will be sent.
Queue string `protobuf:"bytes,1,opt,name=queue,proto3" json:"queue,omitempty"`
// Required. The primary key of the message to be sent.
Key *structpb.ListValue `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
// The time at which Spanner will begin attempting to deliver the message.
// If `deliver_time` is not set, Spanner will deliver the message
// immediately. If `deliver_time` is in the past, Spanner will replace it
// with a value closer to the current time.
DeliverTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=deliver_time,json=deliverTime,proto3" json:"deliver_time,omitempty"`
// The payload of the message.
Payload *structpb.Value `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Mutation_Send) Reset() {
*x = Mutation_Send{}
mi := &file_google_spanner_v1_mutation_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Mutation_Send) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Mutation_Send) ProtoMessage() {}
func (x *Mutation_Send) ProtoReflect() protoreflect.Message {
mi := &file_google_spanner_v1_mutation_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 Mutation_Send.ProtoReflect.Descriptor instead.
func (*Mutation_Send) Descriptor() ([]byte, []int) {
return file_google_spanner_v1_mutation_proto_rawDescGZIP(), []int{0, 2}
}
func (x *Mutation_Send) GetQueue() string {
if x != nil {
return x.Queue
}
return ""
}
func (x *Mutation_Send) GetKey() *structpb.ListValue {
if x != nil {
return x.Key
}
return nil
}
func (x *Mutation_Send) GetDeliverTime() *timestamppb.Timestamp {
if x != nil {
return x.DeliverTime
}
return nil
}
func (x *Mutation_Send) GetPayload() *structpb.Value {
if x != nil {
return x.Payload
}
return nil
}
// Arguments to [ack][google.spanner.v1.Mutation.ack] operations.
type Mutation_Ack struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required. The queue where the message to be acked is stored.
Queue string `protobuf:"bytes,1,opt,name=queue,proto3" json:"queue,omitempty"`
// Required. The primary key of the message to be acked.
Key *structpb.ListValue `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
// By default, an attempt to ack a message that does not exist will fail
// with a `NOT_FOUND` error. With `ignore_not_found` set to true, the ack
// will succeed even if the message does not exist. This is useful for
// unconditionally acking a message, even if it is missing or has already
// been acked.
IgnoreNotFound bool `protobuf:"varint,3,opt,name=ignore_not_found,json=ignoreNotFound,proto3" json:"ignore_not_found,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *Mutation_Ack) Reset() {
*x = Mutation_Ack{}
mi := &file_google_spanner_v1_mutation_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *Mutation_Ack) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Mutation_Ack) ProtoMessage() {}
func (x *Mutation_Ack) ProtoReflect() protoreflect.Message {
mi := &file_google_spanner_v1_mutation_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 Mutation_Ack.ProtoReflect.Descriptor instead.
func (*Mutation_Ack) Descriptor() ([]byte, []int) {
return file_google_spanner_v1_mutation_proto_rawDescGZIP(), []int{0, 3}
}
func (x *Mutation_Ack) GetQueue() string {
if x != nil {
return x.Queue
}
return ""
}
func (x *Mutation_Ack) GetKey() *structpb.ListValue {
if x != nil {
return x.Key
}
return nil
}
func (x *Mutation_Ack) GetIgnoreNotFound() bool {
if x != nil {
return x.IgnoreNotFound
}
return false
}
var File_google_spanner_v1_mutation_proto protoreflect.FileDescriptor
const file_google_spanner_v1_mutation_proto_rawDesc = "" +
"\n" +
" google/spanner/v1/mutation.proto\x12\x11google.spanner.v1\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/spanner/v1/keys.proto\"\xe1\a\n" +
"\bMutation\x12;\n" +
"\x06insert\x18\x01 \x01(\v2!.google.spanner.v1.Mutation.WriteH\x00R\x06insert\x12;\n" +
"\x06update\x18\x02 \x01(\v2!.google.spanner.v1.Mutation.WriteH\x00R\x06update\x12M\n" +
"\x10insert_or_update\x18\x03 \x01(\v2!.google.spanner.v1.Mutation.WriteH\x00R\x0einsertOrUpdate\x12=\n" +
"\areplace\x18\x04 \x01(\v2!.google.spanner.v1.Mutation.WriteH\x00R\areplace\x12<\n" +
"\x06delete\x18\x05 \x01(\v2\".google.spanner.v1.Mutation.DeleteH\x00R\x06delete\x126\n" +
"\x04send\x18\x06 \x01(\v2 .google.spanner.v1.Mutation.SendH\x00R\x04send\x123\n" +
"\x03ack\x18\a \x01(\v2\x1f.google.spanner.v1.Mutation.AckH\x00R\x03ack\x1ap\n" +
"\x05Write\x12\x19\n" +
"\x05table\x18\x01 \x01(\tB\x03\xe0A\x02R\x05table\x12\x18\n" +
"\acolumns\x18\x02 \x03(\tR\acolumns\x122\n" +
"\x06values\x18\x03 \x03(\v2\x1a.google.protobuf.ListValueR\x06values\x1a\\\n" +
"\x06Delete\x12\x19\n" +
"\x05table\x18\x01 \x01(\tB\x03\xe0A\x02R\x05table\x127\n" +
"\akey_set\x18\x02 \x01(\v2\x19.google.spanner.v1.KeySetB\x03\xe0A\x02R\x06keySet\x1a\xc5\x01\n" +
"\x04Send\x12\x19\n" +
"\x05queue\x18\x01 \x01(\tB\x03\xe0A\x02R\x05queue\x121\n" +
"\x03key\x18\x02 \x01(\v2\x1a.google.protobuf.ListValueB\x03\xe0A\x02R\x03key\x12=\n" +
"\fdeliver_time\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\vdeliverTime\x120\n" +
"\apayload\x18\x04 \x01(\v2\x16.google.protobuf.ValueR\apayload\x1a}\n" +
"\x03Ack\x12\x19\n" +
"\x05queue\x18\x01 \x01(\tB\x03\xe0A\x02R\x05queue\x121\n" +
"\x03key\x18\x02 \x01(\v2\x1a.google.protobuf.ListValueB\x03\xe0A\x02R\x03key\x12(\n" +
"\x10ignore_not_found\x18\x03 \x01(\bR\x0eignoreNotFoundB\v\n" +
"\toperationB\xb0\x01\n" +
"\x15com.google.spanner.v1B\rMutationProtoP\x01Z5cloud.google.com/go/spanner/apiv1/spannerpb;spannerpb\xaa\x02\x17Google.Cloud.Spanner.V1\xca\x02\x17Google\\Cloud\\Spanner\\V1\xea\x02\x1aGoogle::Cloud::Spanner::V1b\x06proto3"
var (
file_google_spanner_v1_mutation_proto_rawDescOnce sync.Once
file_google_spanner_v1_mutation_proto_rawDescData []byte
)
func file_google_spanner_v1_mutation_proto_rawDescGZIP() []byte {
file_google_spanner_v1_mutation_proto_rawDescOnce.Do(func() {
file_google_spanner_v1_mutation_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_spanner_v1_mutation_proto_rawDesc), len(file_google_spanner_v1_mutation_proto_rawDesc)))
})
return file_google_spanner_v1_mutation_proto_rawDescData
}
var file_google_spanner_v1_mutation_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_google_spanner_v1_mutation_proto_goTypes = []any{
(*Mutation)(nil), // 0: google.spanner.v1.Mutation
(*Mutation_Write)(nil), // 1: google.spanner.v1.Mutation.Write
(*Mutation_Delete)(nil), // 2: google.spanner.v1.Mutation.Delete
(*Mutation_Send)(nil), // 3: google.spanner.v1.Mutation.Send
(*Mutation_Ack)(nil), // 4: google.spanner.v1.Mutation.Ack
(*structpb.ListValue)(nil), // 5: google.protobuf.ListValue
(*KeySet)(nil), // 6: google.spanner.v1.KeySet
(*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp
(*structpb.Value)(nil), // 8: google.protobuf.Value
}
var file_google_spanner_v1_mutation_proto_depIdxs = []int32{
1, // 0: google.spanner.v1.Mutation.insert:type_name -> google.spanner.v1.Mutation.Write
1, // 1: google.spanner.v1.Mutation.update:type_name -> google.spanner.v1.Mutation.Write
1, // 2: google.spanner.v1.Mutation.insert_or_update:type_name -> google.spanner.v1.Mutation.Write
1, // 3: google.spanner.v1.Mutation.replace:type_name -> google.spanner.v1.Mutation.Write
2, // 4: google.spanner.v1.Mutation.delete:type_name -> google.spanner.v1.Mutation.Delete
3, // 5: google.spanner.v1.Mutation.send:type_name -> google.spanner.v1.Mutation.Send
4, // 6: google.spanner.v1.Mutation.ack:type_name -> google.spanner.v1.Mutation.Ack
5, // 7: google.spanner.v1.Mutation.Write.values:type_name -> google.protobuf.ListValue
6, // 8: google.spanner.v1.Mutation.Delete.key_set:type_name -> google.spanner.v1.KeySet
5, // 9: google.spanner.v1.Mutation.Send.key:type_name -> google.protobuf.ListValue
7, // 10: google.spanner.v1.Mutation.Send.deliver_time:type_name -> google.protobuf.Timestamp
8, // 11: google.spanner.v1.Mutation.Send.payload:type_name -> google.protobuf.Value
5, // 12: google.spanner.v1.Mutation.Ack.key:type_name -> google.protobuf.ListValue
13, // [13:13] is the sub-list for method output_type
13, // [13:13] is the sub-list for method input_type
13, // [13:13] is the sub-list for extension type_name
13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
}
func init() { file_google_spanner_v1_mutation_proto_init() }
func file_google_spanner_v1_mutation_proto_init() {
if File_google_spanner_v1_mutation_proto != nil {
return
}
file_google_spanner_v1_keys_proto_init()
file_google_spanner_v1_mutation_proto_msgTypes[0].OneofWrappers = []any{
(*Mutation_Insert)(nil),
(*Mutation_Update)(nil),
(*Mutation_InsertOrUpdate)(nil),
(*Mutation_Replace)(nil),
(*Mutation_Delete_)(nil),
(*Mutation_Send_)(nil),
(*Mutation_Ack_)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_spanner_v1_mutation_proto_rawDesc), len(file_google_spanner_v1_mutation_proto_rawDesc)),
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_spanner_v1_mutation_proto_goTypes,
DependencyIndexes: file_google_spanner_v1_mutation_proto_depIdxs,
MessageInfos: file_google_spanner_v1_mutation_proto_msgTypes,
}.Build()
File_google_spanner_v1_mutation_proto = out.File
file_google_spanner_v1_mutation_proto_goTypes = nil
file_google_spanner_v1_mutation_proto_depIdxs = nil
}