xref: /aosp_15_r20/external/googleapis/google/bigtable/v2/feature_flags.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
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