google-apis-spanner_v1 0.8.0 → 0.13.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: 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