google-cloud-bigtable-admin-v2 1.6.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]
@@ -14,6 +14,7 @@
14
14
  # See the License for the specific language governing permissions and
15
15
  # limitations under the License.
16
16
 
17
+ require "gapic/common/polling_harness"
17
18
 
18
19
  module Google
19
20
  module Cloud
@@ -103,6 +104,56 @@ module Google
103
104
  "To suppress this warning, explicitly clear GcRule##{last} to nil first."
104
105
  end
105
106
  end
107
+
108
+ module BigtableTableAdmin
109
+ class Client # rubocop:disable Style/Documentation
110
+ ##
111
+ # Wait until the given table consistently reflects mutations up
112
+ # to this point.
113
+ #
114
+ # @param name [String] The table name, in the form
115
+ # `projects/{project}/instances/{instance}/tables/{table}`.
116
+ # @param consistency_token [String] A consistency token
117
+ # identifying the mutations to be checked. If not provided,
118
+ # one is generated automatically.
119
+ # @param retry_policy [Gapic::Common::RetryPolicy] A retry policy.
120
+ # If not provided, uses the given initial_delay, max_delay,
121
+ # multipler, timeout, and retry_codes.
122
+ # @param initial_delay [Numeric] Initial delay in seconds.
123
+ # Defaults to 1.
124
+ # @param max_delay [Numeric] Maximum delay in seconds.
125
+ # Defaults to 15.
126
+ # @param multiplier [Numeric] The delay scaling factor for each
127
+ # subsequent retry attempt. Defaults to 1.3.
128
+ # @param retry_codes [Array<String|Integer>] List of retry codes.
129
+ # @param timeout [Numeric] Timeout threshold value in seconds.
130
+ # Defaults to 3600 (1 hour).
131
+ #
132
+ # @return [nil] If the table is now consistent.
133
+ # @return [String] The consistency token if the wait timed out.
134
+ # The returned token can be passed into another call to wait
135
+ # again for the same mutation set.
136
+ #
137
+ def wait_for_replication name, consistency_token: nil,
138
+ retry_policy: nil,
139
+ initial_delay: nil,
140
+ max_delay: nil,
141
+ multiplier: nil,
142
+ retry_codes: nil,
143
+ timeout: nil,
144
+ mock_delay: false
145
+ consistency_token ||= generate_consistency_token(name: name).consistency_token
146
+ poller = Gapic::Common::PollingHarness.new retry_policy: retry_policy,
147
+ initial_delay: initial_delay, max_delay: max_delay,
148
+ multiplier: multiplier, retry_codes: retry_codes,
149
+ timeout: timeout
150
+ poller.wait timeout_result: consistency_token, wait_sentinel: :wait, mock_delay: mock_delay do
151
+ response = check_consistency name: name, consistency_token: consistency_token
152
+ response.consistent ? nil : :wait
153
+ end
154
+ end
155
+ end
156
+ end
106
157
  end
107
158
  end
108
159
  end
@@ -22,7 +22,7 @@ module Google
22
22
  module Bigtable
23
23
  module Admin
24
24
  module V2
25
- VERSION = "1.6.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
@@ -409,6 +415,14 @@ module Google
409
415
  # @return [::Array<::String>]
410
416
  # An allowlist of the fully qualified names of RPCs that should be included
411
417
  # on public client surfaces.
418
+ # @!attribute [rw] generate_omitted_as_internal
419
+ # @return [::Boolean]
420
+ # Setting this to true indicates to the client generators that methods
421
+ # that would be excluded from the generation should instead be generated
422
+ # in a way that indicates these methods should not be consumed by
423
+ # end users. How this is expressed is up to individual language
424
+ # implementations to decide. Some examples may be: added annotations,
425
+ # obfuscated identifiers, or other language idiomatic patterns.
412
426
  class SelectiveGapicGeneration
413
427
  include ::Google::Protobuf::MessageExts
414
428
  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