1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.bigtable.v2; 18 19option csharp_namespace = "Google.Cloud.Bigtable.V2"; 20option go_package = "google.golang.org/genproto/googleapis/bigtable/v2;bigtable"; 21option java_multiple_files = true; 22option java_outer_classname = "FeatureFlagsProto"; 23option java_package = "com.google.bigtable.v2"; 24option php_namespace = "Google\\Cloud\\Bigtable\\V2"; 25option ruby_package = "Google::Cloud::Bigtable::V2"; 26 27// Feature flags supported or enabled by a client. 28// This is intended to be sent as part of request metadata to assure the server 29// that certain behaviors are safe to enable. This proto is meant to be 30// serialized and websafe-base64 encoded under the `bigtable-features` metadata 31// key. The value will remain constant for the lifetime of a client and due to 32// HTTP2's HPACK compression, the request overhead will be tiny. 33// This is an internal implementation detail and should not be used by end users 34// directly. 35message FeatureFlags { 36 // Notify the server that the client supports reverse scans. The server will 37 // reject ReadRowsRequests with the reverse bit set when this is absent. 38 bool reverse_scans = 1; 39 40 // Notify the server that the client enables batch write flow control by 41 // requesting RateLimitInfo from MutateRowsResponse. Due to technical reasons, 42 // this disables partial retries. 43 bool mutate_rows_rate_limit = 3; 44 45 // Notify the server that the client enables batch write flow control by 46 // requesting RateLimitInfo from MutateRowsResponse. With partial retries 47 // enabled. 48 bool mutate_rows_rate_limit2 = 5; 49 50 // Notify the server that the client supports the last_scanned_row field 51 // in ReadRowsResponse for long-running scans. 52 bool last_scanned_row_responses = 4; 53 54 // Notify the server that the client supports using encoded routing cookie 55 // strings to retry requests with. 56 bool routing_cookie = 6; 57 58 // Notify the server that the client supports using retry info back off 59 // durations to retry requests with. 60 bool retry_info = 7; 61 62 // Notify the server that the client has client side metrics enabled. 63 bool client_side_metrics_enabled = 8; 64} 65