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,287 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2018 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+
18
+ module Google
19
+ module Cloud
20
+ module Bigtable
21
+ module RowFilter
22
+ ##
23
+ #
24
+ # # SimpleFilter
25
+ #
26
+ class SimpleFilter
27
+ # @private
28
+ # Creates a simple filter instance.
29
+ #
30
+ def initialize
31
+ @grpc = Google::Bigtable::V2::RowFilter.new
32
+ end
33
+
34
+ ##
35
+ # Outputs all cells directly to the output of the read rather than to any parent filter.
36
+ #
37
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
38
+ #
39
+ def sink
40
+ @grpc.sink = true
41
+ self
42
+ end
43
+
44
+ ##
45
+ # Matches all cells, regardless of input. Functionally equivalent to
46
+ # leaving `filter` unset, but included for completeness.
47
+ #
48
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
49
+ #
50
+ def pass
51
+ @grpc.pass_all_filter = true
52
+ self
53
+ end
54
+
55
+ ##
56
+ # Does not match any cells, regardless of input. Useful for temporarily
57
+ # disabling just part of a filter.
58
+ #
59
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
60
+ #
61
+ def block
62
+ @grpc.block_all_filter = true
63
+ self
64
+ end
65
+
66
+ ##
67
+ # Replaces each cell's value with an empty string.
68
+ #
69
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
70
+ #
71
+ def strip_value
72
+ @grpc.strip_value_transformer = true
73
+ self
74
+ end
75
+
76
+ ##
77
+ # Matches only cells from rows whose keys satisfy the given RE2 regex. In
78
+ # other words, passes through the entire row when the key matches, and
79
+ # otherwise produces an empty row.
80
+ # Note that, since row keys can contain arbitrary bytes, the `\C` escape
81
+ # sequence must be used if a true wildcard is desired. The `.` character
82
+ # will not match the new line character `\n`, which may be present in a
83
+ # binary key.
84
+ #
85
+ # For Regex syntax:
86
+ # @see https://github.com/google/re2/wiki/Syntax
87
+ #
88
+ # @param regex [String] Regex to match row keys.
89
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
90
+ #
91
+ def key regex
92
+ @grpc.row_key_regex_filter = regex
93
+ self
94
+ end
95
+
96
+ ##
97
+ # Matches all cells from a row with probability p, and matches no cells
98
+ # from the row with probability 1-p.
99
+ #
100
+ # @param probability [Float]
101
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
102
+ #
103
+ def sample probability
104
+ if probability >= 1 || probability <= 0
105
+ raise RowFilterError, "Probability must be greater than 0 and less than 1.0."
106
+ end
107
+ @grpc.row_sample_filter = probability
108
+ self
109
+ end
110
+
111
+ ##
112
+ # Matches only cells from columns whose families satisfy the given RE2
113
+ # regex. For technical reasons, the regex must not contain the `:`
114
+ # character, even if it is not being used as a literal.
115
+ # Note that, since column families cannot contain the new line character
116
+ # `\n`, it is sufficient to use `.` as a full wildcard when matching
117
+ # column family names.
118
+ #
119
+ # @param regex [String] Regex to match family name.
120
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
121
+ #
122
+ def family regex
123
+ @grpc.family_name_regex_filter = regex
124
+ self
125
+ end
126
+
127
+ ##
128
+ # Matches only cells from columns whose qualifiers satisfy the given RE2
129
+ # regex.
130
+ # Note that, since column qualifiers can contain arbitrary bytes, the `\C`
131
+ # escape sequence must be used if a true wildcard is desired. The `.`
132
+ # character will not match the new line character `\n`, which may be
133
+ # present in a binary qualifier.
134
+ #
135
+ # @param regex [String] Regex to match column qualifier name.
136
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
137
+ #
138
+ def qualifier regex
139
+ @grpc.column_qualifier_regex_filter = regex
140
+ self
141
+ end
142
+
143
+ ##
144
+ # Matches only cells with values that satisfy the given regular expression.
145
+ # Note that, since cell values can contain arbitrary bytes, the `\C` escape
146
+ # sequence must be used if a true wildcard is desired. The `.` character
147
+ # will not match the new line character `\n`, which may be present in a
148
+ # binary value.
149
+ #
150
+ # @param regex [String] Regex to match cell value.
151
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
152
+ #
153
+ def value regex
154
+ @grpc.value_regex_filter = regex
155
+ self
156
+ end
157
+
158
+ ##
159
+ # Applies the given label to all cells in the output row. This allows
160
+ # the client to determine which results were produced from which part of
161
+ # the filter.
162
+ #
163
+ # Values must be at most 15 characters in length, and match the RE2
164
+ # pattern `[a-z0-9\\-]+`
165
+ #
166
+ # Due to a technical limitation, it is not possible to apply
167
+ # multiple labels to a cell. As a result, a chain may have no more than
168
+ # one sub-filter that contains an `apply_label_transformer`. It is okay for
169
+ # an interleave to contain multiple `apply_label_transformers`, as they
170
+ # will be applied to separate copies of the input.
171
+ #
172
+ # @param value [String] Label name
173
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
174
+ #
175
+ def label value
176
+ @grpc.apply_label_transformer = value
177
+ self
178
+ end
179
+
180
+ ##
181
+ # Skips the first N cells of each row, matching all subsequent cells.
182
+ # If duplicate cells are present, as is possible when using an interleave,
183
+ # each copy of the cell is counted separately.
184
+ #
185
+ # @param offset [Integer] Offset value.
186
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
187
+ #
188
+ def cells_per_row_offset offset
189
+ @grpc.cells_per_row_offset_filter = offset
190
+ self
191
+ end
192
+
193
+ ##
194
+ # Matches only the first N cells of each row.
195
+ # If duplicate cells are present, as is possible when using an Interleave,
196
+ # each copy of the cell is counted separately.
197
+ #
198
+ # @param limit [String] Max cell match per row limit
199
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
200
+ #
201
+ def cells_per_row limit
202
+ @grpc.cells_per_row_limit_filter = limit
203
+ self
204
+ end
205
+
206
+ ##
207
+ # Matches only the most recent N cells within each column. For example,
208
+ # if N=2, this filter would match column `foo:bar` at timestamps 10 and 9,
209
+ # skip all earlier cells in `foo:bar`, and then begin matching again in
210
+ # column `foo:bar2`.
211
+ # If duplicate cells are present, as is possible when using an interleave,
212
+ # each copy of the cell is counted separately.
213
+ #
214
+ # @param limit [String] Max cell match per column limit
215
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
216
+ #
217
+ def cells_per_column limit
218
+ @grpc.cells_per_column_limit_filter = limit
219
+ self
220
+ end
221
+
222
+ ##
223
+ # Creates a timestamp-range filter.
224
+ #
225
+ # Matches only cells with timestamps within the given range.
226
+ # Specifies a contiguous range of timestamps.
227
+ #
228
+ # @param from [Integer] Inclusive lower bound. If left empty, interpreted as 0.
229
+ # @param to [Integer] Exclusive upper bound. If left empty, interpreted as infinity.
230
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
231
+ #
232
+ def timestamp_range from, to
233
+ range_grpc = Google::Bigtable::V2::TimestampRange.new
234
+ range_grpc.start_timestamp_micros = from if from
235
+ range_grpc.end_timestamp_micros = to if to
236
+ @grpc.timestamp_range_filter = range_grpc
237
+ self
238
+ end
239
+
240
+ ##
241
+ # Matches only cells with values that fall within the given range.
242
+ #
243
+ # See {Google::Cloud::Bigtable::ValueRange#from} and { Google::Cloud::Bigtable::ValueRange#to} for range
244
+ # option inclusive/exclusive options
245
+ #
246
+ # * The value at which to start the range. If neither field is set, interpreted as an empty string, inclusive.
247
+ # * The value at which to end the range. If neither field is set, interpreted as an infinite string,
248
+ # exclusive.
249
+ #
250
+ # @param range [Google::Cloud::Bigtable::ValueRange]
251
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
252
+ #
253
+ def value_range range
254
+ unless range.instance_of? Google::Cloud::Bigtable::ValueRange
255
+ raise RowFilterError, "Range type mustbe ValueRange"
256
+ end
257
+ @grpc.value_range_filter = range.to_grpc
258
+ self
259
+ end
260
+
261
+ ##
262
+ # Matches only cells from columns within the given range.
263
+ #
264
+ # @param range [Google::Cloud::Bigtable::ColumnRange]
265
+ # @return [Google::Cloud::Bigtable::RowFilter::SimpleFilter]
266
+ #
267
+ def column_range range
268
+ unless range.instance_of? Google::Cloud::Bigtable::ColumnRange
269
+ raise RowFilterError, "Range type mustbe ColumnRange"
270
+ end
271
+ @grpc.column_range_filter = range.to_grpc
272
+ self
273
+ end
274
+
275
+ # @private
276
+ #
277
+ # Converts to a gRPC row filter instance.
278
+ #
279
+ # @return [Google::Bigtable::V2::RowFilter]
280
+ def to_grpc
281
+ @grpc
282
+ end
283
+ end
284
+ end
285
+ end
286
+ end
287
+ end
@@ -0,0 +1,179 @@
1
+ # Copyright 2018 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 Cloud
18
+ module Bigtable
19
+ ##
20
+ # # RowRange
21
+ #
22
+ # Specifies a contiguous range of rows.
23
+ #
24
+ # * From key bound : The row key at which to begin the range.
25
+ # If neither field is set, interpreted as an empty string, inclusive.
26
+ # * End key bound: The row key at which to end the range.
27
+ # If neither field is set, interpreted as the infinite row key, exclusive.
28
+ #
29
+ # @example
30
+ # require "google/cloud/bigtable"
31
+ #
32
+ # bigtable = Google::Cloud::Bigtable.new
33
+ # table = bigtable.table("my-instance", "my-table")
34
+ #
35
+ # # Range that includes all row keys including "user-001" to "user-005"
36
+ # table.new_row_range.from("user-001").to("user-005", inclusive: true)
37
+ #
38
+ # # Range that includes all row keys including "user-001" up to exclusive "user-010".
39
+ # table.new_row_range.from("user-001").to("user-010")
40
+ #
41
+ # # Range that includes all row keys including "user-001" up until end of the row keys.
42
+ # table.new_row_range.from("user-001")
43
+ #
44
+ # # Range that includes all row keys exclusive "user-001" up until end of the row keys.
45
+ # table.new_row_range.from("user-001", inclusive: false)
46
+ #
47
+ # # Range with unbounded from and the exclusive end "user-010"
48
+ # table.new_row_range.to("user-010")
49
+ #
50
+ # # Range that includes all row keys including from and end row keys "user-001", "user-010"
51
+ # table.new_row_range.between("user-001", "user-010")
52
+ #
53
+ # # Range that includes all row keys including "user-001" up until "user-010"
54
+ # table.new_row_range.of("user-001", "user-010")
55
+ #
56
+ class RowRange
57
+ # @private
58
+ # Creates a row range instance.
59
+ def initialize
60
+ @grpc = Google::Bigtable::V2::RowRange.new
61
+ end
62
+
63
+ ##
64
+ # Sets a row range with a lower bound.
65
+ #
66
+ # @param key [String] Row key. Required.
67
+ # @param inclusive [String] Inclusive/exclusive lower bound.
68
+ # Default is an inclusive lower bound.
69
+ # @return [Google::Cloud::Bigtable::RowRange]
70
+ #
71
+ # @example Inclusive lower bound.
72
+ # require "google/cloud/bigtable"
73
+ #
74
+ # bigtable = Google::Cloud::Bigtable.new
75
+ # table = bigtable.table("my-instance", "my-table")
76
+ #
77
+ # range = table.new_row_range.from("key-001")
78
+ #
79
+ # @example Exclusive lower bound.
80
+ # require "google/cloud/bigtable"
81
+ #
82
+ # bigtable = Google::Cloud::Bigtable.new
83
+ # table = bigtable.table("my-instance", "my-table")
84
+ #
85
+ # range = table.new_row_range.from("key-001", inclusive: false)
86
+ #
87
+ def from key, inclusive: true
88
+ if inclusive
89
+ @grpc.start_key_closed = key
90
+ else
91
+ @grpc.start_key_open = key
92
+ end
93
+ self
94
+ end
95
+
96
+ ##
97
+ # Sets a row range with an upper bound.
98
+ #
99
+ # @param key [String] Row key. Required.
100
+ # @param inclusive [String] Inclusive/Exclusive upper bound.
101
+ # Default it is an exclusive upper bound.
102
+ # @return [Google::Cloud::Bigtable::RowRange]
103
+ #
104
+ # @example Inclusive upper bound.
105
+ # require "google/cloud/bigtable"
106
+ #
107
+ # bigtable = Google::Cloud::Bigtable.new
108
+ # table = bigtable.table("my-instance", "my-table")
109
+ #
110
+ # range = table.new_row_range.to("key-001", inclusive: true)
111
+ #
112
+ # @example Exclusive upper bound.
113
+ # require "google/cloud/bigtable"
114
+ #
115
+ # bigtable = Google::Cloud::Bigtable.new
116
+ # table = bigtable.table("my-instance", "my-table")
117
+ #
118
+ # range = table.new_row_range.to("key-001")
119
+ #
120
+ def to key, inclusive: false
121
+ if inclusive
122
+ @grpc.end_key_closed = key
123
+ else
124
+ @grpc.end_key_open = key
125
+ end
126
+ self
127
+ end
128
+
129
+ ##
130
+ # Sets a row range with inclusive upper and lower bounds.
131
+ #
132
+ # @param from_key [String] Inclusive from row key. Required.
133
+ # @param to_key [String] Inclusive end row key. Required.
134
+ # @return [Google::Cloud::Bigtable::RowRange]
135
+ # Range with inclusive from and end row keys.
136
+ #
137
+ # @example
138
+ # require "google/cloud/bigtable"
139
+ #
140
+ # bigtable = Google::Cloud::Bigtable.new
141
+ # table = bigtable.table("my-instance", "my-table")
142
+ #
143
+ # range = table.new_row_range.between("key-001", "key-010")
144
+ #
145
+ def between from_key, to_key
146
+ from(from_key).to(to_key, inclusive: true)
147
+ end
148
+
149
+ ##
150
+ # Sets a row range with an inclusive lower bound and an exclusive upper bound.
151
+ #
152
+ # @param from_key [String] Inclusive from row key.
153
+ # @param to_key [String] Exclusive end row key.
154
+ # @return [Google::Cloud::Bigtable::RowRange]
155
+ # Range with inclusive from and exclusive end row key.
156
+ #
157
+ # @example
158
+ # require "google/cloud/bigtable"
159
+ #
160
+ # bigtable = Google::Cloud::Bigtable.new
161
+ # table = bigtable.table("my-instance", "my-table")
162
+ #
163
+ # range = table.new_row_range.of("key-001", "key-010")
164
+ #
165
+ def of from_key, to_key
166
+ from(from_key).to(to_key)
167
+ end
168
+
169
+ # @private
170
+ #
171
+ # @return [Google::Bigtable::V2::RowRange]
172
+ #
173
+ def to_grpc
174
+ @grpc
175
+ end
176
+ end
177
+ end
178
+ end
179
+ end