google-apis-spanner_v1 0.36.0 → 0.38.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 +4 -4
- data/CHANGELOG.md +9 -0
- data/OVERVIEW.md +2 -2
- data/lib/google/apis/spanner_v1/classes.rb +2753 -620
- data/lib/google/apis/spanner_v1/gem_version.rb +3 -3
- data/lib/google/apis/spanner_v1/representations.rb +796 -0
- data/lib/google/apis/spanner_v1/service.rb +1746 -425
- metadata +7 -10
@@ -22,10 +22,201 @@ module Google
|
|
22
22
|
module Apis
|
23
23
|
module SpannerV1
|
24
24
|
|
25
|
+
# AsymmetricAutoscalingOption specifies the scaling of replicas identified by
|
26
|
+
# the given selection.
|
27
|
+
class AsymmetricAutoscalingOption
|
28
|
+
include Google::Apis::Core::Hashable
|
29
|
+
|
30
|
+
# Overrides the top-level autoscaling configuration for the replicas identified
|
31
|
+
# by `replica_selection`. All fields in this message are optional. Any
|
32
|
+
# unspecified fields will use the corresponding values from the top-level
|
33
|
+
# autoscaling configuration.
|
34
|
+
# Corresponds to the JSON property `overrides`
|
35
|
+
# @return [Google::Apis::SpannerV1::AutoscalingConfigOverrides]
|
36
|
+
attr_accessor :overrides
|
37
|
+
|
38
|
+
# ReplicaSelection identifies replicas with common properties.
|
39
|
+
# Corresponds to the JSON property `replicaSelection`
|
40
|
+
# @return [Google::Apis::SpannerV1::InstanceReplicaSelection]
|
41
|
+
attr_accessor :replica_selection
|
42
|
+
|
43
|
+
def initialize(**args)
|
44
|
+
update!(**args)
|
45
|
+
end
|
46
|
+
|
47
|
+
# Update properties of this object
|
48
|
+
def update!(**args)
|
49
|
+
@overrides = args[:overrides] if args.key?(:overrides)
|
50
|
+
@replica_selection = args[:replica_selection] if args.key?(:replica_selection)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Autoscaling configuration for an instance.
|
55
|
+
class AutoscalingConfig
|
56
|
+
include Google::Apis::Core::Hashable
|
57
|
+
|
58
|
+
# Optional. Optional asymmetric autoscaling options. Replicas matching the
|
59
|
+
# replica selection criteria will be autoscaled independently from other
|
60
|
+
# replicas. The autoscaler will scale the replicas based on the utilization of
|
61
|
+
# replicas identified by the replica selection. Replica selections should not
|
62
|
+
# overlap with each other. Other replicas (those do not match any replica
|
63
|
+
# selection) will be autoscaled together and will have the same compute capacity
|
64
|
+
# allocated to them.
|
65
|
+
# Corresponds to the JSON property `asymmetricAutoscalingOptions`
|
66
|
+
# @return [Array<Google::Apis::SpannerV1::AsymmetricAutoscalingOption>]
|
67
|
+
attr_accessor :asymmetric_autoscaling_options
|
68
|
+
|
69
|
+
# The autoscaling limits for the instance. Users can define the minimum and
|
70
|
+
# maximum compute capacity allocated to the instance, and the autoscaler will
|
71
|
+
# only scale within that range. Users can either use nodes or processing units
|
72
|
+
# to specify the limits, but should use the same unit to set both the min_limit
|
73
|
+
# and max_limit.
|
74
|
+
# Corresponds to the JSON property `autoscalingLimits`
|
75
|
+
# @return [Google::Apis::SpannerV1::AutoscalingLimits]
|
76
|
+
attr_accessor :autoscaling_limits
|
77
|
+
|
78
|
+
# The autoscaling targets for an instance.
|
79
|
+
# Corresponds to the JSON property `autoscalingTargets`
|
80
|
+
# @return [Google::Apis::SpannerV1::AutoscalingTargets]
|
81
|
+
attr_accessor :autoscaling_targets
|
82
|
+
|
83
|
+
def initialize(**args)
|
84
|
+
update!(**args)
|
85
|
+
end
|
86
|
+
|
87
|
+
# Update properties of this object
|
88
|
+
def update!(**args)
|
89
|
+
@asymmetric_autoscaling_options = args[:asymmetric_autoscaling_options] if args.key?(:asymmetric_autoscaling_options)
|
90
|
+
@autoscaling_limits = args[:autoscaling_limits] if args.key?(:autoscaling_limits)
|
91
|
+
@autoscaling_targets = args[:autoscaling_targets] if args.key?(:autoscaling_targets)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
# Overrides the top-level autoscaling configuration for the replicas identified
|
96
|
+
# by `replica_selection`. All fields in this message are optional. Any
|
97
|
+
# unspecified fields will use the corresponding values from the top-level
|
98
|
+
# autoscaling configuration.
|
99
|
+
class AutoscalingConfigOverrides
|
100
|
+
include Google::Apis::Core::Hashable
|
101
|
+
|
102
|
+
# The autoscaling limits for the instance. Users can define the minimum and
|
103
|
+
# maximum compute capacity allocated to the instance, and the autoscaler will
|
104
|
+
# only scale within that range. Users can either use nodes or processing units
|
105
|
+
# to specify the limits, but should use the same unit to set both the min_limit
|
106
|
+
# and max_limit.
|
107
|
+
# Corresponds to the JSON property `autoscalingLimits`
|
108
|
+
# @return [Google::Apis::SpannerV1::AutoscalingLimits]
|
109
|
+
attr_accessor :autoscaling_limits
|
110
|
+
|
111
|
+
# Optional. If specified, overrides the autoscaling target
|
112
|
+
# high_priority_cpu_utilization_percent in the top-level autoscaling
|
113
|
+
# configuration for the selected replicas.
|
114
|
+
# Corresponds to the JSON property `autoscalingTargetHighPriorityCpuUtilizationPercent`
|
115
|
+
# @return [Fixnum]
|
116
|
+
attr_accessor :autoscaling_target_high_priority_cpu_utilization_percent
|
117
|
+
|
118
|
+
def initialize(**args)
|
119
|
+
update!(**args)
|
120
|
+
end
|
121
|
+
|
122
|
+
# Update properties of this object
|
123
|
+
def update!(**args)
|
124
|
+
@autoscaling_limits = args[:autoscaling_limits] if args.key?(:autoscaling_limits)
|
125
|
+
@autoscaling_target_high_priority_cpu_utilization_percent = args[:autoscaling_target_high_priority_cpu_utilization_percent] if args.key?(:autoscaling_target_high_priority_cpu_utilization_percent)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
# The autoscaling limits for the instance. Users can define the minimum and
|
130
|
+
# maximum compute capacity allocated to the instance, and the autoscaler will
|
131
|
+
# only scale within that range. Users can either use nodes or processing units
|
132
|
+
# to specify the limits, but should use the same unit to set both the min_limit
|
133
|
+
# and max_limit.
|
134
|
+
class AutoscalingLimits
|
135
|
+
include Google::Apis::Core::Hashable
|
136
|
+
|
137
|
+
# Maximum number of nodes allocated to the instance. If set, this number should
|
138
|
+
# be greater than or equal to min_nodes.
|
139
|
+
# Corresponds to the JSON property `maxNodes`
|
140
|
+
# @return [Fixnum]
|
141
|
+
attr_accessor :max_nodes
|
142
|
+
|
143
|
+
# Maximum number of processing units allocated to the instance. If set, this
|
144
|
+
# number should be multiples of 1000 and be greater than or equal to
|
145
|
+
# min_processing_units.
|
146
|
+
# Corresponds to the JSON property `maxProcessingUnits`
|
147
|
+
# @return [Fixnum]
|
148
|
+
attr_accessor :max_processing_units
|
149
|
+
|
150
|
+
# Minimum number of nodes allocated to the instance. If set, this number should
|
151
|
+
# be greater than or equal to 1.
|
152
|
+
# Corresponds to the JSON property `minNodes`
|
153
|
+
# @return [Fixnum]
|
154
|
+
attr_accessor :min_nodes
|
155
|
+
|
156
|
+
# Minimum number of processing units allocated to the instance. If set, this
|
157
|
+
# number should be multiples of 1000.
|
158
|
+
# Corresponds to the JSON property `minProcessingUnits`
|
159
|
+
# @return [Fixnum]
|
160
|
+
attr_accessor :min_processing_units
|
161
|
+
|
162
|
+
def initialize(**args)
|
163
|
+
update!(**args)
|
164
|
+
end
|
165
|
+
|
166
|
+
# Update properties of this object
|
167
|
+
def update!(**args)
|
168
|
+
@max_nodes = args[:max_nodes] if args.key?(:max_nodes)
|
169
|
+
@max_processing_units = args[:max_processing_units] if args.key?(:max_processing_units)
|
170
|
+
@min_nodes = args[:min_nodes] if args.key?(:min_nodes)
|
171
|
+
@min_processing_units = args[:min_processing_units] if args.key?(:min_processing_units)
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
# The autoscaling targets for an instance.
|
176
|
+
class AutoscalingTargets
|
177
|
+
include Google::Apis::Core::Hashable
|
178
|
+
|
179
|
+
# Required. The target high priority cpu utilization percentage that the
|
180
|
+
# autoscaler should be trying to achieve for the instance. This number is on a
|
181
|
+
# scale from 0 (no utilization) to 100 (full utilization). The valid range is [
|
182
|
+
# 10, 90] inclusive.
|
183
|
+
# Corresponds to the JSON property `highPriorityCpuUtilizationPercent`
|
184
|
+
# @return [Fixnum]
|
185
|
+
attr_accessor :high_priority_cpu_utilization_percent
|
186
|
+
|
187
|
+
# Required. The target storage utilization percentage that the autoscaler should
|
188
|
+
# be trying to achieve for the instance. This number is on a scale from 0 (no
|
189
|
+
# utilization) to 100 (full utilization). The valid range is [10, 99] inclusive.
|
190
|
+
# Corresponds to the JSON property `storageUtilizationPercent`
|
191
|
+
# @return [Fixnum]
|
192
|
+
attr_accessor :storage_utilization_percent
|
193
|
+
|
194
|
+
def initialize(**args)
|
195
|
+
update!(**args)
|
196
|
+
end
|
197
|
+
|
198
|
+
# Update properties of this object
|
199
|
+
def update!(**args)
|
200
|
+
@high_priority_cpu_utilization_percent = args[:high_priority_cpu_utilization_percent] if args.key?(:high_priority_cpu_utilization_percent)
|
201
|
+
@storage_utilization_percent = args[:storage_utilization_percent] if args.key?(:storage_utilization_percent)
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
25
205
|
# A backup of a Cloud Spanner database.
|
26
206
|
class Backup
|
27
207
|
include Google::Apis::Core::Hashable
|
28
208
|
|
209
|
+
# Output only. List of backup schedule URIs that are associated with creating
|
210
|
+
# this backup. This is only applicable for scheduled backups, and is empty for
|
211
|
+
# on-demand backups. To optimize for storage, whenever possible, multiple
|
212
|
+
# schedules are collapsed together to create one backup. In such cases, this
|
213
|
+
# field captures the list of all backup schedule URIs that are associated with
|
214
|
+
# creating this backup. If collapsing is not done, then this field captures the
|
215
|
+
# single backup schedule URI associated with creating this backup.
|
216
|
+
# Corresponds to the JSON property `backupSchedules`
|
217
|
+
# @return [Array<String>]
|
218
|
+
attr_accessor :backup_schedules
|
219
|
+
|
29
220
|
# Output only. The time the CreateBackup request is received. If the request
|
30
221
|
# does not specify `version_time`, the `version_time` of the backup will be
|
31
222
|
# equivalent to the `create_time`.
|
@@ -50,6 +241,27 @@ module Google
|
|
50
241
|
# @return [Google::Apis::SpannerV1::EncryptionInfo]
|
51
242
|
attr_accessor :encryption_info
|
52
243
|
|
244
|
+
# Output only. The encryption information for the backup, whether it is
|
245
|
+
# protected by one or more KMS keys. The information includes all Cloud KMS key
|
246
|
+
# versions used to encrypt the backup. The `encryption_status` field inside of
|
247
|
+
# each `EncryptionInfo` is not populated. At least one of the key versions must
|
248
|
+
# be available for the backup to be restored. If a key version is revoked in the
|
249
|
+
# middle of a restore, the restore behavior is undefined.
|
250
|
+
# Corresponds to the JSON property `encryptionInformation`
|
251
|
+
# @return [Array<Google::Apis::SpannerV1::EncryptionInfo>]
|
252
|
+
attr_accessor :encryption_information
|
253
|
+
|
254
|
+
# Output only. For a backup in an incremental backup chain, this is the storage
|
255
|
+
# space needed to keep the data that has changed since the previous backup. For
|
256
|
+
# all other backups, this is always the size of the backup. This value may
|
257
|
+
# change if backups on the same chain get deleted or expired. This field can be
|
258
|
+
# used to calculate the total storage space used by a set of backups. For
|
259
|
+
# example, the total space used by all backups of a database can be computed by
|
260
|
+
# summing up this field.
|
261
|
+
# Corresponds to the JSON property `exclusiveSizeBytes`
|
262
|
+
# @return [Fixnum]
|
263
|
+
attr_accessor :exclusive_size_bytes
|
264
|
+
|
53
265
|
# Required for the CreateBackup operation. The expiration time of the backup,
|
54
266
|
# with microseconds granularity that must be at least 6 hours and at most 366
|
55
267
|
# days from the time the CreateBackup request is processed. Once the `
|
@@ -59,6 +271,25 @@ module Google
|
|
59
271
|
# @return [String]
|
60
272
|
attr_accessor :expire_time
|
61
273
|
|
274
|
+
# Output only. The number of bytes that will be freed by deleting this backup.
|
275
|
+
# This value will be zero if, for example, this backup is part of an incremental
|
276
|
+
# backup chain and younger backups in the chain require that we keep its data.
|
277
|
+
# For backups not in an incremental backup chain, this is always the size of the
|
278
|
+
# backup. This value may change if backups on the same chain get created,
|
279
|
+
# deleted or expired.
|
280
|
+
# Corresponds to the JSON property `freeableSizeBytes`
|
281
|
+
# @return [Fixnum]
|
282
|
+
attr_accessor :freeable_size_bytes
|
283
|
+
|
284
|
+
# Output only. Populated only for backups in an incremental backup chain.
|
285
|
+
# Backups share the same chain id if and only if they belong to the same
|
286
|
+
# incremental backup chain. Use this field to determine which backups are part
|
287
|
+
# of the same incremental backup chain. The ordering of backups in the chain can
|
288
|
+
# be determined by ordering the backup `version_time`.
|
289
|
+
# Corresponds to the JSON property `incrementalBackupChainId`
|
290
|
+
# @return [String]
|
291
|
+
attr_accessor :incremental_backup_chain_id
|
292
|
+
|
62
293
|
# Output only. The max allowed expiration time of the backup, with microseconds
|
63
294
|
# granularity. A backup's expiration time can be configured in multiple APIs:
|
64
295
|
# CreateBackup, UpdateBackup, CopyBackup. When updating or copying an existing
|
@@ -79,6 +310,16 @@ module Google
|
|
79
310
|
# @return [String]
|
80
311
|
attr_accessor :name
|
81
312
|
|
313
|
+
# Output only. Data deleted at a time older than this is guaranteed not to be
|
314
|
+
# retained in order to support this backup. For a backup in an incremental
|
315
|
+
# backup chain, this is the version time of the oldest backup that exists or
|
316
|
+
# ever existed in the chain. For all other backups, this is the version time of
|
317
|
+
# the backup. This field can be used to understand what data is being retained
|
318
|
+
# by the backup system.
|
319
|
+
# Corresponds to the JSON property `oldestVersionTime`
|
320
|
+
# @return [String]
|
321
|
+
attr_accessor :oldest_version_time
|
322
|
+
|
82
323
|
# Output only. The names of the destination backups being created by copying
|
83
324
|
# this source backup. The backup names are of the form `projects//instances//
|
84
325
|
# backups/`. Referencing backups may exist in different instances. The existence
|
@@ -99,7 +340,9 @@ module Google
|
|
99
340
|
# @return [Array<String>]
|
100
341
|
attr_accessor :referencing_databases
|
101
342
|
|
102
|
-
# Output only. Size of the backup in bytes.
|
343
|
+
# Output only. Size of the backup in bytes. For a backup in an incremental
|
344
|
+
# backup chain, this is the sum of the `exclusive_size_bytes` of itself and all
|
345
|
+
# older backups in the chain.
|
103
346
|
# Corresponds to the JSON property `sizeBytes`
|
104
347
|
# @return [Fixnum]
|
105
348
|
attr_accessor :size_bytes
|
@@ -122,13 +365,19 @@ module Google
|
|
122
365
|
|
123
366
|
# Update properties of this object
|
124
367
|
def update!(**args)
|
368
|
+
@backup_schedules = args[:backup_schedules] if args.key?(:backup_schedules)
|
125
369
|
@create_time = args[:create_time] if args.key?(:create_time)
|
126
370
|
@database = args[:database] if args.key?(:database)
|
127
371
|
@database_dialect = args[:database_dialect] if args.key?(:database_dialect)
|
128
372
|
@encryption_info = args[:encryption_info] if args.key?(:encryption_info)
|
373
|
+
@encryption_information = args[:encryption_information] if args.key?(:encryption_information)
|
374
|
+
@exclusive_size_bytes = args[:exclusive_size_bytes] if args.key?(:exclusive_size_bytes)
|
129
375
|
@expire_time = args[:expire_time] if args.key?(:expire_time)
|
376
|
+
@freeable_size_bytes = args[:freeable_size_bytes] if args.key?(:freeable_size_bytes)
|
377
|
+
@incremental_backup_chain_id = args[:incremental_backup_chain_id] if args.key?(:incremental_backup_chain_id)
|
130
378
|
@max_expire_time = args[:max_expire_time] if args.key?(:max_expire_time)
|
131
379
|
@name = args[:name] if args.key?(:name)
|
380
|
+
@oldest_version_time = args[:oldest_version_time] if args.key?(:oldest_version_time)
|
132
381
|
@referencing_backups = args[:referencing_backups] if args.key?(:referencing_backups)
|
133
382
|
@referencing_databases = args[:referencing_databases] if args.key?(:referencing_databases)
|
134
383
|
@size_bytes = args[:size_bytes] if args.key?(:size_bytes)
|
@@ -177,6 +426,95 @@ module Google
|
|
177
426
|
end
|
178
427
|
end
|
179
428
|
|
429
|
+
# BackupSchedule expresses the automated backup creation specification for a
|
430
|
+
# Spanner database.
|
431
|
+
class BackupSchedule
|
432
|
+
include Google::Apis::Core::Hashable
|
433
|
+
|
434
|
+
# Encryption configuration for the backup to create.
|
435
|
+
# Corresponds to the JSON property `encryptionConfig`
|
436
|
+
# @return [Google::Apis::SpannerV1::CreateBackupEncryptionConfig]
|
437
|
+
attr_accessor :encryption_config
|
438
|
+
|
439
|
+
# The specification for full backups. A full backup stores the entire contents
|
440
|
+
# of the database at a given version time.
|
441
|
+
# Corresponds to the JSON property `fullBackupSpec`
|
442
|
+
# @return [Google::Apis::SpannerV1::FullBackupSpec]
|
443
|
+
attr_accessor :full_backup_spec
|
444
|
+
|
445
|
+
# The specification for incremental backup chains. An incremental backup stores
|
446
|
+
# the delta of changes between a previous backup and the database contents at a
|
447
|
+
# given version time. An incremental backup chain consists of a full backup and
|
448
|
+
# zero or more successive incremental backups. The first backup created for an
|
449
|
+
# incremental backup chain is always a full backup.
|
450
|
+
# Corresponds to the JSON property `incrementalBackupSpec`
|
451
|
+
# @return [Google::Apis::SpannerV1::IncrementalBackupSpec]
|
452
|
+
attr_accessor :incremental_backup_spec
|
453
|
+
|
454
|
+
# Identifier. Output only for the CreateBackupSchedule operation. Required for
|
455
|
+
# the UpdateBackupSchedule operation. A globally unique identifier for the
|
456
|
+
# backup schedule which cannot be changed. Values are of the form `projects//
|
457
|
+
# instances//databases//backupSchedules/a-z*[a-z0-9]` The final segment of the
|
458
|
+
# name must be between 2 and 60 characters in length.
|
459
|
+
# Corresponds to the JSON property `name`
|
460
|
+
# @return [String]
|
461
|
+
attr_accessor :name
|
462
|
+
|
463
|
+
# Optional. The retention duration of a backup that must be at least 6 hours and
|
464
|
+
# at most 366 days. The backup is eligible to be automatically deleted once the
|
465
|
+
# retention period has elapsed.
|
466
|
+
# Corresponds to the JSON property `retentionDuration`
|
467
|
+
# @return [String]
|
468
|
+
attr_accessor :retention_duration
|
469
|
+
|
470
|
+
# Defines specifications of the backup schedule.
|
471
|
+
# Corresponds to the JSON property `spec`
|
472
|
+
# @return [Google::Apis::SpannerV1::BackupScheduleSpec]
|
473
|
+
attr_accessor :spec
|
474
|
+
|
475
|
+
# Output only. The timestamp at which the schedule was last updated. If the
|
476
|
+
# schedule has never been updated, this field contains the timestamp when the
|
477
|
+
# schedule was first created.
|
478
|
+
# Corresponds to the JSON property `updateTime`
|
479
|
+
# @return [String]
|
480
|
+
attr_accessor :update_time
|
481
|
+
|
482
|
+
def initialize(**args)
|
483
|
+
update!(**args)
|
484
|
+
end
|
485
|
+
|
486
|
+
# Update properties of this object
|
487
|
+
def update!(**args)
|
488
|
+
@encryption_config = args[:encryption_config] if args.key?(:encryption_config)
|
489
|
+
@full_backup_spec = args[:full_backup_spec] if args.key?(:full_backup_spec)
|
490
|
+
@incremental_backup_spec = args[:incremental_backup_spec] if args.key?(:incremental_backup_spec)
|
491
|
+
@name = args[:name] if args.key?(:name)
|
492
|
+
@retention_duration = args[:retention_duration] if args.key?(:retention_duration)
|
493
|
+
@spec = args[:spec] if args.key?(:spec)
|
494
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
495
|
+
end
|
496
|
+
end
|
497
|
+
|
498
|
+
# Defines specifications of the backup schedule.
|
499
|
+
class BackupScheduleSpec
|
500
|
+
include Google::Apis::Core::Hashable
|
501
|
+
|
502
|
+
# CrontabSpec can be used to specify the version time and frequency at which the
|
503
|
+
# backup should be created.
|
504
|
+
# Corresponds to the JSON property `cronSpec`
|
505
|
+
# @return [Google::Apis::SpannerV1::CrontabSpec]
|
506
|
+
attr_accessor :cron_spec
|
507
|
+
|
508
|
+
def initialize(**args)
|
509
|
+
update!(**args)
|
510
|
+
end
|
511
|
+
|
512
|
+
# Update properties of this object
|
513
|
+
def update!(**args)
|
514
|
+
@cron_spec = args[:cron_spec] if args.key?(:cron_spec)
|
515
|
+
end
|
516
|
+
end
|
517
|
+
|
180
518
|
# The request for BatchCreateSessions.
|
181
519
|
class BatchCreateSessionsRequest
|
182
520
|
include Google::Apis::Core::Hashable
|
@@ -224,10 +562,95 @@ module Google
|
|
224
562
|
end
|
225
563
|
end
|
226
564
|
|
565
|
+
# The request for BatchWrite.
|
566
|
+
class BatchWriteRequest
|
567
|
+
include Google::Apis::Core::Hashable
|
568
|
+
|
569
|
+
# Optional. When `exclude_txn_from_change_streams` is set to `true`: *
|
570
|
+
# Modifications from all transactions in this batch write operation will not be
|
571
|
+
# recorded in change streams with DDL option `allow_txn_exclusion=true` that are
|
572
|
+
# tracking columns modified by these transactions. * Modifications from all
|
573
|
+
# transactions in this batch write operation will be recorded in change streams
|
574
|
+
# with DDL option `allow_txn_exclusion=false or not set` that are tracking
|
575
|
+
# columns modified by these transactions. When `exclude_txn_from_change_streams`
|
576
|
+
# is set to `false` or not set, Modifications from all transactions in this
|
577
|
+
# batch write operation will be recorded in all change streams that are tracking
|
578
|
+
# columns modified by these transactions.
|
579
|
+
# Corresponds to the JSON property `excludeTxnFromChangeStreams`
|
580
|
+
# @return [Boolean]
|
581
|
+
attr_accessor :exclude_txn_from_change_streams
|
582
|
+
alias_method :exclude_txn_from_change_streams?, :exclude_txn_from_change_streams
|
583
|
+
|
584
|
+
# Required. The groups of mutations to be applied.
|
585
|
+
# Corresponds to the JSON property `mutationGroups`
|
586
|
+
# @return [Array<Google::Apis::SpannerV1::MutationGroup>]
|
587
|
+
attr_accessor :mutation_groups
|
588
|
+
|
589
|
+
# Common request options for various APIs.
|
590
|
+
# Corresponds to the JSON property `requestOptions`
|
591
|
+
# @return [Google::Apis::SpannerV1::RequestOptions]
|
592
|
+
attr_accessor :request_options
|
593
|
+
|
594
|
+
def initialize(**args)
|
595
|
+
update!(**args)
|
596
|
+
end
|
597
|
+
|
598
|
+
# Update properties of this object
|
599
|
+
def update!(**args)
|
600
|
+
@exclude_txn_from_change_streams = args[:exclude_txn_from_change_streams] if args.key?(:exclude_txn_from_change_streams)
|
601
|
+
@mutation_groups = args[:mutation_groups] if args.key?(:mutation_groups)
|
602
|
+
@request_options = args[:request_options] if args.key?(:request_options)
|
603
|
+
end
|
604
|
+
end
|
605
|
+
|
606
|
+
# The result of applying a batch of mutations.
|
607
|
+
class BatchWriteResponse
|
608
|
+
include Google::Apis::Core::Hashable
|
609
|
+
|
610
|
+
# The commit timestamp of the transaction that applied this batch. Present if `
|
611
|
+
# status` is `OK`, absent otherwise.
|
612
|
+
# Corresponds to the JSON property `commitTimestamp`
|
613
|
+
# @return [String]
|
614
|
+
attr_accessor :commit_timestamp
|
615
|
+
|
616
|
+
# The mutation groups applied in this batch. The values index into the `
|
617
|
+
# mutation_groups` field in the corresponding `BatchWriteRequest`.
|
618
|
+
# Corresponds to the JSON property `indexes`
|
619
|
+
# @return [Array<Fixnum>]
|
620
|
+
attr_accessor :indexes
|
621
|
+
|
622
|
+
# The `Status` type defines a logical error model that is suitable for different
|
623
|
+
# programming environments, including REST APIs and RPC APIs. It is used by [
|
624
|
+
# gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
|
625
|
+
# data: error code, error message, and error details. You can find out more
|
626
|
+
# about this error model and how to work with it in the [API Design Guide](https:
|
627
|
+
# //cloud.google.com/apis/design/errors).
|
628
|
+
# Corresponds to the JSON property `status`
|
629
|
+
# @return [Google::Apis::SpannerV1::Status]
|
630
|
+
attr_accessor :status
|
631
|
+
|
632
|
+
def initialize(**args)
|
633
|
+
update!(**args)
|
634
|
+
end
|
635
|
+
|
636
|
+
# Update properties of this object
|
637
|
+
def update!(**args)
|
638
|
+
@commit_timestamp = args[:commit_timestamp] if args.key?(:commit_timestamp)
|
639
|
+
@indexes = args[:indexes] if args.key?(:indexes)
|
640
|
+
@status = args[:status] if args.key?(:status)
|
641
|
+
end
|
642
|
+
end
|
643
|
+
|
227
644
|
# The request for BeginTransaction.
|
228
645
|
class BeginTransactionRequest
|
229
646
|
include Google::Apis::Core::Hashable
|
230
647
|
|
648
|
+
# A modification to one or more Cloud Spanner rows. Mutations can be applied to
|
649
|
+
# a Cloud Spanner database by sending them in a Commit call.
|
650
|
+
# Corresponds to the JSON property `mutationKey`
|
651
|
+
# @return [Google::Apis::SpannerV1::Mutation]
|
652
|
+
attr_accessor :mutation_key
|
653
|
+
|
231
654
|
# Transactions: Each session can have at most one active transaction at a time (
|
232
655
|
# note that standalone reads and queries use a transaction internally and do
|
233
656
|
# count towards the one transaction limit). After the active transaction is
|
@@ -244,7 +667,7 @@ module Google
|
|
244
667
|
# such that the read is guaranteed to see the effects of all transactions that
|
245
668
|
# have committed before the start of the read). Snapshot read-only transactions
|
246
669
|
# do not need to be committed. Queries on change streams must be performed with
|
247
|
-
# the snapshot read-only transaction mode, specifying a strong read.
|
670
|
+
# the snapshot read-only transaction mode, specifying a strong read. See
|
248
671
|
# TransactionOptions.ReadOnly.strong for more details. 3. Partitioned DML. This
|
249
672
|
# type of transaction is used to execute a single Partitioned DML statement.
|
250
673
|
# Partitioned DML partitions the key space and runs the DML statement over each
|
@@ -280,87 +703,92 @@ module Google
|
|
280
703
|
# committing the retry, the client should execute the retry in the same session
|
281
704
|
# as the original attempt. The original session's lock priority increases with
|
282
705
|
# each consecutive abort, meaning that each attempt has a slightly better chance
|
283
|
-
# of success than the previous.
|
284
|
-
#
|
285
|
-
#
|
286
|
-
#
|
287
|
-
#
|
288
|
-
#
|
289
|
-
#
|
290
|
-
#
|
291
|
-
#
|
292
|
-
#
|
293
|
-
#
|
294
|
-
#
|
295
|
-
#
|
296
|
-
#
|
297
|
-
# transaction
|
298
|
-
#
|
299
|
-
#
|
300
|
-
#
|
301
|
-
#
|
302
|
-
#
|
303
|
-
#
|
304
|
-
#
|
305
|
-
#
|
306
|
-
#
|
307
|
-
#
|
308
|
-
#
|
309
|
-
#
|
310
|
-
# transactions
|
311
|
-
#
|
312
|
-
# timestamp bound
|
313
|
-
#
|
314
|
-
#
|
315
|
-
#
|
316
|
-
#
|
317
|
-
#
|
318
|
-
#
|
319
|
-
#
|
320
|
-
#
|
321
|
-
#
|
322
|
-
#
|
323
|
-
#
|
324
|
-
#
|
325
|
-
#
|
326
|
-
#
|
327
|
-
#
|
328
|
-
#
|
329
|
-
#
|
330
|
-
#
|
331
|
-
#
|
332
|
-
#
|
333
|
-
#
|
334
|
-
#
|
335
|
-
#
|
336
|
-
#
|
337
|
-
#
|
338
|
-
#
|
339
|
-
#
|
340
|
-
#
|
341
|
-
#
|
342
|
-
#
|
343
|
-
#
|
344
|
-
#
|
345
|
-
#
|
346
|
-
#
|
347
|
-
#
|
348
|
-
#
|
349
|
-
#
|
350
|
-
#
|
351
|
-
#
|
352
|
-
#
|
353
|
-
#
|
354
|
-
#
|
355
|
-
#
|
356
|
-
#
|
357
|
-
#
|
358
|
-
#
|
359
|
-
#
|
360
|
-
#
|
361
|
-
#
|
362
|
-
#
|
363
|
-
#
|
706
|
+
# of success than the previous. Note that the lock priority is preserved per
|
707
|
+
# session (not per transaction). Lock priority is set by the first read or write
|
708
|
+
# in the first attempt of a read-write transaction. If the application starts a
|
709
|
+
# new session to retry the whole transaction, the transaction loses its original
|
710
|
+
# lock priority. Moreover, the lock priority is only preserved if the
|
711
|
+
# transaction fails with an `ABORTED` error. Under some circumstances (for
|
712
|
+
# example, many transactions attempting to modify the same row(s)), a
|
713
|
+
# transaction can abort many times in a short period before successfully
|
714
|
+
# committing. Thus, it is not a good idea to cap the number of retries a
|
715
|
+
# transaction can attempt; instead, it is better to limit the total amount of
|
716
|
+
# time spent retrying. Idle transactions: A transaction is considered idle if it
|
717
|
+
# has no outstanding reads or SQL queries and has not started a read or SQL
|
718
|
+
# query within the last 10 seconds. Idle transactions can be aborted by Cloud
|
719
|
+
# Spanner so that they don't hold on to locks indefinitely. If an idle
|
720
|
+
# transaction is aborted, the commit will fail with error `ABORTED`. If this
|
721
|
+
# behavior is undesirable, periodically executing a simple SQL query in the
|
722
|
+
# transaction (for example, `SELECT 1`) prevents the transaction from becoming
|
723
|
+
# idle. Snapshot read-only transactions: Snapshot read-only transactions
|
724
|
+
# provides a simpler method than locking read-write transactions for doing
|
725
|
+
# several consistent reads. However, this type of transaction does not support
|
726
|
+
# writes. Snapshot transactions do not take locks. Instead, they work by
|
727
|
+
# choosing a Cloud Spanner timestamp, then executing all reads at that timestamp.
|
728
|
+
# Since they do not acquire locks, they do not block concurrent read-write
|
729
|
+
# transactions. Unlike locking read-write transactions, snapshot read-only
|
730
|
+
# transactions never abort. They can fail if the chosen read timestamp is
|
731
|
+
# garbage collected; however, the default garbage collection policy is generous
|
732
|
+
# enough that most applications do not need to worry about this in practice.
|
733
|
+
# Snapshot read-only transactions do not need to call Commit or Rollback (and in
|
734
|
+
# fact are not permitted to do so). To execute a snapshot transaction, the
|
735
|
+
# client specifies a timestamp bound, which tells Cloud Spanner how to choose a
|
736
|
+
# read timestamp. The types of timestamp bound are: - Strong (the default). -
|
737
|
+
# Bounded staleness. - Exact staleness. If the Cloud Spanner database to be read
|
738
|
+
# is geographically distributed, stale read-only transactions can execute more
|
739
|
+
# quickly than strong or read-write transactions, because they are able to
|
740
|
+
# execute far from the leader replica. Each type of timestamp bound is discussed
|
741
|
+
# in detail below. Strong: Strong reads are guaranteed to see the effects of all
|
742
|
+
# transactions that have committed before the start of the read. Furthermore,
|
743
|
+
# all rows yielded by a single read are consistent with each other -- if any
|
744
|
+
# part of the read observes a transaction, all parts of the read see the
|
745
|
+
# transaction. Strong reads are not repeatable: two consecutive strong read-only
|
746
|
+
# transactions might return inconsistent results if there are concurrent writes.
|
747
|
+
# If consistency across reads is required, the reads should be executed within a
|
748
|
+
# transaction or at an exact read timestamp. Queries on change streams (see
|
749
|
+
# below for more details) must also specify the strong read timestamp bound. See
|
750
|
+
# TransactionOptions.ReadOnly.strong. Exact staleness: These timestamp bounds
|
751
|
+
# execute reads at a user-specified timestamp. Reads at a timestamp are
|
752
|
+
# guaranteed to see a consistent prefix of the global transaction history: they
|
753
|
+
# observe modifications done by all transactions with a commit timestamp less
|
754
|
+
# than or equal to the read timestamp, and observe none of the modifications
|
755
|
+
# done by transactions with a larger commit timestamp. They will block until all
|
756
|
+
# conflicting transactions that may be assigned commit timestamps <= the read
|
757
|
+
# timestamp have finished. The timestamp can either be expressed as an absolute
|
758
|
+
# Cloud Spanner commit timestamp or a staleness relative to the current time.
|
759
|
+
# These modes do not require a "negotiation phase" to pick a timestamp. As a
|
760
|
+
# result, they execute slightly faster than the equivalent boundedly stale
|
761
|
+
# concurrency modes. On the other hand, boundedly stale reads usually return
|
762
|
+
# fresher results. See TransactionOptions.ReadOnly.read_timestamp and
|
763
|
+
# TransactionOptions.ReadOnly.exact_staleness. Bounded staleness: Bounded
|
764
|
+
# staleness modes allow Cloud Spanner to pick the read timestamp, subject to a
|
765
|
+
# user-provided staleness bound. Cloud Spanner chooses the newest timestamp
|
766
|
+
# within the staleness bound that allows execution of the reads at the closest
|
767
|
+
# available replica without blocking. All rows yielded are consistent with each
|
768
|
+
# other -- if any part of the read observes a transaction, all parts of the read
|
769
|
+
# see the transaction. Boundedly stale reads are not repeatable: two stale reads,
|
770
|
+
# even if they use the same staleness bound, can execute at different
|
771
|
+
# timestamps and thus return inconsistent results. Boundedly stale reads execute
|
772
|
+
# in two phases: the first phase negotiates a timestamp among all replicas
|
773
|
+
# needed to serve the read. In the second phase, reads are executed at the
|
774
|
+
# negotiated timestamp. As a result of the two phase execution, bounded
|
775
|
+
# staleness reads are usually a little slower than comparable exact staleness
|
776
|
+
# reads. However, they are typically able to return fresher results, and are
|
777
|
+
# more likely to execute at the closest replica. Because the timestamp
|
778
|
+
# negotiation requires up-front knowledge of which rows will be read, it can
|
779
|
+
# only be used with single-use read-only transactions. See TransactionOptions.
|
780
|
+
# ReadOnly.max_staleness and TransactionOptions.ReadOnly.min_read_timestamp. Old
|
781
|
+
# read timestamps and garbage collection: Cloud Spanner continuously garbage
|
782
|
+
# collects deleted and overwritten data in the background to reclaim storage
|
783
|
+
# space. This process is known as "version GC". By default, version GC reclaims
|
784
|
+
# versions after they are one hour old. Because of this, Cloud Spanner cannot
|
785
|
+
# perform reads at read timestamps more than one hour in the past. This
|
786
|
+
# restriction also applies to in-progress reads and/or SQL queries whose
|
787
|
+
# timestamp become too old while executing. Reads and SQL queries with too-old
|
788
|
+
# read timestamps fail with the error `FAILED_PRECONDITION`. You can configure
|
789
|
+
# and extend the `VERSION_RETENTION_PERIOD` of a database up to a period as long
|
790
|
+
# as one week, which allows Cloud Spanner to perform reads up to one week in the
|
791
|
+
# past. Querying change Streams: A Change Stream is a schema object that can be
|
364
792
|
# configured to watch data changes on the entire database, a set of tables, or a
|
365
793
|
# set of columns in a database. When a change stream is created, Spanner
|
366
794
|
# automatically defines a corresponding SQL Table-Valued Function (TVF) that can
|
@@ -396,12 +824,12 @@ module Google
|
|
396
824
|
# of the table. Rather, the statement is applied atomically to partitions of the
|
397
825
|
# table, in independent transactions. Secondary index rows are updated
|
398
826
|
# atomically with the base table rows. - Partitioned DML does not guarantee
|
399
|
-
# exactly-once execution semantics against a partition. The statement
|
400
|
-
#
|
401
|
-
#
|
402
|
-
#
|
403
|
-
# column
|
404
|
-
#
|
827
|
+
# exactly-once execution semantics against a partition. The statement is applied
|
828
|
+
# at least once to each partition. It is strongly recommended that the DML
|
829
|
+
# statement should be idempotent to avoid unexpected results. For instance, it
|
830
|
+
# is potentially dangerous to run a statement such as `UPDATE table SET column =
|
831
|
+
# column + 1` as it could be run multiple times against some rows. - The
|
832
|
+
# partitions are committed automatically - there is no support for Commit or
|
405
833
|
# Rollback. If the call returns an error, or if the client issuing the
|
406
834
|
# ExecuteSql call dies, it is possible that some rows had the statement executed
|
407
835
|
# on them successfully. It is also possible that statement was never executed
|
@@ -430,6 +858,7 @@ module Google
|
|
430
858
|
|
431
859
|
# Update properties of this object
|
432
860
|
def update!(**args)
|
861
|
+
@mutation_key = args[:mutation_key] if args.key?(:mutation_key)
|
433
862
|
@options = args[:options] if args.key?(:options)
|
434
863
|
@request_options = args[:request_options] if args.key?(:request_options)
|
435
864
|
end
|
@@ -462,37 +891,64 @@ module Google
|
|
462
891
|
# members` can have the following values: * `allUsers`: A special identifier
|
463
892
|
# that represents anyone who is on the internet; with or without a Google
|
464
893
|
# account. * `allAuthenticatedUsers`: A special identifier that represents
|
465
|
-
# anyone who is authenticated with a Google account or a service account.
|
466
|
-
#
|
467
|
-
#
|
468
|
-
#
|
469
|
-
#
|
470
|
-
#
|
471
|
-
#
|
472
|
-
#
|
473
|
-
# .
|
474
|
-
#
|
475
|
-
# email address
|
476
|
-
#
|
477
|
-
#
|
478
|
-
#
|
479
|
-
#
|
480
|
-
#
|
481
|
-
#
|
482
|
-
#
|
483
|
-
#
|
484
|
-
#
|
485
|
-
#
|
486
|
-
#
|
487
|
-
#
|
488
|
-
#
|
489
|
-
#
|
894
|
+
# anyone who is authenticated with a Google account or a service account. Does
|
895
|
+
# not include identities that come from external identity providers (IdPs)
|
896
|
+
# through identity federation. * `user:`emailid``: An email address that
|
897
|
+
# represents a specific Google account. For example, `alice@example.com` . * `
|
898
|
+
# serviceAccount:`emailid``: An email address that represents a Google service
|
899
|
+
# account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
|
900
|
+
# serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
|
901
|
+
# identifier for a [Kubernetes service account](https://cloud.google.com/
|
902
|
+
# kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
|
903
|
+
# project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
|
904
|
+
# email address that represents a Google group. For example, `admins@example.com`
|
905
|
+
# . * `domain:`domain``: The G Suite domain (primary) that represents all the
|
906
|
+
# users of that domain. For example, `google.com` or `example.com`. * `principal:
|
907
|
+
# //iam.googleapis.com/locations/global/workforcePools/`pool_id`/subject/`
|
908
|
+
# subject_attribute_value``: A single identity in a workforce identity pool. * `
|
909
|
+
# principalSet://iam.googleapis.com/locations/global/workforcePools/`pool_id`/
|
910
|
+
# group/`group_id``: All workforce identities in a group. * `principalSet://iam.
|
911
|
+
# googleapis.com/locations/global/workforcePools/`pool_id`/attribute.`
|
912
|
+
# attribute_name`/`attribute_value``: All workforce identities with a specific
|
913
|
+
# attribute value. * `principalSet://iam.googleapis.com/locations/global/
|
914
|
+
# workforcePools/`pool_id`/*`: All identities in a workforce identity pool. * `
|
915
|
+
# principal://iam.googleapis.com/projects/`project_number`/locations/global/
|
916
|
+
# workloadIdentityPools/`pool_id`/subject/`subject_attribute_value``: A single
|
917
|
+
# identity in a workload identity pool. * `principalSet://iam.googleapis.com/
|
918
|
+
# projects/`project_number`/locations/global/workloadIdentityPools/`pool_id`/
|
919
|
+
# group/`group_id``: A workload identity pool group. * `principalSet://iam.
|
920
|
+
# googleapis.com/projects/`project_number`/locations/global/
|
921
|
+
# workloadIdentityPools/`pool_id`/attribute.`attribute_name`/`attribute_value``:
|
922
|
+
# All identities in a workload identity pool with a certain attribute. * `
|
923
|
+
# principalSet://iam.googleapis.com/projects/`project_number`/locations/global/
|
924
|
+
# workloadIdentityPools/`pool_id`/*`: All identities in a workload identity pool.
|
925
|
+
# * `deleted:user:`emailid`?uid=`uniqueid``: An email address (plus unique
|
926
|
+
# identifier) representing a user that has been recently deleted. For example, `
|
927
|
+
# alice@example.com?uid=123456789012345678901`. If the user is recovered, this
|
928
|
+
# value reverts to `user:`emailid`` and the recovered user retains the role in
|
929
|
+
# the binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email
|
930
|
+
# address (plus unique identifier) representing a service account that has been
|
931
|
+
# recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
|
932
|
+
# 123456789012345678901`. If the service account is undeleted, this value
|
933
|
+
# reverts to `serviceAccount:`emailid`` and the undeleted service account
|
934
|
+
# retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
|
935
|
+
# An email address (plus unique identifier) representing a Google group that has
|
936
|
+
# been recently deleted. For example, `admins@example.com?uid=
|
937
|
+
# 123456789012345678901`. If the group is recovered, this value reverts to `
|
938
|
+
# group:`emailid`` and the recovered group retains the role in the binding. * `
|
939
|
+
# deleted:principal://iam.googleapis.com/locations/global/workforcePools/`
|
940
|
+
# pool_id`/subject/`subject_attribute_value``: Deleted single identity in a
|
941
|
+
# workforce identity pool. For example, `deleted:principal://iam.googleapis.com/
|
942
|
+
# locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.
|
490
943
|
# Corresponds to the JSON property `members`
|
491
944
|
# @return [Array<String>]
|
492
945
|
attr_accessor :members
|
493
946
|
|
494
947
|
# Role that is assigned to the list of `members`, or principals. For example, `
|
495
|
-
# roles/viewer`, `roles/editor`, or `roles/owner`.
|
948
|
+
# roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM
|
949
|
+
# roles and permissions, see the [IAM documentation](https://cloud.google.com/
|
950
|
+
# iam/docs/roles-overview). For a list of the available pre-defined roles, see [
|
951
|
+
# here](https://cloud.google.com/iam/docs/understanding-roles).
|
496
952
|
# Corresponds to the JSON property `role`
|
497
953
|
# @return [String]
|
498
954
|
attr_accessor :role
|
@@ -509,6 +965,74 @@ module Google
|
|
509
965
|
end
|
510
966
|
end
|
511
967
|
|
968
|
+
# Metadata type for the long-running operation returned by ChangeQuorum.
|
969
|
+
class ChangeQuorumMetadata
|
970
|
+
include Google::Apis::Core::Hashable
|
971
|
+
|
972
|
+
# If set, the time at which this operation failed or was completed successfully.
|
973
|
+
# Corresponds to the JSON property `endTime`
|
974
|
+
# @return [String]
|
975
|
+
attr_accessor :end_time
|
976
|
+
|
977
|
+
# The request for ChangeQuorum.
|
978
|
+
# Corresponds to the JSON property `request`
|
979
|
+
# @return [Google::Apis::SpannerV1::ChangeQuorumRequest]
|
980
|
+
attr_accessor :request
|
981
|
+
|
982
|
+
# Time the request was received.
|
983
|
+
# Corresponds to the JSON property `startTime`
|
984
|
+
# @return [String]
|
985
|
+
attr_accessor :start_time
|
986
|
+
|
987
|
+
def initialize(**args)
|
988
|
+
update!(**args)
|
989
|
+
end
|
990
|
+
|
991
|
+
# Update properties of this object
|
992
|
+
def update!(**args)
|
993
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
994
|
+
@request = args[:request] if args.key?(:request)
|
995
|
+
@start_time = args[:start_time] if args.key?(:start_time)
|
996
|
+
end
|
997
|
+
end
|
998
|
+
|
999
|
+
# The request for ChangeQuorum.
|
1000
|
+
class ChangeQuorumRequest
|
1001
|
+
include Google::Apis::Core::Hashable
|
1002
|
+
|
1003
|
+
# Optional. The etag is the hash of the `QuorumInfo`. The `ChangeQuorum`
|
1004
|
+
# operation is only performed if the etag matches that of the `QuorumInfo` in
|
1005
|
+
# the current database resource. Otherwise the API returns an `ABORTED` error.
|
1006
|
+
# The etag is used for optimistic concurrency control as a way to help prevent
|
1007
|
+
# simultaneous change quorum requests that could create a race condition.
|
1008
|
+
# Corresponds to the JSON property `etag`
|
1009
|
+
# @return [String]
|
1010
|
+
attr_accessor :etag
|
1011
|
+
|
1012
|
+
# Required. Name of the database in which to apply `ChangeQuorum`. Values are of
|
1013
|
+
# the form `projects//instances//databases/`.
|
1014
|
+
# Corresponds to the JSON property `name`
|
1015
|
+
# @return [String]
|
1016
|
+
attr_accessor :name
|
1017
|
+
|
1018
|
+
# Information about the database quorum type. This only applies to dual-region
|
1019
|
+
# instance configs.
|
1020
|
+
# Corresponds to the JSON property `quorumType`
|
1021
|
+
# @return [Google::Apis::SpannerV1::QuorumType]
|
1022
|
+
attr_accessor :quorum_type
|
1023
|
+
|
1024
|
+
def initialize(**args)
|
1025
|
+
update!(**args)
|
1026
|
+
end
|
1027
|
+
|
1028
|
+
# Update properties of this object
|
1029
|
+
def update!(**args)
|
1030
|
+
@etag = args[:etag] if args.key?(:etag)
|
1031
|
+
@name = args[:name] if args.key?(:name)
|
1032
|
+
@quorum_type = args[:quorum_type] if args.key?(:quorum_type)
|
1033
|
+
end
|
1034
|
+
end
|
1035
|
+
|
512
1036
|
# Metadata associated with a parent-child relationship appearing in a PlanNode.
|
513
1037
|
class ChildLink
|
514
1038
|
include Google::Apis::Core::Hashable
|
@@ -552,12 +1076,28 @@ module Google
|
|
552
1076
|
class CommitRequest
|
553
1077
|
include Google::Apis::Core::Hashable
|
554
1078
|
|
1079
|
+
# Optional. The amount of latency this request is configured to incur in order
|
1080
|
+
# to improve throughput. If this field is not set, Spanner assumes requests are
|
1081
|
+
# relatively latency sensitive and automatically determines an appropriate delay
|
1082
|
+
# time. You can specify a commit delay value between 0 and 500 ms.
|
1083
|
+
# Corresponds to the JSON property `maxCommitDelay`
|
1084
|
+
# @return [String]
|
1085
|
+
attr_accessor :max_commit_delay
|
1086
|
+
|
555
1087
|
# The mutations to be executed when this transaction commits. All mutations are
|
556
1088
|
# applied atomically, in the order they appear in this list.
|
557
1089
|
# Corresponds to the JSON property `mutations`
|
558
1090
|
# @return [Array<Google::Apis::SpannerV1::Mutation>]
|
559
1091
|
attr_accessor :mutations
|
560
1092
|
|
1093
|
+
# When a read-write transaction is executed on a multiplexed session, this
|
1094
|
+
# precommit token is sent back to the client as a part of the [Transaction]
|
1095
|
+
# message in the BeginTransaction response and also as a part of the [ResultSet]
|
1096
|
+
# and [PartialResultSet] responses.
|
1097
|
+
# Corresponds to the JSON property `precommitToken`
|
1098
|
+
# @return [Google::Apis::SpannerV1::MultiplexedSessionPrecommitToken]
|
1099
|
+
attr_accessor :precommit_token
|
1100
|
+
|
561
1101
|
# Common request options for various APIs.
|
562
1102
|
# Corresponds to the JSON property `requestOptions`
|
563
1103
|
# @return [Google::Apis::SpannerV1::RequestOptions]
|
@@ -586,7 +1126,7 @@ module Google
|
|
586
1126
|
# such that the read is guaranteed to see the effects of all transactions that
|
587
1127
|
# have committed before the start of the read). Snapshot read-only transactions
|
588
1128
|
# do not need to be committed. Queries on change streams must be performed with
|
589
|
-
# the snapshot read-only transaction mode, specifying a strong read.
|
1129
|
+
# the snapshot read-only transaction mode, specifying a strong read. See
|
590
1130
|
# TransactionOptions.ReadOnly.strong for more details. 3. Partitioned DML. This
|
591
1131
|
# type of transaction is used to execute a single Partitioned DML statement.
|
592
1132
|
# Partitioned DML partitions the key space and runs the DML statement over each
|
@@ -622,87 +1162,92 @@ module Google
|
|
622
1162
|
# committing the retry, the client should execute the retry in the same session
|
623
1163
|
# as the original attempt. The original session's lock priority increases with
|
624
1164
|
# each consecutive abort, meaning that each attempt has a slightly better chance
|
625
|
-
# of success than the previous.
|
626
|
-
#
|
627
|
-
#
|
628
|
-
#
|
629
|
-
#
|
630
|
-
#
|
631
|
-
#
|
632
|
-
#
|
633
|
-
#
|
634
|
-
#
|
635
|
-
#
|
636
|
-
#
|
637
|
-
#
|
638
|
-
#
|
639
|
-
# transaction
|
640
|
-
#
|
641
|
-
#
|
642
|
-
#
|
643
|
-
#
|
644
|
-
#
|
645
|
-
#
|
646
|
-
#
|
647
|
-
#
|
648
|
-
#
|
649
|
-
#
|
650
|
-
#
|
651
|
-
#
|
652
|
-
# transactions
|
653
|
-
#
|
654
|
-
# timestamp bound
|
655
|
-
#
|
656
|
-
#
|
657
|
-
#
|
658
|
-
#
|
659
|
-
#
|
660
|
-
#
|
661
|
-
#
|
662
|
-
#
|
663
|
-
#
|
664
|
-
#
|
665
|
-
#
|
666
|
-
#
|
667
|
-
#
|
668
|
-
#
|
669
|
-
#
|
670
|
-
#
|
671
|
-
#
|
672
|
-
#
|
673
|
-
#
|
674
|
-
#
|
675
|
-
#
|
676
|
-
#
|
677
|
-
#
|
678
|
-
#
|
679
|
-
#
|
680
|
-
#
|
681
|
-
#
|
682
|
-
#
|
683
|
-
#
|
684
|
-
#
|
685
|
-
#
|
686
|
-
#
|
687
|
-
#
|
688
|
-
#
|
689
|
-
#
|
690
|
-
#
|
691
|
-
#
|
692
|
-
#
|
693
|
-
#
|
694
|
-
#
|
695
|
-
#
|
696
|
-
#
|
697
|
-
#
|
698
|
-
#
|
699
|
-
#
|
700
|
-
#
|
701
|
-
#
|
702
|
-
#
|
703
|
-
#
|
704
|
-
#
|
705
|
-
#
|
1165
|
+
# of success than the previous. Note that the lock priority is preserved per
|
1166
|
+
# session (not per transaction). Lock priority is set by the first read or write
|
1167
|
+
# in the first attempt of a read-write transaction. If the application starts a
|
1168
|
+
# new session to retry the whole transaction, the transaction loses its original
|
1169
|
+
# lock priority. Moreover, the lock priority is only preserved if the
|
1170
|
+
# transaction fails with an `ABORTED` error. Under some circumstances (for
|
1171
|
+
# example, many transactions attempting to modify the same row(s)), a
|
1172
|
+
# transaction can abort many times in a short period before successfully
|
1173
|
+
# committing. Thus, it is not a good idea to cap the number of retries a
|
1174
|
+
# transaction can attempt; instead, it is better to limit the total amount of
|
1175
|
+
# time spent retrying. Idle transactions: A transaction is considered idle if it
|
1176
|
+
# has no outstanding reads or SQL queries and has not started a read or SQL
|
1177
|
+
# query within the last 10 seconds. Idle transactions can be aborted by Cloud
|
1178
|
+
# Spanner so that they don't hold on to locks indefinitely. If an idle
|
1179
|
+
# transaction is aborted, the commit will fail with error `ABORTED`. If this
|
1180
|
+
# behavior is undesirable, periodically executing a simple SQL query in the
|
1181
|
+
# transaction (for example, `SELECT 1`) prevents the transaction from becoming
|
1182
|
+
# idle. Snapshot read-only transactions: Snapshot read-only transactions
|
1183
|
+
# provides a simpler method than locking read-write transactions for doing
|
1184
|
+
# several consistent reads. However, this type of transaction does not support
|
1185
|
+
# writes. Snapshot transactions do not take locks. Instead, they work by
|
1186
|
+
# choosing a Cloud Spanner timestamp, then executing all reads at that timestamp.
|
1187
|
+
# Since they do not acquire locks, they do not block concurrent read-write
|
1188
|
+
# transactions. Unlike locking read-write transactions, snapshot read-only
|
1189
|
+
# transactions never abort. They can fail if the chosen read timestamp is
|
1190
|
+
# garbage collected; however, the default garbage collection policy is generous
|
1191
|
+
# enough that most applications do not need to worry about this in practice.
|
1192
|
+
# Snapshot read-only transactions do not need to call Commit or Rollback (and in
|
1193
|
+
# fact are not permitted to do so). To execute a snapshot transaction, the
|
1194
|
+
# client specifies a timestamp bound, which tells Cloud Spanner how to choose a
|
1195
|
+
# read timestamp. The types of timestamp bound are: - Strong (the default). -
|
1196
|
+
# Bounded staleness. - Exact staleness. If the Cloud Spanner database to be read
|
1197
|
+
# is geographically distributed, stale read-only transactions can execute more
|
1198
|
+
# quickly than strong or read-write transactions, because they are able to
|
1199
|
+
# execute far from the leader replica. Each type of timestamp bound is discussed
|
1200
|
+
# in detail below. Strong: Strong reads are guaranteed to see the effects of all
|
1201
|
+
# transactions that have committed before the start of the read. Furthermore,
|
1202
|
+
# all rows yielded by a single read are consistent with each other -- if any
|
1203
|
+
# part of the read observes a transaction, all parts of the read see the
|
1204
|
+
# transaction. Strong reads are not repeatable: two consecutive strong read-only
|
1205
|
+
# transactions might return inconsistent results if there are concurrent writes.
|
1206
|
+
# If consistency across reads is required, the reads should be executed within a
|
1207
|
+
# transaction or at an exact read timestamp. Queries on change streams (see
|
1208
|
+
# below for more details) must also specify the strong read timestamp bound. See
|
1209
|
+
# TransactionOptions.ReadOnly.strong. Exact staleness: These timestamp bounds
|
1210
|
+
# execute reads at a user-specified timestamp. Reads at a timestamp are
|
1211
|
+
# guaranteed to see a consistent prefix of the global transaction history: they
|
1212
|
+
# observe modifications done by all transactions with a commit timestamp less
|
1213
|
+
# than or equal to the read timestamp, and observe none of the modifications
|
1214
|
+
# done by transactions with a larger commit timestamp. They will block until all
|
1215
|
+
# conflicting transactions that may be assigned commit timestamps <= the read
|
1216
|
+
# timestamp have finished. The timestamp can either be expressed as an absolute
|
1217
|
+
# Cloud Spanner commit timestamp or a staleness relative to the current time.
|
1218
|
+
# These modes do not require a "negotiation phase" to pick a timestamp. As a
|
1219
|
+
# result, they execute slightly faster than the equivalent boundedly stale
|
1220
|
+
# concurrency modes. On the other hand, boundedly stale reads usually return
|
1221
|
+
# fresher results. See TransactionOptions.ReadOnly.read_timestamp and
|
1222
|
+
# TransactionOptions.ReadOnly.exact_staleness. Bounded staleness: Bounded
|
1223
|
+
# staleness modes allow Cloud Spanner to pick the read timestamp, subject to a
|
1224
|
+
# user-provided staleness bound. Cloud Spanner chooses the newest timestamp
|
1225
|
+
# within the staleness bound that allows execution of the reads at the closest
|
1226
|
+
# available replica without blocking. All rows yielded are consistent with each
|
1227
|
+
# other -- if any part of the read observes a transaction, all parts of the read
|
1228
|
+
# see the transaction. Boundedly stale reads are not repeatable: two stale reads,
|
1229
|
+
# even if they use the same staleness bound, can execute at different
|
1230
|
+
# timestamps and thus return inconsistent results. Boundedly stale reads execute
|
1231
|
+
# in two phases: the first phase negotiates a timestamp among all replicas
|
1232
|
+
# needed to serve the read. In the second phase, reads are executed at the
|
1233
|
+
# negotiated timestamp. As a result of the two phase execution, bounded
|
1234
|
+
# staleness reads are usually a little slower than comparable exact staleness
|
1235
|
+
# reads. However, they are typically able to return fresher results, and are
|
1236
|
+
# more likely to execute at the closest replica. Because the timestamp
|
1237
|
+
# negotiation requires up-front knowledge of which rows will be read, it can
|
1238
|
+
# only be used with single-use read-only transactions. See TransactionOptions.
|
1239
|
+
# ReadOnly.max_staleness and TransactionOptions.ReadOnly.min_read_timestamp. Old
|
1240
|
+
# read timestamps and garbage collection: Cloud Spanner continuously garbage
|
1241
|
+
# collects deleted and overwritten data in the background to reclaim storage
|
1242
|
+
# space. This process is known as "version GC". By default, version GC reclaims
|
1243
|
+
# versions after they are one hour old. Because of this, Cloud Spanner cannot
|
1244
|
+
# perform reads at read timestamps more than one hour in the past. This
|
1245
|
+
# restriction also applies to in-progress reads and/or SQL queries whose
|
1246
|
+
# timestamp become too old while executing. Reads and SQL queries with too-old
|
1247
|
+
# read timestamps fail with the error `FAILED_PRECONDITION`. You can configure
|
1248
|
+
# and extend the `VERSION_RETENTION_PERIOD` of a database up to a period as long
|
1249
|
+
# as one week, which allows Cloud Spanner to perform reads up to one week in the
|
1250
|
+
# past. Querying change Streams: A Change Stream is a schema object that can be
|
706
1251
|
# configured to watch data changes on the entire database, a set of tables, or a
|
707
1252
|
# set of columns in a database. When a change stream is created, Spanner
|
708
1253
|
# automatically defines a corresponding SQL Table-Valued Function (TVF) that can
|
@@ -738,12 +1283,12 @@ module Google
|
|
738
1283
|
# of the table. Rather, the statement is applied atomically to partitions of the
|
739
1284
|
# table, in independent transactions. Secondary index rows are updated
|
740
1285
|
# atomically with the base table rows. - Partitioned DML does not guarantee
|
741
|
-
# exactly-once execution semantics against a partition. The statement
|
742
|
-
#
|
743
|
-
#
|
744
|
-
#
|
745
|
-
# column
|
746
|
-
#
|
1286
|
+
# exactly-once execution semantics against a partition. The statement is applied
|
1287
|
+
# at least once to each partition. It is strongly recommended that the DML
|
1288
|
+
# statement should be idempotent to avoid unexpected results. For instance, it
|
1289
|
+
# is potentially dangerous to run a statement such as `UPDATE table SET column =
|
1290
|
+
# column + 1` as it could be run multiple times against some rows. - The
|
1291
|
+
# partitions are committed automatically - there is no support for Commit or
|
747
1292
|
# Rollback. If the call returns an error, or if the client issuing the
|
748
1293
|
# ExecuteSql call dies, it is possible that some rows had the statement executed
|
749
1294
|
# on them successfully. It is also possible that statement was never executed
|
@@ -773,7 +1318,9 @@ module Google
|
|
773
1318
|
|
774
1319
|
# Update properties of this object
|
775
1320
|
def update!(**args)
|
1321
|
+
@max_commit_delay = args[:max_commit_delay] if args.key?(:max_commit_delay)
|
776
1322
|
@mutations = args[:mutations] if args.key?(:mutations)
|
1323
|
+
@precommit_token = args[:precommit_token] if args.key?(:precommit_token)
|
777
1324
|
@request_options = args[:request_options] if args.key?(:request_options)
|
778
1325
|
@return_commit_stats = args[:return_commit_stats] if args.key?(:return_commit_stats)
|
779
1326
|
@single_use_transaction = args[:single_use_transaction] if args.key?(:single_use_transaction)
|
@@ -795,6 +1342,14 @@ module Google
|
|
795
1342
|
# @return [String]
|
796
1343
|
attr_accessor :commit_timestamp
|
797
1344
|
|
1345
|
+
# When a read-write transaction is executed on a multiplexed session, this
|
1346
|
+
# precommit token is sent back to the client as a part of the [Transaction]
|
1347
|
+
# message in the BeginTransaction response and also as a part of the [ResultSet]
|
1348
|
+
# and [PartialResultSet] responses.
|
1349
|
+
# Corresponds to the JSON property `precommitToken`
|
1350
|
+
# @return [Google::Apis::SpannerV1::MultiplexedSessionPrecommitToken]
|
1351
|
+
attr_accessor :precommit_token
|
1352
|
+
|
798
1353
|
def initialize(**args)
|
799
1354
|
update!(**args)
|
800
1355
|
end
|
@@ -803,6 +1358,7 @@ module Google
|
|
803
1358
|
def update!(**args)
|
804
1359
|
@commit_stats = args[:commit_stats] if args.key?(:commit_stats)
|
805
1360
|
@commit_timestamp = args[:commit_timestamp] if args.key?(:commit_timestamp)
|
1361
|
+
@precommit_token = args[:precommit_token] if args.key?(:precommit_token)
|
806
1362
|
end
|
807
1363
|
end
|
808
1364
|
|
@@ -887,6 +1443,22 @@ module Google
|
|
887
1443
|
# @return [String]
|
888
1444
|
attr_accessor :kms_key_name
|
889
1445
|
|
1446
|
+
# Optional. Specifies the KMS configuration for the one or more keys used to
|
1447
|
+
# protect the backup. Values are of the form `projects//locations//keyRings//
|
1448
|
+
# cryptoKeys/`. KMS keys specified can be in any order. The keys referenced by `
|
1449
|
+
# kms_key_names` must fully cover all regions of the backup's instance
|
1450
|
+
# configuration. Some examples: * For regional (single-region) instance
|
1451
|
+
# configurations, specify a regional location KMS key. * For multi-region
|
1452
|
+
# instance configurations of type `GOOGLE_MANAGED`, either specify a multi-
|
1453
|
+
# region location KMS key or multiple regional location KMS keys that cover all
|
1454
|
+
# regions in the instance configuration. * For an instance configuration of type
|
1455
|
+
# `USER_MANAGED`, specify only regional location KMS keys to cover each region
|
1456
|
+
# in the instance configuration. Multi-region location KMS keys aren't supported
|
1457
|
+
# for `USER_MANAGED` type instance configurations.
|
1458
|
+
# Corresponds to the JSON property `kmsKeyNames`
|
1459
|
+
# @return [Array<String>]
|
1460
|
+
attr_accessor :kms_key_names
|
1461
|
+
|
890
1462
|
def initialize(**args)
|
891
1463
|
update!(**args)
|
892
1464
|
end
|
@@ -895,6 +1467,7 @@ module Google
|
|
895
1467
|
def update!(**args)
|
896
1468
|
@encryption_type = args[:encryption_type] if args.key?(:encryption_type)
|
897
1469
|
@kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
|
1470
|
+
@kms_key_names = args[:kms_key_names] if args.key?(:kms_key_names)
|
898
1471
|
end
|
899
1472
|
end
|
900
1473
|
|
@@ -990,6 +1563,49 @@ module Google
|
|
990
1563
|
end
|
991
1564
|
end
|
992
1565
|
|
1566
|
+
# Encryption configuration for the backup to create.
|
1567
|
+
class CreateBackupEncryptionConfig
|
1568
|
+
include Google::Apis::Core::Hashable
|
1569
|
+
|
1570
|
+
# Required. The encryption type of the backup.
|
1571
|
+
# Corresponds to the JSON property `encryptionType`
|
1572
|
+
# @return [String]
|
1573
|
+
attr_accessor :encryption_type
|
1574
|
+
|
1575
|
+
# Optional. The Cloud KMS key that will be used to protect the backup. This
|
1576
|
+
# field should be set only when encryption_type is `CUSTOMER_MANAGED_ENCRYPTION`.
|
1577
|
+
# Values are of the form `projects//locations//keyRings//cryptoKeys/`.
|
1578
|
+
# Corresponds to the JSON property `kmsKeyName`
|
1579
|
+
# @return [String]
|
1580
|
+
attr_accessor :kms_key_name
|
1581
|
+
|
1582
|
+
# Optional. Specifies the KMS configuration for the one or more keys used to
|
1583
|
+
# protect the backup. Values are of the form `projects//locations//keyRings//
|
1584
|
+
# cryptoKeys/`. The keys referenced by `kms_key_names` must fully cover all
|
1585
|
+
# regions of the backup's instance configuration. Some examples: * For regional (
|
1586
|
+
# single-region) instance configurations, specify a regional location KMS key. *
|
1587
|
+
# For multi-region instance configurations of type `GOOGLE_MANAGED`, either
|
1588
|
+
# specify a multi-region location KMS key or multiple regional location KMS keys
|
1589
|
+
# that cover all regions in the instance configuration. * For an instance
|
1590
|
+
# configuration of type `USER_MANAGED`, specify only regional location KMS keys
|
1591
|
+
# to cover each region in the instance configuration. Multi-region location KMS
|
1592
|
+
# keys aren't supported for `USER_MANAGED` type instance configurations.
|
1593
|
+
# Corresponds to the JSON property `kmsKeyNames`
|
1594
|
+
# @return [Array<String>]
|
1595
|
+
attr_accessor :kms_key_names
|
1596
|
+
|
1597
|
+
def initialize(**args)
|
1598
|
+
update!(**args)
|
1599
|
+
end
|
1600
|
+
|
1601
|
+
# Update properties of this object
|
1602
|
+
def update!(**args)
|
1603
|
+
@encryption_type = args[:encryption_type] if args.key?(:encryption_type)
|
1604
|
+
@kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
|
1605
|
+
@kms_key_names = args[:kms_key_names] if args.key?(:kms_key_names)
|
1606
|
+
end
|
1607
|
+
end
|
1608
|
+
|
993
1609
|
# Metadata type for the operation returned by CreateBackup.
|
994
1610
|
class CreateBackupMetadata
|
995
1611
|
include Google::Apis::Core::Hashable
|
@@ -1085,6 +1701,21 @@ module Google
|
|
1085
1701
|
# @return [Array<String>]
|
1086
1702
|
attr_accessor :extra_statements
|
1087
1703
|
|
1704
|
+
# Optional. Proto descriptors used by `CREATE/ALTER PROTO BUNDLE` statements in '
|
1705
|
+
# extra_statements'. Contains a protobuf-serialized [`google.protobuf.
|
1706
|
+
# FileDescriptorSet`](https://github.com/protocolbuffers/protobuf/blob/main/src/
|
1707
|
+
# google/protobuf/descriptor.proto) descriptor set. To generate it, [install](
|
1708
|
+
# https://grpc.io/docs/protoc-installation/) and run `protoc` with --
|
1709
|
+
# include_imports and --descriptor_set_out. For example, to generate for moon/
|
1710
|
+
# shot/app.proto, run ``` $protoc --proto_path=/app_path --proto_path=/lib_path \
|
1711
|
+
# --include_imports \ --descriptor_set_out=descriptors.data \ moon/shot/app.
|
1712
|
+
# proto ``` For more details, see protobuffer [self description](https://
|
1713
|
+
# developers.google.com/protocol-buffers/docs/techniques#self-description).
|
1714
|
+
# Corresponds to the JSON property `protoDescriptors`
|
1715
|
+
# NOTE: Values are automatically base64 encoded/decoded in the client library.
|
1716
|
+
# @return [String]
|
1717
|
+
attr_accessor :proto_descriptors
|
1718
|
+
|
1088
1719
|
def initialize(**args)
|
1089
1720
|
update!(**args)
|
1090
1721
|
end
|
@@ -1095,11 +1726,82 @@ module Google
|
|
1095
1726
|
@database_dialect = args[:database_dialect] if args.key?(:database_dialect)
|
1096
1727
|
@encryption_config = args[:encryption_config] if args.key?(:encryption_config)
|
1097
1728
|
@extra_statements = args[:extra_statements] if args.key?(:extra_statements)
|
1729
|
+
@proto_descriptors = args[:proto_descriptors] if args.key?(:proto_descriptors)
|
1098
1730
|
end
|
1099
1731
|
end
|
1100
1732
|
|
1101
|
-
# Metadata type for the operation returned by
|
1102
|
-
class
|
1733
|
+
# Metadata type for the operation returned by CreateInstanceConfig.
|
1734
|
+
class CreateInstanceConfigMetadata
|
1735
|
+
include Google::Apis::Core::Hashable
|
1736
|
+
|
1737
|
+
# The time at which this operation was cancelled.
|
1738
|
+
# Corresponds to the JSON property `cancelTime`
|
1739
|
+
# @return [String]
|
1740
|
+
attr_accessor :cancel_time
|
1741
|
+
|
1742
|
+
# A possible configuration for a Cloud Spanner instance. Configurations define
|
1743
|
+
# the geographic placement of nodes and their replication.
|
1744
|
+
# Corresponds to the JSON property `instanceConfig`
|
1745
|
+
# @return [Google::Apis::SpannerV1::InstanceConfig]
|
1746
|
+
attr_accessor :instance_config
|
1747
|
+
|
1748
|
+
# Encapsulates progress related information for a Cloud Spanner long running
|
1749
|
+
# instance operations.
|
1750
|
+
# Corresponds to the JSON property `progress`
|
1751
|
+
# @return [Google::Apis::SpannerV1::InstanceOperationProgress]
|
1752
|
+
attr_accessor :progress
|
1753
|
+
|
1754
|
+
def initialize(**args)
|
1755
|
+
update!(**args)
|
1756
|
+
end
|
1757
|
+
|
1758
|
+
# Update properties of this object
|
1759
|
+
def update!(**args)
|
1760
|
+
@cancel_time = args[:cancel_time] if args.key?(:cancel_time)
|
1761
|
+
@instance_config = args[:instance_config] if args.key?(:instance_config)
|
1762
|
+
@progress = args[:progress] if args.key?(:progress)
|
1763
|
+
end
|
1764
|
+
end
|
1765
|
+
|
1766
|
+
# The request for CreateInstanceConfig.
|
1767
|
+
class CreateInstanceConfigRequest
|
1768
|
+
include Google::Apis::Core::Hashable
|
1769
|
+
|
1770
|
+
# A possible configuration for a Cloud Spanner instance. Configurations define
|
1771
|
+
# the geographic placement of nodes and their replication.
|
1772
|
+
# Corresponds to the JSON property `instanceConfig`
|
1773
|
+
# @return [Google::Apis::SpannerV1::InstanceConfig]
|
1774
|
+
attr_accessor :instance_config
|
1775
|
+
|
1776
|
+
# Required. The ID of the instance configuration to create. Valid identifiers
|
1777
|
+
# are of the form `custom-[-a-z0-9]*[a-z0-9]` and must be between 2 and 64
|
1778
|
+
# characters in length. The `custom-` prefix is required to avoid name conflicts
|
1779
|
+
# with Google-managed configurations.
|
1780
|
+
# Corresponds to the JSON property `instanceConfigId`
|
1781
|
+
# @return [String]
|
1782
|
+
attr_accessor :instance_config_id
|
1783
|
+
|
1784
|
+
# An option to validate, but not actually execute, a request, and provide the
|
1785
|
+
# same response.
|
1786
|
+
# Corresponds to the JSON property `validateOnly`
|
1787
|
+
# @return [Boolean]
|
1788
|
+
attr_accessor :validate_only
|
1789
|
+
alias_method :validate_only?, :validate_only
|
1790
|
+
|
1791
|
+
def initialize(**args)
|
1792
|
+
update!(**args)
|
1793
|
+
end
|
1794
|
+
|
1795
|
+
# Update properties of this object
|
1796
|
+
def update!(**args)
|
1797
|
+
@instance_config = args[:instance_config] if args.key?(:instance_config)
|
1798
|
+
@instance_config_id = args[:instance_config_id] if args.key?(:instance_config_id)
|
1799
|
+
@validate_only = args[:validate_only] if args.key?(:validate_only)
|
1800
|
+
end
|
1801
|
+
end
|
1802
|
+
|
1803
|
+
# Metadata type for the operation returned by CreateInstance.
|
1804
|
+
class CreateInstanceMetadata
|
1103
1805
|
include Google::Apis::Core::Hashable
|
1104
1806
|
|
1105
1807
|
# The time at which this operation was cancelled. If set, this operation is in
|
@@ -1114,6 +1816,11 @@ module Google
|
|
1114
1816
|
# @return [String]
|
1115
1817
|
attr_accessor :end_time
|
1116
1818
|
|
1819
|
+
# The expected fulfillment period of this create operation.
|
1820
|
+
# Corresponds to the JSON property `expectedFulfillmentPeriod`
|
1821
|
+
# @return [String]
|
1822
|
+
attr_accessor :expected_fulfillment_period
|
1823
|
+
|
1117
1824
|
# An isolated set of Cloud Spanner resources on which databases can be hosted.
|
1118
1825
|
# Corresponds to the JSON property `instance`
|
1119
1826
|
# @return [Google::Apis::SpannerV1::Instance]
|
@@ -1132,11 +1839,79 @@ module Google
|
|
1132
1839
|
def update!(**args)
|
1133
1840
|
@cancel_time = args[:cancel_time] if args.key?(:cancel_time)
|
1134
1841
|
@end_time = args[:end_time] if args.key?(:end_time)
|
1842
|
+
@expected_fulfillment_period = args[:expected_fulfillment_period] if args.key?(:expected_fulfillment_period)
|
1135
1843
|
@instance = args[:instance] if args.key?(:instance)
|
1136
1844
|
@start_time = args[:start_time] if args.key?(:start_time)
|
1137
1845
|
end
|
1138
1846
|
end
|
1139
1847
|
|
1848
|
+
# Metadata type for the operation returned by CreateInstancePartition.
|
1849
|
+
class CreateInstancePartitionMetadata
|
1850
|
+
include Google::Apis::Core::Hashable
|
1851
|
+
|
1852
|
+
# The time at which this operation was cancelled. If set, this operation is in
|
1853
|
+
# the process of undoing itself (which is guaranteed to succeed) and cannot be
|
1854
|
+
# cancelled again.
|
1855
|
+
# Corresponds to the JSON property `cancelTime`
|
1856
|
+
# @return [String]
|
1857
|
+
attr_accessor :cancel_time
|
1858
|
+
|
1859
|
+
# The time at which this operation failed or was completed successfully.
|
1860
|
+
# Corresponds to the JSON property `endTime`
|
1861
|
+
# @return [String]
|
1862
|
+
attr_accessor :end_time
|
1863
|
+
|
1864
|
+
# An isolated set of Cloud Spanner resources that databases can define
|
1865
|
+
# placements on.
|
1866
|
+
# Corresponds to the JSON property `instancePartition`
|
1867
|
+
# @return [Google::Apis::SpannerV1::InstancePartition]
|
1868
|
+
attr_accessor :instance_partition
|
1869
|
+
|
1870
|
+
# The time at which the CreateInstancePartition request was received.
|
1871
|
+
# Corresponds to the JSON property `startTime`
|
1872
|
+
# @return [String]
|
1873
|
+
attr_accessor :start_time
|
1874
|
+
|
1875
|
+
def initialize(**args)
|
1876
|
+
update!(**args)
|
1877
|
+
end
|
1878
|
+
|
1879
|
+
# Update properties of this object
|
1880
|
+
def update!(**args)
|
1881
|
+
@cancel_time = args[:cancel_time] if args.key?(:cancel_time)
|
1882
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
1883
|
+
@instance_partition = args[:instance_partition] if args.key?(:instance_partition)
|
1884
|
+
@start_time = args[:start_time] if args.key?(:start_time)
|
1885
|
+
end
|
1886
|
+
end
|
1887
|
+
|
1888
|
+
# The request for CreateInstancePartition.
|
1889
|
+
class CreateInstancePartitionRequest
|
1890
|
+
include Google::Apis::Core::Hashable
|
1891
|
+
|
1892
|
+
# An isolated set of Cloud Spanner resources that databases can define
|
1893
|
+
# placements on.
|
1894
|
+
# Corresponds to the JSON property `instancePartition`
|
1895
|
+
# @return [Google::Apis::SpannerV1::InstancePartition]
|
1896
|
+
attr_accessor :instance_partition
|
1897
|
+
|
1898
|
+
# Required. The ID of the instance partition to create. Valid identifiers are of
|
1899
|
+
# the form `a-z*[a-z0-9]` and must be between 2 and 64 characters in length.
|
1900
|
+
# Corresponds to the JSON property `instancePartitionId`
|
1901
|
+
# @return [String]
|
1902
|
+
attr_accessor :instance_partition_id
|
1903
|
+
|
1904
|
+
def initialize(**args)
|
1905
|
+
update!(**args)
|
1906
|
+
end
|
1907
|
+
|
1908
|
+
# Update properties of this object
|
1909
|
+
def update!(**args)
|
1910
|
+
@instance_partition = args[:instance_partition] if args.key?(:instance_partition)
|
1911
|
+
@instance_partition_id = args[:instance_partition_id] if args.key?(:instance_partition_id)
|
1912
|
+
end
|
1913
|
+
end
|
1914
|
+
|
1140
1915
|
# The request for CreateInstance.
|
1141
1916
|
class CreateInstanceRequest
|
1142
1917
|
include Google::Apis::Core::Hashable
|
@@ -1182,6 +1957,53 @@ module Google
|
|
1182
1957
|
end
|
1183
1958
|
end
|
1184
1959
|
|
1960
|
+
# CrontabSpec can be used to specify the version time and frequency at which the
|
1961
|
+
# backup should be created.
|
1962
|
+
class CrontabSpec
|
1963
|
+
include Google::Apis::Core::Hashable
|
1964
|
+
|
1965
|
+
# Output only. Schedule backups will contain an externally consistent copy of
|
1966
|
+
# the database at the version time specified in `schedule_spec.cron_spec`.
|
1967
|
+
# However, Spanner may not initiate the creation of the scheduled backups at
|
1968
|
+
# that version time. Spanner will initiate the creation of scheduled backups
|
1969
|
+
# within the time window bounded by the version_time specified in `schedule_spec.
|
1970
|
+
# cron_spec` and version_time + `creation_window`.
|
1971
|
+
# Corresponds to the JSON property `creationWindow`
|
1972
|
+
# @return [String]
|
1973
|
+
attr_accessor :creation_window
|
1974
|
+
|
1975
|
+
# Required. Textual representation of the crontab. User can customize the backup
|
1976
|
+
# frequency and the backup version time using the cron expression. The version
|
1977
|
+
# time must be in UTC timzeone. The backup will contain an externally consistent
|
1978
|
+
# copy of the database at the version time. Allowed frequencies are 12 hour, 1
|
1979
|
+
# day, 1 week and 1 month. Examples of valid cron specifications: * `0 2/12 * * *
|
1980
|
+
# ` : every 12 hours at (2, 14) hours past midnight in UTC. * `0 2,14 * * * ` :
|
1981
|
+
# every 12 hours at (2,14) hours past midnight in UTC. * `0 2 * * * ` : once a
|
1982
|
+
# day at 2 past midnight in UTC. * `0 2 * * 0 ` : once a week every Sunday at 2
|
1983
|
+
# past midnight in UTC. * `0 2 8 * * ` : once a month on 8th day at 2 past
|
1984
|
+
# midnight in UTC.
|
1985
|
+
# Corresponds to the JSON property `text`
|
1986
|
+
# @return [String]
|
1987
|
+
attr_accessor :text
|
1988
|
+
|
1989
|
+
# Output only. The time zone of the times in `CrontabSpec.text`. Currently only
|
1990
|
+
# UTC is supported.
|
1991
|
+
# Corresponds to the JSON property `timeZone`
|
1992
|
+
# @return [String]
|
1993
|
+
attr_accessor :time_zone
|
1994
|
+
|
1995
|
+
def initialize(**args)
|
1996
|
+
update!(**args)
|
1997
|
+
end
|
1998
|
+
|
1999
|
+
# Update properties of this object
|
2000
|
+
def update!(**args)
|
2001
|
+
@creation_window = args[:creation_window] if args.key?(:creation_window)
|
2002
|
+
@text = args[:text] if args.key?(:text)
|
2003
|
+
@time_zone = args[:time_zone] if args.key?(:time_zone)
|
2004
|
+
end
|
2005
|
+
end
|
2006
|
+
|
1185
2007
|
# A Cloud Spanner database.
|
1186
2008
|
class Database
|
1187
2009
|
include Google::Apis::Core::Hashable
|
@@ -1213,6 +2035,15 @@ module Google
|
|
1213
2035
|
# @return [String]
|
1214
2036
|
attr_accessor :earliest_version_time
|
1215
2037
|
|
2038
|
+
# Optional. Whether drop protection is enabled for this database. Defaults to
|
2039
|
+
# false, if not set. For more details, please see how to [prevent accidental
|
2040
|
+
# database deletion](https://cloud.google.com/spanner/docs/prevent-database-
|
2041
|
+
# deletion).
|
2042
|
+
# Corresponds to the JSON property `enableDropProtection`
|
2043
|
+
# @return [Boolean]
|
2044
|
+
attr_accessor :enable_drop_protection
|
2045
|
+
alias_method :enable_drop_protection?, :enable_drop_protection
|
2046
|
+
|
1216
2047
|
# Encryption configuration for a Cloud Spanner database.
|
1217
2048
|
# Corresponds to the JSON property `encryptionConfig`
|
1218
2049
|
# @return [Google::Apis::SpannerV1::EncryptionConfig]
|
@@ -1220,7 +2051,7 @@ module Google
|
|
1220
2051
|
|
1221
2052
|
# Output only. For databases that are using customer managed encryption, this
|
1222
2053
|
# field contains the encryption information for the database, such as all Cloud
|
1223
|
-
# KMS key versions that are in use. The `encryption_status
|
2054
|
+
# KMS key versions that are in use. The `encryption_status` field inside of each
|
1224
2055
|
# `EncryptionInfo` is not populated. For databases that are using Google default
|
1225
2056
|
# or other types of encryption, this field is empty. This field is propagated
|
1226
2057
|
# lazily from the backend. There might be a delay from when a key version is
|
@@ -1237,6 +2068,18 @@ module Google
|
|
1237
2068
|
# @return [String]
|
1238
2069
|
attr_accessor :name
|
1239
2070
|
|
2071
|
+
# Information about the dual-region quorum.
|
2072
|
+
# Corresponds to the JSON property `quorumInfo`
|
2073
|
+
# @return [Google::Apis::SpannerV1::QuorumInfo]
|
2074
|
+
attr_accessor :quorum_info
|
2075
|
+
|
2076
|
+
# Output only. If true, the database is being updated. If false, there are no
|
2077
|
+
# ongoing update operations for the database.
|
2078
|
+
# Corresponds to the JSON property `reconciling`
|
2079
|
+
# @return [Boolean]
|
2080
|
+
attr_accessor :reconciling
|
2081
|
+
alias_method :reconciling?, :reconciling
|
2082
|
+
|
1240
2083
|
# Information about the database restore.
|
1241
2084
|
# Corresponds to the JSON property `restoreInfo`
|
1242
2085
|
# @return [Google::Apis::SpannerV1::RestoreInfo]
|
@@ -1264,9 +2107,12 @@ module Google
|
|
1264
2107
|
@database_dialect = args[:database_dialect] if args.key?(:database_dialect)
|
1265
2108
|
@default_leader = args[:default_leader] if args.key?(:default_leader)
|
1266
2109
|
@earliest_version_time = args[:earliest_version_time] if args.key?(:earliest_version_time)
|
2110
|
+
@enable_drop_protection = args[:enable_drop_protection] if args.key?(:enable_drop_protection)
|
1267
2111
|
@encryption_config = args[:encryption_config] if args.key?(:encryption_config)
|
1268
2112
|
@encryption_info = args[:encryption_info] if args.key?(:encryption_info)
|
1269
2113
|
@name = args[:name] if args.key?(:name)
|
2114
|
+
@quorum_info = args[:quorum_info] if args.key?(:quorum_info)
|
2115
|
+
@reconciling = args[:reconciling] if args.key?(:reconciling)
|
1270
2116
|
@restore_info = args[:restore_info] if args.key?(:restore_info)
|
1271
2117
|
@state = args[:state] if args.key?(:state)
|
1272
2118
|
@version_retention_period = args[:version_retention_period] if args.key?(:version_retention_period)
|
@@ -1278,8 +2124,8 @@ module Google
|
|
1278
2124
|
include Google::Apis::Core::Hashable
|
1279
2125
|
|
1280
2126
|
# Required. The name of the database role. Values are of the form `projects//
|
1281
|
-
# instances//databases//databaseRoles
|
1282
|
-
#
|
2127
|
+
# instances//databases//databaseRoles/` where `` is as specified in the `CREATE
|
2128
|
+
# ROLE` DDL statement.
|
1283
2129
|
# Corresponds to the JSON property `name`
|
1284
2130
|
# @return [String]
|
1285
2131
|
attr_accessor :name
|
@@ -1294,6 +2140,45 @@ module Google
|
|
1294
2140
|
end
|
1295
2141
|
end
|
1296
2142
|
|
2143
|
+
# Action information extracted from a DDL statement. This proto is used to
|
2144
|
+
# display the brief info of the DDL statement for the operation
|
2145
|
+
# UpdateDatabaseDdl.
|
2146
|
+
class DdlStatementActionInfo
|
2147
|
+
include Google::Apis::Core::Hashable
|
2148
|
+
|
2149
|
+
# The action for the DDL statement, e.g. CREATE, ALTER, DROP, GRANT, etc. This
|
2150
|
+
# field is a non-empty string.
|
2151
|
+
# Corresponds to the JSON property `action`
|
2152
|
+
# @return [String]
|
2153
|
+
attr_accessor :action
|
2154
|
+
|
2155
|
+
# The entity name(s) being operated on the DDL statement. E.g. 1. For statement "
|
2156
|
+
# CREATE TABLE t1(...)", `entity_names` = ["t1"]. 2. For statement "GRANT ROLE
|
2157
|
+
# r1, r2 ...", `entity_names` = ["r1", "r2"]. 3. For statement "ANALYZE", `
|
2158
|
+
# entity_names` = [].
|
2159
|
+
# Corresponds to the JSON property `entityNames`
|
2160
|
+
# @return [Array<String>]
|
2161
|
+
attr_accessor :entity_names
|
2162
|
+
|
2163
|
+
# The entity type for the DDL statement, e.g. TABLE, INDEX, VIEW, etc. This
|
2164
|
+
# field can be empty string for some DDL statement, e.g. for statement "ANALYZE",
|
2165
|
+
# `entity_type` = "".
|
2166
|
+
# Corresponds to the JSON property `entityType`
|
2167
|
+
# @return [String]
|
2168
|
+
attr_accessor :entity_type
|
2169
|
+
|
2170
|
+
def initialize(**args)
|
2171
|
+
update!(**args)
|
2172
|
+
end
|
2173
|
+
|
2174
|
+
# Update properties of this object
|
2175
|
+
def update!(**args)
|
2176
|
+
@action = args[:action] if args.key?(:action)
|
2177
|
+
@entity_names = args[:entity_names] if args.key?(:entity_names)
|
2178
|
+
@entity_type = args[:entity_type] if args.key?(:entity_type)
|
2179
|
+
end
|
2180
|
+
end
|
2181
|
+
|
1297
2182
|
# Arguments to delete operations.
|
1298
2183
|
class Delete
|
1299
2184
|
include Google::Apis::Core::Hashable
|
@@ -1402,6 +2287,49 @@ module Google
|
|
1402
2287
|
end
|
1403
2288
|
end
|
1404
2289
|
|
2290
|
+
# The DirectedReadOptions can be used to indicate which replicas or regions
|
2291
|
+
# should be used for non-transactional reads or queries. DirectedReadOptions may
|
2292
|
+
# only be specified for a read-only transaction, otherwise the API will return
|
2293
|
+
# an `INVALID_ARGUMENT` error.
|
2294
|
+
class DirectedReadOptions
|
2295
|
+
include Google::Apis::Core::Hashable
|
2296
|
+
|
2297
|
+
# An ExcludeReplicas contains a repeated set of ReplicaSelection that should be
|
2298
|
+
# excluded from serving requests.
|
2299
|
+
# Corresponds to the JSON property `excludeReplicas`
|
2300
|
+
# @return [Google::Apis::SpannerV1::ExcludeReplicas]
|
2301
|
+
attr_accessor :exclude_replicas
|
2302
|
+
|
2303
|
+
# An IncludeReplicas contains a repeated set of ReplicaSelection which indicates
|
2304
|
+
# the order in which replicas should be considered.
|
2305
|
+
# Corresponds to the JSON property `includeReplicas`
|
2306
|
+
# @return [Google::Apis::SpannerV1::IncludeReplicas]
|
2307
|
+
attr_accessor :include_replicas
|
2308
|
+
|
2309
|
+
def initialize(**args)
|
2310
|
+
update!(**args)
|
2311
|
+
end
|
2312
|
+
|
2313
|
+
# Update properties of this object
|
2314
|
+
def update!(**args)
|
2315
|
+
@exclude_replicas = args[:exclude_replicas] if args.key?(:exclude_replicas)
|
2316
|
+
@include_replicas = args[:include_replicas] if args.key?(:include_replicas)
|
2317
|
+
end
|
2318
|
+
end
|
2319
|
+
|
2320
|
+
# Message type for a dual-region quorum. Currently this type has no options.
|
2321
|
+
class DualRegionQuorum
|
2322
|
+
include Google::Apis::Core::Hashable
|
2323
|
+
|
2324
|
+
def initialize(**args)
|
2325
|
+
update!(**args)
|
2326
|
+
end
|
2327
|
+
|
2328
|
+
# Update properties of this object
|
2329
|
+
def update!(**args)
|
2330
|
+
end
|
2331
|
+
end
|
2332
|
+
|
1405
2333
|
# A generic empty message that you can re-use to avoid defining duplicated empty
|
1406
2334
|
# messages in your APIs. A typical example is to use it as the request or the
|
1407
2335
|
# response type of an API method. For instance: service Foo ` rpc Bar(google.
|
@@ -1428,6 +2356,21 @@ module Google
|
|
1428
2356
|
# @return [String]
|
1429
2357
|
attr_accessor :kms_key_name
|
1430
2358
|
|
2359
|
+
# Specifies the KMS configuration for one or more keys used to encrypt the
|
2360
|
+
# database. Values are of the form `projects//locations//keyRings//cryptoKeys/`.
|
2361
|
+
# The keys referenced by `kms_key_names` must fully cover all regions of the
|
2362
|
+
# database's instance configuration. Some examples: * For regional (single-
|
2363
|
+
# region) instance configurations, specify a regional location KMS key. * For
|
2364
|
+
# multi-region instance configurations of type `GOOGLE_MANAGED`, either specify
|
2365
|
+
# a multi-region location KMS key or multiple regional location KMS keys that
|
2366
|
+
# cover all regions in the instance configuration. * For an instance
|
2367
|
+
# configuration of type `USER_MANAGED`, specify only regional location KMS keys
|
2368
|
+
# to cover each region in the instance configuration. Multi-region location KMS
|
2369
|
+
# keys aren't supported for `USER_MANAGED` type instance configurations.
|
2370
|
+
# Corresponds to the JSON property `kmsKeyNames`
|
2371
|
+
# @return [Array<String>]
|
2372
|
+
attr_accessor :kms_key_names
|
2373
|
+
|
1431
2374
|
def initialize(**args)
|
1432
2375
|
update!(**args)
|
1433
2376
|
end
|
@@ -1435,6 +2378,7 @@ module Google
|
|
1435
2378
|
# Update properties of this object
|
1436
2379
|
def update!(**args)
|
1437
2380
|
@kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
|
2381
|
+
@kms_key_names = args[:kms_key_names] if args.key?(:kms_key_names)
|
1438
2382
|
end
|
1439
2383
|
end
|
1440
2384
|
|
@@ -1475,6 +2419,26 @@ module Google
|
|
1475
2419
|
end
|
1476
2420
|
end
|
1477
2421
|
|
2422
|
+
# An ExcludeReplicas contains a repeated set of ReplicaSelection that should be
|
2423
|
+
# excluded from serving requests.
|
2424
|
+
class ExcludeReplicas
|
2425
|
+
include Google::Apis::Core::Hashable
|
2426
|
+
|
2427
|
+
# The directed read replica selector.
|
2428
|
+
# Corresponds to the JSON property `replicaSelections`
|
2429
|
+
# @return [Array<Google::Apis::SpannerV1::ReplicaSelection>]
|
2430
|
+
attr_accessor :replica_selections
|
2431
|
+
|
2432
|
+
def initialize(**args)
|
2433
|
+
update!(**args)
|
2434
|
+
end
|
2435
|
+
|
2436
|
+
# Update properties of this object
|
2437
|
+
def update!(**args)
|
2438
|
+
@replica_selections = args[:replica_selections] if args.key?(:replica_selections)
|
2439
|
+
end
|
2440
|
+
end
|
2441
|
+
|
1478
2442
|
# The request for ExecuteBatchDml.
|
1479
2443
|
class ExecuteBatchDmlRequest
|
1480
2444
|
include Google::Apis::Core::Hashable
|
@@ -1540,6 +2504,14 @@ module Google
|
|
1540
2504
|
class ExecuteBatchDmlResponse
|
1541
2505
|
include Google::Apis::Core::Hashable
|
1542
2506
|
|
2507
|
+
# When a read-write transaction is executed on a multiplexed session, this
|
2508
|
+
# precommit token is sent back to the client as a part of the [Transaction]
|
2509
|
+
# message in the BeginTransaction response and also as a part of the [ResultSet]
|
2510
|
+
# and [PartialResultSet] responses.
|
2511
|
+
# Corresponds to the JSON property `precommitToken`
|
2512
|
+
# @return [Google::Apis::SpannerV1::MultiplexedSessionPrecommitToken]
|
2513
|
+
attr_accessor :precommit_token
|
2514
|
+
|
1543
2515
|
# One ResultSet for each statement in the request that ran successfully, in the
|
1544
2516
|
# same order as the statements in the request. Each ResultSet does not contain
|
1545
2517
|
# any rows. The ResultSetStats in each ResultSet contain the number of rows
|
@@ -1565,6 +2537,7 @@ module Google
|
|
1565
2537
|
|
1566
2538
|
# Update properties of this object
|
1567
2539
|
def update!(**args)
|
2540
|
+
@precommit_token = args[:precommit_token] if args.key?(:precommit_token)
|
1568
2541
|
@result_sets = args[:result_sets] if args.key?(:result_sets)
|
1569
2542
|
@status = args[:status] if args.key?(:status)
|
1570
2543
|
end
|
@@ -1574,6 +2547,23 @@ module Google
|
|
1574
2547
|
class ExecuteSqlRequest
|
1575
2548
|
include Google::Apis::Core::Hashable
|
1576
2549
|
|
2550
|
+
# If this is for a partitioned query and this field is set to `true`, the
|
2551
|
+
# request is executed with Spanner Data Boost independent compute resources. If
|
2552
|
+
# the field is set to `true` but the request does not set `partition_token`, the
|
2553
|
+
# API returns an `INVALID_ARGUMENT` error.
|
2554
|
+
# Corresponds to the JSON property `dataBoostEnabled`
|
2555
|
+
# @return [Boolean]
|
2556
|
+
attr_accessor :data_boost_enabled
|
2557
|
+
alias_method :data_boost_enabled?, :data_boost_enabled
|
2558
|
+
|
2559
|
+
# The DirectedReadOptions can be used to indicate which replicas or regions
|
2560
|
+
# should be used for non-transactional reads or queries. DirectedReadOptions may
|
2561
|
+
# only be specified for a read-only transaction, otherwise the API will return
|
2562
|
+
# an `INVALID_ARGUMENT` error.
|
2563
|
+
# Corresponds to the JSON property `directedReadOptions`
|
2564
|
+
# @return [Google::Apis::SpannerV1::DirectedReadOptions]
|
2565
|
+
attr_accessor :directed_read_options
|
2566
|
+
|
1577
2567
|
# It is not always possible for Cloud Spanner to infer the right SQL type from a
|
1578
2568
|
# JSON value. For example, values of type `BYTES` and values of type `STRING`
|
1579
2569
|
# both appear in params as JSON strings. In these cases, `param_types` can be
|
@@ -1658,6 +2648,8 @@ module Google
|
|
1658
2648
|
|
1659
2649
|
# Update properties of this object
|
1660
2650
|
def update!(**args)
|
2651
|
+
@data_boost_enabled = args[:data_boost_enabled] if args.key?(:data_boost_enabled)
|
2652
|
+
@directed_read_options = args[:directed_read_options] if args.key?(:directed_read_options)
|
1661
2653
|
@param_types = args[:param_types] if args.key?(:param_types)
|
1662
2654
|
@params = args[:params] if args.key?(:params)
|
1663
2655
|
@partition_token = args[:partition_token] if args.key?(:partition_token)
|
@@ -1793,10 +2785,34 @@ module Google
|
|
1793
2785
|
end
|
1794
2786
|
end
|
1795
2787
|
|
2788
|
+
# The specification for full backups. A full backup stores the entire contents
|
2789
|
+
# of the database at a given version time.
|
2790
|
+
class FullBackupSpec
|
2791
|
+
include Google::Apis::Core::Hashable
|
2792
|
+
|
2793
|
+
def initialize(**args)
|
2794
|
+
update!(**args)
|
2795
|
+
end
|
2796
|
+
|
2797
|
+
# Update properties of this object
|
2798
|
+
def update!(**args)
|
2799
|
+
end
|
2800
|
+
end
|
2801
|
+
|
1796
2802
|
# The response for GetDatabaseDdl.
|
1797
2803
|
class GetDatabaseDdlResponse
|
1798
2804
|
include Google::Apis::Core::Hashable
|
1799
2805
|
|
2806
|
+
# Proto descriptors stored in the database. Contains a protobuf-serialized [
|
2807
|
+
# google.protobuf.FileDescriptorSet](https://github.com/protocolbuffers/protobuf/
|
2808
|
+
# blob/main/src/google/protobuf/descriptor.proto). For more details, see
|
2809
|
+
# protobuffer [self description](https://developers.google.com/protocol-buffers/
|
2810
|
+
# docs/techniques#self-description).
|
2811
|
+
# Corresponds to the JSON property `protoDescriptors`
|
2812
|
+
# NOTE: Values are automatically base64 encoded/decoded in the client library.
|
2813
|
+
# @return [String]
|
2814
|
+
attr_accessor :proto_descriptors
|
2815
|
+
|
1800
2816
|
# A list of formatted DDL statements defining the schema of the database
|
1801
2817
|
# specified in the request.
|
1802
2818
|
# Corresponds to the JSON property `statements`
|
@@ -1809,6 +2825,7 @@ module Google
|
|
1809
2825
|
|
1810
2826
|
# Update properties of this object
|
1811
2827
|
def update!(**args)
|
2828
|
+
@proto_descriptors = args[:proto_descriptors] if args.key?(:proto_descriptors)
|
1812
2829
|
@statements = args[:statements] if args.key?(:statements)
|
1813
2830
|
end
|
1814
2831
|
end
|
@@ -1860,6 +2877,79 @@ module Google
|
|
1860
2877
|
end
|
1861
2878
|
end
|
1862
2879
|
|
2880
|
+
# An IncludeReplicas contains a repeated set of ReplicaSelection which indicates
|
2881
|
+
# the order in which replicas should be considered.
|
2882
|
+
class IncludeReplicas
|
2883
|
+
include Google::Apis::Core::Hashable
|
2884
|
+
|
2885
|
+
# If true, Spanner will not route requests to a replica outside the
|
2886
|
+
# include_replicas list when all of the specified replicas are unavailable or
|
2887
|
+
# unhealthy. Default value is `false`.
|
2888
|
+
# Corresponds to the JSON property `autoFailoverDisabled`
|
2889
|
+
# @return [Boolean]
|
2890
|
+
attr_accessor :auto_failover_disabled
|
2891
|
+
alias_method :auto_failover_disabled?, :auto_failover_disabled
|
2892
|
+
|
2893
|
+
# The directed read replica selector.
|
2894
|
+
# Corresponds to the JSON property `replicaSelections`
|
2895
|
+
# @return [Array<Google::Apis::SpannerV1::ReplicaSelection>]
|
2896
|
+
attr_accessor :replica_selections
|
2897
|
+
|
2898
|
+
def initialize(**args)
|
2899
|
+
update!(**args)
|
2900
|
+
end
|
2901
|
+
|
2902
|
+
# Update properties of this object
|
2903
|
+
def update!(**args)
|
2904
|
+
@auto_failover_disabled = args[:auto_failover_disabled] if args.key?(:auto_failover_disabled)
|
2905
|
+
@replica_selections = args[:replica_selections] if args.key?(:replica_selections)
|
2906
|
+
end
|
2907
|
+
end
|
2908
|
+
|
2909
|
+
# The specification for incremental backup chains. An incremental backup stores
|
2910
|
+
# the delta of changes between a previous backup and the database contents at a
|
2911
|
+
# given version time. An incremental backup chain consists of a full backup and
|
2912
|
+
# zero or more successive incremental backups. The first backup created for an
|
2913
|
+
# incremental backup chain is always a full backup.
|
2914
|
+
class IncrementalBackupSpec
|
2915
|
+
include Google::Apis::Core::Hashable
|
2916
|
+
|
2917
|
+
def initialize(**args)
|
2918
|
+
update!(**args)
|
2919
|
+
end
|
2920
|
+
|
2921
|
+
# Update properties of this object
|
2922
|
+
def update!(**args)
|
2923
|
+
end
|
2924
|
+
end
|
2925
|
+
|
2926
|
+
# Recommendation to add new indexes to run queries more efficiently.
|
2927
|
+
class IndexAdvice
|
2928
|
+
include Google::Apis::Core::Hashable
|
2929
|
+
|
2930
|
+
# Optional. DDL statements to add new indexes that will improve the query.
|
2931
|
+
# Corresponds to the JSON property `ddl`
|
2932
|
+
# @return [Array<String>]
|
2933
|
+
attr_accessor :ddl
|
2934
|
+
|
2935
|
+
# Optional. Estimated latency improvement factor. For example if the query
|
2936
|
+
# currently takes 500 ms to run and the estimated latency with new indexes is
|
2937
|
+
# 100 ms this field will be 5.
|
2938
|
+
# Corresponds to the JSON property `improvementFactor`
|
2939
|
+
# @return [Float]
|
2940
|
+
attr_accessor :improvement_factor
|
2941
|
+
|
2942
|
+
def initialize(**args)
|
2943
|
+
update!(**args)
|
2944
|
+
end
|
2945
|
+
|
2946
|
+
# Update properties of this object
|
2947
|
+
def update!(**args)
|
2948
|
+
@ddl = args[:ddl] if args.key?(:ddl)
|
2949
|
+
@improvement_factor = args[:improvement_factor] if args.key?(:improvement_factor)
|
2950
|
+
end
|
2951
|
+
end
|
2952
|
+
|
1863
2953
|
# A message representing a (sparse) collection of hot keys for specific key
|
1864
2954
|
# buckets.
|
1865
2955
|
class IndexedHotKey
|
@@ -1887,11 +2977,332 @@ module Google
|
|
1887
2977
|
class IndexedKeyRangeInfos
|
1888
2978
|
include Google::Apis::Core::Hashable
|
1889
2979
|
|
1890
|
-
# A (sparse) mapping from key bucket index to the KeyRangeInfos for that key
|
1891
|
-
# bucket.
|
1892
|
-
# Corresponds to the JSON property `keyRangeInfos`
|
1893
|
-
# @return [Hash<String,Google::Apis::SpannerV1::KeyRangeInfos>]
|
1894
|
-
attr_accessor :key_range_infos
|
2980
|
+
# A (sparse) mapping from key bucket index to the KeyRangeInfos for that key
|
2981
|
+
# bucket.
|
2982
|
+
# Corresponds to the JSON property `keyRangeInfos`
|
2983
|
+
# @return [Hash<String,Google::Apis::SpannerV1::KeyRangeInfos>]
|
2984
|
+
attr_accessor :key_range_infos
|
2985
|
+
|
2986
|
+
def initialize(**args)
|
2987
|
+
update!(**args)
|
2988
|
+
end
|
2989
|
+
|
2990
|
+
# Update properties of this object
|
2991
|
+
def update!(**args)
|
2992
|
+
@key_range_infos = args[:key_range_infos] if args.key?(:key_range_infos)
|
2993
|
+
end
|
2994
|
+
end
|
2995
|
+
|
2996
|
+
# An isolated set of Cloud Spanner resources on which databases can be hosted.
|
2997
|
+
class Instance
|
2998
|
+
include Google::Apis::Core::Hashable
|
2999
|
+
|
3000
|
+
# Autoscaling configuration for an instance.
|
3001
|
+
# Corresponds to the JSON property `autoscalingConfig`
|
3002
|
+
# @return [Google::Apis::SpannerV1::AutoscalingConfig]
|
3003
|
+
attr_accessor :autoscaling_config
|
3004
|
+
|
3005
|
+
# Required. The name of the instance's configuration. Values are of the form `
|
3006
|
+
# projects//instanceConfigs/`. See also InstanceConfig and ListInstanceConfigs.
|
3007
|
+
# Corresponds to the JSON property `config`
|
3008
|
+
# @return [String]
|
3009
|
+
attr_accessor :config
|
3010
|
+
|
3011
|
+
# Output only. The time at which the instance was created.
|
3012
|
+
# Corresponds to the JSON property `createTime`
|
3013
|
+
# @return [String]
|
3014
|
+
attr_accessor :create_time
|
3015
|
+
|
3016
|
+
# Optional. Controls the default backup behavior for new databases within the
|
3017
|
+
# instance. Note that `AUTOMATIC` is not permitted for free instances, as
|
3018
|
+
# backups and backup schedules are not allowed for free instances. In the `
|
3019
|
+
# GetInstance` or `ListInstances` response, if the value of
|
3020
|
+
# default_backup_schedule_type is unset or NONE, no default backup schedule will
|
3021
|
+
# be created for new databases within the instance.
|
3022
|
+
# Corresponds to the JSON property `defaultBackupScheduleType`
|
3023
|
+
# @return [String]
|
3024
|
+
attr_accessor :default_backup_schedule_type
|
3025
|
+
|
3026
|
+
# Required. The descriptive name for this instance as it appears in UIs. Must be
|
3027
|
+
# unique per project and between 4 and 30 characters in length.
|
3028
|
+
# Corresponds to the JSON property `displayName`
|
3029
|
+
# @return [String]
|
3030
|
+
attr_accessor :display_name
|
3031
|
+
|
3032
|
+
# Optional. The `Edition` of the current instance.
|
3033
|
+
# Corresponds to the JSON property `edition`
|
3034
|
+
# @return [String]
|
3035
|
+
attr_accessor :edition
|
3036
|
+
|
3037
|
+
# Deprecated. This field is not populated.
|
3038
|
+
# Corresponds to the JSON property `endpointUris`
|
3039
|
+
# @return [Array<String>]
|
3040
|
+
attr_accessor :endpoint_uris
|
3041
|
+
|
3042
|
+
# Free instance specific metadata that is kept even after an instance has been
|
3043
|
+
# upgraded for tracking purposes.
|
3044
|
+
# Corresponds to the JSON property `freeInstanceMetadata`
|
3045
|
+
# @return [Google::Apis::SpannerV1::FreeInstanceMetadata]
|
3046
|
+
attr_accessor :free_instance_metadata
|
3047
|
+
|
3048
|
+
# The `InstanceType` of the current instance.
|
3049
|
+
# Corresponds to the JSON property `instanceType`
|
3050
|
+
# @return [String]
|
3051
|
+
attr_accessor :instance_type
|
3052
|
+
|
3053
|
+
# Cloud Labels are a flexible and lightweight mechanism for organizing cloud
|
3054
|
+
# resources into groups that reflect a customer's organizational needs and
|
3055
|
+
# deployment strategies. Cloud Labels can be used to filter collections of
|
3056
|
+
# resources. They can be used to control how resource metrics are aggregated.
|
3057
|
+
# And they can be used as arguments to policy management rules (e.g. route,
|
3058
|
+
# firewall, load balancing, etc.). * Label keys must be between 1 and 63
|
3059
|
+
# characters long and must conform to the following regular expression: `a-z`0,
|
3060
|
+
# 62``. * Label values must be between 0 and 63 characters long and must conform
|
3061
|
+
# to the regular expression `[a-z0-9_-]`0,63``. * No more than 64 labels can be
|
3062
|
+
# associated with a given resource. See https://goo.gl/xmQnxf for more
|
3063
|
+
# information on and examples of labels. If you plan to use labels in your own
|
3064
|
+
# code, please note that additional characters may be allowed in the future. And
|
3065
|
+
# so you are advised to use an internal label representation, such as JSON,
|
3066
|
+
# which doesn't rely upon specific characters being disallowed. For example,
|
3067
|
+
# representing labels as the string: name + "_" + value would prove problematic
|
3068
|
+
# if we were to allow "_" in a future release.
|
3069
|
+
# Corresponds to the JSON property `labels`
|
3070
|
+
# @return [Hash<String,String>]
|
3071
|
+
attr_accessor :labels
|
3072
|
+
|
3073
|
+
# Required. A unique identifier for the instance, which cannot be changed after
|
3074
|
+
# the instance is created. Values are of the form `projects//instances/a-z*[a-z0-
|
3075
|
+
# 9]`. The final segment of the name must be between 2 and 64 characters in
|
3076
|
+
# length.
|
3077
|
+
# Corresponds to the JSON property `name`
|
3078
|
+
# @return [String]
|
3079
|
+
attr_accessor :name
|
3080
|
+
|
3081
|
+
# The number of nodes allocated to this instance. At most, one of either `
|
3082
|
+
# node_count` or `processing_units` should be present in the message. Users can
|
3083
|
+
# set the `node_count` field to specify the target number of nodes allocated to
|
3084
|
+
# the instance. If autoscaling is enabled, `node_count` is treated as an `
|
3085
|
+
# OUTPUT_ONLY` field and reflects the current number of nodes allocated to the
|
3086
|
+
# instance. This might be zero in API responses for instances that are not yet
|
3087
|
+
# in the `READY` state. For more information, see [Compute capacity, nodes, and
|
3088
|
+
# processing units](https://cloud.google.com/spanner/docs/compute-capacity).
|
3089
|
+
# Corresponds to the JSON property `nodeCount`
|
3090
|
+
# @return [Fixnum]
|
3091
|
+
attr_accessor :node_count
|
3092
|
+
|
3093
|
+
# The number of processing units allocated to this instance. At most, one of
|
3094
|
+
# either `processing_units` or `node_count` should be present in the message.
|
3095
|
+
# Users can set the `processing_units` field to specify the target number of
|
3096
|
+
# processing units allocated to the instance. If autoscaling is enabled, `
|
3097
|
+
# processing_units` is treated as an `OUTPUT_ONLY` field and reflects the
|
3098
|
+
# current number of processing units allocated to the instance. This might be
|
3099
|
+
# zero in API responses for instances that are not yet in the `READY` state. For
|
3100
|
+
# more information, see [Compute capacity, nodes and processing units](https://
|
3101
|
+
# cloud.google.com/spanner/docs/compute-capacity).
|
3102
|
+
# Corresponds to the JSON property `processingUnits`
|
3103
|
+
# @return [Fixnum]
|
3104
|
+
attr_accessor :processing_units
|
3105
|
+
|
3106
|
+
# Output only. Lists the compute capacity per ReplicaSelection. A replica
|
3107
|
+
# selection identifies a set of replicas with common properties. Replicas
|
3108
|
+
# identified by a ReplicaSelection are scaled with the same compute capacity.
|
3109
|
+
# Corresponds to the JSON property `replicaComputeCapacity`
|
3110
|
+
# @return [Array<Google::Apis::SpannerV1::ReplicaComputeCapacity>]
|
3111
|
+
attr_accessor :replica_compute_capacity
|
3112
|
+
|
3113
|
+
# Output only. The current instance state. For CreateInstance, the state must be
|
3114
|
+
# either omitted or set to `CREATING`. For UpdateInstance, the state must be
|
3115
|
+
# either omitted or set to `READY`.
|
3116
|
+
# Corresponds to the JSON property `state`
|
3117
|
+
# @return [String]
|
3118
|
+
attr_accessor :state
|
3119
|
+
|
3120
|
+
# Output only. The time at which the instance was most recently updated.
|
3121
|
+
# Corresponds to the JSON property `updateTime`
|
3122
|
+
# @return [String]
|
3123
|
+
attr_accessor :update_time
|
3124
|
+
|
3125
|
+
def initialize(**args)
|
3126
|
+
update!(**args)
|
3127
|
+
end
|
3128
|
+
|
3129
|
+
# Update properties of this object
|
3130
|
+
def update!(**args)
|
3131
|
+
@autoscaling_config = args[:autoscaling_config] if args.key?(:autoscaling_config)
|
3132
|
+
@config = args[:config] if args.key?(:config)
|
3133
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
3134
|
+
@default_backup_schedule_type = args[:default_backup_schedule_type] if args.key?(:default_backup_schedule_type)
|
3135
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
3136
|
+
@edition = args[:edition] if args.key?(:edition)
|
3137
|
+
@endpoint_uris = args[:endpoint_uris] if args.key?(:endpoint_uris)
|
3138
|
+
@free_instance_metadata = args[:free_instance_metadata] if args.key?(:free_instance_metadata)
|
3139
|
+
@instance_type = args[:instance_type] if args.key?(:instance_type)
|
3140
|
+
@labels = args[:labels] if args.key?(:labels)
|
3141
|
+
@name = args[:name] if args.key?(:name)
|
3142
|
+
@node_count = args[:node_count] if args.key?(:node_count)
|
3143
|
+
@processing_units = args[:processing_units] if args.key?(:processing_units)
|
3144
|
+
@replica_compute_capacity = args[:replica_compute_capacity] if args.key?(:replica_compute_capacity)
|
3145
|
+
@state = args[:state] if args.key?(:state)
|
3146
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
3147
|
+
end
|
3148
|
+
end
|
3149
|
+
|
3150
|
+
# A possible configuration for a Cloud Spanner instance. Configurations define
|
3151
|
+
# the geographic placement of nodes and their replication.
|
3152
|
+
class InstanceConfig
|
3153
|
+
include Google::Apis::Core::Hashable
|
3154
|
+
|
3155
|
+
# Base configuration name, e.g. projects//instanceConfigs/nam3, based on which
|
3156
|
+
# this configuration is created. Only set for user-managed configurations. `
|
3157
|
+
# base_config` must refer to a configuration of type `GOOGLE_MANAGED` in the
|
3158
|
+
# same project as this configuration.
|
3159
|
+
# Corresponds to the JSON property `baseConfig`
|
3160
|
+
# @return [String]
|
3161
|
+
attr_accessor :base_config
|
3162
|
+
|
3163
|
+
# Output only. Whether this instance configuration is a Google-managed or user-
|
3164
|
+
# managed configuration.
|
3165
|
+
# Corresponds to the JSON property `configType`
|
3166
|
+
# @return [String]
|
3167
|
+
attr_accessor :config_type
|
3168
|
+
|
3169
|
+
# The name of this instance configuration as it appears in UIs.
|
3170
|
+
# Corresponds to the JSON property `displayName`
|
3171
|
+
# @return [String]
|
3172
|
+
attr_accessor :display_name
|
3173
|
+
|
3174
|
+
# etag is used for optimistic concurrency control as a way to help prevent
|
3175
|
+
# simultaneous updates of a instance configuration from overwriting each other.
|
3176
|
+
# It is strongly suggested that systems make use of the etag in the read-modify-
|
3177
|
+
# write cycle to perform instance configuration updates in order to avoid race
|
3178
|
+
# conditions: An etag is returned in the response which contains instance
|
3179
|
+
# configurations, and systems are expected to put that etag in the request to
|
3180
|
+
# update instance configuration to ensure that their change is applied to the
|
3181
|
+
# same version of the instance configuration. If no etag is provided in the call
|
3182
|
+
# to update the instance configuration, then the existing instance configuration
|
3183
|
+
# is overwritten blindly.
|
3184
|
+
# Corresponds to the JSON property `etag`
|
3185
|
+
# @return [String]
|
3186
|
+
attr_accessor :etag
|
3187
|
+
|
3188
|
+
# Output only. Describes whether free instances are available to be created in
|
3189
|
+
# this instance configuration.
|
3190
|
+
# Corresponds to the JSON property `freeInstanceAvailability`
|
3191
|
+
# @return [String]
|
3192
|
+
attr_accessor :free_instance_availability
|
3193
|
+
|
3194
|
+
# Cloud Labels are a flexible and lightweight mechanism for organizing cloud
|
3195
|
+
# resources into groups that reflect a customer's organizational needs and
|
3196
|
+
# deployment strategies. Cloud Labels can be used to filter collections of
|
3197
|
+
# resources. They can be used to control how resource metrics are aggregated.
|
3198
|
+
# And they can be used as arguments to policy management rules (e.g. route,
|
3199
|
+
# firewall, load balancing, etc.). * Label keys must be between 1 and 63
|
3200
|
+
# characters long and must conform to the following regular expression: `a-z`0,
|
3201
|
+
# 62``. * Label values must be between 0 and 63 characters long and must conform
|
3202
|
+
# to the regular expression `[a-z0-9_-]`0,63``. * No more than 64 labels can be
|
3203
|
+
# associated with a given resource. See https://goo.gl/xmQnxf for more
|
3204
|
+
# information on and examples of labels. If you plan to use labels in your own
|
3205
|
+
# code, please note that additional characters may be allowed in the future.
|
3206
|
+
# Therefore, you are advised to use an internal label representation, such as
|
3207
|
+
# JSON, which doesn't rely upon specific characters being disallowed. For
|
3208
|
+
# example, representing labels as the string: name + "_" + value would prove
|
3209
|
+
# problematic if we were to allow "_" in a future release.
|
3210
|
+
# Corresponds to the JSON property `labels`
|
3211
|
+
# @return [Hash<String,String>]
|
3212
|
+
attr_accessor :labels
|
3213
|
+
|
3214
|
+
# Allowed values of the "default_leader" schema option for databases in
|
3215
|
+
# instances that use this instance configuration.
|
3216
|
+
# Corresponds to the JSON property `leaderOptions`
|
3217
|
+
# @return [Array<String>]
|
3218
|
+
attr_accessor :leader_options
|
3219
|
+
|
3220
|
+
# A unique identifier for the instance configuration. Values are of the form `
|
3221
|
+
# projects//instanceConfigs/a-z*`. User instance configuration must start with `
|
3222
|
+
# custom-`.
|
3223
|
+
# Corresponds to the JSON property `name`
|
3224
|
+
# @return [String]
|
3225
|
+
attr_accessor :name
|
3226
|
+
|
3227
|
+
# Output only. The available optional replicas to choose from for user-managed
|
3228
|
+
# configurations. Populated for Google-managed configurations.
|
3229
|
+
# Corresponds to the JSON property `optionalReplicas`
|
3230
|
+
# @return [Array<Google::Apis::SpannerV1::ReplicaInfo>]
|
3231
|
+
attr_accessor :optional_replicas
|
3232
|
+
|
3233
|
+
# Output only. The `QuorumType` of the instance configuration.
|
3234
|
+
# Corresponds to the JSON property `quorumType`
|
3235
|
+
# @return [String]
|
3236
|
+
attr_accessor :quorum_type
|
3237
|
+
|
3238
|
+
# Output only. If true, the instance configuration is being created or updated.
|
3239
|
+
# If false, there are no ongoing operations for the instance configuration.
|
3240
|
+
# Corresponds to the JSON property `reconciling`
|
3241
|
+
# @return [Boolean]
|
3242
|
+
attr_accessor :reconciling
|
3243
|
+
alias_method :reconciling?, :reconciling
|
3244
|
+
|
3245
|
+
# The geographic placement of nodes in this instance configuration and their
|
3246
|
+
# replication properties. To create user-managed configurations, input `replicas`
|
3247
|
+
# must include all replicas in `replicas` of the `base_config` and include one
|
3248
|
+
# or more replicas in the `optional_replicas` of the `base_config`.
|
3249
|
+
# Corresponds to the JSON property `replicas`
|
3250
|
+
# @return [Array<Google::Apis::SpannerV1::ReplicaInfo>]
|
3251
|
+
attr_accessor :replicas
|
3252
|
+
|
3253
|
+
# Output only. The current instance configuration state. Applicable only for `
|
3254
|
+
# USER_MANAGED` configurations.
|
3255
|
+
# Corresponds to the JSON property `state`
|
3256
|
+
# @return [String]
|
3257
|
+
attr_accessor :state
|
3258
|
+
|
3259
|
+
# Output only. The storage limit in bytes per processing unit.
|
3260
|
+
# Corresponds to the JSON property `storageLimitPerProcessingUnit`
|
3261
|
+
# @return [Fixnum]
|
3262
|
+
attr_accessor :storage_limit_per_processing_unit
|
3263
|
+
|
3264
|
+
def initialize(**args)
|
3265
|
+
update!(**args)
|
3266
|
+
end
|
3267
|
+
|
3268
|
+
# Update properties of this object
|
3269
|
+
def update!(**args)
|
3270
|
+
@base_config = args[:base_config] if args.key?(:base_config)
|
3271
|
+
@config_type = args[:config_type] if args.key?(:config_type)
|
3272
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
3273
|
+
@etag = args[:etag] if args.key?(:etag)
|
3274
|
+
@free_instance_availability = args[:free_instance_availability] if args.key?(:free_instance_availability)
|
3275
|
+
@labels = args[:labels] if args.key?(:labels)
|
3276
|
+
@leader_options = args[:leader_options] if args.key?(:leader_options)
|
3277
|
+
@name = args[:name] if args.key?(:name)
|
3278
|
+
@optional_replicas = args[:optional_replicas] if args.key?(:optional_replicas)
|
3279
|
+
@quorum_type = args[:quorum_type] if args.key?(:quorum_type)
|
3280
|
+
@reconciling = args[:reconciling] if args.key?(:reconciling)
|
3281
|
+
@replicas = args[:replicas] if args.key?(:replicas)
|
3282
|
+
@state = args[:state] if args.key?(:state)
|
3283
|
+
@storage_limit_per_processing_unit = args[:storage_limit_per_processing_unit] if args.key?(:storage_limit_per_processing_unit)
|
3284
|
+
end
|
3285
|
+
end
|
3286
|
+
|
3287
|
+
# Encapsulates progress related information for a Cloud Spanner long running
|
3288
|
+
# instance operations.
|
3289
|
+
class InstanceOperationProgress
|
3290
|
+
include Google::Apis::Core::Hashable
|
3291
|
+
|
3292
|
+
# If set, the time at which this operation failed or was completed successfully.
|
3293
|
+
# Corresponds to the JSON property `endTime`
|
3294
|
+
# @return [String]
|
3295
|
+
attr_accessor :end_time
|
3296
|
+
|
3297
|
+
# Percent completion of the operation. Values are between 0 and 100 inclusive.
|
3298
|
+
# Corresponds to the JSON property `progressPercent`
|
3299
|
+
# @return [Fixnum]
|
3300
|
+
attr_accessor :progress_percent
|
3301
|
+
|
3302
|
+
# Time the request was received.
|
3303
|
+
# Corresponds to the JSON property `startTime`
|
3304
|
+
# @return [String]
|
3305
|
+
attr_accessor :start_time
|
1895
3306
|
|
1896
3307
|
def initialize(**args)
|
1897
3308
|
update!(**args)
|
@@ -1899,101 +3310,94 @@ module Google
|
|
1899
3310
|
|
1900
3311
|
# Update properties of this object
|
1901
3312
|
def update!(**args)
|
1902
|
-
@
|
3313
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
3314
|
+
@progress_percent = args[:progress_percent] if args.key?(:progress_percent)
|
3315
|
+
@start_time = args[:start_time] if args.key?(:start_time)
|
1903
3316
|
end
|
1904
3317
|
end
|
1905
3318
|
|
1906
|
-
# An isolated set of Cloud Spanner resources
|
1907
|
-
|
3319
|
+
# An isolated set of Cloud Spanner resources that databases can define
|
3320
|
+
# placements on.
|
3321
|
+
class InstancePartition
|
1908
3322
|
include Google::Apis::Core::Hashable
|
1909
3323
|
|
1910
|
-
# Required. The name of the instance's configuration. Values are of
|
1911
|
-
# projects//instanceConfigs/`. See also InstanceConfig and
|
3324
|
+
# Required. The name of the instance partition's configuration. Values are of
|
3325
|
+
# the form `projects//instanceConfigs/`. See also InstanceConfig and
|
3326
|
+
# ListInstanceConfigs.
|
1912
3327
|
# Corresponds to the JSON property `config`
|
1913
3328
|
# @return [String]
|
1914
3329
|
attr_accessor :config
|
1915
3330
|
|
1916
|
-
# Output only. The time at which the instance was created.
|
3331
|
+
# Output only. The time at which the instance partition was created.
|
1917
3332
|
# Corresponds to the JSON property `createTime`
|
1918
3333
|
# @return [String]
|
1919
3334
|
attr_accessor :create_time
|
1920
3335
|
|
1921
|
-
# Required. The descriptive name for this instance as it appears in
|
1922
|
-
# unique per project and between 4 and 30 characters in length.
|
3336
|
+
# Required. The descriptive name for this instance partition as it appears in
|
3337
|
+
# UIs. Must be unique per project and between 4 and 30 characters in length.
|
1923
3338
|
# Corresponds to the JSON property `displayName`
|
1924
3339
|
# @return [String]
|
1925
3340
|
attr_accessor :display_name
|
1926
3341
|
|
1927
|
-
#
|
1928
|
-
#
|
1929
|
-
#
|
1930
|
-
|
1931
|
-
|
1932
|
-
#
|
1933
|
-
#
|
1934
|
-
#
|
1935
|
-
#
|
1936
|
-
|
1937
|
-
|
1938
|
-
# The `InstanceType` of the current instance.
|
1939
|
-
# Corresponds to the JSON property `instanceType`
|
3342
|
+
# Used for optimistic concurrency control as a way to help prevent simultaneous
|
3343
|
+
# updates of a instance partition from overwriting each other. It is strongly
|
3344
|
+
# suggested that systems make use of the etag in the read-modify-write cycle to
|
3345
|
+
# perform instance partition updates in order to avoid race conditions: An etag
|
3346
|
+
# is returned in the response which contains instance partitions, and systems
|
3347
|
+
# are expected to put that etag in the request to update instance partitions to
|
3348
|
+
# ensure that their change will be applied to the same version of the instance
|
3349
|
+
# partition. If no etag is provided in the call to update instance partition,
|
3350
|
+
# then the existing instance partition is overwritten blindly.
|
3351
|
+
# Corresponds to the JSON property `etag`
|
1940
3352
|
# @return [String]
|
1941
|
-
attr_accessor :
|
1942
|
-
|
1943
|
-
# Cloud Labels are a flexible and lightweight mechanism for organizing cloud
|
1944
|
-
# resources into groups that reflect a customer's organizational needs and
|
1945
|
-
# deployment strategies. Cloud Labels can be used to filter collections of
|
1946
|
-
# resources. They can be used to control how resource metrics are aggregated.
|
1947
|
-
# And they can be used as arguments to policy management rules (e.g. route,
|
1948
|
-
# firewall, load balancing, etc.). * Label keys must be between 1 and 63
|
1949
|
-
# characters long and must conform to the following regular expression: `a-z`0,
|
1950
|
-
# 62``. * Label values must be between 0 and 63 characters long and must conform
|
1951
|
-
# to the regular expression `[a-z0-9_-]`0,63``. * No more than 64 labels can be
|
1952
|
-
# associated with a given resource. See https://goo.gl/xmQnxf for more
|
1953
|
-
# information on and examples of labels. If you plan to use labels in your own
|
1954
|
-
# code, please note that additional characters may be allowed in the future. And
|
1955
|
-
# so you are advised to use an internal label representation, such as JSON,
|
1956
|
-
# which doesn't rely upon specific characters being disallowed. For example,
|
1957
|
-
# representing labels as the string: name + "_" + value would prove problematic
|
1958
|
-
# if we were to allow "_" in a future release.
|
1959
|
-
# Corresponds to the JSON property `labels`
|
1960
|
-
# @return [Hash<String,String>]
|
1961
|
-
attr_accessor :labels
|
3353
|
+
attr_accessor :etag
|
1962
3354
|
|
1963
|
-
# Required. A unique identifier for the instance
|
1964
|
-
#
|
1965
|
-
#
|
1966
|
-
#
|
3355
|
+
# Required. A unique identifier for the instance partition. Values are of the
|
3356
|
+
# form `projects//instances//instancePartitions/a-z*[a-z0-9]`. The final segment
|
3357
|
+
# of the name must be between 2 and 64 characters in length. An instance
|
3358
|
+
# partition's name cannot be changed after the instance partition is created.
|
1967
3359
|
# Corresponds to the JSON property `name`
|
1968
3360
|
# @return [String]
|
1969
3361
|
attr_accessor :name
|
1970
3362
|
|
1971
|
-
# The number of nodes allocated to this instance.
|
1972
|
-
# node_count
|
1973
|
-
# zero in API responses for
|
1974
|
-
#
|
1975
|
-
# more information about nodes and processing units.
|
3363
|
+
# The number of nodes allocated to this instance partition. Users can set the `
|
3364
|
+
# node_count` field to specify the target number of nodes allocated to the
|
3365
|
+
# instance partition. This may be zero in API responses for instance partitions
|
3366
|
+
# that are not yet in state `READY`.
|
1976
3367
|
# Corresponds to the JSON property `nodeCount`
|
1977
3368
|
# @return [Fixnum]
|
1978
3369
|
attr_accessor :node_count
|
1979
3370
|
|
1980
|
-
# The number of processing units allocated to this instance.
|
1981
|
-
#
|
1982
|
-
#
|
1983
|
-
# the
|
1984
|
-
# more information about nodes and processing units.
|
3371
|
+
# The number of processing units allocated to this instance partition. Users can
|
3372
|
+
# set the `processing_units` field to specify the target number of processing
|
3373
|
+
# units allocated to the instance partition. This might be zero in API responses
|
3374
|
+
# for instance partitions that are not yet in the `READY` state.
|
1985
3375
|
# Corresponds to the JSON property `processingUnits`
|
1986
3376
|
# @return [Fixnum]
|
1987
3377
|
attr_accessor :processing_units
|
1988
3378
|
|
1989
|
-
# Output only.
|
1990
|
-
#
|
1991
|
-
#
|
3379
|
+
# Output only. Deprecated: This field is not populated. Output only. The names
|
3380
|
+
# of the backups that reference this instance partition. Referencing backups
|
3381
|
+
# should share the parent instance. The existence of any referencing backup
|
3382
|
+
# prevents the instance partition from being deleted.
|
3383
|
+
# Corresponds to the JSON property `referencingBackups`
|
3384
|
+
# @return [Array<String>]
|
3385
|
+
attr_accessor :referencing_backups
|
3386
|
+
|
3387
|
+
# Output only. The names of the databases that reference this instance partition.
|
3388
|
+
# Referencing databases should share the parent instance. The existence of any
|
3389
|
+
# referencing database prevents the instance partition from being deleted.
|
3390
|
+
# Corresponds to the JSON property `referencingDatabases`
|
3391
|
+
# @return [Array<String>]
|
3392
|
+
attr_accessor :referencing_databases
|
3393
|
+
|
3394
|
+
# Output only. The current instance partition state.
|
1992
3395
|
# Corresponds to the JSON property `state`
|
1993
3396
|
# @return [String]
|
1994
3397
|
attr_accessor :state
|
1995
3398
|
|
1996
|
-
# Output only. The time at which the instance was most recently
|
3399
|
+
# Output only. The time at which the instance partition was most recently
|
3400
|
+
# updated.
|
1997
3401
|
# Corresponds to the JSON property `updateTime`
|
1998
3402
|
# @return [String]
|
1999
3403
|
attr_accessor :update_time
|
@@ -2007,51 +3411,25 @@ module Google
|
|
2007
3411
|
@config = args[:config] if args.key?(:config)
|
2008
3412
|
@create_time = args[:create_time] if args.key?(:create_time)
|
2009
3413
|
@display_name = args[:display_name] if args.key?(:display_name)
|
2010
|
-
@
|
2011
|
-
@free_instance_metadata = args[:free_instance_metadata] if args.key?(:free_instance_metadata)
|
2012
|
-
@instance_type = args[:instance_type] if args.key?(:instance_type)
|
2013
|
-
@labels = args[:labels] if args.key?(:labels)
|
3414
|
+
@etag = args[:etag] if args.key?(:etag)
|
2014
3415
|
@name = args[:name] if args.key?(:name)
|
2015
3416
|
@node_count = args[:node_count] if args.key?(:node_count)
|
2016
3417
|
@processing_units = args[:processing_units] if args.key?(:processing_units)
|
3418
|
+
@referencing_backups = args[:referencing_backups] if args.key?(:referencing_backups)
|
3419
|
+
@referencing_databases = args[:referencing_databases] if args.key?(:referencing_databases)
|
2017
3420
|
@state = args[:state] if args.key?(:state)
|
2018
3421
|
@update_time = args[:update_time] if args.key?(:update_time)
|
2019
3422
|
end
|
2020
3423
|
end
|
2021
3424
|
|
2022
|
-
#
|
2023
|
-
|
2024
|
-
class InstanceConfig
|
3425
|
+
# ReplicaSelection identifies replicas with common properties.
|
3426
|
+
class InstanceReplicaSelection
|
2025
3427
|
include Google::Apis::Core::Hashable
|
2026
3428
|
|
2027
|
-
#
|
2028
|
-
# Corresponds to the JSON property `
|
2029
|
-
# @return [String]
|
2030
|
-
attr_accessor :display_name
|
2031
|
-
|
2032
|
-
# Output only. Describes whether free instances are available to be created in
|
2033
|
-
# this instance config.
|
2034
|
-
# Corresponds to the JSON property `freeInstanceAvailability`
|
2035
|
-
# @return [String]
|
2036
|
-
attr_accessor :free_instance_availability
|
2037
|
-
|
2038
|
-
# Allowed values of the "default_leader" schema option for databases in
|
2039
|
-
# instances that use this instance configuration.
|
2040
|
-
# Corresponds to the JSON property `leaderOptions`
|
2041
|
-
# @return [Array<String>]
|
2042
|
-
attr_accessor :leader_options
|
2043
|
-
|
2044
|
-
# A unique identifier for the instance configuration. Values are of the form `
|
2045
|
-
# projects//instanceConfigs/a-z*`.
|
2046
|
-
# Corresponds to the JSON property `name`
|
3429
|
+
# Required. Name of the location of the replicas (e.g., "us-central1").
|
3430
|
+
# Corresponds to the JSON property `location`
|
2047
3431
|
# @return [String]
|
2048
|
-
attr_accessor :
|
2049
|
-
|
2050
|
-
# The geographic placement of nodes in this instance configuration and their
|
2051
|
-
# replication properties.
|
2052
|
-
# Corresponds to the JSON property `replicas`
|
2053
|
-
# @return [Array<Google::Apis::SpannerV1::ReplicaInfo>]
|
2054
|
-
attr_accessor :replicas
|
3432
|
+
attr_accessor :location
|
2055
3433
|
|
2056
3434
|
def initialize(**args)
|
2057
3435
|
update!(**args)
|
@@ -2059,11 +3437,7 @@ module Google
|
|
2059
3437
|
|
2060
3438
|
# Update properties of this object
|
2061
3439
|
def update!(**args)
|
2062
|
-
@
|
2063
|
-
@free_instance_availability = args[:free_instance_availability] if args.key?(:free_instance_availability)
|
2064
|
-
@leader_options = args[:leader_options] if args.key?(:leader_options)
|
2065
|
-
@name = args[:name] if args.key?(:name)
|
2066
|
-
@replicas = args[:replicas] if args.key?(:replicas)
|
3440
|
+
@location = args[:location] if args.key?(:location)
|
2067
3441
|
end
|
2068
3442
|
end
|
2069
3443
|
|
@@ -2311,6 +3685,32 @@ module Google
|
|
2311
3685
|
end
|
2312
3686
|
end
|
2313
3687
|
|
3688
|
+
# The response for ListBackupSchedules.
|
3689
|
+
class ListBackupSchedulesResponse
|
3690
|
+
include Google::Apis::Core::Hashable
|
3691
|
+
|
3692
|
+
# The list of backup schedules for a database.
|
3693
|
+
# Corresponds to the JSON property `backupSchedules`
|
3694
|
+
# @return [Array<Google::Apis::SpannerV1::BackupSchedule>]
|
3695
|
+
attr_accessor :backup_schedules
|
3696
|
+
|
3697
|
+
# `next_page_token` can be sent in a subsequent ListBackupSchedules call to
|
3698
|
+
# fetch more of the schedules.
|
3699
|
+
# Corresponds to the JSON property `nextPageToken`
|
3700
|
+
# @return [String]
|
3701
|
+
attr_accessor :next_page_token
|
3702
|
+
|
3703
|
+
def initialize(**args)
|
3704
|
+
update!(**args)
|
3705
|
+
end
|
3706
|
+
|
3707
|
+
# Update properties of this object
|
3708
|
+
def update!(**args)
|
3709
|
+
@backup_schedules = args[:backup_schedules] if args.key?(:backup_schedules)
|
3710
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
3711
|
+
end
|
3712
|
+
end
|
3713
|
+
|
2314
3714
|
# The response for ListBackups.
|
2315
3715
|
class ListBackupsResponse
|
2316
3716
|
include Google::Apis::Core::Hashable
|
@@ -2418,6 +3818,35 @@ module Google
|
|
2418
3818
|
end
|
2419
3819
|
end
|
2420
3820
|
|
3821
|
+
# The response for ListInstanceConfigOperations.
|
3822
|
+
class ListInstanceConfigOperationsResponse
|
3823
|
+
include Google::Apis::Core::Hashable
|
3824
|
+
|
3825
|
+
# `next_page_token` can be sent in a subsequent ListInstanceConfigOperations
|
3826
|
+
# call to fetch more of the matching metadata.
|
3827
|
+
# Corresponds to the JSON property `nextPageToken`
|
3828
|
+
# @return [String]
|
3829
|
+
attr_accessor :next_page_token
|
3830
|
+
|
3831
|
+
# The list of matching instance configuration long-running operations. Each
|
3832
|
+
# operation's name will be prefixed by the name of the instance configuration.
|
3833
|
+
# The operation's metadata field type `metadata.type_url` describes the type of
|
3834
|
+
# the metadata.
|
3835
|
+
# Corresponds to the JSON property `operations`
|
3836
|
+
# @return [Array<Google::Apis::SpannerV1::Operation>]
|
3837
|
+
attr_accessor :operations
|
3838
|
+
|
3839
|
+
def initialize(**args)
|
3840
|
+
update!(**args)
|
3841
|
+
end
|
3842
|
+
|
3843
|
+
# Update properties of this object
|
3844
|
+
def update!(**args)
|
3845
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
3846
|
+
@operations = args[:operations] if args.key?(:operations)
|
3847
|
+
end
|
3848
|
+
end
|
3849
|
+
|
2421
3850
|
# The response for ListInstanceConfigs.
|
2422
3851
|
class ListInstanceConfigsResponse
|
2423
3852
|
include Google::Apis::Core::Hashable
|
@@ -2444,6 +3873,77 @@ module Google
|
|
2444
3873
|
end
|
2445
3874
|
end
|
2446
3875
|
|
3876
|
+
# The response for ListInstancePartitionOperations.
|
3877
|
+
class ListInstancePartitionOperationsResponse
|
3878
|
+
include Google::Apis::Core::Hashable
|
3879
|
+
|
3880
|
+
# `next_page_token` can be sent in a subsequent ListInstancePartitionOperations
|
3881
|
+
# call to fetch more of the matching metadata.
|
3882
|
+
# Corresponds to the JSON property `nextPageToken`
|
3883
|
+
# @return [String]
|
3884
|
+
attr_accessor :next_page_token
|
3885
|
+
|
3886
|
+
# The list of matching instance partition long-running operations. Each
|
3887
|
+
# operation's name will be prefixed by the instance partition's name. The
|
3888
|
+
# operation's metadata field type `metadata.type_url` describes the type of the
|
3889
|
+
# metadata.
|
3890
|
+
# Corresponds to the JSON property `operations`
|
3891
|
+
# @return [Array<Google::Apis::SpannerV1::Operation>]
|
3892
|
+
attr_accessor :operations
|
3893
|
+
|
3894
|
+
# The list of unreachable instance partitions. It includes the names of instance
|
3895
|
+
# partitions whose operation metadata could not be retrieved within
|
3896
|
+
# instance_partition_deadline.
|
3897
|
+
# Corresponds to the JSON property `unreachableInstancePartitions`
|
3898
|
+
# @return [Array<String>]
|
3899
|
+
attr_accessor :unreachable_instance_partitions
|
3900
|
+
|
3901
|
+
def initialize(**args)
|
3902
|
+
update!(**args)
|
3903
|
+
end
|
3904
|
+
|
3905
|
+
# Update properties of this object
|
3906
|
+
def update!(**args)
|
3907
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
3908
|
+
@operations = args[:operations] if args.key?(:operations)
|
3909
|
+
@unreachable_instance_partitions = args[:unreachable_instance_partitions] if args.key?(:unreachable_instance_partitions)
|
3910
|
+
end
|
3911
|
+
end
|
3912
|
+
|
3913
|
+
# The response for ListInstancePartitions.
|
3914
|
+
class ListInstancePartitionsResponse
|
3915
|
+
include Google::Apis::Core::Hashable
|
3916
|
+
|
3917
|
+
# The list of requested instancePartitions.
|
3918
|
+
# Corresponds to the JSON property `instancePartitions`
|
3919
|
+
# @return [Array<Google::Apis::SpannerV1::InstancePartition>]
|
3920
|
+
attr_accessor :instance_partitions
|
3921
|
+
|
3922
|
+
# `next_page_token` can be sent in a subsequent ListInstancePartitions call to
|
3923
|
+
# fetch more of the matching instance partitions.
|
3924
|
+
# Corresponds to the JSON property `nextPageToken`
|
3925
|
+
# @return [String]
|
3926
|
+
attr_accessor :next_page_token
|
3927
|
+
|
3928
|
+
# The list of unreachable instances or instance partitions. It includes the
|
3929
|
+
# names of instances or instance partitions whose metadata could not be
|
3930
|
+
# retrieved within instance_partition_deadline.
|
3931
|
+
# Corresponds to the JSON property `unreachable`
|
3932
|
+
# @return [Array<String>]
|
3933
|
+
attr_accessor :unreachable
|
3934
|
+
|
3935
|
+
def initialize(**args)
|
3936
|
+
update!(**args)
|
3937
|
+
end
|
3938
|
+
|
3939
|
+
# Update properties of this object
|
3940
|
+
def update!(**args)
|
3941
|
+
@instance_partitions = args[:instance_partitions] if args.key?(:instance_partitions)
|
3942
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
3943
|
+
@unreachable = args[:unreachable] if args.key?(:unreachable)
|
3944
|
+
end
|
3945
|
+
end
|
3946
|
+
|
2447
3947
|
# The response for ListInstances.
|
2448
3948
|
class ListInstancesResponse
|
2449
3949
|
include Google::Apis::Core::Hashable
|
@@ -2727,6 +4227,57 @@ module Google
|
|
2727
4227
|
end
|
2728
4228
|
end
|
2729
4229
|
|
4230
|
+
# The request for MoveInstance.
|
4231
|
+
class MoveInstanceRequest
|
4232
|
+
include Google::Apis::Core::Hashable
|
4233
|
+
|
4234
|
+
# Required. The target instance configuration where to move the instance. Values
|
4235
|
+
# are of the form `projects//instanceConfigs/`.
|
4236
|
+
# Corresponds to the JSON property `targetConfig`
|
4237
|
+
# @return [String]
|
4238
|
+
attr_accessor :target_config
|
4239
|
+
|
4240
|
+
def initialize(**args)
|
4241
|
+
update!(**args)
|
4242
|
+
end
|
4243
|
+
|
4244
|
+
# Update properties of this object
|
4245
|
+
def update!(**args)
|
4246
|
+
@target_config = args[:target_config] if args.key?(:target_config)
|
4247
|
+
end
|
4248
|
+
end
|
4249
|
+
|
4250
|
+
# When a read-write transaction is executed on a multiplexed session, this
|
4251
|
+
# precommit token is sent back to the client as a part of the [Transaction]
|
4252
|
+
# message in the BeginTransaction response and also as a part of the [ResultSet]
|
4253
|
+
# and [PartialResultSet] responses.
|
4254
|
+
class MultiplexedSessionPrecommitToken
|
4255
|
+
include Google::Apis::Core::Hashable
|
4256
|
+
|
4257
|
+
# Opaque precommit token.
|
4258
|
+
# Corresponds to the JSON property `precommitToken`
|
4259
|
+
# NOTE: Values are automatically base64 encoded/decoded in the client library.
|
4260
|
+
# @return [String]
|
4261
|
+
attr_accessor :precommit_token
|
4262
|
+
|
4263
|
+
# An incrementing seq number is generated on every precommit token that is
|
4264
|
+
# returned. Clients should remember the precommit token with the highest
|
4265
|
+
# sequence number from the current transaction attempt.
|
4266
|
+
# Corresponds to the JSON property `seqNum`
|
4267
|
+
# @return [Fixnum]
|
4268
|
+
attr_accessor :seq_num
|
4269
|
+
|
4270
|
+
def initialize(**args)
|
4271
|
+
update!(**args)
|
4272
|
+
end
|
4273
|
+
|
4274
|
+
# Update properties of this object
|
4275
|
+
def update!(**args)
|
4276
|
+
@precommit_token = args[:precommit_token] if args.key?(:precommit_token)
|
4277
|
+
@seq_num = args[:seq_num] if args.key?(:seq_num)
|
4278
|
+
end
|
4279
|
+
end
|
4280
|
+
|
2730
4281
|
# A modification to one or more Cloud Spanner rows. Mutations can be applied to
|
2731
4282
|
# a Cloud Spanner database by sending them in a Commit call.
|
2732
4283
|
class Mutation
|
@@ -2771,6 +4322,27 @@ module Google
|
|
2771
4322
|
end
|
2772
4323
|
end
|
2773
4324
|
|
4325
|
+
# A group of mutations to be committed together. Related mutations should be
|
4326
|
+
# placed in a group. For example, two mutations inserting rows with the same
|
4327
|
+
# primary key prefix in both parent and child tables are related.
|
4328
|
+
class MutationGroup
|
4329
|
+
include Google::Apis::Core::Hashable
|
4330
|
+
|
4331
|
+
# Required. The mutations in this group.
|
4332
|
+
# Corresponds to the JSON property `mutations`
|
4333
|
+
# @return [Array<Google::Apis::SpannerV1::Mutation>]
|
4334
|
+
attr_accessor :mutations
|
4335
|
+
|
4336
|
+
def initialize(**args)
|
4337
|
+
update!(**args)
|
4338
|
+
end
|
4339
|
+
|
4340
|
+
# Update properties of this object
|
4341
|
+
def update!(**args)
|
4342
|
+
@mutations = args[:mutations] if args.key?(:mutations)
|
4343
|
+
end
|
4344
|
+
end
|
4345
|
+
|
2774
4346
|
# This resource represents a long-running operation that is the result of a
|
2775
4347
|
# network API call.
|
2776
4348
|
class Operation
|
@@ -2808,13 +4380,13 @@ module Google
|
|
2808
4380
|
# @return [String]
|
2809
4381
|
attr_accessor :name
|
2810
4382
|
|
2811
|
-
# The normal response of the operation
|
2812
|
-
#
|
2813
|
-
#
|
2814
|
-
#
|
2815
|
-
#
|
2816
|
-
#
|
2817
|
-
#
|
4383
|
+
# The normal, successful response of the operation. If the original method
|
4384
|
+
# returns no data on success, such as `Delete`, the response is `google.protobuf.
|
4385
|
+
# Empty`. If the original method is standard `Get`/`Create`/`Update`, the
|
4386
|
+
# response should be the resource. For other methods, the response should have
|
4387
|
+
# the type `XxxResponse`, where `Xxx` is the original method name. For example,
|
4388
|
+
# if the original method name is `TakeSnapshot()`, the inferred response type is
|
4389
|
+
# `TakeSnapshotResponse`.
|
2818
4390
|
# Corresponds to the JSON property `response`
|
2819
4391
|
# @return [Hash<String,Object>]
|
2820
4392
|
attr_accessor :response
|
@@ -2913,6 +4485,14 @@ module Google
|
|
2913
4485
|
# @return [Google::Apis::SpannerV1::ResultSetMetadata]
|
2914
4486
|
attr_accessor :metadata
|
2915
4487
|
|
4488
|
+
# When a read-write transaction is executed on a multiplexed session, this
|
4489
|
+
# precommit token is sent back to the client as a part of the [Transaction]
|
4490
|
+
# message in the BeginTransaction response and also as a part of the [ResultSet]
|
4491
|
+
# and [PartialResultSet] responses.
|
4492
|
+
# Corresponds to the JSON property `precommitToken`
|
4493
|
+
# @return [Google::Apis::SpannerV1::MultiplexedSessionPrecommitToken]
|
4494
|
+
attr_accessor :precommit_token
|
4495
|
+
|
2916
4496
|
# Streaming calls might be interrupted for a variety of reasons, such as TCP
|
2917
4497
|
# connection loss. If this occurs, the stream of results can be resumed by re-
|
2918
4498
|
# sending the original request and including `resume_token`. Note that executing
|
@@ -2974,6 +4554,7 @@ module Google
|
|
2974
4554
|
def update!(**args)
|
2975
4555
|
@chunked_value = args[:chunked_value] if args.key?(:chunked_value)
|
2976
4556
|
@metadata = args[:metadata] if args.key?(:metadata)
|
4557
|
+
@precommit_token = args[:precommit_token] if args.key?(:precommit_token)
|
2977
4558
|
@resume_token = args[:resume_token] if args.key?(:resume_token)
|
2978
4559
|
@stats = args[:stats] if args.key?(:stats)
|
2979
4560
|
@values = args[:values] if args.key?(:values)
|
@@ -3064,14 +4645,15 @@ module Google
|
|
3064
4645
|
# @return [Google::Apis::SpannerV1::PartitionOptions]
|
3065
4646
|
attr_accessor :partition_options
|
3066
4647
|
|
3067
|
-
# Required. The query request to generate partitions for. The request
|
3068
|
-
#
|
3069
|
-
#
|
3070
|
-
#
|
3071
|
-
#
|
3072
|
-
#
|
3073
|
-
#
|
3074
|
-
#
|
4648
|
+
# Required. The query request to generate partitions for. The request fails if
|
4649
|
+
# the query is not root partitionable. For a query to be root partitionable, it
|
4650
|
+
# needs to satisfy a few conditions. For example, if the query execution plan
|
4651
|
+
# contains a distributed union operator, then it must be the first operator in
|
4652
|
+
# the plan. For more information about other conditions, see [Read data in
|
4653
|
+
# parallel](https://cloud.google.com/spanner/docs/reads#read_data_in_parallel).
|
4654
|
+
# The query request must not contain DML commands, such as `INSERT`, `UPDATE`,
|
4655
|
+
# or `DELETE`. Use `ExecuteStreamingSql` with a PartitionedDml transaction for
|
4656
|
+
# large, partition-friendly DML operations.
|
3075
4657
|
# Corresponds to the JSON property `sql`
|
3076
4658
|
# @return [String]
|
3077
4659
|
attr_accessor :sql
|
@@ -3265,22 +4847,22 @@ module Google
|
|
3265
4847
|
# evaluates to `true`. A condition can add constraints based on attributes of
|
3266
4848
|
# the request, the resource, or both. To learn which resources support
|
3267
4849
|
# conditions in their IAM policies, see the [IAM documentation](https://cloud.
|
3268
|
-
# google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
|
4850
|
+
# google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
|
3269
4851
|
# bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
|
3270
4852
|
# "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
|
3271
4853
|
# serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
|
3272
4854
|
# roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
|
3273
4855
|
# ], "condition": ` "title": "expirable access", "description": "Does not grant
|
3274
4856
|
# access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
|
3275
|
-
# 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML
|
3276
|
-
# bindings: - members: - user:mike@example.com - group:admins@
|
3277
|
-
# domain:google.com - serviceAccount:my-project-id@appspot.
|
3278
|
-
# role: roles/resourcemanager.organizationAdmin - members: -
|
3279
|
-
# com role: roles/resourcemanager.organizationViewer condition:
|
3280
|
-
# access description: Does not grant access after Sep 2020
|
3281
|
-
# time < timestamp('2020-10-01T00:00:00.000Z') etag:
|
3282
|
-
# a description of IAM and its features, see the
|
3283
|
-
# cloud.google.com/iam/docs/).
|
4857
|
+
# 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
|
4858
|
+
# example:** ``` bindings: - members: - user:mike@example.com - group:admins@
|
4859
|
+
# example.com - domain:google.com - serviceAccount:my-project-id@appspot.
|
4860
|
+
# gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
|
4861
|
+
# user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
|
4862
|
+
# title: expirable access description: Does not grant access after Sep 2020
|
4863
|
+
# expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
|
4864
|
+
# BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
|
4865
|
+
# [IAM documentation](https://cloud.google.com/iam/docs/).
|
3284
4866
|
class Policy
|
3285
4867
|
include Google::Apis::Core::Hashable
|
3286
4868
|
|
@@ -3392,6 +4974,27 @@ module Google
|
|
3392
4974
|
end
|
3393
4975
|
end
|
3394
4976
|
|
4977
|
+
# Output of query advisor analysis.
|
4978
|
+
class QueryAdvisorResult
|
4979
|
+
include Google::Apis::Core::Hashable
|
4980
|
+
|
4981
|
+
# Optional. Index Recommendation for a query. This is an optional field and the
|
4982
|
+
# recommendation will only be available when the recommendation guarantees
|
4983
|
+
# significant improvement in query performance.
|
4984
|
+
# Corresponds to the JSON property `indexAdvice`
|
4985
|
+
# @return [Array<Google::Apis::SpannerV1::IndexAdvice>]
|
4986
|
+
attr_accessor :index_advice
|
4987
|
+
|
4988
|
+
def initialize(**args)
|
4989
|
+
update!(**args)
|
4990
|
+
end
|
4991
|
+
|
4992
|
+
# Update properties of this object
|
4993
|
+
def update!(**args)
|
4994
|
+
@index_advice = args[:index_advice] if args.key?(:index_advice)
|
4995
|
+
end
|
4996
|
+
end
|
4997
|
+
|
3395
4998
|
# Query optimizer configuration.
|
3396
4999
|
class QueryOptions
|
3397
5000
|
include Google::Apis::Core::Hashable
|
@@ -3450,6 +5053,11 @@ module Google
|
|
3450
5053
|
# @return [Array<Google::Apis::SpannerV1::PlanNode>]
|
3451
5054
|
attr_accessor :plan_nodes
|
3452
5055
|
|
5056
|
+
# Output of query advisor analysis.
|
5057
|
+
# Corresponds to the JSON property `queryAdvice`
|
5058
|
+
# @return [Google::Apis::SpannerV1::QueryAdvisorResult]
|
5059
|
+
attr_accessor :query_advice
|
5060
|
+
|
3453
5061
|
def initialize(**args)
|
3454
5062
|
update!(**args)
|
3455
5063
|
end
|
@@ -3457,6 +5065,73 @@ module Google
|
|
3457
5065
|
# Update properties of this object
|
3458
5066
|
def update!(**args)
|
3459
5067
|
@plan_nodes = args[:plan_nodes] if args.key?(:plan_nodes)
|
5068
|
+
@query_advice = args[:query_advice] if args.key?(:query_advice)
|
5069
|
+
end
|
5070
|
+
end
|
5071
|
+
|
5072
|
+
# Information about the dual-region quorum.
|
5073
|
+
class QuorumInfo
|
5074
|
+
include Google::Apis::Core::Hashable
|
5075
|
+
|
5076
|
+
# Output only. The etag is used for optimistic concurrency control as a way to
|
5077
|
+
# help prevent simultaneous `ChangeQuorum` requests that might create a race
|
5078
|
+
# condition.
|
5079
|
+
# Corresponds to the JSON property `etag`
|
5080
|
+
# @return [String]
|
5081
|
+
attr_accessor :etag
|
5082
|
+
|
5083
|
+
# Output only. Whether this `ChangeQuorum` is Google or User initiated.
|
5084
|
+
# Corresponds to the JSON property `initiator`
|
5085
|
+
# @return [String]
|
5086
|
+
attr_accessor :initiator
|
5087
|
+
|
5088
|
+
# Information about the database quorum type. This only applies to dual-region
|
5089
|
+
# instance configs.
|
5090
|
+
# Corresponds to the JSON property `quorumType`
|
5091
|
+
# @return [Google::Apis::SpannerV1::QuorumType]
|
5092
|
+
attr_accessor :quorum_type
|
5093
|
+
|
5094
|
+
# Output only. The timestamp when the request was triggered.
|
5095
|
+
# Corresponds to the JSON property `startTime`
|
5096
|
+
# @return [String]
|
5097
|
+
attr_accessor :start_time
|
5098
|
+
|
5099
|
+
def initialize(**args)
|
5100
|
+
update!(**args)
|
5101
|
+
end
|
5102
|
+
|
5103
|
+
# Update properties of this object
|
5104
|
+
def update!(**args)
|
5105
|
+
@etag = args[:etag] if args.key?(:etag)
|
5106
|
+
@initiator = args[:initiator] if args.key?(:initiator)
|
5107
|
+
@quorum_type = args[:quorum_type] if args.key?(:quorum_type)
|
5108
|
+
@start_time = args[:start_time] if args.key?(:start_time)
|
5109
|
+
end
|
5110
|
+
end
|
5111
|
+
|
5112
|
+
# Information about the database quorum type. This only applies to dual-region
|
5113
|
+
# instance configs.
|
5114
|
+
class QuorumType
|
5115
|
+
include Google::Apis::Core::Hashable
|
5116
|
+
|
5117
|
+
# Message type for a dual-region quorum. Currently this type has no options.
|
5118
|
+
# Corresponds to the JSON property `dualRegion`
|
5119
|
+
# @return [Google::Apis::SpannerV1::DualRegionQuorum]
|
5120
|
+
attr_accessor :dual_region
|
5121
|
+
|
5122
|
+
# Message type for a single-region quorum.
|
5123
|
+
# Corresponds to the JSON property `singleRegion`
|
5124
|
+
# @return [Google::Apis::SpannerV1::SingleRegionQuorum]
|
5125
|
+
attr_accessor :single_region
|
5126
|
+
|
5127
|
+
def initialize(**args)
|
5128
|
+
update!(**args)
|
5129
|
+
end
|
5130
|
+
|
5131
|
+
# Update properties of this object
|
5132
|
+
def update!(**args)
|
5133
|
+
@dual_region = args[:dual_region] if args.key?(:dual_region)
|
5134
|
+
@single_region = args[:single_region] if args.key?(:single_region)
|
3460
5135
|
end
|
3461
5136
|
end
|
3462
5137
|
|
@@ -3545,6 +5220,23 @@ module Google
|
|
3545
5220
|
# @return [Array<String>]
|
3546
5221
|
attr_accessor :columns
|
3547
5222
|
|
5223
|
+
# If this is for a partitioned read and this field is set to `true`, the request
|
5224
|
+
# is executed with Spanner Data Boost independent compute resources. If the
|
5225
|
+
# field is set to `true` but the request does not set `partition_token`, the API
|
5226
|
+
# returns an `INVALID_ARGUMENT` error.
|
5227
|
+
# Corresponds to the JSON property `dataBoostEnabled`
|
5228
|
+
# @return [Boolean]
|
5229
|
+
attr_accessor :data_boost_enabled
|
5230
|
+
alias_method :data_boost_enabled?, :data_boost_enabled
|
5231
|
+
|
5232
|
+
# The DirectedReadOptions can be used to indicate which replicas or regions
|
5233
|
+
# should be used for non-transactional reads or queries. DirectedReadOptions may
|
5234
|
+
# only be specified for a read-only transaction, otherwise the API will return
|
5235
|
+
# an `INVALID_ARGUMENT` error.
|
5236
|
+
# Corresponds to the JSON property `directedReadOptions`
|
5237
|
+
# @return [Google::Apis::SpannerV1::DirectedReadOptions]
|
5238
|
+
attr_accessor :directed_read_options
|
5239
|
+
|
3548
5240
|
# If non-empty, the name of an index on table. This index is used instead of the
|
3549
5241
|
# table primary key when interpreting key_set and sorting result rows. See
|
3550
5242
|
# key_set for further information.
|
@@ -3568,6 +5260,22 @@ module Google
|
|
3568
5260
|
# @return [Fixnum]
|
3569
5261
|
attr_accessor :limit
|
3570
5262
|
|
5263
|
+
# Optional. Lock Hint for the request, it can only be used with read-write
|
5264
|
+
# transactions.
|
5265
|
+
# Corresponds to the JSON property `lockHint`
|
5266
|
+
# @return [String]
|
5267
|
+
attr_accessor :lock_hint
|
5268
|
+
|
5269
|
+
# Optional. Order for the returned rows. By default, Spanner will return result
|
5270
|
+
# rows in primary key order except for PartitionRead requests. For applications
|
5271
|
+
# that do not require rows to be returned in primary key (`ORDER_BY_PRIMARY_KEY`)
|
5272
|
+
# order, setting `ORDER_BY_NO_ORDER` option allows Spanner to optimize row
|
5273
|
+
# retrieval, resulting in lower latencies in certain cases (e.g. bulk point
|
5274
|
+
# lookups).
|
5275
|
+
# Corresponds to the JSON property `orderBy`
|
5276
|
+
# @return [String]
|
5277
|
+
attr_accessor :order_by
|
5278
|
+
|
3571
5279
|
# If present, results will be restricted to the specified partition previously
|
3572
5280
|
# created using PartitionRead(). There must be an exact match for the values of
|
3573
5281
|
# fields common to this message and the PartitionReadRequest message used to
|
@@ -3610,9 +5318,13 @@ module Google
|
|
3610
5318
|
# Update properties of this object
|
3611
5319
|
def update!(**args)
|
3612
5320
|
@columns = args[:columns] if args.key?(:columns)
|
5321
|
+
@data_boost_enabled = args[:data_boost_enabled] if args.key?(:data_boost_enabled)
|
5322
|
+
@directed_read_options = args[:directed_read_options] if args.key?(:directed_read_options)
|
3613
5323
|
@index = args[:index] if args.key?(:index)
|
3614
5324
|
@key_set = args[:key_set] if args.key?(:key_set)
|
3615
5325
|
@limit = args[:limit] if args.key?(:limit)
|
5326
|
+
@lock_hint = args[:lock_hint] if args.key?(:lock_hint)
|
5327
|
+
@order_by = args[:order_by] if args.key?(:order_by)
|
3616
5328
|
@partition_token = args[:partition_token] if args.key?(:partition_token)
|
3617
5329
|
@request_options = args[:request_options] if args.key?(:request_options)
|
3618
5330
|
@resume_token = args[:resume_token] if args.key?(:resume_token)
|
@@ -3626,12 +5338,61 @@ module Google
|
|
3626
5338
|
class ReadWrite
|
3627
5339
|
include Google::Apis::Core::Hashable
|
3628
5340
|
|
5341
|
+
# Optional. Clients should pass the transaction ID of the previous transaction
|
5342
|
+
# attempt that was aborted if this transaction is being executed on a
|
5343
|
+
# multiplexed session.
|
5344
|
+
# Corresponds to the JSON property `multiplexedSessionPreviousTransactionId`
|
5345
|
+
# NOTE: Values are automatically base64 encoded/decoded in the client library.
|
5346
|
+
# @return [String]
|
5347
|
+
attr_accessor :multiplexed_session_previous_transaction_id
|
5348
|
+
|
5349
|
+
# Read lock mode for the transaction.
|
5350
|
+
# Corresponds to the JSON property `readLockMode`
|
5351
|
+
# @return [String]
|
5352
|
+
attr_accessor :read_lock_mode
|
5353
|
+
|
5354
|
+
def initialize(**args)
|
5355
|
+
update!(**args)
|
5356
|
+
end
|
5357
|
+
|
5358
|
+
# Update properties of this object
|
5359
|
+
def update!(**args)
|
5360
|
+
@multiplexed_session_previous_transaction_id = args[:multiplexed_session_previous_transaction_id] if args.key?(:multiplexed_session_previous_transaction_id)
|
5361
|
+
@read_lock_mode = args[:read_lock_mode] if args.key?(:read_lock_mode)
|
5362
|
+
end
|
5363
|
+
end
|
5364
|
+
|
5365
|
+
# ReplicaComputeCapacity describes the amount of server resources that are
|
5366
|
+
# allocated to each replica identified by the replica selection.
|
5367
|
+
class ReplicaComputeCapacity
|
5368
|
+
include Google::Apis::Core::Hashable
|
5369
|
+
|
5370
|
+
# The number of nodes allocated to each replica. This may be zero in API
|
5371
|
+
# responses for instances that are not yet in state `READY`.
|
5372
|
+
# Corresponds to the JSON property `nodeCount`
|
5373
|
+
# @return [Fixnum]
|
5374
|
+
attr_accessor :node_count
|
5375
|
+
|
5376
|
+
# The number of processing units allocated to each replica. This may be zero in
|
5377
|
+
# API responses for instances that are not yet in state `READY`.
|
5378
|
+
# Corresponds to the JSON property `processingUnits`
|
5379
|
+
# @return [Fixnum]
|
5380
|
+
attr_accessor :processing_units
|
5381
|
+
|
5382
|
+
# ReplicaSelection identifies replicas with common properties.
|
5383
|
+
# Corresponds to the JSON property `replicaSelection`
|
5384
|
+
# @return [Google::Apis::SpannerV1::InstanceReplicaSelection]
|
5385
|
+
attr_accessor :replica_selection
|
5386
|
+
|
3629
5387
|
def initialize(**args)
|
3630
5388
|
update!(**args)
|
3631
5389
|
end
|
3632
5390
|
|
3633
5391
|
# Update properties of this object
|
3634
5392
|
def update!(**args)
|
5393
|
+
@node_count = args[:node_count] if args.key?(:node_count)
|
5394
|
+
@processing_units = args[:processing_units] if args.key?(:processing_units)
|
5395
|
+
@replica_selection = args[:replica_selection] if args.key?(:replica_selection)
|
3635
5396
|
end
|
3636
5397
|
end
|
3637
5398
|
|
@@ -3647,7 +5408,7 @@ module Google
|
|
3647
5408
|
attr_accessor :default_leader_location
|
3648
5409
|
alias_method :default_leader_location?, :default_leader_location
|
3649
5410
|
|
3650
|
-
# The location of the serving resources, e.g
|
5411
|
+
# The location of the serving resources, e.g., "us-central1".
|
3651
5412
|
# Corresponds to the JSON property `location`
|
3652
5413
|
# @return [String]
|
3653
5414
|
attr_accessor :location
|
@@ -3669,6 +5430,39 @@ module Google
|
|
3669
5430
|
end
|
3670
5431
|
end
|
3671
5432
|
|
5433
|
+
# The directed read replica selector. Callers must provide one or more of the
|
5434
|
+
# following fields for replica selection: * `location` - The location must be
|
5435
|
+
# one of the regions within the multi-region configuration of your database. * `
|
5436
|
+
# type` - The type of the replica. Some examples of using replica_selectors are:
|
5437
|
+
# * `location:us-east1` --> The "us-east1" replica(s) of any available type will
|
5438
|
+
# be used to process the request. * `type:READ_ONLY` --> The "READ_ONLY" type
|
5439
|
+
# replica(s) in nearest available location will be used to process the request. *
|
5440
|
+
# `location:us-east1 type:READ_ONLY` --> The "READ_ONLY" type replica(s) in
|
5441
|
+
# location "us-east1" will be used to process the request.
|
5442
|
+
class ReplicaSelection
|
5443
|
+
include Google::Apis::Core::Hashable
|
5444
|
+
|
5445
|
+
# The location or region of the serving requests, e.g. "us-east1".
|
5446
|
+
# Corresponds to the JSON property `location`
|
5447
|
+
# @return [String]
|
5448
|
+
attr_accessor :location
|
5449
|
+
|
5450
|
+
# The type of replica.
|
5451
|
+
# Corresponds to the JSON property `type`
|
5452
|
+
# @return [String]
|
5453
|
+
attr_accessor :type
|
5454
|
+
|
5455
|
+
def initialize(**args)
|
5456
|
+
update!(**args)
|
5457
|
+
end
|
5458
|
+
|
5459
|
+
# Update properties of this object
|
5460
|
+
def update!(**args)
|
5461
|
+
@location = args[:location] if args.key?(:location)
|
5462
|
+
@type = args[:type] if args.key?(:type)
|
5463
|
+
end
|
5464
|
+
end
|
5465
|
+
|
3672
5466
|
# Common request options for various APIs.
|
3673
5467
|
class RequestOptions
|
3674
5468
|
include Google::Apis::Core::Hashable
|
@@ -3732,6 +5526,21 @@ module Google
|
|
3732
5526
|
# @return [String]
|
3733
5527
|
attr_accessor :kms_key_name
|
3734
5528
|
|
5529
|
+
# Optional. Specifies the KMS configuration for one or more keys used to encrypt
|
5530
|
+
# the database. Values have the form `projects//locations//keyRings//cryptoKeys/`
|
5531
|
+
# . The keys referenced by `kms_key_names` must fully cover all regions of the
|
5532
|
+
# database's instance configuration. Some examples: * For regional (single-
|
5533
|
+
# region) instance configurations, specify a regional location KMS key. * For
|
5534
|
+
# multi-region instance configurations of type `GOOGLE_MANAGED`, either specify
|
5535
|
+
# a multi-region location KMS key or multiple regional location KMS keys that
|
5536
|
+
# cover all regions in the instance configuration. * For an instance
|
5537
|
+
# configuration of type `USER_MANAGED`, specify only regional location KMS keys
|
5538
|
+
# to cover each region in the instance configuration. Multi-region location KMS
|
5539
|
+
# keys aren't supported for `USER_MANAGED` type instance configurations.
|
5540
|
+
# Corresponds to the JSON property `kmsKeyNames`
|
5541
|
+
# @return [Array<String>]
|
5542
|
+
attr_accessor :kms_key_names
|
5543
|
+
|
3735
5544
|
def initialize(**args)
|
3736
5545
|
update!(**args)
|
3737
5546
|
end
|
@@ -3740,6 +5549,7 @@ module Google
|
|
3740
5549
|
def update!(**args)
|
3741
5550
|
@encryption_type = args[:encryption_type] if args.key?(:encryption_type)
|
3742
5551
|
@kms_key_name = args[:kms_key_name] if args.key?(:kms_key_name)
|
5552
|
+
@kms_key_names = args[:kms_key_names] if args.key?(:kms_key_names)
|
3743
5553
|
end
|
3744
5554
|
end
|
3745
5555
|
|
@@ -3876,6 +5686,14 @@ module Google
|
|
3876
5686
|
# @return [Google::Apis::SpannerV1::ResultSetMetadata]
|
3877
5687
|
attr_accessor :metadata
|
3878
5688
|
|
5689
|
+
# When a read-write transaction is executed on a multiplexed session, this
|
5690
|
+
# precommit token is sent back to the client as a part of the [Transaction]
|
5691
|
+
# message in the BeginTransaction response and also as a part of the [ResultSet]
|
5692
|
+
# and [PartialResultSet] responses.
|
5693
|
+
# Corresponds to the JSON property `precommitToken`
|
5694
|
+
# @return [Google::Apis::SpannerV1::MultiplexedSessionPrecommitToken]
|
5695
|
+
attr_accessor :precommit_token
|
5696
|
+
|
3879
5697
|
# Each element in `rows` is a row whose format is defined by metadata.row_type.
|
3880
5698
|
# The ith element in each row matches the ith field in metadata.row_type.
|
3881
5699
|
# Elements are encoded based on type as described here.
|
@@ -3895,6 +5713,7 @@ module Google
|
|
3895
5713
|
# Update properties of this object
|
3896
5714
|
def update!(**args)
|
3897
5715
|
@metadata = args[:metadata] if args.key?(:metadata)
|
5716
|
+
@precommit_token = args[:precommit_token] if args.key?(:precommit_token)
|
3898
5717
|
@rows = args[:rows] if args.key?(:rows)
|
3899
5718
|
@stats = args[:stats] if args.key?(:stats)
|
3900
5719
|
end
|
@@ -3914,6 +5733,11 @@ module Google
|
|
3914
5733
|
# @return [Google::Apis::SpannerV1::Transaction]
|
3915
5734
|
attr_accessor :transaction
|
3916
5735
|
|
5736
|
+
# `StructType` defines the fields of a STRUCT type.
|
5737
|
+
# Corresponds to the JSON property `undeclaredParameters`
|
5738
|
+
# @return [Google::Apis::SpannerV1::StructType]
|
5739
|
+
attr_accessor :undeclared_parameters
|
5740
|
+
|
3917
5741
|
def initialize(**args)
|
3918
5742
|
update!(**args)
|
3919
5743
|
end
|
@@ -3922,6 +5746,7 @@ module Google
|
|
3922
5746
|
def update!(**args)
|
3923
5747
|
@row_type = args[:row_type] if args.key?(:row_type)
|
3924
5748
|
@transaction = args[:transaction] if args.key?(:transaction)
|
5749
|
+
@undeclared_parameters = args[:undeclared_parameters] if args.key?(:undeclared_parameters)
|
3925
5750
|
end
|
3926
5751
|
end
|
3927
5752
|
|
@@ -4096,6 +5921,16 @@ module Google
|
|
4096
5921
|
# @return [Hash<String,String>]
|
4097
5922
|
attr_accessor :labels
|
4098
5923
|
|
5924
|
+
# Optional. If true, specifies a multiplexed session. Use a multiplexed session
|
5925
|
+
# for multiple, concurrent read-only operations. Don't use them for read-write
|
5926
|
+
# transactions, partitioned reads, or partitioned queries. Use CreateSession to
|
5927
|
+
# create multiplexed sessions. Don't use BatchCreateSessions to create a
|
5928
|
+
# multiplexed session. You can't delete or list multiplexed sessions.
|
5929
|
+
# Corresponds to the JSON property `multiplexed`
|
5930
|
+
# @return [Boolean]
|
5931
|
+
attr_accessor :multiplexed
|
5932
|
+
alias_method :multiplexed?, :multiplexed
|
5933
|
+
|
4099
5934
|
# Output only. The name of the session. This is always system-assigned.
|
4100
5935
|
# Corresponds to the JSON property `name`
|
4101
5936
|
# @return [String]
|
@@ -4111,6 +5946,7 @@ module Google
|
|
4111
5946
|
@create_time = args[:create_time] if args.key?(:create_time)
|
4112
5947
|
@creator_role = args[:creator_role] if args.key?(:creator_role)
|
4113
5948
|
@labels = args[:labels] if args.key?(:labels)
|
5949
|
+
@multiplexed = args[:multiplexed] if args.key?(:multiplexed)
|
4114
5950
|
@name = args[:name] if args.key?(:name)
|
4115
5951
|
end
|
4116
5952
|
end
|
@@ -4130,22 +5966,22 @@ module Google
|
|
4130
5966
|
# evaluates to `true`. A condition can add constraints based on attributes of
|
4131
5967
|
# the request, the resource, or both. To learn which resources support
|
4132
5968
|
# conditions in their IAM policies, see the [IAM documentation](https://cloud.
|
4133
|
-
# google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
|
5969
|
+
# google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
|
4134
5970
|
# bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
|
4135
5971
|
# "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
|
4136
5972
|
# serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
|
4137
5973
|
# roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
|
4138
5974
|
# ], "condition": ` "title": "expirable access", "description": "Does not grant
|
4139
5975
|
# access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
|
4140
|
-
# 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML
|
4141
|
-
# bindings: - members: - user:mike@example.com - group:admins@
|
4142
|
-
# domain:google.com - serviceAccount:my-project-id@appspot.
|
4143
|
-
# role: roles/resourcemanager.organizationAdmin - members: -
|
4144
|
-
# com role: roles/resourcemanager.organizationViewer condition:
|
4145
|
-
# access description: Does not grant access after Sep 2020
|
4146
|
-
# time < timestamp('2020-10-01T00:00:00.000Z') etag:
|
4147
|
-
# a description of IAM and its features, see the
|
4148
|
-
# cloud.google.com/iam/docs/).
|
5976
|
+
# 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
|
5977
|
+
# example:** ``` bindings: - members: - user:mike@example.com - group:admins@
|
5978
|
+
# example.com - domain:google.com - serviceAccount:my-project-id@appspot.
|
5979
|
+
# gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
|
5980
|
+
# user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
|
5981
|
+
# title: expirable access description: Does not grant access after Sep 2020
|
5982
|
+
# expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
|
5983
|
+
# BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
|
5984
|
+
# [IAM documentation](https://cloud.google.com/iam/docs/).
|
4149
5985
|
# Corresponds to the JSON property `policy`
|
4150
5986
|
# @return [Google::Apis::SpannerV1::Policy]
|
4151
5987
|
attr_accessor :policy
|
@@ -4189,6 +6025,29 @@ module Google
|
|
4189
6025
|
end
|
4190
6026
|
end
|
4191
6027
|
|
6028
|
+
# Message type for a single-region quorum.
|
6029
|
+
class SingleRegionQuorum
|
6030
|
+
include Google::Apis::Core::Hashable
|
6031
|
+
|
6032
|
+
# Required. The location of the serving region, e.g. "us-central1". The location
|
6033
|
+
# must be one of the regions within the dual-region instance configuration of
|
6034
|
+
# your database. The list of valid locations is available using the
|
6035
|
+
# GetInstanceConfig API. This should only be used if you plan to change quorum
|
6036
|
+
# to the single-region quorum type.
|
6037
|
+
# Corresponds to the JSON property `servingLocation`
|
6038
|
+
# @return [String]
|
6039
|
+
attr_accessor :serving_location
|
6040
|
+
|
6041
|
+
def initialize(**args)
|
6042
|
+
update!(**args)
|
6043
|
+
end
|
6044
|
+
|
6045
|
+
# Update properties of this object
|
6046
|
+
def update!(**args)
|
6047
|
+
@serving_location = args[:serving_location] if args.key?(:serving_location)
|
6048
|
+
end
|
6049
|
+
end
|
6050
|
+
|
4192
6051
|
# A single DML statement.
|
4193
6052
|
class Statement
|
4194
6053
|
include Google::Apis::Core::Hashable
|
@@ -4343,6 +6202,14 @@ module Google
|
|
4343
6202
|
# @return [String]
|
4344
6203
|
attr_accessor :id
|
4345
6204
|
|
6205
|
+
# When a read-write transaction is executed on a multiplexed session, this
|
6206
|
+
# precommit token is sent back to the client as a part of the [Transaction]
|
6207
|
+
# message in the BeginTransaction response and also as a part of the [ResultSet]
|
6208
|
+
# and [PartialResultSet] responses.
|
6209
|
+
# Corresponds to the JSON property `precommitToken`
|
6210
|
+
# @return [Google::Apis::SpannerV1::MultiplexedSessionPrecommitToken]
|
6211
|
+
attr_accessor :precommit_token
|
6212
|
+
|
4346
6213
|
# For snapshot read-only transactions, the read timestamp chosen for the
|
4347
6214
|
# transaction. Not returned by default: see TransactionOptions.ReadOnly.
|
4348
6215
|
# return_read_timestamp. A timestamp in RFC3339 UTC \"Zulu\" format, accurate to
|
@@ -4358,6 +6225,7 @@ module Google
|
|
4358
6225
|
# Update properties of this object
|
4359
6226
|
def update!(**args)
|
4360
6227
|
@id = args[:id] if args.key?(:id)
|
6228
|
+
@precommit_token = args[:precommit_token] if args.key?(:precommit_token)
|
4361
6229
|
@read_timestamp = args[:read_timestamp] if args.key?(:read_timestamp)
|
4362
6230
|
end
|
4363
6231
|
end
|
@@ -4378,7 +6246,7 @@ module Google
|
|
4378
6246
|
# such that the read is guaranteed to see the effects of all transactions that
|
4379
6247
|
# have committed before the start of the read). Snapshot read-only transactions
|
4380
6248
|
# do not need to be committed. Queries on change streams must be performed with
|
4381
|
-
# the snapshot read-only transaction mode, specifying a strong read.
|
6249
|
+
# the snapshot read-only transaction mode, specifying a strong read. See
|
4382
6250
|
# TransactionOptions.ReadOnly.strong for more details. 3. Partitioned DML. This
|
4383
6251
|
# type of transaction is used to execute a single Partitioned DML statement.
|
4384
6252
|
# Partitioned DML partitions the key space and runs the DML statement over each
|
@@ -4414,87 +6282,92 @@ module Google
|
|
4414
6282
|
# committing the retry, the client should execute the retry in the same session
|
4415
6283
|
# as the original attempt. The original session's lock priority increases with
|
4416
6284
|
# each consecutive abort, meaning that each attempt has a slightly better chance
|
4417
|
-
# of success than the previous.
|
4418
|
-
#
|
4419
|
-
#
|
4420
|
-
#
|
4421
|
-
#
|
4422
|
-
#
|
4423
|
-
#
|
4424
|
-
#
|
4425
|
-
#
|
4426
|
-
#
|
4427
|
-
#
|
4428
|
-
#
|
4429
|
-
#
|
4430
|
-
#
|
4431
|
-
# transaction
|
4432
|
-
#
|
4433
|
-
#
|
4434
|
-
#
|
4435
|
-
#
|
4436
|
-
#
|
4437
|
-
#
|
4438
|
-
#
|
4439
|
-
#
|
4440
|
-
#
|
4441
|
-
#
|
4442
|
-
#
|
4443
|
-
#
|
4444
|
-
# transactions
|
4445
|
-
#
|
4446
|
-
# timestamp bound
|
4447
|
-
#
|
4448
|
-
#
|
4449
|
-
#
|
4450
|
-
#
|
4451
|
-
#
|
4452
|
-
#
|
4453
|
-
#
|
4454
|
-
#
|
4455
|
-
#
|
4456
|
-
#
|
4457
|
-
#
|
4458
|
-
#
|
4459
|
-
#
|
4460
|
-
#
|
4461
|
-
#
|
4462
|
-
#
|
4463
|
-
#
|
4464
|
-
#
|
4465
|
-
#
|
4466
|
-
#
|
4467
|
-
#
|
4468
|
-
#
|
4469
|
-
#
|
4470
|
-
#
|
4471
|
-
#
|
4472
|
-
#
|
4473
|
-
#
|
4474
|
-
#
|
4475
|
-
#
|
4476
|
-
#
|
4477
|
-
#
|
4478
|
-
#
|
4479
|
-
#
|
4480
|
-
#
|
4481
|
-
#
|
4482
|
-
#
|
4483
|
-
#
|
4484
|
-
#
|
4485
|
-
#
|
4486
|
-
#
|
4487
|
-
#
|
4488
|
-
#
|
4489
|
-
#
|
4490
|
-
#
|
4491
|
-
#
|
4492
|
-
#
|
4493
|
-
#
|
4494
|
-
#
|
4495
|
-
#
|
4496
|
-
#
|
4497
|
-
#
|
6285
|
+
# of success than the previous. Note that the lock priority is preserved per
|
6286
|
+
# session (not per transaction). Lock priority is set by the first read or write
|
6287
|
+
# in the first attempt of a read-write transaction. If the application starts a
|
6288
|
+
# new session to retry the whole transaction, the transaction loses its original
|
6289
|
+
# lock priority. Moreover, the lock priority is only preserved if the
|
6290
|
+
# transaction fails with an `ABORTED` error. Under some circumstances (for
|
6291
|
+
# example, many transactions attempting to modify the same row(s)), a
|
6292
|
+
# transaction can abort many times in a short period before successfully
|
6293
|
+
# committing. Thus, it is not a good idea to cap the number of retries a
|
6294
|
+
# transaction can attempt; instead, it is better to limit the total amount of
|
6295
|
+
# time spent retrying. Idle transactions: A transaction is considered idle if it
|
6296
|
+
# has no outstanding reads or SQL queries and has not started a read or SQL
|
6297
|
+
# query within the last 10 seconds. Idle transactions can be aborted by Cloud
|
6298
|
+
# Spanner so that they don't hold on to locks indefinitely. If an idle
|
6299
|
+
# transaction is aborted, the commit will fail with error `ABORTED`. If this
|
6300
|
+
# behavior is undesirable, periodically executing a simple SQL query in the
|
6301
|
+
# transaction (for example, `SELECT 1`) prevents the transaction from becoming
|
6302
|
+
# idle. Snapshot read-only transactions: Snapshot read-only transactions
|
6303
|
+
# provides a simpler method than locking read-write transactions for doing
|
6304
|
+
# several consistent reads. However, this type of transaction does not support
|
6305
|
+
# writes. Snapshot transactions do not take locks. Instead, they work by
|
6306
|
+
# choosing a Cloud Spanner timestamp, then executing all reads at that timestamp.
|
6307
|
+
# Since they do not acquire locks, they do not block concurrent read-write
|
6308
|
+
# transactions. Unlike locking read-write transactions, snapshot read-only
|
6309
|
+
# transactions never abort. They can fail if the chosen read timestamp is
|
6310
|
+
# garbage collected; however, the default garbage collection policy is generous
|
6311
|
+
# enough that most applications do not need to worry about this in practice.
|
6312
|
+
# Snapshot read-only transactions do not need to call Commit or Rollback (and in
|
6313
|
+
# fact are not permitted to do so). To execute a snapshot transaction, the
|
6314
|
+
# client specifies a timestamp bound, which tells Cloud Spanner how to choose a
|
6315
|
+
# read timestamp. The types of timestamp bound are: - Strong (the default). -
|
6316
|
+
# Bounded staleness. - Exact staleness. If the Cloud Spanner database to be read
|
6317
|
+
# is geographically distributed, stale read-only transactions can execute more
|
6318
|
+
# quickly than strong or read-write transactions, because they are able to
|
6319
|
+
# execute far from the leader replica. Each type of timestamp bound is discussed
|
6320
|
+
# in detail below. Strong: Strong reads are guaranteed to see the effects of all
|
6321
|
+
# transactions that have committed before the start of the read. Furthermore,
|
6322
|
+
# all rows yielded by a single read are consistent with each other -- if any
|
6323
|
+
# part of the read observes a transaction, all parts of the read see the
|
6324
|
+
# transaction. Strong reads are not repeatable: two consecutive strong read-only
|
6325
|
+
# transactions might return inconsistent results if there are concurrent writes.
|
6326
|
+
# If consistency across reads is required, the reads should be executed within a
|
6327
|
+
# transaction or at an exact read timestamp. Queries on change streams (see
|
6328
|
+
# below for more details) must also specify the strong read timestamp bound. See
|
6329
|
+
# TransactionOptions.ReadOnly.strong. Exact staleness: These timestamp bounds
|
6330
|
+
# execute reads at a user-specified timestamp. Reads at a timestamp are
|
6331
|
+
# guaranteed to see a consistent prefix of the global transaction history: they
|
6332
|
+
# observe modifications done by all transactions with a commit timestamp less
|
6333
|
+
# than or equal to the read timestamp, and observe none of the modifications
|
6334
|
+
# done by transactions with a larger commit timestamp. They will block until all
|
6335
|
+
# conflicting transactions that may be assigned commit timestamps <= the read
|
6336
|
+
# timestamp have finished. The timestamp can either be expressed as an absolute
|
6337
|
+
# Cloud Spanner commit timestamp or a staleness relative to the current time.
|
6338
|
+
# These modes do not require a "negotiation phase" to pick a timestamp. As a
|
6339
|
+
# result, they execute slightly faster than the equivalent boundedly stale
|
6340
|
+
# concurrency modes. On the other hand, boundedly stale reads usually return
|
6341
|
+
# fresher results. See TransactionOptions.ReadOnly.read_timestamp and
|
6342
|
+
# TransactionOptions.ReadOnly.exact_staleness. Bounded staleness: Bounded
|
6343
|
+
# staleness modes allow Cloud Spanner to pick the read timestamp, subject to a
|
6344
|
+
# user-provided staleness bound. Cloud Spanner chooses the newest timestamp
|
6345
|
+
# within the staleness bound that allows execution of the reads at the closest
|
6346
|
+
# available replica without blocking. All rows yielded are consistent with each
|
6347
|
+
# other -- if any part of the read observes a transaction, all parts of the read
|
6348
|
+
# see the transaction. Boundedly stale reads are not repeatable: two stale reads,
|
6349
|
+
# even if they use the same staleness bound, can execute at different
|
6350
|
+
# timestamps and thus return inconsistent results. Boundedly stale reads execute
|
6351
|
+
# in two phases: the first phase negotiates a timestamp among all replicas
|
6352
|
+
# needed to serve the read. In the second phase, reads are executed at the
|
6353
|
+
# negotiated timestamp. As a result of the two phase execution, bounded
|
6354
|
+
# staleness reads are usually a little slower than comparable exact staleness
|
6355
|
+
# reads. However, they are typically able to return fresher results, and are
|
6356
|
+
# more likely to execute at the closest replica. Because the timestamp
|
6357
|
+
# negotiation requires up-front knowledge of which rows will be read, it can
|
6358
|
+
# only be used with single-use read-only transactions. See TransactionOptions.
|
6359
|
+
# ReadOnly.max_staleness and TransactionOptions.ReadOnly.min_read_timestamp. Old
|
6360
|
+
# read timestamps and garbage collection: Cloud Spanner continuously garbage
|
6361
|
+
# collects deleted and overwritten data in the background to reclaim storage
|
6362
|
+
# space. This process is known as "version GC". By default, version GC reclaims
|
6363
|
+
# versions after they are one hour old. Because of this, Cloud Spanner cannot
|
6364
|
+
# perform reads at read timestamps more than one hour in the past. This
|
6365
|
+
# restriction also applies to in-progress reads and/or SQL queries whose
|
6366
|
+
# timestamp become too old while executing. Reads and SQL queries with too-old
|
6367
|
+
# read timestamps fail with the error `FAILED_PRECONDITION`. You can configure
|
6368
|
+
# and extend the `VERSION_RETENTION_PERIOD` of a database up to a period as long
|
6369
|
+
# as one week, which allows Cloud Spanner to perform reads up to one week in the
|
6370
|
+
# past. Querying change Streams: A Change Stream is a schema object that can be
|
4498
6371
|
# configured to watch data changes on the entire database, a set of tables, or a
|
4499
6372
|
# set of columns in a database. When a change stream is created, Spanner
|
4500
6373
|
# automatically defines a corresponding SQL Table-Valued Function (TVF) that can
|
@@ -4530,12 +6403,12 @@ module Google
|
|
4530
6403
|
# of the table. Rather, the statement is applied atomically to partitions of the
|
4531
6404
|
# table, in independent transactions. Secondary index rows are updated
|
4532
6405
|
# atomically with the base table rows. - Partitioned DML does not guarantee
|
4533
|
-
# exactly-once execution semantics against a partition. The statement
|
4534
|
-
#
|
4535
|
-
#
|
4536
|
-
#
|
4537
|
-
# column
|
4538
|
-
#
|
6406
|
+
# exactly-once execution semantics against a partition. The statement is applied
|
6407
|
+
# at least once to each partition. It is strongly recommended that the DML
|
6408
|
+
# statement should be idempotent to avoid unexpected results. For instance, it
|
6409
|
+
# is potentially dangerous to run a statement such as `UPDATE table SET column =
|
6410
|
+
# column + 1` as it could be run multiple times against some rows. - The
|
6411
|
+
# partitions are committed automatically - there is no support for Commit or
|
4539
6412
|
# Rollback. If the call returns an error, or if the client issuing the
|
4540
6413
|
# ExecuteSql call dies, it is possible that some rows had the statement executed
|
4541
6414
|
# on them successfully. It is also possible that statement was never executed
|
@@ -4552,6 +6425,22 @@ module Google
|
|
4552
6425
|
class TransactionOptions
|
4553
6426
|
include Google::Apis::Core::Hashable
|
4554
6427
|
|
6428
|
+
# When `exclude_txn_from_change_streams` is set to `true`: * Modifications from
|
6429
|
+
# this transaction will not be recorded in change streams with DDL option `
|
6430
|
+
# allow_txn_exclusion=true` that are tracking columns modified by these
|
6431
|
+
# transactions. * Modifications from this transaction will be recorded in change
|
6432
|
+
# streams with DDL option `allow_txn_exclusion=false or not set` that are
|
6433
|
+
# tracking columns modified by these transactions. When `
|
6434
|
+
# exclude_txn_from_change_streams` is set to `false` or not set, Modifications
|
6435
|
+
# from this transaction will be recorded in all change streams that are tracking
|
6436
|
+
# columns modified by these transactions. `exclude_txn_from_change_streams` may
|
6437
|
+
# only be specified for read-write or partitioned-dml transactions, otherwise
|
6438
|
+
# the API will return an `INVALID_ARGUMENT` error.
|
6439
|
+
# Corresponds to the JSON property `excludeTxnFromChangeStreams`
|
6440
|
+
# @return [Boolean]
|
6441
|
+
attr_accessor :exclude_txn_from_change_streams
|
6442
|
+
alias_method :exclude_txn_from_change_streams?, :exclude_txn_from_change_streams
|
6443
|
+
|
4555
6444
|
# Message type to initiate a Partitioned DML transaction.
|
4556
6445
|
# Corresponds to the JSON property `partitionedDml`
|
4557
6446
|
# @return [Google::Apis::SpannerV1::PartitionedDml]
|
@@ -4574,6 +6463,7 @@ module Google
|
|
4574
6463
|
|
4575
6464
|
# Update properties of this object
|
4576
6465
|
def update!(**args)
|
6466
|
+
@exclude_txn_from_change_streams = args[:exclude_txn_from_change_streams] if args.key?(:exclude_txn_from_change_streams)
|
4577
6467
|
@partitioned_dml = args[:partitioned_dml] if args.key?(:partitioned_dml)
|
4578
6468
|
@read_only = args[:read_only] if args.key?(:read_only)
|
4579
6469
|
@read_write = args[:read_write] if args.key?(:read_write)
|
@@ -4601,7 +6491,7 @@ module Google
|
|
4601
6491
|
# such that the read is guaranteed to see the effects of all transactions that
|
4602
6492
|
# have committed before the start of the read). Snapshot read-only transactions
|
4603
6493
|
# do not need to be committed. Queries on change streams must be performed with
|
4604
|
-
# the snapshot read-only transaction mode, specifying a strong read.
|
6494
|
+
# the snapshot read-only transaction mode, specifying a strong read. See
|
4605
6495
|
# TransactionOptions.ReadOnly.strong for more details. 3. Partitioned DML. This
|
4606
6496
|
# type of transaction is used to execute a single Partitioned DML statement.
|
4607
6497
|
# Partitioned DML partitions the key space and runs the DML statement over each
|
@@ -4637,87 +6527,92 @@ module Google
|
|
4637
6527
|
# committing the retry, the client should execute the retry in the same session
|
4638
6528
|
# as the original attempt. The original session's lock priority increases with
|
4639
6529
|
# each consecutive abort, meaning that each attempt has a slightly better chance
|
4640
|
-
# of success than the previous.
|
4641
|
-
#
|
4642
|
-
#
|
4643
|
-
#
|
4644
|
-
#
|
4645
|
-
#
|
4646
|
-
#
|
4647
|
-
#
|
4648
|
-
#
|
4649
|
-
#
|
4650
|
-
#
|
4651
|
-
#
|
4652
|
-
#
|
4653
|
-
#
|
4654
|
-
# transaction
|
4655
|
-
#
|
4656
|
-
#
|
4657
|
-
#
|
4658
|
-
#
|
4659
|
-
#
|
4660
|
-
#
|
4661
|
-
#
|
4662
|
-
#
|
4663
|
-
#
|
4664
|
-
#
|
4665
|
-
#
|
4666
|
-
#
|
4667
|
-
# transactions
|
4668
|
-
#
|
4669
|
-
# timestamp bound
|
4670
|
-
#
|
4671
|
-
#
|
4672
|
-
#
|
4673
|
-
#
|
4674
|
-
#
|
4675
|
-
#
|
4676
|
-
#
|
4677
|
-
#
|
4678
|
-
#
|
4679
|
-
#
|
4680
|
-
#
|
4681
|
-
#
|
4682
|
-
#
|
4683
|
-
#
|
4684
|
-
#
|
4685
|
-
#
|
4686
|
-
#
|
4687
|
-
#
|
4688
|
-
#
|
4689
|
-
#
|
4690
|
-
#
|
4691
|
-
#
|
4692
|
-
#
|
4693
|
-
#
|
4694
|
-
#
|
4695
|
-
#
|
4696
|
-
#
|
4697
|
-
#
|
4698
|
-
#
|
4699
|
-
#
|
4700
|
-
#
|
4701
|
-
#
|
4702
|
-
#
|
4703
|
-
#
|
4704
|
-
#
|
4705
|
-
#
|
4706
|
-
#
|
4707
|
-
#
|
4708
|
-
#
|
4709
|
-
#
|
4710
|
-
#
|
4711
|
-
#
|
4712
|
-
#
|
4713
|
-
#
|
4714
|
-
#
|
4715
|
-
#
|
4716
|
-
#
|
4717
|
-
#
|
4718
|
-
#
|
4719
|
-
#
|
4720
|
-
#
|
6530
|
+
# of success than the previous. Note that the lock priority is preserved per
|
6531
|
+
# session (not per transaction). Lock priority is set by the first read or write
|
6532
|
+
# in the first attempt of a read-write transaction. If the application starts a
|
6533
|
+
# new session to retry the whole transaction, the transaction loses its original
|
6534
|
+
# lock priority. Moreover, the lock priority is only preserved if the
|
6535
|
+
# transaction fails with an `ABORTED` error. Under some circumstances (for
|
6536
|
+
# example, many transactions attempting to modify the same row(s)), a
|
6537
|
+
# transaction can abort many times in a short period before successfully
|
6538
|
+
# committing. Thus, it is not a good idea to cap the number of retries a
|
6539
|
+
# transaction can attempt; instead, it is better to limit the total amount of
|
6540
|
+
# time spent retrying. Idle transactions: A transaction is considered idle if it
|
6541
|
+
# has no outstanding reads or SQL queries and has not started a read or SQL
|
6542
|
+
# query within the last 10 seconds. Idle transactions can be aborted by Cloud
|
6543
|
+
# Spanner so that they don't hold on to locks indefinitely. If an idle
|
6544
|
+
# transaction is aborted, the commit will fail with error `ABORTED`. If this
|
6545
|
+
# behavior is undesirable, periodically executing a simple SQL query in the
|
6546
|
+
# transaction (for example, `SELECT 1`) prevents the transaction from becoming
|
6547
|
+
# idle. Snapshot read-only transactions: Snapshot read-only transactions
|
6548
|
+
# provides a simpler method than locking read-write transactions for doing
|
6549
|
+
# several consistent reads. However, this type of transaction does not support
|
6550
|
+
# writes. Snapshot transactions do not take locks. Instead, they work by
|
6551
|
+
# choosing a Cloud Spanner timestamp, then executing all reads at that timestamp.
|
6552
|
+
# Since they do not acquire locks, they do not block concurrent read-write
|
6553
|
+
# transactions. Unlike locking read-write transactions, snapshot read-only
|
6554
|
+
# transactions never abort. They can fail if the chosen read timestamp is
|
6555
|
+
# garbage collected; however, the default garbage collection policy is generous
|
6556
|
+
# enough that most applications do not need to worry about this in practice.
|
6557
|
+
# Snapshot read-only transactions do not need to call Commit or Rollback (and in
|
6558
|
+
# fact are not permitted to do so). To execute a snapshot transaction, the
|
6559
|
+
# client specifies a timestamp bound, which tells Cloud Spanner how to choose a
|
6560
|
+
# read timestamp. The types of timestamp bound are: - Strong (the default). -
|
6561
|
+
# Bounded staleness. - Exact staleness. If the Cloud Spanner database to be read
|
6562
|
+
# is geographically distributed, stale read-only transactions can execute more
|
6563
|
+
# quickly than strong or read-write transactions, because they are able to
|
6564
|
+
# execute far from the leader replica. Each type of timestamp bound is discussed
|
6565
|
+
# in detail below. Strong: Strong reads are guaranteed to see the effects of all
|
6566
|
+
# transactions that have committed before the start of the read. Furthermore,
|
6567
|
+
# all rows yielded by a single read are consistent with each other -- if any
|
6568
|
+
# part of the read observes a transaction, all parts of the read see the
|
6569
|
+
# transaction. Strong reads are not repeatable: two consecutive strong read-only
|
6570
|
+
# transactions might return inconsistent results if there are concurrent writes.
|
6571
|
+
# If consistency across reads is required, the reads should be executed within a
|
6572
|
+
# transaction or at an exact read timestamp. Queries on change streams (see
|
6573
|
+
# below for more details) must also specify the strong read timestamp bound. See
|
6574
|
+
# TransactionOptions.ReadOnly.strong. Exact staleness: These timestamp bounds
|
6575
|
+
# execute reads at a user-specified timestamp. Reads at a timestamp are
|
6576
|
+
# guaranteed to see a consistent prefix of the global transaction history: they
|
6577
|
+
# observe modifications done by all transactions with a commit timestamp less
|
6578
|
+
# than or equal to the read timestamp, and observe none of the modifications
|
6579
|
+
# done by transactions with a larger commit timestamp. They will block until all
|
6580
|
+
# conflicting transactions that may be assigned commit timestamps <= the read
|
6581
|
+
# timestamp have finished. The timestamp can either be expressed as an absolute
|
6582
|
+
# Cloud Spanner commit timestamp or a staleness relative to the current time.
|
6583
|
+
# These modes do not require a "negotiation phase" to pick a timestamp. As a
|
6584
|
+
# result, they execute slightly faster than the equivalent boundedly stale
|
6585
|
+
# concurrency modes. On the other hand, boundedly stale reads usually return
|
6586
|
+
# fresher results. See TransactionOptions.ReadOnly.read_timestamp and
|
6587
|
+
# TransactionOptions.ReadOnly.exact_staleness. Bounded staleness: Bounded
|
6588
|
+
# staleness modes allow Cloud Spanner to pick the read timestamp, subject to a
|
6589
|
+
# user-provided staleness bound. Cloud Spanner chooses the newest timestamp
|
6590
|
+
# within the staleness bound that allows execution of the reads at the closest
|
6591
|
+
# available replica without blocking. All rows yielded are consistent with each
|
6592
|
+
# other -- if any part of the read observes a transaction, all parts of the read
|
6593
|
+
# see the transaction. Boundedly stale reads are not repeatable: two stale reads,
|
6594
|
+
# even if they use the same staleness bound, can execute at different
|
6595
|
+
# timestamps and thus return inconsistent results. Boundedly stale reads execute
|
6596
|
+
# in two phases: the first phase negotiates a timestamp among all replicas
|
6597
|
+
# needed to serve the read. In the second phase, reads are executed at the
|
6598
|
+
# negotiated timestamp. As a result of the two phase execution, bounded
|
6599
|
+
# staleness reads are usually a little slower than comparable exact staleness
|
6600
|
+
# reads. However, they are typically able to return fresher results, and are
|
6601
|
+
# more likely to execute at the closest replica. Because the timestamp
|
6602
|
+
# negotiation requires up-front knowledge of which rows will be read, it can
|
6603
|
+
# only be used with single-use read-only transactions. See TransactionOptions.
|
6604
|
+
# ReadOnly.max_staleness and TransactionOptions.ReadOnly.min_read_timestamp. Old
|
6605
|
+
# read timestamps and garbage collection: Cloud Spanner continuously garbage
|
6606
|
+
# collects deleted and overwritten data in the background to reclaim storage
|
6607
|
+
# space. This process is known as "version GC". By default, version GC reclaims
|
6608
|
+
# versions after they are one hour old. Because of this, Cloud Spanner cannot
|
6609
|
+
# perform reads at read timestamps more than one hour in the past. This
|
6610
|
+
# restriction also applies to in-progress reads and/or SQL queries whose
|
6611
|
+
# timestamp become too old while executing. Reads and SQL queries with too-old
|
6612
|
+
# read timestamps fail with the error `FAILED_PRECONDITION`. You can configure
|
6613
|
+
# and extend the `VERSION_RETENTION_PERIOD` of a database up to a period as long
|
6614
|
+
# as one week, which allows Cloud Spanner to perform reads up to one week in the
|
6615
|
+
# past. Querying change Streams: A Change Stream is a schema object that can be
|
4721
6616
|
# configured to watch data changes on the entire database, a set of tables, or a
|
4722
6617
|
# set of columns in a database. When a change stream is created, Spanner
|
4723
6618
|
# automatically defines a corresponding SQL Table-Valued Function (TVF) that can
|
@@ -4753,12 +6648,12 @@ module Google
|
|
4753
6648
|
# of the table. Rather, the statement is applied atomically to partitions of the
|
4754
6649
|
# table, in independent transactions. Secondary index rows are updated
|
4755
6650
|
# atomically with the base table rows. - Partitioned DML does not guarantee
|
4756
|
-
# exactly-once execution semantics against a partition. The statement
|
4757
|
-
#
|
4758
|
-
#
|
4759
|
-
#
|
4760
|
-
# column
|
4761
|
-
#
|
6651
|
+
# exactly-once execution semantics against a partition. The statement is applied
|
6652
|
+
# at least once to each partition. It is strongly recommended that the DML
|
6653
|
+
# statement should be idempotent to avoid unexpected results. For instance, it
|
6654
|
+
# is potentially dangerous to run a statement such as `UPDATE table SET column =
|
6655
|
+
# column + 1` as it could be run multiple times against some rows. - The
|
6656
|
+
# partitions are committed automatically - there is no support for Commit or
|
4762
6657
|
# Rollback. If the call returns an error, or if the client issuing the
|
4763
6658
|
# ExecuteSql call dies, it is possible that some rows had the statement executed
|
4764
6659
|
# on them successfully. It is also possible that statement was never executed
|
@@ -4798,7 +6693,7 @@ module Google
|
|
4798
6693
|
# such that the read is guaranteed to see the effects of all transactions that
|
4799
6694
|
# have committed before the start of the read). Snapshot read-only transactions
|
4800
6695
|
# do not need to be committed. Queries on change streams must be performed with
|
4801
|
-
# the snapshot read-only transaction mode, specifying a strong read.
|
6696
|
+
# the snapshot read-only transaction mode, specifying a strong read. See
|
4802
6697
|
# TransactionOptions.ReadOnly.strong for more details. 3. Partitioned DML. This
|
4803
6698
|
# type of transaction is used to execute a single Partitioned DML statement.
|
4804
6699
|
# Partitioned DML partitions the key space and runs the DML statement over each
|
@@ -4834,87 +6729,92 @@ module Google
|
|
4834
6729
|
# committing the retry, the client should execute the retry in the same session
|
4835
6730
|
# as the original attempt. The original session's lock priority increases with
|
4836
6731
|
# each consecutive abort, meaning that each attempt has a slightly better chance
|
4837
|
-
# of success than the previous.
|
4838
|
-
#
|
4839
|
-
#
|
4840
|
-
#
|
4841
|
-
#
|
4842
|
-
#
|
4843
|
-
#
|
4844
|
-
#
|
4845
|
-
#
|
4846
|
-
#
|
4847
|
-
#
|
4848
|
-
#
|
4849
|
-
#
|
4850
|
-
#
|
4851
|
-
# transaction
|
4852
|
-
#
|
4853
|
-
#
|
4854
|
-
#
|
4855
|
-
#
|
4856
|
-
#
|
4857
|
-
#
|
4858
|
-
#
|
4859
|
-
#
|
4860
|
-
#
|
4861
|
-
#
|
4862
|
-
#
|
4863
|
-
#
|
4864
|
-
# transactions
|
4865
|
-
#
|
4866
|
-
# timestamp bound
|
4867
|
-
#
|
4868
|
-
#
|
4869
|
-
#
|
4870
|
-
#
|
4871
|
-
#
|
4872
|
-
#
|
4873
|
-
#
|
4874
|
-
#
|
4875
|
-
#
|
4876
|
-
#
|
4877
|
-
#
|
4878
|
-
#
|
4879
|
-
#
|
4880
|
-
#
|
4881
|
-
#
|
4882
|
-
#
|
4883
|
-
#
|
4884
|
-
#
|
4885
|
-
#
|
4886
|
-
#
|
4887
|
-
#
|
4888
|
-
#
|
4889
|
-
#
|
4890
|
-
#
|
4891
|
-
#
|
4892
|
-
#
|
4893
|
-
#
|
4894
|
-
#
|
4895
|
-
#
|
4896
|
-
#
|
4897
|
-
#
|
4898
|
-
#
|
4899
|
-
#
|
4900
|
-
#
|
4901
|
-
#
|
4902
|
-
#
|
4903
|
-
#
|
4904
|
-
#
|
4905
|
-
#
|
4906
|
-
#
|
4907
|
-
#
|
4908
|
-
#
|
4909
|
-
#
|
4910
|
-
#
|
4911
|
-
#
|
4912
|
-
#
|
4913
|
-
#
|
4914
|
-
#
|
4915
|
-
#
|
4916
|
-
#
|
4917
|
-
#
|
6732
|
+
# of success than the previous. Note that the lock priority is preserved per
|
6733
|
+
# session (not per transaction). Lock priority is set by the first read or write
|
6734
|
+
# in the first attempt of a read-write transaction. If the application starts a
|
6735
|
+
# new session to retry the whole transaction, the transaction loses its original
|
6736
|
+
# lock priority. Moreover, the lock priority is only preserved if the
|
6737
|
+
# transaction fails with an `ABORTED` error. Under some circumstances (for
|
6738
|
+
# example, many transactions attempting to modify the same row(s)), a
|
6739
|
+
# transaction can abort many times in a short period before successfully
|
6740
|
+
# committing. Thus, it is not a good idea to cap the number of retries a
|
6741
|
+
# transaction can attempt; instead, it is better to limit the total amount of
|
6742
|
+
# time spent retrying. Idle transactions: A transaction is considered idle if it
|
6743
|
+
# has no outstanding reads or SQL queries and has not started a read or SQL
|
6744
|
+
# query within the last 10 seconds. Idle transactions can be aborted by Cloud
|
6745
|
+
# Spanner so that they don't hold on to locks indefinitely. If an idle
|
6746
|
+
# transaction is aborted, the commit will fail with error `ABORTED`. If this
|
6747
|
+
# behavior is undesirable, periodically executing a simple SQL query in the
|
6748
|
+
# transaction (for example, `SELECT 1`) prevents the transaction from becoming
|
6749
|
+
# idle. Snapshot read-only transactions: Snapshot read-only transactions
|
6750
|
+
# provides a simpler method than locking read-write transactions for doing
|
6751
|
+
# several consistent reads. However, this type of transaction does not support
|
6752
|
+
# writes. Snapshot transactions do not take locks. Instead, they work by
|
6753
|
+
# choosing a Cloud Spanner timestamp, then executing all reads at that timestamp.
|
6754
|
+
# Since they do not acquire locks, they do not block concurrent read-write
|
6755
|
+
# transactions. Unlike locking read-write transactions, snapshot read-only
|
6756
|
+
# transactions never abort. They can fail if the chosen read timestamp is
|
6757
|
+
# garbage collected; however, the default garbage collection policy is generous
|
6758
|
+
# enough that most applications do not need to worry about this in practice.
|
6759
|
+
# Snapshot read-only transactions do not need to call Commit or Rollback (and in
|
6760
|
+
# fact are not permitted to do so). To execute a snapshot transaction, the
|
6761
|
+
# client specifies a timestamp bound, which tells Cloud Spanner how to choose a
|
6762
|
+
# read timestamp. The types of timestamp bound are: - Strong (the default). -
|
6763
|
+
# Bounded staleness. - Exact staleness. If the Cloud Spanner database to be read
|
6764
|
+
# is geographically distributed, stale read-only transactions can execute more
|
6765
|
+
# quickly than strong or read-write transactions, because they are able to
|
6766
|
+
# execute far from the leader replica. Each type of timestamp bound is discussed
|
6767
|
+
# in detail below. Strong: Strong reads are guaranteed to see the effects of all
|
6768
|
+
# transactions that have committed before the start of the read. Furthermore,
|
6769
|
+
# all rows yielded by a single read are consistent with each other -- if any
|
6770
|
+
# part of the read observes a transaction, all parts of the read see the
|
6771
|
+
# transaction. Strong reads are not repeatable: two consecutive strong read-only
|
6772
|
+
# transactions might return inconsistent results if there are concurrent writes.
|
6773
|
+
# If consistency across reads is required, the reads should be executed within a
|
6774
|
+
# transaction or at an exact read timestamp. Queries on change streams (see
|
6775
|
+
# below for more details) must also specify the strong read timestamp bound. See
|
6776
|
+
# TransactionOptions.ReadOnly.strong. Exact staleness: These timestamp bounds
|
6777
|
+
# execute reads at a user-specified timestamp. Reads at a timestamp are
|
6778
|
+
# guaranteed to see a consistent prefix of the global transaction history: they
|
6779
|
+
# observe modifications done by all transactions with a commit timestamp less
|
6780
|
+
# than or equal to the read timestamp, and observe none of the modifications
|
6781
|
+
# done by transactions with a larger commit timestamp. They will block until all
|
6782
|
+
# conflicting transactions that may be assigned commit timestamps <= the read
|
6783
|
+
# timestamp have finished. The timestamp can either be expressed as an absolute
|
6784
|
+
# Cloud Spanner commit timestamp or a staleness relative to the current time.
|
6785
|
+
# These modes do not require a "negotiation phase" to pick a timestamp. As a
|
6786
|
+
# result, they execute slightly faster than the equivalent boundedly stale
|
6787
|
+
# concurrency modes. On the other hand, boundedly stale reads usually return
|
6788
|
+
# fresher results. See TransactionOptions.ReadOnly.read_timestamp and
|
6789
|
+
# TransactionOptions.ReadOnly.exact_staleness. Bounded staleness: Bounded
|
6790
|
+
# staleness modes allow Cloud Spanner to pick the read timestamp, subject to a
|
6791
|
+
# user-provided staleness bound. Cloud Spanner chooses the newest timestamp
|
6792
|
+
# within the staleness bound that allows execution of the reads at the closest
|
6793
|
+
# available replica without blocking. All rows yielded are consistent with each
|
6794
|
+
# other -- if any part of the read observes a transaction, all parts of the read
|
6795
|
+
# see the transaction. Boundedly stale reads are not repeatable: two stale reads,
|
6796
|
+
# even if they use the same staleness bound, can execute at different
|
6797
|
+
# timestamps and thus return inconsistent results. Boundedly stale reads execute
|
6798
|
+
# in two phases: the first phase negotiates a timestamp among all replicas
|
6799
|
+
# needed to serve the read. In the second phase, reads are executed at the
|
6800
|
+
# negotiated timestamp. As a result of the two phase execution, bounded
|
6801
|
+
# staleness reads are usually a little slower than comparable exact staleness
|
6802
|
+
# reads. However, they are typically able to return fresher results, and are
|
6803
|
+
# more likely to execute at the closest replica. Because the timestamp
|
6804
|
+
# negotiation requires up-front knowledge of which rows will be read, it can
|
6805
|
+
# only be used with single-use read-only transactions. See TransactionOptions.
|
6806
|
+
# ReadOnly.max_staleness and TransactionOptions.ReadOnly.min_read_timestamp. Old
|
6807
|
+
# read timestamps and garbage collection: Cloud Spanner continuously garbage
|
6808
|
+
# collects deleted and overwritten data in the background to reclaim storage
|
6809
|
+
# space. This process is known as "version GC". By default, version GC reclaims
|
6810
|
+
# versions after they are one hour old. Because of this, Cloud Spanner cannot
|
6811
|
+
# perform reads at read timestamps more than one hour in the past. This
|
6812
|
+
# restriction also applies to in-progress reads and/or SQL queries whose
|
6813
|
+
# timestamp become too old while executing. Reads and SQL queries with too-old
|
6814
|
+
# read timestamps fail with the error `FAILED_PRECONDITION`. You can configure
|
6815
|
+
# and extend the `VERSION_RETENTION_PERIOD` of a database up to a period as long
|
6816
|
+
# as one week, which allows Cloud Spanner to perform reads up to one week in the
|
6817
|
+
# past. Querying change Streams: A Change Stream is a schema object that can be
|
4918
6818
|
# configured to watch data changes on the entire database, a set of tables, or a
|
4919
6819
|
# set of columns in a database. When a change stream is created, Spanner
|
4920
6820
|
# automatically defines a corresponding SQL Table-Valued Function (TVF) that can
|
@@ -4950,12 +6850,12 @@ module Google
|
|
4950
6850
|
# of the table. Rather, the statement is applied atomically to partitions of the
|
4951
6851
|
# table, in independent transactions. Secondary index rows are updated
|
4952
6852
|
# atomically with the base table rows. - Partitioned DML does not guarantee
|
4953
|
-
# exactly-once execution semantics against a partition. The statement
|
4954
|
-
#
|
4955
|
-
#
|
4956
|
-
#
|
4957
|
-
# column
|
4958
|
-
#
|
6853
|
+
# exactly-once execution semantics against a partition. The statement is applied
|
6854
|
+
# at least once to each partition. It is strongly recommended that the DML
|
6855
|
+
# statement should be idempotent to avoid unexpected results. For instance, it
|
6856
|
+
# is potentially dangerous to run a statement such as `UPDATE table SET column =
|
6857
|
+
# column + 1` as it could be run multiple times against some rows. - The
|
6858
|
+
# partitions are committed automatically - there is no support for Commit or
|
4959
6859
|
# Rollback. If the call returns an error, or if the client issuing the
|
4960
6860
|
# ExecuteSql call dies, it is possible that some rows had the statement executed
|
4961
6861
|
# on them successfully. It is also possible that statement was never executed
|
@@ -5001,6 +6901,12 @@ module Google
|
|
5001
6901
|
# @return [String]
|
5002
6902
|
attr_accessor :code
|
5003
6903
|
|
6904
|
+
# If code == PROTO or code == ENUM, then `proto_type_fqn` is the fully qualified
|
6905
|
+
# name of the proto type representing the proto/enum definition.
|
6906
|
+
# Corresponds to the JSON property `protoTypeFqn`
|
6907
|
+
# @return [String]
|
6908
|
+
attr_accessor :proto_type_fqn
|
6909
|
+
|
5004
6910
|
# `StructType` defines the fields of a STRUCT type.
|
5005
6911
|
# Corresponds to the JSON property `structType`
|
5006
6912
|
# @return [Google::Apis::SpannerV1::StructType]
|
@@ -5024,6 +6930,7 @@ module Google
|
|
5024
6930
|
def update!(**args)
|
5025
6931
|
@array_element_type = args[:array_element_type] if args.key?(:array_element_type)
|
5026
6932
|
@code = args[:code] if args.key?(:code)
|
6933
|
+
@proto_type_fqn = args[:proto_type_fqn] if args.key?(:proto_type_fqn)
|
5027
6934
|
@struct_type = args[:struct_type] if args.key?(:struct_type)
|
5028
6935
|
@type_annotation = args[:type_annotation] if args.key?(:type_annotation)
|
5029
6936
|
end
|
@@ -5033,6 +6940,12 @@ module Google
|
|
5033
6940
|
class UpdateDatabaseDdlMetadata
|
5034
6941
|
include Google::Apis::Core::Hashable
|
5035
6942
|
|
6943
|
+
# The brief action info for the DDL statements. `actions[i]` is the brief info
|
6944
|
+
# for `statements[i]`.
|
6945
|
+
# Corresponds to the JSON property `actions`
|
6946
|
+
# @return [Array<Google::Apis::SpannerV1::DdlStatementActionInfo>]
|
6947
|
+
attr_accessor :actions
|
6948
|
+
|
5036
6949
|
# Reports the commit timestamps of all statements that have succeeded so far,
|
5037
6950
|
# where `commit_timestamps[i]` is the commit timestamp for the statement `
|
5038
6951
|
# statements[i]`.
|
@@ -5045,12 +6958,11 @@ module Google
|
|
5045
6958
|
# @return [String]
|
5046
6959
|
attr_accessor :database
|
5047
6960
|
|
5048
|
-
# The progress of the UpdateDatabaseDdl operations.
|
5049
|
-
#
|
5050
|
-
#
|
5051
|
-
# with commit timestamp of operation, as well as a progress of 100%
|
5052
|
-
# operation has completed.
|
5053
|
-
# statements[i]`.
|
6961
|
+
# The progress of the UpdateDatabaseDdl operations. All DDL statements will have
|
6962
|
+
# continuously updating progress, and `progress[i]` is the operation progress
|
6963
|
+
# for `statements[i]`. Also, `progress[i]` will have start time and end time
|
6964
|
+
# populated with commit timestamp of operation, as well as a progress of 100%
|
6965
|
+
# once the operation has completed.
|
5054
6966
|
# Corresponds to the JSON property `progress`
|
5055
6967
|
# @return [Array<Google::Apis::SpannerV1::OperationProgress>]
|
5056
6968
|
attr_accessor :progress
|
@@ -5061,7 +6973,7 @@ module Google
|
|
5061
6973
|
# @return [Array<String>]
|
5062
6974
|
attr_accessor :statements
|
5063
6975
|
|
5064
|
-
# Output only. When true, indicates that the operation is throttled e.g due to
|
6976
|
+
# Output only. When true, indicates that the operation is throttled e.g. due to
|
5065
6977
|
# resource constraints. When resources become available the operation will
|
5066
6978
|
# resume and this field will be false again.
|
5067
6979
|
# Corresponds to the JSON property `throttled`
|
@@ -5075,6 +6987,7 @@ module Google
|
|
5075
6987
|
|
5076
6988
|
# Update properties of this object
|
5077
6989
|
def update!(**args)
|
6990
|
+
@actions = args[:actions] if args.key?(:actions)
|
5078
6991
|
@commit_timestamps = args[:commit_timestamps] if args.key?(:commit_timestamps)
|
5079
6992
|
@database = args[:database] if args.key?(:database)
|
5080
6993
|
@progress = args[:progress] if args.key?(:progress)
|
@@ -5102,7 +7015,7 @@ module Google
|
|
5102
7015
|
# resulting Operation. Specifying an explicit operation ID simplifies
|
5103
7016
|
# determining whether the statements were executed in the event that the
|
5104
7017
|
# UpdateDatabaseDdl call is replayed, or the return value is otherwise lost: the
|
5105
|
-
# database and `operation_id` fields can be combined to form the name of the
|
7018
|
+
# database and `operation_id` fields can be combined to form the `name` of the
|
5106
7019
|
# resulting longrunning.Operation: `/operations/`. `operation_id` should be
|
5107
7020
|
# unique within the database, and must be a valid identifier: `a-z*`. Note that
|
5108
7021
|
# automatically-generated operation IDs always begin with an underscore. If the
|
@@ -5111,6 +7024,21 @@ module Google
|
|
5111
7024
|
# @return [String]
|
5112
7025
|
attr_accessor :operation_id
|
5113
7026
|
|
7027
|
+
# Optional. Proto descriptors used by CREATE/ALTER PROTO BUNDLE statements.
|
7028
|
+
# Contains a protobuf-serialized [google.protobufFileDescriptorSet](https://
|
7029
|
+
# github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/descriptor.
|
7030
|
+
# proto). To generate it, [install](https://grpc.io/docs/protoc-installation/)
|
7031
|
+
# and run `protoc` with --include_imports and --descriptor_set_out. For example,
|
7032
|
+
# to generate for moon/shot/app.proto, run ``` $protoc --proto_path=/app_path --
|
7033
|
+
# proto_path=/lib_path \ --include_imports \ --descriptor_set_out=descriptors.
|
7034
|
+
# data \ moon/shot/app.proto ``` For more details, see protobuffer [self
|
7035
|
+
# description](https://developers.google.com/protocol-buffers/docs/techniques#
|
7036
|
+
# self-description).
|
7037
|
+
# Corresponds to the JSON property `protoDescriptors`
|
7038
|
+
# NOTE: Values are automatically base64 encoded/decoded in the client library.
|
7039
|
+
# @return [String]
|
7040
|
+
attr_accessor :proto_descriptors
|
7041
|
+
|
5114
7042
|
# Required. DDL statements to be applied to the database.
|
5115
7043
|
# Corresponds to the JSON property `statements`
|
5116
7044
|
# @return [Array<String>]
|
@@ -5123,10 +7051,140 @@ module Google
|
|
5123
7051
|
# Update properties of this object
|
5124
7052
|
def update!(**args)
|
5125
7053
|
@operation_id = args[:operation_id] if args.key?(:operation_id)
|
7054
|
+
@proto_descriptors = args[:proto_descriptors] if args.key?(:proto_descriptors)
|
5126
7055
|
@statements = args[:statements] if args.key?(:statements)
|
5127
7056
|
end
|
5128
7057
|
end
|
5129
7058
|
|
7059
|
+
# Metadata type for the operation returned by UpdateDatabase.
|
7060
|
+
class UpdateDatabaseMetadata
|
7061
|
+
include Google::Apis::Core::Hashable
|
7062
|
+
|
7063
|
+
# The time at which this operation was cancelled. If set, this operation is in
|
7064
|
+
# the process of undoing itself (which is best-effort).
|
7065
|
+
# Corresponds to the JSON property `cancelTime`
|
7066
|
+
# @return [String]
|
7067
|
+
attr_accessor :cancel_time
|
7068
|
+
|
7069
|
+
# Encapsulates progress related information for a Cloud Spanner long running
|
7070
|
+
# operation.
|
7071
|
+
# Corresponds to the JSON property `progress`
|
7072
|
+
# @return [Google::Apis::SpannerV1::OperationProgress]
|
7073
|
+
attr_accessor :progress
|
7074
|
+
|
7075
|
+
# The request for UpdateDatabase.
|
7076
|
+
# Corresponds to the JSON property `request`
|
7077
|
+
# @return [Google::Apis::SpannerV1::UpdateDatabaseRequest]
|
7078
|
+
attr_accessor :request
|
7079
|
+
|
7080
|
+
def initialize(**args)
|
7081
|
+
update!(**args)
|
7082
|
+
end
|
7083
|
+
|
7084
|
+
# Update properties of this object
|
7085
|
+
def update!(**args)
|
7086
|
+
@cancel_time = args[:cancel_time] if args.key?(:cancel_time)
|
7087
|
+
@progress = args[:progress] if args.key?(:progress)
|
7088
|
+
@request = args[:request] if args.key?(:request)
|
7089
|
+
end
|
7090
|
+
end
|
7091
|
+
|
7092
|
+
# The request for UpdateDatabase.
|
7093
|
+
class UpdateDatabaseRequest
|
7094
|
+
include Google::Apis::Core::Hashable
|
7095
|
+
|
7096
|
+
# A Cloud Spanner database.
|
7097
|
+
# Corresponds to the JSON property `database`
|
7098
|
+
# @return [Google::Apis::SpannerV1::Database]
|
7099
|
+
attr_accessor :database
|
7100
|
+
|
7101
|
+
# Required. The list of fields to update. Currently, only `
|
7102
|
+
# enable_drop_protection` field can be updated.
|
7103
|
+
# Corresponds to the JSON property `updateMask`
|
7104
|
+
# @return [String]
|
7105
|
+
attr_accessor :update_mask
|
7106
|
+
|
7107
|
+
def initialize(**args)
|
7108
|
+
update!(**args)
|
7109
|
+
end
|
7110
|
+
|
7111
|
+
# Update properties of this object
|
7112
|
+
def update!(**args)
|
7113
|
+
@database = args[:database] if args.key?(:database)
|
7114
|
+
@update_mask = args[:update_mask] if args.key?(:update_mask)
|
7115
|
+
end
|
7116
|
+
end
|
7117
|
+
|
7118
|
+
# Metadata type for the operation returned by UpdateInstanceConfig.
|
7119
|
+
class UpdateInstanceConfigMetadata
|
7120
|
+
include Google::Apis::Core::Hashable
|
7121
|
+
|
7122
|
+
# The time at which this operation was cancelled.
|
7123
|
+
# Corresponds to the JSON property `cancelTime`
|
7124
|
+
# @return [String]
|
7125
|
+
attr_accessor :cancel_time
|
7126
|
+
|
7127
|
+
# A possible configuration for a Cloud Spanner instance. Configurations define
|
7128
|
+
# the geographic placement of nodes and their replication.
|
7129
|
+
# Corresponds to the JSON property `instanceConfig`
|
7130
|
+
# @return [Google::Apis::SpannerV1::InstanceConfig]
|
7131
|
+
attr_accessor :instance_config
|
7132
|
+
|
7133
|
+
# Encapsulates progress related information for a Cloud Spanner long running
|
7134
|
+
# instance operations.
|
7135
|
+
# Corresponds to the JSON property `progress`
|
7136
|
+
# @return [Google::Apis::SpannerV1::InstanceOperationProgress]
|
7137
|
+
attr_accessor :progress
|
7138
|
+
|
7139
|
+
def initialize(**args)
|
7140
|
+
update!(**args)
|
7141
|
+
end
|
7142
|
+
|
7143
|
+
# Update properties of this object
|
7144
|
+
def update!(**args)
|
7145
|
+
@cancel_time = args[:cancel_time] if args.key?(:cancel_time)
|
7146
|
+
@instance_config = args[:instance_config] if args.key?(:instance_config)
|
7147
|
+
@progress = args[:progress] if args.key?(:progress)
|
7148
|
+
end
|
7149
|
+
end
|
7150
|
+
|
7151
|
+
# The request for UpdateInstanceConfig.
|
7152
|
+
class UpdateInstanceConfigRequest
|
7153
|
+
include Google::Apis::Core::Hashable
|
7154
|
+
|
7155
|
+
# A possible configuration for a Cloud Spanner instance. Configurations define
|
7156
|
+
# the geographic placement of nodes and their replication.
|
7157
|
+
# Corresponds to the JSON property `instanceConfig`
|
7158
|
+
# @return [Google::Apis::SpannerV1::InstanceConfig]
|
7159
|
+
attr_accessor :instance_config
|
7160
|
+
|
7161
|
+
# Required. A mask specifying which fields in InstanceConfig should be updated.
|
7162
|
+
# The field mask must always be specified; this prevents any future fields in
|
7163
|
+
# InstanceConfig from being erased accidentally by clients that do not know
|
7164
|
+
# about them. Only display_name and labels can be updated.
|
7165
|
+
# Corresponds to the JSON property `updateMask`
|
7166
|
+
# @return [String]
|
7167
|
+
attr_accessor :update_mask
|
7168
|
+
|
7169
|
+
# An option to validate, but not actually execute, a request, and provide the
|
7170
|
+
# same response.
|
7171
|
+
# Corresponds to the JSON property `validateOnly`
|
7172
|
+
# @return [Boolean]
|
7173
|
+
attr_accessor :validate_only
|
7174
|
+
alias_method :validate_only?, :validate_only
|
7175
|
+
|
7176
|
+
def initialize(**args)
|
7177
|
+
update!(**args)
|
7178
|
+
end
|
7179
|
+
|
7180
|
+
# Update properties of this object
|
7181
|
+
def update!(**args)
|
7182
|
+
@instance_config = args[:instance_config] if args.key?(:instance_config)
|
7183
|
+
@update_mask = args[:update_mask] if args.key?(:update_mask)
|
7184
|
+
@validate_only = args[:validate_only] if args.key?(:validate_only)
|
7185
|
+
end
|
7186
|
+
end
|
7187
|
+
|
5130
7188
|
# Metadata type for the operation returned by UpdateInstance.
|
5131
7189
|
class UpdateInstanceMetadata
|
5132
7190
|
include Google::Apis::Core::Hashable
|
@@ -5143,6 +7201,11 @@ module Google
|
|
5143
7201
|
# @return [String]
|
5144
7202
|
attr_accessor :end_time
|
5145
7203
|
|
7204
|
+
# The expected fulfillment period of this update operation.
|
7205
|
+
# Corresponds to the JSON property `expectedFulfillmentPeriod`
|
7206
|
+
# @return [String]
|
7207
|
+
attr_accessor :expected_fulfillment_period
|
7208
|
+
|
5146
7209
|
# An isolated set of Cloud Spanner resources on which databases can be hosted.
|
5147
7210
|
# Corresponds to the JSON property `instance`
|
5148
7211
|
# @return [Google::Apis::SpannerV1::Instance]
|
@@ -5161,11 +7224,81 @@ module Google
|
|
5161
7224
|
def update!(**args)
|
5162
7225
|
@cancel_time = args[:cancel_time] if args.key?(:cancel_time)
|
5163
7226
|
@end_time = args[:end_time] if args.key?(:end_time)
|
7227
|
+
@expected_fulfillment_period = args[:expected_fulfillment_period] if args.key?(:expected_fulfillment_period)
|
5164
7228
|
@instance = args[:instance] if args.key?(:instance)
|
5165
7229
|
@start_time = args[:start_time] if args.key?(:start_time)
|
5166
7230
|
end
|
5167
7231
|
end
|
5168
7232
|
|
7233
|
+
# Metadata type for the operation returned by UpdateInstancePartition.
|
7234
|
+
class UpdateInstancePartitionMetadata
|
7235
|
+
include Google::Apis::Core::Hashable
|
7236
|
+
|
7237
|
+
# The time at which this operation was cancelled. If set, this operation is in
|
7238
|
+
# the process of undoing itself (which is guaranteed to succeed) and cannot be
|
7239
|
+
# cancelled again.
|
7240
|
+
# Corresponds to the JSON property `cancelTime`
|
7241
|
+
# @return [String]
|
7242
|
+
attr_accessor :cancel_time
|
7243
|
+
|
7244
|
+
# The time at which this operation failed or was completed successfully.
|
7245
|
+
# Corresponds to the JSON property `endTime`
|
7246
|
+
# @return [String]
|
7247
|
+
attr_accessor :end_time
|
7248
|
+
|
7249
|
+
# An isolated set of Cloud Spanner resources that databases can define
|
7250
|
+
# placements on.
|
7251
|
+
# Corresponds to the JSON property `instancePartition`
|
7252
|
+
# @return [Google::Apis::SpannerV1::InstancePartition]
|
7253
|
+
attr_accessor :instance_partition
|
7254
|
+
|
7255
|
+
# The time at which UpdateInstancePartition request was received.
|
7256
|
+
# Corresponds to the JSON property `startTime`
|
7257
|
+
# @return [String]
|
7258
|
+
attr_accessor :start_time
|
7259
|
+
|
7260
|
+
def initialize(**args)
|
7261
|
+
update!(**args)
|
7262
|
+
end
|
7263
|
+
|
7264
|
+
# Update properties of this object
|
7265
|
+
def update!(**args)
|
7266
|
+
@cancel_time = args[:cancel_time] if args.key?(:cancel_time)
|
7267
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
7268
|
+
@instance_partition = args[:instance_partition] if args.key?(:instance_partition)
|
7269
|
+
@start_time = args[:start_time] if args.key?(:start_time)
|
7270
|
+
end
|
7271
|
+
end
|
7272
|
+
|
7273
|
+
# The request for UpdateInstancePartition.
|
7274
|
+
class UpdateInstancePartitionRequest
|
7275
|
+
include Google::Apis::Core::Hashable
|
7276
|
+
|
7277
|
+
# Required. A mask specifying which fields in InstancePartition should be
|
7278
|
+
# updated. The field mask must always be specified; this prevents any future
|
7279
|
+
# fields in InstancePartition from being erased accidentally by clients that do
|
7280
|
+
# not know about them.
|
7281
|
+
# Corresponds to the JSON property `fieldMask`
|
7282
|
+
# @return [String]
|
7283
|
+
attr_accessor :field_mask
|
7284
|
+
|
7285
|
+
# An isolated set of Cloud Spanner resources that databases can define
|
7286
|
+
# placements on.
|
7287
|
+
# Corresponds to the JSON property `instancePartition`
|
7288
|
+
# @return [Google::Apis::SpannerV1::InstancePartition]
|
7289
|
+
attr_accessor :instance_partition
|
7290
|
+
|
7291
|
+
def initialize(**args)
|
7292
|
+
update!(**args)
|
7293
|
+
end
|
7294
|
+
|
7295
|
+
# Update properties of this object
|
7296
|
+
def update!(**args)
|
7297
|
+
@field_mask = args[:field_mask] if args.key?(:field_mask)
|
7298
|
+
@instance_partition = args[:instance_partition] if args.key?(:instance_partition)
|
7299
|
+
end
|
7300
|
+
end
|
7301
|
+
|
5169
7302
|
# The request for UpdateInstance.
|
5170
7303
|
class UpdateInstanceRequest
|
5171
7304
|
include Google::Apis::Core::Hashable
|