google-apis-spanner_v1 0.9.0 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f1243dcf90ea82fda1dae00b5a98f84e653b2610e887b6633aac5b573249cc70
4
- data.tar.gz: f0db958321c5009cac506b1ee4fb9e798020ce6de390e8283ec354c27812781e
3
+ metadata.gz: c4e365d7961157ce00c492b5c328fa3c75dec95f6561ded7c8d039d1f9e10a76
4
+ data.tar.gz: b9c001b73c4739d5f9bc617a7ad516860e413858e27267746432178315cccb6b
5
5
  SHA512:
6
- metadata.gz: '01860fbbfdb61ed4fb3da58328c6ab11769097d7ca2d52dbc5234eecb147fef348920a724138f6918d65c8e7bdbffd717fde36ee51e39a14d836f1324ede17aa'
7
- data.tar.gz: bf892f11e0fa5beac035efccbb672c87d0a18d6de49c0fe0a0dbd1890a1c4a4ed0f9bb4c74ba52adb07d2e4227c09b49fb4847413ff8e4f3ba55f3d507d563d6
6
+ metadata.gz: 855b5dee0234ceec4ec8b23d29766e9a29032d37753385df1bdbd48868763c48202a8a98f3441e85764403a9232b7bff6130bbbc1397ca40d873900469bc3229
7
+ data.tar.gz: 4a6fad9130539418072cf2b8c60344d7c1d9767d5ca77ac8416c4b04a92310fb0decf60f8a3772e14cc42289b3a833e72464c780021faca87fba8bc12feeeab8
data/CHANGELOG.md CHANGED
@@ -1,5 +1,29 @@
1
1
  # Release history for google-apis-spanner_v1
2
2
 
3
+ ### v0.14.0 (2021-07-03)
4
+
5
+ * Regenerated from discovery document revision 20210624
6
+ * Regenerated using generator version 0.4.0
7
+ * Unspecified changes
8
+
9
+ ### v0.13.0 (2021-06-17)
10
+
11
+ * Regenerated from discovery document revision 20210611
12
+
13
+ ### v0.12.0 (2021-06-10)
14
+
15
+ * Regenerated from discovery document revision 20210603
16
+
17
+ ### v0.11.0 (2021-06-03)
18
+
19
+ * Regenerated from discovery document revision 20210527
20
+ * Regenerated using generator version 0.3.0
21
+
22
+ ### v0.10.0 (2021-05-22)
23
+
24
+ * Regenerated from discovery document revision 20210517
25
+ * Unspecified changes
26
+
3
27
  ### v0.9.0 (2021-04-17)
4
28
 
5
29
  * Regenerated from discovery document revision 20210405
@@ -201,12 +201,12 @@ module Google
201
201
  class BeginTransactionRequest
202
202
  include Google::Apis::Core::Hashable
203
203
 
204
- # # Transactions Each session can have at most one active transaction at a time (
204
+ # Transactions: Each session can have at most one active transaction at a time (
205
205
  # note that standalone reads and queries use a transaction internally and do
206
206
  # count towards the one transaction limit). After the active transaction is
207
207
  # completed, the session can immediately be re-used for the next transaction. It
208
- # is not necessary to create a new session for each transaction. # Transaction
209
- # Modes Cloud Spanner supports three transaction modes: 1. Locking read-write.
208
+ # is not necessary to create a new session for each transaction. Transaction
209
+ # Modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
210
210
  # This type of transaction is the only way to write data into Cloud Spanner.
211
211
  # These transactions rely on pessimistic locking and, if necessary, two-phase
212
212
  # commit. Locking read-write transactions may abort, requiring the application
@@ -224,8 +224,8 @@ module Google
224
224
  # transactions. As a consequence of not taking locks, they also do not abort, so
225
225
  # retry loops are not needed. Transactions may only read/write data in a single
226
226
  # database. They may, however, read/write data in different tables within that
227
- # database. ## Locking Read-Write Transactions Locking transactions may be used
228
- # to atomically read-modify-write data anywhere in a database. This type of
227
+ # database. Locking Read-Write Transactions: Locking transactions may be used to
228
+ # atomically read-modify-write data anywhere in a database. This type of
229
229
  # transaction is externally consistent. Clients should attempt to minimize the
230
230
  # amount of time a transaction is active. Faster transactions commit with higher
231
231
  # probability and cause less contention. Cloud Spanner attempts to keep read
@@ -234,7 +234,7 @@ module Google
234
234
  # inactivity at the client may cause Cloud Spanner to release a transaction's
235
235
  # locks and abort it. Conceptually, a read-write transaction consists of zero or
236
236
  # more reads or SQL statements followed by Commit. At any time before Commit,
237
- # the client can send a Rollback request to abort the transaction. ## Semantics
237
+ # the client can send a Rollback request to abort the transaction. Semantics:
238
238
  # Cloud Spanner can commit the transaction if all read locks it acquired are
239
239
  # still valid at commit time, and it is able to acquire write locks for all
240
240
  # writes. Cloud Spanner can abort the transaction for any reason. If a commit
@@ -242,24 +242,24 @@ module Google
242
242
  # not modified any user data in Cloud Spanner. Unless the transaction commits,
243
243
  # Cloud Spanner makes no guarantees about how long the transaction's locks were
244
244
  # held for. It is an error to use Cloud Spanner locks for any sort of mutual
245
- # exclusion other than between Cloud Spanner transactions themselves. ##
246
- # Retrying Aborted Transactions When a transaction aborts, the application can
247
- # choose to retry the whole transaction again. To maximize the chances of
248
- # successfully committing the retry, the client should execute the retry in the
249
- # same session as the original attempt. The original session's lock priority
250
- # increases with each consecutive abort, meaning that each attempt has a
251
- # slightly better chance of success than the previous. Under some circumstances (
252
- # e.g., many transactions attempting to modify the same row(s)), a transaction
253
- # can abort many times in a short period before successfully committing. Thus,
254
- # it is not a good idea to cap the number of retries a transaction can attempt;
255
- # instead, it is better to limit the total amount of wall time spent retrying. ##
256
- # Idle Transactions A transaction is considered idle if it has no outstanding
257
- # reads or SQL queries and has not started a read or SQL query within the last
258
- # 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don'
259
- # t hold on to locks indefinitely. In that case, the commit will fail with error
260
- # `ABORTED`. If this behavior is undesirable, periodically executing a simple
261
- # SQL query in the transaction (e.g., `SELECT 1`) prevents the transaction from
262
- # becoming idle. ## Snapshot Read-Only Transactions Snapshot read-only
245
+ # exclusion other than between Cloud Spanner transactions themselves. Retrying
246
+ # Aborted Transactions: When a transaction aborts, the application can choose to
247
+ # retry the whole transaction again. To maximize the chances of successfully
248
+ # committing the retry, the client should execute the retry in the same session
249
+ # as the original attempt. The original session's lock priority increases with
250
+ # each consecutive abort, meaning that each attempt has a slightly better chance
251
+ # of success than the previous. Under some circumstances (e.g., many
252
+ # transactions attempting to modify the same row(s)), a transaction can abort
253
+ # many times in a short period before successfully committing. Thus, it is not a
254
+ # good idea to cap the number of retries a transaction can attempt; instead, it
255
+ # is better to limit the total amount of wall time spent retrying. Idle
256
+ # Transactions: A transaction is considered idle if it has no outstanding reads
257
+ # or SQL queries and has not started a read or SQL query within the last 10
258
+ # seconds. Idle transactions can be aborted by Cloud Spanner so that they don't
259
+ # hold on to locks indefinitely. In that case, the commit will fail with error `
260
+ # ABORTED`. If this behavior is undesirable, periodically executing a simple SQL
261
+ # query in the transaction (e.g., `SELECT 1`) prevents the transaction from
262
+ # becoming idle. Snapshot Read-Only Transactions: Snapshot read-only
263
263
  # transactions provides a simpler method than locking read-write transactions
264
264
  # for doing several consistent reads. However, this type of transaction does not
265
265
  # support writes. Snapshot transactions do not take locks. Instead, they work by
@@ -277,15 +277,15 @@ module Google
277
277
  # is geographically distributed, stale read-only transactions can execute more
278
278
  # quickly than strong or read-write transaction, because they are able to
279
279
  # execute far from the leader replica. Each type of timestamp bound is discussed
280
- # in detail below. ## Strong Strong reads are guaranteed to see the effects of
281
- # all transactions that have committed before the start of the read. Furthermore,
280
+ # in detail below. Strong: Strong reads are guaranteed to see the effects of all
281
+ # transactions that have committed before the start of the read. Furthermore,
282
282
  # all rows yielded by a single read are consistent with each other -- if any
283
283
  # part of the read observes a transaction, all parts of the read see the
284
284
  # transaction. Strong reads are not repeatable: two consecutive strong read-only
285
285
  # transactions might return inconsistent results if there are concurrent writes.
286
286
  # If consistency across reads is required, the reads should be executed within a
287
287
  # transaction or at an exact read timestamp. See TransactionOptions.ReadOnly.
288
- # strong. ## Exact Staleness These timestamp bounds execute reads at a user-
288
+ # strong. Exact Staleness: These timestamp bounds execute reads at a user-
289
289
  # specified timestamp. Reads at a timestamp are guaranteed to see a consistent
290
290
  # prefix of the global transaction history: they observe modifications done by
291
291
  # all transactions with a commit timestamp <= the read timestamp, and observe
@@ -297,8 +297,8 @@ module Google
297
297
  # to pick a timestamp. As a result, they execute slightly faster than the
298
298
  # equivalent boundedly stale concurrency modes. On the other hand, boundedly
299
299
  # stale reads usually return fresher results. See TransactionOptions.ReadOnly.
300
- # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. ## Bounded
301
- # Staleness Bounded staleness modes allow Cloud Spanner to pick the read
300
+ # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
301
+ # Staleness: Bounded staleness modes allow Cloud Spanner to pick the read
302
302
  # timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
303
303
  # the newest timestamp within the staleness bound that allows execution of the
304
304
  # reads at the closest available replica without blocking. All rows yielded are
@@ -315,15 +315,15 @@ module Google
315
315
  # timestamp negotiation requires up-front knowledge of which rows will be read,
316
316
  # it can only be used with single-use read-only transactions. See
317
317
  # TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
318
- # min_read_timestamp. ## Old Read Timestamps and Garbage Collection Cloud
319
- # Spanner continuously garbage collects deleted and overwritten data in the
320
- # background to reclaim storage space. This process is known as "version GC". By
321
- # default, version GC reclaims versions after they are one hour old. Because of
322
- # this, Cloud Spanner cannot perform reads at read timestamps more than one hour
323
- # in the past. This restriction also applies to in-progress reads and/or SQL
318
+ # min_read_timestamp. Old Read Timestamps and Garbage Collection: Cloud Spanner
319
+ # continuously garbage collects deleted and overwritten data in the background
320
+ # to reclaim storage space. This process is known as "version GC". By default,
321
+ # version GC reclaims versions after they are one hour old. Because of this,
322
+ # Cloud Spanner cannot perform reads at read timestamps more than one hour in
323
+ # the past. This restriction also applies to in-progress reads and/or SQL
324
324
  # queries whose timestamp become too old while executing. Reads and SQL queries
325
- # with too-old read timestamps fail with the error `FAILED_PRECONDITION`. ##
326
- # Partitioned DML Transactions Partitioned DML transactions are used to execute
325
+ # with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
326
+ # Partitioned DML Transactions: Partitioned DML transactions are used to execute
327
327
  # DML statements with a different execution strategy that provides different,
328
328
  # and often better, scalability properties for large, table-wide operations than
329
329
  # DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP
@@ -512,12 +512,12 @@ module Google
512
512
  attr_accessor :return_commit_stats
513
513
  alias_method :return_commit_stats?, :return_commit_stats
514
514
 
515
- # # Transactions Each session can have at most one active transaction at a time (
515
+ # Transactions: Each session can have at most one active transaction at a time (
516
516
  # note that standalone reads and queries use a transaction internally and do
517
517
  # count towards the one transaction limit). After the active transaction is
518
518
  # completed, the session can immediately be re-used for the next transaction. It
519
- # is not necessary to create a new session for each transaction. # Transaction
520
- # Modes Cloud Spanner supports three transaction modes: 1. Locking read-write.
519
+ # is not necessary to create a new session for each transaction. Transaction
520
+ # Modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
521
521
  # This type of transaction is the only way to write data into Cloud Spanner.
522
522
  # These transactions rely on pessimistic locking and, if necessary, two-phase
523
523
  # commit. Locking read-write transactions may abort, requiring the application
@@ -535,8 +535,8 @@ module Google
535
535
  # transactions. As a consequence of not taking locks, they also do not abort, so
536
536
  # retry loops are not needed. Transactions may only read/write data in a single
537
537
  # database. They may, however, read/write data in different tables within that
538
- # database. ## Locking Read-Write Transactions Locking transactions may be used
539
- # to atomically read-modify-write data anywhere in a database. This type of
538
+ # database. Locking Read-Write Transactions: Locking transactions may be used to
539
+ # atomically read-modify-write data anywhere in a database. This type of
540
540
  # transaction is externally consistent. Clients should attempt to minimize the
541
541
  # amount of time a transaction is active. Faster transactions commit with higher
542
542
  # probability and cause less contention. Cloud Spanner attempts to keep read
@@ -545,7 +545,7 @@ module Google
545
545
  # inactivity at the client may cause Cloud Spanner to release a transaction's
546
546
  # locks and abort it. Conceptually, a read-write transaction consists of zero or
547
547
  # more reads or SQL statements followed by Commit. At any time before Commit,
548
- # the client can send a Rollback request to abort the transaction. ## Semantics
548
+ # the client can send a Rollback request to abort the transaction. Semantics:
549
549
  # Cloud Spanner can commit the transaction if all read locks it acquired are
550
550
  # still valid at commit time, and it is able to acquire write locks for all
551
551
  # writes. Cloud Spanner can abort the transaction for any reason. If a commit
@@ -553,24 +553,24 @@ module Google
553
553
  # not modified any user data in Cloud Spanner. Unless the transaction commits,
554
554
  # Cloud Spanner makes no guarantees about how long the transaction's locks were
555
555
  # held for. It is an error to use Cloud Spanner locks for any sort of mutual
556
- # exclusion other than between Cloud Spanner transactions themselves. ##
557
- # Retrying Aborted Transactions When a transaction aborts, the application can
558
- # choose to retry the whole transaction again. To maximize the chances of
559
- # successfully committing the retry, the client should execute the retry in the
560
- # same session as the original attempt. The original session's lock priority
561
- # increases with each consecutive abort, meaning that each attempt has a
562
- # slightly better chance of success than the previous. Under some circumstances (
563
- # e.g., many transactions attempting to modify the same row(s)), a transaction
564
- # can abort many times in a short period before successfully committing. Thus,
565
- # it is not a good idea to cap the number of retries a transaction can attempt;
566
- # instead, it is better to limit the total amount of wall time spent retrying. ##
567
- # Idle Transactions A transaction is considered idle if it has no outstanding
568
- # reads or SQL queries and has not started a read or SQL query within the last
569
- # 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don'
570
- # t hold on to locks indefinitely. In that case, the commit will fail with error
571
- # `ABORTED`. If this behavior is undesirable, periodically executing a simple
572
- # SQL query in the transaction (e.g., `SELECT 1`) prevents the transaction from
573
- # becoming idle. ## Snapshot Read-Only Transactions Snapshot read-only
556
+ # exclusion other than between Cloud Spanner transactions themselves. Retrying
557
+ # Aborted Transactions: When a transaction aborts, the application can choose to
558
+ # retry the whole transaction again. To maximize the chances of successfully
559
+ # committing the retry, the client should execute the retry in the same session
560
+ # as the original attempt. The original session's lock priority increases with
561
+ # each consecutive abort, meaning that each attempt has a slightly better chance
562
+ # of success than the previous. Under some circumstances (e.g., many
563
+ # transactions attempting to modify the same row(s)), a transaction can abort
564
+ # many times in a short period before successfully committing. Thus, it is not a
565
+ # good idea to cap the number of retries a transaction can attempt; instead, it
566
+ # is better to limit the total amount of wall time spent retrying. Idle
567
+ # Transactions: A transaction is considered idle if it has no outstanding reads
568
+ # or SQL queries and has not started a read or SQL query within the last 10
569
+ # seconds. Idle transactions can be aborted by Cloud Spanner so that they don't
570
+ # hold on to locks indefinitely. In that case, the commit will fail with error `
571
+ # ABORTED`. If this behavior is undesirable, periodically executing a simple SQL
572
+ # query in the transaction (e.g., `SELECT 1`) prevents the transaction from
573
+ # becoming idle. Snapshot Read-Only Transactions: Snapshot read-only
574
574
  # transactions provides a simpler method than locking read-write transactions
575
575
  # for doing several consistent reads. However, this type of transaction does not
576
576
  # support writes. Snapshot transactions do not take locks. Instead, they work by
@@ -588,15 +588,15 @@ module Google
588
588
  # is geographically distributed, stale read-only transactions can execute more
589
589
  # quickly than strong or read-write transaction, because they are able to
590
590
  # execute far from the leader replica. Each type of timestamp bound is discussed
591
- # in detail below. ## Strong Strong reads are guaranteed to see the effects of
592
- # all transactions that have committed before the start of the read. Furthermore,
591
+ # in detail below. Strong: Strong reads are guaranteed to see the effects of all
592
+ # transactions that have committed before the start of the read. Furthermore,
593
593
  # all rows yielded by a single read are consistent with each other -- if any
594
594
  # part of the read observes a transaction, all parts of the read see the
595
595
  # transaction. Strong reads are not repeatable: two consecutive strong read-only
596
596
  # transactions might return inconsistent results if there are concurrent writes.
597
597
  # If consistency across reads is required, the reads should be executed within a
598
598
  # transaction or at an exact read timestamp. See TransactionOptions.ReadOnly.
599
- # strong. ## Exact Staleness These timestamp bounds execute reads at a user-
599
+ # strong. Exact Staleness: These timestamp bounds execute reads at a user-
600
600
  # specified timestamp. Reads at a timestamp are guaranteed to see a consistent
601
601
  # prefix of the global transaction history: they observe modifications done by
602
602
  # all transactions with a commit timestamp <= the read timestamp, and observe
@@ -608,8 +608,8 @@ module Google
608
608
  # to pick a timestamp. As a result, they execute slightly faster than the
609
609
  # equivalent boundedly stale concurrency modes. On the other hand, boundedly
610
610
  # stale reads usually return fresher results. See TransactionOptions.ReadOnly.
611
- # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. ## Bounded
612
- # Staleness Bounded staleness modes allow Cloud Spanner to pick the read
611
+ # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
612
+ # Staleness: Bounded staleness modes allow Cloud Spanner to pick the read
613
613
  # timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
614
614
  # the newest timestamp within the staleness bound that allows execution of the
615
615
  # reads at the closest available replica without blocking. All rows yielded are
@@ -626,15 +626,15 @@ module Google
626
626
  # timestamp negotiation requires up-front knowledge of which rows will be read,
627
627
  # it can only be used with single-use read-only transactions. See
628
628
  # TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
629
- # min_read_timestamp. ## Old Read Timestamps and Garbage Collection Cloud
630
- # Spanner continuously garbage collects deleted and overwritten data in the
631
- # background to reclaim storage space. This process is known as "version GC". By
632
- # default, version GC reclaims versions after they are one hour old. Because of
633
- # this, Cloud Spanner cannot perform reads at read timestamps more than one hour
634
- # in the past. This restriction also applies to in-progress reads and/or SQL
629
+ # min_read_timestamp. Old Read Timestamps and Garbage Collection: Cloud Spanner
630
+ # continuously garbage collects deleted and overwritten data in the background
631
+ # to reclaim storage space. This process is known as "version GC". By default,
632
+ # version GC reclaims versions after they are one hour old. Because of this,
633
+ # Cloud Spanner cannot perform reads at read timestamps more than one hour in
634
+ # the past. This restriction also applies to in-progress reads and/or SQL
635
635
  # queries whose timestamp become too old while executing. Reads and SQL queries
636
- # with too-old read timestamps fail with the error `FAILED_PRECONDITION`. ##
637
- # Partitioned DML Transactions Partitioned DML transactions are used to execute
636
+ # with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
637
+ # Partitioned DML Transactions: Partitioned DML transactions are used to execute
638
638
  # DML statements with a different execution strategy that provides different,
639
639
  # and often better, scalability properties for large, table-wide operations than
640
640
  # DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP
@@ -727,11 +727,11 @@ module Google
727
727
  # The total number of mutations for the transaction. Knowing the `mutation_count`
728
728
  # value can help you maximize the number of mutations in a transaction and
729
729
  # minimize the number of API round trips. You can also monitor this value to
730
- # prevent transactions from exceeding the system [limit](http://cloud.google.com/
731
- # spanner/quotas#limits_for_creating_reading_updating_and_deleting_data). If the
732
- # number of mutations exceeds the limit, the server returns [INVALID_ARGUMENT](
733
- # http://cloud.google.com/spanner/docs/reference/rest/v1/Code#ENUM_VALUES.
734
- # INVALID_ARGUMENT).
730
+ # prevent transactions from exceeding the system [limit](https://cloud.google.
731
+ # com/spanner/quotas#limits_for_creating_reading_updating_and_deleting_data). If
732
+ # the number of mutations exceeds the limit, the server returns [
733
+ # INVALID_ARGUMENT](https://cloud.google.com/spanner/docs/reference/rest/v1/Code#
734
+ # ENUM_VALUES.INVALID_ARGUMENT).
735
735
  # Corresponds to the JSON property `mutationCount`
736
736
  # @return [Fixnum]
737
737
  attr_accessor :mutation_count
@@ -746,6 +746,45 @@ module Google
746
746
  end
747
747
  end
748
748
 
749
+ # A message representing context for a KeyRangeInfo, including a label, value,
750
+ # unit, and severity.
751
+ class ContextValue
752
+ include Google::Apis::Core::Hashable
753
+
754
+ # A message representing a user-facing string whose value may need to be
755
+ # translated before being displayed.
756
+ # Corresponds to the JSON property `label`
757
+ # @return [Google::Apis::SpannerV1::LocalizedString]
758
+ attr_accessor :label
759
+
760
+ # The severity of this context.
761
+ # Corresponds to the JSON property `severity`
762
+ # @return [String]
763
+ attr_accessor :severity
764
+
765
+ # The unit of the context value.
766
+ # Corresponds to the JSON property `unit`
767
+ # @return [String]
768
+ attr_accessor :unit
769
+
770
+ # The value for the context.
771
+ # Corresponds to the JSON property `value`
772
+ # @return [Float]
773
+ attr_accessor :value
774
+
775
+ def initialize(**args)
776
+ update!(**args)
777
+ end
778
+
779
+ # Update properties of this object
780
+ def update!(**args)
781
+ @label = args[:label] if args.key?(:label)
782
+ @severity = args[:severity] if args.key?(:severity)
783
+ @unit = args[:unit] if args.key?(:unit)
784
+ @value = args[:value] if args.key?(:value)
785
+ end
786
+ end
787
+
749
788
  # Metadata type for the operation returned by CreateBackup.
750
789
  class CreateBackupMetadata
751
790
  include Google::Apis::Core::Hashable
@@ -1036,6 +1075,85 @@ module Google
1036
1075
  end
1037
1076
  end
1038
1077
 
1078
+ # A message representing a derived metric.
1079
+ class DerivedMetric
1080
+ include Google::Apis::Core::Hashable
1081
+
1082
+ # A message representing a user-facing string whose value may need to be
1083
+ # translated before being displayed.
1084
+ # Corresponds to the JSON property `denominator`
1085
+ # @return [Google::Apis::SpannerV1::LocalizedString]
1086
+ attr_accessor :denominator
1087
+
1088
+ # A message representing a user-facing string whose value may need to be
1089
+ # translated before being displayed.
1090
+ # Corresponds to the JSON property `numerator`
1091
+ # @return [Google::Apis::SpannerV1::LocalizedString]
1092
+ attr_accessor :numerator
1093
+
1094
+ def initialize(**args)
1095
+ update!(**args)
1096
+ end
1097
+
1098
+ # Update properties of this object
1099
+ def update!(**args)
1100
+ @denominator = args[:denominator] if args.key?(:denominator)
1101
+ @numerator = args[:numerator] if args.key?(:numerator)
1102
+ end
1103
+ end
1104
+
1105
+ # A message representing the key visualizer diagnostic messages.
1106
+ class DiagnosticMessage
1107
+ include Google::Apis::Core::Hashable
1108
+
1109
+ # A message representing a user-facing string whose value may need to be
1110
+ # translated before being displayed.
1111
+ # Corresponds to the JSON property `info`
1112
+ # @return [Google::Apis::SpannerV1::LocalizedString]
1113
+ attr_accessor :info
1114
+
1115
+ # A message representing a user-facing string whose value may need to be
1116
+ # translated before being displayed.
1117
+ # Corresponds to the JSON property `metric`
1118
+ # @return [Google::Apis::SpannerV1::LocalizedString]
1119
+ attr_accessor :metric
1120
+
1121
+ # Whether this message is specific only for the current metric. By default
1122
+ # Diagnostics are shown for all metrics, regardless which metric is the
1123
+ # currently selected metric in the UI. However occasionally a metric will
1124
+ # generate so many messages that the resulting visual clutter becomes
1125
+ # overwhelming. In this case setting this to true, will show the diagnostic
1126
+ # messages for that metric only if it is the currently selected metric.
1127
+ # Corresponds to the JSON property `metricSpecific`
1128
+ # @return [Boolean]
1129
+ attr_accessor :metric_specific
1130
+ alias_method :metric_specific?, :metric_specific
1131
+
1132
+ # The severity of the diagnostic message.
1133
+ # Corresponds to the JSON property `severity`
1134
+ # @return [String]
1135
+ attr_accessor :severity
1136
+
1137
+ # A message representing a user-facing string whose value may need to be
1138
+ # translated before being displayed.
1139
+ # Corresponds to the JSON property `shortMessage`
1140
+ # @return [Google::Apis::SpannerV1::LocalizedString]
1141
+ attr_accessor :short_message
1142
+
1143
+ def initialize(**args)
1144
+ update!(**args)
1145
+ end
1146
+
1147
+ # Update properties of this object
1148
+ def update!(**args)
1149
+ @info = args[:info] if args.key?(:info)
1150
+ @metric = args[:metric] if args.key?(:metric)
1151
+ @metric_specific = args[:metric_specific] if args.key?(:metric_specific)
1152
+ @severity = args[:severity] if args.key?(:severity)
1153
+ @short_message = args[:short_message] if args.key?(:short_message)
1154
+ end
1155
+ end
1156
+
1039
1157
  # A generic empty message that you can re-use to avoid defining duplicated empty
1040
1158
  # messages in your APIs. A typical example is to use it as the request or the
1041
1159
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1454,6 +1572,49 @@ module Google
1454
1572
  end
1455
1573
  end
1456
1574
 
1575
+ # A message representing a (sparse) collection of hot keys for specific key
1576
+ # buckets.
1577
+ class IndexedHotKey
1578
+ include Google::Apis::Core::Hashable
1579
+
1580
+ # A (sparse) mapping from key bucket index to the index of the specific hot row
1581
+ # key for that key bucket. The index of the hot row key can be translated to the
1582
+ # actual row key via the ScanData.VisualizationData.indexed_keys repeated field.
1583
+ # Corresponds to the JSON property `sparseHotKeys`
1584
+ # @return [Hash<String,Fixnum>]
1585
+ attr_accessor :sparse_hot_keys
1586
+
1587
+ def initialize(**args)
1588
+ update!(**args)
1589
+ end
1590
+
1591
+ # Update properties of this object
1592
+ def update!(**args)
1593
+ @sparse_hot_keys = args[:sparse_hot_keys] if args.key?(:sparse_hot_keys)
1594
+ end
1595
+ end
1596
+
1597
+ # A message representing a (sparse) collection of KeyRangeInfos for specific key
1598
+ # buckets.
1599
+ class IndexedKeyRangeInfos
1600
+ include Google::Apis::Core::Hashable
1601
+
1602
+ # A (sparse) mapping from key bucket index to the KeyRangeInfos for that key
1603
+ # bucket.
1604
+ # Corresponds to the JSON property `keyRangeInfos`
1605
+ # @return [Hash<String,Google::Apis::SpannerV1::KeyRangeInfos>]
1606
+ attr_accessor :key_range_infos
1607
+
1608
+ def initialize(**args)
1609
+ update!(**args)
1610
+ end
1611
+
1612
+ # Update properties of this object
1613
+ def update!(**args)
1614
+ @key_range_infos = args[:key_range_infos] if args.key?(:key_range_infos)
1615
+ end
1616
+ end
1617
+
1457
1618
  # An isolated set of Cloud Spanner resources on which databases can be hosted.
1458
1619
  class Instance
1459
1620
  include Google::Apis::Core::Hashable
@@ -1511,6 +1672,13 @@ module Google
1511
1672
  # @return [Fixnum]
1512
1673
  attr_accessor :node_count
1513
1674
 
1675
+ # The number of processing units allocated to this instance. At most one of
1676
+ # processing_units or node_count should be present in the message. This may be
1677
+ # zero in API responses for instances that are not yet in state `READY`.
1678
+ # Corresponds to the JSON property `processingUnits`
1679
+ # @return [Fixnum]
1680
+ attr_accessor :processing_units
1681
+
1514
1682
  # Output only. The current instance state. For CreateInstance, the state must be
1515
1683
  # either omitted or set to `CREATING`. For UpdateInstance, the state must be
1516
1684
  # either omitted or set to `READY`.
@@ -1530,6 +1698,7 @@ module Google
1530
1698
  @labels = args[:labels] if args.key?(:labels)
1531
1699
  @name = args[:name] if args.key?(:name)
1532
1700
  @node_count = args[:node_count] if args.key?(:node_count)
1701
+ @processing_units = args[:processing_units] if args.key?(:processing_units)
1533
1702
  @state = args[:state] if args.key?(:state)
1534
1703
  end
1535
1704
  end
@@ -1642,6 +1811,103 @@ module Google
1642
1811
  end
1643
1812
  end
1644
1813
 
1814
+ # A message representing information for a key range (possibly one key).
1815
+ class KeyRangeInfo
1816
+ include Google::Apis::Core::Hashable
1817
+
1818
+ # The list of context values for this key range.
1819
+ # Corresponds to the JSON property `contextValues`
1820
+ # @return [Array<Google::Apis::SpannerV1::ContextValue>]
1821
+ attr_accessor :context_values
1822
+
1823
+ # The index of the end key in indexed_keys.
1824
+ # Corresponds to the JSON property `endKeyIndex`
1825
+ # @return [Fixnum]
1826
+ attr_accessor :end_key_index
1827
+
1828
+ # A message representing a user-facing string whose value may need to be
1829
+ # translated before being displayed.
1830
+ # Corresponds to the JSON property `info`
1831
+ # @return [Google::Apis::SpannerV1::LocalizedString]
1832
+ attr_accessor :info
1833
+
1834
+ # The number of keys this range covers.
1835
+ # Corresponds to the JSON property `keysCount`
1836
+ # @return [Fixnum]
1837
+ attr_accessor :keys_count
1838
+
1839
+ # A message representing a user-facing string whose value may need to be
1840
+ # translated before being displayed.
1841
+ # Corresponds to the JSON property `metric`
1842
+ # @return [Google::Apis::SpannerV1::LocalizedString]
1843
+ attr_accessor :metric
1844
+
1845
+ # The index of the start key in indexed_keys.
1846
+ # Corresponds to the JSON property `startKeyIndex`
1847
+ # @return [Fixnum]
1848
+ attr_accessor :start_key_index
1849
+
1850
+ # The time offset. This is the time since the start of the time interval.
1851
+ # Corresponds to the JSON property `timeOffset`
1852
+ # @return [String]
1853
+ attr_accessor :time_offset
1854
+
1855
+ # A message representing a user-facing string whose value may need to be
1856
+ # translated before being displayed.
1857
+ # Corresponds to the JSON property `unit`
1858
+ # @return [Google::Apis::SpannerV1::LocalizedString]
1859
+ attr_accessor :unit
1860
+
1861
+ # The value of the metric.
1862
+ # Corresponds to the JSON property `value`
1863
+ # @return [Float]
1864
+ attr_accessor :value
1865
+
1866
+ def initialize(**args)
1867
+ update!(**args)
1868
+ end
1869
+
1870
+ # Update properties of this object
1871
+ def update!(**args)
1872
+ @context_values = args[:context_values] if args.key?(:context_values)
1873
+ @end_key_index = args[:end_key_index] if args.key?(:end_key_index)
1874
+ @info = args[:info] if args.key?(:info)
1875
+ @keys_count = args[:keys_count] if args.key?(:keys_count)
1876
+ @metric = args[:metric] if args.key?(:metric)
1877
+ @start_key_index = args[:start_key_index] if args.key?(:start_key_index)
1878
+ @time_offset = args[:time_offset] if args.key?(:time_offset)
1879
+ @unit = args[:unit] if args.key?(:unit)
1880
+ @value = args[:value] if args.key?(:value)
1881
+ end
1882
+ end
1883
+
1884
+ # A message representing a list of specific information for multiple key ranges.
1885
+ class KeyRangeInfos
1886
+ include Google::Apis::Core::Hashable
1887
+
1888
+ # The list individual KeyRangeInfos.
1889
+ # Corresponds to the JSON property `infos`
1890
+ # @return [Array<Google::Apis::SpannerV1::KeyRangeInfo>]
1891
+ attr_accessor :infos
1892
+
1893
+ # The total size of the list of all KeyRangeInfos. This may be larger than the
1894
+ # number of repeated messages above. If that is the case, this number may be
1895
+ # used to determine how many are not being shown.
1896
+ # Corresponds to the JSON property `totalSize`
1897
+ # @return [Fixnum]
1898
+ attr_accessor :total_size
1899
+
1900
+ def initialize(**args)
1901
+ update!(**args)
1902
+ end
1903
+
1904
+ # Update properties of this object
1905
+ def update!(**args)
1906
+ @infos = args[:infos] if args.key?(:infos)
1907
+ @total_size = args[:total_size] if args.key?(:total_size)
1908
+ end
1909
+ end
1910
+
1645
1911
  # `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All the
1646
1912
  # keys are expected to be in the same table or index. The keys need not be
1647
1913
  # sorted in any particular way. If the same key is specified multiple times in
@@ -1879,6 +2145,32 @@ module Google
1879
2145
  end
1880
2146
  end
1881
2147
 
2148
+ # Response method from the ListScans method.
2149
+ class ListScansResponse
2150
+ include Google::Apis::Core::Hashable
2151
+
2152
+ # Token to retrieve the next page of results, or empty if there are no more
2153
+ # results in the list.
2154
+ # Corresponds to the JSON property `nextPageToken`
2155
+ # @return [String]
2156
+ attr_accessor :next_page_token
2157
+
2158
+ # Available scans based on the list query parameters.
2159
+ # Corresponds to the JSON property `scans`
2160
+ # @return [Array<Google::Apis::SpannerV1::Scan>]
2161
+ attr_accessor :scans
2162
+
2163
+ def initialize(**args)
2164
+ update!(**args)
2165
+ end
2166
+
2167
+ # Update properties of this object
2168
+ def update!(**args)
2169
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2170
+ @scans = args[:scans] if args.key?(:scans)
2171
+ end
2172
+ end
2173
+
1882
2174
  # The response for ListSessions.
1883
2175
  class ListSessionsResponse
1884
2176
  include Google::Apis::Core::Hashable
@@ -1905,6 +2197,179 @@ module Google
1905
2197
  end
1906
2198
  end
1907
2199
 
2200
+ # A message representing a user-facing string whose value may need to be
2201
+ # translated before being displayed.
2202
+ class LocalizedString
2203
+ include Google::Apis::Core::Hashable
2204
+
2205
+ # A map of arguments used when creating the localized message. Keys represent
2206
+ # parameter names which may be used by the localized version when substituting
2207
+ # dynamic values.
2208
+ # Corresponds to the JSON property `args`
2209
+ # @return [Hash<String,String>]
2210
+ attr_accessor :args
2211
+
2212
+ # The canonical English version of this message. If no token is provided or the
2213
+ # front-end has no message associated with the token, this text will be
2214
+ # displayed as-is.
2215
+ # Corresponds to the JSON property `message`
2216
+ # @return [String]
2217
+ attr_accessor :message
2218
+
2219
+ # The token identifying the message, e.g. 'METRIC_READ_CPU'. This should be
2220
+ # unique within the service.
2221
+ # Corresponds to the JSON property `token`
2222
+ # @return [String]
2223
+ attr_accessor :token
2224
+
2225
+ def initialize(**args)
2226
+ update!(**args)
2227
+ end
2228
+
2229
+ # Update properties of this object
2230
+ def update!(**args)
2231
+ @args = args[:args] if args.key?(:args)
2232
+ @message = args[:message] if args.key?(:message)
2233
+ @token = args[:token] if args.key?(:token)
2234
+ end
2235
+ end
2236
+
2237
+ # A message representing the actual monitoring data, values for each key bucket
2238
+ # over time, of a metric.
2239
+ class Metric
2240
+ include Google::Apis::Core::Hashable
2241
+
2242
+ # The aggregation function used to aggregate each key bucket
2243
+ # Corresponds to the JSON property `aggregation`
2244
+ # @return [String]
2245
+ attr_accessor :aggregation
2246
+
2247
+ # A message representing a user-facing string whose value may need to be
2248
+ # translated before being displayed.
2249
+ # Corresponds to the JSON property `category`
2250
+ # @return [Google::Apis::SpannerV1::LocalizedString]
2251
+ attr_accessor :category
2252
+
2253
+ # A message representing a derived metric.
2254
+ # Corresponds to the JSON property `derived`
2255
+ # @return [Google::Apis::SpannerV1::DerivedMetric]
2256
+ attr_accessor :derived
2257
+
2258
+ # A message representing a user-facing string whose value may need to be
2259
+ # translated before being displayed.
2260
+ # Corresponds to the JSON property `displayLabel`
2261
+ # @return [Google::Apis::SpannerV1::LocalizedString]
2262
+ attr_accessor :display_label
2263
+
2264
+ # Whether the metric has any non-zero data.
2265
+ # Corresponds to the JSON property `hasNonzeroData`
2266
+ # @return [Boolean]
2267
+ attr_accessor :has_nonzero_data
2268
+ alias_method :has_nonzero_data?, :has_nonzero_data
2269
+
2270
+ # The value that is considered hot for the metric. On a per metric basis hotness
2271
+ # signals high utilization and something that might potentially be a cause for
2272
+ # concern by the end user. hot_value is used to calibrate and scale visual color
2273
+ # scales.
2274
+ # Corresponds to the JSON property `hotValue`
2275
+ # @return [Float]
2276
+ attr_accessor :hot_value
2277
+
2278
+ # The (sparse) mapping from time index to an IndexedHotKey message, representing
2279
+ # those time intervals for which there are hot keys.
2280
+ # Corresponds to the JSON property `indexedHotKeys`
2281
+ # @return [Hash<String,Google::Apis::SpannerV1::IndexedHotKey>]
2282
+ attr_accessor :indexed_hot_keys
2283
+
2284
+ # The (sparse) mapping from time interval index to an IndexedKeyRangeInfos
2285
+ # message, representing those time intervals for which there are informational
2286
+ # messages concerning key ranges.
2287
+ # Corresponds to the JSON property `indexedKeyRangeInfos`
2288
+ # @return [Hash<String,Google::Apis::SpannerV1::IndexedKeyRangeInfos>]
2289
+ attr_accessor :indexed_key_range_infos
2290
+
2291
+ # A message representing a user-facing string whose value may need to be
2292
+ # translated before being displayed.
2293
+ # Corresponds to the JSON property `info`
2294
+ # @return [Google::Apis::SpannerV1::LocalizedString]
2295
+ attr_accessor :info
2296
+
2297
+ # A message representing a matrix of floats.
2298
+ # Corresponds to the JSON property `matrix`
2299
+ # @return [Google::Apis::SpannerV1::MetricMatrix]
2300
+ attr_accessor :matrix
2301
+
2302
+ # A message representing a user-facing string whose value may need to be
2303
+ # translated before being displayed.
2304
+ # Corresponds to the JSON property `unit`
2305
+ # @return [Google::Apis::SpannerV1::LocalizedString]
2306
+ attr_accessor :unit
2307
+
2308
+ # Whether the metric is visible to the end user.
2309
+ # Corresponds to the JSON property `visible`
2310
+ # @return [Boolean]
2311
+ attr_accessor :visible
2312
+ alias_method :visible?, :visible
2313
+
2314
+ def initialize(**args)
2315
+ update!(**args)
2316
+ end
2317
+
2318
+ # Update properties of this object
2319
+ def update!(**args)
2320
+ @aggregation = args[:aggregation] if args.key?(:aggregation)
2321
+ @category = args[:category] if args.key?(:category)
2322
+ @derived = args[:derived] if args.key?(:derived)
2323
+ @display_label = args[:display_label] if args.key?(:display_label)
2324
+ @has_nonzero_data = args[:has_nonzero_data] if args.key?(:has_nonzero_data)
2325
+ @hot_value = args[:hot_value] if args.key?(:hot_value)
2326
+ @indexed_hot_keys = args[:indexed_hot_keys] if args.key?(:indexed_hot_keys)
2327
+ @indexed_key_range_infos = args[:indexed_key_range_infos] if args.key?(:indexed_key_range_infos)
2328
+ @info = args[:info] if args.key?(:info)
2329
+ @matrix = args[:matrix] if args.key?(:matrix)
2330
+ @unit = args[:unit] if args.key?(:unit)
2331
+ @visible = args[:visible] if args.key?(:visible)
2332
+ end
2333
+ end
2334
+
2335
+ # A message representing a matrix of floats.
2336
+ class MetricMatrix
2337
+ include Google::Apis::Core::Hashable
2338
+
2339
+ # The rows of the matrix.
2340
+ # Corresponds to the JSON property `rows`
2341
+ # @return [Array<Google::Apis::SpannerV1::MetricMatrixRow>]
2342
+ attr_accessor :rows
2343
+
2344
+ def initialize(**args)
2345
+ update!(**args)
2346
+ end
2347
+
2348
+ # Update properties of this object
2349
+ def update!(**args)
2350
+ @rows = args[:rows] if args.key?(:rows)
2351
+ end
2352
+ end
2353
+
2354
+ # A message representing a row of a matrix of floats.
2355
+ class MetricMatrixRow
2356
+ include Google::Apis::Core::Hashable
2357
+
2358
+ # The columns of the row.
2359
+ # Corresponds to the JSON property `cols`
2360
+ # @return [Array<Float>]
2361
+ attr_accessor :cols
2362
+
2363
+ def initialize(**args)
2364
+ update!(**args)
2365
+ end
2366
+
2367
+ # Update properties of this object
2368
+ def update!(**args)
2369
+ @cols = args[:cols] if args.key?(:cols)
2370
+ end
2371
+ end
2372
+
1908
2373
  # A modification to one or more Cloud Spanner rows. Mutations can be applied to
1909
2374
  # a Cloud Spanner database by sending them in a Commit call.
1910
2375
  class Mutation
@@ -2513,6 +2978,55 @@ module Google
2513
2978
  end
2514
2979
  end
2515
2980
 
2981
+ # A message representing a key prefix node in the key prefix hierarchy. for eg.
2982
+ # Bigtable keyspaces are lexicographically ordered mappings of keys to values.
2983
+ # Keys often have a shared prefix structure where users use the keys to organize
2984
+ # data. Eg ///employee In this case Keysight will possibly use one node for a
2985
+ # company and reuse it for all employees that fall under the company. Doing so
2986
+ # improves legibility in the UI.
2987
+ class PrefixNode
2988
+ include Google::Apis::Core::Hashable
2989
+
2990
+ # Whether this corresponds to a data_source name.
2991
+ # Corresponds to the JSON property `dataSourceNode`
2992
+ # @return [Boolean]
2993
+ attr_accessor :data_source_node
2994
+ alias_method :data_source_node?, :data_source_node
2995
+
2996
+ # The depth in the prefix hierarchy.
2997
+ # Corresponds to the JSON property `depth`
2998
+ # @return [Fixnum]
2999
+ attr_accessor :depth
3000
+
3001
+ # The index of the end key bucket of the range that this node spans.
3002
+ # Corresponds to the JSON property `endIndex`
3003
+ # @return [Fixnum]
3004
+ attr_accessor :end_index
3005
+
3006
+ # The index of the start key bucket of the range that this node spans.
3007
+ # Corresponds to the JSON property `startIndex`
3008
+ # @return [Fixnum]
3009
+ attr_accessor :start_index
3010
+
3011
+ # The string represented by the prefix node.
3012
+ # Corresponds to the JSON property `word`
3013
+ # @return [String]
3014
+ attr_accessor :word
3015
+
3016
+ def initialize(**args)
3017
+ update!(**args)
3018
+ end
3019
+
3020
+ # Update properties of this object
3021
+ def update!(**args)
3022
+ @data_source_node = args[:data_source_node] if args.key?(:data_source_node)
3023
+ @depth = args[:depth] if args.key?(:depth)
3024
+ @end_index = args[:end_index] if args.key?(:end_index)
3025
+ @start_index = args[:start_index] if args.key?(:start_index)
3026
+ @word = args[:word] if args.key?(:word)
3027
+ end
3028
+ end
3029
+
2516
3030
  # Query optimizer configuration.
2517
3031
  class QueryOptions
2518
3032
  include Google::Apis::Core::Hashable
@@ -3104,6 +3618,87 @@ module Google
3104
3618
  end
3105
3619
  end
3106
3620
 
3621
+ # Scan is a structure which describes Cloud Key Visualizer scan information.
3622
+ class Scan
3623
+ include Google::Apis::Core::Hashable
3624
+
3625
+ # Additional information provided by the implementer.
3626
+ # Corresponds to the JSON property `details`
3627
+ # @return [Hash<String,Object>]
3628
+ attr_accessor :details
3629
+
3630
+ # The upper bound for when the scan is defined.
3631
+ # Corresponds to the JSON property `endTime`
3632
+ # @return [String]
3633
+ attr_accessor :end_time
3634
+
3635
+ # The unique name of the scan, specific to the Database service implementing
3636
+ # this interface.
3637
+ # Corresponds to the JSON property `name`
3638
+ # @return [String]
3639
+ attr_accessor :name
3640
+
3641
+ # ScanData contains Cloud Key Visualizer scan data used by the caller to
3642
+ # construct a visualization.
3643
+ # Corresponds to the JSON property `scanData`
3644
+ # @return [Google::Apis::SpannerV1::ScanData]
3645
+ attr_accessor :scan_data
3646
+
3647
+ # A range of time (inclusive) for when the scan is defined. The lower bound for
3648
+ # when the scan is defined.
3649
+ # Corresponds to the JSON property `startTime`
3650
+ # @return [String]
3651
+ attr_accessor :start_time
3652
+
3653
+ def initialize(**args)
3654
+ update!(**args)
3655
+ end
3656
+
3657
+ # Update properties of this object
3658
+ def update!(**args)
3659
+ @details = args[:details] if args.key?(:details)
3660
+ @end_time = args[:end_time] if args.key?(:end_time)
3661
+ @name = args[:name] if args.key?(:name)
3662
+ @scan_data = args[:scan_data] if args.key?(:scan_data)
3663
+ @start_time = args[:start_time] if args.key?(:start_time)
3664
+ end
3665
+ end
3666
+
3667
+ # ScanData contains Cloud Key Visualizer scan data used by the caller to
3668
+ # construct a visualization.
3669
+ class ScanData
3670
+ include Google::Apis::Core::Hashable
3671
+
3672
+ # Cloud Key Visualizer scan data. The range of time this information covers is
3673
+ # captured via the above time range fields. Note, this field is not available to
3674
+ # the ListScans method.
3675
+ # Corresponds to the JSON property `data`
3676
+ # @return [Google::Apis::SpannerV1::VisualizationData]
3677
+ attr_accessor :data
3678
+
3679
+ # The upper bound for when the contained data is defined.
3680
+ # Corresponds to the JSON property `endTime`
3681
+ # @return [String]
3682
+ attr_accessor :end_time
3683
+
3684
+ # A range of time (inclusive) for when the contained data is defined. The lower
3685
+ # bound for when the contained data is defined.
3686
+ # Corresponds to the JSON property `startTime`
3687
+ # @return [String]
3688
+ attr_accessor :start_time
3689
+
3690
+ def initialize(**args)
3691
+ update!(**args)
3692
+ end
3693
+
3694
+ # Update properties of this object
3695
+ def update!(**args)
3696
+ @data = args[:data] if args.key?(:data)
3697
+ @end_time = args[:end_time] if args.key?(:end_time)
3698
+ @start_time = args[:start_time] if args.key?(:start_time)
3699
+ end
3700
+ end
3701
+
3107
3702
  # A session in the Cloud Spanner API.
3108
3703
  class Session
3109
3704
  include Google::Apis::Core::Hashable
@@ -3394,12 +3989,12 @@ module Google
3394
3989
  end
3395
3990
  end
3396
3991
 
3397
- # # Transactions Each session can have at most one active transaction at a time (
3992
+ # Transactions: Each session can have at most one active transaction at a time (
3398
3993
  # note that standalone reads and queries use a transaction internally and do
3399
3994
  # count towards the one transaction limit). After the active transaction is
3400
3995
  # completed, the session can immediately be re-used for the next transaction. It
3401
- # is not necessary to create a new session for each transaction. # Transaction
3402
- # Modes Cloud Spanner supports three transaction modes: 1. Locking read-write.
3996
+ # is not necessary to create a new session for each transaction. Transaction
3997
+ # Modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
3403
3998
  # This type of transaction is the only way to write data into Cloud Spanner.
3404
3999
  # These transactions rely on pessimistic locking and, if necessary, two-phase
3405
4000
  # commit. Locking read-write transactions may abort, requiring the application
@@ -3417,8 +4012,8 @@ module Google
3417
4012
  # transactions. As a consequence of not taking locks, they also do not abort, so
3418
4013
  # retry loops are not needed. Transactions may only read/write data in a single
3419
4014
  # database. They may, however, read/write data in different tables within that
3420
- # database. ## Locking Read-Write Transactions Locking transactions may be used
3421
- # to atomically read-modify-write data anywhere in a database. This type of
4015
+ # database. Locking Read-Write Transactions: Locking transactions may be used to
4016
+ # atomically read-modify-write data anywhere in a database. This type of
3422
4017
  # transaction is externally consistent. Clients should attempt to minimize the
3423
4018
  # amount of time a transaction is active. Faster transactions commit with higher
3424
4019
  # probability and cause less contention. Cloud Spanner attempts to keep read
@@ -3427,7 +4022,7 @@ module Google
3427
4022
  # inactivity at the client may cause Cloud Spanner to release a transaction's
3428
4023
  # locks and abort it. Conceptually, a read-write transaction consists of zero or
3429
4024
  # more reads or SQL statements followed by Commit. At any time before Commit,
3430
- # the client can send a Rollback request to abort the transaction. ## Semantics
4025
+ # the client can send a Rollback request to abort the transaction. Semantics:
3431
4026
  # Cloud Spanner can commit the transaction if all read locks it acquired are
3432
4027
  # still valid at commit time, and it is able to acquire write locks for all
3433
4028
  # writes. Cloud Spanner can abort the transaction for any reason. If a commit
@@ -3435,24 +4030,24 @@ module Google
3435
4030
  # not modified any user data in Cloud Spanner. Unless the transaction commits,
3436
4031
  # Cloud Spanner makes no guarantees about how long the transaction's locks were
3437
4032
  # held for. It is an error to use Cloud Spanner locks for any sort of mutual
3438
- # exclusion other than between Cloud Spanner transactions themselves. ##
3439
- # Retrying Aborted Transactions When a transaction aborts, the application can
3440
- # choose to retry the whole transaction again. To maximize the chances of
3441
- # successfully committing the retry, the client should execute the retry in the
3442
- # same session as the original attempt. The original session's lock priority
3443
- # increases with each consecutive abort, meaning that each attempt has a
3444
- # slightly better chance of success than the previous. Under some circumstances (
3445
- # e.g., many transactions attempting to modify the same row(s)), a transaction
3446
- # can abort many times in a short period before successfully committing. Thus,
3447
- # it is not a good idea to cap the number of retries a transaction can attempt;
3448
- # instead, it is better to limit the total amount of wall time spent retrying. ##
3449
- # Idle Transactions A transaction is considered idle if it has no outstanding
3450
- # reads or SQL queries and has not started a read or SQL query within the last
3451
- # 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don'
3452
- # t hold on to locks indefinitely. In that case, the commit will fail with error
3453
- # `ABORTED`. If this behavior is undesirable, periodically executing a simple
3454
- # SQL query in the transaction (e.g., `SELECT 1`) prevents the transaction from
3455
- # becoming idle. ## Snapshot Read-Only Transactions Snapshot read-only
4033
+ # exclusion other than between Cloud Spanner transactions themselves. Retrying
4034
+ # Aborted Transactions: When a transaction aborts, the application can choose to
4035
+ # retry the whole transaction again. To maximize the chances of successfully
4036
+ # committing the retry, the client should execute the retry in the same session
4037
+ # as the original attempt. The original session's lock priority increases with
4038
+ # each consecutive abort, meaning that each attempt has a slightly better chance
4039
+ # of success than the previous. Under some circumstances (e.g., many
4040
+ # transactions attempting to modify the same row(s)), a transaction can abort
4041
+ # many times in a short period before successfully committing. Thus, it is not a
4042
+ # good idea to cap the number of retries a transaction can attempt; instead, it
4043
+ # is better to limit the total amount of wall time spent retrying. Idle
4044
+ # Transactions: A transaction is considered idle if it has no outstanding reads
4045
+ # or SQL queries and has not started a read or SQL query within the last 10
4046
+ # seconds. Idle transactions can be aborted by Cloud Spanner so that they don't
4047
+ # hold on to locks indefinitely. In that case, the commit will fail with error `
4048
+ # ABORTED`. If this behavior is undesirable, periodically executing a simple SQL
4049
+ # query in the transaction (e.g., `SELECT 1`) prevents the transaction from
4050
+ # becoming idle. Snapshot Read-Only Transactions: Snapshot read-only
3456
4051
  # transactions provides a simpler method than locking read-write transactions
3457
4052
  # for doing several consistent reads. However, this type of transaction does not
3458
4053
  # support writes. Snapshot transactions do not take locks. Instead, they work by
@@ -3470,15 +4065,15 @@ module Google
3470
4065
  # is geographically distributed, stale read-only transactions can execute more
3471
4066
  # quickly than strong or read-write transaction, because they are able to
3472
4067
  # execute far from the leader replica. Each type of timestamp bound is discussed
3473
- # in detail below. ## Strong Strong reads are guaranteed to see the effects of
3474
- # all transactions that have committed before the start of the read. Furthermore,
4068
+ # in detail below. Strong: Strong reads are guaranteed to see the effects of all
4069
+ # transactions that have committed before the start of the read. Furthermore,
3475
4070
  # all rows yielded by a single read are consistent with each other -- if any
3476
4071
  # part of the read observes a transaction, all parts of the read see the
3477
4072
  # transaction. Strong reads are not repeatable: two consecutive strong read-only
3478
4073
  # transactions might return inconsistent results if there are concurrent writes.
3479
4074
  # If consistency across reads is required, the reads should be executed within a
3480
4075
  # transaction or at an exact read timestamp. See TransactionOptions.ReadOnly.
3481
- # strong. ## Exact Staleness These timestamp bounds execute reads at a user-
4076
+ # strong. Exact Staleness: These timestamp bounds execute reads at a user-
3482
4077
  # specified timestamp. Reads at a timestamp are guaranteed to see a consistent
3483
4078
  # prefix of the global transaction history: they observe modifications done by
3484
4079
  # all transactions with a commit timestamp <= the read timestamp, and observe
@@ -3490,8 +4085,8 @@ module Google
3490
4085
  # to pick a timestamp. As a result, they execute slightly faster than the
3491
4086
  # equivalent boundedly stale concurrency modes. On the other hand, boundedly
3492
4087
  # stale reads usually return fresher results. See TransactionOptions.ReadOnly.
3493
- # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. ## Bounded
3494
- # Staleness Bounded staleness modes allow Cloud Spanner to pick the read
4088
+ # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
4089
+ # Staleness: Bounded staleness modes allow Cloud Spanner to pick the read
3495
4090
  # timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
3496
4091
  # the newest timestamp within the staleness bound that allows execution of the
3497
4092
  # reads at the closest available replica without blocking. All rows yielded are
@@ -3508,15 +4103,15 @@ module Google
3508
4103
  # timestamp negotiation requires up-front knowledge of which rows will be read,
3509
4104
  # it can only be used with single-use read-only transactions. See
3510
4105
  # TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
3511
- # min_read_timestamp. ## Old Read Timestamps and Garbage Collection Cloud
3512
- # Spanner continuously garbage collects deleted and overwritten data in the
3513
- # background to reclaim storage space. This process is known as "version GC". By
3514
- # default, version GC reclaims versions after they are one hour old. Because of
3515
- # this, Cloud Spanner cannot perform reads at read timestamps more than one hour
3516
- # in the past. This restriction also applies to in-progress reads and/or SQL
4106
+ # min_read_timestamp. Old Read Timestamps and Garbage Collection: Cloud Spanner
4107
+ # continuously garbage collects deleted and overwritten data in the background
4108
+ # to reclaim storage space. This process is known as "version GC". By default,
4109
+ # version GC reclaims versions after they are one hour old. Because of this,
4110
+ # Cloud Spanner cannot perform reads at read timestamps more than one hour in
4111
+ # the past. This restriction also applies to in-progress reads and/or SQL
3517
4112
  # queries whose timestamp become too old while executing. Reads and SQL queries
3518
- # with too-old read timestamps fail with the error `FAILED_PRECONDITION`. ##
3519
- # Partitioned DML Transactions Partitioned DML transactions are used to execute
4113
+ # with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
4114
+ # Partitioned DML Transactions: Partitioned DML transactions are used to execute
3520
4115
  # DML statements with a different execution strategy that provides different,
3521
4116
  # and often better, scalability properties for large, table-wide operations than
3522
4117
  # DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP
@@ -3589,12 +4184,12 @@ module Google
3589
4184
  class TransactionSelector
3590
4185
  include Google::Apis::Core::Hashable
3591
4186
 
3592
- # # Transactions Each session can have at most one active transaction at a time (
4187
+ # Transactions: Each session can have at most one active transaction at a time (
3593
4188
  # note that standalone reads and queries use a transaction internally and do
3594
4189
  # count towards the one transaction limit). After the active transaction is
3595
4190
  # completed, the session can immediately be re-used for the next transaction. It
3596
- # is not necessary to create a new session for each transaction. # Transaction
3597
- # Modes Cloud Spanner supports three transaction modes: 1. Locking read-write.
4191
+ # is not necessary to create a new session for each transaction. Transaction
4192
+ # Modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
3598
4193
  # This type of transaction is the only way to write data into Cloud Spanner.
3599
4194
  # These transactions rely on pessimistic locking and, if necessary, two-phase
3600
4195
  # commit. Locking read-write transactions may abort, requiring the application
@@ -3612,8 +4207,8 @@ module Google
3612
4207
  # transactions. As a consequence of not taking locks, they also do not abort, so
3613
4208
  # retry loops are not needed. Transactions may only read/write data in a single
3614
4209
  # database. They may, however, read/write data in different tables within that
3615
- # database. ## Locking Read-Write Transactions Locking transactions may be used
3616
- # to atomically read-modify-write data anywhere in a database. This type of
4210
+ # database. Locking Read-Write Transactions: Locking transactions may be used to
4211
+ # atomically read-modify-write data anywhere in a database. This type of
3617
4212
  # transaction is externally consistent. Clients should attempt to minimize the
3618
4213
  # amount of time a transaction is active. Faster transactions commit with higher
3619
4214
  # probability and cause less contention. Cloud Spanner attempts to keep read
@@ -3622,7 +4217,7 @@ module Google
3622
4217
  # inactivity at the client may cause Cloud Spanner to release a transaction's
3623
4218
  # locks and abort it. Conceptually, a read-write transaction consists of zero or
3624
4219
  # more reads or SQL statements followed by Commit. At any time before Commit,
3625
- # the client can send a Rollback request to abort the transaction. ## Semantics
4220
+ # the client can send a Rollback request to abort the transaction. Semantics:
3626
4221
  # Cloud Spanner can commit the transaction if all read locks it acquired are
3627
4222
  # still valid at commit time, and it is able to acquire write locks for all
3628
4223
  # writes. Cloud Spanner can abort the transaction for any reason. If a commit
@@ -3630,24 +4225,24 @@ module Google
3630
4225
  # not modified any user data in Cloud Spanner. Unless the transaction commits,
3631
4226
  # Cloud Spanner makes no guarantees about how long the transaction's locks were
3632
4227
  # held for. It is an error to use Cloud Spanner locks for any sort of mutual
3633
- # exclusion other than between Cloud Spanner transactions themselves. ##
3634
- # Retrying Aborted Transactions When a transaction aborts, the application can
3635
- # choose to retry the whole transaction again. To maximize the chances of
3636
- # successfully committing the retry, the client should execute the retry in the
3637
- # same session as the original attempt. The original session's lock priority
3638
- # increases with each consecutive abort, meaning that each attempt has a
3639
- # slightly better chance of success than the previous. Under some circumstances (
3640
- # e.g., many transactions attempting to modify the same row(s)), a transaction
3641
- # can abort many times in a short period before successfully committing. Thus,
3642
- # it is not a good idea to cap the number of retries a transaction can attempt;
3643
- # instead, it is better to limit the total amount of wall time spent retrying. ##
3644
- # Idle Transactions A transaction is considered idle if it has no outstanding
3645
- # reads or SQL queries and has not started a read or SQL query within the last
3646
- # 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don'
3647
- # t hold on to locks indefinitely. In that case, the commit will fail with error
3648
- # `ABORTED`. If this behavior is undesirable, periodically executing a simple
3649
- # SQL query in the transaction (e.g., `SELECT 1`) prevents the transaction from
3650
- # becoming idle. ## Snapshot Read-Only Transactions Snapshot read-only
4228
+ # exclusion other than between Cloud Spanner transactions themselves. Retrying
4229
+ # Aborted Transactions: When a transaction aborts, the application can choose to
4230
+ # retry the whole transaction again. To maximize the chances of successfully
4231
+ # committing the retry, the client should execute the retry in the same session
4232
+ # as the original attempt. The original session's lock priority increases with
4233
+ # each consecutive abort, meaning that each attempt has a slightly better chance
4234
+ # of success than the previous. Under some circumstances (e.g., many
4235
+ # transactions attempting to modify the same row(s)), a transaction can abort
4236
+ # many times in a short period before successfully committing. Thus, it is not a
4237
+ # good idea to cap the number of retries a transaction can attempt; instead, it
4238
+ # is better to limit the total amount of wall time spent retrying. Idle
4239
+ # Transactions: A transaction is considered idle if it has no outstanding reads
4240
+ # or SQL queries and has not started a read or SQL query within the last 10
4241
+ # seconds. Idle transactions can be aborted by Cloud Spanner so that they don't
4242
+ # hold on to locks indefinitely. In that case, the commit will fail with error `
4243
+ # ABORTED`. If this behavior is undesirable, periodically executing a simple SQL
4244
+ # query in the transaction (e.g., `SELECT 1`) prevents the transaction from
4245
+ # becoming idle. Snapshot Read-Only Transactions: Snapshot read-only
3651
4246
  # transactions provides a simpler method than locking read-write transactions
3652
4247
  # for doing several consistent reads. However, this type of transaction does not
3653
4248
  # support writes. Snapshot transactions do not take locks. Instead, they work by
@@ -3665,15 +4260,15 @@ module Google
3665
4260
  # is geographically distributed, stale read-only transactions can execute more
3666
4261
  # quickly than strong or read-write transaction, because they are able to
3667
4262
  # execute far from the leader replica. Each type of timestamp bound is discussed
3668
- # in detail below. ## Strong Strong reads are guaranteed to see the effects of
3669
- # all transactions that have committed before the start of the read. Furthermore,
4263
+ # in detail below. Strong: Strong reads are guaranteed to see the effects of all
4264
+ # transactions that have committed before the start of the read. Furthermore,
3670
4265
  # all rows yielded by a single read are consistent with each other -- if any
3671
4266
  # part of the read observes a transaction, all parts of the read see the
3672
4267
  # transaction. Strong reads are not repeatable: two consecutive strong read-only
3673
4268
  # transactions might return inconsistent results if there are concurrent writes.
3674
4269
  # If consistency across reads is required, the reads should be executed within a
3675
4270
  # transaction or at an exact read timestamp. See TransactionOptions.ReadOnly.
3676
- # strong. ## Exact Staleness These timestamp bounds execute reads at a user-
4271
+ # strong. Exact Staleness: These timestamp bounds execute reads at a user-
3677
4272
  # specified timestamp. Reads at a timestamp are guaranteed to see a consistent
3678
4273
  # prefix of the global transaction history: they observe modifications done by
3679
4274
  # all transactions with a commit timestamp <= the read timestamp, and observe
@@ -3685,8 +4280,8 @@ module Google
3685
4280
  # to pick a timestamp. As a result, they execute slightly faster than the
3686
4281
  # equivalent boundedly stale concurrency modes. On the other hand, boundedly
3687
4282
  # stale reads usually return fresher results. See TransactionOptions.ReadOnly.
3688
- # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. ## Bounded
3689
- # Staleness Bounded staleness modes allow Cloud Spanner to pick the read
4283
+ # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
4284
+ # Staleness: Bounded staleness modes allow Cloud Spanner to pick the read
3690
4285
  # timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
3691
4286
  # the newest timestamp within the staleness bound that allows execution of the
3692
4287
  # reads at the closest available replica without blocking. All rows yielded are
@@ -3703,15 +4298,15 @@ module Google
3703
4298
  # timestamp negotiation requires up-front knowledge of which rows will be read,
3704
4299
  # it can only be used with single-use read-only transactions. See
3705
4300
  # TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
3706
- # min_read_timestamp. ## Old Read Timestamps and Garbage Collection Cloud
3707
- # Spanner continuously garbage collects deleted and overwritten data in the
3708
- # background to reclaim storage space. This process is known as "version GC". By
3709
- # default, version GC reclaims versions after they are one hour old. Because of
3710
- # this, Cloud Spanner cannot perform reads at read timestamps more than one hour
3711
- # in the past. This restriction also applies to in-progress reads and/or SQL
4301
+ # min_read_timestamp. Old Read Timestamps and Garbage Collection: Cloud Spanner
4302
+ # continuously garbage collects deleted and overwritten data in the background
4303
+ # to reclaim storage space. This process is known as "version GC". By default,
4304
+ # version GC reclaims versions after they are one hour old. Because of this,
4305
+ # Cloud Spanner cannot perform reads at read timestamps more than one hour in
4306
+ # the past. This restriction also applies to in-progress reads and/or SQL
3712
4307
  # queries whose timestamp become too old while executing. Reads and SQL queries
3713
- # with too-old read timestamps fail with the error `FAILED_PRECONDITION`. ##
3714
- # Partitioned DML Transactions Partitioned DML transactions are used to execute
4308
+ # with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
4309
+ # Partitioned DML Transactions: Partitioned DML transactions are used to execute
3715
4310
  # DML statements with a different execution strategy that provides different,
3716
4311
  # and often better, scalability properties for large, table-wide operations than
3717
4312
  # DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP
@@ -3758,12 +4353,12 @@ module Google
3758
4353
  # @return [String]
3759
4354
  attr_accessor :id
3760
4355
 
3761
- # # Transactions Each session can have at most one active transaction at a time (
4356
+ # Transactions: Each session can have at most one active transaction at a time (
3762
4357
  # note that standalone reads and queries use a transaction internally and do
3763
4358
  # count towards the one transaction limit). After the active transaction is
3764
4359
  # completed, the session can immediately be re-used for the next transaction. It
3765
- # is not necessary to create a new session for each transaction. # Transaction
3766
- # Modes Cloud Spanner supports three transaction modes: 1. Locking read-write.
4360
+ # is not necessary to create a new session for each transaction. Transaction
4361
+ # Modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
3767
4362
  # This type of transaction is the only way to write data into Cloud Spanner.
3768
4363
  # These transactions rely on pessimistic locking and, if necessary, two-phase
3769
4364
  # commit. Locking read-write transactions may abort, requiring the application
@@ -3781,8 +4376,8 @@ module Google
3781
4376
  # transactions. As a consequence of not taking locks, they also do not abort, so
3782
4377
  # retry loops are not needed. Transactions may only read/write data in a single
3783
4378
  # database. They may, however, read/write data in different tables within that
3784
- # database. ## Locking Read-Write Transactions Locking transactions may be used
3785
- # to atomically read-modify-write data anywhere in a database. This type of
4379
+ # database. Locking Read-Write Transactions: Locking transactions may be used to
4380
+ # atomically read-modify-write data anywhere in a database. This type of
3786
4381
  # transaction is externally consistent. Clients should attempt to minimize the
3787
4382
  # amount of time a transaction is active. Faster transactions commit with higher
3788
4383
  # probability and cause less contention. Cloud Spanner attempts to keep read
@@ -3791,7 +4386,7 @@ module Google
3791
4386
  # inactivity at the client may cause Cloud Spanner to release a transaction's
3792
4387
  # locks and abort it. Conceptually, a read-write transaction consists of zero or
3793
4388
  # more reads or SQL statements followed by Commit. At any time before Commit,
3794
- # the client can send a Rollback request to abort the transaction. ## Semantics
4389
+ # the client can send a Rollback request to abort the transaction. Semantics:
3795
4390
  # Cloud Spanner can commit the transaction if all read locks it acquired are
3796
4391
  # still valid at commit time, and it is able to acquire write locks for all
3797
4392
  # writes. Cloud Spanner can abort the transaction for any reason. If a commit
@@ -3799,24 +4394,24 @@ module Google
3799
4394
  # not modified any user data in Cloud Spanner. Unless the transaction commits,
3800
4395
  # Cloud Spanner makes no guarantees about how long the transaction's locks were
3801
4396
  # held for. It is an error to use Cloud Spanner locks for any sort of mutual
3802
- # exclusion other than between Cloud Spanner transactions themselves. ##
3803
- # Retrying Aborted Transactions When a transaction aborts, the application can
3804
- # choose to retry the whole transaction again. To maximize the chances of
3805
- # successfully committing the retry, the client should execute the retry in the
3806
- # same session as the original attempt. The original session's lock priority
3807
- # increases with each consecutive abort, meaning that each attempt has a
3808
- # slightly better chance of success than the previous. Under some circumstances (
3809
- # e.g., many transactions attempting to modify the same row(s)), a transaction
3810
- # can abort many times in a short period before successfully committing. Thus,
3811
- # it is not a good idea to cap the number of retries a transaction can attempt;
3812
- # instead, it is better to limit the total amount of wall time spent retrying. ##
3813
- # Idle Transactions A transaction is considered idle if it has no outstanding
3814
- # reads or SQL queries and has not started a read or SQL query within the last
3815
- # 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don'
3816
- # t hold on to locks indefinitely. In that case, the commit will fail with error
3817
- # `ABORTED`. If this behavior is undesirable, periodically executing a simple
3818
- # SQL query in the transaction (e.g., `SELECT 1`) prevents the transaction from
3819
- # becoming idle. ## Snapshot Read-Only Transactions Snapshot read-only
4397
+ # exclusion other than between Cloud Spanner transactions themselves. Retrying
4398
+ # Aborted Transactions: When a transaction aborts, the application can choose to
4399
+ # retry the whole transaction again. To maximize the chances of successfully
4400
+ # committing the retry, the client should execute the retry in the same session
4401
+ # as the original attempt. The original session's lock priority increases with
4402
+ # each consecutive abort, meaning that each attempt has a slightly better chance
4403
+ # of success than the previous. Under some circumstances (e.g., many
4404
+ # transactions attempting to modify the same row(s)), a transaction can abort
4405
+ # many times in a short period before successfully committing. Thus, it is not a
4406
+ # good idea to cap the number of retries a transaction can attempt; instead, it
4407
+ # is better to limit the total amount of wall time spent retrying. Idle
4408
+ # Transactions: A transaction is considered idle if it has no outstanding reads
4409
+ # or SQL queries and has not started a read or SQL query within the last 10
4410
+ # seconds. Idle transactions can be aborted by Cloud Spanner so that they don't
4411
+ # hold on to locks indefinitely. In that case, the commit will fail with error `
4412
+ # ABORTED`. If this behavior is undesirable, periodically executing a simple SQL
4413
+ # query in the transaction (e.g., `SELECT 1`) prevents the transaction from
4414
+ # becoming idle. Snapshot Read-Only Transactions: Snapshot read-only
3820
4415
  # transactions provides a simpler method than locking read-write transactions
3821
4416
  # for doing several consistent reads. However, this type of transaction does not
3822
4417
  # support writes. Snapshot transactions do not take locks. Instead, they work by
@@ -3834,15 +4429,15 @@ module Google
3834
4429
  # is geographically distributed, stale read-only transactions can execute more
3835
4430
  # quickly than strong or read-write transaction, because they are able to
3836
4431
  # execute far from the leader replica. Each type of timestamp bound is discussed
3837
- # in detail below. ## Strong Strong reads are guaranteed to see the effects of
3838
- # all transactions that have committed before the start of the read. Furthermore,
4432
+ # in detail below. Strong: Strong reads are guaranteed to see the effects of all
4433
+ # transactions that have committed before the start of the read. Furthermore,
3839
4434
  # all rows yielded by a single read are consistent with each other -- if any
3840
4435
  # part of the read observes a transaction, all parts of the read see the
3841
4436
  # transaction. Strong reads are not repeatable: two consecutive strong read-only
3842
4437
  # transactions might return inconsistent results if there are concurrent writes.
3843
4438
  # If consistency across reads is required, the reads should be executed within a
3844
4439
  # transaction or at an exact read timestamp. See TransactionOptions.ReadOnly.
3845
- # strong. ## Exact Staleness These timestamp bounds execute reads at a user-
4440
+ # strong. Exact Staleness: These timestamp bounds execute reads at a user-
3846
4441
  # specified timestamp. Reads at a timestamp are guaranteed to see a consistent
3847
4442
  # prefix of the global transaction history: they observe modifications done by
3848
4443
  # all transactions with a commit timestamp <= the read timestamp, and observe
@@ -3854,8 +4449,8 @@ module Google
3854
4449
  # to pick a timestamp. As a result, they execute slightly faster than the
3855
4450
  # equivalent boundedly stale concurrency modes. On the other hand, boundedly
3856
4451
  # stale reads usually return fresher results. See TransactionOptions.ReadOnly.
3857
- # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. ## Bounded
3858
- # Staleness Bounded staleness modes allow Cloud Spanner to pick the read
4452
+ # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
4453
+ # Staleness: Bounded staleness modes allow Cloud Spanner to pick the read
3859
4454
  # timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
3860
4455
  # the newest timestamp within the staleness bound that allows execution of the
3861
4456
  # reads at the closest available replica without blocking. All rows yielded are
@@ -3872,15 +4467,15 @@ module Google
3872
4467
  # timestamp negotiation requires up-front knowledge of which rows will be read,
3873
4468
  # it can only be used with single-use read-only transactions. See
3874
4469
  # TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
3875
- # min_read_timestamp. ## Old Read Timestamps and Garbage Collection Cloud
3876
- # Spanner continuously garbage collects deleted and overwritten data in the
3877
- # background to reclaim storage space. This process is known as "version GC". By
3878
- # default, version GC reclaims versions after they are one hour old. Because of
3879
- # this, Cloud Spanner cannot perform reads at read timestamps more than one hour
3880
- # in the past. This restriction also applies to in-progress reads and/or SQL
4470
+ # min_read_timestamp. Old Read Timestamps and Garbage Collection: Cloud Spanner
4471
+ # continuously garbage collects deleted and overwritten data in the background
4472
+ # to reclaim storage space. This process is known as "version GC". By default,
4473
+ # version GC reclaims versions after they are one hour old. Because of this,
4474
+ # Cloud Spanner cannot perform reads at read timestamps more than one hour in
4475
+ # the past. This restriction also applies to in-progress reads and/or SQL
3881
4476
  # queries whose timestamp become too old while executing. Reads and SQL queries
3882
- # with too-old read timestamps fail with the error `FAILED_PRECONDITION`. ##
3883
- # Partitioned DML Transactions Partitioned DML transactions are used to execute
4477
+ # with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
4478
+ # Partitioned DML Transactions: Partitioned DML transactions are used to execute
3884
4479
  # DML statements with a different execution strategy that provides different,
3885
4480
  # and often better, scalability properties for large, table-wide operations than
3886
4481
  # DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP
@@ -4130,6 +4725,84 @@ module Google
4130
4725
  end
4131
4726
  end
4132
4727
 
4728
+ #
4729
+ class VisualizationData
4730
+ include Google::Apis::Core::Hashable
4731
+
4732
+ # The token signifying the end of a data_source.
4733
+ # Corresponds to the JSON property `dataSourceEndToken`
4734
+ # @return [String]
4735
+ attr_accessor :data_source_end_token
4736
+
4737
+ # The token delimiting a datasource name from the rest of a key in a data_source.
4738
+ # Corresponds to the JSON property `dataSourceSeparatorToken`
4739
+ # @return [String]
4740
+ attr_accessor :data_source_separator_token
4741
+
4742
+ # The list of messages (info, alerts, ...)
4743
+ # Corresponds to the JSON property `diagnosticMessages`
4744
+ # @return [Array<Google::Apis::SpannerV1::DiagnosticMessage>]
4745
+ attr_accessor :diagnostic_messages
4746
+
4747
+ # We discretize the entire keyspace into buckets. Assuming each bucket has an
4748
+ # inclusive keyrange and covers keys from k(i) ... k(n). In this case k(n) would
4749
+ # be an end key for a given range. end_key_string is the collection of all such
4750
+ # end keys
4751
+ # Corresponds to the JSON property `endKeyStrings`
4752
+ # @return [Array<String>]
4753
+ attr_accessor :end_key_strings
4754
+
4755
+ # Whether this scan contains PII.
4756
+ # Corresponds to the JSON property `hasPii`
4757
+ # @return [Boolean]
4758
+ attr_accessor :has_pii
4759
+ alias_method :has_pii?, :has_pii
4760
+
4761
+ # Keys of key ranges that contribute significantly to a given metric Can be
4762
+ # thought of as heavy hitters.
4763
+ # Corresponds to the JSON property `indexedKeys`
4764
+ # @return [Array<String>]
4765
+ attr_accessor :indexed_keys
4766
+
4767
+ # The token delimiting the key prefixes.
4768
+ # Corresponds to the JSON property `keySeparator`
4769
+ # @return [String]
4770
+ attr_accessor :key_separator
4771
+
4772
+ # The unit for the key: e.g. 'key' or 'chunk'.
4773
+ # Corresponds to the JSON property `keyUnit`
4774
+ # @return [String]
4775
+ attr_accessor :key_unit
4776
+
4777
+ # The list of data objects for each metric.
4778
+ # Corresponds to the JSON property `metrics`
4779
+ # @return [Array<Google::Apis::SpannerV1::Metric>]
4780
+ attr_accessor :metrics
4781
+
4782
+ # The list of extracted key prefix nodes used in the key prefix hierarchy.
4783
+ # Corresponds to the JSON property `prefixNodes`
4784
+ # @return [Array<Google::Apis::SpannerV1::PrefixNode>]
4785
+ attr_accessor :prefix_nodes
4786
+
4787
+ def initialize(**args)
4788
+ update!(**args)
4789
+ end
4790
+
4791
+ # Update properties of this object
4792
+ def update!(**args)
4793
+ @data_source_end_token = args[:data_source_end_token] if args.key?(:data_source_end_token)
4794
+ @data_source_separator_token = args[:data_source_separator_token] if args.key?(:data_source_separator_token)
4795
+ @diagnostic_messages = args[:diagnostic_messages] if args.key?(:diagnostic_messages)
4796
+ @end_key_strings = args[:end_key_strings] if args.key?(:end_key_strings)
4797
+ @has_pii = args[:has_pii] if args.key?(:has_pii)
4798
+ @indexed_keys = args[:indexed_keys] if args.key?(:indexed_keys)
4799
+ @key_separator = args[:key_separator] if args.key?(:key_separator)
4800
+ @key_unit = args[:key_unit] if args.key?(:key_unit)
4801
+ @metrics = args[:metrics] if args.key?(:metrics)
4802
+ @prefix_nodes = args[:prefix_nodes] if args.key?(:prefix_nodes)
4803
+ end
4804
+ end
4805
+
4133
4806
  # Arguments to insert, update, insert_or_update, and replace operations.
4134
4807
  class Write
4135
4808
  include Google::Apis::Core::Hashable