Class: Google::Cloud::Optimization::V1::FleetRouting::Client
- Inherits:
-
Object
- Object
- Google::Cloud::Optimization::V1::FleetRouting::Client
- Defined in:
- lib/google/cloud/optimization/v1/fleet_routing/client.rb
Overview
Client for the FleetRouting service.
A service for optimizing vehicle tours.
Validity of certain types of fields:
google.protobuf.Timestamp
- Times are in Unix time: seconds since 1970-01-01T00:00:00+00:00.
- seconds must be in [0, 253402300799], i.e. in [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00].
- nanos must be unset or set to 0.
google.protobuf.Duration
- seconds must be in [0, 253402300799], i.e. in [1970-01-01T00:00:00+00:00, 9999-12-31T23:59:59+00:00].
- nanos must be unset or set to 0.
google.type.LatLng
- latitude must be in [-90.0, 90.0].
- longitude must be in [-180.0, 180.0].
- at least one of latitude and longitude must be non-zero.
Defined Under Namespace
Classes: Configuration
Instance Attribute Summary collapse
-
#operations_client ⇒ ::Google::Cloud::Optimization::V1::FleetRouting::Operations
readonly
Get the associated client for long-running operations.
Class Method Summary collapse
-
.configure {|config| ... } ⇒ Client::Configuration
Configure the FleetRouting Client class.
Instance Method Summary collapse
-
#batch_optimize_tours(request, options = nil) {|response, operation| ... } ⇒ ::Gapic::Operation
Optimizes vehicle tours for one or more
OptimizeToursRequest
messages as a batch. -
#configure {|config| ... } ⇒ Client::Configuration
Configure the FleetRouting Client instance.
-
#initialize {|config| ... } ⇒ Client
constructor
Create a new FleetRouting client object.
-
#optimize_tours(request, options = nil) {|response, operation| ... } ⇒ ::Google::Cloud::Optimization::V1::OptimizeToursResponse
Sends an
OptimizeToursRequest
containing aShipmentModel
and returns anOptimizeToursResponse
containingShipmentRoute
s, which are a set of routes to be performed by vehicles minimizing the overall cost. -
#universe_domain ⇒ String
The effective universe domain.
Constructor Details
#initialize {|config| ... } ⇒ Client
Create a new FleetRouting client object.
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
# File 'lib/google/cloud/optimization/v1/fleet_routing/client.rb', line 148 def initialize # These require statements are intentionally placed here to initialize # the gRPC module only when it's required. # See https://github.com/googleapis/toolkit/issues/446 require "gapic/grpc" require "google/cloud/optimization/v1/fleet_routing_services_pb" # Create the configuration object @config = Configuration.new Client.configure # Yield the configuration if needed yield @config if block_given? # Create credentials credentials = @config.credentials # Use self-signed JWT if the endpoint is unchanged from default, # but only if the default endpoint does not have a region prefix. enable_self_signed_jwt = @config.endpoint.nil? || (@config.endpoint == Configuration::DEFAULT_ENDPOINT && !@config.endpoint.split(".").first.include?("-")) credentials ||= Credentials.default scope: @config.scope, enable_self_signed_jwt: enable_self_signed_jwt if credentials.is_a?(::String) || credentials.is_a?(::Hash) credentials = Credentials.new credentials, scope: @config.scope end @quota_project_id = @config.quota_project @quota_project_id ||= credentials.quota_project_id if credentials.respond_to? :quota_project_id @operations_client = Operations.new do |config| config.credentials = credentials config.quota_project = @quota_project_id config.endpoint = @config.endpoint config.universe_domain = @config.universe_domain end @fleet_routing_stub = ::Gapic::ServiceStub.new( ::Google::Cloud::Optimization::V1::FleetRouting::Stub, credentials: credentials, endpoint: @config.endpoint, endpoint_template: DEFAULT_ENDPOINT_TEMPLATE, universe_domain: @config.universe_domain, channel_args: @config.channel_args, interceptors: @config.interceptors, channel_pool_config: @config.channel_pool ) end |
Instance Attribute Details
#operations_client ⇒ ::Google::Cloud::Optimization::V1::FleetRouting::Operations (readonly)
Get the associated client for long-running operations.
200 201 202 |
# File 'lib/google/cloud/optimization/v1/fleet_routing/client.rb', line 200 def operations_client @operations_client end |
Class Method Details
.configure {|config| ... } ⇒ Client::Configuration
Configure the FleetRouting Client class.
See Configuration for a description of the configuration fields.
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/google/cloud/optimization/v1/fleet_routing/client.rb', line 76 def self.configure @configure ||= begin namespace = ["Google", "Cloud", "Optimization", "V1"] parent_config = while namespace.any? parent_name = namespace.join "::" parent_const = const_get parent_name break parent_const.configure if parent_const.respond_to? :configure namespace.pop end default_config = Client::Configuration.new parent_config default_config.rpcs.optimize_tours.timeout = 3600.0 default_config.rpcs.optimize_tours.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config.rpcs.batch_optimize_tours.timeout = 60.0 default_config.rpcs.batch_optimize_tours.retry_policy = { initial_delay: 1.0, max_delay: 10.0, multiplier: 1.3, retry_codes: [14] } default_config end yield @configure if block_given? @configure end |
Instance Method Details
#batch_optimize_tours(request, options = nil) ⇒ ::Gapic::Operation #batch_optimize_tours(parent: nil, model_configs: nil) ⇒ ::Gapic::Operation
Optimizes vehicle tours for one or more OptimizeToursRequest
messages as a batch.
This method is a Long Running Operation (LRO). The inputs for optimization
(OptimizeToursRequest
messages) and outputs (OptimizeToursResponse
messages) are read/written from/to Cloud Storage in user-specified
format. Like the OptimizeTours
method, each OptimizeToursRequest
contains a ShipmentModel
and returns an OptimizeToursResponse
containing ShipmentRoute
s, which are a set of routes to be performed by
vehicles minimizing the overall cost.
557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 |
# File 'lib/google/cloud/optimization/v1/fleet_routing/client.rb', line 557 def batch_optimize_tours request, = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Optimization::V1::BatchOptimizeToursRequest # Converts hash and nil to an options object = ::Gapic::CallOptions.new(**.to_h) if .respond_to? :to_h # Customize the options with defaults = @config.rpcs.batch_optimize_tours..to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers [:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Optimization::V1::VERSION [:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? [:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.parent header_params["parent"] = request.parent end request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") [:"x-goog-request-params"] ||= request_params_header .apply_defaults timeout: @config.rpcs.batch_optimize_tours.timeout, metadata: , retry_policy: @config.rpcs.batch_optimize_tours.retry_policy .apply_defaults timeout: @config.timeout, metadata: @config., retry_policy: @config.retry_policy @fleet_routing_stub.call_rpc :batch_optimize_tours, request, options: do |response, operation| response = ::Gapic::Operation.new response, @operations_client, options: yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end |
#configure {|config| ... } ⇒ Client::Configuration
Configure the FleetRouting Client instance.
The configuration is set to the derived mode, meaning that values can be changed, but structural changes (adding new fields, etc.) are not allowed. Structural changes should be made on configure.
See Configuration for a description of the configuration fields.
118 119 120 121 |
# File 'lib/google/cloud/optimization/v1/fleet_routing/client.rb', line 118 def configure yield @config if block_given? @config end |
#optimize_tours(request, options = nil) ⇒ ::Google::Cloud::Optimization::V1::OptimizeToursResponse #optimize_tours(parent: nil, timeout: nil, model: nil, solving_mode: nil, search_mode: nil, injected_first_solution_routes: nil, injected_solution_constraint: nil, refresh_details_routes: nil, interpret_injected_solutions_using_labels: nil, consider_road_traffic: nil, populate_polylines: nil, populate_transition_polylines: nil, allow_large_deadline_despite_interruption_risk: nil, use_geodesic_distances: nil, geodesic_meters_per_second: nil, max_validation_errors: nil, label: nil, populate_travel_step_polylines: nil) ⇒ ::Google::Cloud::Optimization::V1::OptimizeToursResponse
Sends an OptimizeToursRequest
containing a ShipmentModel
and returns an
OptimizeToursResponse
containing ShipmentRoute
s, which are a set of
routes to be performed by vehicles minimizing the overall cost.
A ShipmentModel
model consists mainly of Shipment
s that need to be
carried out and Vehicle
s that can be used to transport the Shipment
s.
The ShipmentRoute
s assign Shipment
s to Vehicle
s. More specifically,
they assign a series of Visit
s to each vehicle, where a Visit
corresponds to a VisitRequest
, which is a pickup or delivery for a
Shipment
.
The goal is to provide an assignment of ShipmentRoute
s to Vehicle
s that
minimizes the total cost where cost has many components defined in the
ShipmentModel
.
448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 |
# File 'lib/google/cloud/optimization/v1/fleet_routing/client.rb', line 448 def optimize_tours request, = nil raise ::ArgumentError, "request must be provided" if request.nil? request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::Optimization::V1::OptimizeToursRequest # Converts hash and nil to an options object = ::Gapic::CallOptions.new(**.to_h) if .respond_to? :to_h # Customize the options with defaults = @config.rpcs.optimize_tours..to_h # Set x-goog-api-client, x-goog-user-project and x-goog-api-version headers [:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \ lib_name: @config.lib_name, lib_version: @config.lib_version, gapic_version: ::Google::Cloud::Optimization::V1::VERSION [:"x-goog-api-version"] = API_VERSION unless API_VERSION.empty? [:"x-goog-user-project"] = @quota_project_id if @quota_project_id header_params = {} if request.parent header_params["parent"] = request.parent end request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&") [:"x-goog-request-params"] ||= request_params_header .apply_defaults timeout: @config.rpcs.optimize_tours.timeout, metadata: , retry_policy: @config.rpcs.optimize_tours.retry_policy .apply_defaults timeout: @config.timeout, metadata: @config., retry_policy: @config.retry_policy @fleet_routing_stub.call_rpc :optimize_tours, request, options: do |response, operation| yield response, operation if block_given? return response end rescue ::GRPC::BadStatus => e raise ::Google::Cloud::Error.from_error(e) end |
#universe_domain ⇒ String
The effective universe domain
128 129 130 |
# File 'lib/google/cloud/optimization/v1/fleet_routing/client.rb', line 128 def universe_domain @fleet_routing_stub.universe_domain end |