# frozen_string_literal: true
# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Auto-generated by gapic-generator-ruby. DO NOT EDIT!
require "google/cloud/location/locations_pb"
module Google
module Cloud
module Location
module Locations
module Rest
##
# REST service stub for the Locations service.
# Service stub contains baseline method implementations
# including transcoding, making the REST call, and deserialing the response.
#
class ServiceStub
# @private
def initialize endpoint:, endpoint_template:, universe_domain:, credentials:, logger:
# These require statements are intentionally placed here to initialize
# the REST modules only when it's required.
require "gapic/rest"
@client_stub = ::Gapic::Rest::ClientStub.new endpoint: endpoint,
endpoint_template: endpoint_template,
universe_domain: universe_domain,
credentials: credentials,
numeric_enums: true,
service_name: self.class,
raise_faraday_errors: false,
logger: logger
end
##
# The effective universe domain
#
# @return [String]
#
def universe_domain
@client_stub.universe_domain
end
##
# The effective endpoint
#
# @return [String]
#
def endpoint
@client_stub.endpoint
end
##
# The logger used for request/response debug logging.
#
# @return [Logger]
#
def logger stub: false
stub ? @client_stub.stub_logger : @client_stub.logger
end
##
# Baseline implementation for the list_locations REST call
#
# @param request_pb [::Google::Cloud::Location::ListLocationsRequest]
# A request object representing the call parameters. Required.
# @param options [::Gapic::CallOptions]
# Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
# @param bindings_override [::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>, nil]
# Binding overrides for the transcoding. Only used internally.
#
# @yield [result, operation] Access the result along with the TransportOperation object
# @yieldparam result [::Google::Cloud::Location::ListLocationsResponse]
# @yieldparam operation [::Gapic::Rest::TransportOperation]
#
# @return [::Google::Cloud::Location::ListLocationsResponse]
# A result object deserialized from the server's reply
def list_locations request_pb, options = nil, bindings_override: nil
raise ::ArgumentError, "request must be provided" if request_pb.nil?
verb, uri, query_string_params, body = ServiceStub.transcode_list_locations_request request_pb, bindings_override: bindings_override
query_string_params = if query_string_params.any?
query_string_params.to_h { |p| p.split "=", 2 }
else
{}
end
response = @client_stub.make_http_request(
verb,
uri: uri,
body: body || "",
params: query_string_params,
method_name: "list_locations",
options: options
)
operation = ::Gapic::Rest::TransportOperation.new response
result = ::Google::Cloud::Location::ListLocationsResponse.decode_json response.body, ignore_unknown_fields: true
catch :response do
yield result, operation if block_given?
result
end
end
##
# Baseline implementation for the get_location REST call
#
# @param request_pb [::Google::Cloud::Location::GetLocationRequest]
# A request object representing the call parameters. Required.
# @param options [::Gapic::CallOptions]
# Overrides the default settings for this call, e.g, timeout, retries etc. Optional.
# @param bindings_override [::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>, nil]
# Binding overrides for the transcoding. Only used internally.
#
# @yield [result, operation] Access the result along with the TransportOperation object
# @yieldparam result [::Google::Cloud::Location::Location]
# @yieldparam operation [::Gapic::Rest::TransportOperation]
#
# @return [::Google::Cloud::Location::Location]
# A result object deserialized from the server's reply
def get_location request_pb, options = nil, bindings_override: nil
raise ::ArgumentError, "request must be provided" if request_pb.nil?
verb, uri, query_string_params, body = ServiceStub.transcode_get_location_request request_pb, bindings_override: bindings_override
query_string_params = if query_string_params.any?
query_string_params.to_h { |p| p.split "=", 2 }
else
{}
end
response = @client_stub.make_http_request(
verb,
uri: uri,
body: body || "",
params: query_string_params,
method_name: "get_location",
options: options
)
operation = ::Gapic::Rest::TransportOperation.new response
result = ::Google::Cloud::Location::Location.decode_json response.body, ignore_unknown_fields: true
catch :response do
yield result, operation if block_given?
result
end
end
##
# @private
#
# GRPC transcoding helper method for the list_locations REST call
#
# @param request_pb [::Google::Cloud::Location::ListLocationsRequest]
# A request object representing the call parameters. Required.
# @param bindings_override [::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>, nil]
# Binding overrides for the transcoding.
# @return [Array(String, [String, nil], Hash{String => String})]
# Uri, Body, Query string parameters
def self.transcode_list_locations_request request_pb, bindings_override: nil
transcoder = Gapic::Rest::GrpcTranscoder.new(bindings_override) if bindings_override
transcoder ||= Gapic::Rest::GrpcTranscoder.new
.with_bindings(
uri_method: :get,
uri_template: "/v1/{name}",
matches: [
["name", %r{^locations/?$}, false]
]
)
.with_bindings(
uri_method: :get,
uri_template: "/v1/{name}/locations",
matches: [
["name", %r{^projects/[^/]+/?$}, false]
]
)
transcoder.transcode request_pb
end
##
# @private
#
# GRPC transcoding helper method for the get_location REST call
#
# @param request_pb [::Google::Cloud::Location::GetLocationRequest]
# A request object representing the call parameters. Required.
# @param bindings_override [::Array<::Gapic::Rest::GrpcTranscoder::HttpBinding>, nil]
# Binding overrides for the transcoding.
# @return [Array(String, [String, nil], Hash{String => String})]
# Uri, Body, Query string parameters
def self.transcode_get_location_request request_pb, bindings_override: nil
transcoder = Gapic::Rest::GrpcTranscoder.new(bindings_override) if bindings_override
transcoder ||= Gapic::Rest::GrpcTranscoder.new
.with_bindings(
uri_method: :get,
uri_template: "/v1/{name}",
matches: [
["name", %r{^locations/[^/]+/?$}, false]
]
)
.with_bindings(
uri_method: :get,
uri_template: "/v1/{name}",
matches: [
["name", %r{^projects/[^/]+/locations/[^/]+/?$}, false]
]
)
transcoder.transcode request_pb
end
end
end
end
end
end
end