google-cloud-bigtable-v2 1.12.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,793 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2026 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Bigtable
23
+ module V2
24
+ # See GetClientConfiguration() RPC in bigtable.proto. Internal usage only.
25
+ # @!attribute [rw] instance_name
26
+ # @return [::String]
27
+ # Required. The unique name of the instance for which the client will target
28
+ # with Data API requests.
29
+ #
30
+ # Values are of the form `projects/<project>/instances/<instance>`
31
+ # @!attribute [rw] app_profile_id
32
+ # @return [::String]
33
+ # Optional. The name of the AppProfile which will be used by the client when
34
+ # sending requests in the Data API.
35
+ #
36
+ # If not specified, the `default` application profile will be used.
37
+ class GetClientConfigurationRequest
38
+ include ::Google::Protobuf::MessageExts
39
+ extend ::Google::Protobuf::MessageExts::ClassMethods
40
+ end
41
+
42
+ # Configuration for how to balance vRPCs over sessions. Internal usage only.
43
+ # @!attribute [rw] least_in_flight
44
+ # @return [::Google::Cloud::Bigtable::V2::LoadBalancingOptions::LeastInFlight]
45
+ # Note: The following fields are mutually exclusive: `least_in_flight`, `peak_ewma`, `random`. If a field in that set is populated, all other fields in the set will automatically be cleared.
46
+ # @!attribute [rw] peak_ewma
47
+ # @return [::Google::Cloud::Bigtable::V2::LoadBalancingOptions::PeakEwma]
48
+ # Note: The following fields are mutually exclusive: `peak_ewma`, `least_in_flight`, `random`. If a field in that set is populated, all other fields in the set will automatically be cleared.
49
+ # @!attribute [rw] random
50
+ # @return [::Google::Cloud::Bigtable::V2::LoadBalancingOptions::Random]
51
+ # Note: The following fields are mutually exclusive: `random`, `least_in_flight`, `peak_ewma`. If a field in that set is populated, all other fields in the set will automatically be cleared.
52
+ class LoadBalancingOptions
53
+ include ::Google::Protobuf::MessageExts
54
+ extend ::Google::Protobuf::MessageExts::ClassMethods
55
+
56
+ # Balances vRPCs over backends, preferring to send new vRPCs to AFEs with the
57
+ # least number of active vRPCs.
58
+ # @!attribute [rw] random_subset_size
59
+ # @return [::Integer]
60
+ # Of all connected AFEs, the size of the random subset to run the algorithm
61
+ # on. Zero implies all connected AFEs.
62
+ class LeastInFlight
63
+ include ::Google::Protobuf::MessageExts
64
+ extend ::Google::Protobuf::MessageExts::ClassMethods
65
+ end
66
+
67
+ # Balances vRPCs over backends, by maintaining a moving average of each AFE's
68
+ # round-trip time, weighted by the number of outstanding vRPCs, and
69
+ # distribute traffic to AFEs where that cost function is smallest.
70
+ #
71
+ # See:
72
+ # https://linkerd.io/2016/03/16/beyond-round-robin-load-balancing-for-latency
73
+ # @!attribute [rw] random_subset_size
74
+ # @return [::Integer]
75
+ # Of all connected AFEs, the size of the random subset to compare costs
76
+ # over. Zero implies all connected AFEs.
77
+ class PeakEwma
78
+ include ::Google::Protobuf::MessageExts
79
+ extend ::Google::Protobuf::MessageExts::ClassMethods
80
+ end
81
+
82
+ # Balances vRPCs over backends, by randomly selecting a backend.
83
+ class Random
84
+ include ::Google::Protobuf::MessageExts
85
+ extend ::Google::Protobuf::MessageExts::ClassMethods
86
+ end
87
+ end
88
+
89
+ # Configuration for the Session API. Internal usage only.
90
+ # @!attribute [rw] session_load
91
+ # @return [::Float]
92
+ # What share of requests should operate on a session, [0, 1]. The rest
93
+ # should operate on the old-style API.
94
+ # @!attribute [rw] load_balancing_options
95
+ # @deprecated This field is deprecated and may be removed in the next major version update.
96
+ # @return [::Google::Cloud::Bigtable::V2::LoadBalancingOptions]
97
+ # @!attribute [rw] channel_configuration
98
+ # @return [::Google::Cloud::Bigtable::V2::SessionClientConfiguration::ChannelPoolConfiguration]
99
+ # Configuration for the channel pool.
100
+ # @!attribute [rw] session_pool_configuration
101
+ # @return [::Google::Cloud::Bigtable::V2::SessionClientConfiguration::SessionPoolConfiguration]
102
+ # Configuration for the session pools.
103
+ class SessionClientConfiguration
104
+ include ::Google::Protobuf::MessageExts
105
+ extend ::Google::Protobuf::MessageExts::ClassMethods
106
+
107
+ # Configuration for the channel pool.
108
+ # @!attribute [rw] min_server_count
109
+ # @return [::Integer]
110
+ # The minimum number of distcint servers to connect to in the channel pool.
111
+ # The client will ensure that the channel pool will have at least this many
112
+ # distinct servers, but may have multiple channels connected to the same
113
+ # server (e.g. the client may have M channels on N machines, where M > N).
114
+ # @!attribute [rw] max_server_count
115
+ # @return [::Integer]
116
+ # The maximum number of distinct servers to connect to in the channel pool.
117
+ # The client will ensure that the channel pool will have at most this many
118
+ # distinct servers.
119
+ # @!attribute [rw] per_server_session_count
120
+ # @return [::Integer]
121
+ # Soft maximum for how many sessions are allowed per server. Normally, the
122
+ # client will ensure that it does not host more than this count of sessions
123
+ # per server, unless there are other limits encountered (e.g. the connected
124
+ # servers is already at max_servers).
125
+ # @!attribute [rw] direct_access_with_fallback
126
+ # @return [::Google::Cloud::Bigtable::V2::SessionClientConfiguration::ChannelPoolConfiguration::DirectAccessWithFallback]
127
+ # DirectAccess with a fallback to CloudPath.
128
+ #
129
+ # Note: The following fields are mutually exclusive: `direct_access_with_fallback`, `direct_access_only`, `cloud_path_only`. If a field in that set is populated, all other fields in the set will automatically be cleared.
130
+ # @!attribute [rw] direct_access_only
131
+ # @return [::Google::Cloud::Bigtable::V2::SessionClientConfiguration::ChannelPoolConfiguration::DirectAccessOnly]
132
+ # DirectAccess only.
133
+ #
134
+ # Note: The following fields are mutually exclusive: `direct_access_only`, `direct_access_with_fallback`, `cloud_path_only`. If a field in that set is populated, all other fields in the set will automatically be cleared.
135
+ # @!attribute [rw] cloud_path_only
136
+ # @return [::Google::Cloud::Bigtable::V2::SessionClientConfiguration::ChannelPoolConfiguration::CloudPathOnly]
137
+ # CloudPath only.
138
+ #
139
+ # Note: The following fields are mutually exclusive: `cloud_path_only`, `direct_access_with_fallback`, `direct_access_only`. If a field in that set is populated, all other fields in the set will automatically be cleared.
140
+ class ChannelPoolConfiguration
141
+ include ::Google::Protobuf::MessageExts
142
+ extend ::Google::Protobuf::MessageExts::ClassMethods
143
+
144
+ # A channel mode which allows DirectAccess with a fallback to CloudPath if
145
+ # DirectAccess is unavailable.
146
+ # @!attribute [rw] error_rate_threshold
147
+ # @return [::Float]
148
+ # The threshold for errors on DirectAccess to trigger CloudPath fallback.
149
+ # The error rate is calculated based on a count of vRPCs with errors
150
+ # divided by a total count of vRPCs, over a rolling window of the past
151
+ # check_interval. If this ratio exceeds this threshold, the fallback to
152
+ # CloudPath is triggered. [0, 1].
153
+ # @!attribute [rw] check_interval
154
+ # @return [::Google::Protobuf::Duration]
155
+ # The interval to check the error rate over.
156
+ class DirectAccessWithFallback
157
+ include ::Google::Protobuf::MessageExts
158
+ extend ::Google::Protobuf::MessageExts::ClassMethods
159
+ end
160
+
161
+ # A channel mode which only allows DirectAccess.
162
+ class DirectAccessOnly
163
+ include ::Google::Protobuf::MessageExts
164
+ extend ::Google::Protobuf::MessageExts::ClassMethods
165
+ end
166
+
167
+ # A channel mode which only allows CloudPath.
168
+ class CloudPathOnly
169
+ include ::Google::Protobuf::MessageExts
170
+ extend ::Google::Protobuf::MessageExts::ClassMethods
171
+ end
172
+ end
173
+
174
+ # Configuration for the session pools. Session pools are tied to a scope
175
+ # like a table, an app profile, and a permission.
176
+ # @!attribute [rw] headroom
177
+ # @return [::Float]
178
+ # Fraction of idle sessions to keep in order to manage an increase in
179
+ # requests-in-flight. For example, a headroom of 0.5 will keep enough
180
+ # sessions to deal with a 50% increase in QPS.
181
+ # @!attribute [rw] min_session_count
182
+ # @return [::Integer]
183
+ # The minimum number of sessions for a given scope.
184
+ # @!attribute [rw] max_session_count
185
+ # @return [::Integer]
186
+ # The maximum number of sessions for a given scope.
187
+ # @!attribute [rw] new_session_queue_length
188
+ # @return [::Integer]
189
+ # Number of vRPCs that can be queued per starting session.
190
+ # @!attribute [rw] new_session_creation_budget
191
+ # @return [::Integer]
192
+ # How many concurrent session establishments are allowed. The client will
193
+ # hold onto a count against this budget whenever it is establishing a new
194
+ # session, and release that count once the session is successfully
195
+ # established or failed to establish.
196
+ # @!attribute [rw] new_session_creation_penalty
197
+ # @return [::Google::Protobuf::Duration]
198
+ # How long to penalize the creation budget for a failed session creation
199
+ # attempt.
200
+ # @!attribute [rw] consecutive_session_failure_threshold
201
+ # @return [::Integer]
202
+ # A threshold for cancelling all pending vRPCs based on how many
203
+ # consecutive session establishment errors have been observed. The client
204
+ # will eagerly cancel queued vRPCs after this threshold is met to avoid
205
+ # them waiting their entire deadlines before terminating (while waiting for
206
+ # any session to establish to actually send the vRPC).
207
+ # @!attribute [rw] load_balancing_options
208
+ # @return [::Google::Cloud::Bigtable::V2::LoadBalancingOptions]
209
+ # How to balance vRPC load over connections to AFEs.
210
+ # Set only if session_load > 0.
211
+ class SessionPoolConfiguration
212
+ include ::Google::Protobuf::MessageExts
213
+ extend ::Google::Protobuf::MessageExts::ClassMethods
214
+ end
215
+ end
216
+
217
+ # Server provided instructions for enabling finer grained observability on
218
+ # the client to help diagnose customer issues. Internal usage only.
219
+ # @!attribute [rw] debug_tag_level
220
+ # @return [::Google::Cloud::Bigtable::V2::TelemetryConfiguration::Level]
221
+ # Selector for the debug counters that should be uploaded.
222
+ class TelemetryConfiguration
223
+ include ::Google::Protobuf::MessageExts
224
+ extend ::Google::Protobuf::MessageExts::ClassMethods
225
+
226
+ # The level of detail of telemetry to be sent from the client.
227
+ module Level
228
+ # Server did not specify a level. Should disable all debug tag counters.
229
+ LEVEL_UNSPECIFIED = 0
230
+
231
+ # Enables all debug tag counter levels.
232
+ DEBUG = 1
233
+
234
+ # Eables all debug tag counters except for DEBUG.
235
+ INFO = 2
236
+
237
+ # Enables all debug tag counters except for DEBUG and INFO.
238
+ WARN = 3
239
+
240
+ # Enables only error debug tag counters.
241
+ ERROR = 4
242
+ end
243
+ end
244
+
245
+ # Configuration for the Session API. Internal usage only.
246
+ # @!attribute [rw] session_configuration
247
+ # @return [::Google::Cloud::Bigtable::V2::SessionClientConfiguration]
248
+ # The configuration for Bigtable Sessions.
249
+ # @!attribute [rw] stop_polling
250
+ # @return [::Boolean]
251
+ # If the client should cease to check for new configurations, e.g. a
252
+ # backstop to prevent excessive GetClientConfiguration RPCs.
253
+ #
254
+ # Note: The following fields are mutually exclusive: `stop_polling`, `polling_interval`, `polling_configuration`. If a field in that set is populated, all other fields in the set will automatically be cleared.
255
+ # @!attribute [rw] polling_interval
256
+ # @deprecated This field is deprecated and may be removed in the next major version update.
257
+ # @return [::Google::Protobuf::Duration]
258
+ # Deprecated, prerfer polling_configuration.
259
+ #
260
+ # A duration describing the time between GetClientConfiguration RPCs.
261
+ # Only strictly positive values are permissible.
262
+ #
263
+ # Note: The following fields are mutually exclusive: `polling_interval`, `stop_polling`, `polling_configuration`. If a field in that set is populated, all other fields in the set will automatically be cleared.
264
+ # @!attribute [rw] polling_configuration
265
+ # @return [::Google::Cloud::Bigtable::V2::ClientConfiguration::PollingConfiguration]
266
+ # If the client should continue to check for new configurations.
267
+ #
268
+ # Note: The following fields are mutually exclusive: `polling_configuration`, `stop_polling`, `polling_interval`. If a field in that set is populated, all other fields in the set will automatically be cleared.
269
+ # @!attribute [rw] telemetry_configuration
270
+ # @return [::Google::Cloud::Bigtable::V2::TelemetryConfiguration]
271
+ # Configuration for telemetry.
272
+ class ClientConfiguration
273
+ include ::Google::Protobuf::MessageExts
274
+ extend ::Google::Protobuf::MessageExts::ClassMethods
275
+
276
+ # @!attribute [rw] polling_interval
277
+ # @return [::Google::Protobuf::Duration]
278
+ # A duration describing the time between GetClientConfiguration RPCs.
279
+ # Only strictly positive values are permissible.
280
+ # @!attribute [rw] validity_duration
281
+ # @return [::Google::Protobuf::Duration]
282
+ # How long the client should consider the configuration it receives from
283
+ # GetClientConfiguration valid for. Once this duration has passed, the
284
+ # client should consider the configuration invalid and must either:
285
+ # - Get a new configuration from GetClientConfiguration
286
+ # - Or if it cannot, use a sane default configuration
287
+ #
288
+ # This duration will be at least as long as the polling interval.
289
+ # @!attribute [rw] max_rpc_retry_count
290
+ # @return [::Integer]
291
+ # Number of times the client should retry a failed
292
+ # GetClientConfiguration RPC per polling interval before giving up.
293
+ class PollingConfiguration
294
+ include ::Google::Protobuf::MessageExts
295
+ extend ::Google::Protobuf::MessageExts::ClassMethods
296
+ end
297
+ end
298
+
299
+ # Internal usage only.
300
+ # @!attribute [rw] open_session
301
+ # @return [::Google::Cloud::Bigtable::V2::OpenSessionRequest]
302
+ # Note: The following fields are mutually exclusive: `open_session`, `close_session`, `virtual_rpc`. If a field in that set is populated, all other fields in the set will automatically be cleared.
303
+ # @!attribute [rw] close_session
304
+ # @return [::Google::Cloud::Bigtable::V2::CloseSessionRequest]
305
+ # Note: The following fields are mutually exclusive: `close_session`, `open_session`, `virtual_rpc`. If a field in that set is populated, all other fields in the set will automatically be cleared.
306
+ # @!attribute [rw] virtual_rpc
307
+ # @return [::Google::Cloud::Bigtable::V2::VirtualRpcRequest]
308
+ # Note: The following fields are mutually exclusive: `virtual_rpc`, `open_session`, `close_session`. If a field in that set is populated, all other fields in the set will automatically be cleared.
309
+ class SessionRequest
310
+ include ::Google::Protobuf::MessageExts
311
+ extend ::Google::Protobuf::MessageExts::ClassMethods
312
+ end
313
+
314
+ # Internal usage only.
315
+ # @!attribute [rw] open_session
316
+ # @return [::Google::Cloud::Bigtable::V2::OpenSessionResponse]
317
+ # Note: The following fields are mutually exclusive: `open_session`, `virtual_rpc`, `error`, `session_parameters`, `heartbeat`, `go_away`, `session_refresh_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
318
+ # @!attribute [rw] virtual_rpc
319
+ # @return [::Google::Cloud::Bigtable::V2::VirtualRpcResponse]
320
+ # A vRPC can result in either a successful result or an error.
321
+ # Error results are separate to allow for multiple vRPC responses,
322
+ # e.g. for streaming calls like scans (post-V1). See Flow Control.
323
+ #
324
+ # Note: The following fields are mutually exclusive: `virtual_rpc`, `open_session`, `error`, `session_parameters`, `heartbeat`, `go_away`, `session_refresh_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
325
+ # @!attribute [rw] error
326
+ # @return [::Google::Cloud::Bigtable::V2::ErrorResponse]
327
+ # Note: The following fields are mutually exclusive: `error`, `open_session`, `virtual_rpc`, `session_parameters`, `heartbeat`, `go_away`, `session_refresh_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
328
+ # @!attribute [rw] session_parameters
329
+ # @return [::Google::Cloud::Bigtable::V2::SessionParametersResponse]
330
+ # Note: The following fields are mutually exclusive: `session_parameters`, `open_session`, `virtual_rpc`, `error`, `heartbeat`, `go_away`, `session_refresh_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
331
+ # @!attribute [rw] heartbeat
332
+ # @return [::Google::Cloud::Bigtable::V2::HeartbeatResponse]
333
+ # Note: The following fields are mutually exclusive: `heartbeat`, `open_session`, `virtual_rpc`, `error`, `session_parameters`, `go_away`, `session_refresh_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
334
+ # @!attribute [rw] go_away
335
+ # @return [::Google::Cloud::Bigtable::V2::GoAwayResponse]
336
+ # Note: The following fields are mutually exclusive: `go_away`, `open_session`, `virtual_rpc`, `error`, `session_parameters`, `heartbeat`, `session_refresh_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
337
+ # @!attribute [rw] session_refresh_config
338
+ # @return [::Google::Cloud::Bigtable::V2::SessionRefreshConfig]
339
+ # Note: The following fields are mutually exclusive: `session_refresh_config`, `open_session`, `virtual_rpc`, `error`, `session_parameters`, `heartbeat`, `go_away`. If a field in that set is populated, all other fields in the set will automatically be cleared.
340
+ class SessionResponse
341
+ include ::Google::Protobuf::MessageExts
342
+ extend ::Google::Protobuf::MessageExts::ClassMethods
343
+ end
344
+
345
+ # Internal usage only.
346
+ # @!attribute [rw] protocol_version
347
+ # @return [::Integer]
348
+ # A version indicator from the client stating its understanding of the
349
+ # protocol. This is to disambiguate client behavior amidst changes in
350
+ # semantic usage of the API, e.g. if the structure remains the same but
351
+ # behavior changes.
352
+ # @!attribute [rw] flags
353
+ # @return [::Google::Cloud::Bigtable::V2::FeatureFlags]
354
+ # Client settings, including a record of
355
+ # @!attribute [rw] consecutive_failed_connection_attempts
356
+ # @return [::Integer]
357
+ # Used for serverside observability.
358
+ # @!attribute [rw] routing_cookie
359
+ # @return [::String]
360
+ # How the request should be routed (if presented as part of a GOAWAY
361
+ # from a previous session). Post V1.
362
+ # @!attribute [rw] payload
363
+ # @return [::String]
364
+ # Can be Open\\{Table,AuthorizedView,MaterializedView}Request,
365
+ # (or in post-V1, PrepareSqlQueryRequest)
366
+ class OpenSessionRequest
367
+ include ::Google::Protobuf::MessageExts
368
+ extend ::Google::Protobuf::MessageExts::ClassMethods
369
+ end
370
+
371
+ # Information about the connected backends from a session client's
372
+ # perspective. This information may be used to make choices about session
373
+ # re-establishment en-masse for sessions with the same backend identifiers.
374
+ # Internal usage only.
375
+ # @!attribute [rw] google_frontend_id
376
+ # @return [::Integer]
377
+ # An opaque identifier for the Google Frontend which serviced this request.
378
+ # Only set when not using DirectAccess.
379
+ # @!attribute [rw] application_frontend_id
380
+ # @return [::Integer]
381
+ # An opaque identifier for the application frontend which serviced this
382
+ # request.
383
+ # @!attribute [rw] application_frontend_zone
384
+ # @return [::String]
385
+ # The zone of the application frontend that served this request.
386
+ class BackendIdentifier
387
+ include ::Google::Protobuf::MessageExts
388
+ extend ::Google::Protobuf::MessageExts::ClassMethods
389
+ end
390
+
391
+ # Internal usage only.
392
+ # @!attribute [rw] backend
393
+ # @return [::Google::Cloud::Bigtable::V2::BackendIdentifier]
394
+ # Information on the backend(s) that are hosting this session.
395
+ # @!attribute [rw] payload
396
+ # @return [::String]
397
+ # Can be Open\\{Table,AuthorizedView,MaterializedView}Response,
398
+ # (or in post-V1, PrepareSqlQueryResponse)
399
+ class OpenSessionResponse
400
+ include ::Google::Protobuf::MessageExts
401
+ extend ::Google::Protobuf::MessageExts::ClassMethods
402
+ end
403
+
404
+ # Internal usage only.
405
+ # @!attribute [rw] reason
406
+ # @return [::Google::Cloud::Bigtable::V2::CloseSessionRequest::CloseSessionReason]
407
+ # @!attribute [rw] description
408
+ # @return [::String]
409
+ class CloseSessionRequest
410
+ include ::Google::Protobuf::MessageExts
411
+ extend ::Google::Protobuf::MessageExts::ClassMethods
412
+
413
+ # Client-generated reason for terminating the session, including a
414
+ # plain-text description of why.
415
+ # 'reason' may be used for metrics, while both may be logged (server-side).
416
+ module CloseSessionReason
417
+ CLOSE_SESSION_REASON_UNSET = 0
418
+
419
+ CLOSE_SESSION_REASON_GOAWAY = 1
420
+
421
+ CLOSE_SESSION_REASON_ERROR = 2
422
+
423
+ CLOSE_SESSION_REASON_USER = 3
424
+
425
+ CLOSE_SESSION_REASON_DOWNSIZE = 4
426
+
427
+ CLOSE_SESSION_REASON_MISSED_HEARTBEAT = 5
428
+ end
429
+ end
430
+
431
+ # Internal usage only.
432
+ # @!attribute [rw] table_name
433
+ # @return [::String]
434
+ # @!attribute [rw] app_profile_id
435
+ # @return [::String]
436
+ # @!attribute [rw] permission
437
+ # @return [::Google::Cloud::Bigtable::V2::OpenTableRequest::Permission]
438
+ class OpenTableRequest
439
+ include ::Google::Protobuf::MessageExts
440
+ extend ::Google::Protobuf::MessageExts::ClassMethods
441
+
442
+ module Permission
443
+ PERMISSION_UNSET = 0
444
+
445
+ PERMISSION_READ = 1
446
+
447
+ PERMISSION_WRITE = 2
448
+
449
+ PERMISSION_READ_WRITE = 3
450
+ end
451
+ end
452
+
453
+ # Internal usage only.
454
+ class OpenTableResponse
455
+ include ::Google::Protobuf::MessageExts
456
+ extend ::Google::Protobuf::MessageExts::ClassMethods
457
+ end
458
+
459
+ # Open sessions for an AuthorizedView. Internal usage only.
460
+ # @!attribute [rw] authorized_view_name
461
+ # @return [::String]
462
+ # The Authorized view name to read and write from. Values are of the form
463
+ # `projects/<project>/instances/<instance>/tables/<table>/authorizedViews/<authorized_view>`.
464
+ # @!attribute [rw] app_profile_id
465
+ # @return [::String]
466
+ # The app profile id to use for the authorized view sessions.
467
+ # @!attribute [rw] permission
468
+ # @return [::Google::Cloud::Bigtable::V2::OpenAuthorizedViewRequest::Permission]
469
+ # Permission for the session.
470
+ class OpenAuthorizedViewRequest
471
+ include ::Google::Protobuf::MessageExts
472
+ extend ::Google::Protobuf::MessageExts::ClassMethods
473
+
474
+ module Permission
475
+ PERMISSION_UNSET = 0
476
+
477
+ PERMISSION_READ = 1
478
+
479
+ PERMISSION_WRITE = 2
480
+
481
+ PERMISSION_READ_WRITE = 3
482
+ end
483
+ end
484
+
485
+ # Internal usage only.
486
+ class OpenAuthorizedViewResponse
487
+ include ::Google::Protobuf::MessageExts
488
+ extend ::Google::Protobuf::MessageExts::ClassMethods
489
+ end
490
+
491
+ # Open sessions for a MaterializedView. Internal usage only.
492
+ # @!attribute [rw] materialized_view_name
493
+ # @return [::String]
494
+ # The Materialized view name to read and write from. Values are of the form
495
+ # `projects/<project>/instances/<instance>/materializedViews/<materialized_view>`.
496
+ # @!attribute [rw] app_profile_id
497
+ # @return [::String]
498
+ # The app profile id to use for the materialized view sessions.
499
+ # @!attribute [rw] permission
500
+ # @return [::Google::Cloud::Bigtable::V2::OpenMaterializedViewRequest::Permission]
501
+ # Permission for the session.
502
+ class OpenMaterializedViewRequest
503
+ include ::Google::Protobuf::MessageExts
504
+ extend ::Google::Protobuf::MessageExts::ClassMethods
505
+
506
+ module Permission
507
+ PERMISSION_UNSET = 0
508
+
509
+ PERMISSION_READ = 1
510
+ end
511
+ end
512
+
513
+ # Internal usage only.
514
+ class OpenMaterializedViewResponse
515
+ include ::Google::Protobuf::MessageExts
516
+ extend ::Google::Protobuf::MessageExts::ClassMethods
517
+ end
518
+
519
+ # Internal usage only.
520
+ # @!attribute [rw] rpc_id
521
+ # @return [::Integer]
522
+ # Client chosen, monotonically increasing identifier for the request.
523
+ # Must be unique within a session.
524
+ # @!attribute [rw] deadline
525
+ # @return [::Google::Protobuf::Duration]
526
+ # Attempt deadline.
527
+ #
528
+ # Note, this may not be needed for V1, TBD (e.g. operation vs attempt
529
+ # deadline).
530
+ # @!attribute [rw] metadata
531
+ # @return [::Google::Cloud::Bigtable::V2::VirtualRpcRequest::Metadata]
532
+ # vRPC metadata.
533
+ # @!attribute [rw] payload
534
+ # @return [::String]
535
+ # Could be TableRequest (or in post-V1, SqlRequest)
536
+ class VirtualRpcRequest
537
+ include ::Google::Protobuf::MessageExts
538
+ extend ::Google::Protobuf::MessageExts::ClassMethods
539
+
540
+ # Container for all vRPC Metadata.
541
+ # @!attribute [rw] attempt_number
542
+ # @return [::Integer]
543
+ # Track retry attempts for this vRPC at the AFE.
544
+ # @!attribute [rw] attempt_start
545
+ # @return [::Google::Protobuf::Timestamp]
546
+ # Track the client's known start time for the attempt. This is likely not
547
+ # easily compared with the server's time due to clock skew.
548
+ # @!attribute [rw] traceparent
549
+ # @return [::String]
550
+ # Link OpenTelemetry traces (e.g. Tapper). This can be used to link
551
+ # attempts together for the same logical operation (e.g. in logs / traces).
552
+ #
553
+ # Note, this may not be needed for V1, TBD.
554
+ class Metadata
555
+ include ::Google::Protobuf::MessageExts
556
+ extend ::Google::Protobuf::MessageExts::ClassMethods
557
+ end
558
+ end
559
+
560
+ # Information on which Cluster served a vRPC, e.g. for Client-Side metrics.
561
+ # Internal usage only.
562
+ # @!attribute [rw] cluster_id
563
+ # @return [::String]
564
+ # @!attribute [rw] zone_id
565
+ # @return [::String]
566
+ class ClusterInformation
567
+ include ::Google::Protobuf::MessageExts
568
+ extend ::Google::Protobuf::MessageExts::ClassMethods
569
+ end
570
+
571
+ # Internal usage only.
572
+ # @!attribute [rw] backend_latency
573
+ # @return [::Google::Protobuf::Duration]
574
+ # Backend (critical section) latency for the request.
575
+ class SessionRequestStats
576
+ include ::Google::Protobuf::MessageExts
577
+ extend ::Google::Protobuf::MessageExts::ClassMethods
578
+ end
579
+
580
+ # Internal usage only.
581
+ # @!attribute [rw] rpc_id
582
+ # @return [::Integer]
583
+ # Which vRPC this response is for.
584
+ # @!attribute [rw] cluster_info
585
+ # @return [::Google::Cloud::Bigtable::V2::ClusterInformation]
586
+ # @!attribute [rw] stats
587
+ # @return [::Google::Cloud::Bigtable::V2::SessionRequestStats]
588
+ # @!attribute [rw] payload
589
+ # @return [::String]
590
+ # Could be TableResponse (or in post-V1, SqlResponse)
591
+ class VirtualRpcResponse
592
+ include ::Google::Protobuf::MessageExts
593
+ extend ::Google::Protobuf::MessageExts::ClassMethods
594
+ end
595
+
596
+ # Internal usage only.
597
+ # @!attribute [rw] rpc_id
598
+ # @return [::Integer]
599
+ # Which vRPC this response is for.
600
+ # @!attribute [rw] cluster_info
601
+ # @return [::Google::Cloud::Bigtable::V2::ClusterInformation]
602
+ # @!attribute [rw] status
603
+ # @return [::Google::Rpc::Status]
604
+ # The error from the vRPC and any retry information to consider.
605
+ # @!attribute [rw] retry_info
606
+ # @return [::Google::Rpc::RetryInfo]
607
+ class ErrorResponse
608
+ include ::Google::Protobuf::MessageExts
609
+ extend ::Google::Protobuf::MessageExts::ClassMethods
610
+ end
611
+
612
+ # Internal usage only.
613
+ # @!attribute [rw] read_row
614
+ # @return [::Google::Cloud::Bigtable::V2::SessionReadRowRequest]
615
+ # Note: The following fields are mutually exclusive: `read_row`, `mutate_row`. If a field in that set is populated, all other fields in the set will automatically be cleared.
616
+ # @!attribute [rw] mutate_row
617
+ # @return [::Google::Cloud::Bigtable::V2::SessionMutateRowRequest]
618
+ # Note: The following fields are mutually exclusive: `mutate_row`, `read_row`. If a field in that set is populated, all other fields in the set will automatically be cleared.
619
+ class TableRequest
620
+ include ::Google::Protobuf::MessageExts
621
+ extend ::Google::Protobuf::MessageExts::ClassMethods
622
+ end
623
+
624
+ # Internal usage only.
625
+ # @!attribute [rw] read_row
626
+ # @return [::Google::Cloud::Bigtable::V2::SessionReadRowResponse]
627
+ # Note: The following fields are mutually exclusive: `read_row`, `mutate_row`. If a field in that set is populated, all other fields in the set will automatically be cleared.
628
+ # @!attribute [rw] mutate_row
629
+ # @return [::Google::Cloud::Bigtable::V2::SessionMutateRowResponse]
630
+ # Note: The following fields are mutually exclusive: `mutate_row`, `read_row`. If a field in that set is populated, all other fields in the set will automatically be cleared.
631
+ class TableResponse
632
+ include ::Google::Protobuf::MessageExts
633
+ extend ::Google::Protobuf::MessageExts::ClassMethods
634
+ end
635
+
636
+ # A request wrapper for operations on an authorized view. Internal usage only.
637
+ # @!attribute [rw] read_row
638
+ # @return [::Google::Cloud::Bigtable::V2::SessionReadRowRequest]
639
+ # Note: The following fields are mutually exclusive: `read_row`, `mutate_row`. If a field in that set is populated, all other fields in the set will automatically be cleared.
640
+ # @!attribute [rw] mutate_row
641
+ # @return [::Google::Cloud::Bigtable::V2::SessionMutateRowRequest]
642
+ # Note: The following fields are mutually exclusive: `mutate_row`, `read_row`. If a field in that set is populated, all other fields in the set will automatically be cleared.
643
+ class AuthorizedViewRequest
644
+ include ::Google::Protobuf::MessageExts
645
+ extend ::Google::Protobuf::MessageExts::ClassMethods
646
+ end
647
+
648
+ # A response wrapper for operations on an authorized view. Internal usage only.
649
+ # @!attribute [rw] read_row
650
+ # @return [::Google::Cloud::Bigtable::V2::SessionReadRowResponse]
651
+ # Note: The following fields are mutually exclusive: `read_row`, `mutate_row`. If a field in that set is populated, all other fields in the set will automatically be cleared.
652
+ # @!attribute [rw] mutate_row
653
+ # @return [::Google::Cloud::Bigtable::V2::SessionMutateRowResponse]
654
+ # Note: The following fields are mutually exclusive: `mutate_row`, `read_row`. If a field in that set is populated, all other fields in the set will automatically be cleared.
655
+ class AuthorizedViewResponse
656
+ include ::Google::Protobuf::MessageExts
657
+ extend ::Google::Protobuf::MessageExts::ClassMethods
658
+ end
659
+
660
+ # A request wrapper for operations on a materialized view. Internal usage only.
661
+ # @!attribute [rw] read_row
662
+ # @return [::Google::Cloud::Bigtable::V2::SessionReadRowRequest]
663
+ class MaterializedViewRequest
664
+ include ::Google::Protobuf::MessageExts
665
+ extend ::Google::Protobuf::MessageExts::ClassMethods
666
+ end
667
+
668
+ # A response wrapper for operations on a materialized view. Internal usage
669
+ # only.
670
+ # @!attribute [rw] read_row
671
+ # @return [::Google::Cloud::Bigtable::V2::SessionReadRowResponse]
672
+ class MaterializedViewResponse
673
+ include ::Google::Protobuf::MessageExts
674
+ extend ::Google::Protobuf::MessageExts::ClassMethods
675
+ end
676
+
677
+ # Internal usage only.
678
+ # @!attribute [rw] key
679
+ # @return [::String]
680
+ # @!attribute [rw] filter
681
+ # @return [::Google::Cloud::Bigtable::V2::RowFilter]
682
+ class SessionReadRowRequest
683
+ include ::Google::Protobuf::MessageExts
684
+ extend ::Google::Protobuf::MessageExts::ClassMethods
685
+ end
686
+
687
+ # Internal usage only.
688
+ # @!attribute [rw] row
689
+ # @return [::Google::Cloud::Bigtable::V2::Row]
690
+ # @!attribute [rw] stats
691
+ # @return [::Google::Cloud::Bigtable::V2::RequestStats]
692
+ class SessionReadRowResponse
693
+ include ::Google::Protobuf::MessageExts
694
+ extend ::Google::Protobuf::MessageExts::ClassMethods
695
+ end
696
+
697
+ # Internal usage only.
698
+ # @!attribute [rw] key
699
+ # @return [::String]
700
+ # @!attribute [rw] mutations
701
+ # @return [::Array<::Google::Cloud::Bigtable::V2::Mutation>]
702
+ class SessionMutateRowRequest
703
+ include ::Google::Protobuf::MessageExts
704
+ extend ::Google::Protobuf::MessageExts::ClassMethods
705
+ end
706
+
707
+ # Internal usage only.
708
+ class SessionMutateRowResponse
709
+ include ::Google::Protobuf::MessageExts
710
+ extend ::Google::Protobuf::MessageExts::ClassMethods
711
+ end
712
+
713
+ # Internal usage only.
714
+ # @!attribute [rw] keep_alive
715
+ # @return [::Google::Protobuf::Duration]
716
+ # Maximum time between messages that the AFE will send to the client. The
717
+ # client may use this information to determine its control-flow in relation
718
+ # to pruning black-holed or otherwise non-responsive sessions. Must be set
719
+ # and positive.
720
+ #
721
+ # See also Heartbeats.
722
+ class SessionParametersResponse
723
+ include ::Google::Protobuf::MessageExts
724
+ extend ::Google::Protobuf::MessageExts::ClassMethods
725
+ end
726
+
727
+ # Internal usage only.
728
+ class HeartbeatResponse
729
+ include ::Google::Protobuf::MessageExts
730
+ extend ::Google::Protobuf::MessageExts::ClassMethods
731
+ end
732
+
733
+ # Internal usage only.
734
+ # @!attribute [rw] reason
735
+ # @return [::String]
736
+ # Server-generated reason for GOAWAY, including a plain-text description of
737
+ # why. 'reason' may be used for CSM, while both may be logged.
738
+ # @!attribute [rw] description
739
+ # @return [::String]
740
+ # @!attribute [rw] last_rpc_id_admitted
741
+ # @return [::Integer]
742
+ # The last vRPC which was admitted by the AFE. The client may expect the
743
+ # result from the vRPC on the stream before disconnecting, and should
744
+ # retry vRPCs beyond this boundary.
745
+ class GoAwayResponse
746
+ include ::Google::Protobuf::MessageExts
747
+ extend ::Google::Protobuf::MessageExts::ClassMethods
748
+ end
749
+
750
+ # Internal usage only.
751
+ # @!attribute [rw] optimized_open_request
752
+ # @return [::Google::Cloud::Bigtable::V2::OpenSessionRequest]
753
+ # An optimized Open request that the session may use on a retry when
754
+ # establishing this session again. This can be sent from the AFE to
755
+ # avoid certain work e.g. encoding a query plan for BTQL.
756
+ # @!attribute [r] metadata
757
+ # @return [::Array<::Google::Cloud::Bigtable::V2::SessionRefreshConfig::Metadata>]
758
+ # Output only. Any additional metadata to include when reconnecting.
759
+ class SessionRefreshConfig
760
+ include ::Google::Protobuf::MessageExts
761
+ extend ::Google::Protobuf::MessageExts::ClassMethods
762
+
763
+ # Any additional metadata to include when reconnecting. Not a `map<>` type as
764
+ # this can be a multimap.
765
+ # @!attribute [r] key
766
+ # @return [::String]
767
+ # Output only. The key for the metadata entry.
768
+ # @!attribute [r] value
769
+ # @return [::String]
770
+ # Output only. The value for the metadata entry.
771
+ class Metadata
772
+ include ::Google::Protobuf::MessageExts
773
+ extend ::Google::Protobuf::MessageExts::ClassMethods
774
+ end
775
+ end
776
+
777
+ # Supported session types.
778
+ module SessionType
779
+ SESSION_TYPE_UNSET = 0
780
+
781
+ SESSION_TYPE_TABLE = 1
782
+
783
+ SESSION_TYPE_AUTHORIZED_VIEW = 2
784
+
785
+ SESSION_TYPE_MATERIALIZED_VIEW = 3
786
+
787
+ # For internal protocol testing only.
788
+ SESSION_TYPE_TEST = 9999
789
+ end
790
+ end
791
+ end
792
+ end
793
+ end