google-apis-spanner_v1 0.8.0 → 0.13.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa93acb8b2af0cdff02da833137a8d7739b76929c6ef4f919098293f4e650e76
4
- data.tar.gz: f4737f3d9865e65c979b018db62a6fb4023db787206a41ae53871a1f74e7db63
3
+ metadata.gz: 16ee9dfab17781a712647d831357dc212e9fa0771e181a1a08eb5a1914bd7180
4
+ data.tar.gz: 428717e3791a2c7e8a14bc4c551e09ebb25702632b2a8cafc112b6307ac3d9e1
5
5
  SHA512:
6
- metadata.gz: ff893b3cabf1ef613c3a9019c41e9138e5dd0920d704cfb4846daa4f11d99885febcd342a47abfd7c332e1ccc27e13048ed9d077b9066d519524417aca9a3e64
7
- data.tar.gz: 5535e70257368597d5800580e63d024e817e8dae48e16c9be20119f2fbb4e4a48acba642433301fc59d6a095d8fb203a9ccd519f314b203bea483f7a96175515
6
+ metadata.gz: d7ce784ed3d25c857dd4cceb18f257a75668899673cc434eb0449c5e9e9524a1b3c672e73549f502b8842da03ab24fac0c80f19bf965619d363a2024f6737f9b
7
+ data.tar.gz: 178e38aa8a6ebc84fc4e4d8cb1f9e3c1b9f3151145924e1e8bd65b806b8925f31bbfe8ad2f95ef85e713acf0f6ea33b477f63d3893ac1fc722893d4889141ae4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Release history for google-apis-spanner_v1
2
2
 
3
+ ### v0.13.0 (2021-06-17)
4
+
5
+ * Regenerated from discovery document revision 20210611
6
+
7
+ ### v0.12.0 (2021-06-10)
8
+
9
+ * Regenerated from discovery document revision 20210603
10
+
11
+ ### v0.11.0 (2021-06-03)
12
+
13
+ * Regenerated from discovery document revision 20210527
14
+ * Regenerated using generator version 0.3.0
15
+
16
+ ### v0.10.0 (2021-05-22)
17
+
18
+ * Regenerated from discovery document revision 20210517
19
+ * Unspecified changes
20
+
21
+ ### v0.9.0 (2021-04-17)
22
+
23
+ * Regenerated from discovery document revision 20210405
24
+
3
25
  ### v0.8.0 (2021-04-01)
4
26
 
5
27
  * Regenerated from discovery document revision 20210325
@@ -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,97 @@ 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
+ # A message representing a user-facing string whose value may need to be
1851
+ # translated before being displayed.
1852
+ # Corresponds to the JSON property `unit`
1853
+ # @return [Google::Apis::SpannerV1::LocalizedString]
1854
+ attr_accessor :unit
1855
+
1856
+ # The value of the metric.
1857
+ # Corresponds to the JSON property `value`
1858
+ # @return [Float]
1859
+ attr_accessor :value
1860
+
1861
+ def initialize(**args)
1862
+ update!(**args)
1863
+ end
1864
+
1865
+ # Update properties of this object
1866
+ def update!(**args)
1867
+ @context_values = args[:context_values] if args.key?(:context_values)
1868
+ @end_key_index = args[:end_key_index] if args.key?(:end_key_index)
1869
+ @info = args[:info] if args.key?(:info)
1870
+ @keys_count = args[:keys_count] if args.key?(:keys_count)
1871
+ @metric = args[:metric] if args.key?(:metric)
1872
+ @start_key_index = args[:start_key_index] if args.key?(:start_key_index)
1873
+ @unit = args[:unit] if args.key?(:unit)
1874
+ @value = args[:value] if args.key?(:value)
1875
+ end
1876
+ end
1877
+
1878
+ # A message representing a list of specific information for multiple key ranges.
1879
+ class KeyRangeInfos
1880
+ include Google::Apis::Core::Hashable
1881
+
1882
+ # The list individual KeyRangeInfos.
1883
+ # Corresponds to the JSON property `infos`
1884
+ # @return [Array<Google::Apis::SpannerV1::KeyRangeInfo>]
1885
+ attr_accessor :infos
1886
+
1887
+ # The total size of the list of all KeyRangeInfos. This may be larger than the
1888
+ # number of repeated messages above. If that is the case, this number may be
1889
+ # used to determine how many are not being shown.
1890
+ # Corresponds to the JSON property `totalSize`
1891
+ # @return [Fixnum]
1892
+ attr_accessor :total_size
1893
+
1894
+ def initialize(**args)
1895
+ update!(**args)
1896
+ end
1897
+
1898
+ # Update properties of this object
1899
+ def update!(**args)
1900
+ @infos = args[:infos] if args.key?(:infos)
1901
+ @total_size = args[:total_size] if args.key?(:total_size)
1902
+ end
1903
+ end
1904
+
1645
1905
  # `KeySet` defines a collection of Cloud Spanner keys and/or key ranges. All the
1646
1906
  # keys are expected to be in the same table or index. The keys need not be
1647
1907
  # sorted in any particular way. If the same key is specified multiple times in
@@ -1879,6 +2139,32 @@ module Google
1879
2139
  end
1880
2140
  end
1881
2141
 
2142
+ # Response method from the ListScans method.
2143
+ class ListScansResponse
2144
+ include Google::Apis::Core::Hashable
2145
+
2146
+ # Token to retrieve the next page of results, or empty if there are no more
2147
+ # results in the list.
2148
+ # Corresponds to the JSON property `nextPageToken`
2149
+ # @return [String]
2150
+ attr_accessor :next_page_token
2151
+
2152
+ # Available scans based on the list query parameters.
2153
+ # Corresponds to the JSON property `scans`
2154
+ # @return [Array<Google::Apis::SpannerV1::Scan>]
2155
+ attr_accessor :scans
2156
+
2157
+ def initialize(**args)
2158
+ update!(**args)
2159
+ end
2160
+
2161
+ # Update properties of this object
2162
+ def update!(**args)
2163
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2164
+ @scans = args[:scans] if args.key?(:scans)
2165
+ end
2166
+ end
2167
+
1882
2168
  # The response for ListSessions.
1883
2169
  class ListSessionsResponse
1884
2170
  include Google::Apis::Core::Hashable
@@ -1905,6 +2191,179 @@ module Google
1905
2191
  end
1906
2192
  end
1907
2193
 
2194
+ # A message representing a user-facing string whose value may need to be
2195
+ # translated before being displayed.
2196
+ class LocalizedString
2197
+ include Google::Apis::Core::Hashable
2198
+
2199
+ # A map of arguments used when creating the localized message. Keys represent
2200
+ # parameter names which may be used by the localized version when substituting
2201
+ # dynamic values.
2202
+ # Corresponds to the JSON property `args`
2203
+ # @return [Hash<String,String>]
2204
+ attr_accessor :args
2205
+
2206
+ # The canonical English version of this message. If no token is provided or the
2207
+ # front-end has no message associated with the token, this text will be
2208
+ # displayed as-is.
2209
+ # Corresponds to the JSON property `message`
2210
+ # @return [String]
2211
+ attr_accessor :message
2212
+
2213
+ # The token identifying the message, e.g. 'METRIC_READ_CPU'. This should be
2214
+ # unique within the service.
2215
+ # Corresponds to the JSON property `token`
2216
+ # @return [String]
2217
+ attr_accessor :token
2218
+
2219
+ def initialize(**args)
2220
+ update!(**args)
2221
+ end
2222
+
2223
+ # Update properties of this object
2224
+ def update!(**args)
2225
+ @args = args[:args] if args.key?(:args)
2226
+ @message = args[:message] if args.key?(:message)
2227
+ @token = args[:token] if args.key?(:token)
2228
+ end
2229
+ end
2230
+
2231
+ # A message representing the actual monitoring data, values for each key bucket
2232
+ # over time, of a metric.
2233
+ class Metric
2234
+ include Google::Apis::Core::Hashable
2235
+
2236
+ # The aggregation function used to aggregate each key bucket
2237
+ # Corresponds to the JSON property `aggregation`
2238
+ # @return [String]
2239
+ attr_accessor :aggregation
2240
+
2241
+ # A message representing a user-facing string whose value may need to be
2242
+ # translated before being displayed.
2243
+ # Corresponds to the JSON property `category`
2244
+ # @return [Google::Apis::SpannerV1::LocalizedString]
2245
+ attr_accessor :category
2246
+
2247
+ # A message representing a derived metric.
2248
+ # Corresponds to the JSON property `derived`
2249
+ # @return [Google::Apis::SpannerV1::DerivedMetric]
2250
+ attr_accessor :derived
2251
+
2252
+ # A message representing a user-facing string whose value may need to be
2253
+ # translated before being displayed.
2254
+ # Corresponds to the JSON property `displayLabel`
2255
+ # @return [Google::Apis::SpannerV1::LocalizedString]
2256
+ attr_accessor :display_label
2257
+
2258
+ # Whether the metric has any non-zero data.
2259
+ # Corresponds to the JSON property `hasNonzeroData`
2260
+ # @return [Boolean]
2261
+ attr_accessor :has_nonzero_data
2262
+ alias_method :has_nonzero_data?, :has_nonzero_data
2263
+
2264
+ # The value that is considered hot for the metric. On a per metric basis hotness
2265
+ # signals high utilization and something that might potentially be a cause for
2266
+ # concern by the end user. hot_value is used to calibrate and scale visual color
2267
+ # scales.
2268
+ # Corresponds to the JSON property `hotValue`
2269
+ # @return [Float]
2270
+ attr_accessor :hot_value
2271
+
2272
+ # The (sparse) mapping from time index to an IndexedHotKey message, representing
2273
+ # those time intervals for which there are hot keys.
2274
+ # Corresponds to the JSON property `indexedHotKeys`
2275
+ # @return [Hash<String,Google::Apis::SpannerV1::IndexedHotKey>]
2276
+ attr_accessor :indexed_hot_keys
2277
+
2278
+ # The (sparse) mapping from time interval index to an IndexedKeyRangeInfos
2279
+ # message, representing those time intervals for which there are informational
2280
+ # messages concerning key ranges.
2281
+ # Corresponds to the JSON property `indexedKeyRangeInfos`
2282
+ # @return [Hash<String,Google::Apis::SpannerV1::IndexedKeyRangeInfos>]
2283
+ attr_accessor :indexed_key_range_infos
2284
+
2285
+ # A message representing a user-facing string whose value may need to be
2286
+ # translated before being displayed.
2287
+ # Corresponds to the JSON property `info`
2288
+ # @return [Google::Apis::SpannerV1::LocalizedString]
2289
+ attr_accessor :info
2290
+
2291
+ # A message representing a matrix of floats.
2292
+ # Corresponds to the JSON property `matrix`
2293
+ # @return [Google::Apis::SpannerV1::MetricMatrix]
2294
+ attr_accessor :matrix
2295
+
2296
+ # A message representing a user-facing string whose value may need to be
2297
+ # translated before being displayed.
2298
+ # Corresponds to the JSON property `unit`
2299
+ # @return [Google::Apis::SpannerV1::LocalizedString]
2300
+ attr_accessor :unit
2301
+
2302
+ # Whether the metric is visible to the end user.
2303
+ # Corresponds to the JSON property `visible`
2304
+ # @return [Boolean]
2305
+ attr_accessor :visible
2306
+ alias_method :visible?, :visible
2307
+
2308
+ def initialize(**args)
2309
+ update!(**args)
2310
+ end
2311
+
2312
+ # Update properties of this object
2313
+ def update!(**args)
2314
+ @aggregation = args[:aggregation] if args.key?(:aggregation)
2315
+ @category = args[:category] if args.key?(:category)
2316
+ @derived = args[:derived] if args.key?(:derived)
2317
+ @display_label = args[:display_label] if args.key?(:display_label)
2318
+ @has_nonzero_data = args[:has_nonzero_data] if args.key?(:has_nonzero_data)
2319
+ @hot_value = args[:hot_value] if args.key?(:hot_value)
2320
+ @indexed_hot_keys = args[:indexed_hot_keys] if args.key?(:indexed_hot_keys)
2321
+ @indexed_key_range_infos = args[:indexed_key_range_infos] if args.key?(:indexed_key_range_infos)
2322
+ @info = args[:info] if args.key?(:info)
2323
+ @matrix = args[:matrix] if args.key?(:matrix)
2324
+ @unit = args[:unit] if args.key?(:unit)
2325
+ @visible = args[:visible] if args.key?(:visible)
2326
+ end
2327
+ end
2328
+
2329
+ # A message representing a matrix of floats.
2330
+ class MetricMatrix
2331
+ include Google::Apis::Core::Hashable
2332
+
2333
+ # The rows of the matrix.
2334
+ # Corresponds to the JSON property `rows`
2335
+ # @return [Array<Google::Apis::SpannerV1::MetricMatrixRow>]
2336
+ attr_accessor :rows
2337
+
2338
+ def initialize(**args)
2339
+ update!(**args)
2340
+ end
2341
+
2342
+ # Update properties of this object
2343
+ def update!(**args)
2344
+ @rows = args[:rows] if args.key?(:rows)
2345
+ end
2346
+ end
2347
+
2348
+ # A message representing a row of a matrix of floats.
2349
+ class MetricMatrixRow
2350
+ include Google::Apis::Core::Hashable
2351
+
2352
+ # The columns of the row.
2353
+ # Corresponds to the JSON property `cols`
2354
+ # @return [Array<Float>]
2355
+ attr_accessor :cols
2356
+
2357
+ def initialize(**args)
2358
+ update!(**args)
2359
+ end
2360
+
2361
+ # Update properties of this object
2362
+ def update!(**args)
2363
+ @cols = args[:cols] if args.key?(:cols)
2364
+ end
2365
+ end
2366
+
1908
2367
  # A modification to one or more Cloud Spanner rows. Mutations can be applied to
1909
2368
  # a Cloud Spanner database by sending them in a Commit call.
1910
2369
  class Mutation
@@ -2513,6 +2972,55 @@ module Google
2513
2972
  end
2514
2973
  end
2515
2974
 
2975
+ # A message representing a key prefix node in the key prefix hierarchy. for eg.
2976
+ # Bigtable keyspaces are lexicographically ordered mappings of keys to values.
2977
+ # Keys often have a shared prefix structure where users use the keys to organize
2978
+ # data. Eg ///employee In this case Keysight will possibly use one node for a
2979
+ # company and reuse it for all employees that fall under the company. Doing so
2980
+ # improves legibility in the UI.
2981
+ class PrefixNode
2982
+ include Google::Apis::Core::Hashable
2983
+
2984
+ # Whether this corresponds to a data_source name.
2985
+ # Corresponds to the JSON property `dataSourceNode`
2986
+ # @return [Boolean]
2987
+ attr_accessor :data_source_node
2988
+ alias_method :data_source_node?, :data_source_node
2989
+
2990
+ # The depth in the prefix hierarchy.
2991
+ # Corresponds to the JSON property `depth`
2992
+ # @return [Fixnum]
2993
+ attr_accessor :depth
2994
+
2995
+ # The index of the end key bucket of the range that this node spans.
2996
+ # Corresponds to the JSON property `endIndex`
2997
+ # @return [Fixnum]
2998
+ attr_accessor :end_index
2999
+
3000
+ # The index of the start key bucket of the range that this node spans.
3001
+ # Corresponds to the JSON property `startIndex`
3002
+ # @return [Fixnum]
3003
+ attr_accessor :start_index
3004
+
3005
+ # The string represented by the prefix node.
3006
+ # Corresponds to the JSON property `word`
3007
+ # @return [String]
3008
+ attr_accessor :word
3009
+
3010
+ def initialize(**args)
3011
+ update!(**args)
3012
+ end
3013
+
3014
+ # Update properties of this object
3015
+ def update!(**args)
3016
+ @data_source_node = args[:data_source_node] if args.key?(:data_source_node)
3017
+ @depth = args[:depth] if args.key?(:depth)
3018
+ @end_index = args[:end_index] if args.key?(:end_index)
3019
+ @start_index = args[:start_index] if args.key?(:start_index)
3020
+ @word = args[:word] if args.key?(:word)
3021
+ end
3022
+ end
3023
+
2516
3024
  # Query optimizer configuration.
2517
3025
  class QueryOptions
2518
3026
  include Google::Apis::Core::Hashable
@@ -2802,8 +3310,10 @@ module Google
2802
3310
  # A per-request tag which can be applied to queries or reads, used for
2803
3311
  # statistics collection. Both request_tag and transaction_tag can be specified
2804
3312
  # for a read or query that belongs to a transaction. This field is ignored for
2805
- # requests where it's not applicable (e.g. CommitRequest). `request_tag` must be
2806
- # a valid identifier of the form: `a-zA-Z` between 2 and 64 characters in length
3313
+ # requests where it's not applicable (e.g. CommitRequest). Legal characters for `
3314
+ # request_tag` values are all printable characters (ASCII 32 - 126) and the
3315
+ # length of a request_tag is limited to 50 characters. Values that exceed this
3316
+ # limit are truncated.
2807
3317
  # Corresponds to the JSON property `requestTag`
2808
3318
  # @return [String]
2809
3319
  attr_accessor :request_tag
@@ -2812,8 +3322,10 @@ module Google
2812
3322
  # and transaction_tag can be specified for a read or query that belongs to a
2813
3323
  # transaction. The value of transaction_tag should be the same for all requests
2814
3324
  # belonging to the same transaction. If this request doesn’t belong to any
2815
- # transaction, transaction_tag will be ignored. `transaction_tag` must be a
2816
- # valid identifier of the format: `a-zA-Z`0,49``
3325
+ # transaction, transaction_tag will be ignored. Legal characters for `
3326
+ # transaction_tag` values are all printable characters (ASCII 32 - 126) and the
3327
+ # length of a transaction_tag is limited to 50 characters. Values that exceed
3328
+ # this limit are truncated.
2817
3329
  # Corresponds to the JSON property `transactionTag`
2818
3330
  # @return [String]
2819
3331
  attr_accessor :transaction_tag
@@ -3100,6 +3612,87 @@ module Google
3100
3612
  end
3101
3613
  end
3102
3614
 
3615
+ # Scan is a structure which describes Cloud Key Visualizer scan information.
3616
+ class Scan
3617
+ include Google::Apis::Core::Hashable
3618
+
3619
+ # Additional information provided by the implementer.
3620
+ # Corresponds to the JSON property `details`
3621
+ # @return [Hash<String,Object>]
3622
+ attr_accessor :details
3623
+
3624
+ # The upper bound for when the scan is defined.
3625
+ # Corresponds to the JSON property `endTime`
3626
+ # @return [String]
3627
+ attr_accessor :end_time
3628
+
3629
+ # The unique name of the scan, specific to the Database service implementing
3630
+ # this interface.
3631
+ # Corresponds to the JSON property `name`
3632
+ # @return [String]
3633
+ attr_accessor :name
3634
+
3635
+ # ScanData contains Cloud Key Visualizer scan data used by the caller to
3636
+ # construct a visualization.
3637
+ # Corresponds to the JSON property `scanData`
3638
+ # @return [Google::Apis::SpannerV1::ScanData]
3639
+ attr_accessor :scan_data
3640
+
3641
+ # A range of time (inclusive) for when the scan is defined. The lower bound for
3642
+ # when the scan is defined.
3643
+ # Corresponds to the JSON property `startTime`
3644
+ # @return [String]
3645
+ attr_accessor :start_time
3646
+
3647
+ def initialize(**args)
3648
+ update!(**args)
3649
+ end
3650
+
3651
+ # Update properties of this object
3652
+ def update!(**args)
3653
+ @details = args[:details] if args.key?(:details)
3654
+ @end_time = args[:end_time] if args.key?(:end_time)
3655
+ @name = args[:name] if args.key?(:name)
3656
+ @scan_data = args[:scan_data] if args.key?(:scan_data)
3657
+ @start_time = args[:start_time] if args.key?(:start_time)
3658
+ end
3659
+ end
3660
+
3661
+ # ScanData contains Cloud Key Visualizer scan data used by the caller to
3662
+ # construct a visualization.
3663
+ class ScanData
3664
+ include Google::Apis::Core::Hashable
3665
+
3666
+ # Cloud Key Visualizer scan data. The range of time this information covers is
3667
+ # captured via the above time range fields. Note, this field is not available to
3668
+ # the ListScans method.
3669
+ # Corresponds to the JSON property `data`
3670
+ # @return [Google::Apis::SpannerV1::VisualizationData]
3671
+ attr_accessor :data
3672
+
3673
+ # The upper bound for when the contained data is defined.
3674
+ # Corresponds to the JSON property `endTime`
3675
+ # @return [String]
3676
+ attr_accessor :end_time
3677
+
3678
+ # A range of time (inclusive) for when the contained data is defined. The lower
3679
+ # bound for when the contained data is defined.
3680
+ # Corresponds to the JSON property `startTime`
3681
+ # @return [String]
3682
+ attr_accessor :start_time
3683
+
3684
+ def initialize(**args)
3685
+ update!(**args)
3686
+ end
3687
+
3688
+ # Update properties of this object
3689
+ def update!(**args)
3690
+ @data = args[:data] if args.key?(:data)
3691
+ @end_time = args[:end_time] if args.key?(:end_time)
3692
+ @start_time = args[:start_time] if args.key?(:start_time)
3693
+ end
3694
+ end
3695
+
3103
3696
  # A session in the Cloud Spanner API.
3104
3697
  class Session
3105
3698
  include Google::Apis::Core::Hashable
@@ -3390,12 +3983,12 @@ module Google
3390
3983
  end
3391
3984
  end
3392
3985
 
3393
- # # Transactions Each session can have at most one active transaction at a time (
3986
+ # Transactions: Each session can have at most one active transaction at a time (
3394
3987
  # note that standalone reads and queries use a transaction internally and do
3395
3988
  # count towards the one transaction limit). After the active transaction is
3396
3989
  # completed, the session can immediately be re-used for the next transaction. It
3397
- # is not necessary to create a new session for each transaction. # Transaction
3398
- # Modes Cloud Spanner supports three transaction modes: 1. Locking read-write.
3990
+ # is not necessary to create a new session for each transaction. Transaction
3991
+ # Modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
3399
3992
  # This type of transaction is the only way to write data into Cloud Spanner.
3400
3993
  # These transactions rely on pessimistic locking and, if necessary, two-phase
3401
3994
  # commit. Locking read-write transactions may abort, requiring the application
@@ -3413,8 +4006,8 @@ module Google
3413
4006
  # transactions. As a consequence of not taking locks, they also do not abort, so
3414
4007
  # retry loops are not needed. Transactions may only read/write data in a single
3415
4008
  # database. They may, however, read/write data in different tables within that
3416
- # database. ## Locking Read-Write Transactions Locking transactions may be used
3417
- # to atomically read-modify-write data anywhere in a database. This type of
4009
+ # database. Locking Read-Write Transactions: Locking transactions may be used to
4010
+ # atomically read-modify-write data anywhere in a database. This type of
3418
4011
  # transaction is externally consistent. Clients should attempt to minimize the
3419
4012
  # amount of time a transaction is active. Faster transactions commit with higher
3420
4013
  # probability and cause less contention. Cloud Spanner attempts to keep read
@@ -3423,7 +4016,7 @@ module Google
3423
4016
  # inactivity at the client may cause Cloud Spanner to release a transaction's
3424
4017
  # locks and abort it. Conceptually, a read-write transaction consists of zero or
3425
4018
  # more reads or SQL statements followed by Commit. At any time before Commit,
3426
- # the client can send a Rollback request to abort the transaction. ## Semantics
4019
+ # the client can send a Rollback request to abort the transaction. Semantics:
3427
4020
  # Cloud Spanner can commit the transaction if all read locks it acquired are
3428
4021
  # still valid at commit time, and it is able to acquire write locks for all
3429
4022
  # writes. Cloud Spanner can abort the transaction for any reason. If a commit
@@ -3431,24 +4024,24 @@ module Google
3431
4024
  # not modified any user data in Cloud Spanner. Unless the transaction commits,
3432
4025
  # Cloud Spanner makes no guarantees about how long the transaction's locks were
3433
4026
  # held for. It is an error to use Cloud Spanner locks for any sort of mutual
3434
- # exclusion other than between Cloud Spanner transactions themselves. ##
3435
- # Retrying Aborted Transactions When a transaction aborts, the application can
3436
- # choose to retry the whole transaction again. To maximize the chances of
3437
- # successfully committing the retry, the client should execute the retry in the
3438
- # same session as the original attempt. The original session's lock priority
3439
- # increases with each consecutive abort, meaning that each attempt has a
3440
- # slightly better chance of success than the previous. Under some circumstances (
3441
- # e.g., many transactions attempting to modify the same row(s)), a transaction
3442
- # can abort many times in a short period before successfully committing. Thus,
3443
- # it is not a good idea to cap the number of retries a transaction can attempt;
3444
- # instead, it is better to limit the total amount of wall time spent retrying. ##
3445
- # Idle Transactions A transaction is considered idle if it has no outstanding
3446
- # reads or SQL queries and has not started a read or SQL query within the last
3447
- # 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don'
3448
- # t hold on to locks indefinitely. In that case, the commit will fail with error
3449
- # `ABORTED`. If this behavior is undesirable, periodically executing a simple
3450
- # SQL query in the transaction (e.g., `SELECT 1`) prevents the transaction from
3451
- # becoming idle. ## Snapshot Read-Only Transactions Snapshot read-only
4027
+ # exclusion other than between Cloud Spanner transactions themselves. Retrying
4028
+ # Aborted Transactions: When a transaction aborts, the application can choose to
4029
+ # retry the whole transaction again. To maximize the chances of successfully
4030
+ # committing the retry, the client should execute the retry in the same session
4031
+ # as the original attempt. The original session's lock priority increases with
4032
+ # each consecutive abort, meaning that each attempt has a slightly better chance
4033
+ # of success than the previous. Under some circumstances (e.g., many
4034
+ # transactions attempting to modify the same row(s)), a transaction can abort
4035
+ # many times in a short period before successfully committing. Thus, it is not a
4036
+ # good idea to cap the number of retries a transaction can attempt; instead, it
4037
+ # is better to limit the total amount of wall time spent retrying. Idle
4038
+ # Transactions: A transaction is considered idle if it has no outstanding reads
4039
+ # or SQL queries and has not started a read or SQL query within the last 10
4040
+ # seconds. Idle transactions can be aborted by Cloud Spanner so that they don't
4041
+ # hold on to locks indefinitely. In that case, the commit will fail with error `
4042
+ # ABORTED`. If this behavior is undesirable, periodically executing a simple SQL
4043
+ # query in the transaction (e.g., `SELECT 1`) prevents the transaction from
4044
+ # becoming idle. Snapshot Read-Only Transactions: Snapshot read-only
3452
4045
  # transactions provides a simpler method than locking read-write transactions
3453
4046
  # for doing several consistent reads. However, this type of transaction does not
3454
4047
  # support writes. Snapshot transactions do not take locks. Instead, they work by
@@ -3466,15 +4059,15 @@ module Google
3466
4059
  # is geographically distributed, stale read-only transactions can execute more
3467
4060
  # quickly than strong or read-write transaction, because they are able to
3468
4061
  # execute far from the leader replica. Each type of timestamp bound is discussed
3469
- # in detail below. ## Strong Strong reads are guaranteed to see the effects of
3470
- # all transactions that have committed before the start of the read. Furthermore,
4062
+ # in detail below. Strong: Strong reads are guaranteed to see the effects of all
4063
+ # transactions that have committed before the start of the read. Furthermore,
3471
4064
  # all rows yielded by a single read are consistent with each other -- if any
3472
4065
  # part of the read observes a transaction, all parts of the read see the
3473
4066
  # transaction. Strong reads are not repeatable: two consecutive strong read-only
3474
4067
  # transactions might return inconsistent results if there are concurrent writes.
3475
4068
  # If consistency across reads is required, the reads should be executed within a
3476
4069
  # transaction or at an exact read timestamp. See TransactionOptions.ReadOnly.
3477
- # strong. ## Exact Staleness These timestamp bounds execute reads at a user-
4070
+ # strong. Exact Staleness: These timestamp bounds execute reads at a user-
3478
4071
  # specified timestamp. Reads at a timestamp are guaranteed to see a consistent
3479
4072
  # prefix of the global transaction history: they observe modifications done by
3480
4073
  # all transactions with a commit timestamp <= the read timestamp, and observe
@@ -3486,8 +4079,8 @@ module Google
3486
4079
  # to pick a timestamp. As a result, they execute slightly faster than the
3487
4080
  # equivalent boundedly stale concurrency modes. On the other hand, boundedly
3488
4081
  # stale reads usually return fresher results. See TransactionOptions.ReadOnly.
3489
- # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. ## Bounded
3490
- # Staleness Bounded staleness modes allow Cloud Spanner to pick the read
4082
+ # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
4083
+ # Staleness: Bounded staleness modes allow Cloud Spanner to pick the read
3491
4084
  # timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
3492
4085
  # the newest timestamp within the staleness bound that allows execution of the
3493
4086
  # reads at the closest available replica without blocking. All rows yielded are
@@ -3504,15 +4097,15 @@ module Google
3504
4097
  # timestamp negotiation requires up-front knowledge of which rows will be read,
3505
4098
  # it can only be used with single-use read-only transactions. See
3506
4099
  # TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
3507
- # min_read_timestamp. ## Old Read Timestamps and Garbage Collection Cloud
3508
- # Spanner continuously garbage collects deleted and overwritten data in the
3509
- # background to reclaim storage space. This process is known as "version GC". By
3510
- # default, version GC reclaims versions after they are one hour old. Because of
3511
- # this, Cloud Spanner cannot perform reads at read timestamps more than one hour
3512
- # in the past. This restriction also applies to in-progress reads and/or SQL
4100
+ # min_read_timestamp. Old Read Timestamps and Garbage Collection: Cloud Spanner
4101
+ # continuously garbage collects deleted and overwritten data in the background
4102
+ # to reclaim storage space. This process is known as "version GC". By default,
4103
+ # version GC reclaims versions after they are one hour old. Because of this,
4104
+ # Cloud Spanner cannot perform reads at read timestamps more than one hour in
4105
+ # the past. This restriction also applies to in-progress reads and/or SQL
3513
4106
  # queries whose timestamp become too old while executing. Reads and SQL queries
3514
- # with too-old read timestamps fail with the error `FAILED_PRECONDITION`. ##
3515
- # Partitioned DML Transactions Partitioned DML transactions are used to execute
4107
+ # with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
4108
+ # Partitioned DML Transactions: Partitioned DML transactions are used to execute
3516
4109
  # DML statements with a different execution strategy that provides different,
3517
4110
  # and often better, scalability properties for large, table-wide operations than
3518
4111
  # DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP
@@ -3585,12 +4178,12 @@ module Google
3585
4178
  class TransactionSelector
3586
4179
  include Google::Apis::Core::Hashable
3587
4180
 
3588
- # # Transactions Each session can have at most one active transaction at a time (
4181
+ # Transactions: Each session can have at most one active transaction at a time (
3589
4182
  # note that standalone reads and queries use a transaction internally and do
3590
4183
  # count towards the one transaction limit). After the active transaction is
3591
4184
  # completed, the session can immediately be re-used for the next transaction. It
3592
- # is not necessary to create a new session for each transaction. # Transaction
3593
- # Modes Cloud Spanner supports three transaction modes: 1. Locking read-write.
4185
+ # is not necessary to create a new session for each transaction. Transaction
4186
+ # Modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
3594
4187
  # This type of transaction is the only way to write data into Cloud Spanner.
3595
4188
  # These transactions rely on pessimistic locking and, if necessary, two-phase
3596
4189
  # commit. Locking read-write transactions may abort, requiring the application
@@ -3608,8 +4201,8 @@ module Google
3608
4201
  # transactions. As a consequence of not taking locks, they also do not abort, so
3609
4202
  # retry loops are not needed. Transactions may only read/write data in a single
3610
4203
  # database. They may, however, read/write data in different tables within that
3611
- # database. ## Locking Read-Write Transactions Locking transactions may be used
3612
- # to atomically read-modify-write data anywhere in a database. This type of
4204
+ # database. Locking Read-Write Transactions: Locking transactions may be used to
4205
+ # atomically read-modify-write data anywhere in a database. This type of
3613
4206
  # transaction is externally consistent. Clients should attempt to minimize the
3614
4207
  # amount of time a transaction is active. Faster transactions commit with higher
3615
4208
  # probability and cause less contention. Cloud Spanner attempts to keep read
@@ -3618,7 +4211,7 @@ module Google
3618
4211
  # inactivity at the client may cause Cloud Spanner to release a transaction's
3619
4212
  # locks and abort it. Conceptually, a read-write transaction consists of zero or
3620
4213
  # more reads or SQL statements followed by Commit. At any time before Commit,
3621
- # the client can send a Rollback request to abort the transaction. ## Semantics
4214
+ # the client can send a Rollback request to abort the transaction. Semantics:
3622
4215
  # Cloud Spanner can commit the transaction if all read locks it acquired are
3623
4216
  # still valid at commit time, and it is able to acquire write locks for all
3624
4217
  # writes. Cloud Spanner can abort the transaction for any reason. If a commit
@@ -3626,24 +4219,24 @@ module Google
3626
4219
  # not modified any user data in Cloud Spanner. Unless the transaction commits,
3627
4220
  # Cloud Spanner makes no guarantees about how long the transaction's locks were
3628
4221
  # held for. It is an error to use Cloud Spanner locks for any sort of mutual
3629
- # exclusion other than between Cloud Spanner transactions themselves. ##
3630
- # Retrying Aborted Transactions When a transaction aborts, the application can
3631
- # choose to retry the whole transaction again. To maximize the chances of
3632
- # successfully committing the retry, the client should execute the retry in the
3633
- # same session as the original attempt. The original session's lock priority
3634
- # increases with each consecutive abort, meaning that each attempt has a
3635
- # slightly better chance of success than the previous. Under some circumstances (
3636
- # e.g., many transactions attempting to modify the same row(s)), a transaction
3637
- # can abort many times in a short period before successfully committing. Thus,
3638
- # it is not a good idea to cap the number of retries a transaction can attempt;
3639
- # instead, it is better to limit the total amount of wall time spent retrying. ##
3640
- # Idle Transactions A transaction is considered idle if it has no outstanding
3641
- # reads or SQL queries and has not started a read or SQL query within the last
3642
- # 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don'
3643
- # t hold on to locks indefinitely. In that case, the commit will fail with error
3644
- # `ABORTED`. If this behavior is undesirable, periodically executing a simple
3645
- # SQL query in the transaction (e.g., `SELECT 1`) prevents the transaction from
3646
- # becoming idle. ## Snapshot Read-Only Transactions Snapshot read-only
4222
+ # exclusion other than between Cloud Spanner transactions themselves. Retrying
4223
+ # Aborted Transactions: When a transaction aborts, the application can choose to
4224
+ # retry the whole transaction again. To maximize the chances of successfully
4225
+ # committing the retry, the client should execute the retry in the same session
4226
+ # as the original attempt. The original session's lock priority increases with
4227
+ # each consecutive abort, meaning that each attempt has a slightly better chance
4228
+ # of success than the previous. Under some circumstances (e.g., many
4229
+ # transactions attempting to modify the same row(s)), a transaction can abort
4230
+ # many times in a short period before successfully committing. Thus, it is not a
4231
+ # good idea to cap the number of retries a transaction can attempt; instead, it
4232
+ # is better to limit the total amount of wall time spent retrying. Idle
4233
+ # Transactions: A transaction is considered idle if it has no outstanding reads
4234
+ # or SQL queries and has not started a read or SQL query within the last 10
4235
+ # seconds. Idle transactions can be aborted by Cloud Spanner so that they don't
4236
+ # hold on to locks indefinitely. In that case, the commit will fail with error `
4237
+ # ABORTED`. If this behavior is undesirable, periodically executing a simple SQL
4238
+ # query in the transaction (e.g., `SELECT 1`) prevents the transaction from
4239
+ # becoming idle. Snapshot Read-Only Transactions: Snapshot read-only
3647
4240
  # transactions provides a simpler method than locking read-write transactions
3648
4241
  # for doing several consistent reads. However, this type of transaction does not
3649
4242
  # support writes. Snapshot transactions do not take locks. Instead, they work by
@@ -3661,15 +4254,15 @@ module Google
3661
4254
  # is geographically distributed, stale read-only transactions can execute more
3662
4255
  # quickly than strong or read-write transaction, because they are able to
3663
4256
  # execute far from the leader replica. Each type of timestamp bound is discussed
3664
- # in detail below. ## Strong Strong reads are guaranteed to see the effects of
3665
- # all transactions that have committed before the start of the read. Furthermore,
4257
+ # in detail below. Strong: Strong reads are guaranteed to see the effects of all
4258
+ # transactions that have committed before the start of the read. Furthermore,
3666
4259
  # all rows yielded by a single read are consistent with each other -- if any
3667
4260
  # part of the read observes a transaction, all parts of the read see the
3668
4261
  # transaction. Strong reads are not repeatable: two consecutive strong read-only
3669
4262
  # transactions might return inconsistent results if there are concurrent writes.
3670
4263
  # If consistency across reads is required, the reads should be executed within a
3671
4264
  # transaction or at an exact read timestamp. See TransactionOptions.ReadOnly.
3672
- # strong. ## Exact Staleness These timestamp bounds execute reads at a user-
4265
+ # strong. Exact Staleness: These timestamp bounds execute reads at a user-
3673
4266
  # specified timestamp. Reads at a timestamp are guaranteed to see a consistent
3674
4267
  # prefix of the global transaction history: they observe modifications done by
3675
4268
  # all transactions with a commit timestamp <= the read timestamp, and observe
@@ -3681,8 +4274,8 @@ module Google
3681
4274
  # to pick a timestamp. As a result, they execute slightly faster than the
3682
4275
  # equivalent boundedly stale concurrency modes. On the other hand, boundedly
3683
4276
  # stale reads usually return fresher results. See TransactionOptions.ReadOnly.
3684
- # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. ## Bounded
3685
- # Staleness Bounded staleness modes allow Cloud Spanner to pick the read
4277
+ # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
4278
+ # Staleness: Bounded staleness modes allow Cloud Spanner to pick the read
3686
4279
  # timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
3687
4280
  # the newest timestamp within the staleness bound that allows execution of the
3688
4281
  # reads at the closest available replica without blocking. All rows yielded are
@@ -3699,15 +4292,15 @@ module Google
3699
4292
  # timestamp negotiation requires up-front knowledge of which rows will be read,
3700
4293
  # it can only be used with single-use read-only transactions. See
3701
4294
  # TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
3702
- # min_read_timestamp. ## Old Read Timestamps and Garbage Collection Cloud
3703
- # Spanner continuously garbage collects deleted and overwritten data in the
3704
- # background to reclaim storage space. This process is known as "version GC". By
3705
- # default, version GC reclaims versions after they are one hour old. Because of
3706
- # this, Cloud Spanner cannot perform reads at read timestamps more than one hour
3707
- # in the past. This restriction also applies to in-progress reads and/or SQL
4295
+ # min_read_timestamp. Old Read Timestamps and Garbage Collection: Cloud Spanner
4296
+ # continuously garbage collects deleted and overwritten data in the background
4297
+ # to reclaim storage space. This process is known as "version GC". By default,
4298
+ # version GC reclaims versions after they are one hour old. Because of this,
4299
+ # Cloud Spanner cannot perform reads at read timestamps more than one hour in
4300
+ # the past. This restriction also applies to in-progress reads and/or SQL
3708
4301
  # queries whose timestamp become too old while executing. Reads and SQL queries
3709
- # with too-old read timestamps fail with the error `FAILED_PRECONDITION`. ##
3710
- # Partitioned DML Transactions Partitioned DML transactions are used to execute
4302
+ # with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
4303
+ # Partitioned DML Transactions: Partitioned DML transactions are used to execute
3711
4304
  # DML statements with a different execution strategy that provides different,
3712
4305
  # and often better, scalability properties for large, table-wide operations than
3713
4306
  # DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP
@@ -3754,12 +4347,12 @@ module Google
3754
4347
  # @return [String]
3755
4348
  attr_accessor :id
3756
4349
 
3757
- # # Transactions Each session can have at most one active transaction at a time (
4350
+ # Transactions: Each session can have at most one active transaction at a time (
3758
4351
  # note that standalone reads and queries use a transaction internally and do
3759
4352
  # count towards the one transaction limit). After the active transaction is
3760
4353
  # completed, the session can immediately be re-used for the next transaction. It
3761
- # is not necessary to create a new session for each transaction. # Transaction
3762
- # Modes Cloud Spanner supports three transaction modes: 1. Locking read-write.
4354
+ # is not necessary to create a new session for each transaction. Transaction
4355
+ # Modes: Cloud Spanner supports three transaction modes: 1. Locking read-write.
3763
4356
  # This type of transaction is the only way to write data into Cloud Spanner.
3764
4357
  # These transactions rely on pessimistic locking and, if necessary, two-phase
3765
4358
  # commit. Locking read-write transactions may abort, requiring the application
@@ -3777,8 +4370,8 @@ module Google
3777
4370
  # transactions. As a consequence of not taking locks, they also do not abort, so
3778
4371
  # retry loops are not needed. Transactions may only read/write data in a single
3779
4372
  # database. They may, however, read/write data in different tables within that
3780
- # database. ## Locking Read-Write Transactions Locking transactions may be used
3781
- # to atomically read-modify-write data anywhere in a database. This type of
4373
+ # database. Locking Read-Write Transactions: Locking transactions may be used to
4374
+ # atomically read-modify-write data anywhere in a database. This type of
3782
4375
  # transaction is externally consistent. Clients should attempt to minimize the
3783
4376
  # amount of time a transaction is active. Faster transactions commit with higher
3784
4377
  # probability and cause less contention. Cloud Spanner attempts to keep read
@@ -3787,7 +4380,7 @@ module Google
3787
4380
  # inactivity at the client may cause Cloud Spanner to release a transaction's
3788
4381
  # locks and abort it. Conceptually, a read-write transaction consists of zero or
3789
4382
  # more reads or SQL statements followed by Commit. At any time before Commit,
3790
- # the client can send a Rollback request to abort the transaction. ## Semantics
4383
+ # the client can send a Rollback request to abort the transaction. Semantics:
3791
4384
  # Cloud Spanner can commit the transaction if all read locks it acquired are
3792
4385
  # still valid at commit time, and it is able to acquire write locks for all
3793
4386
  # writes. Cloud Spanner can abort the transaction for any reason. If a commit
@@ -3795,24 +4388,24 @@ module Google
3795
4388
  # not modified any user data in Cloud Spanner. Unless the transaction commits,
3796
4389
  # Cloud Spanner makes no guarantees about how long the transaction's locks were
3797
4390
  # held for. It is an error to use Cloud Spanner locks for any sort of mutual
3798
- # exclusion other than between Cloud Spanner transactions themselves. ##
3799
- # Retrying Aborted Transactions When a transaction aborts, the application can
3800
- # choose to retry the whole transaction again. To maximize the chances of
3801
- # successfully committing the retry, the client should execute the retry in the
3802
- # same session as the original attempt. The original session's lock priority
3803
- # increases with each consecutive abort, meaning that each attempt has a
3804
- # slightly better chance of success than the previous. Under some circumstances (
3805
- # e.g., many transactions attempting to modify the same row(s)), a transaction
3806
- # can abort many times in a short period before successfully committing. Thus,
3807
- # it is not a good idea to cap the number of retries a transaction can attempt;
3808
- # instead, it is better to limit the total amount of wall time spent retrying. ##
3809
- # Idle Transactions A transaction is considered idle if it has no outstanding
3810
- # reads or SQL queries and has not started a read or SQL query within the last
3811
- # 10 seconds. Idle transactions can be aborted by Cloud Spanner so that they don'
3812
- # t hold on to locks indefinitely. In that case, the commit will fail with error
3813
- # `ABORTED`. If this behavior is undesirable, periodically executing a simple
3814
- # SQL query in the transaction (e.g., `SELECT 1`) prevents the transaction from
3815
- # becoming idle. ## Snapshot Read-Only Transactions Snapshot read-only
4391
+ # exclusion other than between Cloud Spanner transactions themselves. Retrying
4392
+ # Aborted Transactions: When a transaction aborts, the application can choose to
4393
+ # retry the whole transaction again. To maximize the chances of successfully
4394
+ # committing the retry, the client should execute the retry in the same session
4395
+ # as the original attempt. The original session's lock priority increases with
4396
+ # each consecutive abort, meaning that each attempt has a slightly better chance
4397
+ # of success than the previous. Under some circumstances (e.g., many
4398
+ # transactions attempting to modify the same row(s)), a transaction can abort
4399
+ # many times in a short period before successfully committing. Thus, it is not a
4400
+ # good idea to cap the number of retries a transaction can attempt; instead, it
4401
+ # is better to limit the total amount of wall time spent retrying. Idle
4402
+ # Transactions: A transaction is considered idle if it has no outstanding reads
4403
+ # or SQL queries and has not started a read or SQL query within the last 10
4404
+ # seconds. Idle transactions can be aborted by Cloud Spanner so that they don't
4405
+ # hold on to locks indefinitely. In that case, the commit will fail with error `
4406
+ # ABORTED`. If this behavior is undesirable, periodically executing a simple SQL
4407
+ # query in the transaction (e.g., `SELECT 1`) prevents the transaction from
4408
+ # becoming idle. Snapshot Read-Only Transactions: Snapshot read-only
3816
4409
  # transactions provides a simpler method than locking read-write transactions
3817
4410
  # for doing several consistent reads. However, this type of transaction does not
3818
4411
  # support writes. Snapshot transactions do not take locks. Instead, they work by
@@ -3830,15 +4423,15 @@ module Google
3830
4423
  # is geographically distributed, stale read-only transactions can execute more
3831
4424
  # quickly than strong or read-write transaction, because they are able to
3832
4425
  # execute far from the leader replica. Each type of timestamp bound is discussed
3833
- # in detail below. ## Strong Strong reads are guaranteed to see the effects of
3834
- # all transactions that have committed before the start of the read. Furthermore,
4426
+ # in detail below. Strong: Strong reads are guaranteed to see the effects of all
4427
+ # transactions that have committed before the start of the read. Furthermore,
3835
4428
  # all rows yielded by a single read are consistent with each other -- if any
3836
4429
  # part of the read observes a transaction, all parts of the read see the
3837
4430
  # transaction. Strong reads are not repeatable: two consecutive strong read-only
3838
4431
  # transactions might return inconsistent results if there are concurrent writes.
3839
4432
  # If consistency across reads is required, the reads should be executed within a
3840
4433
  # transaction or at an exact read timestamp. See TransactionOptions.ReadOnly.
3841
- # strong. ## Exact Staleness These timestamp bounds execute reads at a user-
4434
+ # strong. Exact Staleness: These timestamp bounds execute reads at a user-
3842
4435
  # specified timestamp. Reads at a timestamp are guaranteed to see a consistent
3843
4436
  # prefix of the global transaction history: they observe modifications done by
3844
4437
  # all transactions with a commit timestamp <= the read timestamp, and observe
@@ -3850,8 +4443,8 @@ module Google
3850
4443
  # to pick a timestamp. As a result, they execute slightly faster than the
3851
4444
  # equivalent boundedly stale concurrency modes. On the other hand, boundedly
3852
4445
  # stale reads usually return fresher results. See TransactionOptions.ReadOnly.
3853
- # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. ## Bounded
3854
- # Staleness Bounded staleness modes allow Cloud Spanner to pick the read
4446
+ # read_timestamp and TransactionOptions.ReadOnly.exact_staleness. Bounded
4447
+ # Staleness: Bounded staleness modes allow Cloud Spanner to pick the read
3855
4448
  # timestamp, subject to a user-provided staleness bound. Cloud Spanner chooses
3856
4449
  # the newest timestamp within the staleness bound that allows execution of the
3857
4450
  # reads at the closest available replica without blocking. All rows yielded are
@@ -3868,15 +4461,15 @@ module Google
3868
4461
  # timestamp negotiation requires up-front knowledge of which rows will be read,
3869
4462
  # it can only be used with single-use read-only transactions. See
3870
4463
  # TransactionOptions.ReadOnly.max_staleness and TransactionOptions.ReadOnly.
3871
- # min_read_timestamp. ## Old Read Timestamps and Garbage Collection Cloud
3872
- # Spanner continuously garbage collects deleted and overwritten data in the
3873
- # background to reclaim storage space. This process is known as "version GC". By
3874
- # default, version GC reclaims versions after they are one hour old. Because of
3875
- # this, Cloud Spanner cannot perform reads at read timestamps more than one hour
3876
- # in the past. This restriction also applies to in-progress reads and/or SQL
4464
+ # min_read_timestamp. Old Read Timestamps and Garbage Collection: Cloud Spanner
4465
+ # continuously garbage collects deleted and overwritten data in the background
4466
+ # to reclaim storage space. This process is known as "version GC". By default,
4467
+ # version GC reclaims versions after they are one hour old. Because of this,
4468
+ # Cloud Spanner cannot perform reads at read timestamps more than one hour in
4469
+ # the past. This restriction also applies to in-progress reads and/or SQL
3877
4470
  # queries whose timestamp become too old while executing. Reads and SQL queries
3878
- # with too-old read timestamps fail with the error `FAILED_PRECONDITION`. ##
3879
- # Partitioned DML Transactions Partitioned DML transactions are used to execute
4471
+ # with too-old read timestamps fail with the error `FAILED_PRECONDITION`.
4472
+ # Partitioned DML Transactions: Partitioned DML transactions are used to execute
3880
4473
  # DML statements with a different execution strategy that provides different,
3881
4474
  # and often better, scalability properties for large, table-wide operations than
3882
4475
  # DML in a ReadWrite transaction. Smaller scoped statements, such as an OLTP
@@ -4126,6 +4719,84 @@ module Google
4126
4719
  end
4127
4720
  end
4128
4721
 
4722
+ #
4723
+ class VisualizationData
4724
+ include Google::Apis::Core::Hashable
4725
+
4726
+ # The token signifying the end of a data_source.
4727
+ # Corresponds to the JSON property `dataSourceEndToken`
4728
+ # @return [String]
4729
+ attr_accessor :data_source_end_token
4730
+
4731
+ # The token delimiting a datasource name from the rest of a key in a data_source.
4732
+ # Corresponds to the JSON property `dataSourceSeparatorToken`
4733
+ # @return [String]
4734
+ attr_accessor :data_source_separator_token
4735
+
4736
+ # The list of messages (info, alerts, ...)
4737
+ # Corresponds to the JSON property `diagnosticMessages`
4738
+ # @return [Array<Google::Apis::SpannerV1::DiagnosticMessage>]
4739
+ attr_accessor :diagnostic_messages
4740
+
4741
+ # We discretize the entire keyspace into buckets. Assuming each bucket has an
4742
+ # inclusive keyrange and covers keys from k(i) ... k(n). In this case k(n) would
4743
+ # be an end key for a given range. end_key_string is the collection of all such
4744
+ # end keys
4745
+ # Corresponds to the JSON property `endKeyStrings`
4746
+ # @return [Array<String>]
4747
+ attr_accessor :end_key_strings
4748
+
4749
+ # Whether this scan contains PII.
4750
+ # Corresponds to the JSON property `hasPii`
4751
+ # @return [Boolean]
4752
+ attr_accessor :has_pii
4753
+ alias_method :has_pii?, :has_pii
4754
+
4755
+ # Keys of key ranges that contribute significantly to a given metric Can be
4756
+ # thought of as heavy hitters.
4757
+ # Corresponds to the JSON property `indexedKeys`
4758
+ # @return [Array<String>]
4759
+ attr_accessor :indexed_keys
4760
+
4761
+ # The token delimiting the key prefixes.
4762
+ # Corresponds to the JSON property `keySeparator`
4763
+ # @return [String]
4764
+ attr_accessor :key_separator
4765
+
4766
+ # The unit for the key: e.g. 'key' or 'chunk'.
4767
+ # Corresponds to the JSON property `keyUnit`
4768
+ # @return [String]
4769
+ attr_accessor :key_unit
4770
+
4771
+ # The list of data objects for each metric.
4772
+ # Corresponds to the JSON property `metrics`
4773
+ # @return [Array<Google::Apis::SpannerV1::Metric>]
4774
+ attr_accessor :metrics
4775
+
4776
+ # The list of extracted key prefix nodes used in the key prefix hierarchy.
4777
+ # Corresponds to the JSON property `prefixNodes`
4778
+ # @return [Array<Google::Apis::SpannerV1::PrefixNode>]
4779
+ attr_accessor :prefix_nodes
4780
+
4781
+ def initialize(**args)
4782
+ update!(**args)
4783
+ end
4784
+
4785
+ # Update properties of this object
4786
+ def update!(**args)
4787
+ @data_source_end_token = args[:data_source_end_token] if args.key?(:data_source_end_token)
4788
+ @data_source_separator_token = args[:data_source_separator_token] if args.key?(:data_source_separator_token)
4789
+ @diagnostic_messages = args[:diagnostic_messages] if args.key?(:diagnostic_messages)
4790
+ @end_key_strings = args[:end_key_strings] if args.key?(:end_key_strings)
4791
+ @has_pii = args[:has_pii] if args.key?(:has_pii)
4792
+ @indexed_keys = args[:indexed_keys] if args.key?(:indexed_keys)
4793
+ @key_separator = args[:key_separator] if args.key?(:key_separator)
4794
+ @key_unit = args[:key_unit] if args.key?(:key_unit)
4795
+ @metrics = args[:metrics] if args.key?(:metrics)
4796
+ @prefix_nodes = args[:prefix_nodes] if args.key?(:prefix_nodes)
4797
+ end
4798
+ end
4799
+
4129
4800
  # Arguments to insert, update, insert_or_update, and replace operations.
4130
4801
  class Write
4131
4802
  include Google::Apis::Core::Hashable