google-cloud-bigtable 2.30.0__py3-none-any.whl

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.
Files changed (115) hide show
  1. google/cloud/bigtable/__init__.py +25 -0
  2. google/cloud/bigtable/app_profile.py +377 -0
  3. google/cloud/bigtable/backup.py +490 -0
  4. google/cloud/bigtable/batcher.py +414 -0
  5. google/cloud/bigtable/client.py +475 -0
  6. google/cloud/bigtable/cluster.py +541 -0
  7. google/cloud/bigtable/column_family.py +362 -0
  8. google/cloud/bigtable/data/__init__.py +103 -0
  9. google/cloud/bigtable/data/_async/__init__.py +25 -0
  10. google/cloud/bigtable/data/_async/_mutate_rows.py +226 -0
  11. google/cloud/bigtable/data/_async/_read_rows.py +363 -0
  12. google/cloud/bigtable/data/_async/client.py +1522 -0
  13. google/cloud/bigtable/data/_async/mutations_batcher.py +534 -0
  14. google/cloud/bigtable/data/_cross_sync/__init__.py +20 -0
  15. google/cloud/bigtable/data/_cross_sync/_decorators.py +441 -0
  16. google/cloud/bigtable/data/_cross_sync/_mapping_meta.py +64 -0
  17. google/cloud/bigtable/data/_cross_sync/cross_sync.py +334 -0
  18. google/cloud/bigtable/data/_helpers.py +249 -0
  19. google/cloud/bigtable/data/_sync_autogen/_mutate_rows.py +182 -0
  20. google/cloud/bigtable/data/_sync_autogen/_read_rows.py +304 -0
  21. google/cloud/bigtable/data/_sync_autogen/client.py +1293 -0
  22. google/cloud/bigtable/data/_sync_autogen/mutations_batcher.py +449 -0
  23. google/cloud/bigtable/data/exceptions.py +340 -0
  24. google/cloud/bigtable/data/execute_query/__init__.py +43 -0
  25. google/cloud/bigtable/data/execute_query/_async/__init__.py +13 -0
  26. google/cloud/bigtable/data/execute_query/_async/execute_query_iterator.py +291 -0
  27. google/cloud/bigtable/data/execute_query/_byte_cursor.py +123 -0
  28. google/cloud/bigtable/data/execute_query/_checksum.py +43 -0
  29. google/cloud/bigtable/data/execute_query/_parameters_formatting.py +155 -0
  30. google/cloud/bigtable/data/execute_query/_query_result_parsing_utils.py +134 -0
  31. google/cloud/bigtable/data/execute_query/_reader.py +122 -0
  32. google/cloud/bigtable/data/execute_query/_sync_autogen/execute_query_iterator.py +239 -0
  33. google/cloud/bigtable/data/execute_query/metadata.py +399 -0
  34. google/cloud/bigtable/data/execute_query/values.py +123 -0
  35. google/cloud/bigtable/data/mutations.py +380 -0
  36. google/cloud/bigtable/data/read_modify_write_rules.py +112 -0
  37. google/cloud/bigtable/data/read_rows_query.py +536 -0
  38. google/cloud/bigtable/data/row.py +535 -0
  39. google/cloud/bigtable/data/row_filters.py +968 -0
  40. google/cloud/bigtable/encryption_info.py +64 -0
  41. google/cloud/bigtable/enums.py +223 -0
  42. google/cloud/bigtable/error.py +64 -0
  43. google/cloud/bigtable/gapic_version.py +16 -0
  44. google/cloud/bigtable/helpers.py +31 -0
  45. google/cloud/bigtable/instance.py +789 -0
  46. google/cloud/bigtable/policy.py +255 -0
  47. google/cloud/bigtable/row.py +1267 -0
  48. google/cloud/bigtable/row_data.py +380 -0
  49. google/cloud/bigtable/row_filters.py +838 -0
  50. google/cloud/bigtable/row_merger.py +250 -0
  51. google/cloud/bigtable/row_set.py +213 -0
  52. google/cloud/bigtable/table.py +1409 -0
  53. google/cloud/bigtable_admin/__init__.py +410 -0
  54. google/cloud/bigtable_admin/gapic_version.py +16 -0
  55. google/cloud/bigtable_admin/py.typed +2 -0
  56. google/cloud/bigtable_admin_v2/__init__.py +250 -0
  57. google/cloud/bigtable_admin_v2/gapic_metadata.json +962 -0
  58. google/cloud/bigtable_admin_v2/gapic_version.py +16 -0
  59. google/cloud/bigtable_admin_v2/py.typed +2 -0
  60. google/cloud/bigtable_admin_v2/services/__init__.py +15 -0
  61. google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/__init__.py +22 -0
  62. google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/async_client.py +3465 -0
  63. google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/client.py +3944 -0
  64. google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/pagers.py +681 -0
  65. google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/__init__.py +40 -0
  66. google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/base.py +751 -0
  67. google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/grpc.py +1249 -0
  68. google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/grpc_asyncio.py +1579 -0
  69. google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/rest.py +6820 -0
  70. google/cloud/bigtable_admin_v2/services/bigtable_instance_admin/transports/rest_base.py +1746 -0
  71. google/cloud/bigtable_admin_v2/services/bigtable_table_admin/__init__.py +22 -0
  72. google/cloud/bigtable_admin_v2/services/bigtable_table_admin/async_client.py +3472 -0
  73. google/cloud/bigtable_admin_v2/services/bigtable_table_admin/client.py +3949 -0
  74. google/cloud/bigtable_admin_v2/services/bigtable_table_admin/pagers.py +669 -0
  75. google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/__init__.py +40 -0
  76. google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/base.py +708 -0
  77. google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/grpc.py +1257 -0
  78. google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/grpc_asyncio.py +1549 -0
  79. google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/rest.py +6609 -0
  80. google/cloud/bigtable_admin_v2/services/bigtable_table_admin/transports/rest_base.py +1714 -0
  81. google/cloud/bigtable_admin_v2/types/__init__.py +248 -0
  82. google/cloud/bigtable_admin_v2/types/bigtable_instance_admin.py +1364 -0
  83. google/cloud/bigtable_admin_v2/types/bigtable_table_admin.py +1715 -0
  84. google/cloud/bigtable_admin_v2/types/common.py +81 -0
  85. google/cloud/bigtable_admin_v2/types/instance.py +819 -0
  86. google/cloud/bigtable_admin_v2/types/table.py +1028 -0
  87. google/cloud/bigtable_admin_v2/types/types.py +776 -0
  88. google/cloud/bigtable_v2/__init__.py +136 -0
  89. google/cloud/bigtable_v2/gapic_metadata.json +193 -0
  90. google/cloud/bigtable_v2/gapic_version.py +16 -0
  91. google/cloud/bigtable_v2/py.typed +2 -0
  92. google/cloud/bigtable_v2/services/__init__.py +15 -0
  93. google/cloud/bigtable_v2/services/bigtable/__init__.py +22 -0
  94. google/cloud/bigtable_v2/services/bigtable/async_client.py +1741 -0
  95. google/cloud/bigtable_v2/services/bigtable/client.py +2194 -0
  96. google/cloud/bigtable_v2/services/bigtable/transports/__init__.py +38 -0
  97. google/cloud/bigtable_v2/services/bigtable/transports/base.py +343 -0
  98. google/cloud/bigtable_v2/services/bigtable/transports/grpc.py +660 -0
  99. google/cloud/bigtable_v2/services/bigtable/transports/grpc_asyncio.py +762 -0
  100. google/cloud/bigtable_v2/services/bigtable/transports/rest.py +2489 -0
  101. google/cloud/bigtable_v2/services/bigtable/transports/rest_base.py +711 -0
  102. google/cloud/bigtable_v2/types/__init__.py +138 -0
  103. google/cloud/bigtable_v2/types/bigtable.py +1531 -0
  104. google/cloud/bigtable_v2/types/data.py +1612 -0
  105. google/cloud/bigtable_v2/types/feature_flags.py +119 -0
  106. google/cloud/bigtable_v2/types/request_stats.py +171 -0
  107. google/cloud/bigtable_v2/types/response_params.py +64 -0
  108. google/cloud/bigtable_v2/types/types.py +579 -0
  109. google_cloud_bigtable-2.30.0.data/scripts/fixup_bigtable_admin_v2_keywords.py +233 -0
  110. google_cloud_bigtable-2.30.0.data/scripts/fixup_bigtable_v2_keywords.py +186 -0
  111. google_cloud_bigtable-2.30.0.dist-info/LICENSE +202 -0
  112. google_cloud_bigtable-2.30.0.dist-info/METADATA +154 -0
  113. google_cloud_bigtable-2.30.0.dist-info/RECORD +115 -0
  114. google_cloud_bigtable-2.30.0.dist-info/WHEEL +5 -0
  115. google_cloud_bigtable-2.30.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,819 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Copyright 2024 Google LLC
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #
16
+ from __future__ import annotations
17
+
18
+ from typing import MutableMapping, MutableSequence
19
+
20
+ import proto # type: ignore
21
+
22
+ from google.cloud.bigtable_admin_v2.types import common
23
+ from google.protobuf import timestamp_pb2 # type: ignore
24
+
25
+
26
+ __protobuf__ = proto.module(
27
+ package="google.bigtable.admin.v2",
28
+ manifest={
29
+ "Instance",
30
+ "AutoscalingTargets",
31
+ "AutoscalingLimits",
32
+ "Cluster",
33
+ "AppProfile",
34
+ "HotTablet",
35
+ "LogicalView",
36
+ "MaterializedView",
37
+ },
38
+ )
39
+
40
+
41
+ class Instance(proto.Message):
42
+ r"""A collection of Bigtable [Tables][google.bigtable.admin.v2.Table]
43
+ and the resources that serve them. All tables in an instance are
44
+ served from all [Clusters][google.bigtable.admin.v2.Cluster] in the
45
+ instance.
46
+
47
+
48
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
49
+
50
+ Attributes:
51
+ name (str):
52
+ The unique name of the instance. Values are of the form
53
+ ``projects/{project}/instances/[a-z][a-z0-9\\-]+[a-z0-9]``.
54
+ display_name (str):
55
+ Required. The descriptive name for this
56
+ instance as it appears in UIs. Can be changed at
57
+ any time, but should be kept globally unique to
58
+ avoid confusion.
59
+ state (google.cloud.bigtable_admin_v2.types.Instance.State):
60
+ Output only. The current state of the
61
+ instance.
62
+ type_ (google.cloud.bigtable_admin_v2.types.Instance.Type):
63
+ The type of the instance. Defaults to ``PRODUCTION``.
64
+ labels (MutableMapping[str, str]):
65
+ Labels are a flexible and lightweight mechanism for
66
+ organizing cloud resources into groups that reflect a
67
+ customer's organizational needs and deployment strategies.
68
+ They can be used to filter resources and aggregate metrics.
69
+
70
+ - Label keys must be between 1 and 63 characters long and
71
+ must conform to the regular expression:
72
+ ``[\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}``.
73
+ - Label values must be between 0 and 63 characters long and
74
+ must conform to the regular expression:
75
+ ``[\p{Ll}\p{Lo}\p{N}_-]{0,63}``.
76
+ - No more than 64 labels can be associated with a given
77
+ resource.
78
+ - Keys and values must both be under 128 bytes.
79
+ create_time (google.protobuf.timestamp_pb2.Timestamp):
80
+ Output only. A commit timestamp representing when this
81
+ Instance was created. For instances created before this
82
+ field was added (August 2021), this value is
83
+ ``seconds: 0, nanos: 1``.
84
+ satisfies_pzs (bool):
85
+ Output only. Reserved for future use.
86
+
87
+ This field is a member of `oneof`_ ``_satisfies_pzs``.
88
+ satisfies_pzi (bool):
89
+ Output only. Reserved for future use.
90
+
91
+ This field is a member of `oneof`_ ``_satisfies_pzi``.
92
+ """
93
+
94
+ class State(proto.Enum):
95
+ r"""Possible states of an instance.
96
+
97
+ Values:
98
+ STATE_NOT_KNOWN (0):
99
+ The state of the instance could not be
100
+ determined.
101
+ READY (1):
102
+ The instance has been successfully created
103
+ and can serve requests to its tables.
104
+ CREATING (2):
105
+ The instance is currently being created, and
106
+ may be destroyed if the creation process
107
+ encounters an error.
108
+ """
109
+ STATE_NOT_KNOWN = 0
110
+ READY = 1
111
+ CREATING = 2
112
+
113
+ class Type(proto.Enum):
114
+ r"""The type of the instance.
115
+
116
+ Values:
117
+ TYPE_UNSPECIFIED (0):
118
+ The type of the instance is unspecified. If set when
119
+ creating an instance, a ``PRODUCTION`` instance will be
120
+ created. If set when updating an instance, the type will be
121
+ left unchanged.
122
+ PRODUCTION (1):
123
+ An instance meant for production use. ``serve_nodes`` must
124
+ be set on the cluster.
125
+ DEVELOPMENT (2):
126
+ DEPRECATED: Prefer PRODUCTION for all use
127
+ cases, as it no longer enforces a higher minimum
128
+ node count than DEVELOPMENT.
129
+ """
130
+ TYPE_UNSPECIFIED = 0
131
+ PRODUCTION = 1
132
+ DEVELOPMENT = 2
133
+
134
+ name: str = proto.Field(
135
+ proto.STRING,
136
+ number=1,
137
+ )
138
+ display_name: str = proto.Field(
139
+ proto.STRING,
140
+ number=2,
141
+ )
142
+ state: State = proto.Field(
143
+ proto.ENUM,
144
+ number=3,
145
+ enum=State,
146
+ )
147
+ type_: Type = proto.Field(
148
+ proto.ENUM,
149
+ number=4,
150
+ enum=Type,
151
+ )
152
+ labels: MutableMapping[str, str] = proto.MapField(
153
+ proto.STRING,
154
+ proto.STRING,
155
+ number=5,
156
+ )
157
+ create_time: timestamp_pb2.Timestamp = proto.Field(
158
+ proto.MESSAGE,
159
+ number=7,
160
+ message=timestamp_pb2.Timestamp,
161
+ )
162
+ satisfies_pzs: bool = proto.Field(
163
+ proto.BOOL,
164
+ number=8,
165
+ optional=True,
166
+ )
167
+ satisfies_pzi: bool = proto.Field(
168
+ proto.BOOL,
169
+ number=11,
170
+ optional=True,
171
+ )
172
+
173
+
174
+ class AutoscalingTargets(proto.Message):
175
+ r"""The Autoscaling targets for a Cluster. These determine the
176
+ recommended nodes.
177
+
178
+ Attributes:
179
+ cpu_utilization_percent (int):
180
+ The cpu utilization that the Autoscaler should be trying to
181
+ achieve. This number is on a scale from 0 (no utilization)
182
+ to 100 (total utilization), and is limited between 10 and
183
+ 80, otherwise it will return INVALID_ARGUMENT error.
184
+ storage_utilization_gib_per_node (int):
185
+ The storage utilization that the Autoscaler should be trying
186
+ to achieve. This number is limited between 2560 (2.5TiB) and
187
+ 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and
188
+ 16384 (16TiB) for an HDD cluster, otherwise it will return
189
+ INVALID_ARGUMENT error. If this value is set to 0, it will
190
+ be treated as if it were set to the default value: 2560 for
191
+ SSD, 8192 for HDD.
192
+ """
193
+
194
+ cpu_utilization_percent: int = proto.Field(
195
+ proto.INT32,
196
+ number=2,
197
+ )
198
+ storage_utilization_gib_per_node: int = proto.Field(
199
+ proto.INT32,
200
+ number=3,
201
+ )
202
+
203
+
204
+ class AutoscalingLimits(proto.Message):
205
+ r"""Limits for the number of nodes a Cluster can autoscale
206
+ up/down to.
207
+
208
+ Attributes:
209
+ min_serve_nodes (int):
210
+ Required. Minimum number of nodes to scale
211
+ down to.
212
+ max_serve_nodes (int):
213
+ Required. Maximum number of nodes to scale up
214
+ to.
215
+ """
216
+
217
+ min_serve_nodes: int = proto.Field(
218
+ proto.INT32,
219
+ number=1,
220
+ )
221
+ max_serve_nodes: int = proto.Field(
222
+ proto.INT32,
223
+ number=2,
224
+ )
225
+
226
+
227
+ class Cluster(proto.Message):
228
+ r"""A resizable group of nodes in a particular cloud location, capable
229
+ of serving all [Tables][google.bigtable.admin.v2.Table] in the
230
+ parent [Instance][google.bigtable.admin.v2.Instance].
231
+
232
+
233
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
234
+
235
+ Attributes:
236
+ name (str):
237
+ The unique name of the cluster. Values are of the form
238
+ ``projects/{project}/instances/{instance}/clusters/[a-z][-a-z0-9]*``.
239
+ location (str):
240
+ Immutable. The location where this cluster's nodes and
241
+ storage reside. For best performance, clients should be
242
+ located as close as possible to this cluster. Currently only
243
+ zones are supported, so values should be of the form
244
+ ``projects/{project}/locations/{zone}``.
245
+ state (google.cloud.bigtable_admin_v2.types.Cluster.State):
246
+ Output only. The current state of the
247
+ cluster.
248
+ serve_nodes (int):
249
+ The number of nodes in the cluster. If no
250
+ value is set, Cloud Bigtable automatically
251
+ allocates nodes based on your data footprint and
252
+ optimized for 50% storage utilization.
253
+ node_scaling_factor (google.cloud.bigtable_admin_v2.types.Cluster.NodeScalingFactor):
254
+ Immutable. The node scaling factor of this
255
+ cluster.
256
+ cluster_config (google.cloud.bigtable_admin_v2.types.Cluster.ClusterConfig):
257
+ Configuration for this cluster.
258
+
259
+ This field is a member of `oneof`_ ``config``.
260
+ default_storage_type (google.cloud.bigtable_admin_v2.types.StorageType):
261
+ Immutable. The type of storage used by this
262
+ cluster to serve its parent instance's tables,
263
+ unless explicitly overridden.
264
+ encryption_config (google.cloud.bigtable_admin_v2.types.Cluster.EncryptionConfig):
265
+ Immutable. The encryption configuration for
266
+ CMEK-protected clusters.
267
+ """
268
+
269
+ class State(proto.Enum):
270
+ r"""Possible states of a cluster.
271
+
272
+ Values:
273
+ STATE_NOT_KNOWN (0):
274
+ The state of the cluster could not be
275
+ determined.
276
+ READY (1):
277
+ The cluster has been successfully created and
278
+ is ready to serve requests.
279
+ CREATING (2):
280
+ The cluster is currently being created, and
281
+ may be destroyed if the creation process
282
+ encounters an error. A cluster may not be able
283
+ to serve requests while being created.
284
+ RESIZING (3):
285
+ The cluster is currently being resized, and
286
+ may revert to its previous node count if the
287
+ process encounters an error. A cluster is still
288
+ capable of serving requests while being resized,
289
+ but may exhibit performance as if its number of
290
+ allocated nodes is between the starting and
291
+ requested states.
292
+ DISABLED (4):
293
+ The cluster has no backing nodes. The data
294
+ (tables) still exist, but no operations can be
295
+ performed on the cluster.
296
+ """
297
+ STATE_NOT_KNOWN = 0
298
+ READY = 1
299
+ CREATING = 2
300
+ RESIZING = 3
301
+ DISABLED = 4
302
+
303
+ class NodeScalingFactor(proto.Enum):
304
+ r"""Possible node scaling factors of the clusters. Node scaling
305
+ delivers better latency and more throughput by removing node
306
+ boundaries.
307
+
308
+ Values:
309
+ NODE_SCALING_FACTOR_UNSPECIFIED (0):
310
+ No node scaling specified. Defaults to
311
+ NODE_SCALING_FACTOR_1X.
312
+ NODE_SCALING_FACTOR_1X (1):
313
+ The cluster is running with a scaling factor
314
+ of 1.
315
+ NODE_SCALING_FACTOR_2X (2):
316
+ The cluster is running with a scaling factor of 2. All node
317
+ count values must be in increments of 2 with this scaling
318
+ factor enabled, otherwise an INVALID_ARGUMENT error will be
319
+ returned.
320
+ """
321
+ NODE_SCALING_FACTOR_UNSPECIFIED = 0
322
+ NODE_SCALING_FACTOR_1X = 1
323
+ NODE_SCALING_FACTOR_2X = 2
324
+
325
+ class ClusterAutoscalingConfig(proto.Message):
326
+ r"""Autoscaling config for a cluster.
327
+
328
+ Attributes:
329
+ autoscaling_limits (google.cloud.bigtable_admin_v2.types.AutoscalingLimits):
330
+ Required. Autoscaling limits for this
331
+ cluster.
332
+ autoscaling_targets (google.cloud.bigtable_admin_v2.types.AutoscalingTargets):
333
+ Required. Autoscaling targets for this
334
+ cluster.
335
+ """
336
+
337
+ autoscaling_limits: "AutoscalingLimits" = proto.Field(
338
+ proto.MESSAGE,
339
+ number=1,
340
+ message="AutoscalingLimits",
341
+ )
342
+ autoscaling_targets: "AutoscalingTargets" = proto.Field(
343
+ proto.MESSAGE,
344
+ number=2,
345
+ message="AutoscalingTargets",
346
+ )
347
+
348
+ class ClusterConfig(proto.Message):
349
+ r"""Configuration for a cluster.
350
+
351
+ Attributes:
352
+ cluster_autoscaling_config (google.cloud.bigtable_admin_v2.types.Cluster.ClusterAutoscalingConfig):
353
+ Autoscaling configuration for this cluster.
354
+ """
355
+
356
+ cluster_autoscaling_config: "Cluster.ClusterAutoscalingConfig" = proto.Field(
357
+ proto.MESSAGE,
358
+ number=1,
359
+ message="Cluster.ClusterAutoscalingConfig",
360
+ )
361
+
362
+ class EncryptionConfig(proto.Message):
363
+ r"""Cloud Key Management Service (Cloud KMS) settings for a
364
+ CMEK-protected cluster.
365
+
366
+ Attributes:
367
+ kms_key_name (str):
368
+ Describes the Cloud KMS encryption key that will be used to
369
+ protect the destination Bigtable cluster. The requirements
370
+ for this key are:
371
+
372
+ 1) The Cloud Bigtable service account associated with the
373
+ project that contains this cluster must be granted the
374
+ ``cloudkms.cryptoKeyEncrypterDecrypter`` role on the CMEK
375
+ key.
376
+ 2) Only regional keys can be used and the region of the CMEK
377
+ key must match the region of the cluster. Values are of
378
+ the form
379
+ ``projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}``
380
+ """
381
+
382
+ kms_key_name: str = proto.Field(
383
+ proto.STRING,
384
+ number=1,
385
+ )
386
+
387
+ name: str = proto.Field(
388
+ proto.STRING,
389
+ number=1,
390
+ )
391
+ location: str = proto.Field(
392
+ proto.STRING,
393
+ number=2,
394
+ )
395
+ state: State = proto.Field(
396
+ proto.ENUM,
397
+ number=3,
398
+ enum=State,
399
+ )
400
+ serve_nodes: int = proto.Field(
401
+ proto.INT32,
402
+ number=4,
403
+ )
404
+ node_scaling_factor: NodeScalingFactor = proto.Field(
405
+ proto.ENUM,
406
+ number=9,
407
+ enum=NodeScalingFactor,
408
+ )
409
+ cluster_config: ClusterConfig = proto.Field(
410
+ proto.MESSAGE,
411
+ number=7,
412
+ oneof="config",
413
+ message=ClusterConfig,
414
+ )
415
+ default_storage_type: common.StorageType = proto.Field(
416
+ proto.ENUM,
417
+ number=5,
418
+ enum=common.StorageType,
419
+ )
420
+ encryption_config: EncryptionConfig = proto.Field(
421
+ proto.MESSAGE,
422
+ number=6,
423
+ message=EncryptionConfig,
424
+ )
425
+
426
+
427
+ class AppProfile(proto.Message):
428
+ r"""A configuration object describing how Cloud Bigtable should
429
+ treat traffic from a particular end user application.
430
+
431
+ This message has `oneof`_ fields (mutually exclusive fields).
432
+ For each oneof, at most one member field can be set at the same time.
433
+ Setting any member of the oneof automatically clears all other
434
+ members.
435
+
436
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
437
+
438
+ Attributes:
439
+ name (str):
440
+ The unique name of the app profile. Values are of the form
441
+ ``projects/{project}/instances/{instance}/appProfiles/[_a-zA-Z0-9][-_.a-zA-Z0-9]*``.
442
+ etag (str):
443
+ Strongly validated etag for optimistic concurrency control.
444
+ Preserve the value returned from ``GetAppProfile`` when
445
+ calling ``UpdateAppProfile`` to fail the request if there
446
+ has been a modification in the mean time. The
447
+ ``update_mask`` of the request need not include ``etag`` for
448
+ this protection to apply. See
449
+ `Wikipedia <https://en.wikipedia.org/wiki/HTTP_ETag>`__ and
450
+ `RFC
451
+ 7232 <https://tools.ietf.org/html/rfc7232#section-2.3>`__
452
+ for more details.
453
+ description (str):
454
+ Long form description of the use case for
455
+ this AppProfile.
456
+ multi_cluster_routing_use_any (google.cloud.bigtable_admin_v2.types.AppProfile.MultiClusterRoutingUseAny):
457
+ Use a multi-cluster routing policy.
458
+
459
+ This field is a member of `oneof`_ ``routing_policy``.
460
+ single_cluster_routing (google.cloud.bigtable_admin_v2.types.AppProfile.SingleClusterRouting):
461
+ Use a single-cluster routing policy.
462
+
463
+ This field is a member of `oneof`_ ``routing_policy``.
464
+ priority (google.cloud.bigtable_admin_v2.types.AppProfile.Priority):
465
+ This field has been deprecated in favor of
466
+ ``standard_isolation.priority``. If you set this field,
467
+ ``standard_isolation.priority`` will be set instead.
468
+
469
+ The priority of requests sent using this app profile.
470
+
471
+ This field is a member of `oneof`_ ``isolation``.
472
+ standard_isolation (google.cloud.bigtable_admin_v2.types.AppProfile.StandardIsolation):
473
+ The standard options used for isolating this
474
+ app profile's traffic from other use cases.
475
+
476
+ This field is a member of `oneof`_ ``isolation``.
477
+ data_boost_isolation_read_only (google.cloud.bigtable_admin_v2.types.AppProfile.DataBoostIsolationReadOnly):
478
+ Specifies that this app profile is intended
479
+ for read-only usage via the Data Boost feature.
480
+
481
+ This field is a member of `oneof`_ ``isolation``.
482
+ """
483
+
484
+ class Priority(proto.Enum):
485
+ r"""Possible priorities for an app profile. Note that higher
486
+ priority writes can sometimes queue behind lower priority writes
487
+ to the same tablet, as writes must be strictly sequenced in the
488
+ durability log.
489
+
490
+ Values:
491
+ PRIORITY_UNSPECIFIED (0):
492
+ Default value. Mapped to PRIORITY_HIGH (the legacy behavior)
493
+ on creation.
494
+ PRIORITY_LOW (1):
495
+ No description available.
496
+ PRIORITY_MEDIUM (2):
497
+ No description available.
498
+ PRIORITY_HIGH (3):
499
+ No description available.
500
+ """
501
+ PRIORITY_UNSPECIFIED = 0
502
+ PRIORITY_LOW = 1
503
+ PRIORITY_MEDIUM = 2
504
+ PRIORITY_HIGH = 3
505
+
506
+ class MultiClusterRoutingUseAny(proto.Message):
507
+ r"""Read/write requests are routed to the nearest cluster in the
508
+ instance, and will fail over to the nearest cluster that is
509
+ available in the event of transient errors or delays. Clusters
510
+ in a region are considered equidistant. Choosing this option
511
+ sacrifices read-your-writes consistency to improve availability.
512
+
513
+
514
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
515
+
516
+ Attributes:
517
+ cluster_ids (MutableSequence[str]):
518
+ The set of clusters to route to. The order is
519
+ ignored; clusters will be tried in order of
520
+ distance. If left empty, all clusters are
521
+ eligible.
522
+ row_affinity (google.cloud.bigtable_admin_v2.types.AppProfile.MultiClusterRoutingUseAny.RowAffinity):
523
+ Row affinity sticky routing based on the row
524
+ key of the request. Requests that span multiple
525
+ rows are routed non-deterministically.
526
+
527
+ This field is a member of `oneof`_ ``affinity``.
528
+ """
529
+
530
+ class RowAffinity(proto.Message):
531
+ r"""If enabled, Bigtable will route the request based on the row
532
+ key of the request, rather than randomly. Instead, each row key
533
+ will be assigned to a cluster, and will stick to that cluster.
534
+ If clusters are added or removed, then this may affect which row
535
+ keys stick to which clusters. To avoid this, users can use a
536
+ cluster group to specify which clusters are to be used. In this
537
+ case, new clusters that are not a part of the cluster group will
538
+ not be routed to, and routing will be unaffected by the new
539
+ cluster. Moreover, clusters specified in the cluster group
540
+ cannot be deleted unless removed from the cluster group.
541
+
542
+ """
543
+
544
+ cluster_ids: MutableSequence[str] = proto.RepeatedField(
545
+ proto.STRING,
546
+ number=1,
547
+ )
548
+ row_affinity: "AppProfile.MultiClusterRoutingUseAny.RowAffinity" = proto.Field(
549
+ proto.MESSAGE,
550
+ number=3,
551
+ oneof="affinity",
552
+ message="AppProfile.MultiClusterRoutingUseAny.RowAffinity",
553
+ )
554
+
555
+ class SingleClusterRouting(proto.Message):
556
+ r"""Unconditionally routes all read/write requests to a specific
557
+ cluster. This option preserves read-your-writes consistency but
558
+ does not improve availability.
559
+
560
+ Attributes:
561
+ cluster_id (str):
562
+ The cluster to which read/write requests
563
+ should be routed.
564
+ allow_transactional_writes (bool):
565
+ Whether or not ``CheckAndMutateRow`` and
566
+ ``ReadModifyWriteRow`` requests are allowed by this app
567
+ profile. It is unsafe to send these requests to the same
568
+ table/row/column in multiple clusters.
569
+ """
570
+
571
+ cluster_id: str = proto.Field(
572
+ proto.STRING,
573
+ number=1,
574
+ )
575
+ allow_transactional_writes: bool = proto.Field(
576
+ proto.BOOL,
577
+ number=2,
578
+ )
579
+
580
+ class StandardIsolation(proto.Message):
581
+ r"""Standard options for isolating this app profile's traffic
582
+ from other use cases.
583
+
584
+ Attributes:
585
+ priority (google.cloud.bigtable_admin_v2.types.AppProfile.Priority):
586
+ The priority of requests sent using this app
587
+ profile.
588
+ """
589
+
590
+ priority: "AppProfile.Priority" = proto.Field(
591
+ proto.ENUM,
592
+ number=1,
593
+ enum="AppProfile.Priority",
594
+ )
595
+
596
+ class DataBoostIsolationReadOnly(proto.Message):
597
+ r"""Data Boost is a serverless compute capability that lets you
598
+ run high-throughput read jobs and queries on your Bigtable data,
599
+ without impacting the performance of the clusters that handle
600
+ your application traffic. Data Boost supports read-only use
601
+ cases with single-cluster routing.
602
+
603
+
604
+ .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
605
+
606
+ Attributes:
607
+ compute_billing_owner (google.cloud.bigtable_admin_v2.types.AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner):
608
+ The Compute Billing Owner for this Data Boost
609
+ App Profile.
610
+
611
+ This field is a member of `oneof`_ ``_compute_billing_owner``.
612
+ """
613
+
614
+ class ComputeBillingOwner(proto.Enum):
615
+ r"""Compute Billing Owner specifies how usage should be accounted
616
+ when using Data Boost. Compute Billing Owner also configures
617
+ which Cloud Project is charged for relevant quota.
618
+
619
+ Values:
620
+ COMPUTE_BILLING_OWNER_UNSPECIFIED (0):
621
+ Unspecified value.
622
+ HOST_PAYS (1):
623
+ The host Cloud Project containing the
624
+ targeted Bigtable Instance / Table pays for
625
+ compute.
626
+ """
627
+ COMPUTE_BILLING_OWNER_UNSPECIFIED = 0
628
+ HOST_PAYS = 1
629
+
630
+ compute_billing_owner: "AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner" = proto.Field(
631
+ proto.ENUM,
632
+ number=1,
633
+ optional=True,
634
+ enum="AppProfile.DataBoostIsolationReadOnly.ComputeBillingOwner",
635
+ )
636
+
637
+ name: str = proto.Field(
638
+ proto.STRING,
639
+ number=1,
640
+ )
641
+ etag: str = proto.Field(
642
+ proto.STRING,
643
+ number=2,
644
+ )
645
+ description: str = proto.Field(
646
+ proto.STRING,
647
+ number=3,
648
+ )
649
+ multi_cluster_routing_use_any: MultiClusterRoutingUseAny = proto.Field(
650
+ proto.MESSAGE,
651
+ number=5,
652
+ oneof="routing_policy",
653
+ message=MultiClusterRoutingUseAny,
654
+ )
655
+ single_cluster_routing: SingleClusterRouting = proto.Field(
656
+ proto.MESSAGE,
657
+ number=6,
658
+ oneof="routing_policy",
659
+ message=SingleClusterRouting,
660
+ )
661
+ priority: Priority = proto.Field(
662
+ proto.ENUM,
663
+ number=7,
664
+ oneof="isolation",
665
+ enum=Priority,
666
+ )
667
+ standard_isolation: StandardIsolation = proto.Field(
668
+ proto.MESSAGE,
669
+ number=11,
670
+ oneof="isolation",
671
+ message=StandardIsolation,
672
+ )
673
+ data_boost_isolation_read_only: DataBoostIsolationReadOnly = proto.Field(
674
+ proto.MESSAGE,
675
+ number=10,
676
+ oneof="isolation",
677
+ message=DataBoostIsolationReadOnly,
678
+ )
679
+
680
+
681
+ class HotTablet(proto.Message):
682
+ r"""A tablet is a defined by a start and end key and is explained
683
+ in https://cloud.google.com/bigtable/docs/overview#architecture
684
+ and
685
+ https://cloud.google.com/bigtable/docs/performance#optimization.
686
+ A Hot tablet is a tablet that exhibits high average cpu usage
687
+ during the time interval from start time to end time.
688
+
689
+ Attributes:
690
+ name (str):
691
+ The unique name of the hot tablet. Values are of the form
692
+ ``projects/{project}/instances/{instance}/clusters/{cluster}/hotTablets/[a-zA-Z0-9_-]*``.
693
+ table_name (str):
694
+ Name of the table that contains the tablet. Values are of
695
+ the form
696
+ ``projects/{project}/instances/{instance}/tables/[_a-zA-Z0-9][-_.a-zA-Z0-9]*``.
697
+ start_time (google.protobuf.timestamp_pb2.Timestamp):
698
+ Output only. The start time of the hot
699
+ tablet.
700
+ end_time (google.protobuf.timestamp_pb2.Timestamp):
701
+ Output only. The end time of the hot tablet.
702
+ start_key (str):
703
+ Tablet Start Key (inclusive).
704
+ end_key (str):
705
+ Tablet End Key (inclusive).
706
+ node_cpu_usage_percent (float):
707
+ Output only. The average CPU usage spent by a node on this
708
+ tablet over the start_time to end_time time range. The
709
+ percentage is the amount of CPU used by the node to serve
710
+ the tablet, from 0% (tablet was not interacted with) to 100%
711
+ (the node spent all cycles serving the hot tablet).
712
+ """
713
+
714
+ name: str = proto.Field(
715
+ proto.STRING,
716
+ number=1,
717
+ )
718
+ table_name: str = proto.Field(
719
+ proto.STRING,
720
+ number=2,
721
+ )
722
+ start_time: timestamp_pb2.Timestamp = proto.Field(
723
+ proto.MESSAGE,
724
+ number=3,
725
+ message=timestamp_pb2.Timestamp,
726
+ )
727
+ end_time: timestamp_pb2.Timestamp = proto.Field(
728
+ proto.MESSAGE,
729
+ number=4,
730
+ message=timestamp_pb2.Timestamp,
731
+ )
732
+ start_key: str = proto.Field(
733
+ proto.STRING,
734
+ number=5,
735
+ )
736
+ end_key: str = proto.Field(
737
+ proto.STRING,
738
+ number=6,
739
+ )
740
+ node_cpu_usage_percent: float = proto.Field(
741
+ proto.FLOAT,
742
+ number=7,
743
+ )
744
+
745
+
746
+ class LogicalView(proto.Message):
747
+ r"""A SQL logical view object that can be referenced in SQL
748
+ queries.
749
+
750
+ Attributes:
751
+ name (str):
752
+ Identifier. The unique name of the logical view. Format:
753
+ ``projects/{project}/instances/{instance}/logicalViews/{logical_view}``
754
+ query (str):
755
+ Required. The logical view's select query.
756
+ etag (str):
757
+ Optional. The etag for this logical view.
758
+ This may be sent on update requests to ensure
759
+ that the client has an up-to-date value before
760
+ proceeding. The server returns an ABORTED error
761
+ on a mismatched etag.
762
+ """
763
+
764
+ name: str = proto.Field(
765
+ proto.STRING,
766
+ number=1,
767
+ )
768
+ query: str = proto.Field(
769
+ proto.STRING,
770
+ number=2,
771
+ )
772
+ etag: str = proto.Field(
773
+ proto.STRING,
774
+ number=3,
775
+ )
776
+
777
+
778
+ class MaterializedView(proto.Message):
779
+ r"""A materialized view object that can be referenced in SQL
780
+ queries.
781
+
782
+ Attributes:
783
+ name (str):
784
+ Identifier. The unique name of the materialized view.
785
+ Format:
786
+ ``projects/{project}/instances/{instance}/materializedViews/{materialized_view}``
787
+ query (str):
788
+ Required. Immutable. The materialized view's
789
+ select query.
790
+ etag (str):
791
+ Optional. The etag for this materialized
792
+ view. This may be sent on update requests to
793
+ ensure that the client has an up-to-date value
794
+ before proceeding. The server returns an ABORTED
795
+ error on a mismatched etag.
796
+ deletion_protection (bool):
797
+ Set to true to make the MaterializedView
798
+ protected against deletion.
799
+ """
800
+
801
+ name: str = proto.Field(
802
+ proto.STRING,
803
+ number=1,
804
+ )
805
+ query: str = proto.Field(
806
+ proto.STRING,
807
+ number=2,
808
+ )
809
+ etag: str = proto.Field(
810
+ proto.STRING,
811
+ number=3,
812
+ )
813
+ deletion_protection: bool = proto.Field(
814
+ proto.BOOL,
815
+ number=6,
816
+ )
817
+
818
+
819
+ __all__ = tuple(sorted(__protobuf__.manifest))