google-cloud-bigtable 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +19 -0
  3. data/AUTHENTICATION.md +177 -0
  4. data/CHANGELOG.md +223 -0
  5. data/CODE_OF_CONDUCT.md +40 -0
  6. data/CONTRIBUTING.md +188 -0
  7. data/EMULATOR.md +30 -0
  8. data/LICENSE +201 -0
  9. data/LOGGING.md +32 -0
  10. data/OVERVIEW.md +400 -0
  11. data/TROUBLESHOOTING.md +31 -0
  12. data/lib/google-cloud-bigtable.rb +171 -0
  13. data/lib/google/bigtable/admin/v2/bigtable_instance_admin_pb.rb +145 -0
  14. data/lib/google/bigtable/admin/v2/bigtable_instance_admin_services_pb.rb +90 -0
  15. data/lib/google/bigtable/admin/v2/bigtable_table_admin_pb.rb +208 -0
  16. data/lib/google/bigtable/admin/v2/bigtable_table_admin_services_pb.rb +154 -0
  17. data/lib/google/bigtable/admin/v2/common_pb.rb +30 -0
  18. data/lib/google/bigtable/admin/v2/instance_pb.rb +74 -0
  19. data/lib/google/bigtable/admin/v2/table_pb.rb +127 -0
  20. data/lib/google/bigtable/v2/bigtable_pb.rb +113 -0
  21. data/lib/google/bigtable/v2/bigtable_services_pb.rb +68 -0
  22. data/lib/google/bigtable/v2/data_pb.rb +156 -0
  23. data/lib/google/cloud/bigtable.rb +184 -0
  24. data/lib/google/cloud/bigtable/admin.rb +202 -0
  25. data/lib/google/cloud/bigtable/admin/credentials.rb +27 -0
  26. data/lib/google/cloud/bigtable/admin/v2.rb +223 -0
  27. data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client.rb +1451 -0
  28. data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client_config.json +139 -0
  29. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +1734 -0
  30. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client_config.json +163 -0
  31. data/lib/google/cloud/bigtable/admin/v2/credentials.rb +51 -0
  32. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_instance_admin.rb +297 -0
  33. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_table_admin.rb +587 -0
  34. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/instance.rb +193 -0
  35. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/table.rb +303 -0
  36. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/iam_policy.rb +64 -0
  37. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/options.rb +33 -0
  38. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +151 -0
  39. data/lib/google/cloud/bigtable/admin/v2/doc/google/longrunning/operations.rb +51 -0
  40. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/any.rb +131 -0
  41. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/duration.rb +91 -0
  42. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/empty.rb +29 -0
  43. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/field_mask.rb +222 -0
  44. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/timestamp.rb +113 -0
  45. data/lib/google/cloud/bigtable/admin/v2/doc/google/rpc/status.rb +39 -0
  46. data/lib/google/cloud/bigtable/admin/v2/doc/google/type/expr.rb +45 -0
  47. data/lib/google/cloud/bigtable/app_profile.rb +439 -0
  48. data/lib/google/cloud/bigtable/app_profile/job.rb +99 -0
  49. data/lib/google/cloud/bigtable/app_profile/list.rb +165 -0
  50. data/lib/google/cloud/bigtable/backup.rb +324 -0
  51. data/lib/google/cloud/bigtable/backup/job.rb +87 -0
  52. data/lib/google/cloud/bigtable/backup/list.rb +167 -0
  53. data/lib/google/cloud/bigtable/chunk_processor.rb +241 -0
  54. data/lib/google/cloud/bigtable/cluster.rb +390 -0
  55. data/lib/google/cloud/bigtable/cluster/job.rb +88 -0
  56. data/lib/google/cloud/bigtable/cluster/list.rb +171 -0
  57. data/lib/google/cloud/bigtable/column_family.rb +73 -0
  58. data/lib/google/cloud/bigtable/column_family_map.rb +426 -0
  59. data/lib/google/cloud/bigtable/column_range.rb +194 -0
  60. data/lib/google/cloud/bigtable/convert.rb +83 -0
  61. data/lib/google/cloud/bigtable/credentials.rb +25 -0
  62. data/lib/google/cloud/bigtable/errors.rb +38 -0
  63. data/lib/google/cloud/bigtable/gc_rule.rb +334 -0
  64. data/lib/google/cloud/bigtable/instance.rb +935 -0
  65. data/lib/google/cloud/bigtable/instance/cluster_map.rb +74 -0
  66. data/lib/google/cloud/bigtable/instance/job.rb +98 -0
  67. data/lib/google/cloud/bigtable/instance/list.rb +164 -0
  68. data/lib/google/cloud/bigtable/longrunning_job.rb +122 -0
  69. data/lib/google/cloud/bigtable/mutation_entry.rb +256 -0
  70. data/lib/google/cloud/bigtable/mutation_operations.rb +357 -0
  71. data/lib/google/cloud/bigtable/policy.rb +167 -0
  72. data/lib/google/cloud/bigtable/project.rb +471 -0
  73. data/lib/google/cloud/bigtable/read_modify_write_rule.rb +134 -0
  74. data/lib/google/cloud/bigtable/read_operations.rb +328 -0
  75. data/lib/google/cloud/bigtable/routing_policy.rb +172 -0
  76. data/lib/google/cloud/bigtable/row.rb +136 -0
  77. data/lib/google/cloud/bigtable/row_filter.rb +639 -0
  78. data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +590 -0
  79. data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +114 -0
  80. data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +621 -0
  81. data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +287 -0
  82. data/lib/google/cloud/bigtable/row_range.rb +179 -0
  83. data/lib/google/cloud/bigtable/rows_mutator.rb +113 -0
  84. data/lib/google/cloud/bigtable/rows_reader.rb +200 -0
  85. data/lib/google/cloud/bigtable/sample_row_key.rb +85 -0
  86. data/lib/google/cloud/bigtable/service.rb +913 -0
  87. data/lib/google/cloud/bigtable/status.rb +76 -0
  88. data/lib/google/cloud/bigtable/table.rb +686 -0
  89. data/lib/google/cloud/bigtable/table/cluster_state.rb +125 -0
  90. data/lib/google/cloud/bigtable/table/list.rb +154 -0
  91. data/lib/google/cloud/bigtable/table/restore_job.rb +117 -0
  92. data/lib/google/cloud/bigtable/v2.rb +146 -0
  93. data/lib/google/cloud/bigtable/v2/bigtable_client.rb +591 -0
  94. data/lib/google/cloud/bigtable/v2/bigtable_client_config.json +83 -0
  95. data/lib/google/cloud/bigtable/v2/credentials.rb +46 -0
  96. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +290 -0
  97. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/data.rb +493 -0
  98. data/lib/google/cloud/bigtable/v2/doc/google/protobuf/any.rb +131 -0
  99. data/lib/google/cloud/bigtable/v2/doc/google/protobuf/wrappers.rb +34 -0
  100. data/lib/google/cloud/bigtable/v2/doc/google/rpc/status.rb +39 -0
  101. data/lib/google/cloud/bigtable/value_range.rb +181 -0
  102. data/lib/google/cloud/bigtable/version.rb +22 -0
  103. metadata +337 -0
@@ -0,0 +1,83 @@
1
+ {
2
+ "interfaces": {
3
+ "google.bigtable.v2.Bigtable": {
4
+ "retry_codes": {
5
+ "idempotent": [
6
+ "DEADLINE_EXCEEDED",
7
+ "UNAVAILABLE"
8
+ ],
9
+ "non_idempotent": []
10
+ },
11
+ "retry_params": {
12
+ "idempotent_params": {
13
+ "initial_retry_delay_millis": 10,
14
+ "retry_delay_multiplier": 2.0,
15
+ "max_retry_delay_millis": 60000,
16
+ "initial_rpc_timeout_millis": 20000,
17
+ "rpc_timeout_multiplier": 1.0,
18
+ "max_rpc_timeout_millis": 20000,
19
+ "total_timeout_millis": 600000
20
+ },
21
+ "non_idempotent_params": {
22
+ "initial_retry_delay_millis": 10,
23
+ "retry_delay_multiplier": 2.0,
24
+ "max_retry_delay_millis": 60000,
25
+ "initial_rpc_timeout_millis": 20000,
26
+ "rpc_timeout_multiplier": 1.0,
27
+ "max_rpc_timeout_millis": 20000,
28
+ "total_timeout_millis": 20000
29
+ },
30
+ "read_rows_params": {
31
+ "initial_retry_delay_millis": 10,
32
+ "retry_delay_multiplier": 2.0,
33
+ "max_retry_delay_millis": 60000,
34
+ "initial_rpc_timeout_millis": 300000,
35
+ "rpc_timeout_multiplier": 1.0,
36
+ "max_rpc_timeout_millis": 300000,
37
+ "total_timeout_millis": 43200000
38
+ },
39
+ "mutate_rows_params": {
40
+ "initial_retry_delay_millis": 10,
41
+ "retry_delay_multiplier": 2.0,
42
+ "max_retry_delay_millis": 60000,
43
+ "initial_rpc_timeout_millis": 60000,
44
+ "rpc_timeout_multiplier": 1.0,
45
+ "max_rpc_timeout_millis": 60000,
46
+ "total_timeout_millis": 600000
47
+ }
48
+ },
49
+ "methods": {
50
+ "ReadRows": {
51
+ "timeout_millis": 43200000,
52
+ "retry_codes_name": "non_idempotent",
53
+ "retry_params_name": "read_rows_params"
54
+ },
55
+ "SampleRowKeys": {
56
+ "timeout_millis": 60000,
57
+ "retry_codes_name": "non_idempotent",
58
+ "retry_params_name": "non_idempotent_params"
59
+ },
60
+ "MutateRow": {
61
+ "timeout_millis": 60000,
62
+ "retry_codes_name": "idempotent",
63
+ "retry_params_name": "idempotent_params"
64
+ },
65
+ "MutateRows": {
66
+ "timeout_millis": 600000,
67
+ "retry_codes_name": "non_idempotent",
68
+ "retry_params_name": "mutate_rows_params"
69
+ },
70
+ "CheckAndMutateRow": {
71
+ "timeout_millis": 20000,
72
+ "retry_codes_name": "non_idempotent",
73
+ "retry_params_name": "non_idempotent_params"
74
+ },
75
+ "ReadModifyWriteRow": {
76
+ "timeout_millis": 20000,
77
+ "retry_codes_name": "non_idempotent",
78
+ "retry_params_name": "non_idempotent_params"
79
+ }
80
+ }
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,46 @@
1
+ # Copyright 2020 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
+ # https://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
+
15
+
16
+ require "googleauth"
17
+
18
+ module Google
19
+ module Cloud
20
+ module Bigtable
21
+ module V2
22
+ class Credentials < Google::Auth::Credentials
23
+ SCOPE = [
24
+ "https://www.googleapis.com/auth/bigtable.data",
25
+ "https://www.googleapis.com/auth/bigtable.data.readonly",
26
+ "https://www.googleapis.com/auth/cloud-bigtable.data",
27
+ "https://www.googleapis.com/auth/cloud-bigtable.data.readonly",
28
+ "https://www.googleapis.com/auth/cloud-platform",
29
+ "https://www.googleapis.com/auth/cloud-platform.read-only"
30
+ ].freeze
31
+ PATH_ENV_VARS = %w(BIGTABLE_CREDENTIALS
32
+ BIGTABLE_KEYFILE
33
+ GOOGLE_CLOUD_CREDENTIALS
34
+ GOOGLE_CLOUD_KEYFILE
35
+ GCLOUD_KEYFILE)
36
+ JSON_ENV_VARS = %w(BIGTABLE_CREDENTIALS_JSON
37
+ BIGTABLE_KEYFILE_JSON
38
+ GOOGLE_CLOUD_CREDENTIALS_JSON
39
+ GOOGLE_CLOUD_KEYFILE_JSON
40
+ GCLOUD_KEYFILE_JSON)
41
+ DEFAULT_PATHS = ["~/.config/gcloud/application_default_credentials.json"]
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,290 @@
1
+ # Copyright 2020 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
+ # https://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
+
15
+
16
+ module Google
17
+ module Bigtable
18
+ module V2
19
+ # Request message for Bigtable.ReadRows.
20
+ # @!attribute [rw] table_name
21
+ # @return [String]
22
+ # Required. The unique name of the table from which to read.
23
+ # Values are of the form
24
+ # `projects/<project>/instances/<instance>/tables/<table>`.
25
+ # @!attribute [rw] app_profile_id
26
+ # @return [String]
27
+ # This value specifies routing for replication. If not specified, the
28
+ # "default" application profile will be used.
29
+ # @!attribute [rw] rows
30
+ # @return [Google::Bigtable::V2::RowSet]
31
+ # The row keys and/or ranges to read. If not specified, reads from all rows.
32
+ # @!attribute [rw] filter
33
+ # @return [Google::Bigtable::V2::RowFilter]
34
+ # The filter to apply to the contents of the specified row(s). If unset,
35
+ # reads the entirety of each row.
36
+ # @!attribute [rw] rows_limit
37
+ # @return [Integer]
38
+ # The read will terminate after committing to N rows' worth of results. The
39
+ # default (zero) is to return all results.
40
+ class ReadRowsRequest; end
41
+
42
+ # Response message for Bigtable.ReadRows.
43
+ # @!attribute [rw] chunks
44
+ # @return [Array<Google::Bigtable::V2::ReadRowsResponse::CellChunk>]
45
+ # A collection of a row's contents as part of the read request.
46
+ # @!attribute [rw] last_scanned_row_key
47
+ # @return [String]
48
+ # Optionally the server might return the row key of the last row it
49
+ # has scanned. The client can use this to construct a more
50
+ # efficient retry request if needed: any row keys or portions of
51
+ # ranges less than this row key can be dropped from the request.
52
+ # This is primarily useful for cases where the server has read a
53
+ # lot of data that was filtered out since the last committed row
54
+ # key, allowing the client to skip that work on a retry.
55
+ class ReadRowsResponse
56
+ # Specifies a piece of a row's contents returned as part of the read
57
+ # response stream.
58
+ # @!attribute [rw] row_key
59
+ # @return [String]
60
+ # The row key for this chunk of data. If the row key is empty,
61
+ # this CellChunk is a continuation of the same row as the previous
62
+ # CellChunk in the response stream, even if that CellChunk was in a
63
+ # previous ReadRowsResponse message.
64
+ # @!attribute [rw] family_name
65
+ # @return [Google::Protobuf::StringValue]
66
+ # The column family name for this chunk of data. If this message
67
+ # is not present this CellChunk is a continuation of the same column
68
+ # family as the previous CellChunk. The empty string can occur as a
69
+ # column family name in a response so clients must check
70
+ # explicitly for the presence of this message, not just for
71
+ # `family_name.value` being non-empty.
72
+ # @!attribute [rw] qualifier
73
+ # @return [Google::Protobuf::BytesValue]
74
+ # The column qualifier for this chunk of data. If this message
75
+ # is not present, this CellChunk is a continuation of the same column
76
+ # as the previous CellChunk. Column qualifiers may be empty so
77
+ # clients must check for the presence of this message, not just
78
+ # for `qualifier.value` being non-empty.
79
+ # @!attribute [rw] timestamp_micros
80
+ # @return [Integer]
81
+ # The cell's stored timestamp, which also uniquely identifies it
82
+ # within its column. Values are always expressed in
83
+ # microseconds, but individual tables may set a coarser
84
+ # granularity to further restrict the allowed values. For
85
+ # example, a table which specifies millisecond granularity will
86
+ # only allow values of `timestamp_micros` which are multiples of
87
+ # 1000. Timestamps are only set in the first CellChunk per cell
88
+ # (for cells split into multiple chunks).
89
+ # @!attribute [rw] labels
90
+ # @return [Array<String>]
91
+ # Labels applied to the cell by a
92
+ # {Google::Bigtable::V2::RowFilter RowFilter}. Labels are only set
93
+ # on the first CellChunk per cell.
94
+ # @!attribute [rw] value
95
+ # @return [String]
96
+ # The value stored in the cell. Cell values can be split across
97
+ # multiple CellChunks. In that case only the value field will be
98
+ # set in CellChunks after the first: the timestamp and labels
99
+ # will only be present in the first CellChunk, even if the first
100
+ # CellChunk came in a previous ReadRowsResponse.
101
+ # @!attribute [rw] value_size
102
+ # @return [Integer]
103
+ # If this CellChunk is part of a chunked cell value and this is
104
+ # not the final chunk of that cell, value_size will be set to the
105
+ # total length of the cell value. The client can use this size
106
+ # to pre-allocate memory to hold the full cell value.
107
+ # @!attribute [rw] reset_row
108
+ # @return [true, false]
109
+ # Indicates that the client should drop all previous chunks for
110
+ # `row_key`, as it will be re-read from the beginning.
111
+ # @!attribute [rw] commit_row
112
+ # @return [true, false]
113
+ # Indicates that the client can safely process all previous chunks for
114
+ # `row_key`, as its data has been fully read.
115
+ class CellChunk; end
116
+ end
117
+
118
+ # Request message for Bigtable.SampleRowKeys.
119
+ # @!attribute [rw] table_name
120
+ # @return [String]
121
+ # Required. The unique name of the table from which to sample row keys.
122
+ # Values are of the form
123
+ # `projects/<project>/instances/<instance>/tables/<table>`.
124
+ # @!attribute [rw] app_profile_id
125
+ # @return [String]
126
+ # This value specifies routing for replication. If not specified, the
127
+ # "default" application profile will be used.
128
+ class SampleRowKeysRequest; end
129
+
130
+ # Response message for Bigtable.SampleRowKeys.
131
+ # @!attribute [rw] row_key
132
+ # @return [String]
133
+ # Sorted streamed sequence of sample row keys in the table. The table might
134
+ # have contents before the first row key in the list and after the last one,
135
+ # but a key containing the empty string indicates "end of table" and will be
136
+ # the last response given, if present.
137
+ # Note that row keys in this list may not have ever been written to or read
138
+ # from, and users should therefore not make any assumptions about the row key
139
+ # structure that are specific to their use case.
140
+ # @!attribute [rw] offset_bytes
141
+ # @return [Integer]
142
+ # Approximate total storage space used by all rows in the table which precede
143
+ # `row_key`. Buffering the contents of all rows between two subsequent
144
+ # samples would require space roughly equal to the difference in their
145
+ # `offset_bytes` fields.
146
+ class SampleRowKeysResponse; end
147
+
148
+ # Request message for Bigtable.MutateRow.
149
+ # @!attribute [rw] table_name
150
+ # @return [String]
151
+ # Required. The unique name of the table to which the mutation should be applied.
152
+ # Values are of the form
153
+ # `projects/<project>/instances/<instance>/tables/<table>`.
154
+ # @!attribute [rw] app_profile_id
155
+ # @return [String]
156
+ # This value specifies routing for replication. If not specified, the
157
+ # "default" application profile will be used.
158
+ # @!attribute [rw] row_key
159
+ # @return [String]
160
+ # Required. The key of the row to which the mutation should be applied.
161
+ # @!attribute [rw] mutations
162
+ # @return [Array<Google::Bigtable::V2::Mutation>]
163
+ # Required. Changes to be atomically applied to the specified row. Entries are applied
164
+ # in order, meaning that earlier mutations can be masked by later ones.
165
+ # Must contain at least one entry and at most 100000.
166
+ class MutateRowRequest; end
167
+
168
+ # Response message for Bigtable.MutateRow.
169
+ class MutateRowResponse; end
170
+
171
+ # Request message for BigtableService.MutateRows.
172
+ # @!attribute [rw] table_name
173
+ # @return [String]
174
+ # Required. The unique name of the table to which the mutations should be applied.
175
+ # @!attribute [rw] app_profile_id
176
+ # @return [String]
177
+ # This value specifies routing for replication. If not specified, the
178
+ # "default" application profile will be used.
179
+ # @!attribute [rw] entries
180
+ # @return [Array<Google::Bigtable::V2::MutateRowsRequest::Entry>]
181
+ # Required. The row keys and corresponding mutations to be applied in bulk.
182
+ # Each entry is applied as an atomic mutation, but the entries may be
183
+ # applied in arbitrary order (even between entries for the same row).
184
+ # At least one entry must be specified, and in total the entries can
185
+ # contain at most 100000 mutations.
186
+ class MutateRowsRequest
187
+ # A mutation for a given row.
188
+ # @!attribute [rw] row_key
189
+ # @return [String]
190
+ # The key of the row to which the `mutations` should be applied.
191
+ # @!attribute [rw] mutations
192
+ # @return [Array<Google::Bigtable::V2::Mutation>]
193
+ # Required. Changes to be atomically applied to the specified row. Mutations are
194
+ # applied in order, meaning that earlier mutations can be masked by
195
+ # later ones.
196
+ # You must specify at least one mutation.
197
+ class Entry; end
198
+ end
199
+
200
+ # Response message for BigtableService.MutateRows.
201
+ # @!attribute [rw] entries
202
+ # @return [Array<Google::Bigtable::V2::MutateRowsResponse::Entry>]
203
+ # One or more results for Entries from the batch request.
204
+ class MutateRowsResponse
205
+ # The result of applying a passed mutation in the original request.
206
+ # @!attribute [rw] index
207
+ # @return [Integer]
208
+ # The index into the original request's `entries` list of the Entry
209
+ # for which a result is being reported.
210
+ # @!attribute [rw] status
211
+ # @return [Google::Rpc::Status]
212
+ # The result of the request Entry identified by `index`.
213
+ # Depending on how requests are batched during execution, it is possible
214
+ # for one Entry to fail due to an error with another Entry. In the event
215
+ # that this occurs, the same error will be reported for both entries.
216
+ class Entry; end
217
+ end
218
+
219
+ # Request message for Bigtable.CheckAndMutateRow.
220
+ # @!attribute [rw] table_name
221
+ # @return [String]
222
+ # Required. The unique name of the table to which the conditional mutation should be
223
+ # applied.
224
+ # Values are of the form
225
+ # `projects/<project>/instances/<instance>/tables/<table>`.
226
+ # @!attribute [rw] app_profile_id
227
+ # @return [String]
228
+ # This value specifies routing for replication. If not specified, the
229
+ # "default" application profile will be used.
230
+ # @!attribute [rw] row_key
231
+ # @return [String]
232
+ # Required. The key of the row to which the conditional mutation should be applied.
233
+ # @!attribute [rw] predicate_filter
234
+ # @return [Google::Bigtable::V2::RowFilter]
235
+ # The filter to be applied to the contents of the specified row. Depending
236
+ # on whether or not any results are yielded, either `true_mutations` or
237
+ # `false_mutations` will be executed. If unset, checks that the row contains
238
+ # any values at all.
239
+ # @!attribute [rw] true_mutations
240
+ # @return [Array<Google::Bigtable::V2::Mutation>]
241
+ # Changes to be atomically applied to the specified row if `predicate_filter`
242
+ # yields at least one cell when applied to `row_key`. Entries are applied in
243
+ # order, meaning that earlier mutations can be masked by later ones.
244
+ # Must contain at least one entry if `false_mutations` is empty, and at most
245
+ # 100000.
246
+ # @!attribute [rw] false_mutations
247
+ # @return [Array<Google::Bigtable::V2::Mutation>]
248
+ # Changes to be atomically applied to the specified row if `predicate_filter`
249
+ # does not yield any cells when applied to `row_key`. Entries are applied in
250
+ # order, meaning that earlier mutations can be masked by later ones.
251
+ # Must contain at least one entry if `true_mutations` is empty, and at most
252
+ # 100000.
253
+ class CheckAndMutateRowRequest; end
254
+
255
+ # Response message for Bigtable.CheckAndMutateRow.
256
+ # @!attribute [rw] predicate_matched
257
+ # @return [true, false]
258
+ # Whether or not the request's `predicate_filter` yielded any results for
259
+ # the specified row.
260
+ class CheckAndMutateRowResponse; end
261
+
262
+ # Request message for Bigtable.ReadModifyWriteRow.
263
+ # @!attribute [rw] table_name
264
+ # @return [String]
265
+ # Required. The unique name of the table to which the read/modify/write rules should be
266
+ # applied.
267
+ # Values are of the form
268
+ # `projects/<project>/instances/<instance>/tables/<table>`.
269
+ # @!attribute [rw] app_profile_id
270
+ # @return [String]
271
+ # This value specifies routing for replication. If not specified, the
272
+ # "default" application profile will be used.
273
+ # @!attribute [rw] row_key
274
+ # @return [String]
275
+ # Required. The key of the row to which the read/modify/write rules should be applied.
276
+ # @!attribute [rw] rules
277
+ # @return [Array<Google::Bigtable::V2::ReadModifyWriteRule>]
278
+ # Required. Rules specifying how the specified row's contents are to be transformed
279
+ # into writes. Entries are applied in order, meaning that earlier rules will
280
+ # affect the results of later ones.
281
+ class ReadModifyWriteRowRequest; end
282
+
283
+ # Response message for Bigtable.ReadModifyWriteRow.
284
+ # @!attribute [rw] row
285
+ # @return [Google::Bigtable::V2::Row]
286
+ # A Row containing the new contents of all cells modified by the request.
287
+ class ReadModifyWriteRowResponse; end
288
+ end
289
+ end
290
+ end
@@ -0,0 +1,493 @@
1
+ # Copyright 2020 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
+ # https://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
+
15
+
16
+ module Google
17
+ module Bigtable
18
+ module V2
19
+ # Specifies the complete (requested) contents of a single row of a table.
20
+ # Rows which exceed 256MiB in size cannot be read in full.
21
+ # @!attribute [rw] key
22
+ # @return [String]
23
+ # The unique key which identifies this row within its table. This is the same
24
+ # key that's used to identify the row in, for example, a MutateRowRequest.
25
+ # May contain any non-empty byte string up to 4KiB in length.
26
+ # @!attribute [rw] families
27
+ # @return [Array<Google::Bigtable::V2::Family>]
28
+ # May be empty, but only if the entire row is empty.
29
+ # The mutual ordering of column families is not specified.
30
+ class Row; end
31
+
32
+ # Specifies (some of) the contents of a single row/column family intersection
33
+ # of a table.
34
+ # @!attribute [rw] name
35
+ # @return [String]
36
+ # The unique key which identifies this family within its row. This is the
37
+ # same key that's used to identify the family in, for example, a RowFilter
38
+ # which sets its "family_name_regex_filter" field.
39
+ # Must match `[-_.a-zA-Z0-9]+`, except that AggregatingRowProcessors may
40
+ # produce cells in a sentinel family with an empty name.
41
+ # Must be no greater than 64 characters in length.
42
+ # @!attribute [rw] columns
43
+ # @return [Array<Google::Bigtable::V2::Column>]
44
+ # Must not be empty. Sorted in order of increasing "qualifier".
45
+ class Family; end
46
+
47
+ # Specifies (some of) the contents of a single row/column intersection of a
48
+ # table.
49
+ # @!attribute [rw] qualifier
50
+ # @return [String]
51
+ # The unique key which identifies this column within its family. This is the
52
+ # same key that's used to identify the column in, for example, a RowFilter
53
+ # which sets its `column_qualifier_regex_filter` field.
54
+ # May contain any byte string, including the empty string, up to 16kiB in
55
+ # length.
56
+ # @!attribute [rw] cells
57
+ # @return [Array<Google::Bigtable::V2::Cell>]
58
+ # Must not be empty. Sorted in order of decreasing "timestamp_micros".
59
+ class Column; end
60
+
61
+ # Specifies (some of) the contents of a single row/column/timestamp of a table.
62
+ # @!attribute [rw] timestamp_micros
63
+ # @return [Integer]
64
+ # The cell's stored timestamp, which also uniquely identifies it within
65
+ # its column.
66
+ # Values are always expressed in microseconds, but individual tables may set
67
+ # a coarser granularity to further restrict the allowed values. For
68
+ # example, a table which specifies millisecond granularity will only allow
69
+ # values of `timestamp_micros` which are multiples of 1000.
70
+ # @!attribute [rw] value
71
+ # @return [String]
72
+ # The value stored in the cell.
73
+ # May contain any byte string, including the empty string, up to 100MiB in
74
+ # length.
75
+ # @!attribute [rw] labels
76
+ # @return [Array<String>]
77
+ # Labels applied to the cell by a {Google::Bigtable::V2::RowFilter RowFilter}.
78
+ class Cell; end
79
+
80
+ # Specifies a contiguous range of rows.
81
+ # @!attribute [rw] start_key_closed
82
+ # @return [String]
83
+ # Used when giving an inclusive lower bound for the range.
84
+ # @!attribute [rw] start_key_open
85
+ # @return [String]
86
+ # Used when giving an exclusive lower bound for the range.
87
+ # @!attribute [rw] end_key_open
88
+ # @return [String]
89
+ # Used when giving an exclusive upper bound for the range.
90
+ # @!attribute [rw] end_key_closed
91
+ # @return [String]
92
+ # Used when giving an inclusive upper bound for the range.
93
+ class RowRange; end
94
+
95
+ # Specifies a non-contiguous set of rows.
96
+ # @!attribute [rw] row_keys
97
+ # @return [Array<String>]
98
+ # Single rows included in the set.
99
+ # @!attribute [rw] row_ranges
100
+ # @return [Array<Google::Bigtable::V2::RowRange>]
101
+ # Contiguous row ranges included in the set.
102
+ class RowSet; end
103
+
104
+ # Specifies a contiguous range of columns within a single column family.
105
+ # The range spans from &lt;column_family&gt;:&lt;start_qualifier&gt; to
106
+ # &lt;column_family&gt;:&lt;end_qualifier&gt;, where both bounds can be either
107
+ # inclusive or exclusive.
108
+ # @!attribute [rw] family_name
109
+ # @return [String]
110
+ # The name of the column family within which this range falls.
111
+ # @!attribute [rw] start_qualifier_closed
112
+ # @return [String]
113
+ # Used when giving an inclusive lower bound for the range.
114
+ # @!attribute [rw] start_qualifier_open
115
+ # @return [String]
116
+ # Used when giving an exclusive lower bound for the range.
117
+ # @!attribute [rw] end_qualifier_closed
118
+ # @return [String]
119
+ # Used when giving an inclusive upper bound for the range.
120
+ # @!attribute [rw] end_qualifier_open
121
+ # @return [String]
122
+ # Used when giving an exclusive upper bound for the range.
123
+ class ColumnRange; end
124
+
125
+ # Specified a contiguous range of microsecond timestamps.
126
+ # @!attribute [rw] start_timestamp_micros
127
+ # @return [Integer]
128
+ # Inclusive lower bound. If left empty, interpreted as 0.
129
+ # @!attribute [rw] end_timestamp_micros
130
+ # @return [Integer]
131
+ # Exclusive upper bound. If left empty, interpreted as infinity.
132
+ class TimestampRange; end
133
+
134
+ # Specifies a contiguous range of raw byte values.
135
+ # @!attribute [rw] start_value_closed
136
+ # @return [String]
137
+ # Used when giving an inclusive lower bound for the range.
138
+ # @!attribute [rw] start_value_open
139
+ # @return [String]
140
+ # Used when giving an exclusive lower bound for the range.
141
+ # @!attribute [rw] end_value_closed
142
+ # @return [String]
143
+ # Used when giving an inclusive upper bound for the range.
144
+ # @!attribute [rw] end_value_open
145
+ # @return [String]
146
+ # Used when giving an exclusive upper bound for the range.
147
+ class ValueRange; end
148
+
149
+ # Takes a row as input and produces an alternate view of the row based on
150
+ # specified rules. For example, a RowFilter might trim down a row to include
151
+ # just the cells from columns matching a given regular expression, or might
152
+ # return all the cells of a row but not their values. More complicated filters
153
+ # can be composed out of these components to express requests such as, "within
154
+ # every column of a particular family, give just the two most recent cells
155
+ # which are older than timestamp X."
156
+ #
157
+ # There are two broad categories of RowFilters (true filters and transformers),
158
+ # as well as two ways to compose simple filters into more complex ones
159
+ # (chains and interleaves). They work as follows:
160
+ #
161
+ # * True filters alter the input row by excluding some of its cells wholesale
162
+ # from the output row. An example of a true filter is the `value_regex_filter`,
163
+ # which excludes cells whose values don't match the specified pattern. All
164
+ # regex true filters use RE2 syntax (https://github.com/google/re2/wiki/Syntax)
165
+ # in raw byte mode (RE2::Latin1), and are evaluated as full matches. An
166
+ # important point to keep in mind is that `RE2(.)` is equivalent by default to
167
+ # `RE2([^\n])`, meaning that it does not match newlines. When attempting to
168
+ # match an arbitrary byte, you should therefore use the escape sequence `\C`,
169
+ # which may need to be further escaped as `\\C` in your client language.
170
+ #
171
+ # * Transformers alter the input row by changing the values of some of its
172
+ # cells in the output, without excluding them completely. Currently, the only
173
+ # supported transformer is the `strip_value_transformer`, which replaces every
174
+ # cell's value with the empty string.
175
+ #
176
+ # * Chains and interleaves are described in more detail in the
177
+ # RowFilter.Chain and RowFilter.Interleave documentation.
178
+ #
179
+ # The total serialized size of a RowFilter message must not
180
+ # exceed 4096 bytes, and RowFilters may not be nested within each other
181
+ # (in Chains or Interleaves) to a depth of more than 20.
182
+ # @!attribute [rw] chain
183
+ # @return [Google::Bigtable::V2::RowFilter::Chain]
184
+ # Applies several RowFilters to the data in sequence, progressively
185
+ # narrowing the results.
186
+ # @!attribute [rw] interleave
187
+ # @return [Google::Bigtable::V2::RowFilter::Interleave]
188
+ # Applies several RowFilters to the data in parallel and combines the
189
+ # results.
190
+ # @!attribute [rw] condition
191
+ # @return [Google::Bigtable::V2::RowFilter::Condition]
192
+ # Applies one of two possible RowFilters to the data based on the output of
193
+ # a predicate RowFilter.
194
+ # @!attribute [rw] sink
195
+ # @return [true, false]
196
+ # ADVANCED USE ONLY.
197
+ # Hook for introspection into the RowFilter. Outputs all cells directly to
198
+ # the output of the read rather than to any parent filter. Consider the
199
+ # following example:
200
+ #
201
+ # Chain(
202
+ # FamilyRegex("A"),
203
+ # Interleave(
204
+ # All(),
205
+ # Chain(Label("foo"), Sink())
206
+ # ),
207
+ # QualifierRegex("B")
208
+ # )
209
+ #
210
+ # A,A,1,w
211
+ # A,B,2,x
212
+ # B,B,4,z
213
+ # |
214
+ # FamilyRegex("A")
215
+ # |
216
+ # A,A,1,w
217
+ # A,B,2,x
218
+ # |
219
+ # +------------+-------------+
220
+ # | |
221
+ # All() Label(foo)
222
+ # | |
223
+ # A,A,1,w A,A,1,w,labels:[foo]
224
+ # A,B,2,x A,B,2,x,labels:[foo]
225
+ # | |
226
+ # | Sink() --------------+
227
+ # | | |
228
+ # +------------+ x------+ A,A,1,w,labels:[foo]
229
+ # | A,B,2,x,labels:[foo]
230
+ # A,A,1,w |
231
+ # A,B,2,x |
232
+ # | |
233
+ # QualifierRegex("B") |
234
+ # | |
235
+ # A,B,2,x |
236
+ # | |
237
+ # +--------------------------------+
238
+ # |
239
+ # A,A,1,w,labels:[foo]
240
+ # A,B,2,x,labels:[foo] // could be switched
241
+ # A,B,2,x // could be switched
242
+ #
243
+ # Despite being excluded by the qualifier filter, a copy of every cell
244
+ # that reaches the sink is present in the final result.
245
+ #
246
+ # As with an {Google::Bigtable::V2::RowFilter::Interleave Interleave},
247
+ # duplicate cells are possible, and appear in an unspecified mutual order.
248
+ # In this case we have a duplicate with column "A:B" and timestamp 2,
249
+ # because one copy passed through the all filter while the other was
250
+ # passed through the label and sink. Note that one copy has label "foo",
251
+ # while the other does not.
252
+ #
253
+ # Cannot be used within the `predicate_filter`, `true_filter`, or
254
+ # `false_filter` of a {Google::Bigtable::V2::RowFilter::Condition Condition}.
255
+ # @!attribute [rw] pass_all_filter
256
+ # @return [true, false]
257
+ # Matches all cells, regardless of input. Functionally equivalent to
258
+ # leaving `filter` unset, but included for completeness.
259
+ # @!attribute [rw] block_all_filter
260
+ # @return [true, false]
261
+ # Does not match any cells, regardless of input. Useful for temporarily
262
+ # disabling just part of a filter.
263
+ # @!attribute [rw] row_key_regex_filter
264
+ # @return [String]
265
+ # Matches only cells from rows whose keys satisfy the given RE2 regex. In
266
+ # other words, passes through the entire row when the key matches, and
267
+ # otherwise produces an empty row.
268
+ # Note that, since row keys can contain arbitrary bytes, the `\C` escape
269
+ # sequence must be used if a true wildcard is desired. The `.` character
270
+ # will not match the new line character `\n`, which may be present in a
271
+ # binary key.
272
+ # @!attribute [rw] row_sample_filter
273
+ # @return [Float]
274
+ # Matches all cells from a row with probability p, and matches no cells
275
+ # from the row with probability 1-p.
276
+ # @!attribute [rw] family_name_regex_filter
277
+ # @return [String]
278
+ # Matches only cells from columns whose families satisfy the given RE2
279
+ # regex. For technical reasons, the regex must not contain the `:`
280
+ # character, even if it is not being used as a literal.
281
+ # Note that, since column families cannot contain the new line character
282
+ # `\n`, it is sufficient to use `.` as a full wildcard when matching
283
+ # column family names.
284
+ # @!attribute [rw] column_qualifier_regex_filter
285
+ # @return [String]
286
+ # Matches only cells from columns whose qualifiers satisfy the given RE2
287
+ # regex.
288
+ # Note that, since column qualifiers can contain arbitrary bytes, the `\C`
289
+ # escape sequence must be used if a true wildcard is desired. The `.`
290
+ # character will not match the new line character `\n`, which may be
291
+ # present in a binary qualifier.
292
+ # @!attribute [rw] column_range_filter
293
+ # @return [Google::Bigtable::V2::ColumnRange]
294
+ # Matches only cells from columns within the given range.
295
+ # @!attribute [rw] timestamp_range_filter
296
+ # @return [Google::Bigtable::V2::TimestampRange]
297
+ # Matches only cells with timestamps within the given range.
298
+ # @!attribute [rw] value_regex_filter
299
+ # @return [String]
300
+ # Matches only cells with values that satisfy the given regular expression.
301
+ # Note that, since cell values can contain arbitrary bytes, the `\C` escape
302
+ # sequence must be used if a true wildcard is desired. The `.` character
303
+ # will not match the new line character `\n`, which may be present in a
304
+ # binary value.
305
+ # @!attribute [rw] value_range_filter
306
+ # @return [Google::Bigtable::V2::ValueRange]
307
+ # Matches only cells with values that fall within the given range.
308
+ # @!attribute [rw] cells_per_row_offset_filter
309
+ # @return [Integer]
310
+ # Skips the first N cells of each row, matching all subsequent cells.
311
+ # If duplicate cells are present, as is possible when using an Interleave,
312
+ # each copy of the cell is counted separately.
313
+ # @!attribute [rw] cells_per_row_limit_filter
314
+ # @return [Integer]
315
+ # Matches only the first N cells of each row.
316
+ # If duplicate cells are present, as is possible when using an Interleave,
317
+ # each copy of the cell is counted separately.
318
+ # @!attribute [rw] cells_per_column_limit_filter
319
+ # @return [Integer]
320
+ # Matches only the most recent N cells within each column. For example,
321
+ # if N=2, this filter would match column `foo:bar` at timestamps 10 and 9,
322
+ # skip all earlier cells in `foo:bar`, and then begin matching again in
323
+ # column `foo:bar2`.
324
+ # If duplicate cells are present, as is possible when using an Interleave,
325
+ # each copy of the cell is counted separately.
326
+ # @!attribute [rw] strip_value_transformer
327
+ # @return [true, false]
328
+ # Replaces each cell's value with the empty string.
329
+ # @!attribute [rw] apply_label_transformer
330
+ # @return [String]
331
+ # Applies the given label to all cells in the output row. This allows
332
+ # the client to determine which results were produced from which part of
333
+ # the filter.
334
+ #
335
+ # Values must be at most 15 characters in length, and match the RE2
336
+ # pattern `[a-z0-9\\-]+`
337
+ #
338
+ # Due to a technical limitation, it is not currently possible to apply
339
+ # multiple labels to a cell. As a result, a Chain may have no more than
340
+ # one sub-filter which contains a `apply_label_transformer`. It is okay for
341
+ # an Interleave to contain multiple `apply_label_transformers`, as they
342
+ # will be applied to separate copies of the input. This may be relaxed in
343
+ # the future.
344
+ class RowFilter
345
+ # A RowFilter which sends rows through several RowFilters in sequence.
346
+ # @!attribute [rw] filters
347
+ # @return [Array<Google::Bigtable::V2::RowFilter>]
348
+ # The elements of "filters" are chained together to process the input row:
349
+ # in row -> f(0) -> intermediate row -> f(1) -> ... -> f(N) -> out row
350
+ # The full chain is executed atomically.
351
+ class Chain; end
352
+
353
+ # A RowFilter which sends each row to each of several component
354
+ # RowFilters and interleaves the results.
355
+ # @!attribute [rw] filters
356
+ # @return [Array<Google::Bigtable::V2::RowFilter>]
357
+ # The elements of "filters" all process a copy of the input row, and the
358
+ # results are pooled, sorted, and combined into a single output row.
359
+ # If multiple cells are produced with the same column and timestamp,
360
+ # they will all appear in the output row in an unspecified mutual order.
361
+ # Consider the following example, with three filters:
362
+ #
363
+ # input row
364
+ # |
365
+ # -----------------------------------------------------
366
+ # | | |
367
+ # f(0) f(1) f(2)
368
+ # | | |
369
+ # 1: foo,bar,10,x foo,bar,10,z far,bar,7,a
370
+ # 2: foo,blah,11,z far,blah,5,x far,blah,5,x
371
+ # | | |
372
+ # -----------------------------------------------------
373
+ # |
374
+ # 1: foo,bar,10,z // could have switched with #2
375
+ # 2: foo,bar,10,x // could have switched with #1
376
+ # 3: foo,blah,11,z
377
+ # 4: far,bar,7,a
378
+ # 5: far,blah,5,x // identical to #6
379
+ # 6: far,blah,5,x // identical to #5
380
+ #
381
+ # All interleaved filters are executed atomically.
382
+ class Interleave; end
383
+
384
+ # A RowFilter which evaluates one of two possible RowFilters, depending on
385
+ # whether or not a predicate RowFilter outputs any cells from the input row.
386
+ #
387
+ # IMPORTANT NOTE: The predicate filter does not execute atomically with the
388
+ # true and false filters, which may lead to inconsistent or unexpected
389
+ # results. Additionally, Condition filters have poor performance, especially
390
+ # when filters are set for the false condition.
391
+ # @!attribute [rw] predicate_filter
392
+ # @return [Google::Bigtable::V2::RowFilter]
393
+ # If `predicate_filter` outputs any cells, then `true_filter` will be
394
+ # evaluated on the input row. Otherwise, `false_filter` will be evaluated.
395
+ # @!attribute [rw] true_filter
396
+ # @return [Google::Bigtable::V2::RowFilter]
397
+ # The filter to apply to the input row if `predicate_filter` returns any
398
+ # results. If not provided, no results will be returned in the true case.
399
+ # @!attribute [rw] false_filter
400
+ # @return [Google::Bigtable::V2::RowFilter]
401
+ # The filter to apply to the input row if `predicate_filter` does not
402
+ # return any results. If not provided, no results will be returned in the
403
+ # false case.
404
+ class Condition; end
405
+ end
406
+
407
+ # Specifies a particular change to be made to the contents of a row.
408
+ # @!attribute [rw] set_cell
409
+ # @return [Google::Bigtable::V2::Mutation::SetCell]
410
+ # Set a cell's value.
411
+ # @!attribute [rw] delete_from_column
412
+ # @return [Google::Bigtable::V2::Mutation::DeleteFromColumn]
413
+ # Deletes cells from a column.
414
+ # @!attribute [rw] delete_from_family
415
+ # @return [Google::Bigtable::V2::Mutation::DeleteFromFamily]
416
+ # Deletes cells from a column family.
417
+ # @!attribute [rw] delete_from_row
418
+ # @return [Google::Bigtable::V2::Mutation::DeleteFromRow]
419
+ # Deletes cells from the entire row.
420
+ class Mutation
421
+ # A Mutation which sets the value of the specified cell.
422
+ # @!attribute [rw] family_name
423
+ # @return [String]
424
+ # The name of the family into which new data should be written.
425
+ # Must match `[-_.a-zA-Z0-9]+`
426
+ # @!attribute [rw] column_qualifier
427
+ # @return [String]
428
+ # The qualifier of the column into which new data should be written.
429
+ # Can be any byte string, including the empty string.
430
+ # @!attribute [rw] timestamp_micros
431
+ # @return [Integer]
432
+ # The timestamp of the cell into which new data should be written.
433
+ # Use -1 for current Bigtable server time.
434
+ # Otherwise, the client should set this value itself, noting that the
435
+ # default value is a timestamp of zero if the field is left unspecified.
436
+ # Values must match the granularity of the table (e.g. micros, millis).
437
+ # @!attribute [rw] value
438
+ # @return [String]
439
+ # The value to be written into the specified cell.
440
+ class SetCell; end
441
+
442
+ # A Mutation which deletes cells from the specified column, optionally
443
+ # restricting the deletions to a given timestamp range.
444
+ # @!attribute [rw] family_name
445
+ # @return [String]
446
+ # The name of the family from which cells should be deleted.
447
+ # Must match `[-_.a-zA-Z0-9]+`
448
+ # @!attribute [rw] column_qualifier
449
+ # @return [String]
450
+ # The qualifier of the column from which cells should be deleted.
451
+ # Can be any byte string, including the empty string.
452
+ # @!attribute [rw] time_range
453
+ # @return [Google::Bigtable::V2::TimestampRange]
454
+ # The range of timestamps within which cells should be deleted.
455
+ class DeleteFromColumn; end
456
+
457
+ # A Mutation which deletes all cells from the specified column family.
458
+ # @!attribute [rw] family_name
459
+ # @return [String]
460
+ # The name of the family from which cells should be deleted.
461
+ # Must match `[-_.a-zA-Z0-9]+`
462
+ class DeleteFromFamily; end
463
+
464
+ # A Mutation which deletes all cells from the containing row.
465
+ class DeleteFromRow; end
466
+ end
467
+
468
+ # Specifies an atomic read/modify/write operation on the latest value of the
469
+ # specified column.
470
+ # @!attribute [rw] family_name
471
+ # @return [String]
472
+ # The name of the family to which the read/modify/write should be applied.
473
+ # Must match `[-_.a-zA-Z0-9]+`
474
+ # @!attribute [rw] column_qualifier
475
+ # @return [String]
476
+ # The qualifier of the column to which the read/modify/write should be
477
+ # applied.
478
+ # Can be any byte string, including the empty string.
479
+ # @!attribute [rw] append_value
480
+ # @return [String]
481
+ # Rule specifying that `append_value` be appended to the existing value.
482
+ # If the targeted cell is unset, it will be treated as containing the
483
+ # empty string.
484
+ # @!attribute [rw] increment_amount
485
+ # @return [Integer]
486
+ # Rule specifying that `increment_amount` be added to the existing value.
487
+ # If the targeted cell is unset, it will be treated as containing a zero.
488
+ # Otherwise, the targeted cell must contain an 8-byte value (interpreted
489
+ # as a 64-bit big-endian signed integer), or the entire request will fail.
490
+ class ReadModifyWriteRule; end
491
+ end
492
+ end
493
+ end