google-cloud-bigtable 1.2.1 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +1 -1
  3. data/CHANGELOG.md +57 -0
  4. data/TROUBLESHOOTING.md +2 -8
  5. data/lib/google-cloud-bigtable.rb +30 -27
  6. data/lib/google/cloud/bigtable.rb +18 -26
  7. data/lib/google/cloud/bigtable/app_profile.rb +3 -3
  8. data/lib/google/cloud/bigtable/app_profile/list.rb +6 -4
  9. data/lib/google/cloud/bigtable/backup.rb +445 -0
  10. data/lib/google/cloud/bigtable/backup/job.rb +87 -0
  11. data/lib/google/cloud/bigtable/backup/list.rb +167 -0
  12. data/lib/google/cloud/bigtable/chunk_processor.rb +1 -1
  13. data/lib/google/cloud/bigtable/cluster.rb +101 -2
  14. data/lib/google/cloud/bigtable/cluster/list.rb +2 -2
  15. data/lib/google/cloud/bigtable/column_family.rb +2 -2
  16. data/lib/google/cloud/bigtable/column_family_map.rb +11 -11
  17. data/lib/google/cloud/bigtable/column_range.rb +2 -2
  18. data/lib/google/cloud/bigtable/credentials.rb +36 -2
  19. data/lib/google/cloud/bigtable/gc_rule.rb +7 -7
  20. data/lib/google/cloud/bigtable/instance.rb +6 -6
  21. data/lib/google/cloud/bigtable/instance/cluster_map.rb +1 -1
  22. data/lib/google/cloud/bigtable/instance/list.rb +2 -2
  23. data/lib/google/cloud/bigtable/longrunning_job.rb +13 -2
  24. data/lib/google/cloud/bigtable/mutation_entry.rb +10 -9
  25. data/lib/google/cloud/bigtable/mutation_operations.rb +2 -2
  26. data/lib/google/cloud/bigtable/project.rb +1 -1
  27. data/lib/google/cloud/bigtable/read_modify_write_rule.rb +2 -2
  28. data/lib/google/cloud/bigtable/read_operations.rb +2 -2
  29. data/lib/google/cloud/bigtable/routing_policy.rb +2 -2
  30. data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +3 -3
  31. data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +3 -3
  32. data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +3 -3
  33. data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +3 -3
  34. data/lib/google/cloud/bigtable/row_range.rb +2 -2
  35. data/lib/google/cloud/bigtable/rows_mutator.rb +3 -3
  36. data/lib/google/cloud/bigtable/rows_reader.rb +10 -10
  37. data/lib/google/cloud/bigtable/sample_row_key.rb +2 -2
  38. data/lib/google/cloud/bigtable/service.rb +282 -245
  39. data/lib/google/cloud/bigtable/table.rb +5 -4
  40. data/lib/google/cloud/bigtable/table/cluster_state.rb +27 -6
  41. data/lib/google/cloud/bigtable/table/list.rb +2 -2
  42. data/lib/google/cloud/bigtable/table/restore_job.rb +117 -0
  43. data/lib/google/cloud/bigtable/value_range.rb +2 -2
  44. data/lib/google/cloud/bigtable/version.rb +1 -1
  45. metadata +16 -94
  46. data/lib/google/bigtable/admin/v2/bigtable_instance_admin_pb.rb +0 -145
  47. data/lib/google/bigtable/admin/v2/bigtable_instance_admin_services_pb.rb +0 -90
  48. data/lib/google/bigtable/admin/v2/bigtable_table_admin_pb.rb +0 -208
  49. data/lib/google/bigtable/admin/v2/bigtable_table_admin_services_pb.rb +0 -154
  50. data/lib/google/bigtable/admin/v2/common_pb.rb +0 -30
  51. data/lib/google/bigtable/admin/v2/instance_pb.rb +0 -74
  52. data/lib/google/bigtable/admin/v2/table_pb.rb +0 -127
  53. data/lib/google/bigtable/v2/bigtable_pb.rb +0 -113
  54. data/lib/google/bigtable/v2/bigtable_services_pb.rb +0 -68
  55. data/lib/google/bigtable/v2/data_pb.rb +0 -156
  56. data/lib/google/cloud/bigtable/admin.rb +0 -202
  57. data/lib/google/cloud/bigtable/admin/credentials.rb +0 -27
  58. data/lib/google/cloud/bigtable/admin/v2.rb +0 -223
  59. data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client.rb +0 -1451
  60. data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client_config.json +0 -139
  61. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +0 -1734
  62. data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client_config.json +0 -163
  63. data/lib/google/cloud/bigtable/admin/v2/credentials.rb +0 -51
  64. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_instance_admin.rb +0 -297
  65. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_table_admin.rb +0 -587
  66. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/instance.rb +0 -193
  67. data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/table.rb +0 -303
  68. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/iam_policy.rb +0 -64
  69. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/options.rb +0 -33
  70. data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +0 -151
  71. data/lib/google/cloud/bigtable/admin/v2/doc/google/longrunning/operations.rb +0 -51
  72. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/any.rb +0 -131
  73. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/duration.rb +0 -91
  74. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/empty.rb +0 -29
  75. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/field_mask.rb +0 -222
  76. data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/timestamp.rb +0 -113
  77. data/lib/google/cloud/bigtable/admin/v2/doc/google/rpc/status.rb +0 -39
  78. data/lib/google/cloud/bigtable/admin/v2/doc/google/type/expr.rb +0 -45
  79. data/lib/google/cloud/bigtable/v2.rb +0 -146
  80. data/lib/google/cloud/bigtable/v2/bigtable_client.rb +0 -591
  81. data/lib/google/cloud/bigtable/v2/bigtable_client_config.json +0 -83
  82. data/lib/google/cloud/bigtable/v2/credentials.rb +0 -46
  83. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +0 -290
  84. data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/data.rb +0 -493
  85. data/lib/google/cloud/bigtable/v2/doc/google/protobuf/any.rb +0 -131
  86. data/lib/google/cloud/bigtable/v2/doc/google/protobuf/wrappers.rb +0 -34
  87. data/lib/google/cloud/bigtable/v2/doc/google/rpc/status.rb +0 -39
@@ -1,83 +0,0 @@
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
- }
@@ -1,46 +0,0 @@
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
@@ -1,290 +0,0 @@
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
@@ -1,493 +0,0 @@
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