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.
@@ -118,6 +118,44 @@ module Google
118
118
  "projects/#{project}/locations/#{location}"
119
119
  end
120
120
 
121
+ ##
122
+ # Create a fully-qualified LogicalView resource string.
123
+ #
124
+ # The resource will be in the following format:
125
+ #
126
+ # `projects/{project}/instances/{instance}/logicalViews/{logical_view}`
127
+ #
128
+ # @param project [String]
129
+ # @param instance [String]
130
+ # @param logical_view [String]
131
+ #
132
+ # @return [::String]
133
+ def logical_view_path project:, instance:, logical_view:
134
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
135
+ raise ::ArgumentError, "instance cannot contain /" if instance.to_s.include? "/"
136
+
137
+ "projects/#{project}/instances/#{instance}/logicalViews/#{logical_view}"
138
+ end
139
+
140
+ ##
141
+ # Create a fully-qualified MaterializedView resource string.
142
+ #
143
+ # The resource will be in the following format:
144
+ #
145
+ # `projects/{project}/instances/{instance}/materializedViews/{materialized_view}`
146
+ #
147
+ # @param project [String]
148
+ # @param instance [String]
149
+ # @param materialized_view [String]
150
+ #
151
+ # @return [::String]
152
+ def materialized_view_path project:, instance:, materialized_view:
153
+ raise ::ArgumentError, "project cannot contain /" if project.to_s.include? "/"
154
+ raise ::ArgumentError, "instance cannot contain /" if instance.to_s.include? "/"
155
+
156
+ "projects/#{project}/instances/#{instance}/materializedViews/#{materialized_view}"
157
+ end
158
+
121
159
  ##
122
160
  # Create a fully-qualified Project resource string.
123
161
  #
@@ -703,7 +703,7 @@ module Google
703
703
  # @param options [::Gapic::CallOptions, ::Hash]
704
704
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
705
705
  #
706
- # @overload update_table(table: nil, update_mask: nil)
706
+ # @overload update_table(table: nil, update_mask: nil, ignore_warnings: nil)
707
707
  # Pass arguments to `update_table` via keyword arguments. Note that at
708
708
  # least one keyword argument is required. To specify no parameters, or to keep all
709
709
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -721,9 +721,12 @@ module Google
721
721
  # * `change_stream_config`
722
722
  # * `change_stream_config.retention_period`
723
723
  # * `deletion_protection`
724
+ # * `row_key_schema`
724
725
  #
725
726
  # If `column_families` is set in `update_mask`, it will return an
726
727
  # UNIMPLEMENTED error.
728
+ # @param ignore_warnings [::Boolean]
729
+ # Optional. If true, ignore safety checks when updating the table.
727
730
  #
728
731
  # @yield [response, operation] Access the result along with the RPC operation
729
732
  # @yieldparam response [::Gapic::Operation]
@@ -22,7 +22,7 @@ module Google
22
22
  module Bigtable
23
23
  module Admin
24
24
  module V2
25
- VERSION = "1.7.0"
25
+ VERSION = "1.8.0"
26
26
  end
27
27
  end
28
28
  end
@@ -221,6 +221,12 @@ module Google
221
221
  # Pythonic which are included in `protobuf>=5.29.x`. This feature will be
222
222
  # enabled by default 1 month after launching the feature in preview
223
223
  # packages.
224
+ # @!attribute [rw] unversioned_package_disabled
225
+ # @return [::Boolean]
226
+ # Disables generation of an unversioned Python package for this client
227
+ # library. This means that the module names will need to be versioned in
228
+ # import statements. For example `import google.cloud.library_v2` instead
229
+ # of `import google.cloud.library`.
224
230
  class ExperimentalFeatures
225
231
  include ::Google::Protobuf::MessageExts
226
232
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -42,7 +42,6 @@ module Google
42
42
  # cluster ID, e.g., just `mycluster` rather than
43
43
  # `projects/myproject/instances/myinstance/clusters/mycluster`.
44
44
  # Fields marked `OutputOnly` must be left blank.
45
- # Currently, at most four clusters can be specified.
46
45
  class CreateInstanceRequest
47
46
  include ::Google::Protobuf::MessageExts
48
47
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -506,6 +505,261 @@ module Google
506
505
  include ::Google::Protobuf::MessageExts
507
506
  extend ::Google::Protobuf::MessageExts::ClassMethods
508
507
  end
508
+
509
+ # Request message for BigtableInstanceAdmin.CreateLogicalView.
510
+ # @!attribute [rw] parent
511
+ # @return [::String]
512
+ # Required. The parent instance where this logical view will be created.
513
+ # Format: `projects/{project}/instances/{instance}`.
514
+ # @!attribute [rw] logical_view_id
515
+ # @return [::String]
516
+ # Required. The ID to use for the logical view, which will become the final
517
+ # component of the logical view's resource name.
518
+ # @!attribute [rw] logical_view
519
+ # @return [::Google::Cloud::Bigtable::Admin::V2::LogicalView]
520
+ # Required. The logical view to create.
521
+ class CreateLogicalViewRequest
522
+ include ::Google::Protobuf::MessageExts
523
+ extend ::Google::Protobuf::MessageExts::ClassMethods
524
+ end
525
+
526
+ # The metadata for the Operation returned by CreateLogicalView.
527
+ # @!attribute [rw] original_request
528
+ # @return [::Google::Cloud::Bigtable::Admin::V2::CreateLogicalViewRequest]
529
+ # The request that prompted the initiation of this CreateLogicalView
530
+ # operation.
531
+ # @!attribute [rw] start_time
532
+ # @return [::Google::Protobuf::Timestamp]
533
+ # The time at which this operation started.
534
+ # @!attribute [rw] end_time
535
+ # @return [::Google::Protobuf::Timestamp]
536
+ # If set, the time at which this operation finished or was canceled.
537
+ class CreateLogicalViewMetadata
538
+ include ::Google::Protobuf::MessageExts
539
+ extend ::Google::Protobuf::MessageExts::ClassMethods
540
+ end
541
+
542
+ # Request message for BigtableInstanceAdmin.GetLogicalView.
543
+ # @!attribute [rw] name
544
+ # @return [::String]
545
+ # Required. The unique name of the requested logical view. Values are of the
546
+ # form `projects/{project}/instances/{instance}/logicalViews/{logical_view}`.
547
+ class GetLogicalViewRequest
548
+ include ::Google::Protobuf::MessageExts
549
+ extend ::Google::Protobuf::MessageExts::ClassMethods
550
+ end
551
+
552
+ # Request message for BigtableInstanceAdmin.ListLogicalViews.
553
+ # @!attribute [rw] parent
554
+ # @return [::String]
555
+ # Required. The unique name of the instance for which the list of logical
556
+ # views is requested. Values are of the form
557
+ # `projects/{project}/instances/{instance}`.
558
+ # @!attribute [rw] page_size
559
+ # @return [::Integer]
560
+ # Optional. The maximum number of logical views to return. The service may
561
+ # return fewer than this value
562
+ # @!attribute [rw] page_token
563
+ # @return [::String]
564
+ # Optional. A page token, received from a previous `ListLogicalViews` call.
565
+ # Provide this to retrieve the subsequent page.
566
+ #
567
+ # When paginating, all other parameters provided to `ListLogicalViews` must
568
+ # match the call that provided the page token.
569
+ class ListLogicalViewsRequest
570
+ include ::Google::Protobuf::MessageExts
571
+ extend ::Google::Protobuf::MessageExts::ClassMethods
572
+ end
573
+
574
+ # Response message for BigtableInstanceAdmin.ListLogicalViews.
575
+ # @!attribute [rw] logical_views
576
+ # @return [::Array<::Google::Cloud::Bigtable::Admin::V2::LogicalView>]
577
+ # The list of requested logical views.
578
+ # @!attribute [rw] next_page_token
579
+ # @return [::String]
580
+ # A token, which can be sent as `page_token` to retrieve the next page.
581
+ # If this field is omitted, there are no subsequent pages.
582
+ class ListLogicalViewsResponse
583
+ include ::Google::Protobuf::MessageExts
584
+ extend ::Google::Protobuf::MessageExts::ClassMethods
585
+ end
586
+
587
+ # Request message for BigtableInstanceAdmin.UpdateLogicalView.
588
+ # @!attribute [rw] logical_view
589
+ # @return [::Google::Cloud::Bigtable::Admin::V2::LogicalView]
590
+ # Required. The logical view to update.
591
+ #
592
+ # The logical view's `name` field is used to identify the view to update.
593
+ # Format:
594
+ # `projects/{project}/instances/{instance}/logicalViews/{logical_view}`.
595
+ # @!attribute [rw] update_mask
596
+ # @return [::Google::Protobuf::FieldMask]
597
+ # Optional. The list of fields to update.
598
+ class UpdateLogicalViewRequest
599
+ include ::Google::Protobuf::MessageExts
600
+ extend ::Google::Protobuf::MessageExts::ClassMethods
601
+ end
602
+
603
+ # The metadata for the Operation returned by UpdateLogicalView.
604
+ # @!attribute [rw] original_request
605
+ # @return [::Google::Cloud::Bigtable::Admin::V2::UpdateLogicalViewRequest]
606
+ # The request that prompted the initiation of this UpdateLogicalView
607
+ # operation.
608
+ # @!attribute [rw] start_time
609
+ # @return [::Google::Protobuf::Timestamp]
610
+ # The time at which this operation was started.
611
+ # @!attribute [rw] end_time
612
+ # @return [::Google::Protobuf::Timestamp]
613
+ # If set, the time at which this operation finished or was canceled.
614
+ class UpdateLogicalViewMetadata
615
+ include ::Google::Protobuf::MessageExts
616
+ extend ::Google::Protobuf::MessageExts::ClassMethods
617
+ end
618
+
619
+ # Request message for BigtableInstanceAdmin.DeleteLogicalView.
620
+ # @!attribute [rw] name
621
+ # @return [::String]
622
+ # Required. The unique name of the logical view to be deleted.
623
+ # Format:
624
+ # `projects/{project}/instances/{instance}/logicalViews/{logical_view}`.
625
+ # @!attribute [rw] etag
626
+ # @return [::String]
627
+ # Optional. The current etag of the logical view.
628
+ # If an etag is provided and does not match the current etag of the
629
+ # logical view, deletion will be blocked and an ABORTED error will be
630
+ # returned.
631
+ class DeleteLogicalViewRequest
632
+ include ::Google::Protobuf::MessageExts
633
+ extend ::Google::Protobuf::MessageExts::ClassMethods
634
+ end
635
+
636
+ # Request message for BigtableInstanceAdmin.CreateMaterializedView.
637
+ # @!attribute [rw] parent
638
+ # @return [::String]
639
+ # Required. The parent instance where this materialized view will be created.
640
+ # Format: `projects/{project}/instances/{instance}`.
641
+ # @!attribute [rw] materialized_view_id
642
+ # @return [::String]
643
+ # Required. The ID to use for the materialized view, which will become the
644
+ # final component of the materialized view's resource name.
645
+ # @!attribute [rw] materialized_view
646
+ # @return [::Google::Cloud::Bigtable::Admin::V2::MaterializedView]
647
+ # Required. The materialized view to create.
648
+ class CreateMaterializedViewRequest
649
+ include ::Google::Protobuf::MessageExts
650
+ extend ::Google::Protobuf::MessageExts::ClassMethods
651
+ end
652
+
653
+ # The metadata for the Operation returned by CreateMaterializedView.
654
+ # @!attribute [rw] original_request
655
+ # @return [::Google::Cloud::Bigtable::Admin::V2::CreateMaterializedViewRequest]
656
+ # The request that prompted the initiation of this CreateMaterializedView
657
+ # operation.
658
+ # @!attribute [rw] start_time
659
+ # @return [::Google::Protobuf::Timestamp]
660
+ # The time at which this operation started.
661
+ # @!attribute [rw] end_time
662
+ # @return [::Google::Protobuf::Timestamp]
663
+ # If set, the time at which this operation finished or was canceled.
664
+ class CreateMaterializedViewMetadata
665
+ include ::Google::Protobuf::MessageExts
666
+ extend ::Google::Protobuf::MessageExts::ClassMethods
667
+ end
668
+
669
+ # Request message for BigtableInstanceAdmin.GetMaterializedView.
670
+ # @!attribute [rw] name
671
+ # @return [::String]
672
+ # Required. The unique name of the requested materialized view. Values are of
673
+ # the form
674
+ # `projects/{project}/instances/{instance}/materializedViews/{materialized_view}`.
675
+ class GetMaterializedViewRequest
676
+ include ::Google::Protobuf::MessageExts
677
+ extend ::Google::Protobuf::MessageExts::ClassMethods
678
+ end
679
+
680
+ # Request message for BigtableInstanceAdmin.ListMaterializedViews.
681
+ # @!attribute [rw] parent
682
+ # @return [::String]
683
+ # Required. The unique name of the instance for which the list of
684
+ # materialized views is requested. Values are of the form
685
+ # `projects/{project}/instances/{instance}`.
686
+ # @!attribute [rw] page_size
687
+ # @return [::Integer]
688
+ # Optional. The maximum number of materialized views to return. The service
689
+ # may return fewer than this value
690
+ # @!attribute [rw] page_token
691
+ # @return [::String]
692
+ # Optional. A page token, received from a previous `ListMaterializedViews`
693
+ # call. Provide this to retrieve the subsequent page.
694
+ #
695
+ # When paginating, all other parameters provided to `ListMaterializedViews`
696
+ # must match the call that provided the page token.
697
+ class ListMaterializedViewsRequest
698
+ include ::Google::Protobuf::MessageExts
699
+ extend ::Google::Protobuf::MessageExts::ClassMethods
700
+ end
701
+
702
+ # Response message for BigtableInstanceAdmin.ListMaterializedViews.
703
+ # @!attribute [rw] materialized_views
704
+ # @return [::Array<::Google::Cloud::Bigtable::Admin::V2::MaterializedView>]
705
+ # The list of requested materialized views.
706
+ # @!attribute [rw] next_page_token
707
+ # @return [::String]
708
+ # A token, which can be sent as `page_token` to retrieve the next page.
709
+ # If this field is omitted, there are no subsequent pages.
710
+ class ListMaterializedViewsResponse
711
+ include ::Google::Protobuf::MessageExts
712
+ extend ::Google::Protobuf::MessageExts::ClassMethods
713
+ end
714
+
715
+ # Request message for BigtableInstanceAdmin.UpdateMaterializedView.
716
+ # @!attribute [rw] materialized_view
717
+ # @return [::Google::Cloud::Bigtable::Admin::V2::MaterializedView]
718
+ # Required. The materialized view to update.
719
+ #
720
+ # The materialized view's `name` field is used to identify the view to
721
+ # update. Format:
722
+ # `projects/{project}/instances/{instance}/materializedViews/{materialized_view}`.
723
+ # @!attribute [rw] update_mask
724
+ # @return [::Google::Protobuf::FieldMask]
725
+ # Optional. The list of fields to update.
726
+ class UpdateMaterializedViewRequest
727
+ include ::Google::Protobuf::MessageExts
728
+ extend ::Google::Protobuf::MessageExts::ClassMethods
729
+ end
730
+
731
+ # The metadata for the Operation returned by UpdateMaterializedView.
732
+ # @!attribute [rw] original_request
733
+ # @return [::Google::Cloud::Bigtable::Admin::V2::UpdateMaterializedViewRequest]
734
+ # The request that prompted the initiation of this UpdateMaterializedView
735
+ # operation.
736
+ # @!attribute [rw] start_time
737
+ # @return [::Google::Protobuf::Timestamp]
738
+ # The time at which this operation was started.
739
+ # @!attribute [rw] end_time
740
+ # @return [::Google::Protobuf::Timestamp]
741
+ # If set, the time at which this operation finished or was canceled.
742
+ class UpdateMaterializedViewMetadata
743
+ include ::Google::Protobuf::MessageExts
744
+ extend ::Google::Protobuf::MessageExts::ClassMethods
745
+ end
746
+
747
+ # Request message for BigtableInstanceAdmin.DeleteMaterializedView.
748
+ # @!attribute [rw] name
749
+ # @return [::String]
750
+ # Required. The unique name of the materialized view to be deleted.
751
+ # Format:
752
+ # `projects/{project}/instances/{instance}/materializedViews/{materialized_view}`.
753
+ # @!attribute [rw] etag
754
+ # @return [::String]
755
+ # Optional. The current etag of the materialized view.
756
+ # If an etag is provided and does not match the current etag of the
757
+ # materialized view, deletion will be blocked and an ABORTED error will be
758
+ # returned.
759
+ class DeleteMaterializedViewRequest
760
+ include ::Google::Protobuf::MessageExts
761
+ extend ::Google::Protobuf::MessageExts::ClassMethods
762
+ end
509
763
  end
510
764
  end
511
765
  end
@@ -261,9 +261,13 @@ module Google
261
261
  # * `change_stream_config`
262
262
  # * `change_stream_config.retention_period`
263
263
  # * `deletion_protection`
264
+ # * `row_key_schema`
264
265
  #
265
266
  # If `column_families` is set in `update_mask`, it will return an
266
267
  # UNIMPLEMENTED error.
268
+ # @!attribute [rw] ignore_warnings
269
+ # @return [::Boolean]
270
+ # Optional. If true, ignore safety checks when updating the table.
267
271
  class UpdateTableRequest
268
272
  include ::Google::Protobuf::MessageExts
269
273
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -35,10 +35,9 @@ module Google
35
35
  # Required. The descriptive name for this instance as it appears in UIs.
36
36
  # Can be changed at any time, but should be kept globally unique
37
37
  # to avoid confusion.
38
- # @!attribute [rw] state
38
+ # @!attribute [r] state
39
39
  # @return [::Google::Cloud::Bigtable::Admin::V2::Instance::State]
40
- # (`OutputOnly`)
41
- # The current state of the instance.
40
+ # Output only. The current state of the instance.
42
41
  # @!attribute [rw] type
43
42
  # @return [::Google::Cloud::Bigtable::Admin::V2::Instance::Type]
44
43
  # The type of the instance. Defaults to `PRODUCTION`.
@@ -57,12 +56,15 @@ module Google
57
56
  # * Keys and values must both be under 128 bytes.
58
57
  # @!attribute [r] create_time
59
58
  # @return [::Google::Protobuf::Timestamp]
60
- # Output only. A server-assigned timestamp representing when this Instance
61
- # was created. For instances created before this field was added (August
62
- # 2021), this value is `seconds: 0, nanos: 1`.
59
+ # Output only. A commit timestamp representing when this Instance was
60
+ # created. For instances created before this field was added (August 2021),
61
+ # this value is `seconds: 0, nanos: 1`.
63
62
  # @!attribute [r] satisfies_pzs
64
63
  # @return [::Boolean]
65
64
  # Output only. Reserved for future use.
65
+ # @!attribute [r] satisfies_pzi
66
+ # @return [::Boolean]
67
+ # Output only. Reserved for future use.
66
68
  class Instance
67
69
  include ::Google::Protobuf::MessageExts
68
70
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -157,8 +159,9 @@ module Google
157
159
  # Output only. The current state of the cluster.
158
160
  # @!attribute [rw] serve_nodes
159
161
  # @return [::Integer]
160
- # The number of nodes allocated to this cluster. More nodes enable higher
161
- # throughput and more consistent performance.
162
+ # The number of nodes in the cluster. If no value is set,
163
+ # Cloud Bigtable automatically allocates nodes based on your data footprint
164
+ # and optimized for 50% storage utilization.
162
165
  # @!attribute [rw] node_scaling_factor
163
166
  # @return [::Google::Cloud::Bigtable::Admin::V2::Cluster::NodeScalingFactor]
164
167
  # Immutable. The node scaling factor of this cluster.
@@ -208,7 +211,6 @@ module Google
208
211
  # `cloudkms.cryptoKeyEncrypterDecrypter` role on the CMEK key.
209
212
  # 2) Only regional keys can be used and the region of the CMEK key must
210
213
  # match the region of the cluster.
211
- # 3) All clusters within an instance must use the same CMEK key.
212
214
  # Values are of the form
213
215
  # `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}`
214
216
  class EncryptionConfig
@@ -370,17 +372,10 @@ module Google
370
372
  end
371
373
 
372
374
  # Data Boost is a serverless compute capability that lets you run
373
- # high-throughput read jobs on your Bigtable data, without impacting the
374
- # performance of the clusters that handle your application traffic.
375
- # Currently, Data Boost exclusively supports read-only use-cases with
376
- # single-cluster routing.
377
- #
378
- # Data Boost reads are only guaranteed to see the results of writes that
379
- # were written at least 30 minutes ago. This means newly written values may
380
- # not become visible for up to 30m, and also means that old values may
381
- # remain visible for up to 30m after being deleted or overwritten. To
382
- # mitigate the staleness of the data, users may either wait 30m, or use
383
- # CheckConsistency.
375
+ # high-throughput read jobs and queries on your Bigtable data, without
376
+ # impacting the performance of the clusters that handle your application
377
+ # traffic. Data Boost supports read-only use cases with single-cluster
378
+ # routing.
384
379
  # @!attribute [rw] compute_billing_owner
385
380
  # @return [::Google::Cloud::Bigtable::Admin::V2::AppProfile::DataBoostIsolationReadOnly::ComputeBillingOwner]
386
381
  # The Compute Billing Owner for this Data Boost App Profile.
@@ -451,6 +446,49 @@ module Google
451
446
  include ::Google::Protobuf::MessageExts
452
447
  extend ::Google::Protobuf::MessageExts::ClassMethods
453
448
  end
449
+
450
+ # A SQL logical view object that can be referenced in SQL queries.
451
+ # @!attribute [rw] name
452
+ # @return [::String]
453
+ # Identifier. The unique name of the logical view.
454
+ # Format:
455
+ # `projects/{project}/instances/{instance}/logicalViews/{logical_view}`
456
+ # @!attribute [rw] query
457
+ # @return [::String]
458
+ # Required. The logical view's select query.
459
+ # @!attribute [rw] etag
460
+ # @return [::String]
461
+ # Optional. The etag for this logical view.
462
+ # This may be sent on update requests to ensure that the client has an
463
+ # up-to-date value before proceeding. The server returns an ABORTED error on
464
+ # a mismatched etag.
465
+ class LogicalView
466
+ include ::Google::Protobuf::MessageExts
467
+ extend ::Google::Protobuf::MessageExts::ClassMethods
468
+ end
469
+
470
+ # A materialized view object that can be referenced in SQL queries.
471
+ # @!attribute [rw] name
472
+ # @return [::String]
473
+ # Identifier. The unique name of the materialized view.
474
+ # Format:
475
+ # `projects/{project}/instances/{instance}/materializedViews/{materialized_view}`
476
+ # @!attribute [rw] query
477
+ # @return [::String]
478
+ # Required. Immutable. The materialized view's select query.
479
+ # @!attribute [rw] etag
480
+ # @return [::String]
481
+ # Optional. The etag for this materialized view.
482
+ # This may be sent on update requests to ensure that the client has an
483
+ # up-to-date value before proceeding. The server returns an ABORTED error on
484
+ # a mismatched etag.
485
+ # @!attribute [rw] deletion_protection
486
+ # @return [::Boolean]
487
+ # Set to true to make the MaterializedView protected against deletion.
488
+ class MaterializedView
489
+ include ::Google::Protobuf::MessageExts
490
+ extend ::Google::Protobuf::MessageExts::ClassMethods
491
+ end
454
492
  end
455
493
  end
456
494
  end
@@ -95,6 +95,64 @@ module Google
95
95
  # @return [::Google::Cloud::Bigtable::Admin::V2::Table::AutomatedBackupPolicy]
96
96
  # If specified, automated backups are enabled for this table.
97
97
  # Otherwise, automated backups are disabled.
98
+ # @!attribute [rw] row_key_schema
99
+ # @return [::Google::Cloud::Bigtable::Admin::V2::Type::Struct]
100
+ # The row key schema for this table. The schema is used to decode the raw row
101
+ # key bytes into a structured format. The order of field declarations in this
102
+ # schema is important, as it reflects how the raw row key bytes are
103
+ # structured. Currently, this only affects how the key is read via a
104
+ # GoogleSQL query from the ExecuteQuery API.
105
+ #
106
+ # For a SQL query, the _key column is still read as raw bytes. But queries
107
+ # can reference the key fields by name, which will be decoded from _key using
108
+ # provided type and encoding. Queries that reference key fields will fail if
109
+ # they encounter an invalid row key.
110
+ #
111
+ # For example, if _key = "some_id#2024-04-30#\x00\x13\x00\xf3" with the
112
+ # following schema:
113
+ # {
114
+ # fields {
115
+ # field_name: "id"
116
+ # type { string { encoding: utf8_bytes \\{} } }
117
+ # }
118
+ # fields {
119
+ # field_name: "date"
120
+ # type { string { encoding: utf8_bytes \\{} } }
121
+ # }
122
+ # fields {
123
+ # field_name: "product_code"
124
+ # type { int64 { encoding: big_endian_bytes \\{} } }
125
+ # }
126
+ # encoding { delimited_bytes { delimiter: "#" } }
127
+ # }
128
+ #
129
+ # The decoded key parts would be:
130
+ # id = "some_id", date = "2024-04-30", product_code = 1245427
131
+ # The query "SELECT _key, product_code FROM table" will return two columns:
132
+ # /------------------------------------------------------\
133
+ # | _key | product_code |
134
+ # | --------------------------------------|--------------|
135
+ # | "some_id#2024-04-30#\x00\x13\x00\xf3" | 1245427 |
136
+ # \------------------------------------------------------/
137
+ #
138
+ # The schema has the following invariants:
139
+ # (1) The decoded field values are order-preserved. For read, the field
140
+ # values will be decoded in sorted mode from the raw bytes.
141
+ # (2) Every field in the schema must specify a non-empty name.
142
+ # (3) Every field must specify a type with an associated encoding. The type
143
+ # is limited to scalar types only: Array, Map, Aggregate, and Struct are not
144
+ # allowed.
145
+ # (4) The field names must not collide with existing column family
146
+ # names and reserved keywords "_key" and "_timestamp".
147
+ #
148
+ # The following update operations are allowed for row_key_schema:
149
+ # - Update from an empty schema to a new schema.
150
+ # - Remove the existing schema. This operation requires setting the
151
+ # `ignore_warnings` flag to `true`, since it might be a backward
152
+ # incompatible change. Without the flag, the update request will fail with
153
+ # an INVALID_ARGUMENT error.
154
+ # Any other row key schema update operation (e.g. update existing schema
155
+ # columns names or types) is currently unsupported.
98
156
  class Table
99
157
  include ::Google::Protobuf::MessageExts
100
158
  extend ::Google::Protobuf::MessageExts::ClassMethods