diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableProto.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableProto.java index 87ba2cbdd226..c64726804b04 100644 --- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableProto.java +++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/BigtableProto.java @@ -71,6 +71,10 @@ public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry r internal_static_google_bigtable_v2_MutateRowsResponse_Entry_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internal_static_google_bigtable_v2_MutateRowsResponse_Entry_fieldAccessorTable; + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_bigtable_v2_RateLimitInfo_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_bigtable_v2_RateLimitInfo_fieldAccessorTable; static final com.google.protobuf.Descriptors.Descriptor internal_static_google_bigtable_v2_CheckAndMutateRowRequest_descriptor; static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable @@ -186,168 +190,172 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + "\022A\n\007entries\030\002 \003(\0132+.google.bigtable.v2.M" + "utateRowsRequest.EntryB\003\340A\002\032N\n\005Entry\022\017\n\007" + "row_key\030\001 \001(\014\0224\n\tmutations\030\002 \003(\0132\034.googl" - + "e.bigtable.v2.MutationB\003\340A\002\"\217\001\n\022MutateRo" + + "e.bigtable.v2.MutationB\003\340A\002\"\344\001\n\022MutateRo" + "wsResponse\022=\n\007entries\030\001 \003(\0132,.google.big" - + "table.v2.MutateRowsResponse.Entry\032:\n\005Ent" - + "ry\022\r\n\005index\030\001 \001(\003\022\"\n\006status\030\002 \001(\0132\022.goog" - + "le.rpc.Status\"\256\002\n\030CheckAndMutateRowReque" - + "st\022>\n\ntable_name\030\001 \001(\tB*\340A\002\372A$\n\"bigtable" - + "admin.googleapis.com/Table\022\026\n\016app_profil" - + "e_id\030\007 \001(\t\022\024\n\007row_key\030\002 \001(\014B\003\340A\002\0227\n\020pred" - + "icate_filter\030\006 \001(\0132\035.google.bigtable.v2." - + "RowFilter\0224\n\016true_mutations\030\004 \003(\0132\034.goog" - + "le.bigtable.v2.Mutation\0225\n\017false_mutatio" - + "ns\030\005 \003(\0132\034.google.bigtable.v2.Mutation\"6" - + "\n\031CheckAndMutateRowResponse\022\031\n\021predicate" - + "_matched\030\001 \001(\010\"i\n\022PingAndWarmRequest\022;\n\004" - + "name\030\001 \001(\tB-\340A\002\372A\'\n%bigtableadmin.google" - + "apis.com/Instance\022\026\n\016app_profile_id\030\002 \001(" - + "\t\"\025\n\023PingAndWarmResponse\"\306\001\n\031ReadModifyW" - + "riteRowRequest\022>\n\ntable_name\030\001 \001(\tB*\340A\002\372" - + "A$\n\"bigtableadmin.googleapis.com/Table\022\026" - + "\n\016app_profile_id\030\004 \001(\t\022\024\n\007row_key\030\002 \001(\014B" - + "\003\340A\002\022;\n\005rules\030\003 \003(\0132\'.google.bigtable.v2" - + ".ReadModifyWriteRuleB\003\340A\002\"B\n\032ReadModifyW" - + "riteRowResponse\022$\n\003row\030\001 \001(\0132\027.google.bi" - + "gtable.v2.Row\"\206\001\n,GenerateInitialChangeS" - + "treamPartitionsRequest\022>\n\ntable_name\030\001 \001" - + "(\tB*\340A\002\372A$\n\"bigtableadmin.googleapis.com" - + "/Table\022\026\n\016app_profile_id\030\002 \001(\t\"g\n-Genera" - + "teInitialChangeStreamPartitionsResponse\022" - + "6\n\tpartition\030\001 \001(\0132#.google.bigtable.v2." - + "StreamPartition\"\233\003\n\027ReadChangeStreamRequ" + + "table.v2.MutateRowsResponse.Entry\022?\n\017rat" + + "e_limit_info\030\003 \001(\0132!.google.bigtable.v2." + + "RateLimitInfoH\000\210\001\001\032:\n\005Entry\022\r\n\005index\030\001 \001" + + "(\003\022\"\n\006status\030\002 \001(\0132\022.google.rpc.StatusB\022" + + "\n\020_rate_limit_info\"J\n\rRateLimitInfo\022)\n\006p" + + "eriod\030\001 \001(\0132\031.google.protobuf.Duration\022\016" + + "\n\006factor\030\002 \001(\001\"\256\002\n\030CheckAndMutateRowRequ" + "est\022>\n\ntable_name\030\001 \001(\tB*\340A\002\372A$\n\"bigtabl" + "eadmin.googleapis.com/Table\022\026\n\016app_profi" - + "le_id\030\002 \001(\t\0226\n\tpartition\030\003 \001(\0132#.google." - + "bigtable.v2.StreamPartition\0220\n\nstart_tim" - + "e\030\004 \001(\0132\032.google.protobuf.TimestampH\000\022K\n" - + "\023continuation_tokens\030\006 \001(\0132,.google.bigt" - + "able.v2.StreamContinuationTokensH\000\022,\n\010en" - + "d_time\030\005 \001(\0132\032.google.protobuf.Timestamp" - + "\0225\n\022heartbeat_duration\030\007 \001(\0132\031.google.pr" - + "otobuf.DurationB\014\n\nstart_from\"\251\n\n\030ReadCh" - + "angeStreamResponse\022N\n\013data_change\030\001 \001(\0132" - + "7.google.bigtable.v2.ReadChangeStreamRes" - + "ponse.DataChangeH\000\022K\n\theartbeat\030\002 \001(\01326." - + "google.bigtable.v2.ReadChangeStreamRespo" - + "nse.HeartbeatH\000\022P\n\014close_stream\030\003 \001(\01328." - + "google.bigtable.v2.ReadChangeStreamRespo" - + "nse.CloseStreamH\000\032\364\001\n\rMutationChunk\022X\n\nc" - + "hunk_info\030\001 \001(\0132D.google.bigtable.v2.Rea" - + "dChangeStreamResponse.MutationChunk.Chun" - + "kInfo\022.\n\010mutation\030\002 \001(\0132\034.google.bigtabl" - + "e.v2.Mutation\032Y\n\tChunkInfo\022\032\n\022chunked_va" - + "lue_size\030\001 \001(\005\022\034\n\024chunked_value_offset\030\002" - + " \001(\005\022\022\n\nlast_chunk\030\003 \001(\010\032\306\003\n\nDataChange\022" - + "J\n\004type\030\001 \001(\0162<.google.bigtable.v2.ReadC" - + "hangeStreamResponse.DataChange.Type\022\031\n\021s" - + "ource_cluster_id\030\002 \001(\t\022\017\n\007row_key\030\003 \001(\014\022" - + "4\n\020commit_timestamp\030\004 \001(\0132\032.google.proto" - + "buf.Timestamp\022\022\n\ntiebreaker\030\005 \001(\005\022J\n\006chu" - + "nks\030\006 \003(\0132:.google.bigtable.v2.ReadChang" - + "eStreamResponse.MutationChunk\022\014\n\004done\030\010 " - + "\001(\010\022\r\n\005token\030\t \001(\t\022;\n\027estimated_low_wate" - + "rmark\030\n \001(\0132\032.google.protobuf.Timestamp\"" - + "P\n\004Type\022\024\n\020TYPE_UNSPECIFIED\020\000\022\010\n\004USER\020\001\022" - + "\026\n\022GARBAGE_COLLECTION\020\002\022\020\n\014CONTINUATION\020" - + "\003\032\221\001\n\tHeartbeat\022G\n\022continuation_token\030\001 " - + "\001(\0132+.google.bigtable.v2.StreamContinuat" - + "ionToken\022;\n\027estimated_low_watermark\030\002 \001(" - + "\0132\032.google.protobuf.Timestamp\032\270\001\n\013CloseS" - + "tream\022\"\n\006status\030\001 \001(\0132\022.google.rpc.Statu" - + "s\022H\n\023continuation_tokens\030\002 \003(\0132+.google." - + "bigtable.v2.StreamContinuationToken\022;\n\016n" - + "ew_partitions\030\003 \003(\0132#.google.bigtable.v2" - + ".StreamPartitionB\017\n\rstream_record2\327\030\n\010Bi" - + "gtable\022\233\002\n\010ReadRows\022#.google.bigtable.v2" - + ".ReadRowsRequest\032$.google.bigtable.v2.Re" - + "adRowsResponse\"\301\001\202\323\344\223\002>\"9/v2/{table_name" - + "=projects/*/instances/*/tables/*}:readRo" - + "ws:\001*\212\323\344\223\002N\022:\n\ntable_name\022,{table_name=p" - + "rojects/*/instances/*/tables/*}\022\020\n\016app_p" - + "rofile_id\332A\ntable_name\332A\031table_name,app_" - + "profile_id0\001\022\254\002\n\rSampleRowKeys\022(.google." - + "bigtable.v2.SampleRowKeysRequest\032).googl" - + "e.bigtable.v2.SampleRowKeysResponse\"\303\001\202\323" - + "\344\223\002@\022>/v2/{table_name=projects/*/instanc" - + "es/*/tables/*}:sampleRowKeys\212\323\344\223\002N\022:\n\nta" - + "ble_name\022,{table_name=projects/*/instanc" - + "es/*/tables/*}\022\020\n\016app_profile_id\332A\ntable" - + "_name\332A\031table_name,app_profile_id0\001\022\301\002\n\t" - + "MutateRow\022$.google.bigtable.v2.MutateRow" - + "Request\032%.google.bigtable.v2.MutateRowRe" - + "sponse\"\346\001\202\323\344\223\002?\":/v2/{table_name=project" - + "s/*/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+tabl" - + "e_name,row_key,mutations,app_profile_id\022" - + "\263\002\n\nMutateRows\022%.google.bigtable.v2.Muta" - + "teRowsRequest\032&.google.bigtable.v2.Mutat" - + "eRowsResponse\"\323\001\202\323\344\223\002@\";/v2/{table_name=" - + "projects/*/instances/*/tables/*}:mutateR" + + "le_id\030\007 \001(\t\022\024\n\007row_key\030\002 \001(\014B\003\340A\002\0227\n\020pre" + + "dicate_filter\030\006 \001(\0132\035.google.bigtable.v2" + + ".RowFilter\0224\n\016true_mutations\030\004 \003(\0132\034.goo" + + "gle.bigtable.v2.Mutation\0225\n\017false_mutati" + + "ons\030\005 \003(\0132\034.google.bigtable.v2.Mutation\"" + + "6\n\031CheckAndMutateRowResponse\022\031\n\021predicat" + + "e_matched\030\001 \001(\010\"i\n\022PingAndWarmRequest\022;\n" + + "\004name\030\001 \001(\tB-\340A\002\372A\'\n%bigtableadmin.googl" + + "eapis.com/Instance\022\026\n\016app_profile_id\030\002 \001" + + "(\t\"\025\n\023PingAndWarmResponse\"\306\001\n\031ReadModify" + + "WriteRowRequest\022>\n\ntable_name\030\001 \001(\tB*\340A\002" + + "\372A$\n\"bigtableadmin.googleapis.com/Table\022" + + "\026\n\016app_profile_id\030\004 \001(\t\022\024\n\007row_key\030\002 \001(\014" + + "B\003\340A\002\022;\n\005rules\030\003 \003(\0132\'.google.bigtable.v" + + "2.ReadModifyWriteRuleB\003\340A\002\"B\n\032ReadModify" + + "WriteRowResponse\022$\n\003row\030\001 \001(\0132\027.google.b" + + "igtable.v2.Row\"\206\001\n,GenerateInitialChange" + + "StreamPartitionsRequest\022>\n\ntable_name\030\001 " + + "\001(\tB*\340A\002\372A$\n\"bigtableadmin.googleapis.co" + + "m/Table\022\026\n\016app_profile_id\030\002 \001(\t\"g\n-Gener" + + "ateInitialChangeStreamPartitionsResponse" + + "\0226\n\tpartition\030\001 \001(\0132#.google.bigtable.v2" + + ".StreamPartition\"\233\003\n\027ReadChangeStreamReq" + + "uest\022>\n\ntable_name\030\001 \001(\tB*\340A\002\372A$\n\"bigtab" + + "leadmin.googleapis.com/Table\022\026\n\016app_prof" + + "ile_id\030\002 \001(\t\0226\n\tpartition\030\003 \001(\0132#.google" + + ".bigtable.v2.StreamPartition\0220\n\nstart_ti" + + "me\030\004 \001(\0132\032.google.protobuf.TimestampH\000\022K" + + "\n\023continuation_tokens\030\006 \001(\0132,.google.big" + + "table.v2.StreamContinuationTokensH\000\022,\n\010e" + + "nd_time\030\005 \001(\0132\032.google.protobuf.Timestam" + + "p\0225\n\022heartbeat_duration\030\007 \001(\0132\031.google.p" + + "rotobuf.DurationB\014\n\nstart_from\"\251\n\n\030ReadC" + + "hangeStreamResponse\022N\n\013data_change\030\001 \001(\013" + + "27.google.bigtable.v2.ReadChangeStreamRe" + + "sponse.DataChangeH\000\022K\n\theartbeat\030\002 \001(\01326" + + ".google.bigtable.v2.ReadChangeStreamResp" + + "onse.HeartbeatH\000\022P\n\014close_stream\030\003 \001(\01328" + + ".google.bigtable.v2.ReadChangeStreamResp" + + "onse.CloseStreamH\000\032\364\001\n\rMutationChunk\022X\n\n" + + "chunk_info\030\001 \001(\0132D.google.bigtable.v2.Re" + + "adChangeStreamResponse.MutationChunk.Chu" + + "nkInfo\022.\n\010mutation\030\002 \001(\0132\034.google.bigtab" + + "le.v2.Mutation\032Y\n\tChunkInfo\022\032\n\022chunked_v" + + "alue_size\030\001 \001(\005\022\034\n\024chunked_value_offset\030" + + "\002 \001(\005\022\022\n\nlast_chunk\030\003 \001(\010\032\306\003\n\nDataChange" + + "\022J\n\004type\030\001 \001(\0162<.google.bigtable.v2.Read" + + "ChangeStreamResponse.DataChange.Type\022\031\n\021" + + "source_cluster_id\030\002 \001(\t\022\017\n\007row_key\030\003 \001(\014" + + "\0224\n\020commit_timestamp\030\004 \001(\0132\032.google.prot" + + "obuf.Timestamp\022\022\n\ntiebreaker\030\005 \001(\005\022J\n\006ch" + + "unks\030\006 \003(\0132:.google.bigtable.v2.ReadChan" + + "geStreamResponse.MutationChunk\022\014\n\004done\030\010" + + " \001(\010\022\r\n\005token\030\t \001(\t\022;\n\027estimated_low_wat" + + "ermark\030\n \001(\0132\032.google.protobuf.Timestamp" + + "\"P\n\004Type\022\024\n\020TYPE_UNSPECIFIED\020\000\022\010\n\004USER\020\001" + + "\022\026\n\022GARBAGE_COLLECTION\020\002\022\020\n\014CONTINUATION" + + "\020\003\032\221\001\n\tHeartbeat\022G\n\022continuation_token\030\001" + + " \001(\0132+.google.bigtable.v2.StreamContinua" + + "tionToken\022;\n\027estimated_low_watermark\030\002 \001" + + "(\0132\032.google.protobuf.Timestamp\032\270\001\n\013Close" + + "Stream\022\"\n\006status\030\001 \001(\0132\022.google.rpc.Stat" + + "us\022H\n\023continuation_tokens\030\002 \003(\0132+.google" + + ".bigtable.v2.StreamContinuationToken\022;\n\016" + + "new_partitions\030\003 \003(\0132#.google.bigtable.v" + + "2.StreamPartitionB\017\n\rstream_record2\327\030\n\010B" + + "igtable\022\233\002\n\010ReadRows\022#.google.bigtable.v" + + "2.ReadRowsRequest\032$.google.bigtable.v2.R" + + "eadRowsResponse\"\301\001\202\323\344\223\002>\"9/v2/{table_nam" + + "e=projects/*/instances/*/tables/*}:readR" + "ows:\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_id0\001\022\255\003\n\021CheckA" - + "ndMutateRow\022,.google.bigtable.v2.CheckAn" - + "dMutateRowRequest\032-.google.bigtable.v2.C" - + "heckAndMutateRowResponse\"\272\002\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_nam" - + "e,row_key,predicate_filter,true_mutation" - + "s,false_mutations\332AQtable_name,row_key,p" - + "redicate_filter,true_mutations,false_mut" - + "ations,app_profile_id\022\356\001\n\013PingAndWarm\022&." - + "google.bigtable.v2.PingAndWarmRequest\032\'." - + "google.bigtable.v2.PingAndWarmResponse\"\215" - + "\001\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\022\335\002\n\022ReadModifyWri" - + "teRow\022-.google.bigtable.v2.ReadModifyWri" - + "teRowRequest\032..google.bigtable.v2.ReadMo" - + "difyWriteRowResponse\"\347\001\202\323\344\223\002H\"C/v2/{tabl" - + "e_name=projects/*/instances/*/tables/*}:" - + "readModifyWriteRow:\001*\212\323\344\223\002N\022:\n\ntable_nam" - + "e\022,{table_name=projects/*/instances/*/ta" - + "bles/*}\022\020\n\016app_profile_id\332A\030table_name,r" - + "ow_key,rules\332A\'table_name,row_key,rules," - + "app_profile_id\022\273\002\n%GenerateInitialChange" - + "StreamPartitions\022@.google.bigtable.v2.Ge" - + "nerateInitialChangeStreamPartitionsReque" - + "st\032A.google.bigtable.v2.GenerateInitialC" - + "hangeStreamPartitionsResponse\"\212\001\202\323\344\223\002[\"V" - + "/v2/{table_name=projects/*/instances/*/t" - + "ables/*}:generateInitialChangeStreamPart" - + "itions:\001*\332A\ntable_name\332A\031table_name,app_" - + "profile_id0\001\022\346\001\n\020ReadChangeStream\022+.goog" - + "le.bigtable.v2.ReadChangeStreamRequest\032," - + ".google.bigtable.v2.ReadChangeStreamResp" - + "onse\"u\202\323\344\223\002F\"A/v2/{table_name=projects/*" - + "/instances/*/tables/*}:readChangeStream:" - + "\001*\332A\ntable_name\332A\031table_name,app_profile" - + "_id0\001\032\333\002\312A\027bigtable.googleapis.com\322A\275\002ht" - + "tps://www.googleapis.com/auth/bigtable.d" - + "ata,https://www.googleapis.com/auth/bigt" - + "able.data.readonly,https://www.googleapi" - + "s.com/auth/cloud-bigtable.data,https://w" - + "ww.googleapis.com/auth/cloud-bigtable.da" - + "ta.readonly,https://www.googleapis.com/a" - + "uth/cloud-platform,https://www.googleapi" - + "s.com/auth/cloud-platform.read-onlyB\353\002\n\026" - + "com.google.bigtable.v2B\rBigtableProtoP\001Z" - + ":google.golang.org/genproto/googleapis/b" - + "igtable/v2;bigtable\252\002\030Google.Cloud.Bigta" - + "ble.V2\312\002\030Google\\Cloud\\Bigtable\\V2\352\002\033Goog" - + "le::Cloud::Bigtable::V2\352AP\n%bigtableadmi" - + "n.googleapis.com/Instance\022\'projects/{pro" - + "ject}/instances/{instance}\352A\\\n\"bigtablea" - + "dmin.googleapis.com/Table\0226projects/{pro" - + "ject}/instances/{instance}/tables/{table" - + "}b\006proto3" + + "profile_id\332A\ntable_name\332A\031table_name,app" + + "_profile_id0\001\022\254\002\n\rSampleRowKeys\022(.google" + + ".bigtable.v2.SampleRowKeysRequest\032).goog" + + "le.bigtable.v2.SampleRowKeysResponse\"\303\001\202" + + "\323\344\223\002@\022>/v2/{table_name=projects/*/instan" + + "ces/*/tables/*}:sampleRowKeys\212\323\344\223\002N\022:\n\nt" + + "able_name\022,{table_name=projects/*/instan" + + "ces/*/tables/*}\022\020\n\016app_profile_id\332A\ntabl" + + "e_name\332A\031table_name,app_profile_id0\001\022\301\002\n" + + "\tMutateRow\022$.google.bigtable.v2.MutateRo" + + "wRequest\032%.google.bigtable.v2.MutateRowR" + + "esponse\"\346\001\202\323\344\223\002?\":/v2/{table_name=projec" + + "ts/*/instances/*/tables/*}:mutateRow:\001*\212" + + "\323\344\223\002N\022:\n\ntable_name\022,{table_name=project" + + "s/*/instances/*/tables/*}\022\020\n\016app_profile" + + "_id\332A\034table_name,row_key,mutations\332A+tab" + + "le_name,row_key,mutations,app_profile_id" + + "\022\263\002\n\nMutateRows\022%.google.bigtable.v2.Mut" + + "ateRowsRequest\032&.google.bigtable.v2.Muta" + + "teRowsResponse\"\323\001\202\323\344\223\002@\";/v2/{table_name" + + "=projects/*/instances/*/tables/*}:mutate" + + "Rows:\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_id0\001\022\255\003\n\021Check" + + "AndMutateRow\022,.google.bigtable.v2.CheckA" + + "ndMutateRowRequest\032-.google.bigtable.v2." + + "CheckAndMutateRowResponse\"\272\002\202\323\344\223\002G\"B/v2/" + + "{table_name=projects/*/instances/*/table" + + "s/*}:checkAndMutateRow:\001*\212\323\344\223\002N\022:\n\ntable" + + "_name\022,{table_name=projects/*/instances/" + + "*/tables/*}\022\020\n\016app_profile_id\332ABtable_na" + + "me,row_key,predicate_filter,true_mutatio" + + "ns,false_mutations\332AQtable_name,row_key," + + "predicate_filter,true_mutations,false_mu" + + "tations,app_profile_id\022\356\001\n\013PingAndWarm\022&" + + ".google.bigtable.v2.PingAndWarmRequest\032\'" + + ".google.bigtable.v2.PingAndWarmResponse\"" + + "\215\001\202\323\344\223\002+\"&/v2/{name=projects/*/instances" + + "/*}:ping:\001*\212\323\344\223\0029\022%\n\004name\022\035{name=project" + + "s/*/instances/*}\022\020\n\016app_profile_id\332A\004nam" + + "e\332A\023name,app_profile_id\022\335\002\n\022ReadModifyWr" + + "iteRow\022-.google.bigtable.v2.ReadModifyWr" + + "iteRowRequest\032..google.bigtable.v2.ReadM" + + "odifyWriteRowResponse\"\347\001\202\323\344\223\002H\"C/v2/{tab" + + "le_name=projects/*/instances/*/tables/*}" + + ":readModifyWriteRow:\001*\212\323\344\223\002N\022:\n\ntable_na" + + "me\022,{table_name=projects/*/instances/*/t" + + "ables/*}\022\020\n\016app_profile_id\332A\030table_name," + + "row_key,rules\332A\'table_name,row_key,rules" + + ",app_profile_id\022\273\002\n%GenerateInitialChang" + + "eStreamPartitions\022@.google.bigtable.v2.G" + + "enerateInitialChangeStreamPartitionsRequ" + + "est\032A.google.bigtable.v2.GenerateInitial" + + "ChangeStreamPartitionsResponse\"\212\001\202\323\344\223\002[\"" + + "V/v2/{table_name=projects/*/instances/*/" + + "tables/*}:generateInitialChangeStreamPar" + + "titions:\001*\332A\ntable_name\332A\031table_name,app" + + "_profile_id0\001\022\346\001\n\020ReadChangeStream\022+.goo" + + "gle.bigtable.v2.ReadChangeStreamRequest\032" + + ",.google.bigtable.v2.ReadChangeStreamRes" + + "ponse\"u\202\323\344\223\002F\"A/v2/{table_name=projects/" + + "*/instances/*/tables/*}:readChangeStream" + + ":\001*\332A\ntable_name\332A\031table_name,app_profil" + + "e_id0\001\032\333\002\312A\027bigtable.googleapis.com\322A\275\002h" + + "ttps://www.googleapis.com/auth/bigtable." + + "data,https://www.googleapis.com/auth/big" + + "table.data.readonly,https://www.googleap" + + "is.com/auth/cloud-bigtable.data,https://" + + "www.googleapis.com/auth/cloud-bigtable.d" + + "ata.readonly,https://www.googleapis.com/" + + "auth/cloud-platform,https://www.googleap" + + "is.com/auth/cloud-platform.read-onlyB\353\002\n" + + "\026com.google.bigtable.v2B\rBigtableProtoP\001" + + "Z:google.golang.org/genproto/googleapis/" + + "bigtable/v2;bigtable\252\002\030Google.Cloud.Bigt" + + "able.V2\312\002\030Google\\Cloud\\Bigtable\\V2\352\002\033Goo" + + "gle::Cloud::Bigtable::V2\352AP\n%bigtableadm" + + "in.googleapis.com/Instance\022\'projects/{pr" + + "oject}/instances/{instance}\352A\\\n\"bigtable" + + "admin.googleapis.com/Table\0226projects/{pr" + + "oject}/instances/{instance}/tables/{tabl" + + "e}b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( @@ -450,7 +458,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_MutateRowsResponse_descriptor, new java.lang.String[] { - "Entries", + "Entries", "RateLimitInfo", "RateLimitInfo", }); internal_static_google_bigtable_v2_MutateRowsResponse_Entry_descriptor = internal_static_google_bigtable_v2_MutateRowsResponse_descriptor.getNestedTypes().get(0); @@ -460,8 +468,16 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { new java.lang.String[] { "Index", "Status", }); - internal_static_google_bigtable_v2_CheckAndMutateRowRequest_descriptor = + internal_static_google_bigtable_v2_RateLimitInfo_descriptor = getDescriptor().getMessageTypes().get(8); + internal_static_google_bigtable_v2_RateLimitInfo_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_bigtable_v2_RateLimitInfo_descriptor, + new java.lang.String[] { + "Period", "Factor", + }); + internal_static_google_bigtable_v2_CheckAndMutateRowRequest_descriptor = + getDescriptor().getMessageTypes().get(9); internal_static_google_bigtable_v2_CheckAndMutateRowRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_CheckAndMutateRowRequest_descriptor, @@ -474,7 +490,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "FalseMutations", }); internal_static_google_bigtable_v2_CheckAndMutateRowResponse_descriptor = - getDescriptor().getMessageTypes().get(9); + getDescriptor().getMessageTypes().get(10); internal_static_google_bigtable_v2_CheckAndMutateRowResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_CheckAndMutateRowResponse_descriptor, @@ -482,7 +498,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "PredicateMatched", }); internal_static_google_bigtable_v2_PingAndWarmRequest_descriptor = - getDescriptor().getMessageTypes().get(10); + getDescriptor().getMessageTypes().get(11); internal_static_google_bigtable_v2_PingAndWarmRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_PingAndWarmRequest_descriptor, @@ -490,13 +506,13 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Name", "AppProfileId", }); internal_static_google_bigtable_v2_PingAndWarmResponse_descriptor = - getDescriptor().getMessageTypes().get(11); + getDescriptor().getMessageTypes().get(12); internal_static_google_bigtable_v2_PingAndWarmResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_PingAndWarmResponse_descriptor, new java.lang.String[] {}); internal_static_google_bigtable_v2_ReadModifyWriteRowRequest_descriptor = - getDescriptor().getMessageTypes().get(12); + getDescriptor().getMessageTypes().get(13); internal_static_google_bigtable_v2_ReadModifyWriteRowRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_ReadModifyWriteRowRequest_descriptor, @@ -504,7 +520,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "TableName", "AppProfileId", "RowKey", "Rules", }); internal_static_google_bigtable_v2_ReadModifyWriteRowResponse_descriptor = - getDescriptor().getMessageTypes().get(13); + getDescriptor().getMessageTypes().get(14); internal_static_google_bigtable_v2_ReadModifyWriteRowResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_ReadModifyWriteRowResponse_descriptor, @@ -512,7 +528,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Row", }); internal_static_google_bigtable_v2_GenerateInitialChangeStreamPartitionsRequest_descriptor = - getDescriptor().getMessageTypes().get(14); + getDescriptor().getMessageTypes().get(15); internal_static_google_bigtable_v2_GenerateInitialChangeStreamPartitionsRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_GenerateInitialChangeStreamPartitionsRequest_descriptor, @@ -520,7 +536,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "TableName", "AppProfileId", }); internal_static_google_bigtable_v2_GenerateInitialChangeStreamPartitionsResponse_descriptor = - getDescriptor().getMessageTypes().get(15); + getDescriptor().getMessageTypes().get(16); internal_static_google_bigtable_v2_GenerateInitialChangeStreamPartitionsResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_GenerateInitialChangeStreamPartitionsResponse_descriptor, @@ -528,7 +544,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "Partition", }); internal_static_google_bigtable_v2_ReadChangeStreamRequest_descriptor = - getDescriptor().getMessageTypes().get(16); + getDescriptor().getMessageTypes().get(17); internal_static_google_bigtable_v2_ReadChangeStreamRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_ReadChangeStreamRequest_descriptor, @@ -543,7 +559,7 @@ public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { "StartFrom", }); internal_static_google_bigtable_v2_ReadChangeStreamResponse_descriptor = - getDescriptor().getMessageTypes().get(17); + getDescriptor().getMessageTypes().get(18); internal_static_google_bigtable_v2_ReadChangeStreamResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( internal_static_google_bigtable_v2_ReadChangeStreamResponse_descriptor, diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlags.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlags.java new file mode 100644 index 000000000000..7eeab49c968f --- /dev/null +++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlags.java @@ -0,0 +1,553 @@ +/* + * Copyright 2020 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 + * + * https://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. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/bigtable/v2/feature_flags.proto + +package com.google.bigtable.v2; + +/** + * + * + *
+ * Feature flags supported by a client.
+ * This is intended to be sent as part of request metadata to assure the server
+ * that certain behaviors are safe to enable. This proto is meant to be
+ * serialized and websafe-base64 encoded under the `bigtable-features` metadata
+ * key. The value will remain constant for the lifetime of a client and due to
+ * HTTP2's HPACK compression, the request overhead will be tiny.
+ * This is an internal implementation detail and should not be used by endusers
+ * directly.
+ * 
+ * + * Protobuf type {@code google.bigtable.v2.FeatureFlags} + */ +public final class FeatureFlags extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.bigtable.v2.FeatureFlags) + FeatureFlagsOrBuilder { + private static final long serialVersionUID = 0L; + // Use FeatureFlags.newBuilder() to construct. + private FeatureFlags(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private FeatureFlags() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new FeatureFlags(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.bigtable.v2.FeatureFlagsProto + .internal_static_google_bigtable_v2_FeatureFlags_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.bigtable.v2.FeatureFlagsProto + .internal_static_google_bigtable_v2_FeatureFlags_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.bigtable.v2.FeatureFlags.class, + com.google.bigtable.v2.FeatureFlags.Builder.class); + } + + public static final int MUTATE_ROWS_RATE_LIMIT_FIELD_NUMBER = 3; + private boolean mutateRowsRateLimit_ = false; + /** + * + * + *
+   * Notify the server that the client enables batch write flow control by
+   * requesting RateLimitInfo from MutateRowsResponse.
+   * 
+ * + * bool mutate_rows_rate_limit = 3; + * + * @return The mutateRowsRateLimit. + */ + @java.lang.Override + public boolean getMutateRowsRateLimit() { + return mutateRowsRateLimit_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (mutateRowsRateLimit_ != false) { + output.writeBool(3, mutateRowsRateLimit_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (mutateRowsRateLimit_ != false) { + size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, mutateRowsRateLimit_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.bigtable.v2.FeatureFlags)) { + return super.equals(obj); + } + com.google.bigtable.v2.FeatureFlags other = (com.google.bigtable.v2.FeatureFlags) obj; + + if (getMutateRowsRateLimit() != other.getMutateRowsRateLimit()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MUTATE_ROWS_RATE_LIMIT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getMutateRowsRateLimit()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.bigtable.v2.FeatureFlags parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.v2.FeatureFlags parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.bigtable.v2.FeatureFlags parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.v2.FeatureFlags parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.bigtable.v2.FeatureFlags parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.v2.FeatureFlags parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.bigtable.v2.FeatureFlags parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.bigtable.v2.FeatureFlags parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.bigtable.v2.FeatureFlags parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.bigtable.v2.FeatureFlags parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.bigtable.v2.FeatureFlags parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.bigtable.v2.FeatureFlags parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.bigtable.v2.FeatureFlags prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * + * + *
+   * Feature flags supported by a client.
+   * This is intended to be sent as part of request metadata to assure the server
+   * that certain behaviors are safe to enable. This proto is meant to be
+   * serialized and websafe-base64 encoded under the `bigtable-features` metadata
+   * key. The value will remain constant for the lifetime of a client and due to
+   * HTTP2's HPACK compression, the request overhead will be tiny.
+   * This is an internal implementation detail and should not be used by endusers
+   * directly.
+   * 
+ * + * Protobuf type {@code google.bigtable.v2.FeatureFlags} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.bigtable.v2.FeatureFlags) + com.google.bigtable.v2.FeatureFlagsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.bigtable.v2.FeatureFlagsProto + .internal_static_google_bigtable_v2_FeatureFlags_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.bigtable.v2.FeatureFlagsProto + .internal_static_google_bigtable_v2_FeatureFlags_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.bigtable.v2.FeatureFlags.class, + com.google.bigtable.v2.FeatureFlags.Builder.class); + } + + // Construct using com.google.bigtable.v2.FeatureFlags.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + mutateRowsRateLimit_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.bigtable.v2.FeatureFlagsProto + .internal_static_google_bigtable_v2_FeatureFlags_descriptor; + } + + @java.lang.Override + public com.google.bigtable.v2.FeatureFlags getDefaultInstanceForType() { + return com.google.bigtable.v2.FeatureFlags.getDefaultInstance(); + } + + @java.lang.Override + public com.google.bigtable.v2.FeatureFlags build() { + com.google.bigtable.v2.FeatureFlags result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.bigtable.v2.FeatureFlags buildPartial() { + com.google.bigtable.v2.FeatureFlags result = new com.google.bigtable.v2.FeatureFlags(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.bigtable.v2.FeatureFlags result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.mutateRowsRateLimit_ = mutateRowsRateLimit_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.bigtable.v2.FeatureFlags) { + return mergeFrom((com.google.bigtable.v2.FeatureFlags) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.bigtable.v2.FeatureFlags other) { + if (other == com.google.bigtable.v2.FeatureFlags.getDefaultInstance()) return this; + if (other.getMutateRowsRateLimit() != false) { + setMutateRowsRateLimit(other.getMutateRowsRateLimit()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 24: + { + mutateRowsRateLimit_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 24 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private boolean mutateRowsRateLimit_; + /** + * + * + *
+     * Notify the server that the client enables batch write flow control by
+     * requesting RateLimitInfo from MutateRowsResponse.
+     * 
+ * + * bool mutate_rows_rate_limit = 3; + * + * @return The mutateRowsRateLimit. + */ + @java.lang.Override + public boolean getMutateRowsRateLimit() { + return mutateRowsRateLimit_; + } + /** + * + * + *
+     * Notify the server that the client enables batch write flow control by
+     * requesting RateLimitInfo from MutateRowsResponse.
+     * 
+ * + * bool mutate_rows_rate_limit = 3; + * + * @param value The mutateRowsRateLimit to set. + * @return This builder for chaining. + */ + public Builder setMutateRowsRateLimit(boolean value) { + + mutateRowsRateLimit_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * + * + *
+     * Notify the server that the client enables batch write flow control by
+     * requesting RateLimitInfo from MutateRowsResponse.
+     * 
+ * + * bool mutate_rows_rate_limit = 3; + * + * @return This builder for chaining. + */ + public Builder clearMutateRowsRateLimit() { + bitField0_ = (bitField0_ & ~0x00000001); + mutateRowsRateLimit_ = false; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:google.bigtable.v2.FeatureFlags) + } + + // @@protoc_insertion_point(class_scope:google.bigtable.v2.FeatureFlags) + private static final com.google.bigtable.v2.FeatureFlags DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.bigtable.v2.FeatureFlags(); + } + + public static com.google.bigtable.v2.FeatureFlags getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public FeatureFlags parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.bigtable.v2.FeatureFlags getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsOrBuilder.java new file mode 100644 index 000000000000..d4c7af3c724a --- /dev/null +++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsOrBuilder.java @@ -0,0 +1,39 @@ +/* + * Copyright 2020 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 + * + * https://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. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/bigtable/v2/feature_flags.proto + +package com.google.bigtable.v2; + +public interface FeatureFlagsOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.bigtable.v2.FeatureFlags) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Notify the server that the client enables batch write flow control by
+   * requesting RateLimitInfo from MutateRowsResponse.
+   * 
+ * + * bool mutate_rows_rate_limit = 3; + * + * @return The mutateRowsRateLimit. + */ + boolean getMutateRowsRateLimit(); +} diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsProto.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsProto.java new file mode 100644 index 000000000000..3bbdf09eca30 --- /dev/null +++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/FeatureFlagsProto.java @@ -0,0 +1,66 @@ +/* + * Copyright 2020 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 + * + * https://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. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/bigtable/v2/feature_flags.proto + +package com.google.bigtable.v2; + +public final class FeatureFlagsProto { + private FeatureFlagsProto() {} + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {} + + public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry); + } + + static final com.google.protobuf.Descriptors.Descriptor + internal_static_google_bigtable_v2_FeatureFlags_descriptor; + static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_google_bigtable_v2_FeatureFlags_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() { + return descriptor; + } + + private static com.google.protobuf.Descriptors.FileDescriptor descriptor; + + static { + java.lang.String[] descriptorData = { + "\n&google/bigtable/v2/feature_flags.proto" + + "\022\022google.bigtable.v2\".\n\014FeatureFlags\022\036\n\026" + + "mutate_rows_rate_limit\030\003 \001(\010B\275\001\n\026com.goo" + + "gle.bigtable.v2B\021FeatureFlagsProtoP\001Z:go" + + "ogle.golang.org/genproto/googleapis/bigt" + + "able/v2;bigtable\252\002\030Google.Cloud.Bigtable" + + ".V2\312\002\030Google\\Cloud\\Bigtable\\V2\352\002\033Google:" + + ":Cloud::Bigtable::V2b\006proto3" + }; + descriptor = + com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom( + descriptorData, new com.google.protobuf.Descriptors.FileDescriptor[] {}); + internal_static_google_bigtable_v2_FeatureFlags_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_google_bigtable_v2_FeatureFlags_fieldAccessorTable = + new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_google_bigtable_v2_FeatureFlags_descriptor, + new java.lang.String[] { + "MutateRowsRateLimit", + }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponse.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponse.java index 24803ec45446..f9e3dde3f1f3 100644 --- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponse.java +++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponse.java @@ -947,6 +947,7 @@ public com.google.bigtable.v2.MutateRowsResponse.Entry getDefaultInstanceForType } } + private int bitField0_; public static final int ENTRIES_FIELD_NUMBER = 1; @SuppressWarnings("serial") @@ -1018,6 +1019,62 @@ public com.google.bigtable.v2.MutateRowsResponse.EntryOrBuilder getEntriesOrBuil return entries_.get(index); } + public static final int RATE_LIMIT_INFO_FIELD_NUMBER = 3; + private com.google.bigtable.v2.RateLimitInfo rateLimitInfo_; + /** + * + * + *
+   * Information about how client should limit the rate (QPS). Primirily used by
+   * supported official Cloud Bigtable clients. If unset, the rate limit info is
+   * not provided by the server.
+   * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + * + * @return Whether the rateLimitInfo field is set. + */ + @java.lang.Override + public boolean hasRateLimitInfo() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * + * + *
+   * Information about how client should limit the rate (QPS). Primirily used by
+   * supported official Cloud Bigtable clients. If unset, the rate limit info is
+   * not provided by the server.
+   * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + * + * @return The rateLimitInfo. + */ + @java.lang.Override + public com.google.bigtable.v2.RateLimitInfo getRateLimitInfo() { + return rateLimitInfo_ == null + ? com.google.bigtable.v2.RateLimitInfo.getDefaultInstance() + : rateLimitInfo_; + } + /** + * + * + *
+   * Information about how client should limit the rate (QPS). Primirily used by
+   * supported official Cloud Bigtable clients. If unset, the rate limit info is
+   * not provided by the server.
+   * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + */ + @java.lang.Override + public com.google.bigtable.v2.RateLimitInfoOrBuilder getRateLimitInfoOrBuilder() { + return rateLimitInfo_ == null + ? com.google.bigtable.v2.RateLimitInfo.getDefaultInstance() + : rateLimitInfo_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override @@ -1035,6 +1092,9 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io for (int i = 0; i < entries_.size(); i++) { output.writeMessage(1, entries_.get(i)); } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(3, getRateLimitInfo()); + } getUnknownFields().writeTo(output); } @@ -1047,6 +1107,9 @@ public int getSerializedSize() { for (int i = 0; i < entries_.size(); i++) { size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, entries_.get(i)); } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getRateLimitInfo()); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -1064,6 +1127,10 @@ public boolean equals(final java.lang.Object obj) { (com.google.bigtable.v2.MutateRowsResponse) obj; if (!getEntriesList().equals(other.getEntriesList())) return false; + if (hasRateLimitInfo() != other.hasRateLimitInfo()) return false; + if (hasRateLimitInfo()) { + if (!getRateLimitInfo().equals(other.getRateLimitInfo())) return false; + } if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -1079,6 +1146,10 @@ public int hashCode() { hash = (37 * hash) + ENTRIES_FIELD_NUMBER; hash = (53 * hash) + getEntriesList().hashCode(); } + if (hasRateLimitInfo()) { + hash = (37 * hash) + RATE_LIMIT_INFO_FIELD_NUMBER; + hash = (53 * hash) + getRateLimitInfo().hashCode(); + } hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -1208,10 +1279,20 @@ public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { } // Construct using com.google.bigtable.v2.MutateRowsResponse.newBuilder() - private Builder() {} + private Builder() { + maybeForceBuilderInitialization(); + } private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { super(parent); + maybeForceBuilderInitialization(); + } + + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) { + getEntriesFieldBuilder(); + getRateLimitInfoFieldBuilder(); + } } @java.lang.Override @@ -1225,6 +1306,11 @@ public Builder clear() { entriesBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000001); + rateLimitInfo_ = null; + if (rateLimitInfoBuilder_ != null) { + rateLimitInfoBuilder_.dispose(); + rateLimitInfoBuilder_ = null; + } return this; } @@ -1274,6 +1360,13 @@ private void buildPartialRepeatedFields(com.google.bigtable.v2.MutateRowsRespons private void buildPartial0(com.google.bigtable.v2.MutateRowsResponse result) { int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.rateLimitInfo_ = + rateLimitInfoBuilder_ == null ? rateLimitInfo_ : rateLimitInfoBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + result.bitField0_ |= to_bitField0_; } @java.lang.Override @@ -1348,6 +1441,9 @@ public Builder mergeFrom(com.google.bigtable.v2.MutateRowsResponse other) { } } } + if (other.hasRateLimitInfo()) { + mergeRateLimitInfo(other.getRateLimitInfo()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -1388,6 +1484,12 @@ public Builder mergeFrom( } break; } // case 10 + case 26: + { + input.readMessage(getRateLimitInfoFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 26 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { @@ -1758,6 +1860,207 @@ public com.google.bigtable.v2.MutateRowsResponse.Entry.Builder addEntriesBuilder return entriesBuilder_; } + private com.google.bigtable.v2.RateLimitInfo rateLimitInfo_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.bigtable.v2.RateLimitInfo, + com.google.bigtable.v2.RateLimitInfo.Builder, + com.google.bigtable.v2.RateLimitInfoOrBuilder> + rateLimitInfoBuilder_; + /** + * + * + *
+     * Information about how client should limit the rate (QPS). Primirily used by
+     * supported official Cloud Bigtable clients. If unset, the rate limit info is
+     * not provided by the server.
+     * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + * + * @return Whether the rateLimitInfo field is set. + */ + public boolean hasRateLimitInfo() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * + * + *
+     * Information about how client should limit the rate (QPS). Primirily used by
+     * supported official Cloud Bigtable clients. If unset, the rate limit info is
+     * not provided by the server.
+     * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + * + * @return The rateLimitInfo. + */ + public com.google.bigtable.v2.RateLimitInfo getRateLimitInfo() { + if (rateLimitInfoBuilder_ == null) { + return rateLimitInfo_ == null + ? com.google.bigtable.v2.RateLimitInfo.getDefaultInstance() + : rateLimitInfo_; + } else { + return rateLimitInfoBuilder_.getMessage(); + } + } + /** + * + * + *
+     * Information about how client should limit the rate (QPS). Primirily used by
+     * supported official Cloud Bigtable clients. If unset, the rate limit info is
+     * not provided by the server.
+     * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + */ + public Builder setRateLimitInfo(com.google.bigtable.v2.RateLimitInfo value) { + if (rateLimitInfoBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + rateLimitInfo_ = value; + } else { + rateLimitInfoBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * + * + *
+     * Information about how client should limit the rate (QPS). Primirily used by
+     * supported official Cloud Bigtable clients. If unset, the rate limit info is
+     * not provided by the server.
+     * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + */ + public Builder setRateLimitInfo(com.google.bigtable.v2.RateLimitInfo.Builder builderForValue) { + if (rateLimitInfoBuilder_ == null) { + rateLimitInfo_ = builderForValue.build(); + } else { + rateLimitInfoBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * + * + *
+     * Information about how client should limit the rate (QPS). Primirily used by
+     * supported official Cloud Bigtable clients. If unset, the rate limit info is
+     * not provided by the server.
+     * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + */ + public Builder mergeRateLimitInfo(com.google.bigtable.v2.RateLimitInfo value) { + if (rateLimitInfoBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) + && rateLimitInfo_ != null + && rateLimitInfo_ != com.google.bigtable.v2.RateLimitInfo.getDefaultInstance()) { + getRateLimitInfoBuilder().mergeFrom(value); + } else { + rateLimitInfo_ = value; + } + } else { + rateLimitInfoBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * + * + *
+     * Information about how client should limit the rate (QPS). Primirily used by
+     * supported official Cloud Bigtable clients. If unset, the rate limit info is
+     * not provided by the server.
+     * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + */ + public Builder clearRateLimitInfo() { + bitField0_ = (bitField0_ & ~0x00000002); + rateLimitInfo_ = null; + if (rateLimitInfoBuilder_ != null) { + rateLimitInfoBuilder_.dispose(); + rateLimitInfoBuilder_ = null; + } + onChanged(); + return this; + } + /** + * + * + *
+     * Information about how client should limit the rate (QPS). Primirily used by
+     * supported official Cloud Bigtable clients. If unset, the rate limit info is
+     * not provided by the server.
+     * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + */ + public com.google.bigtable.v2.RateLimitInfo.Builder getRateLimitInfoBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getRateLimitInfoFieldBuilder().getBuilder(); + } + /** + * + * + *
+     * Information about how client should limit the rate (QPS). Primirily used by
+     * supported official Cloud Bigtable clients. If unset, the rate limit info is
+     * not provided by the server.
+     * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + */ + public com.google.bigtable.v2.RateLimitInfoOrBuilder getRateLimitInfoOrBuilder() { + if (rateLimitInfoBuilder_ != null) { + return rateLimitInfoBuilder_.getMessageOrBuilder(); + } else { + return rateLimitInfo_ == null + ? com.google.bigtable.v2.RateLimitInfo.getDefaultInstance() + : rateLimitInfo_; + } + } + /** + * + * + *
+     * Information about how client should limit the rate (QPS). Primirily used by
+     * supported official Cloud Bigtable clients. If unset, the rate limit info is
+     * not provided by the server.
+     * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.bigtable.v2.RateLimitInfo, + com.google.bigtable.v2.RateLimitInfo.Builder, + com.google.bigtable.v2.RateLimitInfoOrBuilder> + getRateLimitInfoFieldBuilder() { + if (rateLimitInfoBuilder_ == null) { + rateLimitInfoBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.bigtable.v2.RateLimitInfo, + com.google.bigtable.v2.RateLimitInfo.Builder, + com.google.bigtable.v2.RateLimitInfoOrBuilder>( + getRateLimitInfo(), getParentForChildren(), isClean()); + rateLimitInfo_ = null; + } + return rateLimitInfoBuilder_; + } + @java.lang.Override public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { return super.setUnknownFields(unknownFields); diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponseOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponseOrBuilder.java index ca4b764ba736..8afab73c07a6 100644 --- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponseOrBuilder.java +++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/MutateRowsResponseOrBuilder.java @@ -74,4 +74,45 @@ public interface MutateRowsResponseOrBuilder * repeated .google.bigtable.v2.MutateRowsResponse.Entry entries = 1; */ com.google.bigtable.v2.MutateRowsResponse.EntryOrBuilder getEntriesOrBuilder(int index); + + /** + * + * + *
+   * Information about how client should limit the rate (QPS). Primirily used by
+   * supported official Cloud Bigtable clients. If unset, the rate limit info is
+   * not provided by the server.
+   * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + * + * @return Whether the rateLimitInfo field is set. + */ + boolean hasRateLimitInfo(); + /** + * + * + *
+   * Information about how client should limit the rate (QPS). Primirily used by
+   * supported official Cloud Bigtable clients. If unset, the rate limit info is
+   * not provided by the server.
+   * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + * + * @return The rateLimitInfo. + */ + com.google.bigtable.v2.RateLimitInfo getRateLimitInfo(); + /** + * + * + *
+   * Information about how client should limit the rate (QPS). Primirily used by
+   * supported official Cloud Bigtable clients. If unset, the rate limit info is
+   * not provided by the server.
+   * 
+ * + * optional .google.bigtable.v2.RateLimitInfo rate_limit_info = 3; + */ + com.google.bigtable.v2.RateLimitInfoOrBuilder getRateLimitInfoOrBuilder(); } diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfo.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfo.java new file mode 100644 index 000000000000..f3826c4adf1a --- /dev/null +++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfo.java @@ -0,0 +1,882 @@ +/* + * Copyright 2020 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 + * + * https://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. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/bigtable/v2/bigtable.proto + +package com.google.bigtable.v2; + +/** + * + * + *
+ * Information about how client should adjust the load to Bigtable.
+ * 
+ * + * Protobuf type {@code google.bigtable.v2.RateLimitInfo} + */ +public final class RateLimitInfo extends com.google.protobuf.GeneratedMessageV3 + implements + // @@protoc_insertion_point(message_implements:google.bigtable.v2.RateLimitInfo) + RateLimitInfoOrBuilder { + private static final long serialVersionUID = 0L; + // Use RateLimitInfo.newBuilder() to construct. + private RateLimitInfo(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + + private RateLimitInfo() {} + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance(UnusedPrivateParameter unused) { + return new RateLimitInfo(); + } + + @java.lang.Override + public final com.google.protobuf.UnknownFieldSet getUnknownFields() { + return this.unknownFields; + } + + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.bigtable.v2.BigtableProto + .internal_static_google_bigtable_v2_RateLimitInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.bigtable.v2.BigtableProto + .internal_static_google_bigtable_v2_RateLimitInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.bigtable.v2.RateLimitInfo.class, + com.google.bigtable.v2.RateLimitInfo.Builder.class); + } + + public static final int PERIOD_FIELD_NUMBER = 1; + private com.google.protobuf.Duration period_; + /** + * + * + *
+   * Time that clients should wait before adjusting the target rate again.
+   * If clients adjust rate too frequently, the impact of the previous
+   * adjustment may not have been taken into account and may
+   * over-throttle or under-throttle. If clients adjust rate too slowly, they
+   * will not be responsive to load changes on server side, and may
+   * over-throttle or under-throttle.
+   * 
+ * + * .google.protobuf.Duration period = 1; + * + * @return Whether the period field is set. + */ + @java.lang.Override + public boolean hasPeriod() { + return period_ != null; + } + /** + * + * + *
+   * Time that clients should wait before adjusting the target rate again.
+   * If clients adjust rate too frequently, the impact of the previous
+   * adjustment may not have been taken into account and may
+   * over-throttle or under-throttle. If clients adjust rate too slowly, they
+   * will not be responsive to load changes on server side, and may
+   * over-throttle or under-throttle.
+   * 
+ * + * .google.protobuf.Duration period = 1; + * + * @return The period. + */ + @java.lang.Override + public com.google.protobuf.Duration getPeriod() { + return period_ == null ? com.google.protobuf.Duration.getDefaultInstance() : period_; + } + /** + * + * + *
+   * Time that clients should wait before adjusting the target rate again.
+   * If clients adjust rate too frequently, the impact of the previous
+   * adjustment may not have been taken into account and may
+   * over-throttle or under-throttle. If clients adjust rate too slowly, they
+   * will not be responsive to load changes on server side, and may
+   * over-throttle or under-throttle.
+   * 
+ * + * .google.protobuf.Duration period = 1; + */ + @java.lang.Override + public com.google.protobuf.DurationOrBuilder getPeriodOrBuilder() { + return period_ == null ? com.google.protobuf.Duration.getDefaultInstance() : period_; + } + + public static final int FACTOR_FIELD_NUMBER = 2; + private double factor_ = 0D; + /** + * + * + *
+   * If it has been at least one `period` since the last load adjustment, the
+   * client should multiply the current load by this value to get the new target
+   * load. For example, if the current load is 100 and `factor` is 0.8, the new
+   * target load should be 80. After adjusting, the client should ignore
+   * `factor` until another `period` has passed.
+   * The client can measure its load using any unit that's comparable over time
+   * For example, QPS can be used as long as each request involves a similar
+   * amount of work.
+   * 
+ * + * double factor = 2; + * + * @return The factor. + */ + @java.lang.Override + public double getFactor() { + return factor_; + } + + private byte memoizedIsInitialized = -1; + + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { + if (period_ != null) { + output.writeMessage(1, getPeriod()); + } + if (java.lang.Double.doubleToRawLongBits(factor_) != 0) { + output.writeDouble(2, factor_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (period_ != null) { + size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPeriod()); + } + if (java.lang.Double.doubleToRawLongBits(factor_) != 0) { + size += com.google.protobuf.CodedOutputStream.computeDoubleSize(2, factor_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.google.bigtable.v2.RateLimitInfo)) { + return super.equals(obj); + } + com.google.bigtable.v2.RateLimitInfo other = (com.google.bigtable.v2.RateLimitInfo) obj; + + if (hasPeriod() != other.hasPeriod()) return false; + if (hasPeriod()) { + if (!getPeriod().equals(other.getPeriod())) return false; + } + if (java.lang.Double.doubleToLongBits(getFactor()) + != java.lang.Double.doubleToLongBits(other.getFactor())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPeriod()) { + hash = (37 * hash) + PERIOD_FIELD_NUMBER; + hash = (53 * hash) + getPeriod().hashCode(); + } + hash = (37 * hash) + FACTOR_FIELD_NUMBER; + hash = + (53 * hash) + + com.google.protobuf.Internal.hashLong(java.lang.Double.doubleToLongBits(getFactor())); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.google.bigtable.v2.RateLimitInfo parseFrom(java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.v2.RateLimitInfo parseFrom( + java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.bigtable.v2.RateLimitInfo parseFrom(com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.v2.RateLimitInfo parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.bigtable.v2.RateLimitInfo parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + + public static com.google.bigtable.v2.RateLimitInfo parseFrom( + byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + + public static com.google.bigtable.v2.RateLimitInfo parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.bigtable.v2.RateLimitInfo parseFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.bigtable.v2.RateLimitInfo parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input); + } + + public static com.google.bigtable.v2.RateLimitInfo parseDelimitedFrom( + java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException( + PARSER, input, extensionRegistry); + } + + public static com.google.bigtable.v2.RateLimitInfo parseFrom( + com.google.protobuf.CodedInputStream input) throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input); + } + + public static com.google.bigtable.v2.RateLimitInfo parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3.parseWithIOException( + PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { + return newBuilder(); + } + + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + + public static Builder newBuilder(com.google.bigtable.v2.RateLimitInfo prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * + * + *
+   * Information about how client should adjust the load to Bigtable.
+   * 
+ * + * Protobuf type {@code google.bigtable.v2.RateLimitInfo} + */ + public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder + implements + // @@protoc_insertion_point(builder_implements:google.bigtable.v2.RateLimitInfo) + com.google.bigtable.v2.RateLimitInfoOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() { + return com.google.bigtable.v2.BigtableProto + .internal_static_google_bigtable_v2_RateLimitInfo_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.google.bigtable.v2.BigtableProto + .internal_static_google_bigtable_v2_RateLimitInfo_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.google.bigtable.v2.RateLimitInfo.class, + com.google.bigtable.v2.RateLimitInfo.Builder.class); + } + + // Construct using com.google.bigtable.v2.RateLimitInfo.newBuilder() + private Builder() {} + + private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + } + + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + period_ = null; + if (periodBuilder_ != null) { + periodBuilder_.dispose(); + periodBuilder_ = null; + } + factor_ = 0D; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() { + return com.google.bigtable.v2.BigtableProto + .internal_static_google_bigtable_v2_RateLimitInfo_descriptor; + } + + @java.lang.Override + public com.google.bigtable.v2.RateLimitInfo getDefaultInstanceForType() { + return com.google.bigtable.v2.RateLimitInfo.getDefaultInstance(); + } + + @java.lang.Override + public com.google.bigtable.v2.RateLimitInfo build() { + com.google.bigtable.v2.RateLimitInfo result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.google.bigtable.v2.RateLimitInfo buildPartial() { + com.google.bigtable.v2.RateLimitInfo result = new com.google.bigtable.v2.RateLimitInfo(this); + if (bitField0_ != 0) { + buildPartial0(result); + } + onBuilt(); + return result; + } + + private void buildPartial0(com.google.bigtable.v2.RateLimitInfo result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.period_ = periodBuilder_ == null ? period_ : periodBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.factor_ = factor_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.setField(field, value); + } + + @java.lang.Override + public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + + @java.lang.Override + public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) { + return super.addRepeatedField(field, value); + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.google.bigtable.v2.RateLimitInfo) { + return mergeFrom((com.google.bigtable.v2.RateLimitInfo) other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.google.bigtable.v2.RateLimitInfo other) { + if (other == com.google.bigtable.v2.RateLimitInfo.getDefaultInstance()) return this; + if (other.hasPeriod()) { + mergePeriod(other.getPeriod()); + } + if (other.getFactor() != 0D) { + setFactor(other.getFactor()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: + { + input.readMessage(getPeriodFieldBuilder().getBuilder(), extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 17: + { + factor_ = input.readDouble(); + bitField0_ |= 0x00000002; + break; + } // case 17 + default: + { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + private int bitField0_; + + private com.google.protobuf.Duration period_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder> + periodBuilder_; + /** + * + * + *
+     * Time that clients should wait before adjusting the target rate again.
+     * If clients adjust rate too frequently, the impact of the previous
+     * adjustment may not have been taken into account and may
+     * over-throttle or under-throttle. If clients adjust rate too slowly, they
+     * will not be responsive to load changes on server side, and may
+     * over-throttle or under-throttle.
+     * 
+ * + * .google.protobuf.Duration period = 1; + * + * @return Whether the period field is set. + */ + public boolean hasPeriod() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * + * + *
+     * Time that clients should wait before adjusting the target rate again.
+     * If clients adjust rate too frequently, the impact of the previous
+     * adjustment may not have been taken into account and may
+     * over-throttle or under-throttle. If clients adjust rate too slowly, they
+     * will not be responsive to load changes on server side, and may
+     * over-throttle or under-throttle.
+     * 
+ * + * .google.protobuf.Duration period = 1; + * + * @return The period. + */ + public com.google.protobuf.Duration getPeriod() { + if (periodBuilder_ == null) { + return period_ == null ? com.google.protobuf.Duration.getDefaultInstance() : period_; + } else { + return periodBuilder_.getMessage(); + } + } + /** + * + * + *
+     * Time that clients should wait before adjusting the target rate again.
+     * If clients adjust rate too frequently, the impact of the previous
+     * adjustment may not have been taken into account and may
+     * over-throttle or under-throttle. If clients adjust rate too slowly, they
+     * will not be responsive to load changes on server side, and may
+     * over-throttle or under-throttle.
+     * 
+ * + * .google.protobuf.Duration period = 1; + */ + public Builder setPeriod(com.google.protobuf.Duration value) { + if (periodBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + period_ = value; + } else { + periodBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * + * + *
+     * Time that clients should wait before adjusting the target rate again.
+     * If clients adjust rate too frequently, the impact of the previous
+     * adjustment may not have been taken into account and may
+     * over-throttle or under-throttle. If clients adjust rate too slowly, they
+     * will not be responsive to load changes on server side, and may
+     * over-throttle or under-throttle.
+     * 
+ * + * .google.protobuf.Duration period = 1; + */ + public Builder setPeriod(com.google.protobuf.Duration.Builder builderForValue) { + if (periodBuilder_ == null) { + period_ = builderForValue.build(); + } else { + periodBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * + * + *
+     * Time that clients should wait before adjusting the target rate again.
+     * If clients adjust rate too frequently, the impact of the previous
+     * adjustment may not have been taken into account and may
+     * over-throttle or under-throttle. If clients adjust rate too slowly, they
+     * will not be responsive to load changes on server side, and may
+     * over-throttle or under-throttle.
+     * 
+ * + * .google.protobuf.Duration period = 1; + */ + public Builder mergePeriod(com.google.protobuf.Duration value) { + if (periodBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) + && period_ != null + && period_ != com.google.protobuf.Duration.getDefaultInstance()) { + getPeriodBuilder().mergeFrom(value); + } else { + period_ = value; + } + } else { + periodBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * + * + *
+     * Time that clients should wait before adjusting the target rate again.
+     * If clients adjust rate too frequently, the impact of the previous
+     * adjustment may not have been taken into account and may
+     * over-throttle or under-throttle. If clients adjust rate too slowly, they
+     * will not be responsive to load changes on server side, and may
+     * over-throttle or under-throttle.
+     * 
+ * + * .google.protobuf.Duration period = 1; + */ + public Builder clearPeriod() { + bitField0_ = (bitField0_ & ~0x00000001); + period_ = null; + if (periodBuilder_ != null) { + periodBuilder_.dispose(); + periodBuilder_ = null; + } + onChanged(); + return this; + } + /** + * + * + *
+     * Time that clients should wait before adjusting the target rate again.
+     * If clients adjust rate too frequently, the impact of the previous
+     * adjustment may not have been taken into account and may
+     * over-throttle or under-throttle. If clients adjust rate too slowly, they
+     * will not be responsive to load changes on server side, and may
+     * over-throttle or under-throttle.
+     * 
+ * + * .google.protobuf.Duration period = 1; + */ + public com.google.protobuf.Duration.Builder getPeriodBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getPeriodFieldBuilder().getBuilder(); + } + /** + * + * + *
+     * Time that clients should wait before adjusting the target rate again.
+     * If clients adjust rate too frequently, the impact of the previous
+     * adjustment may not have been taken into account and may
+     * over-throttle or under-throttle. If clients adjust rate too slowly, they
+     * will not be responsive to load changes on server side, and may
+     * over-throttle or under-throttle.
+     * 
+ * + * .google.protobuf.Duration period = 1; + */ + public com.google.protobuf.DurationOrBuilder getPeriodOrBuilder() { + if (periodBuilder_ != null) { + return periodBuilder_.getMessageOrBuilder(); + } else { + return period_ == null ? com.google.protobuf.Duration.getDefaultInstance() : period_; + } + } + /** + * + * + *
+     * Time that clients should wait before adjusting the target rate again.
+     * If clients adjust rate too frequently, the impact of the previous
+     * adjustment may not have been taken into account and may
+     * over-throttle or under-throttle. If clients adjust rate too slowly, they
+     * will not be responsive to load changes on server side, and may
+     * over-throttle or under-throttle.
+     * 
+ * + * .google.protobuf.Duration period = 1; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder> + getPeriodFieldBuilder() { + if (periodBuilder_ == null) { + periodBuilder_ = + new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Duration, + com.google.protobuf.Duration.Builder, + com.google.protobuf.DurationOrBuilder>( + getPeriod(), getParentForChildren(), isClean()); + period_ = null; + } + return periodBuilder_; + } + + private double factor_; + /** + * + * + *
+     * If it has been at least one `period` since the last load adjustment, the
+     * client should multiply the current load by this value to get the new target
+     * load. For example, if the current load is 100 and `factor` is 0.8, the new
+     * target load should be 80. After adjusting, the client should ignore
+     * `factor` until another `period` has passed.
+     * The client can measure its load using any unit that's comparable over time
+     * For example, QPS can be used as long as each request involves a similar
+     * amount of work.
+     * 
+ * + * double factor = 2; + * + * @return The factor. + */ + @java.lang.Override + public double getFactor() { + return factor_; + } + /** + * + * + *
+     * If it has been at least one `period` since the last load adjustment, the
+     * client should multiply the current load by this value to get the new target
+     * load. For example, if the current load is 100 and `factor` is 0.8, the new
+     * target load should be 80. After adjusting, the client should ignore
+     * `factor` until another `period` has passed.
+     * The client can measure its load using any unit that's comparable over time
+     * For example, QPS can be used as long as each request involves a similar
+     * amount of work.
+     * 
+ * + * double factor = 2; + * + * @param value The factor to set. + * @return This builder for chaining. + */ + public Builder setFactor(double value) { + + factor_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * + * + *
+     * If it has been at least one `period` since the last load adjustment, the
+     * client should multiply the current load by this value to get the new target
+     * load. For example, if the current load is 100 and `factor` is 0.8, the new
+     * target load should be 80. After adjusting, the client should ignore
+     * `factor` until another `period` has passed.
+     * The client can measure its load using any unit that's comparable over time
+     * For example, QPS can be used as long as each request involves a similar
+     * amount of work.
+     * 
+ * + * double factor = 2; + * + * @return This builder for chaining. + */ + public Builder clearFactor() { + bitField0_ = (bitField0_ & ~0x00000002); + factor_ = 0D; + onChanged(); + return this; + } + + @java.lang.Override + public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + // @@protoc_insertion_point(builder_scope:google.bigtable.v2.RateLimitInfo) + } + + // @@protoc_insertion_point(class_scope:google.bigtable.v2.RateLimitInfo) + private static final com.google.bigtable.v2.RateLimitInfo DEFAULT_INSTANCE; + + static { + DEFAULT_INSTANCE = new com.google.bigtable.v2.RateLimitInfo(); + } + + public static com.google.bigtable.v2.RateLimitInfo getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser PARSER = + new com.google.protobuf.AbstractParser() { + @java.lang.Override + public RateLimitInfo parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.google.bigtable.v2.RateLimitInfo getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } +} diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfoOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfoOrBuilder.java new file mode 100644 index 000000000000..a75e6ab15f66 --- /dev/null +++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/RateLimitInfoOrBuilder.java @@ -0,0 +1,95 @@ +/* + * Copyright 2020 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 + * + * https://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. + */ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: google/bigtable/v2/bigtable.proto + +package com.google.bigtable.v2; + +public interface RateLimitInfoOrBuilder + extends + // @@protoc_insertion_point(interface_extends:google.bigtable.v2.RateLimitInfo) + com.google.protobuf.MessageOrBuilder { + + /** + * + * + *
+   * Time that clients should wait before adjusting the target rate again.
+   * If clients adjust rate too frequently, the impact of the previous
+   * adjustment may not have been taken into account and may
+   * over-throttle or under-throttle. If clients adjust rate too slowly, they
+   * will not be responsive to load changes on server side, and may
+   * over-throttle or under-throttle.
+   * 
+ * + * .google.protobuf.Duration period = 1; + * + * @return Whether the period field is set. + */ + boolean hasPeriod(); + /** + * + * + *
+   * Time that clients should wait before adjusting the target rate again.
+   * If clients adjust rate too frequently, the impact of the previous
+   * adjustment may not have been taken into account and may
+   * over-throttle or under-throttle. If clients adjust rate too slowly, they
+   * will not be responsive to load changes on server side, and may
+   * over-throttle or under-throttle.
+   * 
+ * + * .google.protobuf.Duration period = 1; + * + * @return The period. + */ + com.google.protobuf.Duration getPeriod(); + /** + * + * + *
+   * Time that clients should wait before adjusting the target rate again.
+   * If clients adjust rate too frequently, the impact of the previous
+   * adjustment may not have been taken into account and may
+   * over-throttle or under-throttle. If clients adjust rate too slowly, they
+   * will not be responsive to load changes on server side, and may
+   * over-throttle or under-throttle.
+   * 
+ * + * .google.protobuf.Duration period = 1; + */ + com.google.protobuf.DurationOrBuilder getPeriodOrBuilder(); + + /** + * + * + *
+   * If it has been at least one `period` since the last load adjustment, the
+   * client should multiply the current load by this value to get the new target
+   * load. For example, if the current load is 100 and `factor` is 0.8, the new
+   * target load should be 80. After adjusting, the client should ignore
+   * `factor` until another `period` has passed.
+   * The client can measure its load using any unit that's comparable over time
+   * For example, QPS can be used as long as each request involves a similar
+   * amount of work.
+   * 
+ * + * double factor = 2; + * + * @return The factor. + */ + double getFactor(); +} diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequest.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequest.java index 00e8124f770f..9eda7db19221 100644 --- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequest.java +++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequest.java @@ -300,8 +300,8 @@ public com.google.protobuf.ByteString getTableNameBytes() { * * *
-   * This value specifies routing for replication. This API only accepts the
-   * empty value of app_profile_id.
+   * This value specifies routing for replication. If not specified, the
+   * "default" application profile will be used.
    * 
* * string app_profile_id = 5; @@ -324,8 +324,8 @@ public java.lang.String getAppProfileId() { * * *
-   * This value specifies routing for replication. This API only accepts the
-   * empty value of app_profile_id.
+   * This value specifies routing for replication. If not specified, the
+   * "default" application profile will be used.
    * 
* * string app_profile_id = 5; @@ -1104,8 +1104,8 @@ public Builder setTableNameBytes(com.google.protobuf.ByteString value) { * * *
-     * This value specifies routing for replication. This API only accepts the
-     * empty value of app_profile_id.
+     * This value specifies routing for replication. If not specified, the
+     * "default" application profile will be used.
      * 
* * string app_profile_id = 5; @@ -1127,8 +1127,8 @@ public java.lang.String getAppProfileId() { * * *
-     * This value specifies routing for replication. This API only accepts the
-     * empty value of app_profile_id.
+     * This value specifies routing for replication. If not specified, the
+     * "default" application profile will be used.
      * 
* * string app_profile_id = 5; @@ -1150,8 +1150,8 @@ public com.google.protobuf.ByteString getAppProfileIdBytes() { * * *
-     * This value specifies routing for replication. This API only accepts the
-     * empty value of app_profile_id.
+     * This value specifies routing for replication. If not specified, the
+     * "default" application profile will be used.
      * 
* * string app_profile_id = 5; @@ -1172,8 +1172,8 @@ public Builder setAppProfileId(java.lang.String value) { * * *
-     * This value specifies routing for replication. This API only accepts the
-     * empty value of app_profile_id.
+     * This value specifies routing for replication. If not specified, the
+     * "default" application profile will be used.
      * 
* * string app_profile_id = 5; @@ -1190,8 +1190,8 @@ public Builder clearAppProfileId() { * * *
-     * This value specifies routing for replication. This API only accepts the
-     * empty value of app_profile_id.
+     * This value specifies routing for replication. If not specified, the
+     * "default" application profile will be used.
      * 
* * string app_profile_id = 5; diff --git a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequestOrBuilder.java b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequestOrBuilder.java index 2b2e969f0642..ed43da6171b2 100644 --- a/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequestOrBuilder.java +++ b/proto-google-cloud-bigtable-v2/src/main/java/com/google/bigtable/v2/ReadRowsRequestOrBuilder.java @@ -60,8 +60,8 @@ public interface ReadRowsRequestOrBuilder * * *
-   * This value specifies routing for replication. This API only accepts the
-   * empty value of app_profile_id.
+   * This value specifies routing for replication. If not specified, the
+   * "default" application profile will be used.
    * 
* * string app_profile_id = 5; @@ -73,8 +73,8 @@ public interface ReadRowsRequestOrBuilder * * *
-   * This value specifies routing for replication. This API only accepts the
-   * empty value of app_profile_id.
+   * This value specifies routing for replication. If not specified, the
+   * "default" application profile will be used.
    * 
* * string app_profile_id = 5; diff --git a/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/bigtable.proto b/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/bigtable.proto index 098d17e3e71c..8624833ade8a 100644 --- a/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/bigtable.proto +++ b/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/bigtable.proto @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// Copyright 2023 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -227,7 +227,6 @@ service Bigtable { // Request message for Bigtable.ReadRows. message ReadRowsRequest { - // // The desired view into RequestStats that should be returned in the response. // // See also: RequestStats message. @@ -254,8 +253,8 @@ message ReadRowsRequest { } ]; - // This value specifies routing for replication. This API only accepts the - // empty value of app_profile_id. + // This value specifies routing for replication. If not specified, the + // "default" application profile will be used. string app_profile_id = 5; // The row keys and/or ranges to read sequentially. If not specified, reads @@ -489,6 +488,33 @@ message MutateRowsResponse { // One or more results for Entries from the batch request. repeated Entry entries = 1; + + // Information about how client should limit the rate (QPS). Primirily used by + // supported official Cloud Bigtable clients. If unset, the rate limit info is + // not provided by the server. + optional RateLimitInfo rate_limit_info = 3; +} + +// Information about how client should adjust the load to Bigtable. +message RateLimitInfo { + // Time that clients should wait before adjusting the target rate again. + // If clients adjust rate too frequently, the impact of the previous + // adjustment may not have been taken into account and may + // over-throttle or under-throttle. If clients adjust rate too slowly, they + // will not be responsive to load changes on server side, and may + // over-throttle or under-throttle. + google.protobuf.Duration period = 1; + + // If it has been at least one `period` since the last load adjustment, the + // client should multiply the current load by this value to get the new target + // load. For example, if the current load is 100 and `factor` is 0.8, the new + // target load should be 80. After adjusting, the client should ignore + // `factor` until another `period` has passed. + // + // The client can measure its load using any unit that's comparable over time + // For example, QPS can be used as long as each request involves a similar + // amount of work. + double factor = 2; } // Request message for Bigtable.CheckAndMutateRow. diff --git a/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/feature_flags.proto b/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/feature_flags.proto new file mode 100644 index 000000000000..ba10707a3f91 --- /dev/null +++ b/proto-google-cloud-bigtable-v2/src/main/proto/google/bigtable/v2/feature_flags.proto @@ -0,0 +1,39 @@ +// Copyright 2023 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. + +syntax = "proto3"; + +package google.bigtable.v2; + +option csharp_namespace = "Google.Cloud.Bigtable.V2"; +option go_package = "google.golang.org/genproto/googleapis/bigtable/v2;bigtable"; +option java_multiple_files = true; +option java_outer_classname = "FeatureFlagsProto"; +option java_package = "com.google.bigtable.v2"; +option php_namespace = "Google\\Cloud\\Bigtable\\V2"; +option ruby_package = "Google::Cloud::Bigtable::V2"; + +// Feature flags supported by a client. +// This is intended to be sent as part of request metadata to assure the server +// that certain behaviors are safe to enable. This proto is meant to be +// serialized and websafe-base64 encoded under the `bigtable-features` metadata +// key. The value will remain constant for the lifetime of a client and due to +// HTTP2's HPACK compression, the request overhead will be tiny. +// This is an internal implementation detail and should not be used by endusers +// directly. +message FeatureFlags { + // Notify the server that the client enables batch write flow control by + // requesting RateLimitInfo from MutateRowsResponse. + bool mutate_rows_rate_limit = 3; +}