google-cloud-location 0.2.0 → 0.3.beta.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0962f8206b145aa8889c014015dcf1051c400c8287c2ed7c42d6a348175cc858'
4
- data.tar.gz: b44971705b3afc1ff2873b562d1504b500bde4b8e0816b0f4558c661847335a1
3
+ metadata.gz: 024b4e76ec465464831b0d0a7bf112f073af6b876f1b018f943affda9fb968e4
4
+ data.tar.gz: 4018f03d8ca6d9d47b5bb679543a797e2028064a9af0be6d04c1191bd5d46969
5
5
  SHA512:
6
- metadata.gz: 510c7182786ba700b46b8295c4aa9040e8b6b00e34aab17c37dc0f0a4c3c50a8593194395744a2e52e921f17086f289d38e8bffc9479a22e37aba975dff348ce
7
- data.tar.gz: e864db74c317e78bba110f3f5d536ce60a20c73d22d5beac4d787d28bd27c415d9e5e8ec1dd5413de493db35c83da97bc9414387f9675fcff762a098f5e2be5a
6
+ metadata.gz: a5b67aabc4189ac9715875a454c20db1f6d2303cd5afe83ad565b9cba0efd9695d14f9245e2ee7c671001778dcfe92c104cbb7542a070d60872671e5df8a11f7
7
+ data.tar.gz: b249ed3ea3c938a3a769de8cdf24dd6feea216babeb33c77400218507cf6fbb09f57d47a721ed3754cf1c188ca03317854344cfcac3e90a26d2a0fde28b3d3c3
data/AUTHENTICATION.md CHANGED
@@ -112,7 +112,7 @@ credentials are discovered.
112
112
  To configure your system for this, simply:
113
113
 
114
114
  1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
115
- 2. Authenticate using OAuth 2.0 `$ gcloud auth login`
115
+ 2. Authenticate using OAuth 2.0 `$ gcloud auth application-default login`
116
116
  3. Write code as if already authenticated.
117
117
 
118
118
  **NOTE:** This is _not_ recommended for running in production. The Cloud SDK
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Copyright 2021 Google LLC
3
+ # Copyright 2022 Google LLC
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -0,0 +1,437 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "google/cloud/errors"
20
+ require "google/cloud/location/locations_pb"
21
+ require "google/cloud/location/locations/rest/service_stub"
22
+
23
+ module Google
24
+ module Cloud
25
+ module Location
26
+ module Locations
27
+ module Rest
28
+ ##
29
+ # REST client for the Locations service.
30
+ #
31
+ # An abstract interface that provides location-related information for
32
+ # a service. Service-specific metadata is provided through the
33
+ # {::Google::Cloud::Location::Location#metadata Location.metadata} field.
34
+ #
35
+ class Client
36
+ # @private
37
+ attr_reader :locations_stub
38
+
39
+ ##
40
+ # Configure the Locations Client class.
41
+ #
42
+ # See {::Google::Cloud::Location::Locations::Rest::Client::Configuration}
43
+ # for a description of the configuration fields.
44
+ #
45
+ # @example
46
+ #
47
+ # # Modify the configuration for all Locations clients
48
+ # ::Google::Cloud::Location::Locations::Rest::Client.configure do |config|
49
+ # config.timeout = 10.0
50
+ # end
51
+ #
52
+ # @yield [config] Configure the Client client.
53
+ # @yieldparam config [Client::Configuration]
54
+ #
55
+ # @return [Client::Configuration]
56
+ #
57
+ def self.configure
58
+ @configure ||= begin
59
+ namespace = ["Google", "Cloud", "Location"]
60
+ parent_config = while namespace.any?
61
+ parent_name = namespace.join "::"
62
+ parent_const = const_get parent_name
63
+ break parent_const.configure if parent_const.respond_to? :configure
64
+ namespace.pop
65
+ end
66
+ default_config = Client::Configuration.new parent_config
67
+
68
+ default_config
69
+ end
70
+ yield @configure if block_given?
71
+ @configure
72
+ end
73
+
74
+ ##
75
+ # Configure the Locations Client instance.
76
+ #
77
+ # The configuration is set to the derived mode, meaning that values can be changed,
78
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
79
+ # should be made on {Client.configure}.
80
+ #
81
+ # See {::Google::Cloud::Location::Locations::Rest::Client::Configuration}
82
+ # for a description of the configuration fields.
83
+ #
84
+ # @yield [config] Configure the Client client.
85
+ # @yieldparam config [Client::Configuration]
86
+ #
87
+ # @return [Client::Configuration]
88
+ #
89
+ def configure
90
+ yield @config if block_given?
91
+ @config
92
+ end
93
+
94
+ ##
95
+ # Create a new Locations REST client object.
96
+ #
97
+ # @example
98
+ #
99
+ # # Create a client using the default configuration
100
+ # client = ::Google::Cloud::Location::Locations::Rest::Client.new
101
+ #
102
+ # # Create a client using a custom configuration
103
+ # client = ::Google::Cloud::Location::Locations::Rest::Client.new do |config|
104
+ # config.timeout = 10.0
105
+ # end
106
+ #
107
+ # @yield [config] Configure the Locations client.
108
+ # @yieldparam config [Client::Configuration]
109
+ #
110
+ def initialize
111
+ # Create the configuration object
112
+ @config = Configuration.new Client.configure
113
+
114
+ # Yield the configuration if needed
115
+ yield @config if block_given?
116
+
117
+ # Create credentials
118
+ credentials = @config.credentials
119
+ # Use self-signed JWT if the endpoint is unchanged from default,
120
+ # but only if the default endpoint does not have a region prefix.
121
+ enable_self_signed_jwt = @config.endpoint == Client.configure.endpoint &&
122
+ !@config.endpoint.split(".").first.include?("-")
123
+ credentials ||= Credentials.default scope: @config.scope,
124
+ enable_self_signed_jwt: enable_self_signed_jwt
125
+ if credentials.is_a?(::String) || credentials.is_a?(::Hash)
126
+ credentials = Credentials.new credentials, scope: @config.scope
127
+ end
128
+
129
+ @quota_project_id = @config.quota_project
130
+ @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id
131
+
132
+ @locations_stub = ::Google::Cloud::Location::Locations::Rest::ServiceStub.new endpoint: @config.endpoint, credentials: credentials
133
+ end
134
+
135
+ # Service calls
136
+
137
+ ##
138
+ # Lists information about the supported locations for this service.
139
+ #
140
+ # @overload list_locations(request, options = nil)
141
+ # Pass arguments to `list_locations` via a request object, either of type
142
+ # {::Google::Cloud::Location::ListLocationsRequest} or an equivalent Hash.
143
+ #
144
+ # @param request [::Google::Cloud::Location::ListLocationsRequest, ::Hash]
145
+ # A request object representing the call parameters. Required. To specify no
146
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
147
+ # @param options [::Gapic::CallOptions, ::Hash]
148
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
149
+ #
150
+ # @overload list_locations(name: nil, filter: nil, page_size: nil, page_token: nil)
151
+ # Pass arguments to `list_locations` via keyword arguments. Note that at
152
+ # least one keyword argument is required. To specify no parameters, or to keep all
153
+ # the default parameter values, pass an empty Hash as a request object (see above).
154
+ #
155
+ # @param name [::String]
156
+ # The resource that owns the locations collection, if applicable.
157
+ # @param filter [::String]
158
+ # The standard list filter.
159
+ # @param page_size [::Integer]
160
+ # The standard list page size.
161
+ # @param page_token [::String]
162
+ # The standard list page token.
163
+ # @yield [result, response] Access the result along with the Faraday response object
164
+ # @yieldparam result [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Location::Location>]
165
+ # @yieldparam response [::Faraday::Response]
166
+ #
167
+ # @return [::Gapic::Rest::PagedEnumerable<::Google::Cloud::Location::Location>]
168
+ #
169
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
170
+ def list_locations request, options = nil
171
+ raise ::ArgumentError, "request must be provided" if request.nil?
172
+
173
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Location::ListLocationsRequest
174
+
175
+ # Converts hash and nil to an options object
176
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
177
+
178
+ # Customize the options with defaults
179
+ call_metadata = @config.rpcs.list_locations.metadata.to_h
180
+
181
+ # Set x-goog-api-client and x-goog-user-project headers
182
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
183
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
184
+ gapic_version: ::Google::Cloud::Location::VERSION,
185
+ transports_version_send: [:rest]
186
+
187
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
188
+
189
+ options.apply_defaults timeout: @config.rpcs.list_locations.timeout,
190
+ metadata: call_metadata,
191
+ retry_policy: @config.rpcs.list_locations.retry_policy
192
+
193
+ options.apply_defaults timeout: @config.timeout,
194
+ metadata: @config.metadata,
195
+ retry_policy: @config.retry_policy
196
+
197
+ bindings_override = @config.bindings_override["google.cloud.location.Locations.ListLocations"]
198
+
199
+ @locations_stub.list_locations request, options, bindings_override: bindings_override do |result, response|
200
+ result = ::Gapic::Rest::PagedEnumerable.new @locations_stub, :list_locations, "locations", request, result, options
201
+ yield result, response if block_given?
202
+ return result
203
+ end
204
+ rescue ::Faraday::Error => e
205
+ begin
206
+ raise ::Gapic::Rest::Error.wrap_faraday_error e
207
+ rescue ::Gapic::Rest::Error => gapic_error
208
+ raise ::Google::Cloud::Error.from_error gapic_error
209
+ end
210
+ end
211
+
212
+ ##
213
+ # Gets information about a location.
214
+ #
215
+ # @overload get_location(request, options = nil)
216
+ # Pass arguments to `get_location` via a request object, either of type
217
+ # {::Google::Cloud::Location::GetLocationRequest} or an equivalent Hash.
218
+ #
219
+ # @param request [::Google::Cloud::Location::GetLocationRequest, ::Hash]
220
+ # A request object representing the call parameters. Required. To specify no
221
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
222
+ # @param options [::Gapic::CallOptions, ::Hash]
223
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
224
+ #
225
+ # @overload get_location(name: nil)
226
+ # Pass arguments to `get_location` via keyword arguments. Note that at
227
+ # least one keyword argument is required. To specify no parameters, or to keep all
228
+ # the default parameter values, pass an empty Hash as a request object (see above).
229
+ #
230
+ # @param name [::String]
231
+ # Resource name for the location.
232
+ # @yield [result, response] Access the result along with the Faraday response object
233
+ # @yieldparam result [::Google::Cloud::Location::Location]
234
+ # @yieldparam response [::Faraday::Response]
235
+ #
236
+ # @return [::Google::Cloud::Location::Location]
237
+ #
238
+ # @raise [::Google::Cloud::Error] if the REST call is aborted.
239
+ def get_location request, options = nil
240
+ raise ::ArgumentError, "request must be provided" if request.nil?
241
+
242
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Location::GetLocationRequest
243
+
244
+ # Converts hash and nil to an options object
245
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
246
+
247
+ # Customize the options with defaults
248
+ call_metadata = @config.rpcs.get_location.metadata.to_h
249
+
250
+ # Set x-goog-api-client and x-goog-user-project headers
251
+ call_metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
252
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
253
+ gapic_version: ::Google::Cloud::Location::VERSION,
254
+ transports_version_send: [:rest]
255
+
256
+ call_metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
257
+
258
+ options.apply_defaults timeout: @config.rpcs.get_location.timeout,
259
+ metadata: call_metadata,
260
+ retry_policy: @config.rpcs.get_location.retry_policy
261
+
262
+ options.apply_defaults timeout: @config.timeout,
263
+ metadata: @config.metadata,
264
+ retry_policy: @config.retry_policy
265
+
266
+ bindings_override = @config.bindings_override["google.cloud.location.Locations.GetLocation"]
267
+
268
+ @locations_stub.get_location request, options, bindings_override: bindings_override do |result, response|
269
+ yield result, response if block_given?
270
+ return result
271
+ end
272
+ rescue ::Faraday::Error => e
273
+ begin
274
+ raise ::Gapic::Rest::Error.wrap_faraday_error e
275
+ rescue ::Gapic::Rest::Error => gapic_error
276
+ raise ::Google::Cloud::Error.from_error gapic_error
277
+ end
278
+ end
279
+
280
+ ##
281
+ # Configuration class for the Locations REST API.
282
+ #
283
+ # This class represents the configuration for Locations REST,
284
+ # providing control over timeouts, retry behavior, logging, transport
285
+ # parameters, and other low-level controls. Certain parameters can also be
286
+ # applied individually to specific RPCs. See
287
+ # {::Google::Cloud::Location::Locations::Rest::Client::Configuration::Rpcs}
288
+ # for a list of RPCs that can be configured independently.
289
+ #
290
+ # Configuration can be applied globally to all clients, or to a single client
291
+ # on construction.
292
+ #
293
+ # @example
294
+ #
295
+ # # Modify the global config, setting the timeout for
296
+ # # list_locations to 20 seconds,
297
+ # # and all remaining timeouts to 10 seconds.
298
+ # ::Google::Cloud::Location::Locations::Rest::Client.configure do |config|
299
+ # config.timeout = 10.0
300
+ # config.rpcs.list_locations.timeout = 20.0
301
+ # end
302
+ #
303
+ # # Apply the above configuration only to a new client.
304
+ # client = ::Google::Cloud::Location::Locations::Rest::Client.new do |config|
305
+ # config.timeout = 10.0
306
+ # config.rpcs.list_locations.timeout = 20.0
307
+ # end
308
+ #
309
+ # @!attribute [rw] endpoint
310
+ # The hostname or hostname:port of the service endpoint.
311
+ # Defaults to `"cloud.googleapis.com"`.
312
+ # @return [::String]
313
+ # @!attribute [rw] credentials
314
+ # Credentials to send with calls. You may provide any of the following types:
315
+ # * (`String`) The path to a service account key file in JSON format
316
+ # * (`Hash`) A service account key as a Hash
317
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
318
+ # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
319
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
320
+ # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
321
+ # * (`nil`) indicating no credentials
322
+ # @return [::Object]
323
+ # @!attribute [rw] scope
324
+ # The OAuth scopes
325
+ # @return [::Array<::String>]
326
+ # @!attribute [rw] lib_name
327
+ # The library name as recorded in instrumentation and logging
328
+ # @return [::String]
329
+ # @!attribute [rw] lib_version
330
+ # The library version as recorded in instrumentation and logging
331
+ # @return [::String]
332
+ # @!attribute [rw] timeout
333
+ # The call timeout in seconds.
334
+ # @return [::Numeric]
335
+ # @!attribute [rw] metadata
336
+ # Additional headers to be sent with the call.
337
+ # @return [::Hash{::Symbol=>::String}]
338
+ # @!attribute [rw] retry_policy
339
+ # The retry policy. The value is a hash with the following keys:
340
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
341
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
342
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
343
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
344
+ # trigger a retry.
345
+ # @return [::Hash]
346
+ # @!attribute [rw] quota_project
347
+ # A separate project against which to charge quota.
348
+ # @return [::String]
349
+ #
350
+ class Configuration
351
+ extend ::Gapic::Config
352
+
353
+ config_attr :endpoint, "cloud.googleapis.com", ::String
354
+ config_attr :credentials, nil do |value|
355
+ allowed = [::String, ::Hash, ::Proc, ::Symbol, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
356
+ allowed.any? { |klass| klass === value }
357
+ end
358
+ config_attr :scope, nil, ::String, ::Array, nil
359
+ config_attr :lib_name, nil, ::String, nil
360
+ config_attr :lib_version, nil, ::String, nil
361
+ config_attr :timeout, nil, ::Numeric, nil
362
+ config_attr :metadata, nil, ::Hash, nil
363
+ config_attr :retry_policy, nil, ::Hash, ::Proc, nil
364
+ config_attr :quota_project, nil, ::String, nil
365
+
366
+ # @private
367
+ # Overrides for http bindings for the RPCs of this service
368
+ # are only used when this service is used as mixin, and only
369
+ # by the host service.
370
+ # @return [::Hash{::Symbol=>::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>}]
371
+ config_attr :bindings_override, {}, ::Hash, nil
372
+
373
+ # @private
374
+ def initialize parent_config = nil
375
+ @parent_config = parent_config unless parent_config.nil?
376
+
377
+ yield self if block_given?
378
+ end
379
+
380
+ ##
381
+ # Configurations for individual RPCs
382
+ # @return [Rpcs]
383
+ #
384
+ def rpcs
385
+ @rpcs ||= begin
386
+ parent_rpcs = nil
387
+ parent_rpcs = @parent_config.rpcs if defined?(@parent_config) && @parent_config.respond_to?(:rpcs)
388
+ Rpcs.new parent_rpcs
389
+ end
390
+ end
391
+
392
+ ##
393
+ # Configuration RPC class for the Locations API.
394
+ #
395
+ # Includes fields providing the configuration for each RPC in this service.
396
+ # Each configuration object is of type `Gapic::Config::Method` and includes
397
+ # the following configuration fields:
398
+ #
399
+ # * `timeout` (*type:* `Numeric`) - The call timeout in seconds
400
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional headers
401
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
402
+ # include the following keys:
403
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
404
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
405
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
406
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
407
+ # trigger a retry.
408
+ #
409
+ class Rpcs
410
+ ##
411
+ # RPC-specific configuration for `list_locations`
412
+ # @return [::Gapic::Config::Method]
413
+ #
414
+ attr_reader :list_locations
415
+ ##
416
+ # RPC-specific configuration for `get_location`
417
+ # @return [::Gapic::Config::Method]
418
+ #
419
+ attr_reader :get_location
420
+
421
+ # @private
422
+ def initialize parent_rpcs = nil
423
+ list_locations_config = parent_rpcs.list_locations if parent_rpcs.respond_to? :list_locations
424
+ @list_locations = ::Gapic::Config::Method.new list_locations_config
425
+ get_location_config = parent_rpcs.get_location if parent_rpcs.respond_to? :get_location
426
+ @get_location = ::Gapic::Config::Method.new get_location_config
427
+
428
+ yield self if block_given?
429
+ end
430
+ end
431
+ end
432
+ end
433
+ end
434
+ end
435
+ end
436
+ end
437
+ end
@@ -0,0 +1,184 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "google/cloud/location/locations_pb"
20
+
21
+ module Google
22
+ module Cloud
23
+ module Location
24
+ module Locations
25
+ module Rest
26
+ ##
27
+ # REST service stub for the Locations service.
28
+ # Service stub contains baseline method implementations
29
+ # including transcoding, making the REST call, and deserialing the response.
30
+ #
31
+ class ServiceStub
32
+ def initialize endpoint:, credentials:
33
+ # These require statements are intentionally placed here to initialize
34
+ # the REST modules only when it's required.
35
+ require "gapic/rest"
36
+
37
+ @client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint, credentials: credentials, numeric_enums: true
38
+ end
39
+
40
+ ##
41
+ # Baseline implementation for the list_locations REST call
42
+ #
43
+ # @param request_pb [::Google::Cloud::Location::ListLocationsRequest]
44
+ # A request object representing the call parameters. Required.
45
+ # @param options [::Gapic::CallOptions]
46
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
47
+ # @param bindings_override [::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>, nil]
48
+ # Binding overrides for the transcoding. Only used internally.
49
+ #
50
+ # @yield [result, response] Access the result along with the Faraday response object
51
+ # @yieldparam result [::Google::Cloud::Location::ListLocationsResponse]
52
+ # @yieldparam response [::Faraday::Response]
53
+ #
54
+ # @return [::Google::Cloud::Location::ListLocationsResponse]
55
+ # A result object deserialized from the server's reply
56
+ def list_locations request_pb, options = nil, bindings_override: nil
57
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
58
+
59
+ verb, uri, query_string_params, body = ServiceStub.transcode_list_locations_request request_pb, bindings_override: bindings_override
60
+ query_string_params = if query_string_params.any?
61
+ query_string_params.to_h { |p| p.split("=", 2) }
62
+ else
63
+ {}
64
+ end
65
+
66
+ response = @client_stub.make_http_request(
67
+ verb,
68
+ uri: uri,
69
+ body: body || "",
70
+ params: query_string_params,
71
+ options: options
72
+ )
73
+ result = ::Google::Cloud::Location::ListLocationsResponse.decode_json response.body, ignore_unknown_fields: true
74
+
75
+ yield result, response if block_given?
76
+ result
77
+ end
78
+
79
+ ##
80
+ # Baseline implementation for the get_location REST call
81
+ #
82
+ # @param request_pb [::Google::Cloud::Location::GetLocationRequest]
83
+ # A request object representing the call parameters. Required.
84
+ # @param options [::Gapic::CallOptions]
85
+ # Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
86
+ # @param bindings_override [::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>, nil]
87
+ # Binding overrides for the transcoding. Only used internally.
88
+ #
89
+ # @yield [result, response] Access the result along with the Faraday response object
90
+ # @yieldparam result [::Google::Cloud::Location::Location]
91
+ # @yieldparam response [::Faraday::Response]
92
+ #
93
+ # @return [::Google::Cloud::Location::Location]
94
+ # A result object deserialized from the server's reply
95
+ def get_location request_pb, options = nil, bindings_override: nil
96
+ raise ::ArgumentError, "request must be provided" if request_pb.nil?
97
+
98
+ verb, uri, query_string_params, body = ServiceStub.transcode_get_location_request request_pb, bindings_override: bindings_override
99
+ query_string_params = if query_string_params.any?
100
+ query_string_params.to_h { |p| p.split("=", 2) }
101
+ else
102
+ {}
103
+ end
104
+
105
+ response = @client_stub.make_http_request(
106
+ verb,
107
+ uri: uri,
108
+ body: body || "",
109
+ params: query_string_params,
110
+ options: options
111
+ )
112
+ result = ::Google::Cloud::Location::Location.decode_json response.body, ignore_unknown_fields: true
113
+
114
+ yield result, response if block_given?
115
+ result
116
+ end
117
+
118
+ ##
119
+ # @private
120
+ #
121
+ # GRPC transcoding helper method for the list_locations REST call
122
+ #
123
+ # @param request_pb [::Google::Cloud::Location::ListLocationsRequest]
124
+ # A request object representing the call parameters. Required.
125
+ # @param bindings_override [::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>, nil]
126
+ # Binding overrides for the transcoding.
127
+ # @return [Array(String, [String, nil], Hash{String => String})]
128
+ # Uri, Body, Query string parameters
129
+ def self.transcode_list_locations_request request_pb, bindings_override: nil
130
+ transcoder = Gapic::Rest::GrpcTranscoder.new(bindings_override) if bindings_override
131
+ transcoder ||= Gapic::Rest::GrpcTranscoder.new
132
+ .with_bindings(
133
+ uri_method: :get,
134
+ uri_template: "/v1/{name}",
135
+ matches: [
136
+ ["name", %r{^locations/?$}, false]
137
+ ]
138
+ )
139
+ .with_bindings(
140
+ uri_method: :get,
141
+ uri_template: "/v1/{name}/locations",
142
+ matches: [
143
+ ["name", %r{^projects/[^/]+/?$}, false]
144
+ ]
145
+ )
146
+ transcoder.transcode request_pb
147
+ end
148
+
149
+ ##
150
+ # @private
151
+ #
152
+ # GRPC transcoding helper method for the get_location REST call
153
+ #
154
+ # @param request_pb [::Google::Cloud::Location::GetLocationRequest]
155
+ # A request object representing the call parameters. Required.
156
+ # @param bindings_override [::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>, nil]
157
+ # Binding overrides for the transcoding.
158
+ # @return [Array(String, [String, nil], Hash{String => String})]
159
+ # Uri, Body, Query string parameters
160
+ def self.transcode_get_location_request request_pb, bindings_override: nil
161
+ transcoder = Gapic::Rest::GrpcTranscoder.new(bindings_override) if bindings_override
162
+ transcoder ||= Gapic::Rest::GrpcTranscoder.new
163
+ .with_bindings(
164
+ uri_method: :get,
165
+ uri_template: "/v1/{name}",
166
+ matches: [
167
+ ["name", %r{^locations/[^/]+/?$}, false]
168
+ ]
169
+ )
170
+ .with_bindings(
171
+ uri_method: :get,
172
+ uri_template: "/v1/{name}",
173
+ matches: [
174
+ ["name", %r{^projects/[^/]+/locations/[^/]+/?$}, false]
175
+ ]
176
+ )
177
+ transcoder.transcode request_pb
178
+ end
179
+ end
180
+ end
181
+ end
182
+ end
183
+ end
184
+ end