google-cloud-spanner 1.0.0 → 1.1.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 +5 -5
- data/lib/google-cloud-spanner.rb +13 -10
- data/lib/google/cloud/spanner.rb +21 -18
- data/lib/google/cloud/spanner/admin/database.rb +111 -0
- data/lib/google/cloud/spanner/admin/database/credentials.rb +35 -0
- data/lib/google/cloud/spanner/admin/database/v1.rb +100 -3
- data/lib/google/cloud/spanner/admin/database/v1/database_admin_client.rb +129 -138
- data/lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/policy.rb +8 -8
- data/lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/any.rb +12 -2
- data/lib/google/cloud/spanner/admin/database/v1/doc/google/rpc/status.rb +22 -22
- data/lib/google/cloud/spanner/admin/database/v1/doc/google/spanner/admin/database/v1/spanner_database_admin.rb +33 -20
- data/lib/google/cloud/spanner/admin/database/v1/doc/overview.rb +57 -0
- data/lib/google/cloud/spanner/admin/instance.rb +127 -0
- data/lib/google/cloud/spanner/admin/instance/credentials.rb +35 -0
- data/lib/google/cloud/spanner/admin/instance/v1.rb +116 -3
- data/lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/policy.rb +8 -8
- data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/any.rb +12 -2
- data/lib/google/cloud/spanner/admin/instance/v1/doc/google/rpc/status.rb +22 -22
- data/lib/google/cloud/spanner/admin/instance/v1/doc/google/spanner/admin/instance/v1/spanner_instance_admin.rb +58 -43
- data/lib/google/cloud/spanner/admin/instance/v1/doc/overview.rb +57 -0
- data/lib/google/cloud/spanner/admin/instance/v1/instance_admin_client.rb +180 -189
- data/lib/google/cloud/spanner/client.rb +3 -3
- data/lib/google/cloud/spanner/credentials.rb +33 -7
- data/lib/google/cloud/spanner/database.rb +3 -6
- data/lib/google/cloud/spanner/instance.rb +2 -4
- data/lib/google/cloud/spanner/instance/config.rb +2 -4
- data/lib/google/cloud/spanner/project.rb +6 -6
- data/lib/google/cloud/spanner/service.rb +5 -26
- data/lib/google/cloud/spanner/session.rb +4 -4
- data/lib/google/cloud/spanner/v1/doc/google/protobuf/duration.rb +14 -1
- data/lib/google/cloud/spanner/v1/doc/google/protobuf/timestamp.rb +26 -1
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/keys.rb +3 -3
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/mutation.rb +12 -12
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/query_plan.rb +9 -9
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/result_set.rb +33 -33
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/spanner.rb +99 -28
- data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/transaction.rb +41 -31
- data/lib/google/cloud/spanner/v1/doc/overview.rb +54 -0
- data/lib/google/cloud/spanner/v1/spanner_client.rb +277 -195
- data/lib/google/cloud/spanner/v1/spanner_client_config.json +5 -0
- data/lib/google/cloud/spanner/version.rb +1 -1
- data/lib/google/spanner/v1/spanner_pb.rb +16 -1
- data/lib/google/spanner/v1/spanner_services_pb.rb +2 -0
- metadata +16 -23
@@ -0,0 +1,57 @@
|
|
1
|
+
# Copyright 2017, Google Inc. All rights reserved.
|
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
|
+
# http://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
|
+
module Google
|
16
|
+
module Cloud
|
17
|
+
module Spanner
|
18
|
+
module Admin
|
19
|
+
# rubocop:disable LineLength
|
20
|
+
|
21
|
+
##
|
22
|
+
# # Ruby Client for Cloud Spanner Instance Admin API ([Alpha](https://github.com/GoogleCloudPlatform/google-cloud-ruby#versioning))
|
23
|
+
#
|
24
|
+
# [Cloud Spanner Instance Admin API][Product Documentation]:
|
25
|
+
#
|
26
|
+
# - [Product Documentation][]
|
27
|
+
#
|
28
|
+
# ## Quick Start
|
29
|
+
# In order to use this library, you first need to go through the following
|
30
|
+
# steps:
|
31
|
+
#
|
32
|
+
# 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
|
33
|
+
# 2. [Enable the Cloud Spanner Instance Admin API.](https://console.cloud.google.com/apis/api/spanner-admin-instance)
|
34
|
+
# 3. [Setup Authentication.](https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud/master/guides/authentication)
|
35
|
+
#
|
36
|
+
# ### Installation
|
37
|
+
# ```
|
38
|
+
# $ gem install google-cloud-spanner-admin-instance
|
39
|
+
# ```
|
40
|
+
#
|
41
|
+
# ### Next Steps
|
42
|
+
# - Read the [Cloud Spanner Instance Admin API Product documentation][Product Documentation]
|
43
|
+
# to learn more about the product and see How-to Guides.
|
44
|
+
# - View this [repository's main README](https://github.com/GoogleCloudPlatform/google-cloud-ruby/blob/master/README.md)
|
45
|
+
# to see the full list of Cloud APIs that we cover.
|
46
|
+
#
|
47
|
+
# [Product Documentation]: https://cloud.google.com/spanner-admin-instance
|
48
|
+
#
|
49
|
+
#
|
50
|
+
module Instance
|
51
|
+
module V1
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -30,6 +30,7 @@ require "google/gax/operation"
|
|
30
30
|
require "google/longrunning/operations_client"
|
31
31
|
|
32
32
|
require "google/spanner/admin/instance/v1/spanner_instance_admin_pb"
|
33
|
+
require "google/cloud/spanner/admin/instance/credentials"
|
33
34
|
|
34
35
|
module Google
|
35
36
|
module Cloud
|
@@ -141,50 +142,24 @@ module Google
|
|
141
142
|
)
|
142
143
|
end
|
143
144
|
|
144
|
-
#
|
145
|
-
#
|
146
|
-
#
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
#
|
152
|
-
#
|
153
|
-
#
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
#
|
159
|
-
#
|
160
|
-
#
|
161
|
-
|
162
|
-
INSTANCE_CONFIG_PATH_TEMPLATE.match(instance_config_name)["instance_config"]
|
163
|
-
end
|
164
|
-
|
165
|
-
# Parses the project from a instance resource.
|
166
|
-
# @param instance_name [String]
|
167
|
-
# @return [String]
|
168
|
-
def self.match_project_from_instance_name instance_name
|
169
|
-
INSTANCE_PATH_TEMPLATE.match(instance_name)["project"]
|
170
|
-
end
|
171
|
-
|
172
|
-
# Parses the instance from a instance resource.
|
173
|
-
# @param instance_name [String]
|
174
|
-
# @return [String]
|
175
|
-
def self.match_instance_from_instance_name instance_name
|
176
|
-
INSTANCE_PATH_TEMPLATE.match(instance_name)["instance"]
|
177
|
-
end
|
178
|
-
|
179
|
-
# @param service_path [String]
|
180
|
-
# The domain name of the API remote host.
|
181
|
-
# @param port [Integer]
|
182
|
-
# The port on which to connect to the remote host.
|
183
|
-
# @param channel [Channel]
|
184
|
-
# A Channel object through which to make calls.
|
185
|
-
# @param chan_creds [Grpc::ChannelCredentials]
|
186
|
-
# A ChannelCredentials for the setting up the RPC client.
|
187
|
-
# @param client_config[Hash]
|
145
|
+
# @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
|
146
|
+
# Provides the means for authenticating requests made by the client. This parameter can
|
147
|
+
# be many types.
|
148
|
+
# A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
|
149
|
+
# authenticating requests made by this client.
|
150
|
+
# A `String` will be treated as the path to the keyfile to be used for the construction of
|
151
|
+
# credentials for this client.
|
152
|
+
# A `Hash` will be treated as the contents of a keyfile to be used for the construction of
|
153
|
+
# credentials for this client.
|
154
|
+
# A `GRPC::Core::Channel` will be used to make calls through.
|
155
|
+
# A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
|
156
|
+
# should already be composed with a `GRPC::Core::CallCredentials` object.
|
157
|
+
# A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
|
158
|
+
# metadata for requests, generally, to give OAuth credentials.
|
159
|
+
# @param scopes [Array<String>]
|
160
|
+
# The OAuth scopes for this service. This parameter is ignored if
|
161
|
+
# an updater_proc is supplied.
|
162
|
+
# @param client_config [Hash]
|
188
163
|
# A Hash for call options for each method. See
|
189
164
|
# Google::Gax#construct_settings for the structure of
|
190
165
|
# this data. Falls back to the default config if not specified
|
@@ -196,11 +171,11 @@ module Google
|
|
196
171
|
port: DEFAULT_SERVICE_PORT,
|
197
172
|
channel: nil,
|
198
173
|
chan_creds: nil,
|
174
|
+
updater_proc: nil,
|
175
|
+
credentials: nil,
|
199
176
|
scopes: ALL_SCOPES,
|
200
177
|
client_config: {},
|
201
178
|
timeout: DEFAULT_TIMEOUT,
|
202
|
-
app_name: nil,
|
203
|
-
app_version: nil,
|
204
179
|
lib_name: nil,
|
205
180
|
lib_version: ""
|
206
181
|
# These require statements are intentionally placed here to initialize
|
@@ -209,27 +184,48 @@ module Google
|
|
209
184
|
require "google/gax/grpc"
|
210
185
|
require "google/spanner/admin/instance/v1/spanner_instance_admin_services_pb"
|
211
186
|
|
187
|
+
if channel || chan_creds || updater_proc
|
188
|
+
warn "The `channel`, `chan_creds`, and `updater_proc` parameters will be removed " \
|
189
|
+
"on 2017/09/08"
|
190
|
+
credentials ||= channel
|
191
|
+
credentials ||= chan_creds
|
192
|
+
credentials ||= updater_proc
|
193
|
+
end
|
194
|
+
if service_path != SERVICE_ADDRESS || port != DEFAULT_SERVICE_PORT
|
195
|
+
warn "`service_path` and `port` parameters are deprecated and will be removed"
|
196
|
+
end
|
197
|
+
|
198
|
+
credentials ||= Google::Cloud::Spanner::Admin::Instance::Credentials.default
|
199
|
+
|
212
200
|
@operations_client = Google::Longrunning::OperationsClient.new(
|
213
201
|
service_path: service_path,
|
214
|
-
|
215
|
-
channel: channel,
|
216
|
-
chan_creds: chan_creds,
|
202
|
+
credentials: credentials,
|
217
203
|
scopes: scopes,
|
218
204
|
client_config: client_config,
|
219
205
|
timeout: timeout,
|
220
|
-
app_name: app_name,
|
221
|
-
app_version: app_version,
|
222
206
|
lib_name: lib_name,
|
223
207
|
lib_version: lib_version,
|
224
208
|
)
|
225
209
|
|
226
|
-
if
|
227
|
-
|
210
|
+
if credentials.is_a?(String) || credentials.is_a?(Hash)
|
211
|
+
updater_proc = Google::Cloud::Spanner::Admin::Instance::Credentials.new(credentials).updater_proc
|
212
|
+
end
|
213
|
+
if credentials.is_a?(GRPC::Core::Channel)
|
214
|
+
channel = credentials
|
215
|
+
end
|
216
|
+
if credentials.is_a?(GRPC::Core::ChannelCredentials)
|
217
|
+
chan_creds = credentials
|
218
|
+
end
|
219
|
+
if credentials.is_a?(Proc)
|
220
|
+
updater_proc = credentials
|
221
|
+
end
|
222
|
+
if credentials.is_a?(Google::Auth::Credentials)
|
223
|
+
updater_proc = credentials.updater_proc
|
228
224
|
end
|
229
225
|
|
230
226
|
google_api_client = "gl-ruby/#{RUBY_VERSION}"
|
231
227
|
google_api_client << " #{lib_name}/#{lib_version}" if lib_name
|
232
|
-
google_api_client << " gapic/0.
|
228
|
+
google_api_client << " gapic/0.1.0 gax/#{Google::Gax::VERSION}"
|
233
229
|
google_api_client << " grpc/#{GRPC::VERSION}"
|
234
230
|
google_api_client.freeze
|
235
231
|
|
@@ -254,6 +250,7 @@ module Google
|
|
254
250
|
port,
|
255
251
|
chan_creds: chan_creds,
|
256
252
|
channel: channel,
|
253
|
+
updater_proc: updater_proc,
|
257
254
|
scopes: scopes,
|
258
255
|
&Google::Spanner::Admin::Instance::V1::InstanceAdmin::Stub.method(:new)
|
259
256
|
)
|
@@ -324,12 +321,10 @@ module Google
|
|
324
321
|
# object.
|
325
322
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
326
323
|
# @example
|
327
|
-
# require "google/cloud/spanner/admin/instance/v1
|
324
|
+
# require "google/cloud/spanner/admin/instance/v1"
|
328
325
|
#
|
329
|
-
#
|
330
|
-
#
|
331
|
-
# instance_admin_client = InstanceAdminClient.new
|
332
|
-
# formatted_parent = InstanceAdminClient.project_path("[PROJECT]")
|
326
|
+
# instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
|
327
|
+
# formatted_parent = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.project_path("[PROJECT]")
|
333
328
|
#
|
334
329
|
# # Iterate over all results.
|
335
330
|
# instance_admin_client.list_instance_configs(formatted_parent).each do |element|
|
@@ -348,10 +343,11 @@ module Google
|
|
348
343
|
parent,
|
349
344
|
page_size: nil,
|
350
345
|
options: nil
|
351
|
-
req =
|
346
|
+
req = {
|
352
347
|
parent: parent,
|
353
348
|
page_size: page_size
|
354
|
-
}.delete_if { |_, v| v.nil? }
|
349
|
+
}.delete_if { |_, v| v.nil? }
|
350
|
+
req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::ListInstanceConfigsRequest)
|
355
351
|
@list_instance_configs.call(req, options)
|
356
352
|
end
|
357
353
|
|
@@ -366,20 +362,19 @@ module Google
|
|
366
362
|
# @return [Google::Spanner::Admin::Instance::V1::InstanceConfig]
|
367
363
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
368
364
|
# @example
|
369
|
-
# require "google/cloud/spanner/admin/instance/v1
|
370
|
-
#
|
371
|
-
# InstanceAdminClient = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient
|
365
|
+
# require "google/cloud/spanner/admin/instance/v1"
|
372
366
|
#
|
373
|
-
# instance_admin_client =
|
374
|
-
# formatted_name = InstanceAdminClient.instance_config_path("[PROJECT]", "[INSTANCE_CONFIG]")
|
367
|
+
# instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
|
368
|
+
# formatted_name = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_config_path("[PROJECT]", "[INSTANCE_CONFIG]")
|
375
369
|
# response = instance_admin_client.get_instance_config(formatted_name)
|
376
370
|
|
377
371
|
def get_instance_config \
|
378
372
|
name,
|
379
373
|
options: nil
|
380
|
-
req =
|
374
|
+
req = {
|
381
375
|
name: name
|
382
|
-
}.delete_if { |_, v| v.nil? }
|
376
|
+
}.delete_if { |_, v| v.nil? }
|
377
|
+
req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::GetInstanceConfigRequest)
|
383
378
|
@get_instance_config.call(req, options)
|
384
379
|
end
|
385
380
|
|
@@ -398,22 +393,22 @@ module Google
|
|
398
393
|
# An expression for filtering the results of the request. Filter rules are
|
399
394
|
# case insensitive. The fields eligible for filtering are:
|
400
395
|
#
|
401
|
-
#
|
402
|
-
# * display_name
|
403
|
-
# * labels.key where key is the name of a label
|
404
|
-
#
|
405
|
-
#
|
406
|
-
#
|
407
|
-
# * name
|
408
|
-
# * name:Howl --> The instance's name contains the string "howl".
|
409
|
-
# * name:HOWL --> Equivalent to above.
|
410
|
-
# * NAME:howl --> Equivalent to above.
|
411
|
-
# * labels.env
|
412
|
-
# * labels.env:dev --> The instance has the label "env" and the value of
|
413
|
-
#
|
414
|
-
# * name:howl labels.env:dev --> The instance's name contains "howl" and
|
415
|
-
#
|
416
|
-
#
|
396
|
+
# * +name+
|
397
|
+
# * +display_name+
|
398
|
+
# * +labels.key+ where key is the name of a label
|
399
|
+
#
|
400
|
+
# Some examples of using filters are:
|
401
|
+
#
|
402
|
+
# * +name:*+ --> The instance has a name.
|
403
|
+
# * +name:Howl+ --> The instance's name contains the string "howl".
|
404
|
+
# * +name:HOWL+ --> Equivalent to above.
|
405
|
+
# * +NAME:howl+ --> Equivalent to above.
|
406
|
+
# * +labels.env:*+ --> The instance has the label "env".
|
407
|
+
# * +labels.env:dev+ --> The instance has the label "env" and the value of
|
408
|
+
# the label contains the string "dev".
|
409
|
+
# * +name:howl labels.env:dev+ --> The instance's name contains "howl" and
|
410
|
+
# it has the label "env" with its value
|
411
|
+
# containing "dev".
|
417
412
|
# @param options [Google::Gax::CallOptions]
|
418
413
|
# Overrides the default settings for this call, e.g, timeout,
|
419
414
|
# retries, etc.
|
@@ -424,12 +419,10 @@ module Google
|
|
424
419
|
# object.
|
425
420
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
426
421
|
# @example
|
427
|
-
# require "google/cloud/spanner/admin/instance/v1
|
422
|
+
# require "google/cloud/spanner/admin/instance/v1"
|
428
423
|
#
|
429
|
-
#
|
430
|
-
#
|
431
|
-
# instance_admin_client = InstanceAdminClient.new
|
432
|
-
# formatted_parent = InstanceAdminClient.project_path("[PROJECT]")
|
424
|
+
# instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
|
425
|
+
# formatted_parent = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.project_path("[PROJECT]")
|
433
426
|
#
|
434
427
|
# # Iterate over all results.
|
435
428
|
# instance_admin_client.list_instances(formatted_parent).each do |element|
|
@@ -449,11 +442,12 @@ module Google
|
|
449
442
|
page_size: nil,
|
450
443
|
filter: nil,
|
451
444
|
options: nil
|
452
|
-
req =
|
445
|
+
req = {
|
453
446
|
parent: parent,
|
454
447
|
page_size: page_size,
|
455
448
|
filter: filter
|
456
|
-
}.delete_if { |_, v| v.nil? }
|
449
|
+
}.delete_if { |_, v| v.nil? }
|
450
|
+
req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::ListInstancesRequest)
|
457
451
|
@list_instances.call(req, options)
|
458
452
|
end
|
459
453
|
|
@@ -468,25 +462,24 @@ module Google
|
|
468
462
|
# @return [Google::Spanner::Admin::Instance::V1::Instance]
|
469
463
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
470
464
|
# @example
|
471
|
-
# require "google/cloud/spanner/admin/instance/v1
|
472
|
-
#
|
473
|
-
# InstanceAdminClient = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient
|
465
|
+
# require "google/cloud/spanner/admin/instance/v1"
|
474
466
|
#
|
475
|
-
# instance_admin_client =
|
476
|
-
# formatted_name = InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
|
467
|
+
# instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
|
468
|
+
# formatted_name = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
|
477
469
|
# response = instance_admin_client.get_instance(formatted_name)
|
478
470
|
|
479
471
|
def get_instance \
|
480
472
|
name,
|
481
473
|
options: nil
|
482
|
-
req =
|
474
|
+
req = {
|
483
475
|
name: name
|
484
|
-
}.delete_if { |_, v| v.nil? }
|
476
|
+
}.delete_if { |_, v| v.nil? }
|
477
|
+
req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::GetInstanceRequest)
|
485
478
|
@get_instance.call(req, options)
|
486
479
|
end
|
487
480
|
|
488
481
|
# Creates an instance and begins preparing it to begin serving. The
|
489
|
-
# returned
|
482
|
+
# returned {Google::Longrunning::Operation long-running operation}
|
490
483
|
# can be used to track the progress of preparing the new
|
491
484
|
# instance. The instance name is assigned by the caller. If the
|
492
485
|
# named instance already exists, +CreateInstance+ returns
|
@@ -494,17 +487,17 @@ module Google
|
|
494
487
|
#
|
495
488
|
# Immediately upon completion of this request:
|
496
489
|
#
|
497
|
-
#
|
498
|
-
#
|
490
|
+
# * The instance is readable via the API, with all requested attributes
|
491
|
+
# but no allocated resources. Its state is +CREATING+.
|
499
492
|
#
|
500
493
|
# Until completion of the returned operation:
|
501
494
|
#
|
502
|
-
#
|
503
|
-
#
|
495
|
+
# * Cancelling the operation renders the instance immediately unreadable
|
496
|
+
# via the API.
|
504
497
|
# * The instance can be deleted.
|
505
498
|
# * All other attempts to modify the instance are rejected.
|
506
499
|
#
|
507
|
-
#
|
500
|
+
# Upon completion of the returned operation:
|
508
501
|
#
|
509
502
|
# * Billing for all successfully-allocated resources begins (some types
|
510
503
|
# may have lower than the requested levels).
|
@@ -512,13 +505,13 @@ module Google
|
|
512
505
|
# * The instance's allocated resource levels are readable via the API.
|
513
506
|
# * The instance's state becomes +READY+.
|
514
507
|
#
|
515
|
-
#
|
516
|
-
#
|
517
|
-
#
|
518
|
-
#
|
519
|
-
# CreateInstanceMetadata.
|
520
|
-
#
|
521
|
-
# Instance, if successful.
|
508
|
+
# The returned {Google::Longrunning::Operation long-running operation} will
|
509
|
+
# have a name of the format +<instance_name>/operations/<operation_id>+ and
|
510
|
+
# can be used to track creation of the instance. The
|
511
|
+
# {Google::Longrunning::Operation#metadata metadata} field type is
|
512
|
+
# {Google::Spanner::Admin::Instance::V1::CreateInstanceMetadata CreateInstanceMetadata}.
|
513
|
+
# The {Google::Longrunning::Operation#response response} field type is
|
514
|
+
# {Google::Spanner::Admin::Instance::V1::Instance Instance}, if successful.
|
522
515
|
#
|
523
516
|
# @param parent [String]
|
524
517
|
# Required. The name of the project in which to create the instance. Values
|
@@ -527,24 +520,23 @@ module Google
|
|
527
520
|
# Required. The ID of the instance to create. Valid identifiers are of the
|
528
521
|
# form +[a-z][-a-z0-9]*[a-z0-9]+ and must be between 6 and 30 characters in
|
529
522
|
# length.
|
530
|
-
# @param instance [Google::Spanner::Admin::Instance::V1::Instance]
|
523
|
+
# @param instance [Google::Spanner::Admin::Instance::V1::Instance | Hash]
|
531
524
|
# Required. The instance to create. The name may be omitted, but if
|
532
525
|
# specified must be +<parent>/instances/<instance_id>+.
|
526
|
+
# A hash of the same form as `Google::Spanner::Admin::Instance::V1::Instance`
|
527
|
+
# can also be provided.
|
533
528
|
# @param options [Google::Gax::CallOptions]
|
534
529
|
# Overrides the default settings for this call, e.g, timeout,
|
535
530
|
# retries, etc.
|
536
531
|
# @return [Google::Gax::Operation]
|
537
532
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
538
533
|
# @example
|
539
|
-
# require "google/cloud/spanner/admin/instance/v1
|
534
|
+
# require "google/cloud/spanner/admin/instance/v1"
|
540
535
|
#
|
541
|
-
#
|
542
|
-
#
|
543
|
-
#
|
544
|
-
# instance_admin_client = InstanceAdminClient.new
|
545
|
-
# formatted_parent = InstanceAdminClient.project_path("[PROJECT]")
|
536
|
+
# instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
|
537
|
+
# formatted_parent = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.project_path("[PROJECT]")
|
546
538
|
# instance_id = ''
|
547
|
-
# instance =
|
539
|
+
# instance = {}
|
548
540
|
#
|
549
541
|
# # Register a callback during the method call.
|
550
542
|
# operation = instance_admin_client.create_instance(formatted_parent, instance_id, instance) do |op|
|
@@ -578,11 +570,12 @@ module Google
|
|
578
570
|
instance_id,
|
579
571
|
instance,
|
580
572
|
options: nil
|
581
|
-
req =
|
573
|
+
req = {
|
582
574
|
parent: parent,
|
583
575
|
instance_id: instance_id,
|
584
576
|
instance: instance
|
585
|
-
}.delete_if { |_, v| v.nil? }
|
577
|
+
}.delete_if { |_, v| v.nil? }
|
578
|
+
req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::CreateInstanceRequest)
|
586
579
|
operation = Google::Gax::Operation.new(
|
587
580
|
@create_instance.call(req, options),
|
588
581
|
@operations_client,
|
@@ -595,28 +588,28 @@ module Google
|
|
595
588
|
end
|
596
589
|
|
597
590
|
# Updates an instance, and begins allocating or releasing resources
|
598
|
-
# as requested. The returned
|
599
|
-
# operation can be used to track the
|
591
|
+
# as requested. The returned [long-running
|
592
|
+
# operation][google.longrunning.Operation] can be used to track the
|
600
593
|
# progress of updating the instance. If the named instance does not
|
601
594
|
# exist, returns +NOT_FOUND+.
|
602
595
|
#
|
603
596
|
# Immediately upon completion of this request:
|
604
597
|
#
|
605
|
-
#
|
606
|
-
#
|
598
|
+
# * For resource types for which a decrease in the instance's allocation
|
599
|
+
# has been requested, billing is based on the newly-requested level.
|
607
600
|
#
|
608
601
|
# Until completion of the returned operation:
|
609
602
|
#
|
610
|
-
#
|
611
|
-
#
|
612
|
-
#
|
613
|
-
#
|
614
|
-
#
|
603
|
+
# * Cancelling the operation sets its metadata's
|
604
|
+
# {Google::Spanner::Admin::Instance::V1::UpdateInstanceMetadata#cancel_time cancel_time}, and begins
|
605
|
+
# restoring resources to their pre-request values. The operation
|
606
|
+
# is guaranteed to succeed at undoing all resource changes,
|
607
|
+
# after which point it terminates with a +CANCELLED+ status.
|
615
608
|
# * All other attempts to modify the instance are rejected.
|
616
609
|
# * Reading the instance via the API continues to give the pre-request
|
617
610
|
# resource levels.
|
618
611
|
#
|
619
|
-
#
|
612
|
+
# Upon completion of the returned operation:
|
620
613
|
#
|
621
614
|
# * Billing begins for all successfully-allocated resources (some types
|
622
615
|
# may have lower than the requested levels).
|
@@ -624,40 +617,40 @@ module Google
|
|
624
617
|
# tables.
|
625
618
|
# * The instance's new resource levels are readable via the API.
|
626
619
|
#
|
627
|
-
#
|
628
|
-
#
|
629
|
-
#
|
630
|
-
#
|
631
|
-
# UpdateInstanceMetadata.
|
632
|
-
#
|
633
|
-
# Instance, if successful.
|
620
|
+
# The returned {Google::Longrunning::Operation long-running operation} will
|
621
|
+
# have a name of the format +<instance_name>/operations/<operation_id>+ and
|
622
|
+
# can be used to track the instance modification. The
|
623
|
+
# {Google::Longrunning::Operation#metadata metadata} field type is
|
624
|
+
# {Google::Spanner::Admin::Instance::V1::UpdateInstanceMetadata UpdateInstanceMetadata}.
|
625
|
+
# The {Google::Longrunning::Operation#response response} field type is
|
626
|
+
# {Google::Spanner::Admin::Instance::V1::Instance Instance}, if successful.
|
634
627
|
#
|
635
628
|
# Authorization requires +spanner.instances.update+ permission on
|
636
|
-
# resource
|
629
|
+
# resource {Google::Spanner::Admin::Instance::V1::Instance#name name}.
|
637
630
|
#
|
638
|
-
# @param instance [Google::Spanner::Admin::Instance::V1::Instance]
|
631
|
+
# @param instance [Google::Spanner::Admin::Instance::V1::Instance | Hash]
|
639
632
|
# Required. The instance to update, which must always include the instance
|
640
633
|
# name. Otherwise, only fields mentioned in [][google.spanner.admin.instance.v1.UpdateInstanceRequest.field_mask] need be included.
|
641
|
-
#
|
634
|
+
# A hash of the same form as `Google::Spanner::Admin::Instance::V1::Instance`
|
635
|
+
# can also be provided.
|
636
|
+
# @param field_mask [Google::Protobuf::FieldMask | Hash]
|
642
637
|
# Required. A mask specifying which fields in [][google.spanner.admin.instance.v1.UpdateInstanceRequest.instance] should be updated.
|
643
638
|
# The field mask must always be specified; this prevents any future fields in
|
644
639
|
# [][google.spanner.admin.instance.v1.Instance] from being erased accidentally by clients that do not know
|
645
640
|
# about them.
|
641
|
+
# A hash of the same form as `Google::Protobuf::FieldMask`
|
642
|
+
# can also be provided.
|
646
643
|
# @param options [Google::Gax::CallOptions]
|
647
644
|
# Overrides the default settings for this call, e.g, timeout,
|
648
645
|
# retries, etc.
|
649
646
|
# @return [Google::Gax::Operation]
|
650
647
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
651
648
|
# @example
|
652
|
-
# require "google/cloud/spanner/admin/instance/v1
|
653
|
-
#
|
654
|
-
# FieldMask = Google::Protobuf::FieldMask
|
655
|
-
# Instance = Google::Spanner::Admin::Instance::V1::Instance
|
656
|
-
# InstanceAdminClient = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient
|
649
|
+
# require "google/cloud/spanner/admin/instance/v1"
|
657
650
|
#
|
658
|
-
# instance_admin_client =
|
659
|
-
# instance =
|
660
|
-
# field_mask =
|
651
|
+
# instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
|
652
|
+
# instance = {}
|
653
|
+
# field_mask = {}
|
661
654
|
#
|
662
655
|
# # Register a callback during the method call.
|
663
656
|
# operation = instance_admin_client.update_instance(instance, field_mask) do |op|
|
@@ -690,10 +683,11 @@ module Google
|
|
690
683
|
instance,
|
691
684
|
field_mask,
|
692
685
|
options: nil
|
693
|
-
req =
|
686
|
+
req = {
|
694
687
|
instance: instance,
|
695
688
|
field_mask: field_mask
|
696
|
-
}.delete_if { |_, v| v.nil? }
|
689
|
+
}.delete_if { |_, v| v.nil? }
|
690
|
+
req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::UpdateInstanceRequest)
|
697
691
|
operation = Google::Gax::Operation.new(
|
698
692
|
@update_instance.call(req, options),
|
699
693
|
@operations_client,
|
@@ -709,13 +703,13 @@ module Google
|
|
709
703
|
#
|
710
704
|
# Immediately upon completion of the request:
|
711
705
|
#
|
712
|
-
#
|
706
|
+
# * Billing ceases for all of the instance's reserved resources.
|
713
707
|
#
|
714
708
|
# Soon afterward:
|
715
709
|
#
|
716
|
-
#
|
717
|
-
#
|
718
|
-
#
|
710
|
+
# * The instance and *all of its databases* immediately and
|
711
|
+
# irrevocably disappear from the API. All data in the databases
|
712
|
+
# is permanently deleted.
|
719
713
|
#
|
720
714
|
# @param name [String]
|
721
715
|
# Required. The name of the instance to be deleted. Values are of the form
|
@@ -725,20 +719,19 @@ module Google
|
|
725
719
|
# retries, etc.
|
726
720
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
727
721
|
# @example
|
728
|
-
# require "google/cloud/spanner/admin/instance/v1
|
722
|
+
# require "google/cloud/spanner/admin/instance/v1"
|
729
723
|
#
|
730
|
-
#
|
731
|
-
#
|
732
|
-
# instance_admin_client = InstanceAdminClient.new
|
733
|
-
# formatted_name = InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
|
724
|
+
# instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
|
725
|
+
# formatted_name = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
|
734
726
|
# instance_admin_client.delete_instance(formatted_name)
|
735
727
|
|
736
728
|
def delete_instance \
|
737
729
|
name,
|
738
730
|
options: nil
|
739
|
-
req =
|
731
|
+
req = {
|
740
732
|
name: name
|
741
|
-
}.delete_if { |_, v| v.nil? }
|
733
|
+
}.delete_if { |_, v| v.nil? }
|
734
|
+
req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::DeleteInstanceRequest)
|
742
735
|
@delete_instance.call(req, options)
|
743
736
|
nil
|
744
737
|
end
|
@@ -747,41 +740,41 @@ module Google
|
|
747
740
|
# existing policy.
|
748
741
|
#
|
749
742
|
# Authorization requires +spanner.instances.setIamPolicy+ on
|
750
|
-
#
|
743
|
+
# {Google::Iam::V1::SetIamPolicyRequest#resource resource}.
|
751
744
|
#
|
752
745
|
# @param resource [String]
|
753
746
|
# REQUIRED: The resource for which the policy is being specified.
|
754
747
|
# +resource+ is usually specified as a path. For example, a Project
|
755
748
|
# resource is specified as +projects/{project}+.
|
756
|
-
# @param policy [Google::Iam::V1::Policy]
|
749
|
+
# @param policy [Google::Iam::V1::Policy | Hash]
|
757
750
|
# REQUIRED: The complete policy to be applied to the +resource+. The size of
|
758
751
|
# the policy is limited to a few 10s of KB. An empty policy is a
|
759
752
|
# valid policy but certain Cloud Platform services (such as Projects)
|
760
753
|
# might reject them.
|
754
|
+
# A hash of the same form as `Google::Iam::V1::Policy`
|
755
|
+
# can also be provided.
|
761
756
|
# @param options [Google::Gax::CallOptions]
|
762
757
|
# Overrides the default settings for this call, e.g, timeout,
|
763
758
|
# retries, etc.
|
764
759
|
# @return [Google::Iam::V1::Policy]
|
765
760
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
766
761
|
# @example
|
767
|
-
# require "google/cloud/spanner/admin/instance/v1
|
768
|
-
#
|
769
|
-
# InstanceAdminClient = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient
|
770
|
-
# Policy = Google::Iam::V1::Policy
|
762
|
+
# require "google/cloud/spanner/admin/instance/v1"
|
771
763
|
#
|
772
|
-
# instance_admin_client =
|
773
|
-
# formatted_resource = InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
|
774
|
-
# policy =
|
764
|
+
# instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
|
765
|
+
# formatted_resource = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
|
766
|
+
# policy = {}
|
775
767
|
# response = instance_admin_client.set_iam_policy(formatted_resource, policy)
|
776
768
|
|
777
769
|
def set_iam_policy \
|
778
770
|
resource,
|
779
771
|
policy,
|
780
772
|
options: nil
|
781
|
-
req =
|
773
|
+
req = {
|
782
774
|
resource: resource,
|
783
775
|
policy: policy
|
784
|
-
}.delete_if { |_, v| v.nil? }
|
776
|
+
}.delete_if { |_, v| v.nil? }
|
777
|
+
req = Google::Gax::to_proto(req, Google::Iam::V1::SetIamPolicyRequest)
|
785
778
|
@set_iam_policy.call(req, options)
|
786
779
|
end
|
787
780
|
|
@@ -789,7 +782,7 @@ module Google
|
|
789
782
|
# policy if an instance exists but does not have a policy set.
|
790
783
|
#
|
791
784
|
# Authorization requires +spanner.instances.getIamPolicy+ on
|
792
|
-
#
|
785
|
+
# {Google::Iam::V1::GetIamPolicyRequest#resource resource}.
|
793
786
|
#
|
794
787
|
# @param resource [String]
|
795
788
|
# REQUIRED: The resource for which the policy is being requested.
|
@@ -801,20 +794,19 @@ module Google
|
|
801
794
|
# @return [Google::Iam::V1::Policy]
|
802
795
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
803
796
|
# @example
|
804
|
-
# require "google/cloud/spanner/admin/instance/v1
|
797
|
+
# require "google/cloud/spanner/admin/instance/v1"
|
805
798
|
#
|
806
|
-
#
|
807
|
-
#
|
808
|
-
# instance_admin_client = InstanceAdminClient.new
|
809
|
-
# formatted_resource = InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
|
799
|
+
# instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
|
800
|
+
# formatted_resource = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
|
810
801
|
# response = instance_admin_client.get_iam_policy(formatted_resource)
|
811
802
|
|
812
803
|
def get_iam_policy \
|
813
804
|
resource,
|
814
805
|
options: nil
|
815
|
-
req =
|
806
|
+
req = {
|
816
807
|
resource: resource
|
817
|
-
}.delete_if { |_, v| v.nil? }
|
808
|
+
}.delete_if { |_, v| v.nil? }
|
809
|
+
req = Google::Gax::to_proto(req, Google::Iam::V1::GetIamPolicyRequest)
|
818
810
|
@get_iam_policy.call(req, options)
|
819
811
|
end
|
820
812
|
|
@@ -833,19 +825,17 @@ module Google
|
|
833
825
|
# The set of permissions to check for the +resource+. Permissions with
|
834
826
|
# wildcards (such as '*' or 'storage.*') are not allowed. For more
|
835
827
|
# information see
|
836
|
-
#
|
828
|
+
# [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
|
837
829
|
# @param options [Google::Gax::CallOptions]
|
838
830
|
# Overrides the default settings for this call, e.g, timeout,
|
839
831
|
# retries, etc.
|
840
832
|
# @return [Google::Iam::V1::TestIamPermissionsResponse]
|
841
833
|
# @raise [Google::Gax::GaxError] if the RPC is aborted.
|
842
834
|
# @example
|
843
|
-
# require "google/cloud/spanner/admin/instance/v1
|
844
|
-
#
|
845
|
-
# InstanceAdminClient = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient
|
835
|
+
# require "google/cloud/spanner/admin/instance/v1"
|
846
836
|
#
|
847
|
-
# instance_admin_client =
|
848
|
-
# formatted_resource = InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
|
837
|
+
# instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
|
838
|
+
# formatted_resource = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
|
849
839
|
# permissions = []
|
850
840
|
# response = instance_admin_client.test_iam_permissions(formatted_resource, permissions)
|
851
841
|
|
@@ -853,10 +843,11 @@ module Google
|
|
853
843
|
resource,
|
854
844
|
permissions,
|
855
845
|
options: nil
|
856
|
-
req =
|
846
|
+
req = {
|
857
847
|
resource: resource,
|
858
848
|
permissions: permissions
|
859
|
-
}.delete_if { |_, v| v.nil? }
|
849
|
+
}.delete_if { |_, v| v.nil? }
|
850
|
+
req = Google::Gax::to_proto(req, Google::Iam::V1::TestIamPermissionsRequest)
|
860
851
|
@test_iam_permissions.call(req, options)
|
861
852
|
end
|
862
853
|
end
|