google-cloud-spanner 1.6.1 → 1.6.2

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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/lib/google-cloud-spanner.rb +5 -4
  3. data/lib/google/cloud/spanner.rb +2 -346
  4. data/lib/google/cloud/spanner/admin/database.rb +39 -3
  5. data/lib/google/cloud/spanner/admin/database/credentials.rb +5 -9
  6. data/lib/google/cloud/spanner/admin/database/v1.rb +69 -28
  7. data/lib/google/cloud/spanner/admin/database/v1/credentials.rb +46 -0
  8. data/lib/google/cloud/spanner/admin/database/v1/database_admin_client.rb +111 -53
  9. data/lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/iam_policy.rb +63 -0
  10. data/lib/google/cloud/spanner/admin/database/v1/doc/google/iam/v1/policy.rb +8 -19
  11. data/lib/google/cloud/spanner/admin/database/v1/doc/google/longrunning/operations.rb +93 -0
  12. data/lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/any.rb +15 -9
  13. data/lib/google/cloud/spanner/admin/database/v1/doc/google/protobuf/empty.rb +29 -0
  14. data/lib/google/cloud/spanner/admin/database/v1/doc/google/rpc/status.rb +2 -1
  15. data/lib/google/cloud/spanner/admin/database/v1/doc/google/spanner/admin/database/v1/spanner_database_admin.rb +2 -12
  16. data/lib/google/cloud/spanner/admin/instance.rb +39 -3
  17. data/lib/google/cloud/spanner/admin/instance/credentials.rb +5 -9
  18. data/lib/google/cloud/spanner/admin/instance/v1.rb +69 -28
  19. data/lib/google/cloud/spanner/admin/instance/v1/credentials.rb +46 -0
  20. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/iam_policy.rb +63 -0
  21. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/iam/v1/policy.rb +8 -19
  22. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/longrunning/operations.rb +93 -0
  23. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/any.rb +15 -9
  24. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/empty.rb +29 -0
  25. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/protobuf/field_mask.rb +8 -1
  26. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/rpc/status.rb +2 -1
  27. data/lib/google/cloud/spanner/admin/instance/v1/doc/google/spanner/admin/instance/v1/spanner_instance_admin.rb +2 -12
  28. data/lib/google/cloud/spanner/admin/instance/v1/instance_admin_client.rb +125 -58
  29. data/lib/google/cloud/spanner/database/job.rb +1 -0
  30. data/lib/google/cloud/spanner/instance/job.rb +1 -0
  31. data/lib/google/cloud/spanner/v1/credentials.rb +1 -0
  32. data/lib/google/cloud/spanner/v1/doc/google/protobuf/duration.rb +1 -0
  33. data/lib/google/cloud/spanner/v1/doc/google/protobuf/empty.rb +1 -0
  34. data/lib/google/cloud/spanner/v1/doc/google/protobuf/struct.rb +1 -0
  35. data/lib/google/cloud/spanner/v1/doc/google/protobuf/timestamp.rb +9 -6
  36. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/keys.rb +1 -0
  37. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/mutation.rb +1 -0
  38. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/query_plan.rb +1 -0
  39. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/result_set.rb +1 -0
  40. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/spanner.rb +1 -0
  41. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/transaction.rb +1 -0
  42. data/lib/google/cloud/spanner/v1/doc/google/spanner/v1/type.rb +1 -0
  43. data/lib/google/cloud/spanner/v1/spanner_client.rb +28 -26
  44. data/lib/google/cloud/spanner/version.rb +1 -1
  45. data/lib/google/spanner/admin/database/v1/spanner_database_admin_pb.rb +1 -1
  46. data/lib/google/spanner/admin/database/v1/spanner_database_admin_services_pb.rb +3 -2
  47. data/lib/google/spanner/admin/instance/v1/spanner_instance_admin_pb.rb +1 -1
  48. data/lib/google/spanner/admin/instance/v1/spanner_instance_admin_services_pb.rb +3 -2
  49. data/lib/google/spanner/v1/keys_pb.rb +1 -0
  50. data/lib/google/spanner/v1/mutation_pb.rb +1 -0
  51. data/lib/google/spanner/v1/query_plan_pb.rb +1 -0
  52. data/lib/google/spanner/v1/result_set_pb.rb +1 -0
  53. data/lib/google/spanner/v1/spanner_pb.rb +1 -0
  54. data/lib/google/spanner/v1/spanner_services_pb.rb +1 -0
  55. data/lib/google/spanner/v1/transaction_pb.rb +1 -0
  56. data/lib/google/spanner/v1/type_pb.rb +1 -0
  57. metadata +14 -8
  58. data/lib/google/cloud/spanner/admin/database/v1/doc/overview.rb +0 -58
  59. data/lib/google/cloud/spanner/admin/instance/v1/doc/overview.rb +0 -58
@@ -0,0 +1,46 @@
1
+ # Copyright 2018 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 "googleauth"
17
+
18
+ module Google
19
+ module Cloud
20
+ module Spanner
21
+ module Admin
22
+ module Instance
23
+ module V1
24
+ class Credentials < Google::Auth::Credentials
25
+ SCOPE = [
26
+ "https://www.googleapis.com/auth/cloud-platform",
27
+ "https://www.googleapis.com/auth/spanner.admin"
28
+ ].freeze
29
+ PATH_ENV_VARS = %w(SPANNER_ADMIN_INSTANCE_CREDENTIALS
30
+ SPANNER_ADMIN_INSTANCE_KEYFILE
31
+ GOOGLE_CLOUD_CREDENTIALS
32
+ GOOGLE_CLOUD_KEYFILE
33
+ GCLOUD_KEYFILE)
34
+ JSON_ENV_VARS = %w(SPANNER_ADMIN_INSTANCE_CREDENTIALS_JSON
35
+ SPANNER_ADMIN_INSTANCE_KEYFILE_JSON
36
+ GOOGLE_CLOUD_CREDENTIALS_JSON
37
+ GOOGLE_CLOUD_KEYFILE_JSON
38
+ GCLOUD_KEYFILE_JSON)
39
+ DEFAULT_PATHS = ["~/.config/gcloud/application_default_credentials.json"]
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,63 @@
1
+ # Copyright 2018 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
+ module Google
17
+ module Iam
18
+ module V1
19
+ # Request message for +SetIamPolicy+ method.
20
+ # @!attribute [rw] resource
21
+ # @return [String]
22
+ # REQUIRED: The resource for which the policy is being specified.
23
+ # +resource+ is usually specified as a path. For example, a Project
24
+ # resource is specified as +projects/\\{project}+.
25
+ # @!attribute [rw] policy
26
+ # @return [Google::Iam::V1::Policy]
27
+ # REQUIRED: The complete policy to be applied to the +resource+. The size of
28
+ # the policy is limited to a few 10s of KB. An empty policy is a
29
+ # valid policy but certain Cloud Platform services (such as Projects)
30
+ # might reject them.
31
+ class SetIamPolicyRequest; end
32
+
33
+ # Request message for +GetIamPolicy+ method.
34
+ # @!attribute [rw] resource
35
+ # @return [String]
36
+ # REQUIRED: The resource for which the policy is being requested.
37
+ # +resource+ is usually specified as a path. For example, a Project
38
+ # resource is specified as +projects/\\{project}+.
39
+ class GetIamPolicyRequest; end
40
+
41
+ # Request message for +TestIamPermissions+ method.
42
+ # @!attribute [rw] resource
43
+ # @return [String]
44
+ # REQUIRED: The resource for which the policy detail is being requested.
45
+ # +resource+ is usually specified as a path. For example, a Project
46
+ # resource is specified as +projects/\\{project}+.
47
+ # @!attribute [rw] permissions
48
+ # @return [Array<String>]
49
+ # The set of permissions to check for the +resource+. Permissions with
50
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
51
+ # information see
52
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
53
+ class TestIamPermissionsRequest; end
54
+
55
+ # Response message for +TestIamPermissions+ method.
56
+ # @!attribute [rw] permissions
57
+ # @return [Array<String>]
58
+ # A subset of +TestPermissionsRequest.permissions+ that the caller is
59
+ # allowed.
60
+ class TestIamPermissionsResponse; end
61
+ end
62
+ end
63
+ end
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -12,6 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+
15
16
  module Google
16
17
  module Iam
17
18
  module V1
@@ -85,17 +86,17 @@ module Google
85
86
  # * +allAuthenticatedUsers+: A special identifier that represents anyone
86
87
  # who is authenticated with a Google account or a service account.
87
88
  #
88
- # * +user:{emailid}+: An email address that represents a specific Google
89
+ # * +user:\\{emailid}+: An email address that represents a specific Google
89
90
  # account. For example, +alice@gmail.com+ or +joe@example.com+.
90
91
  #
91
92
  #
92
- # * +serviceAccount:{emailid}+: An email address that represents a service
93
+ # * +serviceAccount:\\{emailid}+: An email address that represents a service
93
94
  # account. For example, +my-other-app@appspot.gserviceaccount.com+.
94
95
  #
95
- # * +group:{emailid}+: An email address that represents a Google group.
96
+ # * +group:\\{emailid}+: An email address that represents a Google group.
96
97
  # For example, +admins@example.com+.
97
98
  #
98
- # * +domain:{domain}+: A Google Apps domain name that represents all the
99
+ # * +domain:\\{domain}+: A Google Apps domain name that represents all the
99
100
  # users of that domain. For example, +google.com+ or +example.com+.
100
101
  class Binding; end
101
102
 
@@ -121,19 +122,7 @@ module Google
121
122
  # A single identity requesting access for a Cloud Platform resource.
122
123
  # Follows the same format of Binding.members.
123
124
  # Required
124
- class BindingDelta
125
- # The type of action performed on a Binding in a policy.
126
- module Action
127
- # Unspecified.
128
- ACTION_UNSPECIFIED = 0
129
-
130
- # Addition of a Binding.
131
- ADD = 1
132
-
133
- # Removal of a Binding.
134
- REMOVE = 2
135
- end
136
- end
125
+ class BindingDelta; end
137
126
  end
138
127
  end
139
- end
128
+ end
@@ -0,0 +1,93 @@
1
+ # Copyright 2018 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
+ module Google
17
+ module Longrunning
18
+ # This resource represents a long-running operation that is the result of a
19
+ # network API call.
20
+ # @!attribute [rw] name
21
+ # @return [String]
22
+ # The server-assigned name, which is only unique within the same service that
23
+ # originally returns it. If you use the default HTTP mapping, the
24
+ # +name+ should have the format of +operations/some/unique/name+.
25
+ # @!attribute [rw] metadata
26
+ # @return [Google::Protobuf::Any]
27
+ # Service-specific metadata associated with the operation. It typically
28
+ # contains progress information and common metadata such as create time.
29
+ # Some services might not provide such metadata. Any method that returns a
30
+ # long-running operation should document the metadata type, if any.
31
+ # @!attribute [rw] done
32
+ # @return [true, false]
33
+ # If the value is +false+, it means the operation is still in progress.
34
+ # If true, the operation is completed, and either +error+ or +response+ is
35
+ # available.
36
+ # @!attribute [rw] error
37
+ # @return [Google::Rpc::Status]
38
+ # The error result of the operation in case of failure or cancellation.
39
+ # @!attribute [rw] response
40
+ # @return [Google::Protobuf::Any]
41
+ # The normal response of the operation in case of success. If the original
42
+ # method returns no data on success, such as +Delete+, the response is
43
+ # +google.protobuf.Empty+. If the original method is standard
44
+ # +Get+/+Create+/+Update+, the response should be the resource. For other
45
+ # methods, the response should have the type +XxxResponse+, where +Xxx+
46
+ # is the original method name. For example, if the original method name
47
+ # is +TakeSnapshot()+, the inferred response type is
48
+ # +TakeSnapshotResponse+.
49
+ class Operation; end
50
+
51
+ # The request message for {Google::Longrunning::Operations::GetOperation Operations::GetOperation}.
52
+ # @!attribute [rw] name
53
+ # @return [String]
54
+ # The name of the operation resource.
55
+ class GetOperationRequest; end
56
+
57
+ # The request message for {Google::Longrunning::Operations::ListOperations Operations::ListOperations}.
58
+ # @!attribute [rw] name
59
+ # @return [String]
60
+ # The name of the operation collection.
61
+ # @!attribute [rw] filter
62
+ # @return [String]
63
+ # The standard list filter.
64
+ # @!attribute [rw] page_size
65
+ # @return [Integer]
66
+ # The standard list page size.
67
+ # @!attribute [rw] page_token
68
+ # @return [String]
69
+ # The standard list page token.
70
+ class ListOperationsRequest; end
71
+
72
+ # The response message for {Google::Longrunning::Operations::ListOperations Operations::ListOperations}.
73
+ # @!attribute [rw] operations
74
+ # @return [Array<Google::Longrunning::Operation>]
75
+ # A list of operations that matches the specified filter in the request.
76
+ # @!attribute [rw] next_page_token
77
+ # @return [String]
78
+ # The standard List next-page token.
79
+ class ListOperationsResponse; end
80
+
81
+ # The request message for {Google::Longrunning::Operations::CancelOperation Operations::CancelOperation}.
82
+ # @!attribute [rw] name
83
+ # @return [String]
84
+ # The name of the operation resource to be cancelled.
85
+ class CancelOperationRequest; end
86
+
87
+ # The request message for {Google::Longrunning::Operations::DeleteOperation Operations::DeleteOperation}.
88
+ # @!attribute [rw] name
89
+ # @return [String]
90
+ # The name of the operation resource to be deleted.
91
+ class DeleteOperationRequest; end
92
+ end
93
+ end
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -12,6 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+
15
16
  module Google
16
17
  module Protobuf
17
18
  # +Any+ contains an arbitrary serialized protocol buffer message along with a
@@ -95,17 +96,18 @@ module Google
95
96
  # }
96
97
  # @!attribute [rw] type_url
97
98
  # @return [String]
98
- # A URL/resource name whose content describes the type of the
99
- # serialized protocol buffer message.
99
+ # A URL/resource name that uniquely identifies the type of the serialized
100
+ # protocol buffer message. The last segment of the URL's path must represent
101
+ # the fully qualified name of the type (as in
102
+ # +path/google.protobuf.Duration+). The name should be in a canonical form
103
+ # (e.g., leading "." is not accepted).
100
104
  #
101
- # For URLs which use the scheme +http+, +https+, or no scheme, the
102
- # following restrictions and interpretations apply:
105
+ # In practice, teams usually precompile into the binary all types that they
106
+ # expect it to use in the context of Any. However, for URLs which use the
107
+ # scheme +http+, +https+, or no scheme, one can optionally set up a type
108
+ # server that maps type URLs to message definitions as follows:
103
109
  #
104
110
  # * If no scheme is provided, +https+ is assumed.
105
- # * The last segment of the URL's path must represent the fully
106
- # qualified name of the type (as in +path/google.protobuf.Duration+).
107
- # The name should be in a canonical form (e.g., leading "." is
108
- # not accepted).
109
111
  # * An HTTP GET on the URL must yield a {Google::Protobuf::Type}
110
112
  # value in binary format, or produce an error.
111
113
  # * Applications are allowed to cache lookup results based on the
@@ -114,6 +116,10 @@ module Google
114
116
  # on changes to types. (Use versioned type names to manage
115
117
  # breaking changes.)
116
118
  #
119
+ # Note: this functionality is not currently available in the official
120
+ # protobuf release, and it is not used for type URLs beginning with
121
+ # type.googleapis.com.
122
+ #
117
123
  # Schemes other than +http+, +https+ (or the empty scheme) might be
118
124
  # used with implementation specific semantics.
119
125
  # @!attribute [rw] value
@@ -0,0 +1,29 @@
1
+ # Copyright 2018 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
+ module Google
17
+ module Protobuf
18
+ # A generic empty message that you can re-use to avoid defining duplicated
19
+ # empty messages in your APIs. A typical example is to use it as the request
20
+ # or the response type of an API method. For instance:
21
+ #
22
+ # service Foo {
23
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
24
+ # }
25
+ #
26
+ # The JSON representation for +Empty+ is empty JSON object +{}+.
27
+ class Empty; end
28
+ end
29
+ end
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -12,6 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+
15
16
  module Google
16
17
  module Protobuf
17
18
  # +FieldMask+ represents a set of symbolic field paths, for example:
@@ -215,6 +216,12 @@ module Google
215
216
  #
216
217
  # Note that oneof type names ("test_oneof" in this case) cannot be used in
217
218
  # paths.
219
+ #
220
+ # == Field Mask Verification
221
+ #
222
+ # The implementation of any API method which has a FieldMask type field in the
223
+ # request should verify the included field paths, and return an
224
+ # +INVALID_ARGUMENT+ error if any path is duplicated or unmappable.
218
225
  # @!attribute [rw] paths
219
226
  # @return [Array<String>]
220
227
  # The set of field mask paths.
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -12,6 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+
15
16
  module Google
16
17
  module Rpc
17
18
  # The +Status+ type defines a logical error model that is suitable for different
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -12,21 +12,11 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+
15
16
  module Google
16
17
  module Spanner
17
18
  module Admin
18
19
  module Instance
19
- ##
20
- # # Cloud Spanner Instance Admin API Contents
21
- #
22
- # | Class | Description |
23
- # | ----- | ----------- |
24
- # | [InstanceAdminClient][] | |
25
- # | [Data Types][] | Data types for Google::Cloud::Spanner::Admin::Instance::V1 |
26
- #
27
- # [InstanceAdminClient]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-spanner-admin-instance/latest/google/spanner/admin/instance/v1/instanceadminclient
28
- # [Data Types]: https://googlecloudplatform.github.io/google-cloud-ruby/#/docs/google-cloud-spanner-admin-instance/latest/google/spanner/admin/instance/v1/datatypes
29
- #
30
20
  module V1
31
21
  # A possible configuration for a Cloud Spanner instance. Configurations
32
22
  # define the geographic placement of nodes and their replication.
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Google LLC
1
+ # Copyright 2018 Google LLC
2
2
  #
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -18,9 +18,7 @@
18
18
  # and updates to that file get reflected here through a refresh process.
19
19
  # For the short term, the refresh process will only be runnable by Google
20
20
  # engineers.
21
- #
22
- # The only allowed edits are to method and file documentation. A 3-way
23
- # merge preserves those additions if the generated source changes.
21
+
24
22
 
25
23
  require "json"
26
24
  require "pathname"
@@ -30,7 +28,7 @@ require "google/gax/operation"
30
28
  require "google/longrunning/operations_client"
31
29
 
32
30
  require "google/spanner/admin/instance/v1/spanner_instance_admin_pb"
33
- require "google/cloud/spanner/admin/instance/credentials"
31
+ require "google/cloud/spanner/admin/instance/v1/credentials"
34
32
 
35
33
  module Google
36
34
  module Cloud
@@ -63,6 +61,7 @@ module Google
63
61
  # @!attribute [r] instance_admin_stub
64
62
  # @return [Google::Spanner::Admin::Instance::V1::InstanceAdmin::Stub]
65
63
  class InstanceAdminClient
64
+ # @private
66
65
  attr_reader :instance_admin_stub
67
66
 
68
67
  # The default address of the service.
@@ -71,6 +70,9 @@ module Google
71
70
  # The default port of the service.
72
71
  DEFAULT_SERVICE_PORT = 443
73
72
 
73
+ # The default set of gRPC interceptors.
74
+ GRPC_INTERCEPTORS = []
75
+
74
76
  DEFAULT_TIMEOUT = 30
75
77
 
76
78
  PAGE_DESCRIPTORS = {
@@ -95,7 +97,8 @@ module Google
95
97
 
96
98
  # @private
97
99
  class OperationsClient < Google::Longrunning::OperationsClient
98
- SERVICE_ADDRESS = SERVICE_ADDRESS
100
+ self::SERVICE_ADDRESS = InstanceAdminClient::SERVICE_ADDRESS
101
+ self::GRPC_INTERCEPTORS = InstanceAdminClient::GRPC_INTERCEPTORS
99
102
  end
100
103
 
101
104
  PROJECT_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
@@ -171,11 +174,18 @@ module Google
171
174
  # or the specified config is missing data points.
172
175
  # @param timeout [Numeric]
173
176
  # The default timeout, in seconds, for calls made through this client.
177
+ # @param metadata [Hash]
178
+ # Default metadata to be sent with each request. This can be overridden on a per call basis.
179
+ # @param exception_transformer [Proc]
180
+ # An optional proc that intercepts any exceptions raised during an API call to inject
181
+ # custom error handling.
174
182
  def initialize \
175
183
  credentials: nil,
176
184
  scopes: ALL_SCOPES,
177
185
  client_config: {},
178
186
  timeout: DEFAULT_TIMEOUT,
187
+ metadata: nil,
188
+ exception_transformer: nil,
179
189
  lib_name: nil,
180
190
  lib_version: ""
181
191
  # These require statements are intentionally placed here to initialize
@@ -184,7 +194,7 @@ module Google
184
194
  require "google/gax/grpc"
185
195
  require "google/spanner/admin/instance/v1/spanner_instance_admin_services_pb"
186
196
 
187
- credentials ||= Google::Cloud::Spanner::Admin::Instance::Credentials.default
197
+ credentials ||= Google::Cloud::Spanner::Admin::Instance::V1::Credentials.default
188
198
 
189
199
  @operations_client = OperationsClient.new(
190
200
  credentials: credentials,
@@ -196,7 +206,7 @@ module Google
196
206
  )
197
207
 
198
208
  if credentials.is_a?(String) || credentials.is_a?(Hash)
199
- updater_proc = Google::Cloud::Spanner::Admin::Instance::Credentials.new(credentials).updater_proc
209
+ updater_proc = Google::Cloud::Spanner::Admin::Instance::V1::Credentials.new(credentials).updater_proc
200
210
  end
201
211
  if credentials.is_a?(GRPC::Core::Channel)
202
212
  channel = credentials
@@ -220,6 +230,7 @@ module Google
220
230
  google_api_client.freeze
221
231
 
222
232
  headers = { :"x-goog-api-client" => google_api_client }
233
+ headers.merge!(metadata) unless metadata.nil?
223
234
  client_config_file = Pathname.new(__dir__).join(
224
235
  "instance_admin_client_config.json"
225
236
  )
@@ -232,13 +243,14 @@ module Google
232
243
  timeout,
233
244
  page_descriptors: PAGE_DESCRIPTORS,
234
245
  errors: Google::Gax::Grpc::API_ERRORS,
235
- kwargs: headers
246
+ metadata: headers
236
247
  )
237
248
  end
238
249
 
239
250
  # Allow overriding the service path/port in subclasses.
240
251
  service_path = self.class::SERVICE_ADDRESS
241
252
  port = self.class::DEFAULT_SERVICE_PORT
253
+ interceptors = self.class::GRPC_INTERCEPTORS
242
254
  @instance_admin_stub = Google::Gax::Grpc.create_stub(
243
255
  service_path,
244
256
  port,
@@ -246,48 +258,59 @@ module Google
246
258
  channel: channel,
247
259
  updater_proc: updater_proc,
248
260
  scopes: scopes,
261
+ interceptors: interceptors,
249
262
  &Google::Spanner::Admin::Instance::V1::InstanceAdmin::Stub.method(:new)
250
263
  )
251
264
 
252
265
  @list_instance_configs = Google::Gax.create_api_call(
253
266
  @instance_admin_stub.method(:list_instance_configs),
254
- defaults["list_instance_configs"]
267
+ defaults["list_instance_configs"],
268
+ exception_transformer: exception_transformer
255
269
  )
256
270
  @get_instance_config = Google::Gax.create_api_call(
257
271
  @instance_admin_stub.method(:get_instance_config),
258
- defaults["get_instance_config"]
272
+ defaults["get_instance_config"],
273
+ exception_transformer: exception_transformer
259
274
  )
260
275
  @list_instances = Google::Gax.create_api_call(
261
276
  @instance_admin_stub.method(:list_instances),
262
- defaults["list_instances"]
277
+ defaults["list_instances"],
278
+ exception_transformer: exception_transformer
263
279
  )
264
280
  @get_instance = Google::Gax.create_api_call(
265
281
  @instance_admin_stub.method(:get_instance),
266
- defaults["get_instance"]
282
+ defaults["get_instance"],
283
+ exception_transformer: exception_transformer
267
284
  )
268
285
  @create_instance = Google::Gax.create_api_call(
269
286
  @instance_admin_stub.method(:create_instance),
270
- defaults["create_instance"]
287
+ defaults["create_instance"],
288
+ exception_transformer: exception_transformer
271
289
  )
272
290
  @update_instance = Google::Gax.create_api_call(
273
291
  @instance_admin_stub.method(:update_instance),
274
- defaults["update_instance"]
292
+ defaults["update_instance"],
293
+ exception_transformer: exception_transformer
275
294
  )
276
295
  @delete_instance = Google::Gax.create_api_call(
277
296
  @instance_admin_stub.method(:delete_instance),
278
- defaults["delete_instance"]
297
+ defaults["delete_instance"],
298
+ exception_transformer: exception_transformer
279
299
  )
280
300
  @set_iam_policy = Google::Gax.create_api_call(
281
301
  @instance_admin_stub.method(:set_iam_policy),
282
- defaults["set_iam_policy"]
302
+ defaults["set_iam_policy"],
303
+ exception_transformer: exception_transformer
283
304
  )
284
305
  @get_iam_policy = Google::Gax.create_api_call(
285
306
  @instance_admin_stub.method(:get_iam_policy),
286
- defaults["get_iam_policy"]
307
+ defaults["get_iam_policy"],
308
+ exception_transformer: exception_transformer
287
309
  )
288
310
  @test_iam_permissions = Google::Gax.create_api_call(
289
311
  @instance_admin_stub.method(:test_iam_permissions),
290
- defaults["test_iam_permissions"]
312
+ defaults["test_iam_permissions"],
313
+ exception_transformer: exception_transformer
291
314
  )
292
315
  end
293
316
 
@@ -308,6 +331,9 @@ module Google
308
331
  # @param options [Google::Gax::CallOptions]
309
332
  # Overrides the default settings for this call, e.g, timeout,
310
333
  # retries, etc.
334
+ # @yield [result, operation] Access the result along with the RPC operation
335
+ # @yieldparam result [Google::Gax::PagedEnumerable<Google::Spanner::Admin::Instance::V1::InstanceConfig>]
336
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
311
337
  # @return [Google::Gax::PagedEnumerable<Google::Spanner::Admin::Instance::V1::InstanceConfig>]
312
338
  # An enumerable of Google::Spanner::Admin::Instance::V1::InstanceConfig instances.
313
339
  # See Google::Gax::PagedEnumerable documentation for other
@@ -315,9 +341,9 @@ module Google
315
341
  # object.
316
342
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
317
343
  # @example
318
- # require "google/cloud/spanner/admin/instance/v1"
344
+ # require "google/cloud/spanner/admin/instance"
319
345
  #
320
- # instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
346
+ # instance_admin_client = Google::Cloud::Spanner::Admin::Instance.new(version: :v1)
321
347
  # formatted_parent = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.project_path("[PROJECT]")
322
348
  #
323
349
  # # Iterate over all results.
@@ -336,13 +362,14 @@ module Google
336
362
  def list_instance_configs \
337
363
  parent,
338
364
  page_size: nil,
339
- options: nil
365
+ options: nil,
366
+ &block
340
367
  req = {
341
368
  parent: parent,
342
369
  page_size: page_size
343
370
  }.delete_if { |_, v| v.nil? }
344
371
  req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::ListInstanceConfigsRequest)
345
- @list_instance_configs.call(req, options)
372
+ @list_instance_configs.call(req, options, &block)
346
373
  end
347
374
 
348
375
  # Gets information about a particular instance configuration.
@@ -353,23 +380,27 @@ module Google
353
380
  # @param options [Google::Gax::CallOptions]
354
381
  # Overrides the default settings for this call, e.g, timeout,
355
382
  # retries, etc.
383
+ # @yield [result, operation] Access the result along with the RPC operation
384
+ # @yieldparam result [Google::Spanner::Admin::Instance::V1::InstanceConfig]
385
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
356
386
  # @return [Google::Spanner::Admin::Instance::V1::InstanceConfig]
357
387
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
358
388
  # @example
359
- # require "google/cloud/spanner/admin/instance/v1"
389
+ # require "google/cloud/spanner/admin/instance"
360
390
  #
361
- # instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
391
+ # instance_admin_client = Google::Cloud::Spanner::Admin::Instance.new(version: :v1)
362
392
  # formatted_name = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_config_path("[PROJECT]", "[INSTANCE_CONFIG]")
363
393
  # response = instance_admin_client.get_instance_config(formatted_name)
364
394
 
365
395
  def get_instance_config \
366
396
  name,
367
- options: nil
397
+ options: nil,
398
+ &block
368
399
  req = {
369
400
  name: name
370
401
  }.delete_if { |_, v| v.nil? }
371
402
  req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::GetInstanceConfigRequest)
372
- @get_instance_config.call(req, options)
403
+ @get_instance_config.call(req, options, &block)
373
404
  end
374
405
 
375
406
  # Lists all instances in the given project.
@@ -406,6 +437,9 @@ module Google
406
437
  # @param options [Google::Gax::CallOptions]
407
438
  # Overrides the default settings for this call, e.g, timeout,
408
439
  # retries, etc.
440
+ # @yield [result, operation] Access the result along with the RPC operation
441
+ # @yieldparam result [Google::Gax::PagedEnumerable<Google::Spanner::Admin::Instance::V1::Instance>]
442
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
409
443
  # @return [Google::Gax::PagedEnumerable<Google::Spanner::Admin::Instance::V1::Instance>]
410
444
  # An enumerable of Google::Spanner::Admin::Instance::V1::Instance instances.
411
445
  # See Google::Gax::PagedEnumerable documentation for other
@@ -413,9 +447,9 @@ module Google
413
447
  # object.
414
448
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
415
449
  # @example
416
- # require "google/cloud/spanner/admin/instance/v1"
450
+ # require "google/cloud/spanner/admin/instance"
417
451
  #
418
- # instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
452
+ # instance_admin_client = Google::Cloud::Spanner::Admin::Instance.new(version: :v1)
419
453
  # formatted_parent = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.project_path("[PROJECT]")
420
454
  #
421
455
  # # Iterate over all results.
@@ -435,14 +469,15 @@ module Google
435
469
  parent,
436
470
  page_size: nil,
437
471
  filter: nil,
438
- options: nil
472
+ options: nil,
473
+ &block
439
474
  req = {
440
475
  parent: parent,
441
476
  page_size: page_size,
442
477
  filter: filter
443
478
  }.delete_if { |_, v| v.nil? }
444
479
  req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::ListInstancesRequest)
445
- @list_instances.call(req, options)
480
+ @list_instances.call(req, options, &block)
446
481
  end
447
482
 
448
483
  # Gets information about a particular instance.
@@ -453,23 +488,27 @@ module Google
453
488
  # @param options [Google::Gax::CallOptions]
454
489
  # Overrides the default settings for this call, e.g, timeout,
455
490
  # retries, etc.
491
+ # @yield [result, operation] Access the result along with the RPC operation
492
+ # @yieldparam result [Google::Spanner::Admin::Instance::V1::Instance]
493
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
456
494
  # @return [Google::Spanner::Admin::Instance::V1::Instance]
457
495
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
458
496
  # @example
459
- # require "google/cloud/spanner/admin/instance/v1"
497
+ # require "google/cloud/spanner/admin/instance"
460
498
  #
461
- # instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
499
+ # instance_admin_client = Google::Cloud::Spanner::Admin::Instance.new(version: :v1)
462
500
  # formatted_name = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
463
501
  # response = instance_admin_client.get_instance(formatted_name)
464
502
 
465
503
  def get_instance \
466
504
  name,
467
- options: nil
505
+ options: nil,
506
+ &block
468
507
  req = {
469
508
  name: name
470
509
  }.delete_if { |_, v| v.nil? }
471
510
  req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::GetInstanceRequest)
472
- @get_instance.call(req, options)
511
+ @get_instance.call(req, options, &block)
473
512
  end
474
513
 
475
514
  # Creates an instance and begins preparing it to begin serving. The
@@ -525,11 +564,15 @@ module Google
525
564
  # @return [Google::Gax::Operation]
526
565
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
527
566
  # @example
528
- # require "google/cloud/spanner/admin/instance/v1"
567
+ # require "google/cloud/spanner/admin/instance"
529
568
  #
530
- # instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
569
+ # instance_admin_client = Google::Cloud::Spanner::Admin::Instance.new(version: :v1)
531
570
  # formatted_parent = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.project_path("[PROJECT]")
571
+ #
572
+ # # TODO: Initialize +instance_id+:
532
573
  # instance_id = ''
574
+ #
575
+ # # TODO: Initialize +instance+:
533
576
  # instance = {}
534
577
  #
535
578
  # # Register a callback during the method call.
@@ -640,10 +683,14 @@ module Google
640
683
  # @return [Google::Gax::Operation]
641
684
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
642
685
  # @example
643
- # require "google/cloud/spanner/admin/instance/v1"
686
+ # require "google/cloud/spanner/admin/instance"
687
+ #
688
+ # instance_admin_client = Google::Cloud::Spanner::Admin::Instance.new(version: :v1)
644
689
  #
645
- # instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
690
+ # # TODO: Initialize +instance+:
646
691
  # instance = {}
692
+ #
693
+ # # TODO: Initialize +field_mask+:
647
694
  # field_mask = {}
648
695
  #
649
696
  # # Register a callback during the method call.
@@ -711,22 +758,26 @@ module Google
711
758
  # @param options [Google::Gax::CallOptions]
712
759
  # Overrides the default settings for this call, e.g, timeout,
713
760
  # retries, etc.
761
+ # @yield [result, operation] Access the result along with the RPC operation
762
+ # @yieldparam result []
763
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
714
764
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
715
765
  # @example
716
- # require "google/cloud/spanner/admin/instance/v1"
766
+ # require "google/cloud/spanner/admin/instance"
717
767
  #
718
- # instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
768
+ # instance_admin_client = Google::Cloud::Spanner::Admin::Instance.new(version: :v1)
719
769
  # formatted_name = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
720
770
  # instance_admin_client.delete_instance(formatted_name)
721
771
 
722
772
  def delete_instance \
723
773
  name,
724
- options: nil
774
+ options: nil,
775
+ &block
725
776
  req = {
726
777
  name: name
727
778
  }.delete_if { |_, v| v.nil? }
728
779
  req = Google::Gax::to_proto(req, Google::Spanner::Admin::Instance::V1::DeleteInstanceRequest)
729
- @delete_instance.call(req, options)
780
+ @delete_instance.call(req, options, &block)
730
781
  nil
731
782
  end
732
783
 
@@ -739,7 +790,7 @@ module Google
739
790
  # @param resource [String]
740
791
  # REQUIRED: The resource for which the policy is being specified.
741
792
  # +resource+ is usually specified as a path. For example, a Project
742
- # resource is specified as +projects/{project}+.
793
+ # resource is specified as +projects/\\{project}+.
743
794
  # @param policy [Google::Iam::V1::Policy | Hash]
744
795
  # REQUIRED: The complete policy to be applied to the +resource+. The size of
745
796
  # the policy is limited to a few 10s of KB. An empty policy is a
@@ -750,26 +801,32 @@ module Google
750
801
  # @param options [Google::Gax::CallOptions]
751
802
  # Overrides the default settings for this call, e.g, timeout,
752
803
  # retries, etc.
804
+ # @yield [result, operation] Access the result along with the RPC operation
805
+ # @yieldparam result [Google::Iam::V1::Policy]
806
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
753
807
  # @return [Google::Iam::V1::Policy]
754
808
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
755
809
  # @example
756
- # require "google/cloud/spanner/admin/instance/v1"
810
+ # require "google/cloud/spanner/admin/instance"
757
811
  #
758
- # instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
812
+ # instance_admin_client = Google::Cloud::Spanner::Admin::Instance.new(version: :v1)
759
813
  # formatted_resource = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
814
+ #
815
+ # # TODO: Initialize +policy+:
760
816
  # policy = {}
761
817
  # response = instance_admin_client.set_iam_policy(formatted_resource, policy)
762
818
 
763
819
  def set_iam_policy \
764
820
  resource,
765
821
  policy,
766
- options: nil
822
+ options: nil,
823
+ &block
767
824
  req = {
768
825
  resource: resource,
769
826
  policy: policy
770
827
  }.delete_if { |_, v| v.nil? }
771
828
  req = Google::Gax::to_proto(req, Google::Iam::V1::SetIamPolicyRequest)
772
- @set_iam_policy.call(req, options)
829
+ @set_iam_policy.call(req, options, &block)
773
830
  end
774
831
 
775
832
  # Gets the access control policy for an instance resource. Returns an empty
@@ -781,27 +838,31 @@ module Google
781
838
  # @param resource [String]
782
839
  # REQUIRED: The resource for which the policy is being requested.
783
840
  # +resource+ is usually specified as a path. For example, a Project
784
- # resource is specified as +projects/{project}+.
841
+ # resource is specified as +projects/\\{project}+.
785
842
  # @param options [Google::Gax::CallOptions]
786
843
  # Overrides the default settings for this call, e.g, timeout,
787
844
  # retries, etc.
845
+ # @yield [result, operation] Access the result along with the RPC operation
846
+ # @yieldparam result [Google::Iam::V1::Policy]
847
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
788
848
  # @return [Google::Iam::V1::Policy]
789
849
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
790
850
  # @example
791
- # require "google/cloud/spanner/admin/instance/v1"
851
+ # require "google/cloud/spanner/admin/instance"
792
852
  #
793
- # instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
853
+ # instance_admin_client = Google::Cloud::Spanner::Admin::Instance.new(version: :v1)
794
854
  # formatted_resource = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
795
855
  # response = instance_admin_client.get_iam_policy(formatted_resource)
796
856
 
797
857
  def get_iam_policy \
798
858
  resource,
799
- options: nil
859
+ options: nil,
860
+ &block
800
861
  req = {
801
862
  resource: resource
802
863
  }.delete_if { |_, v| v.nil? }
803
864
  req = Google::Gax::to_proto(req, Google::Iam::V1::GetIamPolicyRequest)
804
- @get_iam_policy.call(req, options)
865
+ @get_iam_policy.call(req, options, &block)
805
866
  end
806
867
 
807
868
  # Returns permissions that the caller has on the specified instance resource.
@@ -814,7 +875,7 @@ module Google
814
875
  # @param resource [String]
815
876
  # REQUIRED: The resource for which the policy detail is being requested.
816
877
  # +resource+ is usually specified as a path. For example, a Project
817
- # resource is specified as +projects/{project}+.
878
+ # resource is specified as +projects/\\{project}+.
818
879
  # @param permissions [Array<String>]
819
880
  # The set of permissions to check for the +resource+. Permissions with
820
881
  # wildcards (such as '*' or 'storage.*') are not allowed. For more
@@ -823,26 +884,32 @@ module Google
823
884
  # @param options [Google::Gax::CallOptions]
824
885
  # Overrides the default settings for this call, e.g, timeout,
825
886
  # retries, etc.
887
+ # @yield [result, operation] Access the result along with the RPC operation
888
+ # @yieldparam result [Google::Iam::V1::TestIamPermissionsResponse]
889
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
826
890
  # @return [Google::Iam::V1::TestIamPermissionsResponse]
827
891
  # @raise [Google::Gax::GaxError] if the RPC is aborted.
828
892
  # @example
829
- # require "google/cloud/spanner/admin/instance/v1"
893
+ # require "google/cloud/spanner/admin/instance"
830
894
  #
831
- # instance_admin_client = Google::Cloud::Spanner::Admin::Instance::V1.new
895
+ # instance_admin_client = Google::Cloud::Spanner::Admin::Instance.new(version: :v1)
832
896
  # formatted_resource = Google::Cloud::Spanner::Admin::Instance::V1::InstanceAdminClient.instance_path("[PROJECT]", "[INSTANCE]")
897
+ #
898
+ # # TODO: Initialize +permissions+:
833
899
  # permissions = []
834
900
  # response = instance_admin_client.test_iam_permissions(formatted_resource, permissions)
835
901
 
836
902
  def test_iam_permissions \
837
903
  resource,
838
904
  permissions,
839
- options: nil
905
+ options: nil,
906
+ &block
840
907
  req = {
841
908
  resource: resource,
842
909
  permissions: permissions
843
910
  }.delete_if { |_, v| v.nil? }
844
911
  req = Google::Gax::to_proto(req, Google::Iam::V1::TestIamPermissionsRequest)
845
- @test_iam_permissions.call(req, options)
912
+ @test_iam_permissions.call(req, options, &block)
846
913
  end
847
914
  end
848
915
  end