google-cloud-spanner 1.16.0 → 2.2.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.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +1 -1
  3. data/CHANGELOG.md +54 -0
  4. data/CONTRIBUTING.md +5 -5
  5. data/TROUBLESHOOTING.md +0 -6
  6. data/lib/google-cloud-spanner.rb +11 -13
  7. data/lib/google/cloud/spanner.rb +6 -8
  8. data/lib/google/cloud/spanner/admin/database/credentials.rb +2 -2
  9. data/lib/google/cloud/spanner/admin/instance/credentials.rb +2 -2
  10. data/lib/google/cloud/spanner/backup.rb +1 -1
  11. data/lib/google/cloud/spanner/backup/job.rb +2 -2
  12. data/lib/google/cloud/spanner/backup/job/list.rb +2 -2
  13. data/lib/google/cloud/spanner/backup/list.rb +1 -2
  14. data/lib/google/cloud/spanner/backup/restore/job.rb +2 -2
  15. data/lib/google/cloud/spanner/batch_client.rb +2 -2
  16. data/lib/google/cloud/spanner/batch_snapshot.rb +120 -23
  17. data/lib/google/cloud/spanner/batch_update.rb +1 -1
  18. data/lib/google/cloud/spanner/client.rb +189 -30
  19. data/lib/google/cloud/spanner/commit.rb +14 -14
  20. data/lib/google/cloud/spanner/convert.rb +16 -7
  21. data/lib/google/cloud/spanner/credentials.rb +2 -2
  22. data/lib/google/cloud/spanner/data.rb +2 -2
  23. data/lib/google/cloud/spanner/database.rb +22 -22
  24. data/lib/google/cloud/spanner/database/backup_info.rb +1 -1
  25. data/lib/google/cloud/spanner/database/job.rb +3 -3
  26. data/lib/google/cloud/spanner/database/job/list.rb +2 -2
  27. data/lib/google/cloud/spanner/database/list.rb +1 -1
  28. data/lib/google/cloud/spanner/database/restore_info.rb +1 -1
  29. data/lib/google/cloud/spanner/fields.rb +8 -8
  30. data/lib/google/cloud/spanner/instance.rb +5 -12
  31. data/lib/google/cloud/spanner/instance/config.rb +1 -1
  32. data/lib/google/cloud/spanner/instance/config/list.rb +1 -1
  33. data/lib/google/cloud/spanner/instance/job.rb +2 -2
  34. data/lib/google/cloud/spanner/instance/list.rb +1 -1
  35. data/lib/google/cloud/spanner/partition.rb +4 -4
  36. data/lib/google/cloud/spanner/policy.rb +2 -2
  37. data/lib/google/cloud/spanner/results.rb +103 -24
  38. data/lib/google/cloud/spanner/service.rb +363 -350
  39. data/lib/google/cloud/spanner/session.rb +186 -31
  40. data/lib/google/cloud/spanner/snapshot.rb +60 -6
  41. data/lib/google/cloud/spanner/transaction.rb +116 -10
  42. data/lib/google/cloud/spanner/version.rb +1 -1
  43. metadata +20 -109
  44. data/lib/google/cloud/spanner/admin/database.rb +0 -149
  45. data/lib/google/cloud/spanner/admin/database/v1.rb +0 -147
  46. data/lib/google/cloud/spanner/admin/database/v1/credentials.rb +0 -46
  47. data/lib/google/cloud/spanner/admin/database/v1/database_admin_client.rb +0 -1513
  48. data/lib/google/cloud/spanner/admin/database/v1/database_admin_client_config.json +0 -111
  49. data/lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/iam_policy.rb +0 -64
  50. data/lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/options.rb +0 -33
  51. data/lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/policy.rb +0 -151
  52. data/lib/google/cloud/spanner/admin/database/v1/doc/google/longrunning/operations.rb +0 -51
  53. data/lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/any.rb +0 -131
  54. data/lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/empty.rb +0 -29
  55. data/lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/field_mask.rb +0 -222
  56. data/lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/timestamp.rb +0 -113
  57. data/lib/google/cloud/spanner/admin/database/v1/doc/google/rpc/status.rb +0 -39
  58. data/lib/google/cloud/spanner/admin/database/v1/doc/google/spanner/admin/database/v1/backup.rb +0 -325
  59. data/lib/google/cloud/spanner/admin/database/v1/doc/google/spanner/admin/database/v1/spanner_database_admin.rb +0 -368
  60. data/lib/google/cloud/spanner/admin/database/v1/doc/google/type/expr.rb +0 -45
  61. data/lib/google/cloud/spanner/admin/instance.rb +0 -164
  62. data/lib/google/cloud/spanner/admin/instance/v1.rb +0 -162
  63. data/lib/google/cloud/spanner/admin/instance/v1/credentials.rb +0 -46
  64. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/iam_policy.rb +0 -64
  65. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/options.rb +0 -33
  66. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/policy.rb +0 -151
  67. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/longrunning/operations.rb +0 -51
  68. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/any.rb +0 -131
  69. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/empty.rb +0 -29
  70. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/field_mask.rb +0 -222
  71. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/rpc/status.rb +0 -39
  72. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/spanner/admin/instance/v1/spanner_instance_admin.rb +0 -334
  73. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/type/expr.rb +0 -45
  74. data/lib/google/cloud/spanner/admin/instance/v1/instance_admin_client.rb +0 -975
  75. data/lib/google/cloud/spanner/admin/instance/v1/instance_admin_client_config.json +0 -76
  76. data/lib/google/cloud/spanner/v1.rb +0 -16
  77. data/lib/google/cloud/spanner/v1/credentials.rb +0 -42
  78. data/lib/google/cloud/spanner/v1/doc/google/protobuf/any.rb +0 -131
  79. data/lib/google/cloud/spanner/v1/doc/google/protobuf/duration.rb +0 -91
  80. data/lib/google/cloud/spanner/v1/doc/google/protobuf/empty.rb +0 -29
  81. data/lib/google/cloud/spanner/v1/doc/google/protobuf/struct.rb +0 -74
  82. data/lib/google/cloud/spanner/v1/doc/google/protobuf/timestamp.rb +0 -113
  83. data/lib/google/cloud/spanner/v1/doc/google/rpc/status.rb +0 -39
  84. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/keys.rb +0 -150
  85. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/mutation.rb +0 -95
  86. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/query_plan.rb +0 -121
  87. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/result_set.rb +0 -190
  88. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/spanner.rb +0 -570
  89. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/transaction.rb +0 -432
  90. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/type.rb +0 -112
  91. data/lib/google/cloud/spanner/v1/spanner_client.rb +0 -1485
  92. data/lib/google/cloud/spanner/v1/spanner_client_config.json +0 -121
  93. data/lib/google/spanner/admin/database/v1/backup_pb.rb +0 -98
  94. data/lib/google/spanner/admin/database/v1/common_pb.rb +0 -28
  95. data/lib/google/spanner/admin/database/v1/spanner_database_admin_pb.rb +0 -141
  96. data/lib/google/spanner/admin/database/v1/spanner_database_admin_services_pb.rb +0 -169
  97. data/lib/google/spanner/admin/instance/v1/spanner_instance_admin_pb.rb +0 -125
  98. data/lib/google/spanner/admin/instance/v1/spanner_instance_admin_services_pb.rb +0 -181
  99. data/lib/google/spanner/v1/keys_pb.rb +0 -34
  100. data/lib/google/spanner/v1/mutation_pb.rb +0 -39
  101. data/lib/google/spanner/v1/query_plan_pb.rb +0 -48
  102. data/lib/google/spanner/v1/result_set_pb.rb +0 -48
  103. data/lib/google/spanner/v1/spanner_pb.rb +0 -179
  104. data/lib/google/spanner/v1/spanner_services_pb.rb +0 -179
  105. data/lib/google/spanner/v1/transaction_pb.rb +0 -56
  106. data/lib/google/spanner/v1/type_pb.rb +0 -44
@@ -155,6 +155,19 @@ module Google
155
155
  # * `:optimizer_version` (String) The version of optimizer to use.
156
156
  # Empty to use database default. "latest" to use the latest
157
157
  # available optimizer version.
158
+ # @param [Hash] call_options A hash of values to specify the custom
159
+ # call options, e.g., timeout, retries, etc. Call options are
160
+ # optional. The following settings can be provided:
161
+ #
162
+ # * `:timeout` (Numeric) A numeric value of custom timeout in seconds
163
+ # that overrides the default setting.
164
+ # * `:retry_policy` (Hash) A hash of values that overrides the default
165
+ # setting of retry policy with the following keys:
166
+ # * `:initial_delay` (`Numeric`) - The initial delay in seconds.
167
+ # * `:max_delay` (`Numeric`) - The max delay in seconds.
168
+ # * `:multiplier` (`Numeric`) - The incremental backoff multiplier.
169
+ # * `:retry_codes` (`Array<String>`) - The error codes that should
170
+ # trigger a retry.
158
171
  #
159
172
  # @return [Google::Cloud::Spanner::Results] The results of the query
160
173
  # execution.
@@ -274,7 +287,32 @@ module Google
274
287
  # end
275
288
  # end
276
289
  #
277
- def execute_query sql, params: nil, types: nil, query_options: nil
290
+ # @example Query using custom timeout and retry policy:
291
+ # require "google/cloud/spanner"
292
+ #
293
+ # spanner = Google::Cloud::Spanner.new
294
+ # db = spanner.client "my-instance", "my-database"
295
+ #
296
+ # timeout = 30.0
297
+ # retry_policy = {
298
+ # initial_delay: 0.25,
299
+ # max_delay: 32.0,
300
+ # multiplier: 1.3,
301
+ # retry_codes: ["UNAVAILABLE"]
302
+ # }
303
+ # call_options = { timeout: timeout, retry_policy: retry_policy }
304
+ #
305
+ # db.transaction do |tx|
306
+ # results = tx.execute_query \
307
+ # "SELECT * FROM users", call_options: call_options
308
+ #
309
+ # results.rows.each do |row|
310
+ # puts "User #{row[:id]} is #{row[:name]}"
311
+ # end
312
+ # end
313
+ #
314
+ def execute_query sql, params: nil, types: nil, query_options: nil,
315
+ call_options: nil
278
316
  ensure_session!
279
317
 
280
318
  @seqno += 1
@@ -282,7 +320,8 @@ module Google
282
320
  params, types = Convert.to_input_params_and_types params, types
283
321
  session.execute_query sql, params: params, types: types,
284
322
  transaction: tx_selector, seqno: @seqno,
285
- query_options: query_options
323
+ query_options: query_options,
324
+ call_options: call_options
286
325
  end
287
326
  alias execute execute_query
288
327
  alias query execute_query
@@ -352,6 +391,19 @@ module Google
352
391
  # * `:optimizer_version` (String) The version of optimizer to use.
353
392
  # Empty to use database default. "latest" to use the latest
354
393
  # available optimizer version.
394
+ # @param [Hash] call_options A hash of values to specify the custom
395
+ # call options, e.g., timeout, retries, etc. Call options are
396
+ # optional. The following settings can be provided:
397
+ #
398
+ # * `:timeout` (Numeric) A numeric value of custom timeout in seconds
399
+ # that overrides the default setting.
400
+ # * `:retry_policy` (Hash) A hash of values that overrides the default
401
+ # setting of retry policy with the following keys:
402
+ # * `:initial_delay` (`Numeric`) - The initial delay in seconds.
403
+ # * `:max_delay` (`Numeric`) - The max delay in seconds.
404
+ # * `:multiplier` (`Numeric`) - The incremental backoff multiplier.
405
+ # * `:retry_codes` (`Array<String>`) - The error codes that should
406
+ # trigger a retry.
355
407
  #
356
408
  # @return [Integer] The exact number of rows that were modified.
357
409
  #
@@ -393,9 +445,33 @@ module Google
393
445
  # )
394
446
  # end
395
447
  #
396
- def execute_update sql, params: nil, types: nil, query_options: nil
448
+ # @example Update using custom timeout and retry policy:
449
+ # require "google/cloud/spanner"
450
+ #
451
+ # spanner = Google::Cloud::Spanner.new
452
+ # db = spanner.client "my-instance", "my-database"
453
+ #
454
+ # timeout = 30.0
455
+ # retry_policy = {
456
+ # initial_delay: 0.25,
457
+ # max_delay: 32.0,
458
+ # multiplier: 1.3,
459
+ # retry_codes: ["UNAVAILABLE"]
460
+ # }
461
+ # call_options = { timeout: timeout, retry_policy: retry_policy }
462
+ #
463
+ # db.transaction do |tx|
464
+ # row_count = tx.execute_update(
465
+ # "UPDATE users SET name = 'Charlie' WHERE id = 1",
466
+ # call_options: call_options
467
+ # )
468
+ # end
469
+ #
470
+ def execute_update sql, params: nil, types: nil, query_options: nil,
471
+ call_options: nil
397
472
  results = execute_query sql, params: params, types: types,
398
- query_options: query_options
473
+ query_options: query_options,
474
+ call_options: call_options
399
475
  # Stream all PartialResultSet to get ResultSetStats
400
476
  results.rows.to_a
401
477
  # Raise an error if there is not a row count returned
@@ -409,6 +485,20 @@ module Google
409
485
  ##
410
486
  # Executes DML statements in a batch.
411
487
  #
488
+ # @param [Hash] call_options A hash of values to specify the custom
489
+ # call options, e.g., timeout, retries, etc. Call options are
490
+ # optional. The following settings can be provided:
491
+ #
492
+ # * `:timeout` (Numeric) A numeric value of custom timeout in seconds
493
+ # that overrides the default setting.
494
+ # * `:retry_policy` (Hash) A hash of values that overrides the default
495
+ # setting of retry policy with the following keys:
496
+ # * `:initial_delay` (`Numeric`) - The initial delay in seconds.
497
+ # * `:max_delay` (`Numeric`) - The max delay in seconds.
498
+ # * `:multiplier` (`Numeric`) - The incremental backoff multiplier.
499
+ # * `:retry_codes` (`Array<String>`) - The error codes that should
500
+ # trigger a retry.
501
+ #
412
502
  # @yield [batch_update] a batch update object
413
503
  # @yieldparam [Google::Cloud::Spanner::BatchUpdate] batch_update a batch
414
504
  # update object accepting DML statements and optional parameters and
@@ -464,10 +554,11 @@ module Google
464
554
  # end
465
555
  # end
466
556
  #
467
- def batch_update &block
557
+ def batch_update call_options: nil, &block
468
558
  ensure_session!
469
559
  @seqno += 1
470
- session.batch_update tx_selector, @seqno, &block
560
+ session.batch_update tx_selector, @seqno,
561
+ call_options: call_options, &block
471
562
  end
472
563
 
473
564
  ##
@@ -486,6 +577,19 @@ module Google
486
577
  # Optional.
487
578
  # @param [Integer] limit If greater than zero, no more than this number
488
579
  # of rows will be returned. The default is no limit.
580
+ # @param [Hash] call_options A hash of values to specify the custom
581
+ # call options, e.g., timeout, retries, etc. Call options are
582
+ # optional. The following settings can be provided:
583
+ #
584
+ # * `:timeout` (Numeric) A numeric value of custom timeout in seconds
585
+ # that overrides the default setting.
586
+ # * `:retry_policy` (Hash) A hash of values that overrides the default
587
+ # setting of retry policy with the following keys:
588
+ # * `:initial_delay` (`Numeric`) - The initial delay in seconds.
589
+ # * `:max_delay` (`Numeric`) - The max delay in seconds.
590
+ # * `:multiplier` (`Numeric`) - The incremental backoff multiplier.
591
+ # * `:retry_codes` (`Array<String>`) - The error codes that should
592
+ # trigger a retry.
489
593
  #
490
594
  # @return [Google::Cloud::Spanner::Results] The results of the read
491
595
  # operation.
@@ -504,14 +608,16 @@ module Google
504
608
  # end
505
609
  # end
506
610
  #
507
- def read table, columns, keys: nil, index: nil, limit: nil
611
+ def read table, columns, keys: nil, index: nil, limit: nil,
612
+ call_options: nil
508
613
  ensure_session!
509
614
 
510
615
  columns = Array(columns).map(&:to_s)
511
616
  keys = Convert.to_key_set keys
512
617
 
513
618
  session.read table, columns, keys: keys, index: index, limit: limit,
514
- transaction: tx_selector
619
+ transaction: tx_selector,
620
+ call_options: call_options
515
621
  end
516
622
 
517
623
  ##
@@ -920,7 +1026,7 @@ module Google
920
1026
 
921
1027
  ##
922
1028
  # @private Creates a new Transaction instance from a
923
- # Google::Spanner::V1::Transaction.
1029
+ # `Google::Cloud::Spanner::V1::Transaction`.
924
1030
  def self.from_grpc grpc, session
925
1031
  new.tap do |s|
926
1032
  s.instance_variable_set :@grpc, grpc
@@ -933,7 +1039,7 @@ module Google
933
1039
  # The TransactionSelector to be used for queries
934
1040
  def tx_selector
935
1041
  return nil if transaction_id.nil?
936
- Google::Spanner::V1::TransactionSelector.new id: transaction_id
1042
+ V1::TransactionSelector.new id: transaction_id
937
1043
  end
938
1044
 
939
1045
  ##
@@ -16,7 +16,7 @@
16
16
  module Google
17
17
  module Cloud
18
18
  module Spanner
19
- VERSION = "1.16.0".freeze
19
+ VERSION = "2.2.0".freeze
20
20
  end
21
21
  end
22
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-spanner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Moore
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-03-20 00:00:00.000000000 Z
12
+ date: 2020-09-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-cloud-core
@@ -17,82 +17,56 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.2'
20
+ version: '1.5'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.2'
27
+ version: '1.5'
28
28
  - !ruby/object:Gem::Dependency
29
- name: google-gax
29
+ name: google-cloud-spanner-admin-database-v1
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '1.8'
34
+ version: '0.1'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '1.8'
41
+ version: '0.1'
42
42
  - !ruby/object:Gem::Dependency
43
- name: googleapis-common-protos
43
+ name: google-cloud-spanner-admin-instance-v1
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: 1.3.9
49
- - - "<"
50
- - !ruby/object:Gem::Version
51
- version: '2.0'
52
- type: :runtime
53
- prerelease: false
54
- version_requirements: !ruby/object:Gem::Requirement
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- version: 1.3.9
59
- - - "<"
60
- - !ruby/object:Gem::Version
61
- version: '2.0'
62
- - !ruby/object:Gem::Dependency
63
- name: googleapis-common-protos-types
64
- requirement: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: 1.0.4
69
- - - "<"
46
+ - - "~>"
70
47
  - !ruby/object:Gem::Version
71
- version: '2.0'
48
+ version: '0.1'
72
49
  type: :runtime
73
50
  prerelease: false
74
51
  version_requirements: !ruby/object:Gem::Requirement
75
52
  requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: 1.0.4
79
- - - "<"
53
+ - - "~>"
80
54
  - !ruby/object:Gem::Version
81
- version: '2.0'
55
+ version: '0.1'
82
56
  - !ruby/object:Gem::Dependency
83
- name: grpc-google-iam-v1
57
+ name: google-cloud-spanner-v1
84
58
  requirement: !ruby/object:Gem::Requirement
85
59
  requirements:
86
60
  - - "~>"
87
61
  - !ruby/object:Gem::Version
88
- version: 0.6.9
62
+ version: '0.2'
89
63
  type: :runtime
90
64
  prerelease: false
91
65
  version_requirements: !ruby/object:Gem::Requirement
92
66
  requirements:
93
67
  - - "~>"
94
68
  - !ruby/object:Gem::Version
95
- version: 0.6.9
69
+ version: '0.2'
96
70
  - !ruby/object:Gem::Dependency
97
71
  name: concurrent-ruby
98
72
  requirement: !ruby/object:Gem::Requirement
@@ -127,14 +101,14 @@ dependencies:
127
101
  requirements:
128
102
  - - "~>"
129
103
  - !ruby/object:Gem::Version
130
- version: '5.10'
104
+ version: '5.14'
131
105
  type: :development
132
106
  prerelease: false
133
107
  version_requirements: !ruby/object:Gem::Requirement
134
108
  requirements:
135
109
  - - "~>"
136
110
  - !ruby/object:Gem::Version
137
- version: '5.10'
111
+ version: '5.14'
138
112
  - !ruby/object:Gem::Dependency
139
113
  name: minitest-autotest
140
114
  requirement: !ruby/object:Gem::Requirement
@@ -253,14 +227,14 @@ dependencies:
253
227
  requirements:
254
228
  - - "~>"
255
229
  - !ruby/object:Gem::Version
256
- version: 1.26.0
230
+ version: 1.28.0
257
231
  type: :development
258
232
  prerelease: false
259
233
  version_requirements: !ruby/object:Gem::Requirement
260
234
  requirements:
261
235
  - - "~>"
262
236
  - !ruby/object:Gem::Version
263
- version: 1.26.0
237
+ version: 1.28.0
264
238
  - !ruby/object:Gem::Dependency
265
239
  name: grpc-tools
266
240
  requirement: !ruby/object:Gem::Requirement
@@ -295,40 +269,8 @@ files:
295
269
  - TROUBLESHOOTING.md
296
270
  - lib/google-cloud-spanner.rb
297
271
  - lib/google/cloud/spanner.rb
298
- - lib/google/cloud/spanner/admin/database.rb
299
272
  - lib/google/cloud/spanner/admin/database/credentials.rb
300
- - lib/google/cloud/spanner/admin/database/v1.rb
301
- - lib/google/cloud/spanner/admin/database/v1/credentials.rb
302
- - lib/google/cloud/spanner/admin/database/v1/database_admin_client.rb
303
- - lib/google/cloud/spanner/admin/database/v1/database_admin_client_config.json
304
- - lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/iam_policy.rb
305
- - lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/options.rb
306
- - lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/policy.rb
307
- - lib/google/cloud/spanner/admin/database/v1/doc/google/longrunning/operations.rb
308
- - lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/any.rb
309
- - lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/empty.rb
310
- - lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/field_mask.rb
311
- - lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/timestamp.rb
312
- - lib/google/cloud/spanner/admin/database/v1/doc/google/rpc/status.rb
313
- - lib/google/cloud/spanner/admin/database/v1/doc/google/spanner/admin/database/v1/backup.rb
314
- - lib/google/cloud/spanner/admin/database/v1/doc/google/spanner/admin/database/v1/spanner_database_admin.rb
315
- - lib/google/cloud/spanner/admin/database/v1/doc/google/type/expr.rb
316
- - lib/google/cloud/spanner/admin/instance.rb
317
273
  - lib/google/cloud/spanner/admin/instance/credentials.rb
318
- - lib/google/cloud/spanner/admin/instance/v1.rb
319
- - lib/google/cloud/spanner/admin/instance/v1/credentials.rb
320
- - lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/iam_policy.rb
321
- - lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/options.rb
322
- - lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/policy.rb
323
- - lib/google/cloud/spanner/admin/instance/v1/doc/google/longrunning/operations.rb
324
- - lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/any.rb
325
- - lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/empty.rb
326
- - lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/field_mask.rb
327
- - lib/google/cloud/spanner/admin/instance/v1/doc/google/rpc/status.rb
328
- - lib/google/cloud/spanner/admin/instance/v1/doc/google/spanner/admin/instance/v1/spanner_instance_admin.rb
329
- - lib/google/cloud/spanner/admin/instance/v1/doc/google/type/expr.rb
330
- - lib/google/cloud/spanner/admin/instance/v1/instance_admin_client.rb
331
- - lib/google/cloud/spanner/admin/instance/v1/instance_admin_client_config.json
332
274
  - lib/google/cloud/spanner/backup.rb
333
275
  - lib/google/cloud/spanner/backup/job.rb
334
276
  - lib/google/cloud/spanner/backup/job/list.rb
@@ -367,38 +309,7 @@ files:
367
309
  - lib/google/cloud/spanner/snapshot.rb
368
310
  - lib/google/cloud/spanner/status.rb
369
311
  - lib/google/cloud/spanner/transaction.rb
370
- - lib/google/cloud/spanner/v1.rb
371
- - lib/google/cloud/spanner/v1/credentials.rb
372
- - lib/google/cloud/spanner/v1/doc/google/protobuf/any.rb
373
- - lib/google/cloud/spanner/v1/doc/google/protobuf/duration.rb
374
- - lib/google/cloud/spanner/v1/doc/google/protobuf/empty.rb
375
- - lib/google/cloud/spanner/v1/doc/google/protobuf/struct.rb
376
- - lib/google/cloud/spanner/v1/doc/google/protobuf/timestamp.rb
377
- - lib/google/cloud/spanner/v1/doc/google/rpc/status.rb
378
- - lib/google/cloud/spanner/v1/doc/google/spanner/v1/keys.rb
379
- - lib/google/cloud/spanner/v1/doc/google/spanner/v1/mutation.rb
380
- - lib/google/cloud/spanner/v1/doc/google/spanner/v1/query_plan.rb
381
- - lib/google/cloud/spanner/v1/doc/google/spanner/v1/result_set.rb
382
- - lib/google/cloud/spanner/v1/doc/google/spanner/v1/spanner.rb
383
- - lib/google/cloud/spanner/v1/doc/google/spanner/v1/transaction.rb
384
- - lib/google/cloud/spanner/v1/doc/google/spanner/v1/type.rb
385
- - lib/google/cloud/spanner/v1/spanner_client.rb
386
- - lib/google/cloud/spanner/v1/spanner_client_config.json
387
312
  - lib/google/cloud/spanner/version.rb
388
- - lib/google/spanner/admin/database/v1/backup_pb.rb
389
- - lib/google/spanner/admin/database/v1/common_pb.rb
390
- - lib/google/spanner/admin/database/v1/spanner_database_admin_pb.rb
391
- - lib/google/spanner/admin/database/v1/spanner_database_admin_services_pb.rb
392
- - lib/google/spanner/admin/instance/v1/spanner_instance_admin_pb.rb
393
- - lib/google/spanner/admin/instance/v1/spanner_instance_admin_services_pb.rb
394
- - lib/google/spanner/v1/keys_pb.rb
395
- - lib/google/spanner/v1/mutation_pb.rb
396
- - lib/google/spanner/v1/query_plan_pb.rb
397
- - lib/google/spanner/v1/result_set_pb.rb
398
- - lib/google/spanner/v1/spanner_pb.rb
399
- - lib/google/spanner/v1/spanner_services_pb.rb
400
- - lib/google/spanner/v1/transaction_pb.rb
401
- - lib/google/spanner/v1/type_pb.rb
402
313
  homepage: https://github.com/googleapis/google-cloud-ruby/tree/master/google-cloud-spanner
403
314
  licenses:
404
315
  - Apache-2.0
@@ -418,7 +329,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
418
329
  - !ruby/object:Gem::Version
419
330
  version: '0'
420
331
  requirements: []
421
- rubygems_version: 3.0.6
332
+ rubygems_version: 3.1.4
422
333
  signing_key:
423
334
  specification_version: 4
424
335
  summary: API Client library for Google Cloud Spanner API
@@ -1,149 +0,0 @@
1
- # Copyright 2020 Google LLC
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # https://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
-
16
- require "google/gax"
17
- require "pathname"
18
-
19
- module Google
20
- module Cloud
21
- module Spanner
22
- module Admin
23
- # rubocop:disable LineLength
24
-
25
- ##
26
- # # Ruby Client for Cloud Spanner Database Admin API
27
- #
28
- # [Cloud Spanner Database Admin API][Product Documentation]:
29
- #
30
- # - [Product Documentation][]
31
- #
32
- # ## Quick Start
33
- # In order to use this library, you first need to go through the following
34
- # steps:
35
- #
36
- # 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
37
- # 2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
38
- # 3. [Enable the Cloud Spanner Database Admin API.](https://console.cloud.google.com/apis/library/spanner.googleapis.com)
39
- # 4. [Setup Authentication.](https://googleapis.dev/ruby/google-cloud-spanner/latest/file.AUTHENTICATION.html)
40
- #
41
- # ### Installation
42
- # ```
43
- # $ gem install google-cloud-spanner
44
- # ```
45
- #
46
- # ### Next Steps
47
- # - Read the [Cloud Spanner Database Admin API Product documentation][Product Documentation]
48
- # to learn more about the product and see How-to Guides.
49
- # - View this [repository's main README](https://github.com/googleapis/google-cloud-ruby/blob/master/README.md)
50
- # to see the full list of Cloud APIs that we cover.
51
- #
52
- # [Product Documentation]: https://cloud.google.com/spanner
53
- #
54
- # ## Enabling Logging
55
- #
56
- # To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
57
- # The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/stdlib-2.5.0/libdoc/logger/rdoc/Logger.html) as shown below,
58
- # or a [`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
59
- # that will write logs to [Stackdriver Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
60
- # and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
61
- #
62
- # Configuring a Ruby stdlib logger:
63
- #
64
- # ```ruby
65
- # require "logger"
66
- #
67
- # module MyLogger
68
- # LOGGER = Logger.new $stderr, level: Logger::WARN
69
- # def logger
70
- # LOGGER
71
- # end
72
- # end
73
- #
74
- # # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
75
- # module GRPC
76
- # extend MyLogger
77
- # end
78
- # ```
79
- #
80
- module Database
81
- # rubocop:enable LineLength
82
-
83
- FILE_DIR = File.realdirpath(Pathname.new(__FILE__).join("..").join("database"))
84
-
85
- AVAILABLE_VERSIONS = Dir["#{FILE_DIR}/*"]
86
- .select { |file| File.directory?(file) }
87
- .select { |dir| Google::Gax::VERSION_MATCHER.match(File.basename(dir)) }
88
- .select { |dir| File.exist?(dir + ".rb") }
89
- .map { |dir| File.basename(dir) }
90
-
91
- ##
92
- # Cloud Spanner Database Admin API
93
- #
94
- # The Cloud Spanner Database Admin API can be used to create, drop, and
95
- # list databases. It also enables updating the schema of pre-existing
96
- # databases. It can be also used to create, delete and list backups for a
97
- # database and to restore from an existing backup.
98
- #
99
- # @param version [Symbol, String]
100
- # The major version of the service to be used. By default :v1
101
- # is used.
102
- # @overload new(version:, credentials:, scopes:, client_config:, timeout:)
103
- # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
104
- # Provides the means for authenticating requests made by the client. This parameter can
105
- # be many types.
106
- # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
107
- # authenticating requests made by this client.
108
- # A `String` will be treated as the path to the keyfile to be used for the construction of
109
- # credentials for this client.
110
- # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
111
- # credentials for this client.
112
- # A `GRPC::Core::Channel` will be used to make calls through.
113
- # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
114
- # should already be composed with a `GRPC::Core::CallCredentials` object.
115
- # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
116
- # metadata for requests, generally, to give OAuth credentials.
117
- # @param scopes [Array<String>]
118
- # The OAuth scopes for this service. This parameter is ignored if
119
- # an updater_proc is supplied.
120
- # @param client_config [Hash]
121
- # A Hash for call options for each method. See
122
- # Google::Gax#construct_settings for the structure of
123
- # this data. Falls back to the default config if not specified
124
- # or the specified config is missing data points.
125
- # @param timeout [Numeric]
126
- # The default timeout, in seconds, for calls made through this client.
127
- # @param metadata [Hash]
128
- # Default metadata to be sent with each request. This can be overridden on a per call basis.
129
- # @param exception_transformer [Proc]
130
- # An optional proc that intercepts any exceptions raised during an API call to inject
131
- # custom error handling.
132
- def self.new(*args, version: :v1, **kwargs)
133
- unless AVAILABLE_VERSIONS.include?(version.to_s.downcase)
134
- raise "The version: #{version} is not available. The available versions " \
135
- "are: [#{AVAILABLE_VERSIONS.join(", ")}]"
136
- end
137
-
138
- require "#{FILE_DIR}/#{version.to_s.downcase}"
139
- version_module = Google::Cloud::Spanner::Admin::Database
140
- .constants
141
- .select {|sym| sym.to_s.downcase == version.to_s.downcase}
142
- .first
143
- Google::Cloud::Spanner::Admin::Database.const_get(version_module).new(*args, **kwargs)
144
- end
145
- end
146
- end
147
- end
148
- end
149
- end