diff --git a/testproxypb/test_proxy.pb.go b/testproxypb/test_proxy.pb.go index 84a14831..5a527b2c 100644 --- a/testproxypb/test_proxy.pb.go +++ b/testproxypb/test_proxy.pb.go @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.3 -// protoc v5.27.3 +// protoc-gen-go v1.36.9 +// protoc v6.32.0 // source: test_proxy.proto package testproxypb @@ -26,9 +26,11 @@ import ( status "google.golang.org/genproto/googleapis/rpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" durationpb "google.golang.org/protobuf/types/known/durationpb" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -1160,9 +1162,13 @@ type ExecuteQueryRequest struct { // The ID of the target client object. ClientId string `protobuf:"bytes,1,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"` // The raw request to the Bigtable server. - Request *bigtablepb.ExecuteQueryRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + Request *bigtablepb.ExecuteQueryRequest `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + // A collection of proto descriptor files for deserializing PROTO/ENUM columns + // in the query result. The descriptor files must be provided in dependency + // order. + FileDescriptorSet *descriptorpb.FileDescriptorSet `protobuf:"bytes,3,opt,name=file_descriptor_set,json=fileDescriptorSet,proto3" json:"file_descriptor_set,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ExecuteQueryRequest) Reset() { @@ -1209,6 +1215,13 @@ func (x *ExecuteQueryRequest) GetRequest() *bigtablepb.ExecuteQueryRequest { return nil } +func (x *ExecuteQueryRequest) GetFileDescriptorSet() *descriptorpb.FileDescriptorSet { + if x != nil { + return x.FileDescriptorSet + } + return nil +} + // Response from test proxy service for ExecuteQueryRequest. type ExecuteQueryResult struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -1446,306 +1459,114 @@ func (x *CreateClientRequest_SecurityOptions) GetSslRootCertsPem() string { var File_test_proxy_proto protoreflect.FileDescriptor -var file_test_proxy_proto_rawDesc = []byte{ - 0x0a, 0x10, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x1a, 0x17, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x62, - 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x62, 0x69, 0x67, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x8e, 0x05, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, - 0x61, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x5f, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x61, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x4d, 0x0a, - 0x15, 0x70, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x70, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x68, 0x0a, 0x17, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, - 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x69, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, - 0x74, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x1a, 0xae, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x5f, - 0x73, 0x73, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x73, 0x65, 0x53, 0x73, - 0x6c, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x73, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x13, 0x73, 0x73, 0x6c, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x12, 0x73, 0x73, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, - 0x74, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x73, 0x73, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x43, 0x65, 0x72, 0x74, 0x73, 0x50, - 0x65, 0x6d, 0x22, 0x16, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x0a, 0x12, 0x43, 0x6c, - 0x6f, 0x73, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x15, 0x0a, - 0x13, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x77, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x72, 0x6f, 0x77, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, - 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, - 0x62, 0x0a, 0x09, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x03, 0x72, 0x6f, 0x77, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, - 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x77, 0x52, 0x03, - 0x72, 0x6f, 0x77, 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x77, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, - 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, - 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x5f, 0x61, 0x66, - 0x74, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, - 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x77, 0x73, 0x22, - 0x65, 0x0a, 0x0a, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x72, 0x6f, 0x77, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x6f, 0x77, - 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x22, 0x6f, 0x0a, 0x10, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4d, 0x75, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x0f, 0x4d, 0x75, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x71, 0x0a, 0x11, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x4d, - 0x75, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x10, 0x4d, 0x75, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x46, 0x0a, 0x07, 0x65, 0x6e, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x32, - 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x22, 0x7f, 0x0a, 0x18, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x6e, 0x64, 0x4d, 0x75, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, - 0x32, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x6e, 0x64, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x6e, 0x64, - 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, - 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x45, 0x0a, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x32, - 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x6e, 0x64, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x77, 0x0a, 0x14, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x4b, - 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x61, - 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x13, - 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x43, 0x0a, 0x07, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x4b, - 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x73, 0x61, 0x6d, - 0x70, 0x6c, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, - 0x69, 0x66, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, - 0x47, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x75, 0x0a, 0x13, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x07, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, - 0x76, 0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0xc1, 0x01, 0x0a, 0x12, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x48, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, - 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x04, - 0x72, 0x6f, 0x77, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x53, 0x71, 0x6c, 0x52, 0x6f, 0x77, 0x52, 0x04, 0x72, - 0x6f, 0x77, 0x73, 0x22, 0x51, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x65, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3c, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x07, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x22, 0x3b, 0x0a, 0x06, 0x53, 0x71, 0x6c, 0x52, 0x6f, 0x77, - 0x12, 0x31, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x2e, 0x76, 0x32, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x2a, 0x64, 0x0a, 0x15, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, - 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x23, 0x0a, 0x1f, - 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, - 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, - 0x00, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x46, 0x45, - 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x45, 0x4e, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x32, 0x95, 0x0a, 0x0a, 0x18, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x32, 0x54, 0x65, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x71, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0b, 0x43, 0x6c, 0x6f, - 0x73, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x0c, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x07, - 0x52, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x77, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x52, - 0x6f, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x08, 0x52, 0x65, - 0x61, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x52, - 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x09, 0x4d, - 0x75, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, - 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, - 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x00, 0x12, 0x6d, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, 0x4d, 0x75, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, - 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, - 0x79, 0x2e, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x6e, 0x64, 0x4d, 0x75, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x6e, 0x64, 0x4d, 0x75, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, - 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x41, 0x6e, - 0x64, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0d, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x4b, - 0x65, 0x79, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, - 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, - 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, - 0x2e, 0x53, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x6f, 0x77, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x12, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x6f, - 0x64, 0x69, 0x66, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x12, 0x34, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, - 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x6f, 0x64, - 0x69, 0x66, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, - 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x52, - 0x6f, 0x77, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0c, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x1a, 0x34, 0xca, 0x41, 0x31, - 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2d, 0x74, 0x65, 0x73, 0x74, 0x2d, 0x70, 0x72, - 0x6f, 0x78, 0x79, 0x2d, 0x6e, 0x6f, 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, - 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, - 0x6d, 0x42, 0x67, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x74, - 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, - 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, - 0x78, 0x79, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x70, 0x62, 0x3b, 0x74, - 0x65, 0x73, 0x74, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} +const file_test_proxy_proto_rawDesc = "" + + "\n" + + "\x10test_proxy.proto\x12\x19google.bigtable.testproxy\x1a\x17google/api/client.proto\x1a!google/bigtable/v2/bigtable.proto\x1a\x1dgoogle/bigtable/v2/data.proto\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\"\x8e\x05\n" + + "\x13CreateClientRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12\x1f\n" + + "\vdata_target\x18\x02 \x01(\tR\n" + + "dataTarget\x12\x1d\n" + + "\n" + + "project_id\x18\x03 \x01(\tR\tprojectId\x12\x1f\n" + + "\vinstance_id\x18\x04 \x01(\tR\n" + + "instanceId\x12$\n" + + "\x0eapp_profile_id\x18\x05 \x01(\tR\fappProfileId\x12M\n" + + "\x15per_operation_timeout\x18\x06 \x01(\v2\x19.google.protobuf.DurationR\x13perOperationTimeout\x12h\n" + + "\x17optional_feature_config\x18\a \x01(\x0e20.google.bigtable.testproxy.OptionalFeatureConfigR\x15optionalFeatureConfig\x12i\n" + + "\x10security_options\x18\b \x01(\v2>.google.bigtable.testproxy.CreateClientRequest.SecurityOptionsR\x0fsecurityOptions\x1a\xae\x01\n" + + "\x0fSecurityOptions\x12!\n" + + "\faccess_token\x18\x01 \x01(\tR\vaccessToken\x12\x17\n" + + "\ause_ssl\x18\x02 \x01(\bR\x06useSsl\x122\n" + + "\x15ssl_endpoint_override\x18\x03 \x01(\tR\x13sslEndpointOverride\x12+\n" + + "\x12ssl_root_certs_pem\x18\x04 \x01(\tR\x0fsslRootCertsPem\"\x16\n" + + "\x14CreateClientResponse\"1\n" + + "\x12CloseClientRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\"\x15\n" + + "\x13CloseClientResponse\"2\n" + + "\x13RemoveClientRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\"\x16\n" + + "\x14RemoveClientResponse\"\x9c\x01\n" + + "\x0eReadRowRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12\x1d\n" + + "\n" + + "table_name\x18\x04 \x01(\tR\ttableName\x12\x17\n" + + "\arow_key\x18\x02 \x01(\tR\x06rowKey\x125\n" + + "\x06filter\x18\x03 \x01(\v2\x1d.google.bigtable.v2.RowFilterR\x06filter\"b\n" + + "\tRowResult\x12*\n" + + "\x06status\x18\x01 \x01(\v2\x12.google.rpc.StatusR\x06status\x12)\n" + + "\x03row\x18\x02 \x01(\v2\x17.google.bigtable.v2.RowR\x03row\"\x99\x01\n" + + "\x0fReadRowsRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12=\n" + + "\arequest\x18\x02 \x01(\v2#.google.bigtable.v2.ReadRowsRequestR\arequest\x12*\n" + + "\x11cancel_after_rows\x18\x03 \x01(\x05R\x0fcancelAfterRows\"e\n" + + "\n" + + "RowsResult\x12*\n" + + "\x06status\x18\x01 \x01(\v2\x12.google.rpc.StatusR\x06status\x12+\n" + + "\x04rows\x18\x02 \x03(\v2\x17.google.bigtable.v2.RowR\x04rows\"o\n" + + "\x10MutateRowRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12>\n" + + "\arequest\x18\x02 \x01(\v2$.google.bigtable.v2.MutateRowRequestR\arequest\"=\n" + + "\x0fMutateRowResult\x12*\n" + + "\x06status\x18\x01 \x01(\v2\x12.google.rpc.StatusR\x06status\"q\n" + + "\x11MutateRowsRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12?\n" + + "\arequest\x18\x02 \x01(\v2%.google.bigtable.v2.MutateRowsRequestR\arequest\"\x86\x01\n" + + "\x10MutateRowsResult\x12*\n" + + "\x06status\x18\x01 \x01(\v2\x12.google.rpc.StatusR\x06status\x12F\n" + + "\aentries\x18\x02 \x03(\v2,.google.bigtable.v2.MutateRowsResponse.EntryR\aentries\"\x7f\n" + + "\x18CheckAndMutateRowRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12F\n" + + "\arequest\x18\x02 \x01(\v2,.google.bigtable.v2.CheckAndMutateRowRequestR\arequest\"\x8c\x01\n" + + "\x17CheckAndMutateRowResult\x12*\n" + + "\x06status\x18\x01 \x01(\v2\x12.google.rpc.StatusR\x06status\x12E\n" + + "\x06result\x18\x02 \x01(\v2-.google.bigtable.v2.CheckAndMutateRowResponseR\x06result\"w\n" + + "\x14SampleRowKeysRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12B\n" + + "\arequest\x18\x02 \x01(\v2(.google.bigtable.v2.SampleRowKeysRequestR\arequest\"\x86\x01\n" + + "\x13SampleRowKeysResult\x12*\n" + + "\x06status\x18\x01 \x01(\v2\x12.google.rpc.StatusR\x06status\x12C\n" + + "\asamples\x18\x02 \x03(\v2).google.bigtable.v2.SampleRowKeysResponseR\asamples\"\x81\x01\n" + + "\x19ReadModifyWriteRowRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12G\n" + + "\arequest\x18\x02 \x01(\v2-.google.bigtable.v2.ReadModifyWriteRowRequestR\arequest\"\xc9\x01\n" + + "\x13ExecuteQueryRequest\x12\x1b\n" + + "\tclient_id\x18\x01 \x01(\tR\bclientId\x12A\n" + + "\arequest\x18\x02 \x01(\v2'.google.bigtable.v2.ExecuteQueryRequestR\arequest\x12R\n" + + "\x13file_descriptor_set\x18\x03 \x01(\v2\".google.protobuf.FileDescriptorSetR\x11fileDescriptorSet\"\xc1\x01\n" + + "\x12ExecuteQueryResult\x12*\n" + + "\x06status\x18\x01 \x01(\v2\x12.google.rpc.StatusR\x06status\x12H\n" + + "\bmetadata\x18\x04 \x01(\v2,.google.bigtable.testproxy.ResultSetMetadataR\bmetadata\x125\n" + + "\x04rows\x18\x03 \x03(\v2!.google.bigtable.testproxy.SqlRowR\x04rows\"Q\n" + + "\x11ResultSetMetadata\x12<\n" + + "\acolumns\x18\x01 \x03(\v2\".google.bigtable.v2.ColumnMetadataR\acolumns\";\n" + + "\x06SqlRow\x121\n" + + "\x06values\x18\x01 \x03(\v2\x19.google.bigtable.v2.ValueR\x06values*d\n" + + "\x15OptionalFeatureConfig\x12#\n" + + "\x1fOPTIONAL_FEATURE_CONFIG_DEFAULT\x10\x00\x12&\n" + + "\"OPTIONAL_FEATURE_CONFIG_ENABLE_ALL\x10\x012\x95\n" + + "\n" + + "\x18CloudBigtableV2TestProxy\x12q\n" + + "\fCreateClient\x12..google.bigtable.testproxy.CreateClientRequest\x1a/.google.bigtable.testproxy.CreateClientResponse\"\x00\x12n\n" + + "\vCloseClient\x12-.google.bigtable.testproxy.CloseClientRequest\x1a..google.bigtable.testproxy.CloseClientResponse\"\x00\x12q\n" + + "\fRemoveClient\x12..google.bigtable.testproxy.RemoveClientRequest\x1a/.google.bigtable.testproxy.RemoveClientResponse\"\x00\x12\\\n" + + "\aReadRow\x12).google.bigtable.testproxy.ReadRowRequest\x1a$.google.bigtable.testproxy.RowResult\"\x00\x12_\n" + + "\bReadRows\x12*.google.bigtable.testproxy.ReadRowsRequest\x1a%.google.bigtable.testproxy.RowsResult\"\x00\x12f\n" + + "\tMutateRow\x12+.google.bigtable.testproxy.MutateRowRequest\x1a*.google.bigtable.testproxy.MutateRowResult\"\x00\x12m\n" + + "\x0eBulkMutateRows\x12,.google.bigtable.testproxy.MutateRowsRequest\x1a+.google.bigtable.testproxy.MutateRowsResult\"\x00\x12~\n" + + "\x11CheckAndMutateRow\x123.google.bigtable.testproxy.CheckAndMutateRowRequest\x1a2.google.bigtable.testproxy.CheckAndMutateRowResult\"\x00\x12r\n" + + "\rSampleRowKeys\x12/.google.bigtable.testproxy.SampleRowKeysRequest\x1a..google.bigtable.testproxy.SampleRowKeysResult\"\x00\x12r\n" + + "\x12ReadModifyWriteRow\x124.google.bigtable.testproxy.ReadModifyWriteRowRequest\x1a$.google.bigtable.testproxy.RowResult\"\x00\x12o\n" + + "\fExecuteQuery\x12..google.bigtable.testproxy.ExecuteQueryRequest\x1a-.google.bigtable.testproxy.ExecuteQueryResult\"\x00\x1a4\xcaA1bigtable-test-proxy-not-accessible.googleapis.comBg\n" + + "#com.google.cloud.bigtable.testproxyP\x01Z>cloud.google.com/go/bigtable/testproxy/testproxypb;testproxypbb\x06proto3" var ( file_test_proxy_proto_rawDescOnce sync.Once - file_test_proxy_proto_rawDescData = file_test_proxy_proto_rawDesc + file_test_proxy_proto_rawDescData []byte ) func file_test_proxy_proto_rawDescGZIP() []byte { file_test_proxy_proto_rawDescOnce.Do(func() { - file_test_proxy_proto_rawDescData = protoimpl.X.CompressGZIP(file_test_proxy_proto_rawDescData) + file_test_proxy_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_test_proxy_proto_rawDesc), len(file_test_proxy_proto_rawDesc))) }) return file_test_proxy_proto_rawDescData } @@ -1792,8 +1613,9 @@ var file_test_proxy_proto_goTypes = []any{ (*bigtablepb.SampleRowKeysResponse)(nil), // 36: google.bigtable.v2.SampleRowKeysResponse (*bigtablepb.ReadModifyWriteRowRequest)(nil), // 37: google.bigtable.v2.ReadModifyWriteRowRequest (*bigtablepb.ExecuteQueryRequest)(nil), // 38: google.bigtable.v2.ExecuteQueryRequest - (*bigtablepb.ColumnMetadata)(nil), // 39: google.bigtable.v2.ColumnMetadata - (*bigtablepb.Value)(nil), // 40: google.bigtable.v2.Value + (*descriptorpb.FileDescriptorSet)(nil), // 39: google.protobuf.FileDescriptorSet + (*bigtablepb.ColumnMetadata)(nil), // 40: google.bigtable.v2.ColumnMetadata + (*bigtablepb.Value)(nil), // 41: google.bigtable.v2.Value } var file_test_proxy_proto_depIdxs = []int32{ 25, // 0: google.bigtable.testproxy.CreateClientRequest.per_operation_timeout:type_name -> google.protobuf.Duration @@ -1818,38 +1640,39 @@ var file_test_proxy_proto_depIdxs = []int32{ 36, // 19: google.bigtable.testproxy.SampleRowKeysResult.samples:type_name -> google.bigtable.v2.SampleRowKeysResponse 37, // 20: google.bigtable.testproxy.ReadModifyWriteRowRequest.request:type_name -> google.bigtable.v2.ReadModifyWriteRowRequest 38, // 21: google.bigtable.testproxy.ExecuteQueryRequest.request:type_name -> google.bigtable.v2.ExecuteQueryRequest - 27, // 22: google.bigtable.testproxy.ExecuteQueryResult.status:type_name -> google.rpc.Status - 22, // 23: google.bigtable.testproxy.ExecuteQueryResult.metadata:type_name -> google.bigtable.testproxy.ResultSetMetadata - 23, // 24: google.bigtable.testproxy.ExecuteQueryResult.rows:type_name -> google.bigtable.testproxy.SqlRow - 39, // 25: google.bigtable.testproxy.ResultSetMetadata.columns:type_name -> google.bigtable.v2.ColumnMetadata - 40, // 26: google.bigtable.testproxy.SqlRow.values:type_name -> google.bigtable.v2.Value - 1, // 27: google.bigtable.testproxy.CloudBigtableV2TestProxy.CreateClient:input_type -> google.bigtable.testproxy.CreateClientRequest - 3, // 28: google.bigtable.testproxy.CloudBigtableV2TestProxy.CloseClient:input_type -> google.bigtable.testproxy.CloseClientRequest - 5, // 29: google.bigtable.testproxy.CloudBigtableV2TestProxy.RemoveClient:input_type -> google.bigtable.testproxy.RemoveClientRequest - 7, // 30: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadRow:input_type -> google.bigtable.testproxy.ReadRowRequest - 9, // 31: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadRows:input_type -> google.bigtable.testproxy.ReadRowsRequest - 11, // 32: google.bigtable.testproxy.CloudBigtableV2TestProxy.MutateRow:input_type -> google.bigtable.testproxy.MutateRowRequest - 13, // 33: google.bigtable.testproxy.CloudBigtableV2TestProxy.BulkMutateRows:input_type -> google.bigtable.testproxy.MutateRowsRequest - 15, // 34: google.bigtable.testproxy.CloudBigtableV2TestProxy.CheckAndMutateRow:input_type -> google.bigtable.testproxy.CheckAndMutateRowRequest - 17, // 35: google.bigtable.testproxy.CloudBigtableV2TestProxy.SampleRowKeys:input_type -> google.bigtable.testproxy.SampleRowKeysRequest - 19, // 36: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadModifyWriteRow:input_type -> google.bigtable.testproxy.ReadModifyWriteRowRequest - 20, // 37: google.bigtable.testproxy.CloudBigtableV2TestProxy.ExecuteQuery:input_type -> google.bigtable.testproxy.ExecuteQueryRequest - 2, // 38: google.bigtable.testproxy.CloudBigtableV2TestProxy.CreateClient:output_type -> google.bigtable.testproxy.CreateClientResponse - 4, // 39: google.bigtable.testproxy.CloudBigtableV2TestProxy.CloseClient:output_type -> google.bigtable.testproxy.CloseClientResponse - 6, // 40: google.bigtable.testproxy.CloudBigtableV2TestProxy.RemoveClient:output_type -> google.bigtable.testproxy.RemoveClientResponse - 8, // 41: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadRow:output_type -> google.bigtable.testproxy.RowResult - 10, // 42: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadRows:output_type -> google.bigtable.testproxy.RowsResult - 12, // 43: google.bigtable.testproxy.CloudBigtableV2TestProxy.MutateRow:output_type -> google.bigtable.testproxy.MutateRowResult - 14, // 44: google.bigtable.testproxy.CloudBigtableV2TestProxy.BulkMutateRows:output_type -> google.bigtable.testproxy.MutateRowsResult - 16, // 45: google.bigtable.testproxy.CloudBigtableV2TestProxy.CheckAndMutateRow:output_type -> google.bigtable.testproxy.CheckAndMutateRowResult - 18, // 46: google.bigtable.testproxy.CloudBigtableV2TestProxy.SampleRowKeys:output_type -> google.bigtable.testproxy.SampleRowKeysResult - 8, // 47: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadModifyWriteRow:output_type -> google.bigtable.testproxy.RowResult - 21, // 48: google.bigtable.testproxy.CloudBigtableV2TestProxy.ExecuteQuery:output_type -> google.bigtable.testproxy.ExecuteQueryResult - 38, // [38:49] is the sub-list for method output_type - 27, // [27:38] is the sub-list for method input_type - 27, // [27:27] is the sub-list for extension type_name - 27, // [27:27] is the sub-list for extension extendee - 0, // [0:27] is the sub-list for field type_name + 39, // 22: google.bigtable.testproxy.ExecuteQueryRequest.file_descriptor_set:type_name -> google.protobuf.FileDescriptorSet + 27, // 23: google.bigtable.testproxy.ExecuteQueryResult.status:type_name -> google.rpc.Status + 22, // 24: google.bigtable.testproxy.ExecuteQueryResult.metadata:type_name -> google.bigtable.testproxy.ResultSetMetadata + 23, // 25: google.bigtable.testproxy.ExecuteQueryResult.rows:type_name -> google.bigtable.testproxy.SqlRow + 40, // 26: google.bigtable.testproxy.ResultSetMetadata.columns:type_name -> google.bigtable.v2.ColumnMetadata + 41, // 27: google.bigtable.testproxy.SqlRow.values:type_name -> google.bigtable.v2.Value + 1, // 28: google.bigtable.testproxy.CloudBigtableV2TestProxy.CreateClient:input_type -> google.bigtable.testproxy.CreateClientRequest + 3, // 29: google.bigtable.testproxy.CloudBigtableV2TestProxy.CloseClient:input_type -> google.bigtable.testproxy.CloseClientRequest + 5, // 30: google.bigtable.testproxy.CloudBigtableV2TestProxy.RemoveClient:input_type -> google.bigtable.testproxy.RemoveClientRequest + 7, // 31: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadRow:input_type -> google.bigtable.testproxy.ReadRowRequest + 9, // 32: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadRows:input_type -> google.bigtable.testproxy.ReadRowsRequest + 11, // 33: google.bigtable.testproxy.CloudBigtableV2TestProxy.MutateRow:input_type -> google.bigtable.testproxy.MutateRowRequest + 13, // 34: google.bigtable.testproxy.CloudBigtableV2TestProxy.BulkMutateRows:input_type -> google.bigtable.testproxy.MutateRowsRequest + 15, // 35: google.bigtable.testproxy.CloudBigtableV2TestProxy.CheckAndMutateRow:input_type -> google.bigtable.testproxy.CheckAndMutateRowRequest + 17, // 36: google.bigtable.testproxy.CloudBigtableV2TestProxy.SampleRowKeys:input_type -> google.bigtable.testproxy.SampleRowKeysRequest + 19, // 37: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadModifyWriteRow:input_type -> google.bigtable.testproxy.ReadModifyWriteRowRequest + 20, // 38: google.bigtable.testproxy.CloudBigtableV2TestProxy.ExecuteQuery:input_type -> google.bigtable.testproxy.ExecuteQueryRequest + 2, // 39: google.bigtable.testproxy.CloudBigtableV2TestProxy.CreateClient:output_type -> google.bigtable.testproxy.CreateClientResponse + 4, // 40: google.bigtable.testproxy.CloudBigtableV2TestProxy.CloseClient:output_type -> google.bigtable.testproxy.CloseClientResponse + 6, // 41: google.bigtable.testproxy.CloudBigtableV2TestProxy.RemoveClient:output_type -> google.bigtable.testproxy.RemoveClientResponse + 8, // 42: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadRow:output_type -> google.bigtable.testproxy.RowResult + 10, // 43: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadRows:output_type -> google.bigtable.testproxy.RowsResult + 12, // 44: google.bigtable.testproxy.CloudBigtableV2TestProxy.MutateRow:output_type -> google.bigtable.testproxy.MutateRowResult + 14, // 45: google.bigtable.testproxy.CloudBigtableV2TestProxy.BulkMutateRows:output_type -> google.bigtable.testproxy.MutateRowsResult + 16, // 46: google.bigtable.testproxy.CloudBigtableV2TestProxy.CheckAndMutateRow:output_type -> google.bigtable.testproxy.CheckAndMutateRowResult + 18, // 47: google.bigtable.testproxy.CloudBigtableV2TestProxy.SampleRowKeys:output_type -> google.bigtable.testproxy.SampleRowKeysResult + 8, // 48: google.bigtable.testproxy.CloudBigtableV2TestProxy.ReadModifyWriteRow:output_type -> google.bigtable.testproxy.RowResult + 21, // 49: google.bigtable.testproxy.CloudBigtableV2TestProxy.ExecuteQuery:output_type -> google.bigtable.testproxy.ExecuteQueryResult + 39, // [39:50] is the sub-list for method output_type + 28, // [28:39] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_test_proxy_proto_init() } @@ -1861,7 +1684,7 @@ func file_test_proxy_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_test_proxy_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_test_proxy_proto_rawDesc), len(file_test_proxy_proto_rawDesc)), NumEnums: 1, NumMessages: 24, NumExtensions: 0, @@ -1873,7 +1696,6 @@ func file_test_proxy_proto_init() { MessageInfos: file_test_proxy_proto_msgTypes, }.Build() File_test_proxy_proto = out.File - file_test_proxy_proto_rawDesc = nil file_test_proxy_proto_goTypes = nil file_test_proxy_proto_depIdxs = nil } diff --git a/testproxypb/test_proxy_grpc.pb.go b/testproxypb/test_proxy_grpc.pb.go index fe75b0c3..3e7562aa 100644 --- a/testproxypb/test_proxy_grpc.pb.go +++ b/testproxypb/test_proxy_grpc.pb.go @@ -1,4 +1,4 @@ -// Copyright 2024 Google LLC +// Copyright 2025 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v5.27.3 +// - protoc v6.32.0 // source: test_proxy.proto package testproxypb diff --git a/tests/executequery_helpers.go b/tests/executequery_helpers.go index e73feb99..88956111 100644 --- a/tests/executequery_helpers.go +++ b/tests/executequery_helpers.go @@ -162,6 +162,26 @@ func mapType(key *btpb.Type, value *btpb.Type) *btpb.Type { } } +func protoType(name string) *btpb.Type { + return &btpb.Type{ + Kind: &btpb.Type_ProtoType{ + ProtoType: &btpb.Type_Proto{ + MessageName: name, + }, + }, + } +} + +func enumType(name string) *btpb.Type { + return &btpb.Type{ + Kind: &btpb.Type_EnumType{ + EnumType: &btpb.Type_Enum{ + EnumName: name, + }, + }, + } +} + func strVal(v string) *btpb.Value { return &btpb.Value{ Kind: &btpb.Value_StringValue{ diff --git a/tests/executequery_test.go b/tests/executequery_test.go index 02bc546a..94bb37bd 100644 --- a/tests/executequery_test.go +++ b/tests/executequery_test.go @@ -29,10 +29,15 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "github.com/googleapis/cloud-bigtable-clients-test/testproxypb" + testpb "github.com/googleapis/cloud-bigtable-clients-test/tests/testdata" "github.com/stretchr/testify/assert" "google.golang.org/grpc/codes" "google.golang.org/grpc/metadata" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protodesc" + "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/testing/protocmp" + "google.golang.org/protobuf/types/descriptorpb" "google.golang.org/protobuf/types/known/durationpb" ) @@ -103,6 +108,25 @@ func assertErrorIn(t *testing.T, res *testproxypb.ExecuteQueryResult, messages [ } } +// Returns a FileDescriptorSet containing the proto file descriptors for the provided proto messages. +// Messages must be provided in dependency order. +func buildFileDescriptorSet(msgs ...proto.Message) *descriptorpb.FileDescriptorSet { + files := protoregistry.GlobalFiles + seen := make(map[string]bool) + fds := &descriptorpb.FileDescriptorSet{} + + for _, msg := range msgs { + filePath := msg.ProtoReflect().Descriptor().ParentFile().Path() + if !seen[filePath] { + if fd, err := files.FindFileByPath(filePath); err == nil && fd != nil { + fds.File = append(fds.File, protodesc.ToFileDescriptorProto(fd)) + seen[filePath] = true + } + } + } + return fds +} + // Tests that a query will run successfully when receiving a response with no rows func TestExecuteQuery_EmptyResponse(t *testing.T) { // 1. Instantiate the mock server @@ -209,7 +233,20 @@ func TestExecuteQuery_TypesTest(t *testing.T) { arrayType(structType( structField("timestamp", timestampType()), structField("value", bytesType()))))), + column("protoCol", protoType(string(proto.MessageName(&testpb.Album{})))), + column("enumCol", enumType(string(testpb.Format(0).Descriptor().FullName()))), } + + album := &testpb.Album{ + Title: "Lover", + Artist: &testpb.Singer{ + Name: "Taylor Swift", + }, + ReleaseYear: 2020, + Format: testpb.Format_CD, + } + serializedAlbum, _ := proto.Marshal(album) + expectedValues := []*btpb.Value{ strVal("strVal"), bytesVal([]byte("bytesVal")), @@ -225,6 +262,8 @@ func TestExecuteQuery_TypesTest(t *testing.T) { mapVal(mapEntry(bytesVal([]byte("key")), arrayVal( structVal(timestampVal(10000, 1000), bytesVal([]byte("val1"))), structVal(timestampVal(20000, 1000), bytesVal([]byte("val2")))))), + bytesVal(serializedAlbum), + intVal(1), } server.PrepareQueryFn = mockPrepareQueryFn(nil, &prepareQueryAction{ @@ -246,12 +285,13 @@ func TestExecuteQuery_TypesTest(t *testing.T) { InstanceName: instanceName, Query: "SELECT * FROM table", }, + FileDescriptorSet: buildFileDescriptorSet(&testpb.Singer{}, &testpb.Album{}), } // 3. Perform the operation via test proxy res := doExecuteQueryOp(t, server, &req, nil) // 4. Verify the read succeeds and gets the expected metadata & data checkResultOkStatus(t, res) - assert.Equal(t, len(res.Metadata.Columns), 12) + assert.Equal(t, len(res.Metadata.Columns), 14) assert.True(t, cmp.Equal(res.Metadata, testProxyMd(columns...), protocmp.Transform())) assert.Equal(t, len(res.Rows), 1) assertRowEqual(t, testProxyRow(expectedValues...), res.Rows[0], res.Metadata) diff --git a/tests/testdata/album.pb.go b/tests/testdata/album.pb.go new file mode 100644 index 00000000..da55d923 --- /dev/null +++ b/tests/testdata/album.pb.go @@ -0,0 +1,205 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.9 +// protoc v6.32.0 +// source: tests/testdata/album.proto + +package testpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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) +) + +type Format int32 + +const ( + Format_CD Format = 0 + Format_DIGITAL Format = 1 +) + +// Enum value maps for Format. +var ( + Format_name = map[int32]string{ + 0: "CD", + 1: "DIGITAL", + } + Format_value = map[string]int32{ + "CD": 0, + "DIGITAL": 1, + } +) + +func (x Format) Enum() *Format { + p := new(Format) + *p = x + return p +} + +func (x Format) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Format) Descriptor() protoreflect.EnumDescriptor { + return file_tests_testdata_album_proto_enumTypes[0].Descriptor() +} + +func (Format) Type() protoreflect.EnumType { + return &file_tests_testdata_album_proto_enumTypes[0] +} + +func (x Format) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Format.Descriptor instead. +func (Format) EnumDescriptor() ([]byte, []int) { + return file_tests_testdata_album_proto_rawDescGZIP(), []int{0} +} + +type Album struct { + state protoimpl.MessageState `protogen:"open.v1"` + Artist *Singer `protobuf:"bytes,1,opt,name=artist,proto3" json:"artist,omitempty"` + Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` + ReleaseYear int32 `protobuf:"varint,3,opt,name=release_year,json=releaseYear,proto3" json:"release_year,omitempty"` + Format Format `protobuf:"varint,4,opt,name=format,proto3,enum=execute_query.test.Format" json:"format,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Album) Reset() { + *x = Album{} + mi := &file_tests_testdata_album_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Album) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Album) ProtoMessage() {} + +func (x *Album) ProtoReflect() protoreflect.Message { + mi := &file_tests_testdata_album_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 Album.ProtoReflect.Descriptor instead. +func (*Album) Descriptor() ([]byte, []int) { + return file_tests_testdata_album_proto_rawDescGZIP(), []int{0} +} + +func (x *Album) GetArtist() *Singer { + if x != nil { + return x.Artist + } + return nil +} + +func (x *Album) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *Album) GetReleaseYear() int32 { + if x != nil { + return x.ReleaseYear + } + return 0 +} + +func (x *Album) GetFormat() Format { + if x != nil { + return x.Format + } + return Format_CD +} + +var File_tests_testdata_album_proto protoreflect.FileDescriptor + +const file_tests_testdata_album_proto_rawDesc = "" + + "\n" + + "\x1atests/testdata/album.proto\x12\x12execute_query.test\x1a\x1btests/testdata/singer.proto\"\xa8\x01\n" + + "\x05Album\x122\n" + + "\x06artist\x18\x01 \x01(\v2\x1a.execute_query.test.SingerR\x06artist\x12\x14\n" + + "\x05title\x18\x02 \x01(\tR\x05title\x12!\n" + + "\frelease_year\x18\x03 \x01(\x05R\vreleaseYear\x122\n" + + "\x06format\x18\x04 \x01(\x0e2\x1a.execute_query.test.FormatR\x06format*\x1d\n" + + "\x06Format\x12\x06\n" + + "\x02CD\x10\x00\x12\v\n" + + "\aDIGITAL\x10\x01BIZGgithub.com/googleapis/cloud-bigtable-clients-test/tests/testdata;testpbb\x06proto3" + +var ( + file_tests_testdata_album_proto_rawDescOnce sync.Once + file_tests_testdata_album_proto_rawDescData []byte +) + +func file_tests_testdata_album_proto_rawDescGZIP() []byte { + file_tests_testdata_album_proto_rawDescOnce.Do(func() { + file_tests_testdata_album_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_tests_testdata_album_proto_rawDesc), len(file_tests_testdata_album_proto_rawDesc))) + }) + return file_tests_testdata_album_proto_rawDescData +} + +var file_tests_testdata_album_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_tests_testdata_album_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_tests_testdata_album_proto_goTypes = []any{ + (Format)(0), // 0: execute_query.test.Format + (*Album)(nil), // 1: execute_query.test.Album + (*Singer)(nil), // 2: execute_query.test.Singer +} +var file_tests_testdata_album_proto_depIdxs = []int32{ + 2, // 0: execute_query.test.Album.artist:type_name -> execute_query.test.Singer + 0, // 1: execute_query.test.Album.format:type_name -> execute_query.test.Format + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_tests_testdata_album_proto_init() } +func file_tests_testdata_album_proto_init() { + if File_tests_testdata_album_proto != nil { + return + } + file_tests_testdata_singer_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_tests_testdata_album_proto_rawDesc), len(file_tests_testdata_album_proto_rawDesc)), + NumEnums: 1, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_tests_testdata_album_proto_goTypes, + DependencyIndexes: file_tests_testdata_album_proto_depIdxs, + EnumInfos: file_tests_testdata_album_proto_enumTypes, + MessageInfos: file_tests_testdata_album_proto_msgTypes, + }.Build() + File_tests_testdata_album_proto = out.File + file_tests_testdata_album_proto_goTypes = nil + file_tests_testdata_album_proto_depIdxs = nil +} diff --git a/tests/testdata/album.proto b/tests/testdata/album.proto new file mode 100644 index 00000000..25a38822 --- /dev/null +++ b/tests/testdata/album.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; + +import "tests/testdata/singer.proto"; + +package execute_query.test; +option go_package = "github.com/googleapis/cloud-bigtable-clients-test/tests/testdata;testpb"; + +enum Format { + CD = 0; + DIGITAL = 1; +} + +message Album { + Singer artist = 1; + string title = 2; + int32 release_year = 3; + Format format = 4; +} diff --git a/tests/testdata/singer.pb.go b/tests/testdata/singer.pb.go new file mode 100644 index 00000000..9bd07a72 --- /dev/null +++ b/tests/testdata/singer.pb.go @@ -0,0 +1,192 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.9 +// protoc v6.32.0 +// source: tests/testdata/singer.proto + +package testpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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) +) + +type Genre int32 + +const ( + Genre_POP Genre = 0 + Genre_JAZZ Genre = 1 + Genre_FOLK Genre = 2 + Genre_ROCK Genre = 3 +) + +// Enum value maps for Genre. +var ( + Genre_name = map[int32]string{ + 0: "POP", + 1: "JAZZ", + 2: "FOLK", + 3: "ROCK", + } + Genre_value = map[string]int32{ + "POP": 0, + "JAZZ": 1, + "FOLK": 2, + "ROCK": 3, + } +) + +func (x Genre) Enum() *Genre { + p := new(Genre) + *p = x + return p +} + +func (x Genre) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Genre) Descriptor() protoreflect.EnumDescriptor { + return file_tests_testdata_singer_proto_enumTypes[0].Descriptor() +} + +func (Genre) Type() protoreflect.EnumType { + return &file_tests_testdata_singer_proto_enumTypes[0] +} + +func (x Genre) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Genre.Descriptor instead. +func (Genre) EnumDescriptor() ([]byte, []int) { + return file_tests_testdata_singer_proto_rawDescGZIP(), []int{0} +} + +type Singer struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Genre Genre `protobuf:"varint,2,opt,name=genre,proto3,enum=execute_query.test.Genre" json:"genre,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Singer) Reset() { + *x = Singer{} + mi := &file_tests_testdata_singer_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Singer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Singer) ProtoMessage() {} + +func (x *Singer) ProtoReflect() protoreflect.Message { + mi := &file_tests_testdata_singer_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 Singer.ProtoReflect.Descriptor instead. +func (*Singer) Descriptor() ([]byte, []int) { + return file_tests_testdata_singer_proto_rawDescGZIP(), []int{0} +} + +func (x *Singer) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Singer) GetGenre() Genre { + if x != nil { + return x.Genre + } + return Genre_POP +} + +var File_tests_testdata_singer_proto protoreflect.FileDescriptor + +const file_tests_testdata_singer_proto_rawDesc = "" + + "\n" + + "\x1btests/testdata/singer.proto\x12\x12execute_query.test\"M\n" + + "\x06Singer\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12/\n" + + "\x05genre\x18\x02 \x01(\x0e2\x19.execute_query.test.GenreR\x05genre*.\n" + + "\x05Genre\x12\a\n" + + "\x03POP\x10\x00\x12\b\n" + + "\x04JAZZ\x10\x01\x12\b\n" + + "\x04FOLK\x10\x02\x12\b\n" + + "\x04ROCK\x10\x03BIZGgithub.com/googleapis/cloud-bigtable-clients-test/tests/testdata;testpbb\x06proto3" + +var ( + file_tests_testdata_singer_proto_rawDescOnce sync.Once + file_tests_testdata_singer_proto_rawDescData []byte +) + +func file_tests_testdata_singer_proto_rawDescGZIP() []byte { + file_tests_testdata_singer_proto_rawDescOnce.Do(func() { + file_tests_testdata_singer_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_tests_testdata_singer_proto_rawDesc), len(file_tests_testdata_singer_proto_rawDesc))) + }) + return file_tests_testdata_singer_proto_rawDescData +} + +var file_tests_testdata_singer_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_tests_testdata_singer_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_tests_testdata_singer_proto_goTypes = []any{ + (Genre)(0), // 0: execute_query.test.Genre + (*Singer)(nil), // 1: execute_query.test.Singer +} +var file_tests_testdata_singer_proto_depIdxs = []int32{ + 0, // 0: execute_query.test.Singer.genre:type_name -> execute_query.test.Genre + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_tests_testdata_singer_proto_init() } +func file_tests_testdata_singer_proto_init() { + if File_tests_testdata_singer_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_tests_testdata_singer_proto_rawDesc), len(file_tests_testdata_singer_proto_rawDesc)), + NumEnums: 1, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_tests_testdata_singer_proto_goTypes, + DependencyIndexes: file_tests_testdata_singer_proto_depIdxs, + EnumInfos: file_tests_testdata_singer_proto_enumTypes, + MessageInfos: file_tests_testdata_singer_proto_msgTypes, + }.Build() + File_tests_testdata_singer_proto = out.File + file_tests_testdata_singer_proto_goTypes = nil + file_tests_testdata_singer_proto_depIdxs = nil +} diff --git a/tests/testdata/singer.proto b/tests/testdata/singer.proto new file mode 100644 index 00000000..572e7d17 --- /dev/null +++ b/tests/testdata/singer.proto @@ -0,0 +1,16 @@ +syntax = "proto3"; + +package execute_query.test; +option go_package = "github.com/googleapis/cloud-bigtable-clients-test/tests/testdata;testpb"; + +enum Genre { + POP = 0; + JAZZ = 1; + FOLK = 2; + ROCK = 3; +} + +message Singer { + string name = 1; + Genre genre = 2; +}