google-gax 0.5.1 → 0.6.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 12e54297dd6549a905126386c9f65cfb12bfe456
4
- data.tar.gz: e0503b3e9634937ec8b07f6398370f5f8a3a7f49
3
+ metadata.gz: aeba7e008b2cfb90d91a6ac6152f7304e4650e61
4
+ data.tar.gz: a0acc832fe6182aacb394cb2c44ba6b257122a19
5
5
  SHA512:
6
- metadata.gz: 866ea2e86869c4a90314e270837e06fe342dd018bdd558b562ec7df3a09b230447771b7c9213f4f8c5c191176e281e0b9191aaab0930e64b33cbf726b526a28f
7
- data.tar.gz: 2445bbdb413e78d4adc38a0faffa267eb11d9484fd757dccd17552c365947aeac511ab79382f85691e2b913d784d35116f5bd6da354a2aa0cc66fd9f9a107315
6
+ metadata.gz: c703f3bc01fb85d6843736a279f072a20bdfa4f47edd54d1ae567ce1ee17538b4c972d15f1502c692fef94a601edc914351994eb2468eadeaa7bad984e6f707c
7
+ data.tar.gz: 3222c245b93925e212d8a75c27ce8f3bddcae520af1d8509eda226973bb28b435655ff34315fbbe0c2b8a32727ad3eaae1d3ccacd6e0cd7c880f0151c881a107
@@ -63,11 +63,9 @@ module Google
63
63
  raise 'path template has no segments' if segments.nil?
64
64
  segments.each do |s|
65
65
  next unless s.kind == TERMINAL && s.literal == '**'
66
- if has_path_wildcard
67
- raise 'path template cannot contain more than one path wildcard'
68
- else
69
- has_path_wildcard = true
70
- end
66
+ raise 'path template cannot contain more than' \
67
+ 'one path wildcard' if has_path_wildcard
68
+ has_path_wildcard = true
71
69
  end
72
70
  segments
73
71
  end
@@ -40,15 +40,14 @@ module Google
40
40
  # @return An Executor that configures bundling, or nil if this
41
41
  # method should not bundle.
42
42
  def construct_bundling(bundle_config, bundle_descriptor)
43
- if bundle_config && bundle_descriptor
44
- options = BundleOptions.new
45
- bundle_config.each_pair do |key, value|
46
- options[key.intern] = value
47
- end
48
- # Bundling is currently not supported.
49
- # Executor.new(options)
50
- nil
43
+ return unless bundle_config && bundle_descriptor
44
+ options = BundleOptions.new
45
+ bundle_config.each_pair do |key, value|
46
+ options[key.intern] = value
51
47
  end
48
+ # Bundling is currently not supported.
49
+ # Executor.new(options)
50
+ nil
52
51
  end
53
52
 
54
53
  # Helper for #construct_settings
@@ -29,6 +29,6 @@
29
29
 
30
30
  module Google
31
31
  module Gax
32
- VERSION = '0.5.1'.freeze
32
+ VERSION = '0.6.0'.freeze
33
33
  end
34
34
  end
@@ -0,0 +1,330 @@
1
+ # Copyright 2016 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
+ # EDITING INSTRUCTIONS
16
+ # This file was generated from the file
17
+ # https://github.com/googleapis/googleapis/blob/master/google/longrunning/operations.proto,
18
+ # and updates to that file get reflected here through a refresh process.
19
+ # For the short term, the refresh process will only be runnable by Google
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.
24
+
25
+ require "json"
26
+ require "pathname"
27
+
28
+ require "google/gax"
29
+
30
+ module Google
31
+ module Longrunning
32
+ # Manages long-running operations with an API service.
33
+ #
34
+ # When an API method normally takes long time to complete, it can be designed
35
+ # to return Operation to the client, and the client can use this
36
+ # interface to receive the real response asynchronously by polling the
37
+ # operation resource, or pass the operation resource to another API (such as
38
+ # Google Cloud Pub/Sub API) to receive the response. Any API service that
39
+ # returns long-running operations should implement the +Operations+ interface
40
+ # so developers can have a consistent client experience.
41
+ #
42
+ # @!attribute [r] operations_stub
43
+ # @return [Google::Longrunning::Operations::Stub]
44
+ class OperationsApi
45
+ attr_reader :operations_stub
46
+
47
+ # The default address of the service.
48
+ SERVICE_ADDRESS = "longrunning.googleapis.com".freeze
49
+
50
+ # The default port of the service.
51
+ DEFAULT_SERVICE_PORT = 443
52
+
53
+ CODE_GEN_NAME_VERSION = "gapic/0.1.0".freeze
54
+
55
+ DEFAULT_TIMEOUT = 30
56
+
57
+ PAGE_DESCRIPTORS = {
58
+ "list_operations" => Google::Gax::PageDescriptor.new(
59
+ "page_token",
60
+ "next_page_token",
61
+ "operations")
62
+ }.freeze
63
+
64
+ private_constant :PAGE_DESCRIPTORS
65
+
66
+ # The scopes needed to make gRPC calls to all of the methods defined in
67
+ # this service.
68
+ ALL_SCOPES = [
69
+ ].freeze
70
+
71
+ OPERATION_PATH_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
72
+ "operations/{operation_path=**}"
73
+ )
74
+
75
+ private_constant :OPERATION_PATH_PATH_TEMPLATE
76
+
77
+ # Returns a fully-qualified operation_path resource name string.
78
+ # @param operation_path [String]
79
+ # @return [String]
80
+ def self.operation_path_path operation_path
81
+ OPERATION_PATH_PATH_TEMPLATE.render(
82
+ :"operation_path" => operation_path
83
+ )
84
+ end
85
+
86
+ # Parses the operation_path from a operation_path resource.
87
+ # @param operation_path_name [String]
88
+ # @return [String]
89
+ def self.match_operation_path_from_operation_path_name operation_path_name
90
+ OPERATION_PATH_PATH_TEMPLATE.match(operation_path_name)["operation_path"]
91
+ end
92
+
93
+ # @param service_path [String]
94
+ # The domain name of the API remote host.
95
+ # @param port [Integer]
96
+ # The port on which to connect to the remote host.
97
+ # @param channel [Channel]
98
+ # A Channel object through which to make calls.
99
+ # @param chan_creds [Grpc::ChannelCredentials]
100
+ # A ChannelCredentials for the setting up the RPC client.
101
+ # @param client_config[Hash]
102
+ # A Hash for call options for each method. See
103
+ # Google::Gax#construct_settings for the structure of
104
+ # this data. Falls back to the default config if not specified
105
+ # or the specified config is missing data points.
106
+ # @param timeout [Numeric]
107
+ # The default timeout, in seconds, for calls made through this client.
108
+ # @param app_name [String]
109
+ # The codename of the calling service.
110
+ # @param app_version [String]
111
+ # The version of the calling service.
112
+ def initialize \
113
+ service_path: SERVICE_ADDRESS,
114
+ port: DEFAULT_SERVICE_PORT,
115
+ channel: nil,
116
+ chan_creds: nil,
117
+ scopes: ALL_SCOPES,
118
+ client_config: {},
119
+ timeout: DEFAULT_TIMEOUT,
120
+ app_name: "gax",
121
+ app_version: Google::Gax::VERSION
122
+ # These require statements are intentionally placed here to initialize
123
+ # the gRPC module only when it's required.
124
+ # See https://github.com/googleapis/toolkit/issues/446
125
+ require "google/gax/grpc"
126
+ require "google/longrunning/operations_services_pb"
127
+
128
+ google_api_client = "#{app_name}/#{app_version} " \
129
+ "#{CODE_GEN_NAME_VERSION} gax/#{Google::Gax::VERSION} " \
130
+ "ruby/#{RUBY_VERSION}".freeze
131
+ headers = { :"x-goog-api-client" => google_api_client }
132
+ client_config_file = Pathname.new(__dir__).join(
133
+ "operations_client_config.json"
134
+ )
135
+ defaults = client_config_file.open do |f|
136
+ Google::Gax.construct_settings(
137
+ "google.longrunning.Operations",
138
+ JSON.parse(f.read),
139
+ client_config,
140
+ Google::Gax::Grpc::STATUS_CODE_NAMES,
141
+ timeout,
142
+ page_descriptors: PAGE_DESCRIPTORS,
143
+ errors: Google::Gax::Grpc::API_ERRORS,
144
+ kwargs: headers
145
+ )
146
+ end
147
+ @operations_stub = Google::Gax::Grpc.create_stub(
148
+ service_path,
149
+ port,
150
+ chan_creds: chan_creds,
151
+ channel: channel,
152
+ scopes: scopes,
153
+ &Google::Longrunning::Operations::Stub.method(:new)
154
+ )
155
+
156
+ @get_operation = Google::Gax.create_api_call(
157
+ @operations_stub.method(:get_operation),
158
+ defaults["get_operation"]
159
+ )
160
+ @list_operations = Google::Gax.create_api_call(
161
+ @operations_stub.method(:list_operations),
162
+ defaults["list_operations"]
163
+ )
164
+ @cancel_operation = Google::Gax.create_api_call(
165
+ @operations_stub.method(:cancel_operation),
166
+ defaults["cancel_operation"]
167
+ )
168
+ @delete_operation = Google::Gax.create_api_call(
169
+ @operations_stub.method(:delete_operation),
170
+ defaults["delete_operation"]
171
+ )
172
+ end
173
+
174
+ # Service calls
175
+
176
+ # Gets the latest state of a long-running operation. Clients can use this
177
+ # method to poll the operation result at intervals as recommended by the API
178
+ # service.
179
+ #
180
+ # @param name [String]
181
+ # The name of the operation resource.
182
+ # @param options [Google::Gax::CallOptions]
183
+ # Overrides the default settings for this call, e.g, timeout,
184
+ # retries, etc.
185
+ # @return [Google::Longrunning::Operation]
186
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
187
+ # @example
188
+ # require "google/longrunning/operations_api"
189
+ #
190
+ # OperationsApi = Google::Longrunning::OperationsApi
191
+ #
192
+ # operations_api = OperationsApi.new
193
+ # formatted_name = OperationsApi.operation_path_path("[OPERATION_PATH]")
194
+ # response = operations_api.get_operation(formatted_name)
195
+
196
+ def get_operation \
197
+ name,
198
+ options: nil
199
+ req = Google::Longrunning::GetOperationRequest.new(
200
+ name: name
201
+ )
202
+ @get_operation.call(req, options)
203
+ end
204
+
205
+ # Lists operations that match the specified filter in the request. If the
206
+ # server doesn't support this method, it returns +UNIMPLEMENTED+.
207
+ #
208
+ # NOTE: the +name+ binding below allows API services to override the binding
209
+ # to use different resource name schemes, such as +users/*/operations+.
210
+ #
211
+ # @param name [String]
212
+ # The name of the operation collection.
213
+ # @param filter [String]
214
+ # The standard list filter.
215
+ # @param page_size [Integer]
216
+ # The maximum number of resources contained in the underlying API
217
+ # response. If page streaming is performed per-resource, this
218
+ # parameter does not affect the return value. If page streaming is
219
+ # performed per-page, this determines the maximum number of
220
+ # resources in a page.
221
+ # @param options [Google::Gax::CallOptions]
222
+ # Overrides the default settings for this call, e.g, timeout,
223
+ # retries, etc.
224
+ # @return [Google::Gax::PagedEnumerable<Google::Longrunning::Operation>]
225
+ # An enumerable of Google::Longrunning::Operation instances.
226
+ # See Google::Gax::PagedEnumerable documentation for other
227
+ # operations such as per-page iteration or access to the response
228
+ # object.
229
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
230
+ # @example
231
+ # require "google/longrunning/operations_api"
232
+ #
233
+ # OperationsApi = Google::Longrunning::OperationsApi
234
+ #
235
+ # operations_api = OperationsApi.new
236
+ # name = ''
237
+ # filter = ''
238
+ #
239
+ # # Iterate over all results.
240
+ # operations_api.list_operations(name, filter).each do |element|
241
+ # # Process element.
242
+ # end
243
+ #
244
+ # # Or iterate over results one page at a time.
245
+ # operations_api.list_operations(name, filter).each_page do |page|
246
+ # # Process each page at a time.
247
+ # page.each do |element|
248
+ # # Process element.
249
+ # end
250
+ # end
251
+
252
+ def list_operations \
253
+ name,
254
+ filter,
255
+ page_size: nil,
256
+ options: nil
257
+ req = Google::Longrunning::ListOperationsRequest.new(
258
+ name: name,
259
+ filter: filter
260
+ )
261
+ req.page_size = page_size unless page_size.nil?
262
+ @list_operations.call(req, options)
263
+ end
264
+
265
+ # Starts asynchronous cancellation on a long-running operation. The server
266
+ # makes a best effort to cancel the operation, but success is not
267
+ # guaranteed. If the server doesn't support this method, it returns
268
+ # +google.rpc.Code.UNIMPLEMENTED+. Clients can use
269
+ # Operations::GetOperation or
270
+ # other methods to check whether the cancellation succeeded or whether the
271
+ # operation completed despite cancellation. On successful cancellation,
272
+ # the operation is not deleted; instead, it becomes an operation with
273
+ # an Operation#error value with a Google::Rpc::Status#code of 1,
274
+ # corresponding to +Code.CANCELLED+.
275
+ #
276
+ # @param name [String]
277
+ # The name of the operation resource to be cancelled.
278
+ # @param options [Google::Gax::CallOptions]
279
+ # Overrides the default settings for this call, e.g, timeout,
280
+ # retries, etc.
281
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
282
+ # @example
283
+ # require "google/longrunning/operations_api"
284
+ #
285
+ # OperationsApi = Google::Longrunning::OperationsApi
286
+ #
287
+ # operations_api = OperationsApi.new
288
+ # formatted_name = OperationsApi.operation_path_path("[OPERATION_PATH]")
289
+ # operations_api.cancel_operation(formatted_name)
290
+
291
+ def cancel_operation \
292
+ name,
293
+ options: nil
294
+ req = Google::Longrunning::CancelOperationRequest.new(
295
+ name: name
296
+ )
297
+ @cancel_operation.call(req, options)
298
+ end
299
+
300
+ # Deletes a long-running operation. This method indicates that the client is
301
+ # no longer interested in the operation result. It does not cancel the
302
+ # operation. If the server doesn't support this method, it returns
303
+ # +google.rpc.Code.UNIMPLEMENTED+.
304
+ #
305
+ # @param name [String]
306
+ # The name of the operation resource to be deleted.
307
+ # @param options [Google::Gax::CallOptions]
308
+ # Overrides the default settings for this call, e.g, timeout,
309
+ # retries, etc.
310
+ # @raise [Google::Gax::GaxError] if the RPC is aborted.
311
+ # @example
312
+ # require "google/longrunning/operations_api"
313
+ #
314
+ # OperationsApi = Google::Longrunning::OperationsApi
315
+ #
316
+ # operations_api = OperationsApi.new
317
+ # formatted_name = OperationsApi.operation_path_path("[OPERATION_PATH]")
318
+ # operations_api.delete_operation(formatted_name)
319
+
320
+ def delete_operation \
321
+ name,
322
+ options: nil
323
+ req = Google::Longrunning::DeleteOperationRequest.new(
324
+ name: name
325
+ )
326
+ @delete_operation.call(req, options)
327
+ end
328
+ end
329
+ end
330
+ end
@@ -0,0 +1,48 @@
1
+ {
2
+ "interfaces": {
3
+ "google.longrunning.Operations": {
4
+ "retry_codes": {
5
+ "retry_codes_def": {
6
+ "idempotent": [
7
+ "DEADLINE_EXCEEDED",
8
+ "UNAVAILABLE"
9
+ ],
10
+ "non_idempotent": []
11
+ }
12
+ },
13
+ "retry_params": {
14
+ "default": {
15
+ "initial_retry_delay_millis": 100,
16
+ "retry_delay_multiplier": 1.3,
17
+ "max_retry_delay_millis": 60000,
18
+ "initial_rpc_timeout_millis": 20000,
19
+ "rpc_timeout_multiplier": 1.0,
20
+ "max_rpc_timeout_millis": 20000,
21
+ "total_timeout_millis": 600000
22
+ }
23
+ },
24
+ "methods": {
25
+ "GetOperation": {
26
+ "timeout_millis": 60000,
27
+ "retry_codes_name": "idempotent",
28
+ "retry_params_name": "default"
29
+ },
30
+ "ListOperations": {
31
+ "timeout_millis": 60000,
32
+ "retry_codes_name": "idempotent",
33
+ "retry_params_name": "default"
34
+ },
35
+ "CancelOperation": {
36
+ "timeout_millis": 60000,
37
+ "retry_codes_name": "idempotent",
38
+ "retry_params_name": "default"
39
+ },
40
+ "DeleteOperation": {
41
+ "timeout_millis": 60000,
42
+ "retry_codes_name": "idempotent",
43
+ "retry_params_name": "default"
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-gax
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google API Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-15 00:00:00.000000000 Z
11
+ date: 2016-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: googleauth
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: googleapis-common-protos
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.3.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.3.1
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: rly
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -138,6 +152,8 @@ files:
138
152
  - lib/google/gax/path_template.rb
139
153
  - lib/google/gax/settings.rb
140
154
  - lib/google/gax/version.rb
155
+ - lib/google/longrunning/operations_api.rb
156
+ - lib/google/longrunning/operations_client_config.json
141
157
  - spec/google/gax/api_callable_spec.rb
142
158
  - spec/google/gax/bundling_spec.rb
143
159
  - spec/google/gax/path_template_spec.rb
@@ -163,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
179
  version: '0'
164
180
  requirements: []
165
181
  rubyforge_project:
166
- rubygems_version: 2.4.8
182
+ rubygems_version: 2.5.1
167
183
  signing_key:
168
184
  specification_version: 4
169
185
  summary: Aids the development of APIs for clients and servers based on GRPC and Google