google-cloud-bigtable-admin-v2 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,25 +27,23 @@ module Google
27
27
  # familiarity and consistency across products and features.
28
28
  #
29
29
  # For compatibility with Bigtable's existing untyped APIs, each `Type` includes
30
- # an `Encoding` which describes how to convert to/from the underlying data.
30
+ # an `Encoding` which describes how to convert to or from the underlying data.
31
31
  #
32
- # Each encoding also defines the following properties:
32
+ # Each encoding can operate in one of two modes:
33
33
  #
34
- # * Order-preserving: Does the encoded value sort consistently with the
35
- # original typed value? Note that Bigtable will always sort data based on
36
- # the raw encoded value, *not* the decoded type.
37
- # - Example: BYTES values sort in the same order as their raw encodings.
38
- # - Counterexample: Encoding INT64 as a fixed-width decimal string does
39
- # *not* preserve sort order when dealing with negative numbers.
40
- # `INT64(1) > INT64(-1)`, but `STRING("-00001") > STRING("00001)`.
41
- # * Self-delimiting: If we concatenate two encoded values, can we always tell
42
- # where the first one ends and the second one begins?
43
- # - Example: If we encode INT64s to fixed-width STRINGs, the first value
44
- # will always contain exactly N digits, possibly preceded by a sign.
45
- # - Counterexample: If we concatenate two UTF-8 encoded STRINGs, we have
46
- # no way to tell where the first one ends.
47
- # * Compatibility: Which other systems have matching encoding schemes? For
48
- # example, does this encoding have a GoogleSQL equivalent? HBase? Java?
34
+ # - Sorted: In this mode, Bigtable guarantees that `Encode(X) <= Encode(Y)`
35
+ # if and only if `X <= Y`. This is useful anywhere sort order is important,
36
+ # for example when encoding keys.
37
+ # - Distinct: In this mode, Bigtable guarantees that if `X != Y` then
38
+ # `Encode(X) != Encode(Y)`. However, the converse is not guaranteed. For
39
+ # example, both "\\{'foo': '1', 'bar': '2'}" and "\\{'bar': '2', 'foo': '1'}"
40
+ # are valid encodings of the same JSON value.
41
+ #
42
+ # The API clearly documents which mode is used wherever an encoding can be
43
+ # configured. Each encoding also documents which values are supported in which
44
+ # modes. For example, when encoding INT64 as a numeric STRING, negative numbers
45
+ # cannot be encoded in sorted mode. This is because `INT64(1) > INT64(-1)`, but
46
+ # `STRING("-00001") > STRING("00001")`.
49
47
  # @!attribute [rw] bytes_type
50
48
  # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Bytes]
51
49
  # Bytes
@@ -114,12 +112,12 @@ module Google
114
112
  # Values of type `Bytes` are stored in `Value.bytes_value`.
115
113
  # @!attribute [rw] encoding
116
114
  # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Bytes::Encoding]
117
- # The encoding to use when converting to/from lower level types.
115
+ # The encoding to use when converting to or from lower level types.
118
116
  class Bytes
119
117
  include ::Google::Protobuf::MessageExts
120
118
  extend ::Google::Protobuf::MessageExts::ClassMethods
121
119
 
122
- # Rules used to convert to/from lower level types.
120
+ # Rules used to convert to or from lower level types.
123
121
  # @!attribute [rw] raw
124
122
  # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Bytes::Encoding::Raw]
125
123
  # Use `Raw` encoding.
@@ -127,10 +125,11 @@ module Google
127
125
  include ::Google::Protobuf::MessageExts
128
126
  extend ::Google::Protobuf::MessageExts::ClassMethods
129
127
 
130
- # Leaves the value "as-is"
131
- # * Order-preserving? Yes
132
- # * Self-delimiting? No
133
- # * Compatibility? N/A
128
+ # Leaves the value as-is.
129
+ #
130
+ # Sorted mode: all values are supported.
131
+ #
132
+ # Distinct mode: all values are supported.
134
133
  class Raw
135
134
  include ::Google::Protobuf::MessageExts
136
135
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -142,12 +141,12 @@ module Google
142
141
  # Values of type `String` are stored in `Value.string_value`.
143
142
  # @!attribute [rw] encoding
144
143
  # @return [::Google::Cloud::Bigtable::Admin::V2::Type::String::Encoding]
145
- # The encoding to use when converting to/from lower level types.
144
+ # The encoding to use when converting to or from lower level types.
146
145
  class String
147
146
  include ::Google::Protobuf::MessageExts
148
147
  extend ::Google::Protobuf::MessageExts::ClassMethods
149
148
 
150
- # Rules used to convert to/from lower level types.
149
+ # Rules used to convert to or from lower level types.
151
150
  # @!attribute [rw] utf8_raw
152
151
  # @deprecated This field is deprecated and may be removed in the next major version update.
153
152
  # @return [::Google::Cloud::Bigtable::Admin::V2::Type::String::Encoding::Utf8Raw]
@@ -170,13 +169,19 @@ module Google
170
169
  extend ::Google::Protobuf::MessageExts::ClassMethods
171
170
  end
172
171
 
173
- # UTF-8 encoding
174
- # * Order-preserving? Yes (code point order)
175
- # * Self-delimiting? No
176
- # * Compatibility?
177
- # - BigQuery Federation `TEXT` encoding
178
- # - HBase `Bytes.toBytes`
179
- # - Java `String#getBytes(StandardCharsets.UTF_8)`
172
+ # UTF-8 encoding.
173
+ #
174
+ # Sorted mode:
175
+ # - All values are supported.
176
+ # - Code point order is preserved.
177
+ #
178
+ # Distinct mode: all values are supported.
179
+ #
180
+ # Compatible with:
181
+ #
182
+ # - BigQuery `TEXT` encoding
183
+ # - HBase `Bytes.toBytes`
184
+ # - Java `String#getBytes(StandardCharsets.UTF_8)`
180
185
  class Utf8Bytes
181
186
  include ::Google::Protobuf::MessageExts
182
187
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -188,34 +193,56 @@ module Google
188
193
  # Values of type `Int64` are stored in `Value.int_value`.
189
194
  # @!attribute [rw] encoding
190
195
  # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Int64::Encoding]
191
- # The encoding to use when converting to/from lower level types.
196
+ # The encoding to use when converting to or from lower level types.
192
197
  class Int64
193
198
  include ::Google::Protobuf::MessageExts
194
199
  extend ::Google::Protobuf::MessageExts::ClassMethods
195
200
 
196
- # Rules used to convert to/from lower level types.
201
+ # Rules used to convert to or from lower level types.
197
202
  # @!attribute [rw] big_endian_bytes
198
203
  # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Int64::Encoding::BigEndianBytes]
199
204
  # Use `BigEndianBytes` encoding.
205
+ #
206
+ # Note: The following fields are mutually exclusive: `big_endian_bytes`, `ordered_code_bytes`. If a field in that set is populated, all other fields in the set will automatically be cleared.
207
+ # @!attribute [rw] ordered_code_bytes
208
+ # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Int64::Encoding::OrderedCodeBytes]
209
+ # Use `OrderedCodeBytes` encoding.
210
+ #
211
+ # Note: The following fields are mutually exclusive: `ordered_code_bytes`, `big_endian_bytes`. If a field in that set is populated, all other fields in the set will automatically be cleared.
200
212
  class Encoding
201
213
  include ::Google::Protobuf::MessageExts
202
214
  extend ::Google::Protobuf::MessageExts::ClassMethods
203
215
 
204
- # Encodes the value as an 8-byte big endian twos complement `Bytes`
205
- # value.
206
- # * Order-preserving? No (positive values only)
207
- # * Self-delimiting? Yes
208
- # * Compatibility?
209
- # - BigQuery Federation `BINARY` encoding
210
- # - HBase `Bytes.toBytes`
211
- # - Java `ByteBuffer.putLong()` with `ByteOrder.BIG_ENDIAN`
216
+ # Encodes the value as an 8-byte big-endian two's complement value.
217
+ #
218
+ # Sorted mode: non-negative values are supported.
219
+ #
220
+ # Distinct mode: all values are supported.
221
+ #
222
+ # Compatible with:
223
+ #
224
+ # - BigQuery `BINARY` encoding
225
+ # - HBase `Bytes.toBytes`
226
+ # - Java `ByteBuffer.putLong()` with `ByteOrder.BIG_ENDIAN`
212
227
  # @!attribute [rw] bytes_type
228
+ # @deprecated This field is deprecated and may be removed in the next major version update.
213
229
  # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Bytes]
214
230
  # Deprecated: ignored if set.
215
231
  class BigEndianBytes
216
232
  include ::Google::Protobuf::MessageExts
217
233
  extend ::Google::Protobuf::MessageExts::ClassMethods
218
234
  end
235
+
236
+ # Encodes the value in a variable length binary format of up to 10 bytes.
237
+ # Values that are closer to zero use fewer bytes.
238
+ #
239
+ # Sorted mode: all values are supported.
240
+ #
241
+ # Distinct mode: all values are supported.
242
+ class OrderedCodeBytes
243
+ include ::Google::Protobuf::MessageExts
244
+ extend ::Google::Protobuf::MessageExts::ClassMethods
245
+ end
219
246
  end
220
247
  end
221
248
 
@@ -242,9 +269,26 @@ module Google
242
269
 
243
270
  # Timestamp
244
271
  # Values of type `Timestamp` are stored in `Value.timestamp_value`.
272
+ # @!attribute [rw] encoding
273
+ # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Timestamp::Encoding]
274
+ # The encoding to use when converting to or from lower level types.
245
275
  class Timestamp
246
276
  include ::Google::Protobuf::MessageExts
247
277
  extend ::Google::Protobuf::MessageExts::ClassMethods
278
+
279
+ # Rules used to convert to or from lower level types.
280
+ # @!attribute [rw] unix_micros_int64
281
+ # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Int64::Encoding]
282
+ # Encodes the number of microseconds since the Unix epoch using the
283
+ # given `Int64` encoding. Values must be microsecond-aligned.
284
+ #
285
+ # Compatible with:
286
+ #
287
+ # - Java `Instant.truncatedTo()` with `ChronoUnit.MICROS`
288
+ class Encoding
289
+ include ::Google::Protobuf::MessageExts
290
+ extend ::Google::Protobuf::MessageExts::ClassMethods
291
+ end
248
292
  end
249
293
 
250
294
  # Date
@@ -261,6 +305,9 @@ module Google
261
305
  # @!attribute [rw] fields
262
306
  # @return [::Array<::Google::Cloud::Bigtable::Admin::V2::Type::Struct::Field>]
263
307
  # The names and types of the fields in this struct.
308
+ # @!attribute [rw] encoding
309
+ # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Struct::Encoding]
310
+ # The encoding to use when converting to or from lower level types.
264
311
  class Struct
265
312
  include ::Google::Protobuf::MessageExts
266
313
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -277,6 +324,105 @@ module Google
277
324
  include ::Google::Protobuf::MessageExts
278
325
  extend ::Google::Protobuf::MessageExts::ClassMethods
279
326
  end
327
+
328
+ # Rules used to convert to or from lower level types.
329
+ # @!attribute [rw] singleton
330
+ # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Struct::Encoding::Singleton]
331
+ # Use `Singleton` encoding.
332
+ #
333
+ # Note: The following fields are mutually exclusive: `singleton`, `delimited_bytes`, `ordered_code_bytes`. If a field in that set is populated, all other fields in the set will automatically be cleared.
334
+ # @!attribute [rw] delimited_bytes
335
+ # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Struct::Encoding::DelimitedBytes]
336
+ # Use `DelimitedBytes` encoding.
337
+ #
338
+ # Note: The following fields are mutually exclusive: `delimited_bytes`, `singleton`, `ordered_code_bytes`. If a field in that set is populated, all other fields in the set will automatically be cleared.
339
+ # @!attribute [rw] ordered_code_bytes
340
+ # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Struct::Encoding::OrderedCodeBytes]
341
+ # User `OrderedCodeBytes` encoding.
342
+ #
343
+ # Note: The following fields are mutually exclusive: `ordered_code_bytes`, `singleton`, `delimited_bytes`. If a field in that set is populated, all other fields in the set will automatically be cleared.
344
+ class Encoding
345
+ include ::Google::Protobuf::MessageExts
346
+ extend ::Google::Protobuf::MessageExts::ClassMethods
347
+
348
+ # Uses the encoding of `fields[0].type` as-is.
349
+ # Only valid if `fields.size == 1`.
350
+ class Singleton
351
+ include ::Google::Protobuf::MessageExts
352
+ extend ::Google::Protobuf::MessageExts::ClassMethods
353
+ end
354
+
355
+ # Fields are encoded independently and concatenated with a configurable
356
+ # `delimiter` in between.
357
+ #
358
+ # A struct with no fields defined is encoded as a single `delimiter`.
359
+ #
360
+ # Sorted mode:
361
+ #
362
+ # - Fields are encoded in sorted mode.
363
+ # - Encoded field values must not contain any bytes <= `delimiter[0]`
364
+ # - Element-wise order is preserved: `A < B` if `A[0] < B[0]`, or if
365
+ # `A[0] == B[0] && A[1] < B[1]`, etc. Strict prefixes sort first.
366
+ #
367
+ # Distinct mode:
368
+ #
369
+ # - Fields are encoded in distinct mode.
370
+ # - Encoded field values must not contain `delimiter[0]`.
371
+ # @!attribute [rw] delimiter
372
+ # @return [::String]
373
+ # Byte sequence used to delimit concatenated fields. The delimiter must
374
+ # contain at least 1 character and at most 50 characters.
375
+ class DelimitedBytes
376
+ include ::Google::Protobuf::MessageExts
377
+ extend ::Google::Protobuf::MessageExts::ClassMethods
378
+ end
379
+
380
+ # Fields are encoded independently and concatenated with the fixed byte
381
+ # pair \\{0x00, 0x01} in between.
382
+ #
383
+ # Any null (0x00) byte in an encoded field is replaced by the fixed byte
384
+ # pair \\{0x00, 0xFF}.
385
+ #
386
+ # Fields that encode to the empty string "" have special handling:
387
+ #
388
+ # - If *every* field encodes to "", or if the STRUCT has no fields
389
+ # defined, then the STRUCT is encoded as the fixed byte pair
390
+ # \\{0x00, 0x00}.
391
+ # - Otherwise, the STRUCT only encodes until the last non-empty field,
392
+ # omitting any trailing empty fields. Any empty fields that aren't
393
+ # omitted are replaced with the fixed byte pair \\{0x00, 0x00}.
394
+ #
395
+ # Examples:
396
+ #
397
+ # - STRUCT() -> "\00\00"
398
+ # - STRUCT("") -> "\00\00"
399
+ # - STRUCT("", "") -> "\00\00"
400
+ # - STRUCT("", "B") -> "\00\00" + "\00\01" + "B"
401
+ # - STRUCT("A", "") -> "A"
402
+ # - STRUCT("", "B", "") -> "\00\00" + "\00\01" + "B"
403
+ # - STRUCT("A", "", "C") -> "A" + "\00\01" + "\00\00" + "\00\01" + "C"
404
+ #
405
+ #
406
+ # Since null bytes are always escaped, this encoding can cause size
407
+ # blowup for encodings like `Int64.BigEndianBytes` that are likely to
408
+ # produce many such bytes.
409
+ #
410
+ # Sorted mode:
411
+ #
412
+ # - Fields are encoded in sorted mode.
413
+ # - All values supported by the field encodings are allowed
414
+ # - Element-wise order is preserved: `A < B` if `A[0] < B[0]`, or if
415
+ # `A[0] == B[0] && A[1] < B[1]`, etc. Strict prefixes sort first.
416
+ #
417
+ # Distinct mode:
418
+ #
419
+ # - Fields are encoded in distinct mode.
420
+ # - All values supported by the field encodings are allowed.
421
+ class OrderedCodeBytes
422
+ include ::Google::Protobuf::MessageExts
423
+ extend ::Google::Protobuf::MessageExts::ClassMethods
424
+ end
425
+ end
280
426
  end
281
427
 
282
428
  # An ordered list of elements of a given type.
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-bigtable-admin-v2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-01-31 00:00:00.000000000 Z
10
+ date: 2025-03-12 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: gapic-common
@@ -132,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0'
134
134
  requirements: []
135
- rubygems_version: 3.6.3
135
+ rubygems_version: 3.6.5
136
136
  specification_version: 4
137
137
  summary: Administer your Cloud Bigtable tables and instances.
138
138
  test_files: []