From 5ec24cc5c16d7dd5880294f3859689803ce8bdba Mon Sep 17 00:00:00 2001 From: Jack Dingilian Date: Fri, 28 Mar 2025 15:21:20 -0400 Subject: [PATCH 1/5] Update protos --- test_proxy/protos/bigtable_pb2.py | 306 ++++++++++++++--------- test_proxy/protos/bigtable_pb2_grpc.py | 271 +++++++++++++++++--- test_proxy/protos/data_pb2.py | 141 +++++++---- test_proxy/protos/data_pb2_grpc.py | 20 ++ test_proxy/protos/test_proxy_pb2.py | 123 +++++---- test_proxy/protos/test_proxy_pb2_grpc.py | 245 +++++++++++++++--- test_proxy/protos/types_pb2.py | 92 +++++++ test_proxy/protos/types_pb2_grpc.py | 24 ++ 8 files changed, 926 insertions(+), 296 deletions(-) create mode 100644 test_proxy/protos/types_pb2.py create mode 100644 test_proxy/protos/types_pb2_grpc.py diff --git a/test_proxy/protos/bigtable_pb2.py b/test_proxy/protos/bigtable_pb2.py index 936a4ed55..edc90c3ec 100644 --- a/test_proxy/protos/bigtable_pb2.py +++ b/test_proxy/protos/bigtable_pb2.py @@ -1,11 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: google/bigtable/v2/bigtable.proto +# Protobuf Python Version: 5.29.0 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 0, + '', + 'google/bigtable/v2/bigtable.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -18,128 +29,187 @@ from google.api import routing_pb2 as google_dot_api_dot_routing__pb2 import data_pb2 as google_dot_bigtable_dot_v2_dot_data__pb2 import request_stats_pb2 as google_dot_bigtable_dot_v2_dot_request__stats__pb2 +import types_pb2 as google_dot_bigtable_dot_v2_dot_types__pb2 from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2 from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!google/bigtable/v2/bigtable.proto\x12\x12google.bigtable.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x18google/api/routing.proto\x1a\x1dgoogle/bigtable/v2/data.proto\x1a&google/bigtable/v2/request_stats.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17google/rpc/status.proto\"\x90\x03\n\x0fReadRowsRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12\x16\n\x0e\x61pp_profile_id\x18\x05 \x01(\t\x12(\n\x04rows\x18\x02 \x01(\x0b\x32\x1a.google.bigtable.v2.RowSet\x12-\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x12\x12\n\nrows_limit\x18\x04 \x01(\x03\x12P\n\x12request_stats_view\x18\x06 \x01(\x0e\x32\x34.google.bigtable.v2.ReadRowsRequest.RequestStatsView\"f\n\x10RequestStatsView\x12\"\n\x1eREQUEST_STATS_VIEW_UNSPECIFIED\x10\x00\x12\x16\n\x12REQUEST_STATS_NONE\x10\x01\x12\x16\n\x12REQUEST_STATS_FULL\x10\x02\"\xb1\x03\n\x10ReadRowsResponse\x12>\n\x06\x63hunks\x18\x01 \x03(\x0b\x32..google.bigtable.v2.ReadRowsResponse.CellChunk\x12\x1c\n\x14last_scanned_row_key\x18\x02 \x01(\x0c\x12\x37\n\rrequest_stats\x18\x03 \x01(\x0b\x32 .google.bigtable.v2.RequestStats\x1a\x85\x02\n\tCellChunk\x12\x0f\n\x07row_key\x18\x01 \x01(\x0c\x12\x31\n\x0b\x66\x61mily_name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\tqualifier\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.BytesValue\x12\x18\n\x10timestamp_micros\x18\x04 \x01(\x03\x12\x0e\n\x06labels\x18\x05 \x03(\t\x12\r\n\x05value\x18\x06 \x01(\x0c\x12\x12\n\nvalue_size\x18\x07 \x01(\x05\x12\x13\n\treset_row\x18\x08 \x01(\x08H\x00\x12\x14\n\ncommit_row\x18\t \x01(\x08H\x00\x42\x0c\n\nrow_status\"n\n\x14SampleRowKeysRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12\x16\n\x0e\x61pp_profile_id\x18\x02 \x01(\t\">\n\x15SampleRowKeysResponse\x12\x0f\n\x07row_key\x18\x01 \x01(\x0c\x12\x14\n\x0coffset_bytes\x18\x02 \x01(\x03\"\xb6\x01\n\x10MutateRowRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12\x16\n\x0e\x61pp_profile_id\x18\x04 \x01(\t\x12\x14\n\x07row_key\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x34\n\tmutations\x18\x03 \x03(\x0b\x32\x1c.google.bigtable.v2.MutationB\x03\xe0\x41\x02\"\x13\n\x11MutateRowResponse\"\xfe\x01\n\x11MutateRowsRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12\x16\n\x0e\x61pp_profile_id\x18\x03 \x01(\t\x12\x41\n\x07\x65ntries\x18\x02 \x03(\x0b\x32+.google.bigtable.v2.MutateRowsRequest.EntryB\x03\xe0\x41\x02\x1aN\n\x05\x45ntry\x12\x0f\n\x07row_key\x18\x01 \x01(\x0c\x12\x34\n\tmutations\x18\x02 \x03(\x0b\x32\x1c.google.bigtable.v2.MutationB\x03\xe0\x41\x02\"\x8f\x01\n\x12MutateRowsResponse\x12=\n\x07\x65ntries\x18\x01 \x03(\x0b\x32,.google.bigtable.v2.MutateRowsResponse.Entry\x1a:\n\x05\x45ntry\x12\r\n\x05index\x18\x01 \x01(\x03\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.Status\"\xae\x02\n\x18\x43heckAndMutateRowRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12\x16\n\x0e\x61pp_profile_id\x18\x07 \x01(\t\x12\x14\n\x07row_key\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x37\n\x10predicate_filter\x18\x06 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x12\x34\n\x0etrue_mutations\x18\x04 \x03(\x0b\x32\x1c.google.bigtable.v2.Mutation\x12\x35\n\x0f\x66\x61lse_mutations\x18\x05 \x03(\x0b\x32\x1c.google.bigtable.v2.Mutation\"6\n\x19\x43heckAndMutateRowResponse\x12\x19\n\x11predicate_matched\x18\x01 \x01(\x08\"i\n\x12PingAndWarmRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%bigtableadmin.googleapis.com/Instance\x12\x16\n\x0e\x61pp_profile_id\x18\x02 \x01(\t\"\x15\n\x13PingAndWarmResponse\"\xc6\x01\n\x19ReadModifyWriteRowRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12\x16\n\x0e\x61pp_profile_id\x18\x04 \x01(\t\x12\x14\n\x07row_key\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12;\n\x05rules\x18\x03 \x03(\x0b\x32\'.google.bigtable.v2.ReadModifyWriteRuleB\x03\xe0\x41\x02\"B\n\x1aReadModifyWriteRowResponse\x12$\n\x03row\x18\x01 \x01(\x0b\x32\x17.google.bigtable.v2.Row\"\x86\x01\n,GenerateInitialChangeStreamPartitionsRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12\x16\n\x0e\x61pp_profile_id\x18\x02 \x01(\t\"g\n-GenerateInitialChangeStreamPartitionsResponse\x12\x36\n\tpartition\x18\x01 \x01(\x0b\x32#.google.bigtable.v2.StreamPartition\"\x9b\x03\n\x17ReadChangeStreamRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12\x16\n\x0e\x61pp_profile_id\x18\x02 \x01(\t\x12\x36\n\tpartition\x18\x03 \x01(\x0b\x32#.google.bigtable.v2.StreamPartition\x12\x30\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12K\n\x13\x63ontinuation_tokens\x18\x06 \x01(\x0b\x32,.google.bigtable.v2.StreamContinuationTokensH\x00\x12,\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x12heartbeat_duration\x18\x07 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\n\nstart_from\"\xeb\t\n\x18ReadChangeStreamResponse\x12N\n\x0b\x64\x61ta_change\x18\x01 \x01(\x0b\x32\x37.google.bigtable.v2.ReadChangeStreamResponse.DataChangeH\x00\x12K\n\theartbeat\x18\x02 \x01(\x0b\x32\x36.google.bigtable.v2.ReadChangeStreamResponse.HeartbeatH\x00\x12P\n\x0c\x63lose_stream\x18\x03 \x01(\x0b\x32\x38.google.bigtable.v2.ReadChangeStreamResponse.CloseStreamH\x00\x1a\xf4\x01\n\rMutationChunk\x12X\n\nchunk_info\x18\x01 \x01(\x0b\x32\x44.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo\x12.\n\x08mutation\x18\x02 \x01(\x0b\x32\x1c.google.bigtable.v2.Mutation\x1aY\n\tChunkInfo\x12\x1a\n\x12\x63hunked_value_size\x18\x01 \x01(\x05\x12\x1c\n\x14\x63hunked_value_offset\x18\x02 \x01(\x05\x12\x12\n\nlast_chunk\x18\x03 \x01(\x08\x1a\xc6\x03\n\nDataChange\x12J\n\x04type\x18\x01 \x01(\x0e\x32<.google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type\x12\x19\n\x11source_cluster_id\x18\x02 \x01(\t\x12\x0f\n\x07row_key\x18\x03 \x01(\x0c\x12\x34\n\x10\x63ommit_timestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ntiebreaker\x18\x05 \x01(\x05\x12J\n\x06\x63hunks\x18\x06 \x03(\x0b\x32:.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk\x12\x0c\n\x04\x64one\x18\x08 \x01(\x08\x12\r\n\x05token\x18\t \x01(\t\x12;\n\x17\x65stimated_low_watermark\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"P\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04USER\x10\x01\x12\x16\n\x12GARBAGE_COLLECTION\x10\x02\x12\x10\n\x0c\x43ONTINUATION\x10\x03\x1a\x91\x01\n\tHeartbeat\x12G\n\x12\x63ontinuation_token\x18\x01 \x01(\x0b\x32+.google.bigtable.v2.StreamContinuationToken\x12;\n\x17\x65stimated_low_watermark\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a{\n\x0b\x43loseStream\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12H\n\x13\x63ontinuation_tokens\x18\x02 \x03(\x0b\x32+.google.bigtable.v2.StreamContinuationTokenB\x0f\n\rstream_record2\xd7\x18\n\x08\x42igtable\x12\x9b\x02\n\x08ReadRows\x12#.google.bigtable.v2.ReadRowsRequest\x1a$.google.bigtable.v2.ReadRowsResponse\"\xc1\x01\x82\xd3\xe4\x93\x02>\"9/v2/{table_name=projects/*/instances/*/tables/*}:readRows:\x01*\x8a\xd3\xe4\x93\x02N\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\xda\x41\ntable_name\xda\x41\x19table_name,app_profile_id0\x01\x12\xac\x02\n\rSampleRowKeys\x12(.google.bigtable.v2.SampleRowKeysRequest\x1a).google.bigtable.v2.SampleRowKeysResponse\"\xc3\x01\x82\xd3\xe4\x93\x02@\x12>/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeys\x8a\xd3\xe4\x93\x02N\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\xda\x41\ntable_name\xda\x41\x19table_name,app_profile_id0\x01\x12\xc1\x02\n\tMutateRow\x12$.google.bigtable.v2.MutateRowRequest\x1a%.google.bigtable.v2.MutateRowResponse\"\xe6\x01\x82\xd3\xe4\x93\x02?\":/v2/{table_name=projects/*/instances/*/tables/*}:mutateRow:\x01*\x8a\xd3\xe4\x93\x02N\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\xda\x41\x1ctable_name,row_key,mutations\xda\x41+table_name,row_key,mutations,app_profile_id\x12\xb3\x02\n\nMutateRows\x12%.google.bigtable.v2.MutateRowsRequest\x1a&.google.bigtable.v2.MutateRowsResponse\"\xd3\x01\x82\xd3\xe4\x93\x02@\";/v2/{table_name=projects/*/instances/*/tables/*}:mutateRows:\x01*\x8a\xd3\xe4\x93\x02N\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\xda\x41\x12table_name,entries\xda\x41!table_name,entries,app_profile_id0\x01\x12\xad\x03\n\x11\x43heckAndMutateRow\x12,.google.bigtable.v2.CheckAndMutateRowRequest\x1a-.google.bigtable.v2.CheckAndMutateRowResponse\"\xba\x02\x82\xd3\xe4\x93\x02G\"B/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow:\x01*\x8a\xd3\xe4\x93\x02N\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\xda\x41\x42table_name,row_key,predicate_filter,true_mutations,false_mutations\xda\x41Qtable_name,row_key,predicate_filter,true_mutations,false_mutations,app_profile_id\x12\xee\x01\n\x0bPingAndWarm\x12&.google.bigtable.v2.PingAndWarmRequest\x1a\'.google.bigtable.v2.PingAndWarmResponse\"\x8d\x01\x82\xd3\xe4\x93\x02+\"&/v2/{name=projects/*/instances/*}:ping:\x01*\x8a\xd3\xe4\x93\x02\x39\x12%\n\x04name\x12\x1d{name=projects/*/instances/*}\x12\x10\n\x0e\x61pp_profile_id\xda\x41\x04name\xda\x41\x13name,app_profile_id\x12\xdd\x02\n\x12ReadModifyWriteRow\x12-.google.bigtable.v2.ReadModifyWriteRowRequest\x1a..google.bigtable.v2.ReadModifyWriteRowResponse\"\xe7\x01\x82\xd3\xe4\x93\x02H\"C/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow:\x01*\x8a\xd3\xe4\x93\x02N\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\xda\x41\x18table_name,row_key,rules\xda\x41\'table_name,row_key,rules,app_profile_id\x12\xbb\x02\n%GenerateInitialChangeStreamPartitions\x12@.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest\x1a\x41.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse\"\x8a\x01\x82\xd3\xe4\x93\x02[\"V/v2/{table_name=projects/*/instances/*/tables/*}:generateInitialChangeStreamPartitions:\x01*\xda\x41\ntable_name\xda\x41\x19table_name,app_profile_id0\x01\x12\xe6\x01\n\x10ReadChangeStream\x12+.google.bigtable.v2.ReadChangeStreamRequest\x1a,.google.bigtable.v2.ReadChangeStreamResponse\"u\x82\xd3\xe4\x93\x02\x46\"A/v2/{table_name=projects/*/instances/*/tables/*}:readChangeStream:\x01*\xda\x41\ntable_name\xda\x41\x19table_name,app_profile_id0\x01\x1a\xdb\x02\xca\x41\x17\x62igtable.googleapis.com\xd2\x41\xbd\x02https://www.googleapis.com/auth/bigtable.data,https://www.googleapis.com/auth/bigtable.data.readonly,https://www.googleapis.com/auth/cloud-bigtable.data,https://www.googleapis.com/auth/cloud-bigtable.data.readonly,https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-onlyB\xeb\x02\n\x16\x63om.google.bigtable.v2B\rBigtableProtoP\x01Z:google.golang.org/genproto/googleapis/bigtable/v2;bigtable\xaa\x02\x18Google.Cloud.Bigtable.V2\xca\x02\x18Google\\Cloud\\Bigtable\\V2\xea\x02\x1bGoogle::Cloud::Bigtable::V2\xea\x41P\n%bigtableadmin.googleapis.com/Instance\x12\'projects/{project}/instances/{instance}\xea\x41\\\n\"bigtableadmin.googleapis.com/Table\x12\x36projects/{project}/instances/{instance}/tables/{table}b\x06proto3') - -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'google.bigtable.v2.bigtable_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!google/bigtable/v2/bigtable.proto\x12\x12google.bigtable.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x18google/api/routing.proto\x1a\x1dgoogle/bigtable/v2/data.proto\x1a&google/bigtable/v2/request_stats.proto\x1a\x1egoogle/bigtable/v2/types.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x17google/rpc/status.proto\"\xcc\x04\n\x0fReadRowsRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x01\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12Q\n\x14\x61uthorized_view_name\x18\t \x01(\tB3\xe0\x41\x01\xfa\x41-\n+bigtableadmin.googleapis.com/AuthorizedView\x12U\n\x16materialized_view_name\x18\x0b \x01(\tB5\xe0\x41\x01\xfa\x41/\n-bigtableadmin.googleapis.com/MaterializedView\x12\x16\n\x0e\x61pp_profile_id\x18\x05 \x01(\t\x12(\n\x04rows\x18\x02 \x01(\x0b\x32\x1a.google.bigtable.v2.RowSet\x12-\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x12\x12\n\nrows_limit\x18\x04 \x01(\x03\x12P\n\x12request_stats_view\x18\x06 \x01(\x0e\x32\x34.google.bigtable.v2.ReadRowsRequest.RequestStatsView\x12\x10\n\x08reversed\x18\x07 \x01(\x08\"f\n\x10RequestStatsView\x12\"\n\x1eREQUEST_STATS_VIEW_UNSPECIFIED\x10\x00\x12\x16\n\x12REQUEST_STATS_NONE\x10\x01\x12\x16\n\x12REQUEST_STATS_FULL\x10\x02\"\xb1\x03\n\x10ReadRowsResponse\x12>\n\x06\x63hunks\x18\x01 \x03(\x0b\x32..google.bigtable.v2.ReadRowsResponse.CellChunk\x12\x1c\n\x14last_scanned_row_key\x18\x02 \x01(\x0c\x12\x37\n\rrequest_stats\x18\x03 \x01(\x0b\x32 .google.bigtable.v2.RequestStats\x1a\x85\x02\n\tCellChunk\x12\x0f\n\x07row_key\x18\x01 \x01(\x0c\x12\x31\n\x0b\x66\x61mily_name\x18\x02 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12.\n\tqualifier\x18\x03 \x01(\x0b\x32\x1b.google.protobuf.BytesValue\x12\x18\n\x10timestamp_micros\x18\x04 \x01(\x03\x12\x0e\n\x06labels\x18\x05 \x03(\t\x12\r\n\x05value\x18\x06 \x01(\x0c\x12\x12\n\nvalue_size\x18\x07 \x01(\x05\x12\x13\n\treset_row\x18\x08 \x01(\x08H\x00\x12\x14\n\ncommit_row\x18\t \x01(\x08H\x00\x42\x0c\n\nrow_status\"\x98\x02\n\x14SampleRowKeysRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x01\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12Q\n\x14\x61uthorized_view_name\x18\x04 \x01(\tB3\xe0\x41\x01\xfa\x41-\n+bigtableadmin.googleapis.com/AuthorizedView\x12U\n\x16materialized_view_name\x18\x05 \x01(\tB5\xe0\x41\x01\xfa\x41/\n-bigtableadmin.googleapis.com/MaterializedView\x12\x16\n\x0e\x61pp_profile_id\x18\x02 \x01(\t\">\n\x15SampleRowKeysResponse\x12\x0f\n\x07row_key\x18\x01 \x01(\x0c\x12\x14\n\x0coffset_bytes\x18\x02 \x01(\x03\"\x89\x02\n\x10MutateRowRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x01\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12Q\n\x14\x61uthorized_view_name\x18\x06 \x01(\tB3\xe0\x41\x01\xfa\x41-\n+bigtableadmin.googleapis.com/AuthorizedView\x12\x16\n\x0e\x61pp_profile_id\x18\x04 \x01(\t\x12\x14\n\x07row_key\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x34\n\tmutations\x18\x03 \x03(\x0b\x32\x1c.google.bigtable.v2.MutationB\x03\xe0\x41\x02\"\x13\n\x11MutateRowResponse\"\xd1\x02\n\x11MutateRowsRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x01\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12Q\n\x14\x61uthorized_view_name\x18\x05 \x01(\tB3\xe0\x41\x01\xfa\x41-\n+bigtableadmin.googleapis.com/AuthorizedView\x12\x16\n\x0e\x61pp_profile_id\x18\x03 \x01(\t\x12\x41\n\x07\x65ntries\x18\x02 \x03(\x0b\x32+.google.bigtable.v2.MutateRowsRequest.EntryB\x03\xe0\x41\x02\x1aN\n\x05\x45ntry\x12\x0f\n\x07row_key\x18\x01 \x01(\x0c\x12\x34\n\tmutations\x18\x02 \x03(\x0b\x32\x1c.google.bigtable.v2.MutationB\x03\xe0\x41\x02\"\xe4\x01\n\x12MutateRowsResponse\x12=\n\x07\x65ntries\x18\x01 \x03(\x0b\x32,.google.bigtable.v2.MutateRowsResponse.Entry\x12?\n\x0frate_limit_info\x18\x03 \x01(\x0b\x32!.google.bigtable.v2.RateLimitInfoH\x00\x88\x01\x01\x1a:\n\x05\x45ntry\x12\r\n\x05index\x18\x01 \x01(\x03\x12\"\n\x06status\x18\x02 \x01(\x0b\x32\x12.google.rpc.StatusB\x12\n\x10_rate_limit_info\"J\n\rRateLimitInfo\x12)\n\x06period\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0e\n\x06\x66\x61\x63tor\x18\x02 \x01(\x01\"\x81\x03\n\x18\x43heckAndMutateRowRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x01\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12Q\n\x14\x61uthorized_view_name\x18\t \x01(\tB3\xe0\x41\x01\xfa\x41-\n+bigtableadmin.googleapis.com/AuthorizedView\x12\x16\n\x0e\x61pp_profile_id\x18\x07 \x01(\t\x12\x14\n\x07row_key\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12\x37\n\x10predicate_filter\x18\x06 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x12\x34\n\x0etrue_mutations\x18\x04 \x03(\x0b\x32\x1c.google.bigtable.v2.Mutation\x12\x35\n\x0f\x66\x61lse_mutations\x18\x05 \x03(\x0b\x32\x1c.google.bigtable.v2.Mutation\"6\n\x19\x43heckAndMutateRowResponse\x12\x19\n\x11predicate_matched\x18\x01 \x01(\x08\"i\n\x12PingAndWarmRequest\x12;\n\x04name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%bigtableadmin.googleapis.com/Instance\x12\x16\n\x0e\x61pp_profile_id\x18\x02 \x01(\t\"\x15\n\x13PingAndWarmResponse\"\x99\x02\n\x19ReadModifyWriteRowRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x01\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12Q\n\x14\x61uthorized_view_name\x18\x06 \x01(\tB3\xe0\x41\x01\xfa\x41-\n+bigtableadmin.googleapis.com/AuthorizedView\x12\x16\n\x0e\x61pp_profile_id\x18\x04 \x01(\t\x12\x14\n\x07row_key\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\x12;\n\x05rules\x18\x03 \x03(\x0b\x32\'.google.bigtable.v2.ReadModifyWriteRuleB\x03\xe0\x41\x02\"B\n\x1aReadModifyWriteRowResponse\x12$\n\x03row\x18\x01 \x01(\x0b\x32\x17.google.bigtable.v2.Row\"\x86\x01\n,GenerateInitialChangeStreamPartitionsRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12\x16\n\x0e\x61pp_profile_id\x18\x02 \x01(\t\"g\n-GenerateInitialChangeStreamPartitionsResponse\x12\x36\n\tpartition\x18\x01 \x01(\x0b\x32#.google.bigtable.v2.StreamPartition\"\x9b\x03\n\x17ReadChangeStreamRequest\x12>\n\ntable_name\x18\x01 \x01(\tB*\xe0\x41\x02\xfa\x41$\n\"bigtableadmin.googleapis.com/Table\x12\x16\n\x0e\x61pp_profile_id\x18\x02 \x01(\t\x12\x36\n\tpartition\x18\x03 \x01(\x0b\x32#.google.bigtable.v2.StreamPartition\x12\x30\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12K\n\x13\x63ontinuation_tokens\x18\x06 \x01(\x0b\x32,.google.bigtable.v2.StreamContinuationTokensH\x00\x12,\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x12heartbeat_duration\x18\x07 \x01(\x0b\x32\x19.google.protobuf.DurationB\x0c\n\nstart_from\"\xa9\n\n\x18ReadChangeStreamResponse\x12N\n\x0b\x64\x61ta_change\x18\x01 \x01(\x0b\x32\x37.google.bigtable.v2.ReadChangeStreamResponse.DataChangeH\x00\x12K\n\theartbeat\x18\x02 \x01(\x0b\x32\x36.google.bigtable.v2.ReadChangeStreamResponse.HeartbeatH\x00\x12P\n\x0c\x63lose_stream\x18\x03 \x01(\x0b\x32\x38.google.bigtable.v2.ReadChangeStreamResponse.CloseStreamH\x00\x1a\xf4\x01\n\rMutationChunk\x12X\n\nchunk_info\x18\x01 \x01(\x0b\x32\x44.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk.ChunkInfo\x12.\n\x08mutation\x18\x02 \x01(\x0b\x32\x1c.google.bigtable.v2.Mutation\x1aY\n\tChunkInfo\x12\x1a\n\x12\x63hunked_value_size\x18\x01 \x01(\x05\x12\x1c\n\x14\x63hunked_value_offset\x18\x02 \x01(\x05\x12\x12\n\nlast_chunk\x18\x03 \x01(\x08\x1a\xc6\x03\n\nDataChange\x12J\n\x04type\x18\x01 \x01(\x0e\x32<.google.bigtable.v2.ReadChangeStreamResponse.DataChange.Type\x12\x19\n\x11source_cluster_id\x18\x02 \x01(\t\x12\x0f\n\x07row_key\x18\x03 \x01(\x0c\x12\x34\n\x10\x63ommit_timestamp\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x12\n\ntiebreaker\x18\x05 \x01(\x05\x12J\n\x06\x63hunks\x18\x06 \x03(\x0b\x32:.google.bigtable.v2.ReadChangeStreamResponse.MutationChunk\x12\x0c\n\x04\x64one\x18\x08 \x01(\x08\x12\r\n\x05token\x18\t \x01(\t\x12;\n\x17\x65stimated_low_watermark\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"P\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x08\n\x04USER\x10\x01\x12\x16\n\x12GARBAGE_COLLECTION\x10\x02\x12\x10\n\x0c\x43ONTINUATION\x10\x03\x1a\x91\x01\n\tHeartbeat\x12G\n\x12\x63ontinuation_token\x18\x01 \x01(\x0b\x32+.google.bigtable.v2.StreamContinuationToken\x12;\n\x17\x65stimated_low_watermark\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\xb8\x01\n\x0b\x43loseStream\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12H\n\x13\x63ontinuation_tokens\x18\x02 \x03(\x0b\x32+.google.bigtable.v2.StreamContinuationToken\x12;\n\x0enew_partitions\x18\x03 \x03(\x0b\x32#.google.bigtable.v2.StreamPartitionB\x0f\n\rstream_record\"\xa1\x03\n\x13\x45xecuteQueryRequest\x12\x44\n\rinstance_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%bigtableadmin.googleapis.com/Instance\x12\x1b\n\x0e\x61pp_profile_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x14\n\x05query\x18\x03 \x01(\tB\x05\x18\x01\xe0\x41\x02\x12\x16\n\x0eprepared_query\x18\t \x01(\x0c\x12;\n\x0cproto_format\x18\x04 \x01(\x0b\x32\x1f.google.bigtable.v2.ProtoFormatB\x02\x18\x01H\x00\x12\x19\n\x0cresume_token\x18\x08 \x01(\x0c\x42\x03\xe0\x41\x01\x12H\n\x06params\x18\x07 \x03(\x0b\x32\x33.google.bigtable.v2.ExecuteQueryRequest.ParamsEntryB\x03\xe0\x41\x02\x1aH\n\x0bParamsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.google.bigtable.v2.Value:\x02\x38\x01\x42\r\n\x0b\x64\x61ta_format\"\x96\x01\n\x14\x45xecuteQueryResponse\x12\x39\n\x08metadata\x18\x01 \x01(\x0b\x32%.google.bigtable.v2.ResultSetMetadataH\x00\x12\x37\n\x07results\x18\x02 \x01(\x0b\x32$.google.bigtable.v2.PartialResultSetH\x00\x42\n\n\x08response\"\xf4\x02\n\x13PrepareQueryRequest\x12\x44\n\rinstance_name\x18\x01 \x01(\tB-\xe0\x41\x02\xfa\x41\'\n%bigtableadmin.googleapis.com/Instance\x12\x1b\n\x0e\x61pp_profile_id\x18\x02 \x01(\tB\x03\xe0\x41\x01\x12\x12\n\x05query\x18\x03 \x01(\tB\x03\xe0\x41\x02\x12\x37\n\x0cproto_format\x18\x04 \x01(\x0b\x32\x1f.google.bigtable.v2.ProtoFormatH\x00\x12Q\n\x0bparam_types\x18\x06 \x03(\x0b\x32\x37.google.bigtable.v2.PrepareQueryRequest.ParamTypesEntryB\x03\xe0\x41\x02\x1aK\n\x0fParamTypesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.Type:\x02\x38\x01\x42\r\n\x0b\x64\x61ta_format\"\x98\x01\n\x14PrepareQueryResponse\x12\x37\n\x08metadata\x18\x01 \x01(\x0b\x32%.google.bigtable.v2.ResultSetMetadata\x12\x16\n\x0eprepared_query\x18\x02 \x01(\x0c\x12/\n\x0bvalid_until\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp2\xc9&\n\x08\x42igtable\x12\xdb\x03\n\x08ReadRows\x12#.google.bigtable.v2.ReadRowsRequest\x1a$.google.bigtable.v2.ReadRowsResponse\"\x81\x03\xda\x41\ntable_name\xda\x41\x19table_name,app_profile_id\x82\xd3\xe4\x93\x02\x9a\x01\"9/v2/{table_name=projects/*/instances/*/tables/*}:readRows:\x01*ZZ\"U/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:readRows:\x01*\x8a\xd3\xe4\x93\x02\xb0\x01\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\x12`\n\x14\x61uthorized_view_name\x12H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}0\x01\x12\xee\x03\n\rSampleRowKeys\x12(.google.bigtable.v2.SampleRowKeysRequest\x1a).google.bigtable.v2.SampleRowKeysResponse\"\x85\x03\xda\x41\ntable_name\xda\x41\x19table_name,app_profile_id\x82\xd3\xe4\x93\x02\x9e\x01\x12>/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeysZ\\\x12Z/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:sampleRowKeys\x8a\xd3\xe4\x93\x02\xb0\x01\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\x12`\n\x14\x61uthorized_view_name\x12H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}0\x01\x12\x82\x04\n\tMutateRow\x12$.google.bigtable.v2.MutateRowRequest\x1a%.google.bigtable.v2.MutateRowResponse\"\xa7\x03\xda\x41\x1ctable_name,row_key,mutations\xda\x41+table_name,row_key,mutations,app_profile_id\x82\xd3\xe4\x93\x02\x9c\x01\":/v2/{table_name=projects/*/instances/*/tables/*}:mutateRow:\x01*Z[\"V/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:mutateRow:\x01*\x8a\xd3\xe4\x93\x02\xb0\x01\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\x12`\n\x14\x61uthorized_view_name\x12H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}\x12\xf5\x03\n\nMutateRows\x12%.google.bigtable.v2.MutateRowsRequest\x1a&.google.bigtable.v2.MutateRowsResponse\"\x95\x03\xda\x41\x12table_name,entries\xda\x41!table_name,entries,app_profile_id\x82\xd3\xe4\x93\x02\x9e\x01\";/v2/{table_name=projects/*/instances/*/tables/*}:mutateRows:\x01*Z\\\"W/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:mutateRows:\x01*\x8a\xd3\xe4\x93\x02\xb0\x01\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\x12`\n\x14\x61uthorized_view_name\x12H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}0\x01\x12\xf6\x04\n\x11\x43heckAndMutateRow\x12,.google.bigtable.v2.CheckAndMutateRowRequest\x1a-.google.bigtable.v2.CheckAndMutateRowResponse\"\x83\x04\xda\x41\x42table_name,row_key,predicate_filter,true_mutations,false_mutations\xda\x41Qtable_name,row_key,predicate_filter,true_mutations,false_mutations,app_profile_id\x82\xd3\xe4\x93\x02\xac\x01\"B/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow:\x01*Zc\"^/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:checkAndMutateRow:\x01*\x8a\xd3\xe4\x93\x02\xb0\x01\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\x12`\n\x14\x61uthorized_view_name\x12H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}\x12\xee\x01\n\x0bPingAndWarm\x12&.google.bigtable.v2.PingAndWarmRequest\x1a\'.google.bigtable.v2.PingAndWarmResponse\"\x8d\x01\xda\x41\x04name\xda\x41\x13name,app_profile_id\x82\xd3\xe4\x93\x02+\"&/v2/{name=projects/*/instances/*}:ping:\x01*\x8a\xd3\xe4\x93\x02\x39\x12%\n\x04name\x12\x1d{name=projects/*/instances/*}\x12\x10\n\x0e\x61pp_profile_id\x12\xa7\x04\n\x12ReadModifyWriteRow\x12-.google.bigtable.v2.ReadModifyWriteRowRequest\x1a..google.bigtable.v2.ReadModifyWriteRowResponse\"\xb1\x03\xda\x41\x18table_name,row_key,rules\xda\x41\'table_name,row_key,rules,app_profile_id\x82\xd3\xe4\x93\x02\xae\x01\"C/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow:\x01*Zd\"_/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:readModifyWriteRow:\x01*\x8a\xd3\xe4\x93\x02\xb0\x01\x12:\n\ntable_name\x12,{table_name=projects/*/instances/*/tables/*}\x12\x10\n\x0e\x61pp_profile_id\x12`\n\x14\x61uthorized_view_name\x12H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}\x12\xbb\x02\n%GenerateInitialChangeStreamPartitions\x12@.google.bigtable.v2.GenerateInitialChangeStreamPartitionsRequest\x1a\x41.google.bigtable.v2.GenerateInitialChangeStreamPartitionsResponse\"\x8a\x01\xda\x41\ntable_name\xda\x41\x19table_name,app_profile_id\x82\xd3\xe4\x93\x02[\"V/v2/{table_name=projects/*/instances/*/tables/*}:generateInitialChangeStreamPartitions:\x01*0\x01\x12\xe6\x01\n\x10ReadChangeStream\x12+.google.bigtable.v2.ReadChangeStreamRequest\x1a,.google.bigtable.v2.ReadChangeStreamResponse\"u\xda\x41\ntable_name\xda\x41\x19table_name,app_profile_id\x82\xd3\xe4\x93\x02\x46\"A/v2/{table_name=projects/*/instances/*/tables/*}:readChangeStream:\x01*0\x01\x12\xa9\x02\n\x0cPrepareQuery\x12\'.google.bigtable.v2.PrepareQueryRequest\x1a(.google.bigtable.v2.PrepareQueryResponse\"\xc5\x01\xda\x41\x13instance_name,query\xda\x41\"instance_name,query,app_profile_id\x82\xd3\xe4\x93\x02<\"7/v2/{instance_name=projects/*/instances/*}:prepareQuery:\x01*\x8a\xd3\xe4\x93\x02\x42\x12.\n\rinstance_name\x12\x1d{name=projects/*/instances/*}\x12\x10\n\x0e\x61pp_profile_id\x12\xab\x02\n\x0c\x45xecuteQuery\x12\'.google.bigtable.v2.ExecuteQueryRequest\x1a(.google.bigtable.v2.ExecuteQueryResponse\"\xc5\x01\xda\x41\x13instance_name,query\xda\x41\"instance_name,query,app_profile_id\x82\xd3\xe4\x93\x02<\"7/v2/{instance_name=projects/*/instances/*}:executeQuery:\x01*\x8a\xd3\xe4\x93\x02\x42\x12.\n\rinstance_name\x12\x1d{name=projects/*/instances/*}\x12\x10\n\x0e\x61pp_profile_id0\x01\x1a\xdb\x02\xca\x41\x17\x62igtable.googleapis.com\xd2\x41\xbd\x02https://www.googleapis.com/auth/bigtable.data,https://www.googleapis.com/auth/bigtable.data.readonly,https://www.googleapis.com/auth/cloud-bigtable.data,https://www.googleapis.com/auth/cloud-bigtable.data.readonly,https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-onlyB\xf5\x04\n\x16\x63om.google.bigtable.v2B\rBigtableProtoP\x01Z8cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb\xaa\x02\x18Google.Cloud.Bigtable.V2\xca\x02\x18Google\\Cloud\\Bigtable\\V2\xea\x02\x1bGoogle::Cloud::Bigtable::V2\xea\x41P\n%bigtableadmin.googleapis.com/Instance\x12\'projects/{project}/instances/{instance}\xea\x41\\\n\"bigtableadmin.googleapis.com/Table\x12\x36projects/{project}/instances/{instance}/tables/{table}\xea\x41\x87\x01\n+bigtableadmin.googleapis.com/AuthorizedView\x12Xprojects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}\xea\x41~\n-bigtableadmin.googleapis.com/MaterializedView\x12Mprojects/{project}/instances/{instance}/materializedViews/{materialized_view}b\x06proto3') - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\026com.google.bigtable.v2B\rBigtableProtoP\001Z:google.golang.org/genproto/googleapis/bigtable/v2;bigtable\252\002\030Google.Cloud.Bigtable.V2\312\002\030Google\\Cloud\\Bigtable\\V2\352\002\033Google::Cloud::Bigtable::V2\352AP\n%bigtableadmin.googleapis.com/Instance\022\'projects/{project}/instances/{instance}\352A\\\n\"bigtableadmin.googleapis.com/Table\0226projects/{project}/instances/{instance}/tables/{table}' - _READROWSREQUEST.fields_by_name['table_name']._options = None - _READROWSREQUEST.fields_by_name['table_name']._serialized_options = b'\340A\002\372A$\n\"bigtableadmin.googleapis.com/Table' - _SAMPLEROWKEYSREQUEST.fields_by_name['table_name']._options = None - _SAMPLEROWKEYSREQUEST.fields_by_name['table_name']._serialized_options = b'\340A\002\372A$\n\"bigtableadmin.googleapis.com/Table' - _MUTATEROWREQUEST.fields_by_name['table_name']._options = None - _MUTATEROWREQUEST.fields_by_name['table_name']._serialized_options = b'\340A\002\372A$\n\"bigtableadmin.googleapis.com/Table' - _MUTATEROWREQUEST.fields_by_name['row_key']._options = None - _MUTATEROWREQUEST.fields_by_name['row_key']._serialized_options = b'\340A\002' - _MUTATEROWREQUEST.fields_by_name['mutations']._options = None - _MUTATEROWREQUEST.fields_by_name['mutations']._serialized_options = b'\340A\002' - _MUTATEROWSREQUEST_ENTRY.fields_by_name['mutations']._options = None - _MUTATEROWSREQUEST_ENTRY.fields_by_name['mutations']._serialized_options = b'\340A\002' - _MUTATEROWSREQUEST.fields_by_name['table_name']._options = None - _MUTATEROWSREQUEST.fields_by_name['table_name']._serialized_options = b'\340A\002\372A$\n\"bigtableadmin.googleapis.com/Table' - _MUTATEROWSREQUEST.fields_by_name['entries']._options = None - _MUTATEROWSREQUEST.fields_by_name['entries']._serialized_options = b'\340A\002' - _CHECKANDMUTATEROWREQUEST.fields_by_name['table_name']._options = None - _CHECKANDMUTATEROWREQUEST.fields_by_name['table_name']._serialized_options = b'\340A\002\372A$\n\"bigtableadmin.googleapis.com/Table' - _CHECKANDMUTATEROWREQUEST.fields_by_name['row_key']._options = None - _CHECKANDMUTATEROWREQUEST.fields_by_name['row_key']._serialized_options = b'\340A\002' - _PINGANDWARMREQUEST.fields_by_name['name']._options = None - _PINGANDWARMREQUEST.fields_by_name['name']._serialized_options = b'\340A\002\372A\'\n%bigtableadmin.googleapis.com/Instance' - _READMODIFYWRITEROWREQUEST.fields_by_name['table_name']._options = None - _READMODIFYWRITEROWREQUEST.fields_by_name['table_name']._serialized_options = b'\340A\002\372A$\n\"bigtableadmin.googleapis.com/Table' - _READMODIFYWRITEROWREQUEST.fields_by_name['row_key']._options = None - _READMODIFYWRITEROWREQUEST.fields_by_name['row_key']._serialized_options = b'\340A\002' - _READMODIFYWRITEROWREQUEST.fields_by_name['rules']._options = None - _READMODIFYWRITEROWREQUEST.fields_by_name['rules']._serialized_options = b'\340A\002' - _GENERATEINITIALCHANGESTREAMPARTITIONSREQUEST.fields_by_name['table_name']._options = None - _GENERATEINITIALCHANGESTREAMPARTITIONSREQUEST.fields_by_name['table_name']._serialized_options = b'\340A\002\372A$\n\"bigtableadmin.googleapis.com/Table' - _READCHANGESTREAMREQUEST.fields_by_name['table_name']._options = None - _READCHANGESTREAMREQUEST.fields_by_name['table_name']._serialized_options = b'\340A\002\372A$\n\"bigtableadmin.googleapis.com/Table' - _BIGTABLE._options = None - _BIGTABLE._serialized_options = b'\312A\027bigtable.googleapis.com\322A\275\002https://www.googleapis.com/auth/bigtable.data,https://www.googleapis.com/auth/bigtable.data.readonly,https://www.googleapis.com/auth/cloud-bigtable.data,https://www.googleapis.com/auth/cloud-bigtable.data.readonly,https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only' - _BIGTABLE.methods_by_name['ReadRows']._options = None - _BIGTABLE.methods_by_name['ReadRows']._serialized_options = b'\202\323\344\223\002>\"9/v2/{table_name=projects/*/instances/*/tables/*}:readRows:\001*\212\323\344\223\002N\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\332A\ntable_name\332A\031table_name,app_profile_id' - _BIGTABLE.methods_by_name['SampleRowKeys']._options = None - _BIGTABLE.methods_by_name['SampleRowKeys']._serialized_options = b'\202\323\344\223\002@\022>/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeys\212\323\344\223\002N\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\332A\ntable_name\332A\031table_name,app_profile_id' - _BIGTABLE.methods_by_name['MutateRow']._options = None - _BIGTABLE.methods_by_name['MutateRow']._serialized_options = b'\202\323\344\223\002?\":/v2/{table_name=projects/*/instances/*/tables/*}:mutateRow:\001*\212\323\344\223\002N\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\332A\034table_name,row_key,mutations\332A+table_name,row_key,mutations,app_profile_id' - _BIGTABLE.methods_by_name['MutateRows']._options = None - _BIGTABLE.methods_by_name['MutateRows']._serialized_options = b'\202\323\344\223\002@\";/v2/{table_name=projects/*/instances/*/tables/*}:mutateRows:\001*\212\323\344\223\002N\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\332A\022table_name,entries\332A!table_name,entries,app_profile_id' - _BIGTABLE.methods_by_name['CheckAndMutateRow']._options = None - _BIGTABLE.methods_by_name['CheckAndMutateRow']._serialized_options = b'\202\323\344\223\002G\"B/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow:\001*\212\323\344\223\002N\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\332ABtable_name,row_key,predicate_filter,true_mutations,false_mutations\332AQtable_name,row_key,predicate_filter,true_mutations,false_mutations,app_profile_id' - _BIGTABLE.methods_by_name['PingAndWarm']._options = None - _BIGTABLE.methods_by_name['PingAndWarm']._serialized_options = b'\202\323\344\223\002+\"&/v2/{name=projects/*/instances/*}:ping:\001*\212\323\344\223\0029\022%\n\004name\022\035{name=projects/*/instances/*}\022\020\n\016app_profile_id\332A\004name\332A\023name,app_profile_id' - _BIGTABLE.methods_by_name['ReadModifyWriteRow']._options = None - _BIGTABLE.methods_by_name['ReadModifyWriteRow']._serialized_options = b'\202\323\344\223\002H\"C/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow:\001*\212\323\344\223\002N\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\332A\030table_name,row_key,rules\332A\'table_name,row_key,rules,app_profile_id' - _BIGTABLE.methods_by_name['GenerateInitialChangeStreamPartitions']._options = None - _BIGTABLE.methods_by_name['GenerateInitialChangeStreamPartitions']._serialized_options = b'\202\323\344\223\002[\"V/v2/{table_name=projects/*/instances/*/tables/*}:generateInitialChangeStreamPartitions:\001*\332A\ntable_name\332A\031table_name,app_profile_id' - _BIGTABLE.methods_by_name['ReadChangeStream']._options = None - _BIGTABLE.methods_by_name['ReadChangeStream']._serialized_options = b'\202\323\344\223\002F\"A/v2/{table_name=projects/*/instances/*/tables/*}:readChangeStream:\001*\332A\ntable_name\332A\031table_name,app_profile_id' - _READROWSREQUEST._serialized_start=392 - _READROWSREQUEST._serialized_end=792 - _READROWSREQUEST_REQUESTSTATSVIEW._serialized_start=690 - _READROWSREQUEST_REQUESTSTATSVIEW._serialized_end=792 - _READROWSRESPONSE._serialized_start=795 - _READROWSRESPONSE._serialized_end=1228 - _READROWSRESPONSE_CELLCHUNK._serialized_start=967 - _READROWSRESPONSE_CELLCHUNK._serialized_end=1228 - _SAMPLEROWKEYSREQUEST._serialized_start=1230 - _SAMPLEROWKEYSREQUEST._serialized_end=1340 - _SAMPLEROWKEYSRESPONSE._serialized_start=1342 - _SAMPLEROWKEYSRESPONSE._serialized_end=1404 - _MUTATEROWREQUEST._serialized_start=1407 - _MUTATEROWREQUEST._serialized_end=1589 - _MUTATEROWRESPONSE._serialized_start=1591 - _MUTATEROWRESPONSE._serialized_end=1610 - _MUTATEROWSREQUEST._serialized_start=1613 - _MUTATEROWSREQUEST._serialized_end=1867 - _MUTATEROWSREQUEST_ENTRY._serialized_start=1789 - _MUTATEROWSREQUEST_ENTRY._serialized_end=1867 - _MUTATEROWSRESPONSE._serialized_start=1870 - _MUTATEROWSRESPONSE._serialized_end=2013 - _MUTATEROWSRESPONSE_ENTRY._serialized_start=1955 - _MUTATEROWSRESPONSE_ENTRY._serialized_end=2013 - _CHECKANDMUTATEROWREQUEST._serialized_start=2016 - _CHECKANDMUTATEROWREQUEST._serialized_end=2318 - _CHECKANDMUTATEROWRESPONSE._serialized_start=2320 - _CHECKANDMUTATEROWRESPONSE._serialized_end=2374 - _PINGANDWARMREQUEST._serialized_start=2376 - _PINGANDWARMREQUEST._serialized_end=2481 - _PINGANDWARMRESPONSE._serialized_start=2483 - _PINGANDWARMRESPONSE._serialized_end=2504 - _READMODIFYWRITEROWREQUEST._serialized_start=2507 - _READMODIFYWRITEROWREQUEST._serialized_end=2705 - _READMODIFYWRITEROWRESPONSE._serialized_start=2707 - _READMODIFYWRITEROWRESPONSE._serialized_end=2773 - _GENERATEINITIALCHANGESTREAMPARTITIONSREQUEST._serialized_start=2776 - _GENERATEINITIALCHANGESTREAMPARTITIONSREQUEST._serialized_end=2910 - _GENERATEINITIALCHANGESTREAMPARTITIONSRESPONSE._serialized_start=2912 - _GENERATEINITIALCHANGESTREAMPARTITIONSRESPONSE._serialized_end=3015 - _READCHANGESTREAMREQUEST._serialized_start=3018 - _READCHANGESTREAMREQUEST._serialized_end=3429 - _READCHANGESTREAMRESPONSE._serialized_start=3432 - _READCHANGESTREAMRESPONSE._serialized_end=4691 - _READCHANGESTREAMRESPONSE_MUTATIONCHUNK._serialized_start=3700 - _READCHANGESTREAMRESPONSE_MUTATIONCHUNK._serialized_end=3944 - _READCHANGESTREAMRESPONSE_MUTATIONCHUNK_CHUNKINFO._serialized_start=3855 - _READCHANGESTREAMRESPONSE_MUTATIONCHUNK_CHUNKINFO._serialized_end=3944 - _READCHANGESTREAMRESPONSE_DATACHANGE._serialized_start=3947 - _READCHANGESTREAMRESPONSE_DATACHANGE._serialized_end=4401 - _READCHANGESTREAMRESPONSE_DATACHANGE_TYPE._serialized_start=4321 - _READCHANGESTREAMRESPONSE_DATACHANGE_TYPE._serialized_end=4401 - _READCHANGESTREAMRESPONSE_HEARTBEAT._serialized_start=4404 - _READCHANGESTREAMRESPONSE_HEARTBEAT._serialized_end=4549 - _READCHANGESTREAMRESPONSE_CLOSESTREAM._serialized_start=4551 - _READCHANGESTREAMRESPONSE_CLOSESTREAM._serialized_end=4674 - _BIGTABLE._serialized_start=4694 - _BIGTABLE._serialized_end=7853 +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'google.bigtable.v2.bigtable_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\026com.google.bigtable.v2B\rBigtableProtoP\001Z8cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb\252\002\030Google.Cloud.Bigtable.V2\312\002\030Google\\Cloud\\Bigtable\\V2\352\002\033Google::Cloud::Bigtable::V2\352AP\n%bigtableadmin.googleapis.com/Instance\022\'projects/{project}/instances/{instance}\352A\\\n\"bigtableadmin.googleapis.com/Table\0226projects/{project}/instances/{instance}/tables/{table}\352A\207\001\n+bigtableadmin.googleapis.com/AuthorizedView\022Xprojects/{project}/instances/{instance}/tables/{table}/authorizedViews/{authorized_view}\352A~\n-bigtableadmin.googleapis.com/MaterializedView\022Mprojects/{project}/instances/{instance}/materializedViews/{materialized_view}' + _globals['_READROWSREQUEST'].fields_by_name['table_name']._loaded_options = None + _globals['_READROWSREQUEST'].fields_by_name['table_name']._serialized_options = b'\340A\001\372A$\n\"bigtableadmin.googleapis.com/Table' + _globals['_READROWSREQUEST'].fields_by_name['authorized_view_name']._loaded_options = None + _globals['_READROWSREQUEST'].fields_by_name['authorized_view_name']._serialized_options = b'\340A\001\372A-\n+bigtableadmin.googleapis.com/AuthorizedView' + _globals['_READROWSREQUEST'].fields_by_name['materialized_view_name']._loaded_options = None + _globals['_READROWSREQUEST'].fields_by_name['materialized_view_name']._serialized_options = b'\340A\001\372A/\n-bigtableadmin.googleapis.com/MaterializedView' + _globals['_SAMPLEROWKEYSREQUEST'].fields_by_name['table_name']._loaded_options = None + _globals['_SAMPLEROWKEYSREQUEST'].fields_by_name['table_name']._serialized_options = b'\340A\001\372A$\n\"bigtableadmin.googleapis.com/Table' + _globals['_SAMPLEROWKEYSREQUEST'].fields_by_name['authorized_view_name']._loaded_options = None + _globals['_SAMPLEROWKEYSREQUEST'].fields_by_name['authorized_view_name']._serialized_options = b'\340A\001\372A-\n+bigtableadmin.googleapis.com/AuthorizedView' + _globals['_SAMPLEROWKEYSREQUEST'].fields_by_name['materialized_view_name']._loaded_options = None + _globals['_SAMPLEROWKEYSREQUEST'].fields_by_name['materialized_view_name']._serialized_options = b'\340A\001\372A/\n-bigtableadmin.googleapis.com/MaterializedView' + _globals['_MUTATEROWREQUEST'].fields_by_name['table_name']._loaded_options = None + _globals['_MUTATEROWREQUEST'].fields_by_name['table_name']._serialized_options = b'\340A\001\372A$\n\"bigtableadmin.googleapis.com/Table' + _globals['_MUTATEROWREQUEST'].fields_by_name['authorized_view_name']._loaded_options = None + _globals['_MUTATEROWREQUEST'].fields_by_name['authorized_view_name']._serialized_options = b'\340A\001\372A-\n+bigtableadmin.googleapis.com/AuthorizedView' + _globals['_MUTATEROWREQUEST'].fields_by_name['row_key']._loaded_options = None + _globals['_MUTATEROWREQUEST'].fields_by_name['row_key']._serialized_options = b'\340A\002' + _globals['_MUTATEROWREQUEST'].fields_by_name['mutations']._loaded_options = None + _globals['_MUTATEROWREQUEST'].fields_by_name['mutations']._serialized_options = b'\340A\002' + _globals['_MUTATEROWSREQUEST_ENTRY'].fields_by_name['mutations']._loaded_options = None + _globals['_MUTATEROWSREQUEST_ENTRY'].fields_by_name['mutations']._serialized_options = b'\340A\002' + _globals['_MUTATEROWSREQUEST'].fields_by_name['table_name']._loaded_options = None + _globals['_MUTATEROWSREQUEST'].fields_by_name['table_name']._serialized_options = b'\340A\001\372A$\n\"bigtableadmin.googleapis.com/Table' + _globals['_MUTATEROWSREQUEST'].fields_by_name['authorized_view_name']._loaded_options = None + _globals['_MUTATEROWSREQUEST'].fields_by_name['authorized_view_name']._serialized_options = b'\340A\001\372A-\n+bigtableadmin.googleapis.com/AuthorizedView' + _globals['_MUTATEROWSREQUEST'].fields_by_name['entries']._loaded_options = None + _globals['_MUTATEROWSREQUEST'].fields_by_name['entries']._serialized_options = b'\340A\002' + _globals['_CHECKANDMUTATEROWREQUEST'].fields_by_name['table_name']._loaded_options = None + _globals['_CHECKANDMUTATEROWREQUEST'].fields_by_name['table_name']._serialized_options = b'\340A\001\372A$\n\"bigtableadmin.googleapis.com/Table' + _globals['_CHECKANDMUTATEROWREQUEST'].fields_by_name['authorized_view_name']._loaded_options = None + _globals['_CHECKANDMUTATEROWREQUEST'].fields_by_name['authorized_view_name']._serialized_options = b'\340A\001\372A-\n+bigtableadmin.googleapis.com/AuthorizedView' + _globals['_CHECKANDMUTATEROWREQUEST'].fields_by_name['row_key']._loaded_options = None + _globals['_CHECKANDMUTATEROWREQUEST'].fields_by_name['row_key']._serialized_options = b'\340A\002' + _globals['_PINGANDWARMREQUEST'].fields_by_name['name']._loaded_options = None + _globals['_PINGANDWARMREQUEST'].fields_by_name['name']._serialized_options = b'\340A\002\372A\'\n%bigtableadmin.googleapis.com/Instance' + _globals['_READMODIFYWRITEROWREQUEST'].fields_by_name['table_name']._loaded_options = None + _globals['_READMODIFYWRITEROWREQUEST'].fields_by_name['table_name']._serialized_options = b'\340A\001\372A$\n\"bigtableadmin.googleapis.com/Table' + _globals['_READMODIFYWRITEROWREQUEST'].fields_by_name['authorized_view_name']._loaded_options = None + _globals['_READMODIFYWRITEROWREQUEST'].fields_by_name['authorized_view_name']._serialized_options = b'\340A\001\372A-\n+bigtableadmin.googleapis.com/AuthorizedView' + _globals['_READMODIFYWRITEROWREQUEST'].fields_by_name['row_key']._loaded_options = None + _globals['_READMODIFYWRITEROWREQUEST'].fields_by_name['row_key']._serialized_options = b'\340A\002' + _globals['_READMODIFYWRITEROWREQUEST'].fields_by_name['rules']._loaded_options = None + _globals['_READMODIFYWRITEROWREQUEST'].fields_by_name['rules']._serialized_options = b'\340A\002' + _globals['_GENERATEINITIALCHANGESTREAMPARTITIONSREQUEST'].fields_by_name['table_name']._loaded_options = None + _globals['_GENERATEINITIALCHANGESTREAMPARTITIONSREQUEST'].fields_by_name['table_name']._serialized_options = b'\340A\002\372A$\n\"bigtableadmin.googleapis.com/Table' + _globals['_READCHANGESTREAMREQUEST'].fields_by_name['table_name']._loaded_options = None + _globals['_READCHANGESTREAMREQUEST'].fields_by_name['table_name']._serialized_options = b'\340A\002\372A$\n\"bigtableadmin.googleapis.com/Table' + _globals['_EXECUTEQUERYREQUEST_PARAMSENTRY']._loaded_options = None + _globals['_EXECUTEQUERYREQUEST_PARAMSENTRY']._serialized_options = b'8\001' + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['instance_name']._loaded_options = None + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['instance_name']._serialized_options = b'\340A\002\372A\'\n%bigtableadmin.googleapis.com/Instance' + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['app_profile_id']._loaded_options = None + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['app_profile_id']._serialized_options = b'\340A\001' + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['query']._loaded_options = None + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['query']._serialized_options = b'\030\001\340A\002' + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['proto_format']._loaded_options = None + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['proto_format']._serialized_options = b'\030\001' + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['resume_token']._loaded_options = None + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['resume_token']._serialized_options = b'\340A\001' + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['params']._loaded_options = None + _globals['_EXECUTEQUERYREQUEST'].fields_by_name['params']._serialized_options = b'\340A\002' + _globals['_PREPAREQUERYREQUEST_PARAMTYPESENTRY']._loaded_options = None + _globals['_PREPAREQUERYREQUEST_PARAMTYPESENTRY']._serialized_options = b'8\001' + _globals['_PREPAREQUERYREQUEST'].fields_by_name['instance_name']._loaded_options = None + _globals['_PREPAREQUERYREQUEST'].fields_by_name['instance_name']._serialized_options = b'\340A\002\372A\'\n%bigtableadmin.googleapis.com/Instance' + _globals['_PREPAREQUERYREQUEST'].fields_by_name['app_profile_id']._loaded_options = None + _globals['_PREPAREQUERYREQUEST'].fields_by_name['app_profile_id']._serialized_options = b'\340A\001' + _globals['_PREPAREQUERYREQUEST'].fields_by_name['query']._loaded_options = None + _globals['_PREPAREQUERYREQUEST'].fields_by_name['query']._serialized_options = b'\340A\002' + _globals['_PREPAREQUERYREQUEST'].fields_by_name['param_types']._loaded_options = None + _globals['_PREPAREQUERYREQUEST'].fields_by_name['param_types']._serialized_options = b'\340A\002' + _globals['_BIGTABLE']._loaded_options = None + _globals['_BIGTABLE']._serialized_options = b'\312A\027bigtable.googleapis.com\322A\275\002https://www.googleapis.com/auth/bigtable.data,https://www.googleapis.com/auth/bigtable.data.readonly,https://www.googleapis.com/auth/cloud-bigtable.data,https://www.googleapis.com/auth/cloud-bigtable.data.readonly,https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/cloud-platform.read-only' + _globals['_BIGTABLE'].methods_by_name['ReadRows']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['ReadRows']._serialized_options = b'\332A\ntable_name\332A\031table_name,app_profile_id\202\323\344\223\002\232\001\"9/v2/{table_name=projects/*/instances/*/tables/*}:readRows:\001*ZZ\"U/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:readRows:\001*\212\323\344\223\002\260\001\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\022`\n\024authorized_view_name\022H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}' + _globals['_BIGTABLE'].methods_by_name['SampleRowKeys']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['SampleRowKeys']._serialized_options = b'\332A\ntable_name\332A\031table_name,app_profile_id\202\323\344\223\002\236\001\022>/v2/{table_name=projects/*/instances/*/tables/*}:sampleRowKeysZ\\\022Z/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:sampleRowKeys\212\323\344\223\002\260\001\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\022`\n\024authorized_view_name\022H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}' + _globals['_BIGTABLE'].methods_by_name['MutateRow']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['MutateRow']._serialized_options = b'\332A\034table_name,row_key,mutations\332A+table_name,row_key,mutations,app_profile_id\202\323\344\223\002\234\001\":/v2/{table_name=projects/*/instances/*/tables/*}:mutateRow:\001*Z[\"V/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:mutateRow:\001*\212\323\344\223\002\260\001\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\022`\n\024authorized_view_name\022H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}' + _globals['_BIGTABLE'].methods_by_name['MutateRows']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['MutateRows']._serialized_options = b'\332A\022table_name,entries\332A!table_name,entries,app_profile_id\202\323\344\223\002\236\001\";/v2/{table_name=projects/*/instances/*/tables/*}:mutateRows:\001*Z\\\"W/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:mutateRows:\001*\212\323\344\223\002\260\001\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\022`\n\024authorized_view_name\022H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}' + _globals['_BIGTABLE'].methods_by_name['CheckAndMutateRow']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['CheckAndMutateRow']._serialized_options = b'\332ABtable_name,row_key,predicate_filter,true_mutations,false_mutations\332AQtable_name,row_key,predicate_filter,true_mutations,false_mutations,app_profile_id\202\323\344\223\002\254\001\"B/v2/{table_name=projects/*/instances/*/tables/*}:checkAndMutateRow:\001*Zc\"^/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:checkAndMutateRow:\001*\212\323\344\223\002\260\001\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\022`\n\024authorized_view_name\022H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}' + _globals['_BIGTABLE'].methods_by_name['PingAndWarm']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['PingAndWarm']._serialized_options = b'\332A\004name\332A\023name,app_profile_id\202\323\344\223\002+\"&/v2/{name=projects/*/instances/*}:ping:\001*\212\323\344\223\0029\022%\n\004name\022\035{name=projects/*/instances/*}\022\020\n\016app_profile_id' + _globals['_BIGTABLE'].methods_by_name['ReadModifyWriteRow']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['ReadModifyWriteRow']._serialized_options = b'\332A\030table_name,row_key,rules\332A\'table_name,row_key,rules,app_profile_id\202\323\344\223\002\256\001\"C/v2/{table_name=projects/*/instances/*/tables/*}:readModifyWriteRow:\001*Zd\"_/v2/{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}:readModifyWriteRow:\001*\212\323\344\223\002\260\001\022:\n\ntable_name\022,{table_name=projects/*/instances/*/tables/*}\022\020\n\016app_profile_id\022`\n\024authorized_view_name\022H{authorized_view_name=projects/*/instances/*/tables/*/authorizedViews/*}' + _globals['_BIGTABLE'].methods_by_name['GenerateInitialChangeStreamPartitions']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['GenerateInitialChangeStreamPartitions']._serialized_options = b'\332A\ntable_name\332A\031table_name,app_profile_id\202\323\344\223\002[\"V/v2/{table_name=projects/*/instances/*/tables/*}:generateInitialChangeStreamPartitions:\001*' + _globals['_BIGTABLE'].methods_by_name['ReadChangeStream']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['ReadChangeStream']._serialized_options = b'\332A\ntable_name\332A\031table_name,app_profile_id\202\323\344\223\002F\"A/v2/{table_name=projects/*/instances/*/tables/*}:readChangeStream:\001*' + _globals['_BIGTABLE'].methods_by_name['PrepareQuery']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['PrepareQuery']._serialized_options = b'\332A\023instance_name,query\332A\"instance_name,query,app_profile_id\202\323\344\223\002<\"7/v2/{instance_name=projects/*/instances/*}:prepareQuery:\001*\212\323\344\223\002B\022.\n\rinstance_name\022\035{name=projects/*/instances/*}\022\020\n\016app_profile_id' + _globals['_BIGTABLE'].methods_by_name['ExecuteQuery']._loaded_options = None + _globals['_BIGTABLE'].methods_by_name['ExecuteQuery']._serialized_options = b'\332A\023instance_name,query\332A\"instance_name,query,app_profile_id\202\323\344\223\002<\"7/v2/{instance_name=projects/*/instances/*}:executeQuery:\001*\212\323\344\223\002B\022.\n\rinstance_name\022\035{name=projects/*/instances/*}\022\020\n\016app_profile_id' + _globals['_READROWSREQUEST']._serialized_start=424 + _globals['_READROWSREQUEST']._serialized_end=1012 + _globals['_READROWSREQUEST_REQUESTSTATSVIEW']._serialized_start=910 + _globals['_READROWSREQUEST_REQUESTSTATSVIEW']._serialized_end=1012 + _globals['_READROWSRESPONSE']._serialized_start=1015 + _globals['_READROWSRESPONSE']._serialized_end=1448 + _globals['_READROWSRESPONSE_CELLCHUNK']._serialized_start=1187 + _globals['_READROWSRESPONSE_CELLCHUNK']._serialized_end=1448 + _globals['_SAMPLEROWKEYSREQUEST']._serialized_start=1451 + _globals['_SAMPLEROWKEYSREQUEST']._serialized_end=1731 + _globals['_SAMPLEROWKEYSRESPONSE']._serialized_start=1733 + _globals['_SAMPLEROWKEYSRESPONSE']._serialized_end=1795 + _globals['_MUTATEROWREQUEST']._serialized_start=1798 + _globals['_MUTATEROWREQUEST']._serialized_end=2063 + _globals['_MUTATEROWRESPONSE']._serialized_start=2065 + _globals['_MUTATEROWRESPONSE']._serialized_end=2084 + _globals['_MUTATEROWSREQUEST']._serialized_start=2087 + _globals['_MUTATEROWSREQUEST']._serialized_end=2424 + _globals['_MUTATEROWSREQUEST_ENTRY']._serialized_start=2346 + _globals['_MUTATEROWSREQUEST_ENTRY']._serialized_end=2424 + _globals['_MUTATEROWSRESPONSE']._serialized_start=2427 + _globals['_MUTATEROWSRESPONSE']._serialized_end=2655 + _globals['_MUTATEROWSRESPONSE_ENTRY']._serialized_start=2577 + _globals['_MUTATEROWSRESPONSE_ENTRY']._serialized_end=2635 + _globals['_RATELIMITINFO']._serialized_start=2657 + _globals['_RATELIMITINFO']._serialized_end=2731 + _globals['_CHECKANDMUTATEROWREQUEST']._serialized_start=2734 + _globals['_CHECKANDMUTATEROWREQUEST']._serialized_end=3119 + _globals['_CHECKANDMUTATEROWRESPONSE']._serialized_start=3121 + _globals['_CHECKANDMUTATEROWRESPONSE']._serialized_end=3175 + _globals['_PINGANDWARMREQUEST']._serialized_start=3177 + _globals['_PINGANDWARMREQUEST']._serialized_end=3282 + _globals['_PINGANDWARMRESPONSE']._serialized_start=3284 + _globals['_PINGANDWARMRESPONSE']._serialized_end=3305 + _globals['_READMODIFYWRITEROWREQUEST']._serialized_start=3308 + _globals['_READMODIFYWRITEROWREQUEST']._serialized_end=3589 + _globals['_READMODIFYWRITEROWRESPONSE']._serialized_start=3591 + _globals['_READMODIFYWRITEROWRESPONSE']._serialized_end=3657 + _globals['_GENERATEINITIALCHANGESTREAMPARTITIONSREQUEST']._serialized_start=3660 + _globals['_GENERATEINITIALCHANGESTREAMPARTITIONSREQUEST']._serialized_end=3794 + _globals['_GENERATEINITIALCHANGESTREAMPARTITIONSRESPONSE']._serialized_start=3796 + _globals['_GENERATEINITIALCHANGESTREAMPARTITIONSRESPONSE']._serialized_end=3899 + _globals['_READCHANGESTREAMREQUEST']._serialized_start=3902 + _globals['_READCHANGESTREAMREQUEST']._serialized_end=4313 + _globals['_READCHANGESTREAMRESPONSE']._serialized_start=4316 + _globals['_READCHANGESTREAMRESPONSE']._serialized_end=5637 + _globals['_READCHANGESTREAMRESPONSE_MUTATIONCHUNK']._serialized_start=4584 + _globals['_READCHANGESTREAMRESPONSE_MUTATIONCHUNK']._serialized_end=4828 + _globals['_READCHANGESTREAMRESPONSE_MUTATIONCHUNK_CHUNKINFO']._serialized_start=4739 + _globals['_READCHANGESTREAMRESPONSE_MUTATIONCHUNK_CHUNKINFO']._serialized_end=4828 + _globals['_READCHANGESTREAMRESPONSE_DATACHANGE']._serialized_start=4831 + _globals['_READCHANGESTREAMRESPONSE_DATACHANGE']._serialized_end=5285 + _globals['_READCHANGESTREAMRESPONSE_DATACHANGE_TYPE']._serialized_start=5205 + _globals['_READCHANGESTREAMRESPONSE_DATACHANGE_TYPE']._serialized_end=5285 + _globals['_READCHANGESTREAMRESPONSE_HEARTBEAT']._serialized_start=5288 + _globals['_READCHANGESTREAMRESPONSE_HEARTBEAT']._serialized_end=5433 + _globals['_READCHANGESTREAMRESPONSE_CLOSESTREAM']._serialized_start=5436 + _globals['_READCHANGESTREAMRESPONSE_CLOSESTREAM']._serialized_end=5620 + _globals['_EXECUTEQUERYREQUEST']._serialized_start=5640 + _globals['_EXECUTEQUERYREQUEST']._serialized_end=6057 + _globals['_EXECUTEQUERYREQUEST_PARAMSENTRY']._serialized_start=5970 + _globals['_EXECUTEQUERYREQUEST_PARAMSENTRY']._serialized_end=6042 + _globals['_EXECUTEQUERYRESPONSE']._serialized_start=6060 + _globals['_EXECUTEQUERYRESPONSE']._serialized_end=6210 + _globals['_PREPAREQUERYREQUEST']._serialized_start=6213 + _globals['_PREPAREQUERYREQUEST']._serialized_end=6585 + _globals['_PREPAREQUERYREQUEST_PARAMTYPESENTRY']._serialized_start=6495 + _globals['_PREPAREQUERYREQUEST_PARAMTYPESENTRY']._serialized_end=6570 + _globals['_PREPAREQUERYRESPONSE']._serialized_start=6588 + _globals['_PREPAREQUERYRESPONSE']._serialized_end=6740 + _globals['_BIGTABLE']._serialized_start=6743 + _globals['_BIGTABLE']._serialized_end=11680 # @@protoc_insertion_point(module_scope) diff --git a/test_proxy/protos/bigtable_pb2_grpc.py b/test_proxy/protos/bigtable_pb2_grpc.py index 9ce87d869..ef4e5bed6 100644 --- a/test_proxy/protos/bigtable_pb2_grpc.py +++ b/test_proxy/protos/bigtable_pb2_grpc.py @@ -1,9 +1,29 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! """Client and server classes corresponding to protobuf-defined services.""" import grpc +import warnings import bigtable_pb2 as google_dot_bigtable_dot_v2_dot_bigtable__pb2 +GRPC_GENERATED_VERSION = '1.70.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in google/bigtable/v2/bigtable_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) + class BigtableStub(object): """Service for reading from and writing to existing Bigtable tables. @@ -19,47 +39,57 @@ def __init__(self, channel): '/google.bigtable.v2.Bigtable/ReadRows', request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadRowsRequest.SerializeToString, response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadRowsResponse.FromString, - ) + _registered_method=True) self.SampleRowKeys = channel.unary_stream( '/google.bigtable.v2.Bigtable/SampleRowKeys', request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.SampleRowKeysRequest.SerializeToString, response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.SampleRowKeysResponse.FromString, - ) + _registered_method=True) self.MutateRow = channel.unary_unary( '/google.bigtable.v2.Bigtable/MutateRow', request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.MutateRowRequest.SerializeToString, response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.MutateRowResponse.FromString, - ) + _registered_method=True) self.MutateRows = channel.unary_stream( '/google.bigtable.v2.Bigtable/MutateRows', request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.MutateRowsRequest.SerializeToString, response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.MutateRowsResponse.FromString, - ) + _registered_method=True) self.CheckAndMutateRow = channel.unary_unary( '/google.bigtable.v2.Bigtable/CheckAndMutateRow', request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.CheckAndMutateRowRequest.SerializeToString, response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.CheckAndMutateRowResponse.FromString, - ) + _registered_method=True) self.PingAndWarm = channel.unary_unary( '/google.bigtable.v2.Bigtable/PingAndWarm', request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.PingAndWarmRequest.SerializeToString, response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.PingAndWarmResponse.FromString, - ) + _registered_method=True) self.ReadModifyWriteRow = channel.unary_unary( '/google.bigtable.v2.Bigtable/ReadModifyWriteRow', request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadModifyWriteRowRequest.SerializeToString, response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadModifyWriteRowResponse.FromString, - ) + _registered_method=True) self.GenerateInitialChangeStreamPartitions = channel.unary_stream( '/google.bigtable.v2.Bigtable/GenerateInitialChangeStreamPartitions', request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.GenerateInitialChangeStreamPartitionsRequest.SerializeToString, response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.GenerateInitialChangeStreamPartitionsResponse.FromString, - ) + _registered_method=True) self.ReadChangeStream = channel.unary_stream( '/google.bigtable.v2.Bigtable/ReadChangeStream', request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadChangeStreamRequest.SerializeToString, response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadChangeStreamResponse.FromString, - ) + _registered_method=True) + self.PrepareQuery = channel.unary_unary( + '/google.bigtable.v2.Bigtable/PrepareQuery', + request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.PrepareQueryRequest.SerializeToString, + response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.PrepareQueryResponse.FromString, + _registered_method=True) + self.ExecuteQuery = channel.unary_stream( + '/google.bigtable.v2.Bigtable/ExecuteQuery', + request_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ExecuteQueryRequest.SerializeToString, + response_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ExecuteQueryResponse.FromString, + _registered_method=True) class BigtableServicer(object): @@ -150,6 +180,20 @@ def ReadChangeStream(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def PrepareQuery(self, request, context): + """Prepares a GoogleSQL query for execution on a particular Bigtable instance. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + + def ExecuteQuery(self, request, context): + """Executes a SQL query against a particular Bigtable instance. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_BigtableServicer_to_server(servicer, server): rpc_method_handlers = { @@ -198,10 +242,21 @@ def add_BigtableServicer_to_server(servicer, server): request_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadChangeStreamRequest.FromString, response_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadChangeStreamResponse.SerializeToString, ), + 'PrepareQuery': grpc.unary_unary_rpc_method_handler( + servicer.PrepareQuery, + request_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.PrepareQueryRequest.FromString, + response_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.PrepareQueryResponse.SerializeToString, + ), + 'ExecuteQuery': grpc.unary_stream_rpc_method_handler( + servicer.ExecuteQuery, + request_deserializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ExecuteQueryRequest.FromString, + response_serializer=google_dot_bigtable_dot_v2_dot_bigtable__pb2.ExecuteQueryResponse.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'google.bigtable.v2.Bigtable', rpc_method_handlers) server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('google.bigtable.v2.Bigtable', rpc_method_handlers) # This class is part of an EXPERIMENTAL API. @@ -220,11 +275,21 @@ def ReadRows(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_stream(request, target, '/google.bigtable.v2.Bigtable/ReadRows', + return grpc.experimental.unary_stream( + request, + target, + '/google.bigtable.v2.Bigtable/ReadRows', google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadRowsRequest.SerializeToString, google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadRowsResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def SampleRowKeys(request, @@ -237,11 +302,21 @@ def SampleRowKeys(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_stream(request, target, '/google.bigtable.v2.Bigtable/SampleRowKeys', + return grpc.experimental.unary_stream( + request, + target, + '/google.bigtable.v2.Bigtable/SampleRowKeys', google_dot_bigtable_dot_v2_dot_bigtable__pb2.SampleRowKeysRequest.SerializeToString, google_dot_bigtable_dot_v2_dot_bigtable__pb2.SampleRowKeysResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def MutateRow(request, @@ -254,11 +329,21 @@ def MutateRow(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.v2.Bigtable/MutateRow', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.v2.Bigtable/MutateRow', google_dot_bigtable_dot_v2_dot_bigtable__pb2.MutateRowRequest.SerializeToString, google_dot_bigtable_dot_v2_dot_bigtable__pb2.MutateRowResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def MutateRows(request, @@ -271,11 +356,21 @@ def MutateRows(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_stream(request, target, '/google.bigtable.v2.Bigtable/MutateRows', + return grpc.experimental.unary_stream( + request, + target, + '/google.bigtable.v2.Bigtable/MutateRows', google_dot_bigtable_dot_v2_dot_bigtable__pb2.MutateRowsRequest.SerializeToString, google_dot_bigtable_dot_v2_dot_bigtable__pb2.MutateRowsResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def CheckAndMutateRow(request, @@ -288,11 +383,21 @@ def CheckAndMutateRow(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.v2.Bigtable/CheckAndMutateRow', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.v2.Bigtable/CheckAndMutateRow', google_dot_bigtable_dot_v2_dot_bigtable__pb2.CheckAndMutateRowRequest.SerializeToString, google_dot_bigtable_dot_v2_dot_bigtable__pb2.CheckAndMutateRowResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def PingAndWarm(request, @@ -305,11 +410,21 @@ def PingAndWarm(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.v2.Bigtable/PingAndWarm', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.v2.Bigtable/PingAndWarm', google_dot_bigtable_dot_v2_dot_bigtable__pb2.PingAndWarmRequest.SerializeToString, google_dot_bigtable_dot_v2_dot_bigtable__pb2.PingAndWarmResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def ReadModifyWriteRow(request, @@ -322,11 +437,21 @@ def ReadModifyWriteRow(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.v2.Bigtable/ReadModifyWriteRow', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.v2.Bigtable/ReadModifyWriteRow', google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadModifyWriteRowRequest.SerializeToString, google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadModifyWriteRowResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def GenerateInitialChangeStreamPartitions(request, @@ -339,11 +464,21 @@ def GenerateInitialChangeStreamPartitions(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_stream(request, target, '/google.bigtable.v2.Bigtable/GenerateInitialChangeStreamPartitions', + return grpc.experimental.unary_stream( + request, + target, + '/google.bigtable.v2.Bigtable/GenerateInitialChangeStreamPartitions', google_dot_bigtable_dot_v2_dot_bigtable__pb2.GenerateInitialChangeStreamPartitionsRequest.SerializeToString, google_dot_bigtable_dot_v2_dot_bigtable__pb2.GenerateInitialChangeStreamPartitionsResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def ReadChangeStream(request, @@ -356,8 +491,72 @@ def ReadChangeStream(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_stream(request, target, '/google.bigtable.v2.Bigtable/ReadChangeStream', + return grpc.experimental.unary_stream( + request, + target, + '/google.bigtable.v2.Bigtable/ReadChangeStream', google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadChangeStreamRequest.SerializeToString, google_dot_bigtable_dot_v2_dot_bigtable__pb2.ReadChangeStreamResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def PrepareQuery(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.v2.Bigtable/PrepareQuery', + google_dot_bigtable_dot_v2_dot_bigtable__pb2.PrepareQueryRequest.SerializeToString, + google_dot_bigtable_dot_v2_dot_bigtable__pb2.PrepareQueryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ExecuteQuery(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_stream( + request, + target, + '/google.bigtable.v2.Bigtable/ExecuteQuery', + google_dot_bigtable_dot_v2_dot_bigtable__pb2.ExecuteQueryRequest.SerializeToString, + google_dot_bigtable_dot_v2_dot_bigtable__pb2.ExecuteQueryResponse.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/test_proxy/protos/data_pb2.py b/test_proxy/protos/data_pb2.py index fff212034..8b6e68df1 100644 --- a/test_proxy/protos/data_pb2.py +++ b/test_proxy/protos/data_pb2.py @@ -1,68 +1,105 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: google/bigtable/v2/data.proto +# Protobuf Python Version: 5.29.0 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 0, + '', + 'google/bigtable/v2/data.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 +import types_pb2 as google_dot_bigtable_dot_v2_dot_types__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from google.type import date_pb2 as google_dot_type_dot_date__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dgoogle/bigtable/v2/data.proto\x12\x12google.bigtable.v2\"@\n\x03Row\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12,\n\x08\x66\x61milies\x18\x02 \x03(\x0b\x32\x1a.google.bigtable.v2.Family\"C\n\x06\x46\x61mily\x12\x0c\n\x04name\x18\x01 \x01(\t\x12+\n\x07\x63olumns\x18\x02 \x03(\x0b\x32\x1a.google.bigtable.v2.Column\"D\n\x06\x43olumn\x12\x11\n\tqualifier\x18\x01 \x01(\x0c\x12\'\n\x05\x63\x65lls\x18\x02 \x03(\x0b\x32\x18.google.bigtable.v2.Cell\"?\n\x04\x43\x65ll\x12\x18\n\x10timestamp_micros\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\x0e\n\x06labels\x18\x03 \x03(\t\"\x8a\x01\n\x08RowRange\x12\x1a\n\x10start_key_closed\x18\x01 \x01(\x0cH\x00\x12\x18\n\x0estart_key_open\x18\x02 \x01(\x0cH\x00\x12\x16\n\x0c\x65nd_key_open\x18\x03 \x01(\x0cH\x01\x12\x18\n\x0e\x65nd_key_closed\x18\x04 \x01(\x0cH\x01\x42\x0b\n\tstart_keyB\t\n\x07\x65nd_key\"L\n\x06RowSet\x12\x10\n\x08row_keys\x18\x01 \x03(\x0c\x12\x30\n\nrow_ranges\x18\x02 \x03(\x0b\x32\x1c.google.bigtable.v2.RowRange\"\xc6\x01\n\x0b\x43olumnRange\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x12 \n\x16start_qualifier_closed\x18\x02 \x01(\x0cH\x00\x12\x1e\n\x14start_qualifier_open\x18\x03 \x01(\x0cH\x00\x12\x1e\n\x14\x65nd_qualifier_closed\x18\x04 \x01(\x0cH\x01\x12\x1c\n\x12\x65nd_qualifier_open\x18\x05 \x01(\x0cH\x01\x42\x11\n\x0fstart_qualifierB\x0f\n\rend_qualifier\"N\n\x0eTimestampRange\x12\x1e\n\x16start_timestamp_micros\x18\x01 \x01(\x03\x12\x1c\n\x14\x65nd_timestamp_micros\x18\x02 \x01(\x03\"\x98\x01\n\nValueRange\x12\x1c\n\x12start_value_closed\x18\x01 \x01(\x0cH\x00\x12\x1a\n\x10start_value_open\x18\x02 \x01(\x0cH\x00\x12\x1a\n\x10\x65nd_value_closed\x18\x03 \x01(\x0cH\x01\x12\x18\n\x0e\x65nd_value_open\x18\x04 \x01(\x0cH\x01\x42\r\n\x0bstart_valueB\x0b\n\tend_value\"\xdf\x08\n\tRowFilter\x12\x34\n\x05\x63hain\x18\x01 \x01(\x0b\x32#.google.bigtable.v2.RowFilter.ChainH\x00\x12>\n\ninterleave\x18\x02 \x01(\x0b\x32(.google.bigtable.v2.RowFilter.InterleaveH\x00\x12<\n\tcondition\x18\x03 \x01(\x0b\x32\'.google.bigtable.v2.RowFilter.ConditionH\x00\x12\x0e\n\x04sink\x18\x10 \x01(\x08H\x00\x12\x19\n\x0fpass_all_filter\x18\x11 \x01(\x08H\x00\x12\x1a\n\x10\x62lock_all_filter\x18\x12 \x01(\x08H\x00\x12\x1e\n\x14row_key_regex_filter\x18\x04 \x01(\x0cH\x00\x12\x1b\n\x11row_sample_filter\x18\x0e \x01(\x01H\x00\x12\"\n\x18\x66\x61mily_name_regex_filter\x18\x05 \x01(\tH\x00\x12\'\n\x1d\x63olumn_qualifier_regex_filter\x18\x06 \x01(\x0cH\x00\x12>\n\x13\x63olumn_range_filter\x18\x07 \x01(\x0b\x32\x1f.google.bigtable.v2.ColumnRangeH\x00\x12\x44\n\x16timestamp_range_filter\x18\x08 \x01(\x0b\x32\".google.bigtable.v2.TimestampRangeH\x00\x12\x1c\n\x12value_regex_filter\x18\t \x01(\x0cH\x00\x12<\n\x12value_range_filter\x18\x0f \x01(\x0b\x32\x1e.google.bigtable.v2.ValueRangeH\x00\x12%\n\x1b\x63\x65lls_per_row_offset_filter\x18\n \x01(\x05H\x00\x12$\n\x1a\x63\x65lls_per_row_limit_filter\x18\x0b \x01(\x05H\x00\x12\'\n\x1d\x63\x65lls_per_column_limit_filter\x18\x0c \x01(\x05H\x00\x12!\n\x17strip_value_transformer\x18\r \x01(\x08H\x00\x12!\n\x17\x61pply_label_transformer\x18\x13 \x01(\tH\x00\x1a\x37\n\x05\x43hain\x12.\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x1a<\n\nInterleave\x12.\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x1a\xad\x01\n\tCondition\x12\x37\n\x10predicate_filter\x18\x01 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x12\x32\n\x0btrue_filter\x18\x02 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x12\x33\n\x0c\x66\x61lse_filter\x18\x03 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilterB\x08\n\x06\x66ilter\"\xc9\x04\n\x08Mutation\x12\x38\n\x08set_cell\x18\x01 \x01(\x0b\x32$.google.bigtable.v2.Mutation.SetCellH\x00\x12K\n\x12\x64\x65lete_from_column\x18\x02 \x01(\x0b\x32-.google.bigtable.v2.Mutation.DeleteFromColumnH\x00\x12K\n\x12\x64\x65lete_from_family\x18\x03 \x01(\x0b\x32-.google.bigtable.v2.Mutation.DeleteFromFamilyH\x00\x12\x45\n\x0f\x64\x65lete_from_row\x18\x04 \x01(\x0b\x32*.google.bigtable.v2.Mutation.DeleteFromRowH\x00\x1a\x61\n\x07SetCell\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x12\x18\n\x10\x63olumn_qualifier\x18\x02 \x01(\x0c\x12\x18\n\x10timestamp_micros\x18\x03 \x01(\x03\x12\r\n\x05value\x18\x04 \x01(\x0c\x1ay\n\x10\x44\x65leteFromColumn\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x12\x18\n\x10\x63olumn_qualifier\x18\x02 \x01(\x0c\x12\x36\n\ntime_range\x18\x03 \x01(\x0b\x32\".google.bigtable.v2.TimestampRange\x1a\'\n\x10\x44\x65leteFromFamily\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x1a\x0f\n\rDeleteFromRowB\n\n\x08mutation\"\x80\x01\n\x13ReadModifyWriteRule\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x12\x18\n\x10\x63olumn_qualifier\x18\x02 \x01(\x0c\x12\x16\n\x0c\x61ppend_value\x18\x03 \x01(\x0cH\x00\x12\x1a\n\x10increment_amount\x18\x04 \x01(\x03H\x00\x42\x06\n\x04rule\"B\n\x0fStreamPartition\x12/\n\trow_range\x18\x01 \x01(\x0b\x32\x1c.google.bigtable.v2.RowRange\"W\n\x18StreamContinuationTokens\x12;\n\x06tokens\x18\x01 \x03(\x0b\x32+.google.bigtable.v2.StreamContinuationToken\"`\n\x17StreamContinuationToken\x12\x36\n\tpartition\x18\x01 \x01(\x0b\x32#.google.bigtable.v2.StreamPartition\x12\r\n\x05token\x18\x02 \x01(\tB\xb5\x01\n\x16\x63om.google.bigtable.v2B\tDataProtoP\x01Z:google.golang.org/genproto/googleapis/bigtable/v2;bigtable\xaa\x02\x18Google.Cloud.Bigtable.V2\xca\x02\x18Google\\Cloud\\Bigtable\\V2\xea\x02\x1bGoogle::Cloud::Bigtable::V2b\x06proto3') - -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'google.bigtable.v2.data_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dgoogle/bigtable/v2/data.proto\x12\x12google.bigtable.v2\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1egoogle/bigtable/v2/types.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x16google/type/date.proto\"@\n\x03Row\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12,\n\x08\x66\x61milies\x18\x02 \x03(\x0b\x32\x1a.google.bigtable.v2.Family\"C\n\x06\x46\x61mily\x12\x0c\n\x04name\x18\x01 \x01(\t\x12+\n\x07\x63olumns\x18\x02 \x03(\x0b\x32\x1a.google.bigtable.v2.Column\"D\n\x06\x43olumn\x12\x11\n\tqualifier\x18\x01 \x01(\x0c\x12\'\n\x05\x63\x65lls\x18\x02 \x03(\x0b\x32\x18.google.bigtable.v2.Cell\"?\n\x04\x43\x65ll\x12\x18\n\x10timestamp_micros\x18\x01 \x01(\x03\x12\r\n\x05value\x18\x02 \x01(\x0c\x12\x0e\n\x06labels\x18\x03 \x03(\t\"\xf4\x02\n\x05Value\x12&\n\x04type\x18\x07 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x12\x13\n\traw_value\x18\x08 \x01(\x0cH\x00\x12\x1e\n\x14raw_timestamp_micros\x18\t \x01(\x03H\x00\x12\x15\n\x0b\x62ytes_value\x18\x02 \x01(\x0cH\x00\x12\x16\n\x0cstring_value\x18\x03 \x01(\tH\x00\x12\x13\n\tint_value\x18\x06 \x01(\x03H\x00\x12\x14\n\nbool_value\x18\n \x01(\x08H\x00\x12\x15\n\x0b\x66loat_value\x18\x0b \x01(\x01H\x00\x12\x35\n\x0ftimestamp_value\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x12\'\n\ndate_value\x18\r \x01(\x0b\x32\x11.google.type.DateH\x00\x12\x35\n\x0b\x61rray_value\x18\x04 \x01(\x0b\x32\x1e.google.bigtable.v2.ArrayValueH\x00\x42\x06\n\x04kind\"7\n\nArrayValue\x12)\n\x06values\x18\x01 \x03(\x0b\x32\x19.google.bigtable.v2.Value\"\x8a\x01\n\x08RowRange\x12\x1a\n\x10start_key_closed\x18\x01 \x01(\x0cH\x00\x12\x18\n\x0estart_key_open\x18\x02 \x01(\x0cH\x00\x12\x16\n\x0c\x65nd_key_open\x18\x03 \x01(\x0cH\x01\x12\x18\n\x0e\x65nd_key_closed\x18\x04 \x01(\x0cH\x01\x42\x0b\n\tstart_keyB\t\n\x07\x65nd_key\"L\n\x06RowSet\x12\x10\n\x08row_keys\x18\x01 \x03(\x0c\x12\x30\n\nrow_ranges\x18\x02 \x03(\x0b\x32\x1c.google.bigtable.v2.RowRange\"\xc6\x01\n\x0b\x43olumnRange\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x12 \n\x16start_qualifier_closed\x18\x02 \x01(\x0cH\x00\x12\x1e\n\x14start_qualifier_open\x18\x03 \x01(\x0cH\x00\x12\x1e\n\x14\x65nd_qualifier_closed\x18\x04 \x01(\x0cH\x01\x12\x1c\n\x12\x65nd_qualifier_open\x18\x05 \x01(\x0cH\x01\x42\x11\n\x0fstart_qualifierB\x0f\n\rend_qualifier\"N\n\x0eTimestampRange\x12\x1e\n\x16start_timestamp_micros\x18\x01 \x01(\x03\x12\x1c\n\x14\x65nd_timestamp_micros\x18\x02 \x01(\x03\"\x98\x01\n\nValueRange\x12\x1c\n\x12start_value_closed\x18\x01 \x01(\x0cH\x00\x12\x1a\n\x10start_value_open\x18\x02 \x01(\x0cH\x00\x12\x1a\n\x10\x65nd_value_closed\x18\x03 \x01(\x0cH\x01\x12\x18\n\x0e\x65nd_value_open\x18\x04 \x01(\x0cH\x01\x42\r\n\x0bstart_valueB\x0b\n\tend_value\"\xdf\x08\n\tRowFilter\x12\x34\n\x05\x63hain\x18\x01 \x01(\x0b\x32#.google.bigtable.v2.RowFilter.ChainH\x00\x12>\n\ninterleave\x18\x02 \x01(\x0b\x32(.google.bigtable.v2.RowFilter.InterleaveH\x00\x12<\n\tcondition\x18\x03 \x01(\x0b\x32\'.google.bigtable.v2.RowFilter.ConditionH\x00\x12\x0e\n\x04sink\x18\x10 \x01(\x08H\x00\x12\x19\n\x0fpass_all_filter\x18\x11 \x01(\x08H\x00\x12\x1a\n\x10\x62lock_all_filter\x18\x12 \x01(\x08H\x00\x12\x1e\n\x14row_key_regex_filter\x18\x04 \x01(\x0cH\x00\x12\x1b\n\x11row_sample_filter\x18\x0e \x01(\x01H\x00\x12\"\n\x18\x66\x61mily_name_regex_filter\x18\x05 \x01(\tH\x00\x12\'\n\x1d\x63olumn_qualifier_regex_filter\x18\x06 \x01(\x0cH\x00\x12>\n\x13\x63olumn_range_filter\x18\x07 \x01(\x0b\x32\x1f.google.bigtable.v2.ColumnRangeH\x00\x12\x44\n\x16timestamp_range_filter\x18\x08 \x01(\x0b\x32\".google.bigtable.v2.TimestampRangeH\x00\x12\x1c\n\x12value_regex_filter\x18\t \x01(\x0cH\x00\x12<\n\x12value_range_filter\x18\x0f \x01(\x0b\x32\x1e.google.bigtable.v2.ValueRangeH\x00\x12%\n\x1b\x63\x65lls_per_row_offset_filter\x18\n \x01(\x05H\x00\x12$\n\x1a\x63\x65lls_per_row_limit_filter\x18\x0b \x01(\x05H\x00\x12\'\n\x1d\x63\x65lls_per_column_limit_filter\x18\x0c \x01(\x05H\x00\x12!\n\x17strip_value_transformer\x18\r \x01(\x08H\x00\x12!\n\x17\x61pply_label_transformer\x18\x13 \x01(\tH\x00\x1a\x37\n\x05\x43hain\x12.\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x1a<\n\nInterleave\x12.\n\x07\x66ilters\x18\x01 \x03(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x1a\xad\x01\n\tCondition\x12\x37\n\x10predicate_filter\x18\x01 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x12\x32\n\x0btrue_filter\x18\x02 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\x12\x33\n\x0c\x66\x61lse_filter\x18\x03 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilterB\x08\n\x06\x66ilter\"\xad\x08\n\x08Mutation\x12\x38\n\x08set_cell\x18\x01 \x01(\x0b\x32$.google.bigtable.v2.Mutation.SetCellH\x00\x12=\n\x0b\x61\x64\x64_to_cell\x18\x05 \x01(\x0b\x32&.google.bigtable.v2.Mutation.AddToCellH\x00\x12\x41\n\rmerge_to_cell\x18\x06 \x01(\x0b\x32(.google.bigtable.v2.Mutation.MergeToCellH\x00\x12K\n\x12\x64\x65lete_from_column\x18\x02 \x01(\x0b\x32-.google.bigtable.v2.Mutation.DeleteFromColumnH\x00\x12K\n\x12\x64\x65lete_from_family\x18\x03 \x01(\x0b\x32-.google.bigtable.v2.Mutation.DeleteFromFamilyH\x00\x12\x45\n\x0f\x64\x65lete_from_row\x18\x04 \x01(\x0b\x32*.google.bigtable.v2.Mutation.DeleteFromRowH\x00\x1a\x61\n\x07SetCell\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x12\x18\n\x10\x63olumn_qualifier\x18\x02 \x01(\x0c\x12\x18\n\x10timestamp_micros\x18\x03 \x01(\x03\x12\r\n\x05value\x18\x04 \x01(\x0c\x1a\xad\x01\n\tAddToCell\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x12\x33\n\x10\x63olumn_qualifier\x18\x02 \x01(\x0b\x32\x19.google.bigtable.v2.Value\x12,\n\ttimestamp\x18\x03 \x01(\x0b\x32\x19.google.bigtable.v2.Value\x12(\n\x05input\x18\x04 \x01(\x0b\x32\x19.google.bigtable.v2.Value\x1a\xaf\x01\n\x0bMergeToCell\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x12\x33\n\x10\x63olumn_qualifier\x18\x02 \x01(\x0b\x32\x19.google.bigtable.v2.Value\x12,\n\ttimestamp\x18\x03 \x01(\x0b\x32\x19.google.bigtable.v2.Value\x12(\n\x05input\x18\x04 \x01(\x0b\x32\x19.google.bigtable.v2.Value\x1ay\n\x10\x44\x65leteFromColumn\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x12\x18\n\x10\x63olumn_qualifier\x18\x02 \x01(\x0c\x12\x36\n\ntime_range\x18\x03 \x01(\x0b\x32\".google.bigtable.v2.TimestampRange\x1a\'\n\x10\x44\x65leteFromFamily\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x1a\x0f\n\rDeleteFromRowB\n\n\x08mutation\"\x80\x01\n\x13ReadModifyWriteRule\x12\x13\n\x0b\x66\x61mily_name\x18\x01 \x01(\t\x12\x18\n\x10\x63olumn_qualifier\x18\x02 \x01(\x0c\x12\x16\n\x0c\x61ppend_value\x18\x03 \x01(\x0cH\x00\x12\x1a\n\x10increment_amount\x18\x04 \x01(\x03H\x00\x42\x06\n\x04rule\"B\n\x0fStreamPartition\x12/\n\trow_range\x18\x01 \x01(\x0b\x32\x1c.google.bigtable.v2.RowRange\"W\n\x18StreamContinuationTokens\x12;\n\x06tokens\x18\x01 \x03(\x0b\x32+.google.bigtable.v2.StreamContinuationToken\"`\n\x17StreamContinuationToken\x12\x36\n\tpartition\x18\x01 \x01(\x0b\x32#.google.bigtable.v2.StreamPartition\x12\r\n\x05token\x18\x02 \x01(\t\"\r\n\x0bProtoFormat\"F\n\x0e\x43olumnMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12&\n\x04type\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.Type\"B\n\x0bProtoSchema\x12\x33\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\".google.bigtable.v2.ColumnMetadata\"V\n\x11ResultSetMetadata\x12\x37\n\x0cproto_schema\x18\x01 \x01(\x0b\x32\x1f.google.bigtable.v2.ProtoSchemaH\x00\x42\x08\n\x06schema\"6\n\tProtoRows\x12)\n\x06values\x18\x02 \x03(\x0b\x32\x19.google.bigtable.v2.Value\"$\n\x0eProtoRowsBatch\x12\x12\n\nbatch_data\x18\x01 \x01(\x0c\"\xd5\x01\n\x10PartialResultSet\x12>\n\x10proto_rows_batch\x18\x03 \x01(\x0b\x32\".google.bigtable.v2.ProtoRowsBatchH\x00\x12\x1b\n\x0e\x62\x61tch_checksum\x18\x06 \x01(\rH\x01\x88\x01\x01\x12\x14\n\x0cresume_token\x18\x05 \x01(\x0c\x12\r\n\x05reset\x18\x07 \x01(\x08\x12\x1c\n\x14\x65stimated_batch_size\x18\x04 \x01(\x05\x42\x0e\n\x0cpartial_rowsB\x11\n\x0f_batch_checksumB\xb3\x01\n\x16\x63om.google.bigtable.v2B\tDataProtoP\x01Z8cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb\xaa\x02\x18Google.Cloud.Bigtable.V2\xca\x02\x18Google\\Cloud\\Bigtable\\V2\xea\x02\x1bGoogle::Cloud::Bigtable::V2b\x06proto3') - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\026com.google.bigtable.v2B\tDataProtoP\001Z:google.golang.org/genproto/googleapis/bigtable/v2;bigtable\252\002\030Google.Cloud.Bigtable.V2\312\002\030Google\\Cloud\\Bigtable\\V2\352\002\033Google::Cloud::Bigtable::V2' - _ROW._serialized_start=53 - _ROW._serialized_end=117 - _FAMILY._serialized_start=119 - _FAMILY._serialized_end=186 - _COLUMN._serialized_start=188 - _COLUMN._serialized_end=256 - _CELL._serialized_start=258 - _CELL._serialized_end=321 - _ROWRANGE._serialized_start=324 - _ROWRANGE._serialized_end=462 - _ROWSET._serialized_start=464 - _ROWSET._serialized_end=540 - _COLUMNRANGE._serialized_start=543 - _COLUMNRANGE._serialized_end=741 - _TIMESTAMPRANGE._serialized_start=743 - _TIMESTAMPRANGE._serialized_end=821 - _VALUERANGE._serialized_start=824 - _VALUERANGE._serialized_end=976 - _ROWFILTER._serialized_start=979 - _ROWFILTER._serialized_end=2098 - _ROWFILTER_CHAIN._serialized_start=1795 - _ROWFILTER_CHAIN._serialized_end=1850 - _ROWFILTER_INTERLEAVE._serialized_start=1852 - _ROWFILTER_INTERLEAVE._serialized_end=1912 - _ROWFILTER_CONDITION._serialized_start=1915 - _ROWFILTER_CONDITION._serialized_end=2088 - _MUTATION._serialized_start=2101 - _MUTATION._serialized_end=2686 - _MUTATION_SETCELL._serialized_start=2396 - _MUTATION_SETCELL._serialized_end=2493 - _MUTATION_DELETEFROMCOLUMN._serialized_start=2495 - _MUTATION_DELETEFROMCOLUMN._serialized_end=2616 - _MUTATION_DELETEFROMFAMILY._serialized_start=2618 - _MUTATION_DELETEFROMFAMILY._serialized_end=2657 - _MUTATION_DELETEFROMROW._serialized_start=2659 - _MUTATION_DELETEFROMROW._serialized_end=2674 - _READMODIFYWRITERULE._serialized_start=2689 - _READMODIFYWRITERULE._serialized_end=2817 - _STREAMPARTITION._serialized_start=2819 - _STREAMPARTITION._serialized_end=2885 - _STREAMCONTINUATIONTOKENS._serialized_start=2887 - _STREAMCONTINUATIONTOKENS._serialized_end=2974 - _STREAMCONTINUATIONTOKEN._serialized_start=2976 - _STREAMCONTINUATIONTOKEN._serialized_end=3072 +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'google.bigtable.v2.data_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\026com.google.bigtable.v2B\tDataProtoP\001Z8cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb\252\002\030Google.Cloud.Bigtable.V2\312\002\030Google\\Cloud\\Bigtable\\V2\352\002\033Google::Cloud::Bigtable::V2' + _globals['_ROW']._serialized_start=175 + _globals['_ROW']._serialized_end=239 + _globals['_FAMILY']._serialized_start=241 + _globals['_FAMILY']._serialized_end=308 + _globals['_COLUMN']._serialized_start=310 + _globals['_COLUMN']._serialized_end=378 + _globals['_CELL']._serialized_start=380 + _globals['_CELL']._serialized_end=443 + _globals['_VALUE']._serialized_start=446 + _globals['_VALUE']._serialized_end=818 + _globals['_ARRAYVALUE']._serialized_start=820 + _globals['_ARRAYVALUE']._serialized_end=875 + _globals['_ROWRANGE']._serialized_start=878 + _globals['_ROWRANGE']._serialized_end=1016 + _globals['_ROWSET']._serialized_start=1018 + _globals['_ROWSET']._serialized_end=1094 + _globals['_COLUMNRANGE']._serialized_start=1097 + _globals['_COLUMNRANGE']._serialized_end=1295 + _globals['_TIMESTAMPRANGE']._serialized_start=1297 + _globals['_TIMESTAMPRANGE']._serialized_end=1375 + _globals['_VALUERANGE']._serialized_start=1378 + _globals['_VALUERANGE']._serialized_end=1530 + _globals['_ROWFILTER']._serialized_start=1533 + _globals['_ROWFILTER']._serialized_end=2652 + _globals['_ROWFILTER_CHAIN']._serialized_start=2349 + _globals['_ROWFILTER_CHAIN']._serialized_end=2404 + _globals['_ROWFILTER_INTERLEAVE']._serialized_start=2406 + _globals['_ROWFILTER_INTERLEAVE']._serialized_end=2466 + _globals['_ROWFILTER_CONDITION']._serialized_start=2469 + _globals['_ROWFILTER_CONDITION']._serialized_end=2642 + _globals['_MUTATION']._serialized_start=2655 + _globals['_MUTATION']._serialized_end=3724 + _globals['_MUTATION_SETCELL']._serialized_start=3080 + _globals['_MUTATION_SETCELL']._serialized_end=3177 + _globals['_MUTATION_ADDTOCELL']._serialized_start=3180 + _globals['_MUTATION_ADDTOCELL']._serialized_end=3353 + _globals['_MUTATION_MERGETOCELL']._serialized_start=3356 + _globals['_MUTATION_MERGETOCELL']._serialized_end=3531 + _globals['_MUTATION_DELETEFROMCOLUMN']._serialized_start=3533 + _globals['_MUTATION_DELETEFROMCOLUMN']._serialized_end=3654 + _globals['_MUTATION_DELETEFROMFAMILY']._serialized_start=3656 + _globals['_MUTATION_DELETEFROMFAMILY']._serialized_end=3695 + _globals['_MUTATION_DELETEFROMROW']._serialized_start=3697 + _globals['_MUTATION_DELETEFROMROW']._serialized_end=3712 + _globals['_READMODIFYWRITERULE']._serialized_start=3727 + _globals['_READMODIFYWRITERULE']._serialized_end=3855 + _globals['_STREAMPARTITION']._serialized_start=3857 + _globals['_STREAMPARTITION']._serialized_end=3923 + _globals['_STREAMCONTINUATIONTOKENS']._serialized_start=3925 + _globals['_STREAMCONTINUATIONTOKENS']._serialized_end=4012 + _globals['_STREAMCONTINUATIONTOKEN']._serialized_start=4014 + _globals['_STREAMCONTINUATIONTOKEN']._serialized_end=4110 + _globals['_PROTOFORMAT']._serialized_start=4112 + _globals['_PROTOFORMAT']._serialized_end=4125 + _globals['_COLUMNMETADATA']._serialized_start=4127 + _globals['_COLUMNMETADATA']._serialized_end=4197 + _globals['_PROTOSCHEMA']._serialized_start=4199 + _globals['_PROTOSCHEMA']._serialized_end=4265 + _globals['_RESULTSETMETADATA']._serialized_start=4267 + _globals['_RESULTSETMETADATA']._serialized_end=4353 + _globals['_PROTOROWS']._serialized_start=4355 + _globals['_PROTOROWS']._serialized_end=4409 + _globals['_PROTOROWSBATCH']._serialized_start=4411 + _globals['_PROTOROWSBATCH']._serialized_end=4447 + _globals['_PARTIALRESULTSET']._serialized_start=4450 + _globals['_PARTIALRESULTSET']._serialized_end=4663 # @@protoc_insertion_point(module_scope) diff --git a/test_proxy/protos/data_pb2_grpc.py b/test_proxy/protos/data_pb2_grpc.py index 2daafffeb..f7a5195e8 100644 --- a/test_proxy/protos/data_pb2_grpc.py +++ b/test_proxy/protos/data_pb2_grpc.py @@ -1,4 +1,24 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! """Client and server classes corresponding to protobuf-defined services.""" import grpc +import warnings + +GRPC_GENERATED_VERSION = '1.70.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in google/bigtable/v2/data_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) diff --git a/test_proxy/protos/test_proxy_pb2.py b/test_proxy/protos/test_proxy_pb2.py index 8c7817b14..1f85b086b 100644 --- a/test_proxy/protos/test_proxy_pb2.py +++ b/test_proxy/protos/test_proxy_pb2.py @@ -1,11 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: test_proxy.proto +# Protobuf Python Version: 5.29.0 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 0, + '', + 'test_proxy.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -18,54 +29,66 @@ from google.rpc import status_pb2 as google_dot_rpc_dot_status__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\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\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\"\xb8\x01\n\x13\x43reateClientRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x61ta_target\x18\x02 \x01(\t\x12\x12\n\nproject_id\x18\x03 \x01(\t\x12\x13\n\x0binstance_id\x18\x04 \x01(\t\x12\x16\n\x0e\x61pp_profile_id\x18\x05 \x01(\t\x12\x38\n\x15per_operation_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\"\x16\n\x14\x43reateClientResponse\"\'\n\x12\x43loseClientRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\"\x15\n\x13\x43loseClientResponse\"(\n\x13RemoveClientRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\"\x16\n\x14RemoveClientResponse\"w\n\x0eReadRowRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x12\n\ntable_name\x18\x04 \x01(\t\x12\x0f\n\x07row_key\x18\x02 \x01(\t\x12-\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\"U\n\tRowResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12$\n\x03row\x18\x02 \x01(\x0b\x32\x17.google.bigtable.v2.Row\"u\n\x0fReadRowsRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x34\n\x07request\x18\x02 \x01(\x0b\x32#.google.bigtable.v2.ReadRowsRequest\x12\x19\n\x11\x63\x61ncel_after_rows\x18\x03 \x01(\x05\"V\n\nRowsResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12$\n\x03row\x18\x02 \x03(\x0b\x32\x17.google.bigtable.v2.Row\"\\\n\x10MutateRowRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x35\n\x07request\x18\x02 \x01(\x0b\x32$.google.bigtable.v2.MutateRowRequest\"5\n\x0fMutateRowResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\"^\n\x11MutateRowsRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x36\n\x07request\x18\x02 \x01(\x0b\x32%.google.bigtable.v2.MutateRowsRequest\"s\n\x10MutateRowsResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12;\n\x05\x65ntry\x18\x02 \x03(\x0b\x32,.google.bigtable.v2.MutateRowsResponse.Entry\"l\n\x18\x43heckAndMutateRowRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12=\n\x07request\x18\x02 \x01(\x0b\x32,.google.bigtable.v2.CheckAndMutateRowRequest\"|\n\x17\x43heckAndMutateRowResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12=\n\x06result\x18\x02 \x01(\x0b\x32-.google.bigtable.v2.CheckAndMutateRowResponse\"d\n\x14SampleRowKeysRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x39\n\x07request\x18\x02 \x01(\x0b\x32(.google.bigtable.v2.SampleRowKeysRequest\"t\n\x13SampleRowKeysResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12\x39\n\x06sample\x18\x02 \x03(\x0b\x32).google.bigtable.v2.SampleRowKeysResponse\"n\n\x19ReadModifyWriteRowRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12>\n\x07request\x18\x02 \x01(\x0b\x32-.google.bigtable.v2.ReadModifyWriteRowRequest2\xa4\t\n\x18\x43loudBigtableV2TestProxy\x12q\n\x0c\x43reateClient\x12..google.bigtable.testproxy.CreateClientRequest\x1a/.google.bigtable.testproxy.CreateClientResponse\"\x00\x12n\n\x0b\x43loseClient\x12-.google.bigtable.testproxy.CloseClientRequest\x1a..google.bigtable.testproxy.CloseClientResponse\"\x00\x12q\n\x0cRemoveClient\x12..google.bigtable.testproxy.RemoveClientRequest\x1a/.google.bigtable.testproxy.RemoveClientResponse\"\x00\x12\\\n\x07ReadRow\x12).google.bigtable.testproxy.ReadRowRequest\x1a$.google.bigtable.testproxy.RowResult\"\x00\x12_\n\x08ReadRows\x12*.google.bigtable.testproxy.ReadRowsRequest\x1a%.google.bigtable.testproxy.RowsResult\"\x00\x12\x66\n\tMutateRow\x12+.google.bigtable.testproxy.MutateRowRequest\x1a*.google.bigtable.testproxy.MutateRowResult\"\x00\x12m\n\x0e\x42ulkMutateRows\x12,.google.bigtable.testproxy.MutateRowsRequest\x1a+.google.bigtable.testproxy.MutateRowsResult\"\x00\x12~\n\x11\x43heckAndMutateRow\x12\x33.google.bigtable.testproxy.CheckAndMutateRowRequest\x1a\x32.google.bigtable.testproxy.CheckAndMutateRowResult\"\x00\x12r\n\rSampleRowKeys\x12/.google.bigtable.testproxy.SampleRowKeysRequest\x1a..google.bigtable.testproxy.SampleRowKeysResult\"\x00\x12r\n\x12ReadModifyWriteRow\x12\x34.google.bigtable.testproxy.ReadModifyWriteRowRequest\x1a$.google.bigtable.testproxy.RowResult\"\x00\x1a\x34\xca\x41\x31\x62igtable-test-proxy-not-accessible.googleapis.comB6\n#com.google.cloud.bigtable.testproxyP\x01Z\r./testproxypbb\x06proto3') - -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'test_proxy_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\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\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\"\xda\x03\n\x13\x43reateClientRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x61ta_target\x18\x02 \x01(\t\x12\x12\n\nproject_id\x18\x03 \x01(\t\x12\x13\n\x0binstance_id\x18\x04 \x01(\t\x12\x16\n\x0e\x61pp_profile_id\x18\x05 \x01(\t\x12\x38\n\x15per_operation_timeout\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12Q\n\x17optional_feature_config\x18\x07 \x01(\x0e\x32\x30.google.bigtable.testproxy.OptionalFeatureConfig\x12X\n\x10security_options\x18\x08 \x01(\x0b\x32>.google.bigtable.testproxy.CreateClientRequest.SecurityOptions\x1as\n\x0fSecurityOptions\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x01 \x01(\t\x12\x0f\n\x07use_ssl\x18\x02 \x01(\x08\x12\x1d\n\x15ssl_endpoint_override\x18\x03 \x01(\t\x12\x1a\n\x12ssl_root_certs_pem\x18\x04 \x01(\t\"\x16\n\x14\x43reateClientResponse\"\'\n\x12\x43loseClientRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\"\x15\n\x13\x43loseClientResponse\"(\n\x13RemoveClientRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\"\x16\n\x14RemoveClientResponse\"w\n\x0eReadRowRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x12\n\ntable_name\x18\x04 \x01(\t\x12\x0f\n\x07row_key\x18\x02 \x01(\t\x12-\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x1d.google.bigtable.v2.RowFilter\"U\n\tRowResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12$\n\x03row\x18\x02 \x01(\x0b\x32\x17.google.bigtable.v2.Row\"u\n\x0fReadRowsRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x34\n\x07request\x18\x02 \x01(\x0b\x32#.google.bigtable.v2.ReadRowsRequest\x12\x19\n\x11\x63\x61ncel_after_rows\x18\x03 \x01(\x05\"W\n\nRowsResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12%\n\x04rows\x18\x02 \x03(\x0b\x32\x17.google.bigtable.v2.Row\"\\\n\x10MutateRowRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x35\n\x07request\x18\x02 \x01(\x0b\x32$.google.bigtable.v2.MutateRowRequest\"5\n\x0fMutateRowResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\"^\n\x11MutateRowsRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x36\n\x07request\x18\x02 \x01(\x0b\x32%.google.bigtable.v2.MutateRowsRequest\"u\n\x10MutateRowsResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12=\n\x07\x65ntries\x18\x02 \x03(\x0b\x32,.google.bigtable.v2.MutateRowsResponse.Entry\"l\n\x18\x43heckAndMutateRowRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12=\n\x07request\x18\x02 \x01(\x0b\x32,.google.bigtable.v2.CheckAndMutateRowRequest\"|\n\x17\x43heckAndMutateRowResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12=\n\x06result\x18\x02 \x01(\x0b\x32-.google.bigtable.v2.CheckAndMutateRowResponse\"d\n\x14SampleRowKeysRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x39\n\x07request\x18\x02 \x01(\x0b\x32(.google.bigtable.v2.SampleRowKeysRequest\"u\n\x13SampleRowKeysResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12:\n\x07samples\x18\x02 \x03(\x0b\x32).google.bigtable.v2.SampleRowKeysResponse\"n\n\x19ReadModifyWriteRowRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12>\n\x07request\x18\x02 \x01(\x0b\x32-.google.bigtable.v2.ReadModifyWriteRowRequest\"b\n\x13\x45xecuteQueryRequest\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x38\n\x07request\x18\x02 \x01(\x0b\x32\'.google.bigtable.v2.ExecuteQueryRequest\"\xa9\x01\n\x12\x45xecuteQueryResult\x12\"\n\x06status\x18\x01 \x01(\x0b\x32\x12.google.rpc.Status\x12>\n\x08metadata\x18\x04 \x01(\x0b\x32,.google.bigtable.testproxy.ResultSetMetadata\x12/\n\x04rows\x18\x03 \x03(\x0b\x32!.google.bigtable.testproxy.SqlRow\"H\n\x11ResultSetMetadata\x12\x33\n\x07\x63olumns\x18\x01 \x03(\x0b\x32\".google.bigtable.v2.ColumnMetadata\"3\n\x06SqlRow\x12)\n\x06values\x18\x01 \x03(\x0b\x32\x19.google.bigtable.v2.Value*d\n\x15OptionalFeatureConfig\x12#\n\x1fOPTIONAL_FEATURE_CONFIG_DEFAULT\x10\x00\x12&\n\"OPTIONAL_FEATURE_CONFIG_ENABLE_ALL\x10\x01\x32\x95\n\n\x18\x43loudBigtableV2TestProxy\x12q\n\x0c\x43reateClient\x12..google.bigtable.testproxy.CreateClientRequest\x1a/.google.bigtable.testproxy.CreateClientResponse\"\x00\x12n\n\x0b\x43loseClient\x12-.google.bigtable.testproxy.CloseClientRequest\x1a..google.bigtable.testproxy.CloseClientResponse\"\x00\x12q\n\x0cRemoveClient\x12..google.bigtable.testproxy.RemoveClientRequest\x1a/.google.bigtable.testproxy.RemoveClientResponse\"\x00\x12\\\n\x07ReadRow\x12).google.bigtable.testproxy.ReadRowRequest\x1a$.google.bigtable.testproxy.RowResult\"\x00\x12_\n\x08ReadRows\x12*.google.bigtable.testproxy.ReadRowsRequest\x1a%.google.bigtable.testproxy.RowsResult\"\x00\x12\x66\n\tMutateRow\x12+.google.bigtable.testproxy.MutateRowRequest\x1a*.google.bigtable.testproxy.MutateRowResult\"\x00\x12m\n\x0e\x42ulkMutateRows\x12,.google.bigtable.testproxy.MutateRowsRequest\x1a+.google.bigtable.testproxy.MutateRowsResult\"\x00\x12~\n\x11\x43heckAndMutateRow\x12\x33.google.bigtable.testproxy.CheckAndMutateRowRequest\x1a\x32.google.bigtable.testproxy.CheckAndMutateRowResult\"\x00\x12r\n\rSampleRowKeys\x12/.google.bigtable.testproxy.SampleRowKeysRequest\x1a..google.bigtable.testproxy.SampleRowKeysResult\"\x00\x12r\n\x12ReadModifyWriteRow\x12\x34.google.bigtable.testproxy.ReadModifyWriteRowRequest\x1a$.google.bigtable.testproxy.RowResult\"\x00\x12o\n\x0c\x45xecuteQuery\x12..google.bigtable.testproxy.ExecuteQueryRequest\x1a-.google.bigtable.testproxy.ExecuteQueryResult\"\x00\x1a\x34\xca\x41\x31\x62igtable-test-proxy-not-accessible.googleapis.comBg\n#com.google.cloud.bigtable.testproxyP\x01Z>cloud.google.com/go/bigtable/testproxy/testproxypb;testproxypbb\x06proto3') - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n#com.google.cloud.bigtable.testproxyP\001Z\r./testproxypb' - _CLOUDBIGTABLEV2TESTPROXY._options = None - _CLOUDBIGTABLEV2TESTPROXY._serialized_options = b'\312A1bigtable-test-proxy-not-accessible.googleapis.com' - _CREATECLIENTREQUEST._serialized_start=196 - _CREATECLIENTREQUEST._serialized_end=380 - _CREATECLIENTRESPONSE._serialized_start=382 - _CREATECLIENTRESPONSE._serialized_end=404 - _CLOSECLIENTREQUEST._serialized_start=406 - _CLOSECLIENTREQUEST._serialized_end=445 - _CLOSECLIENTRESPONSE._serialized_start=447 - _CLOSECLIENTRESPONSE._serialized_end=468 - _REMOVECLIENTREQUEST._serialized_start=470 - _REMOVECLIENTREQUEST._serialized_end=510 - _REMOVECLIENTRESPONSE._serialized_start=512 - _REMOVECLIENTRESPONSE._serialized_end=534 - _READROWREQUEST._serialized_start=536 - _READROWREQUEST._serialized_end=655 - _ROWRESULT._serialized_start=657 - _ROWRESULT._serialized_end=742 - _READROWSREQUEST._serialized_start=744 - _READROWSREQUEST._serialized_end=861 - _ROWSRESULT._serialized_start=863 - _ROWSRESULT._serialized_end=949 - _MUTATEROWREQUEST._serialized_start=951 - _MUTATEROWREQUEST._serialized_end=1043 - _MUTATEROWRESULT._serialized_start=1045 - _MUTATEROWRESULT._serialized_end=1098 - _MUTATEROWSREQUEST._serialized_start=1100 - _MUTATEROWSREQUEST._serialized_end=1194 - _MUTATEROWSRESULT._serialized_start=1196 - _MUTATEROWSRESULT._serialized_end=1311 - _CHECKANDMUTATEROWREQUEST._serialized_start=1313 - _CHECKANDMUTATEROWREQUEST._serialized_end=1421 - _CHECKANDMUTATEROWRESULT._serialized_start=1423 - _CHECKANDMUTATEROWRESULT._serialized_end=1547 - _SAMPLEROWKEYSREQUEST._serialized_start=1549 - _SAMPLEROWKEYSREQUEST._serialized_end=1649 - _SAMPLEROWKEYSRESULT._serialized_start=1651 - _SAMPLEROWKEYSRESULT._serialized_end=1767 - _READMODIFYWRITEROWREQUEST._serialized_start=1769 - _READMODIFYWRITEROWREQUEST._serialized_end=1879 - _CLOUDBIGTABLEV2TESTPROXY._serialized_start=1882 - _CLOUDBIGTABLEV2TESTPROXY._serialized_end=3070 +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'test_proxy_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n#com.google.cloud.bigtable.testproxyP\001Z>cloud.google.com/go/bigtable/testproxy/testproxypb;testproxypb' + _globals['_CLOUDBIGTABLEV2TESTPROXY']._loaded_options = None + _globals['_CLOUDBIGTABLEV2TESTPROXY']._serialized_options = b'\312A1bigtable-test-proxy-not-accessible.googleapis.com' + _globals['_OPTIONALFEATURECONFIG']._serialized_start=2574 + _globals['_OPTIONALFEATURECONFIG']._serialized_end=2674 + _globals['_CREATECLIENTREQUEST']._serialized_start=196 + _globals['_CREATECLIENTREQUEST']._serialized_end=670 + _globals['_CREATECLIENTREQUEST_SECURITYOPTIONS']._serialized_start=555 + _globals['_CREATECLIENTREQUEST_SECURITYOPTIONS']._serialized_end=670 + _globals['_CREATECLIENTRESPONSE']._serialized_start=672 + _globals['_CREATECLIENTRESPONSE']._serialized_end=694 + _globals['_CLOSECLIENTREQUEST']._serialized_start=696 + _globals['_CLOSECLIENTREQUEST']._serialized_end=735 + _globals['_CLOSECLIENTRESPONSE']._serialized_start=737 + _globals['_CLOSECLIENTRESPONSE']._serialized_end=758 + _globals['_REMOVECLIENTREQUEST']._serialized_start=760 + _globals['_REMOVECLIENTREQUEST']._serialized_end=800 + _globals['_REMOVECLIENTRESPONSE']._serialized_start=802 + _globals['_REMOVECLIENTRESPONSE']._serialized_end=824 + _globals['_READROWREQUEST']._serialized_start=826 + _globals['_READROWREQUEST']._serialized_end=945 + _globals['_ROWRESULT']._serialized_start=947 + _globals['_ROWRESULT']._serialized_end=1032 + _globals['_READROWSREQUEST']._serialized_start=1034 + _globals['_READROWSREQUEST']._serialized_end=1151 + _globals['_ROWSRESULT']._serialized_start=1153 + _globals['_ROWSRESULT']._serialized_end=1240 + _globals['_MUTATEROWREQUEST']._serialized_start=1242 + _globals['_MUTATEROWREQUEST']._serialized_end=1334 + _globals['_MUTATEROWRESULT']._serialized_start=1336 + _globals['_MUTATEROWRESULT']._serialized_end=1389 + _globals['_MUTATEROWSREQUEST']._serialized_start=1391 + _globals['_MUTATEROWSREQUEST']._serialized_end=1485 + _globals['_MUTATEROWSRESULT']._serialized_start=1487 + _globals['_MUTATEROWSRESULT']._serialized_end=1604 + _globals['_CHECKANDMUTATEROWREQUEST']._serialized_start=1606 + _globals['_CHECKANDMUTATEROWREQUEST']._serialized_end=1714 + _globals['_CHECKANDMUTATEROWRESULT']._serialized_start=1716 + _globals['_CHECKANDMUTATEROWRESULT']._serialized_end=1840 + _globals['_SAMPLEROWKEYSREQUEST']._serialized_start=1842 + _globals['_SAMPLEROWKEYSREQUEST']._serialized_end=1942 + _globals['_SAMPLEROWKEYSRESULT']._serialized_start=1944 + _globals['_SAMPLEROWKEYSRESULT']._serialized_end=2061 + _globals['_READMODIFYWRITEROWREQUEST']._serialized_start=2063 + _globals['_READMODIFYWRITEROWREQUEST']._serialized_end=2173 + _globals['_EXECUTEQUERYREQUEST']._serialized_start=2175 + _globals['_EXECUTEQUERYREQUEST']._serialized_end=2273 + _globals['_EXECUTEQUERYRESULT']._serialized_start=2276 + _globals['_EXECUTEQUERYRESULT']._serialized_end=2445 + _globals['_RESULTSETMETADATA']._serialized_start=2447 + _globals['_RESULTSETMETADATA']._serialized_end=2519 + _globals['_SQLROW']._serialized_start=2521 + _globals['_SQLROW']._serialized_end=2572 + _globals['_CLOUDBIGTABLEV2TESTPROXY']._serialized_start=2677 + _globals['_CLOUDBIGTABLEV2TESTPROXY']._serialized_end=3978 # @@protoc_insertion_point(module_scope) diff --git a/test_proxy/protos/test_proxy_pb2_grpc.py b/test_proxy/protos/test_proxy_pb2_grpc.py index 60214a584..b9d11034e 100644 --- a/test_proxy/protos/test_proxy_pb2_grpc.py +++ b/test_proxy/protos/test_proxy_pb2_grpc.py @@ -1,9 +1,29 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! """Client and server classes corresponding to protobuf-defined services.""" import grpc +import warnings import test_proxy_pb2 as test__proxy__pb2 +GRPC_GENERATED_VERSION = '1.70.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in test_proxy_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) + class CloudBigtableV2TestProxyStub(object): """Note that all RPCs are unary, even when the equivalent client binding call @@ -34,52 +54,57 @@ def __init__(self, channel): '/google.bigtable.testproxy.CloudBigtableV2TestProxy/CreateClient', request_serializer=test__proxy__pb2.CreateClientRequest.SerializeToString, response_deserializer=test__proxy__pb2.CreateClientResponse.FromString, - ) + _registered_method=True) self.CloseClient = channel.unary_unary( '/google.bigtable.testproxy.CloudBigtableV2TestProxy/CloseClient', request_serializer=test__proxy__pb2.CloseClientRequest.SerializeToString, response_deserializer=test__proxy__pb2.CloseClientResponse.FromString, - ) + _registered_method=True) self.RemoveClient = channel.unary_unary( '/google.bigtable.testproxy.CloudBigtableV2TestProxy/RemoveClient', request_serializer=test__proxy__pb2.RemoveClientRequest.SerializeToString, response_deserializer=test__proxy__pb2.RemoveClientResponse.FromString, - ) + _registered_method=True) self.ReadRow = channel.unary_unary( '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ReadRow', request_serializer=test__proxy__pb2.ReadRowRequest.SerializeToString, response_deserializer=test__proxy__pb2.RowResult.FromString, - ) + _registered_method=True) self.ReadRows = channel.unary_unary( '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ReadRows', request_serializer=test__proxy__pb2.ReadRowsRequest.SerializeToString, response_deserializer=test__proxy__pb2.RowsResult.FromString, - ) + _registered_method=True) self.MutateRow = channel.unary_unary( '/google.bigtable.testproxy.CloudBigtableV2TestProxy/MutateRow', request_serializer=test__proxy__pb2.MutateRowRequest.SerializeToString, response_deserializer=test__proxy__pb2.MutateRowResult.FromString, - ) + _registered_method=True) self.BulkMutateRows = channel.unary_unary( '/google.bigtable.testproxy.CloudBigtableV2TestProxy/BulkMutateRows', request_serializer=test__proxy__pb2.MutateRowsRequest.SerializeToString, response_deserializer=test__proxy__pb2.MutateRowsResult.FromString, - ) + _registered_method=True) self.CheckAndMutateRow = channel.unary_unary( '/google.bigtable.testproxy.CloudBigtableV2TestProxy/CheckAndMutateRow', request_serializer=test__proxy__pb2.CheckAndMutateRowRequest.SerializeToString, response_deserializer=test__proxy__pb2.CheckAndMutateRowResult.FromString, - ) + _registered_method=True) self.SampleRowKeys = channel.unary_unary( '/google.bigtable.testproxy.CloudBigtableV2TestProxy/SampleRowKeys', request_serializer=test__proxy__pb2.SampleRowKeysRequest.SerializeToString, response_deserializer=test__proxy__pb2.SampleRowKeysResult.FromString, - ) + _registered_method=True) self.ReadModifyWriteRow = channel.unary_unary( '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ReadModifyWriteRow', request_serializer=test__proxy__pb2.ReadModifyWriteRowRequest.SerializeToString, response_deserializer=test__proxy__pb2.RowResult.FromString, - ) + _registered_method=True) + self.ExecuteQuery = channel.unary_unary( + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ExecuteQuery', + request_serializer=test__proxy__pb2.ExecuteQueryRequest.SerializeToString, + response_deserializer=test__proxy__pb2.ExecuteQueryResult.FromString, + _registered_method=True) class CloudBigtableV2TestProxyServicer(object): @@ -183,6 +208,13 @@ def ReadModifyWriteRow(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def ExecuteQuery(self, request, context): + """Executes a BTQL query with the client. + """ + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_CloudBigtableV2TestProxyServicer_to_server(servicer, server): rpc_method_handlers = { @@ -236,10 +268,16 @@ def add_CloudBigtableV2TestProxyServicer_to_server(servicer, server): request_deserializer=test__proxy__pb2.ReadModifyWriteRowRequest.FromString, response_serializer=test__proxy__pb2.RowResult.SerializeToString, ), + 'ExecuteQuery': grpc.unary_unary_rpc_method_handler( + servicer.ExecuteQuery, + request_deserializer=test__proxy__pb2.ExecuteQueryRequest.FromString, + response_serializer=test__proxy__pb2.ExecuteQueryResult.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'google.bigtable.testproxy.CloudBigtableV2TestProxy', rpc_method_handlers) server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('google.bigtable.testproxy.CloudBigtableV2TestProxy', rpc_method_handlers) # This class is part of an EXPERIMENTAL API. @@ -273,11 +311,21 @@ def CreateClient(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.testproxy.CloudBigtableV2TestProxy/CreateClient', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/CreateClient', test__proxy__pb2.CreateClientRequest.SerializeToString, test__proxy__pb2.CreateClientResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def CloseClient(request, @@ -290,11 +338,21 @@ def CloseClient(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.testproxy.CloudBigtableV2TestProxy/CloseClient', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/CloseClient', test__proxy__pb2.CloseClientRequest.SerializeToString, test__proxy__pb2.CloseClientResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def RemoveClient(request, @@ -307,11 +365,21 @@ def RemoveClient(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.testproxy.CloudBigtableV2TestProxy/RemoveClient', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/RemoveClient', test__proxy__pb2.RemoveClientRequest.SerializeToString, test__proxy__pb2.RemoveClientResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def ReadRow(request, @@ -324,11 +392,21 @@ def ReadRow(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ReadRow', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ReadRow', test__proxy__pb2.ReadRowRequest.SerializeToString, test__proxy__pb2.RowResult.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def ReadRows(request, @@ -341,11 +419,21 @@ def ReadRows(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ReadRows', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ReadRows', test__proxy__pb2.ReadRowsRequest.SerializeToString, test__proxy__pb2.RowsResult.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def MutateRow(request, @@ -358,11 +446,21 @@ def MutateRow(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.testproxy.CloudBigtableV2TestProxy/MutateRow', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/MutateRow', test__proxy__pb2.MutateRowRequest.SerializeToString, test__proxy__pb2.MutateRowResult.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def BulkMutateRows(request, @@ -375,11 +473,21 @@ def BulkMutateRows(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.testproxy.CloudBigtableV2TestProxy/BulkMutateRows', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/BulkMutateRows', test__proxy__pb2.MutateRowsRequest.SerializeToString, test__proxy__pb2.MutateRowsResult.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def CheckAndMutateRow(request, @@ -392,11 +500,21 @@ def CheckAndMutateRow(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.testproxy.CloudBigtableV2TestProxy/CheckAndMutateRow', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/CheckAndMutateRow', test__proxy__pb2.CheckAndMutateRowRequest.SerializeToString, test__proxy__pb2.CheckAndMutateRowResult.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def SampleRowKeys(request, @@ -409,11 +527,21 @@ def SampleRowKeys(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.testproxy.CloudBigtableV2TestProxy/SampleRowKeys', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/SampleRowKeys', test__proxy__pb2.SampleRowKeysRequest.SerializeToString, test__proxy__pb2.SampleRowKeysResult.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def ReadModifyWriteRow(request, @@ -426,8 +554,45 @@ def ReadModifyWriteRow(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ReadModifyWriteRow', + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ReadModifyWriteRow', test__proxy__pb2.ReadModifyWriteRowRequest.SerializeToString, test__proxy__pb2.RowResult.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) + + @staticmethod + def ExecuteQuery(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/google.bigtable.testproxy.CloudBigtableV2TestProxy/ExecuteQuery', + test__proxy__pb2.ExecuteQueryRequest.SerializeToString, + test__proxy__pb2.ExecuteQueryResult.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/test_proxy/protos/types_pb2.py b/test_proxy/protos/types_pb2.py new file mode 100644 index 000000000..7acdbf7f1 --- /dev/null +++ b/test_proxy/protos/types_pb2.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: google/bigtable/v2/types.proto +# Protobuf Python Version: 5.29.0 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 0, + '', + 'google/bigtable/v2/types.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.api import field_behavior_pb2 as google_dot_api_dot_field__behavior__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1egoogle/bigtable/v2/types.proto\x12\x12google.bigtable.v2\x1a\x1fgoogle/api/field_behavior.proto\"\xe0\x10\n\x04Type\x12\x34\n\nbytes_type\x18\x01 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.BytesH\x00\x12\x36\n\x0bstring_type\x18\x02 \x01(\x0b\x32\x1f.google.bigtable.v2.Type.StringH\x00\x12\x34\n\nint64_type\x18\x05 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.Int64H\x00\x12\x38\n\x0c\x66loat32_type\x18\x0c \x01(\x0b\x32 .google.bigtable.v2.Type.Float32H\x00\x12\x38\n\x0c\x66loat64_type\x18\t \x01(\x0b\x32 .google.bigtable.v2.Type.Float64H\x00\x12\x32\n\tbool_type\x18\x08 \x01(\x0b\x32\x1d.google.bigtable.v2.Type.BoolH\x00\x12<\n\x0etimestamp_type\x18\n \x01(\x0b\x32\".google.bigtable.v2.Type.TimestampH\x00\x12\x32\n\tdate_type\x18\x0b \x01(\x0b\x32\x1d.google.bigtable.v2.Type.DateH\x00\x12<\n\x0e\x61ggregate_type\x18\x06 \x01(\x0b\x32\".google.bigtable.v2.Type.AggregateH\x00\x12\x36\n\x0bstruct_type\x18\x07 \x01(\x0b\x32\x1f.google.bigtable.v2.Type.StructH\x00\x12\x34\n\narray_type\x18\x03 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.ArrayH\x00\x12\x30\n\x08map_type\x18\x04 \x01(\x0b\x32\x1c.google.bigtable.v2.Type.MapH\x00\x1a\x9d\x01\n\x05\x42ytes\x12\x39\n\x08\x65ncoding\x18\x01 \x01(\x0b\x32\'.google.bigtable.v2.Type.Bytes.Encoding\x1aY\n\x08\x45ncoding\x12:\n\x03raw\x18\x01 \x01(\x0b\x32+.google.bigtable.v2.Type.Bytes.Encoding.RawH\x00\x1a\x05\n\x03RawB\n\n\x08\x65ncoding\x1a\x8d\x02\n\x06String\x12:\n\x08\x65ncoding\x18\x01 \x01(\x0b\x32(.google.bigtable.v2.Type.String.Encoding\x1a\xc6\x01\n\x08\x45ncoding\x12H\n\x08utf8_raw\x18\x01 \x01(\x0b\x32\x30.google.bigtable.v2.Type.String.Encoding.Utf8RawB\x02\x18\x01H\x00\x12H\n\nutf8_bytes\x18\x02 \x01(\x0b\x32\x32.google.bigtable.v2.Type.String.Encoding.Utf8BytesH\x00\x1a\r\n\x07Utf8Raw:\x02\x18\x01\x1a\x0b\n\tUtf8BytesB\n\n\x08\x65ncoding\x1a\xf5\x01\n\x05Int64\x12\x39\n\x08\x65ncoding\x18\x01 \x01(\x0b\x32\'.google.bigtable.v2.Type.Int64.Encoding\x1a\xb0\x01\n\x08\x45ncoding\x12R\n\x10\x62ig_endian_bytes\x18\x01 \x01(\x0b\x32\x36.google.bigtable.v2.Type.Int64.Encoding.BigEndianBytesH\x00\x1a\x44\n\x0e\x42igEndianBytes\x12\x32\n\nbytes_type\x18\x01 \x01(\x0b\x32\x1e.google.bigtable.v2.Type.BytesB\n\n\x08\x65ncoding\x1a\x06\n\x04\x42ool\x1a\t\n\x07\x46loat32\x1a\t\n\x07\x46loat64\x1a\x0b\n\tTimestamp\x1a\x06\n\x04\x44\x61te\x1a\x84\x01\n\x06Struct\x12\x35\n\x06\x66ields\x18\x01 \x03(\x0b\x32%.google.bigtable.v2.Type.Struct.Field\x1a\x43\n\x05\x46ield\x12\x12\n\nfield_name\x18\x01 \x01(\t\x12&\n\x04type\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x1a\x37\n\x05\x41rray\x12.\n\x0c\x65lement_type\x18\x01 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x1a_\n\x03Map\x12*\n\x08key_type\x18\x01 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x12,\n\nvalue_type\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x1a\xb7\x03\n\tAggregate\x12,\n\ninput_type\x18\x01 \x01(\x0b\x32\x18.google.bigtable.v2.Type\x12\x31\n\nstate_type\x18\x02 \x01(\x0b\x32\x18.google.bigtable.v2.TypeB\x03\xe0\x41\x03\x12\x35\n\x03sum\x18\x04 \x01(\x0b\x32&.google.bigtable.v2.Type.Aggregate.SumH\x00\x12_\n\x12hllpp_unique_count\x18\x05 \x01(\x0b\x32\x41.google.bigtable.v2.Type.Aggregate.HyperLogLogPlusPlusUniqueCountH\x00\x12\x35\n\x03max\x18\x06 \x01(\x0b\x32&.google.bigtable.v2.Type.Aggregate.MaxH\x00\x12\x35\n\x03min\x18\x07 \x01(\x0b\x32&.google.bigtable.v2.Type.Aggregate.MinH\x00\x1a\x05\n\x03Sum\x1a\x05\n\x03Max\x1a\x05\n\x03Min\x1a \n\x1eHyperLogLogPlusPlusUniqueCountB\x0c\n\naggregatorB\x06\n\x04kindB\xb4\x01\n\x16\x63om.google.bigtable.v2B\nTypesProtoP\x01Z8cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb\xaa\x02\x18Google.Cloud.Bigtable.V2\xca\x02\x18Google\\Cloud\\Bigtable\\V2\xea\x02\x1bGoogle::Cloud::Bigtable::V2b\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'google.bigtable.v2.types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\026com.google.bigtable.v2B\nTypesProtoP\001Z8cloud.google.com/go/bigtable/apiv2/bigtablepb;bigtablepb\252\002\030Google.Cloud.Bigtable.V2\312\002\030Google\\Cloud\\Bigtable\\V2\352\002\033Google::Cloud::Bigtable::V2' + _globals['_TYPE_STRING_ENCODING_UTF8RAW']._loaded_options = None + _globals['_TYPE_STRING_ENCODING_UTF8RAW']._serialized_options = b'\030\001' + _globals['_TYPE_STRING_ENCODING'].fields_by_name['utf8_raw']._loaded_options = None + _globals['_TYPE_STRING_ENCODING'].fields_by_name['utf8_raw']._serialized_options = b'\030\001' + _globals['_TYPE_AGGREGATE'].fields_by_name['state_type']._loaded_options = None + _globals['_TYPE_AGGREGATE'].fields_by_name['state_type']._serialized_options = b'\340A\003' + _globals['_TYPE']._serialized_start=88 + _globals['_TYPE']._serialized_end=2232 + _globals['_TYPE_BYTES']._serialized_start=765 + _globals['_TYPE_BYTES']._serialized_end=922 + _globals['_TYPE_BYTES_ENCODING']._serialized_start=833 + _globals['_TYPE_BYTES_ENCODING']._serialized_end=922 + _globals['_TYPE_BYTES_ENCODING_RAW']._serialized_start=905 + _globals['_TYPE_BYTES_ENCODING_RAW']._serialized_end=910 + _globals['_TYPE_STRING']._serialized_start=925 + _globals['_TYPE_STRING']._serialized_end=1194 + _globals['_TYPE_STRING_ENCODING']._serialized_start=996 + _globals['_TYPE_STRING_ENCODING']._serialized_end=1194 + _globals['_TYPE_STRING_ENCODING_UTF8RAW']._serialized_start=1156 + _globals['_TYPE_STRING_ENCODING_UTF8RAW']._serialized_end=1169 + _globals['_TYPE_STRING_ENCODING_UTF8BYTES']._serialized_start=1171 + _globals['_TYPE_STRING_ENCODING_UTF8BYTES']._serialized_end=1182 + _globals['_TYPE_INT64']._serialized_start=1197 + _globals['_TYPE_INT64']._serialized_end=1442 + _globals['_TYPE_INT64_ENCODING']._serialized_start=1266 + _globals['_TYPE_INT64_ENCODING']._serialized_end=1442 + _globals['_TYPE_INT64_ENCODING_BIGENDIANBYTES']._serialized_start=1362 + _globals['_TYPE_INT64_ENCODING_BIGENDIANBYTES']._serialized_end=1430 + _globals['_TYPE_BOOL']._serialized_start=1444 + _globals['_TYPE_BOOL']._serialized_end=1450 + _globals['_TYPE_FLOAT32']._serialized_start=1452 + _globals['_TYPE_FLOAT32']._serialized_end=1461 + _globals['_TYPE_FLOAT64']._serialized_start=1463 + _globals['_TYPE_FLOAT64']._serialized_end=1472 + _globals['_TYPE_TIMESTAMP']._serialized_start=1474 + _globals['_TYPE_TIMESTAMP']._serialized_end=1485 + _globals['_TYPE_DATE']._serialized_start=1487 + _globals['_TYPE_DATE']._serialized_end=1493 + _globals['_TYPE_STRUCT']._serialized_start=1496 + _globals['_TYPE_STRUCT']._serialized_end=1628 + _globals['_TYPE_STRUCT_FIELD']._serialized_start=1561 + _globals['_TYPE_STRUCT_FIELD']._serialized_end=1628 + _globals['_TYPE_ARRAY']._serialized_start=1630 + _globals['_TYPE_ARRAY']._serialized_end=1685 + _globals['_TYPE_MAP']._serialized_start=1687 + _globals['_TYPE_MAP']._serialized_end=1782 + _globals['_TYPE_AGGREGATE']._serialized_start=1785 + _globals['_TYPE_AGGREGATE']._serialized_end=2224 + _globals['_TYPE_AGGREGATE_SUM']._serialized_start=2157 + _globals['_TYPE_AGGREGATE_SUM']._serialized_end=2162 + _globals['_TYPE_AGGREGATE_MAX']._serialized_start=2164 + _globals['_TYPE_AGGREGATE_MAX']._serialized_end=2169 + _globals['_TYPE_AGGREGATE_MIN']._serialized_start=2171 + _globals['_TYPE_AGGREGATE_MIN']._serialized_end=2176 + _globals['_TYPE_AGGREGATE_HYPERLOGLOGPLUSPLUSUNIQUECOUNT']._serialized_start=2178 + _globals['_TYPE_AGGREGATE_HYPERLOGLOGPLUSPLUSUNIQUECOUNT']._serialized_end=2210 +# @@protoc_insertion_point(module_scope) diff --git a/test_proxy/protos/types_pb2_grpc.py b/test_proxy/protos/types_pb2_grpc.py new file mode 100644 index 000000000..29956dd38 --- /dev/null +++ b/test_proxy/protos/types_pb2_grpc.py @@ -0,0 +1,24 @@ +# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! +"""Client and server classes corresponding to protobuf-defined services.""" +import grpc +import warnings + + +GRPC_GENERATED_VERSION = '1.70.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in google/bigtable/v2/types_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) From eaae0f3d0e3bd67ea7fcec895dd09366e84d7e85 Mon Sep 17 00:00:00 2001 From: Jack Dingilian Date: Fri, 28 Mar 2025 16:09:47 -0400 Subject: [PATCH 2/5] feat: ExecuteQuery testproxy implementation --- .../handlers/client_handler_data_async.py | 114 +++++++++-- .../client_handler_data_sync_autogen.py | 37 ++++ test_proxy/handlers/grpc_handler.py | 63 ++++-- test_proxy/handlers/sql_encoding.py | 183 ++++++++++++++++++ 4 files changed, 367 insertions(+), 30 deletions(-) create mode 100644 test_proxy/handlers/sql_encoding.py diff --git a/test_proxy/handlers/client_handler_data_async.py b/test_proxy/handlers/client_handler_data_async.py index 49539c1aa..5bd0fbf18 100644 --- a/test_proxy/handlers/client_handler_data_async.py +++ b/test_proxy/handlers/client_handler_data_async.py @@ -19,6 +19,7 @@ from google.cloud.environment_vars import BIGTABLE_EMULATOR from google.cloud.bigtable.data import BigtableDataClientAsync from google.cloud.bigtable.data._cross_sync import CrossSync +import sql_encoding if not CrossSync.is_async: from client_handler_data_async import error_safe @@ -32,6 +33,7 @@ def error_safe(func): Catch and pass errors back to the grpc_server_process Also check if client is closed before processing requests """ + async def wrapper(self, *args, **kwargs): try: if self.closed: @@ -50,6 +52,7 @@ def encode_exception(exc): Encode an exception or chain of exceptions to pass back to grpc_handler """ from google.api_core.exceptions import GoogleAPICallError + error_msg = f"{type(exc).__name__}: {exc}" result = {"error": error_msg} if exc.__cause__: @@ -113,7 +116,9 @@ async def ReadRows(self, request, **kwargs): table_id = request.pop("table_name").split("/")[-1] app_profile_id = self.app_profile_id or request.get("app_profile_id", None) table = self.client.get_table(self.instance_id, table_id, app_profile_id) - kwargs["operation_timeout"] = kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + kwargs["operation_timeout"] = ( + kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + ) result_list = CrossSync.rm_aio(await table.read_rows(request, **kwargs)) # pack results back into protobuf-parsable format serialized_response = [row._to_dict() for row in result_list] @@ -124,7 +129,9 @@ async def ReadRow(self, row_key, **kwargs): table_id = kwargs.pop("table_name").split("/")[-1] app_profile_id = self.app_profile_id or kwargs.get("app_profile_id", None) table = self.client.get_table(self.instance_id, table_id, app_profile_id) - kwargs["operation_timeout"] = kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + kwargs["operation_timeout"] = ( + kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + ) result_row = CrossSync.rm_aio(await table.read_row(row_key, **kwargs)) # pack results back into protobuf-parsable format if result_row: @@ -135,10 +142,13 @@ async def ReadRow(self, row_key, **kwargs): @error_safe async def MutateRow(self, request, **kwargs): from google.cloud.bigtable.data.mutations import Mutation + table_id = request["table_name"].split("/")[-1] app_profile_id = self.app_profile_id or request.get("app_profile_id", None) table = self.client.get_table(self.instance_id, table_id, app_profile_id) - kwargs["operation_timeout"] = kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + kwargs["operation_timeout"] = ( + kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + ) row_key = request["row_key"] mutations = [Mutation._from_dict(d) for d in request["mutations"]] CrossSync.rm_aio(await table.mutate_row(row_key, mutations, **kwargs)) @@ -147,21 +157,29 @@ async def MutateRow(self, request, **kwargs): @error_safe async def BulkMutateRows(self, request, **kwargs): from google.cloud.bigtable.data.mutations import RowMutationEntry + table_id = request["table_name"].split("/")[-1] app_profile_id = self.app_profile_id or request.get("app_profile_id", None) table = self.client.get_table(self.instance_id, table_id, app_profile_id) - kwargs["operation_timeout"] = kwargs.get("operation_timeout", self.per_operation_timeout) or 20 - entry_list = [RowMutationEntry._from_dict(entry) for entry in request["entries"]] + kwargs["operation_timeout"] = ( + kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + ) + entry_list = [ + RowMutationEntry._from_dict(entry) for entry in request["entries"] + ] CrossSync.rm_aio(await table.bulk_mutate_rows(entry_list, **kwargs)) return "OK" @error_safe async def CheckAndMutateRow(self, request, **kwargs): from google.cloud.bigtable.data.mutations import Mutation, SetCell + table_id = request["table_name"].split("/")[-1] app_profile_id = self.app_profile_id or request.get("app_profile_id", None) table = self.client.get_table(self.instance_id, table_id, app_profile_id) - kwargs["operation_timeout"] = kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + kwargs["operation_timeout"] = ( + kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + ) row_key = request["row_key"] # add default values for incomplete dicts, so they can still be parsed to objects true_mutations = [] @@ -180,33 +198,44 @@ async def CheckAndMutateRow(self, request, **kwargs): # invalid mutation type. Conformance test may be sending generic empty request false_mutations.append(SetCell("", "", "", 0)) predicate_filter = request.get("predicate_filter", None) - result = CrossSync.rm_aio(await table.check_and_mutate_row( - row_key, - predicate_filter, - true_case_mutations=true_mutations, - false_case_mutations=false_mutations, - **kwargs, - )) + result = CrossSync.rm_aio( + await table.check_and_mutate_row( + row_key, + predicate_filter, + true_case_mutations=true_mutations, + false_case_mutations=false_mutations, + **kwargs, + ) + ) return result @error_safe async def ReadModifyWriteRow(self, request, **kwargs): from google.cloud.bigtable.data.read_modify_write_rules import IncrementRule from google.cloud.bigtable.data.read_modify_write_rules import AppendValueRule + table_id = request["table_name"].split("/")[-1] app_profile_id = self.app_profile_id or request.get("app_profile_id", None) table = self.client.get_table(self.instance_id, table_id, app_profile_id) - kwargs["operation_timeout"] = kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + kwargs["operation_timeout"] = ( + kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + ) row_key = request["row_key"] rules = [] for rule_dict in request.get("rules", []): qualifier = rule_dict["column_qualifier"] if "append_value" in rule_dict: - new_rule = AppendValueRule(rule_dict["family_name"], qualifier, rule_dict["append_value"]) + new_rule = AppendValueRule( + rule_dict["family_name"], qualifier, rule_dict["append_value"] + ) else: - new_rule = IncrementRule(rule_dict["family_name"], qualifier, rule_dict["increment_amount"]) + new_rule = IncrementRule( + rule_dict["family_name"], qualifier, rule_dict["increment_amount"] + ) rules.append(new_rule) - result = CrossSync.rm_aio(await table.read_modify_write_row(row_key, rules, **kwargs)) + result = CrossSync.rm_aio( + await table.read_modify_write_row(row_key, rules, **kwargs) + ) # pack results back into protobuf-parsable format if result: return result._to_dict() @@ -218,6 +247,55 @@ async def SampleRowKeys(self, request, **kwargs): table_id = request["table_name"].split("/")[-1] app_profile_id = self.app_profile_id or request.get("app_profile_id", None) table = self.client.get_table(self.instance_id, table_id, app_profile_id) - kwargs["operation_timeout"] = kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + kwargs["operation_timeout"] = ( + kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + ) result = CrossSync.rm_aio(await table.sample_row_keys(**kwargs)) return result + + @error_safe + async def ExecuteQuery(self, request, **kwargs): + app_profile_id = self.app_profile_id or request.get("app_profile_id", None) + query = request.get("query") + params = request.get("params") or {} + # Note that the request has been coverted to json, and the code for this converts + # query param names to snake case. convert_params reverses this conversion. For this + # reason, snake case params will have issues if they're used in the conformance tests. + formatted_params, parameter_types = sql_encoding.convert_params(params) + operation_timeout = ( + kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + ) + result = CrossSync.rm_aio( + await self.client.execute_query( + query, + self.instance_id, + parameters=formatted_params, + parameter_types=parameter_types, + app_profile_id=app_profile_id, + operation_timeout=operation_timeout, + prepare_operation_timeout=operation_timeout, + ) + ) + rows = [r async for r in result] + md = result.metadata + proto_rows = [] + for r in rows: + vals = [] + for c in md.columns: + vals.append(sql_encoding.convert_value(c.column_type, r[c.column_name])) + + proto_rows.append({"values": vals}) + + proto_columns = [] + for c in md.columns: + proto_columns.append( + { + "name": c.column_name, + "type": sql_encoding.convert_type(c.column_type), + } + ) + + return { + "metadata": {"columns": proto_columns}, + "rows": proto_rows, + } diff --git a/test_proxy/handlers/client_handler_data_sync_autogen.py b/test_proxy/handlers/client_handler_data_sync_autogen.py index eabae0ffa..ec6429e95 100644 --- a/test_proxy/handlers/client_handler_data_sync_autogen.py +++ b/test_proxy/handlers/client_handler_data_sync_autogen.py @@ -20,6 +20,7 @@ import os from google.cloud.environment_vars import BIGTABLE_EMULATOR from google.cloud.bigtable.data._cross_sync import CrossSync +import sql_encoding from client_handler_data_async import error_safe @@ -183,3 +184,39 @@ async def SampleRowKeys(self, request, **kwargs): ) result = table.sample_row_keys(**kwargs) return result + + @error_safe + async def ExecuteQuery(self, request, **kwargs): + app_profile_id = self.app_profile_id or request.get("app_profile_id", None) + query = request.get("query") + params = request.get("params") or {} + (formatted_params, parameter_types) = sql_encoding.convert_params(params) + operation_timeout = ( + kwargs.get("operation_timeout", self.per_operation_timeout) or 20 + ) + result = self.client.execute_query( + query, + self.instance_id, + parameters=formatted_params, + parameter_types=parameter_types, + app_profile_id=app_profile_id, + operation_timeout=operation_timeout, + prepare_operation_timeout=operation_timeout, + ) + rows = [r async for r in result] + md = result.metadata + proto_rows = [] + for r in rows: + vals = [] + for c in md.columns: + vals.append(sql_encoding.convert_value(c.column_type, r[c.column_name])) + proto_rows.append({"values": vals}) + proto_columns = [] + for c in md.columns: + proto_columns.append( + { + "name": c.column_name, + "type": sql_encoding.convert_type(c.column_type), + } + ) + return {"metadata": {"columns": proto_columns}, "rows": proto_rows} diff --git a/test_proxy/handlers/grpc_handler.py b/test_proxy/handlers/grpc_handler.py index 2c70778dd..0e1741ed1 100644 --- a/test_proxy/handlers/grpc_handler.py +++ b/test_proxy/handlers/grpc_handler.py @@ -1,4 +1,3 @@ - import time import test_proxy_pb2 @@ -59,7 +58,6 @@ def wrapper(self, request, context, **kwargs): return wrapper - @delegate_to_client_handler def CreateClient(self, request, context, client_response=None): return test_proxy_pb2.CreateClientResponse() @@ -88,7 +86,10 @@ def ReadRow(self, request, context, client_response=None): status = Status() row = None if isinstance(client_response, dict) and "error" in client_response: - status=Status(code=client_response.get("code", 5), message=client_response.get("error")) + status = Status( + code=client_response.get("code", 5), + message=client_response.get("error"), + ) elif client_response != "None": row = data_pb2.Row(**client_response) result = test_proxy_pb2.RowResult(row=row, status=status) @@ -98,7 +99,9 @@ def ReadRow(self, request, context, client_response=None): def MutateRow(self, request, context, client_response=None): status = Status() if isinstance(client_response, dict) and "error" in client_response: - status = Status(code=client_response.get("code", 5), message=client_response["error"]) + status = Status( + code=client_response.get("code", 5), message=client_response["error"] + ) return test_proxy_pb2.MutateRowResult(status=status) @delegate_to_client_handler @@ -106,10 +109,19 @@ def BulkMutateRows(self, request, context, client_response=None): status = Status() entries = [] if isinstance(client_response, dict) and "error" in client_response: - entries = [bigtable_pb2.MutateRowsResponse.Entry(index=exc_dict.get("index",1), status=Status(code=exc_dict.get("code", 5))) for exc_dict in client_response.get("subexceptions", [])] + entries = [ + bigtable_pb2.MutateRowsResponse.Entry( + index=exc_dict.get("index", 1), + status=Status(code=exc_dict.get("code", 5)), + ) + for exc_dict in client_response.get("subexceptions", []) + ] if not entries: # only return failure on the overall request if there are failed entries - status = Status(code=client_response.get("code", 5), message=client_response["error"]) + status = Status( + code=client_response.get("code", 5), + message=client_response["error"], + ) # TODO: protos were updated. entry is now entries: https://github.com/googleapis/cndb-client-testing-protos/commit/e6205a2bba04acc10d12421a1402870b4a525fb3 response = test_proxy_pb2.MutateRowsResult(status=status, entry=entries) return response @@ -117,11 +129,17 @@ def BulkMutateRows(self, request, context, client_response=None): @delegate_to_client_handler def CheckAndMutateRow(self, request, context, client_response=None): if isinstance(client_response, dict) and "error" in client_response: - status = Status(code=client_response.get("code", 5), message=client_response["error"]) + status = Status( + code=client_response.get("code", 5), message=client_response["error"] + ) response = test_proxy_pb2.CheckAndMutateRowResult(status=status) else: - result = bigtable_pb2.CheckAndMutateRowResponse(predicate_matched=client_response) - response = test_proxy_pb2.CheckAndMutateRowResult(result=result, status=Status()) + result = bigtable_pb2.CheckAndMutateRowResponse( + predicate_matched=client_response + ) + response = test_proxy_pb2.CheckAndMutateRowResult( + result=result, status=Status() + ) return response @delegate_to_client_handler @@ -129,7 +147,10 @@ def ReadModifyWriteRow(self, request, context, client_response=None): status = Status() row = None if isinstance(client_response, dict) and "error" in client_response: - status = Status(code=client_response.get("code", 5), message=client_response.get("error")) + status = Status( + code=client_response.get("code", 5), + message=client_response.get("error"), + ) elif client_response != "None": row = data_pb2.Row(**client_response) result = test_proxy_pb2.RowResult(row=row, status=status) @@ -140,9 +161,27 @@ def SampleRowKeys(self, request, context, client_response=None): status = Status() sample_list = [] if isinstance(client_response, dict) and "error" in client_response: - status = Status(code=client_response.get("code", 5), message=client_response.get("error")) + status = Status( + code=client_response.get("code", 5), + message=client_response.get("error"), + ) else: for sample in client_response: - sample_list.append(bigtable_pb2.SampleRowKeysResponse(offset_bytes=sample[1], row_key=sample[0])) + sample_list.append( + bigtable_pb2.SampleRowKeysResponse( + offset_bytes=sample[1], row_key=sample[0] + ) + ) # TODO: protos were updated. sample is now samples: https://github.com/googleapis/cndb-client-testing-protos/commit/e6205a2bba04acc10d12421a1402870b4a525fb3 return test_proxy_pb2.SampleRowKeysResult(status=status, sample=sample_list) + + @delegate_to_client_handler + def ExecuteQuery(self, request, context, client_response=None): + if isinstance(client_response, dict) and "error" in client_response: + return test_proxy_pb2.ExecuteQueryResult( + status=Status(code=13, message=client_response["error"]) + ) + else: + return test_proxy_pb2.ExecuteQueryResult( + metadata=client_response["metadata"], rows=client_response["rows"] + ) diff --git a/test_proxy/handlers/sql_encoding.py b/test_proxy/handlers/sql_encoding.py new file mode 100644 index 000000000..9640ae3fd --- /dev/null +++ b/test_proxy/handlers/sql_encoding.py @@ -0,0 +1,183 @@ +# Copyright 2024 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. +""" +This module contains helpers for handling sql data types for the test proxy. +""" +from datetime import date +from typing import Any + +from google.api_core.datetime_helpers import DatetimeWithNanoseconds +from google.cloud.bigtable.data.execute_query.metadata import SqlType + + +PRIMITIVE_TYPE_MAPPING = { + "bytes_type": SqlType.Bytes(), + "string_type": SqlType.String(), + "int64_type": SqlType.Int64(), + "float32_type": SqlType.Float32(), + "float64_type": SqlType.Float64(), + "bool_type": SqlType.Bool(), + "timestamp_type": SqlType.Timestamp(), + "date_type": SqlType.Date(), +} + +PRIMITIVE_VALUE_FIELDS = [ + "bytes_value", + "string_value", + "int_value", + "float_value", + "bool_value", +] + + +def snake_to_camel(snake_string): + """ + Used to convert query parameter names back to camel case. This needs to be handled + specifically because the python test proxy converts all keys to snake case when it + converts proto messages to dicts. + """ + components = snake_string.split("_") + return components[0] + "".join(x.title() for x in components[1:]) + + +def convert_value(type: SqlType, val: Any): + """ + Converts python value to a dict representation of a protobuf Value message. + """ + if val is None: + return {} + elif isinstance(type, SqlType.Date): + return {"date_value": val} + elif isinstance(type, SqlType.Map): + key_type = type.key_type + val_type = type.value_type + results = [] + for k, v in val.items(): + results.append( + { + "array_value": { + "values": [ + convert_value(key_type, k), + convert_value(val_type, v), + ] + } + } + ) + return {"array_value": {"values": results}} + elif isinstance(type, SqlType.Struct): + results = [] + for i, (_, field_val) in enumerate(val.fields): + results.append(convert_value(type[i], field_val)) + return {"array_value": {"values": results}} + elif isinstance(type, SqlType.Array): + elem_type = type.element_type + results = [] + for e in val: + results.append(convert_value(elem_type, e)) + return {"array_value": {"values": results}} + else: + return type._to_value_pb_dict(val) + + +def convert_type(type: SqlType): + if isinstance(type, SqlType.Map): + return { + "map_type": { + "key_type": convert_type(type.key_type), + "value_type": convert_type(type.value_type), + } + } + elif isinstance(type, SqlType.Struct): + fields = [] + for field_name, field_type in type.fields: + fields.append({"field_name": field_name, "type": convert_type(field_type)}) + return {"struct_type": {"fields": fields}} + elif isinstance(type, SqlType.Array): + return {"array_type": {"element_type": convert_type(type.element_type)}} + else: + return type._to_type_pb_dict() + + +def to_sql_type(proto_type_dict): + if len(proto_type_dict.keys()) != 1: + raise ValueError("Invalid type: ", proto_type_dict) + type_field = list(proto_type_dict.keys())[0] + if type_field in PRIMITIVE_TYPE_MAPPING: + return PRIMITIVE_TYPE_MAPPING[type_field] + elif type_field == "array_type": + elem_type_dict = proto_type_dict["array_type"]["element_type"] + return SqlType.Array(to_sql_type(elem_type_dict)) + else: + raise ValueError("Invalid query parameter type: ", proto_type_dict) + + +def convert_to_python_value(proto_val: Any, sql_type: SqlType): + """ + Converts the given dict representation of a proto Value message to the correct + python value. This is used to convert query params to the represetation expected + from users. We can't reuse existing parsers because they expect actual proto messages + rather than dicts. + """ + value_field = sql_type.value_pb_dict_field_name + if isinstance(sql_type, SqlType.Array): + if "array_value" not in proto_val: + return None + elem_type = sql_type.element_type + return [ + convert_to_python_value(v, elem_type) + for v in proto_val["array_value"]["values"] + ] + if value_field and value_field not in proto_val: + return None + if value_field in PRIMITIVE_VALUE_FIELDS: + return proto_val[value_field] + if isinstance(sql_type, SqlType.Timestamp): + if "timestamp_value" not in proto_val: + return None + return DatetimeWithNanoseconds.from_rfc3339(proto_val["timestamp_value"]) + if isinstance(sql_type, SqlType.Date): + if "date_value" not in proto_val: + return None + return date( + year=proto_val["date_value"]["year"], + month=proto_val["date_value"]["month"], + day=proto_val["date_value"]["day"], + ) + raise ValueError("Unexpected parameter: %s, %s", proto_val, sql_type) + + +def convert_params(request_params): + """ + Converts the given dictionary of parameters to a python representation. + This converts parameter names from snake to camel case and protobuf Value dicts + to python values. + """ + python_params = {} + param_types = {} + for param_key, param_value in request_params.items(): + if "type" not in param_value: + raise ValueError("type must be set for query params") + + sql_type = to_sql_type(param_value["type"]) + readjusted_param_name = snake_to_camel(param_key) + param_types[readjusted_param_name] = sql_type + if len(param_value.keys()) == 1: + # this means type is set and nothing else + python_params[readjusted_param_name] = None + elif len(param_value) > 2: + raise ValueError("Unexpected Value format: ", param_value) + python_params[readjusted_param_name] = convert_to_python_value( + param_value, sql_type + ) + return python_params, param_types From 21d7771d439ba212ba1922d1611d4bd295c6712b Mon Sep 17 00:00:00 2001 From: Jack Dingilian Date: Wed, 28 May 2025 11:09:53 -0400 Subject: [PATCH 3/5] update grpc_handler to match proto updates --- test_proxy/handlers/grpc_handler.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/test_proxy/handlers/grpc_handler.py b/test_proxy/handlers/grpc_handler.py index 0e1741ed1..5dc7aa090 100644 --- a/test_proxy/handlers/grpc_handler.py +++ b/test_proxy/handlers/grpc_handler.py @@ -78,7 +78,7 @@ def ReadRows(self, request, context, client_response=None): status = Status(code=5, message=client_response["error"]) else: rows = [data_pb2.Row(**d) for d in client_response] - result = test_proxy_pb2.RowsResult(row=rows, status=status) + result = test_proxy_pb2.RowsResult(rows=rows, status=status) return result @delegate_to_client_handler @@ -122,8 +122,7 @@ def BulkMutateRows(self, request, context, client_response=None): code=client_response.get("code", 5), message=client_response["error"], ) - # TODO: protos were updated. entry is now entries: https://github.com/googleapis/cndb-client-testing-protos/commit/e6205a2bba04acc10d12421a1402870b4a525fb3 - response = test_proxy_pb2.MutateRowsResult(status=status, entry=entries) + response = test_proxy_pb2.MutateRowsResult(status=status, entries=entries) return response @delegate_to_client_handler @@ -172,8 +171,7 @@ def SampleRowKeys(self, request, context, client_response=None): offset_bytes=sample[1], row_key=sample[0] ) ) - # TODO: protos were updated. sample is now samples: https://github.com/googleapis/cndb-client-testing-protos/commit/e6205a2bba04acc10d12421a1402870b4a525fb3 - return test_proxy_pb2.SampleRowKeysResult(status=status, sample=sample_list) + return test_proxy_pb2.SampleRowKeysResult(status=status, samples=sample_list) @delegate_to_client_handler def ExecuteQuery(self, request, context, client_response=None): From 982f94cc4ae2ab7383c504b6663f4160193f8444 Mon Sep 17 00:00:00 2001 From: Jack Dingilian Date: Wed, 11 Jun 2025 13:16:48 -0400 Subject: [PATCH 4/5] rename sql_encoding --- test_proxy/handlers/client_handler_data_async.py | 8 ++++---- test_proxy/handlers/client_handler_data_sync_autogen.py | 9 ++++----- .../{sql_encoding.py => helpers/sql_encoding_helpers.py} | 0 3 files changed, 8 insertions(+), 9 deletions(-) rename test_proxy/handlers/{sql_encoding.py => helpers/sql_encoding_helpers.py} (100%) diff --git a/test_proxy/handlers/client_handler_data_async.py b/test_proxy/handlers/client_handler_data_async.py index 5bd0fbf18..85ef2c7d4 100644 --- a/test_proxy/handlers/client_handler_data_async.py +++ b/test_proxy/handlers/client_handler_data_async.py @@ -19,7 +19,7 @@ from google.cloud.environment_vars import BIGTABLE_EMULATOR from google.cloud.bigtable.data import BigtableDataClientAsync from google.cloud.bigtable.data._cross_sync import CrossSync -import sql_encoding +from helpers import sql_encoding_helpers if not CrossSync.is_async: from client_handler_data_async import error_safe @@ -261,7 +261,7 @@ async def ExecuteQuery(self, request, **kwargs): # Note that the request has been coverted to json, and the code for this converts # query param names to snake case. convert_params reverses this conversion. For this # reason, snake case params will have issues if they're used in the conformance tests. - formatted_params, parameter_types = sql_encoding.convert_params(params) + formatted_params, parameter_types = sql_encoding_helpers.convert_params(params) operation_timeout = ( kwargs.get("operation_timeout", self.per_operation_timeout) or 20 ) @@ -282,7 +282,7 @@ async def ExecuteQuery(self, request, **kwargs): for r in rows: vals = [] for c in md.columns: - vals.append(sql_encoding.convert_value(c.column_type, r[c.column_name])) + vals.append(sql_encoding_helpers.convert_value(c.column_type, r[c.column_name])) proto_rows.append({"values": vals}) @@ -291,7 +291,7 @@ async def ExecuteQuery(self, request, **kwargs): proto_columns.append( { "name": c.column_name, - "type": sql_encoding.convert_type(c.column_type), + "type": sql_encoding_helpers.convert_type(c.column_type), } ) diff --git a/test_proxy/handlers/client_handler_data_sync_autogen.py b/test_proxy/handlers/client_handler_data_sync_autogen.py index ec6429e95..ee56df703 100644 --- a/test_proxy/handlers/client_handler_data_sync_autogen.py +++ b/test_proxy/handlers/client_handler_data_sync_autogen.py @@ -20,9 +20,8 @@ import os from google.cloud.environment_vars import BIGTABLE_EMULATOR from google.cloud.bigtable.data._cross_sync import CrossSync -import sql_encoding from client_handler_data_async import error_safe - +from helpers import sql_encoding_helpers class TestProxyClientHandler: """ @@ -190,7 +189,7 @@ async def ExecuteQuery(self, request, **kwargs): app_profile_id = self.app_profile_id or request.get("app_profile_id", None) query = request.get("query") params = request.get("params") or {} - (formatted_params, parameter_types) = sql_encoding.convert_params(params) + (formatted_params, parameter_types) = sql_encoding_helpers.convert_params(params) operation_timeout = ( kwargs.get("operation_timeout", self.per_operation_timeout) or 20 ) @@ -209,14 +208,14 @@ async def ExecuteQuery(self, request, **kwargs): for r in rows: vals = [] for c in md.columns: - vals.append(sql_encoding.convert_value(c.column_type, r[c.column_name])) + vals.append(sql_encoding_helpers.convert_value(c.column_type, r[c.column_name])) proto_rows.append({"values": vals}) proto_columns = [] for c in md.columns: proto_columns.append( { "name": c.column_name, - "type": sql_encoding.convert_type(c.column_type), + "type": sql_encoding_helpers.convert_type(c.column_type), } ) return {"metadata": {"columns": proto_columns}, "rows": proto_rows} diff --git a/test_proxy/handlers/sql_encoding.py b/test_proxy/handlers/helpers/sql_encoding_helpers.py similarity index 100% rename from test_proxy/handlers/sql_encoding.py rename to test_proxy/handlers/helpers/sql_encoding_helpers.py From 6ff12cfc4c7b80935927f6908afa58f6ba6c6c4d Mon Sep 17 00:00:00 2001 From: Jack Dingilian Date: Wed, 11 Jun 2025 14:31:14 -0400 Subject: [PATCH 5/5] regenerate sync testproxy --- .../handlers/client_handler_data_sync_autogen.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/test_proxy/handlers/client_handler_data_sync_autogen.py b/test_proxy/handlers/client_handler_data_sync_autogen.py index ee56df703..4a680cc8c 100644 --- a/test_proxy/handlers/client_handler_data_sync_autogen.py +++ b/test_proxy/handlers/client_handler_data_sync_autogen.py @@ -20,8 +20,9 @@ import os from google.cloud.environment_vars import BIGTABLE_EMULATOR from google.cloud.bigtable.data._cross_sync import CrossSync -from client_handler_data_async import error_safe from helpers import sql_encoding_helpers +from client_handler_data_async import error_safe + class TestProxyClientHandler: """ @@ -189,7 +190,9 @@ async def ExecuteQuery(self, request, **kwargs): app_profile_id = self.app_profile_id or request.get("app_profile_id", None) query = request.get("query") params = request.get("params") or {} - (formatted_params, parameter_types) = sql_encoding_helpers.convert_params(params) + (formatted_params, parameter_types) = sql_encoding_helpers.convert_params( + params + ) operation_timeout = ( kwargs.get("operation_timeout", self.per_operation_timeout) or 20 ) @@ -208,7 +211,9 @@ async def ExecuteQuery(self, request, **kwargs): for r in rows: vals = [] for c in md.columns: - vals.append(sql_encoding_helpers.convert_value(c.column_type, r[c.column_name])) + vals.append( + sql_encoding_helpers.convert_value(c.column_type, r[c.column_name]) + ) proto_rows.append({"values": vals}) proto_columns = [] for c in md.columns: