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. + * + *
This class provides the ability to make remote calls to the backing service through method + * calls that map to API methods. Sample code to get started: + * + *
{@code + * // This snippet has been automatically generated and should be regarded as a code template only. + * // It will require modifications to work: + * // - It may require correct/in-range values for request initialization. + * // - It may require specifying regional endpoints when creating the service client as shown in + * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + * try (RouteOptimizationClient routeOptimizationClient = RouteOptimizationClient.create()) { + * OptimizeToursRequest request = + * OptimizeToursRequest.newBuilder() + * .setParent("parent-995424086") + * .setTimeout(Duration.newBuilder().build()) + * .setModel(ShipmentModel.newBuilder().build()) + * .addAllInjectedFirstSolutionRoutes(new ArrayList+ * + *()) + * .setInjectedSolutionConstraint(InjectedSolutionConstraint.newBuilder().build()) + * .addAllRefreshDetailsRoutes(new ArrayList ()) + * .setInterpretInjectedSolutionsUsingLabels(true) + * .setConsiderRoadTraffic(true) + * .setPopulatePolylines(true) + * .setPopulateTransitionPolylines(true) + * .setAllowLargeDeadlineDespiteInterruptionRisk(true) + * .setUseGeodesicDistances(true) + * .setGeodesicMetersPerSecond(-2129658905) + * .setMaxValidationErrors(-1367418922) + * .setLabel("label102727412") + * .build(); + * OptimizeToursResponse response = routeOptimizationClient.optimizeTours(request); + * } + * }
Note: close() needs to be called on the RouteOptimizationClient object to clean up resources + * such as threads. In the example above, try-with-resources is used, which automatically calls + * close(). + * + *
Method | + *Description | + *Method Variants | + *
---|---|---|
OptimizeTours |
+ * 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`. |
+ *
+ * Request object method variants only take one parameter, a request object, which must be constructed before the call. + *
Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service. + *
|
+ *
BatchOptimizeTours |
+ * 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. |
+ *
+ * Request object method variants only take one parameter, a request object, which must be constructed before the call. + *
Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service. + *
|
+ *
See the individual methods for example code. + * + *
Many parameters require resource names to be formatted in a particular way. To assist with + * these names, this class includes a format method for each type of name, and additionally a parse + * method to extract the individual identifiers contained within names that are returned. + * + *
This class can be customized by passing in a custom instance of RouteOptimizationSettings to + * create(). For example: + * + *
To customize credentials: + * + *
{@code + * // This snippet has been automatically generated and should be regarded as a code template only. + * // It will require modifications to work: + * // - It may require correct/in-range values for request initialization. + * // - It may require specifying regional endpoints when creating the service client as shown in + * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + * RouteOptimizationSettings routeOptimizationSettings = + * RouteOptimizationSettings.newBuilder() + * .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials)) + * .build(); + * RouteOptimizationClient routeOptimizationClient = + * RouteOptimizationClient.create(routeOptimizationSettings); + * }+ * + *
To customize the endpoint: + * + *
{@code + * // This snippet has been automatically generated and should be regarded as a code template only. + * // It will require modifications to work: + * // - It may require correct/in-range values for request initialization. + * // - It may require specifying regional endpoints when creating the service client as shown in + * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + * RouteOptimizationSettings routeOptimizationSettings = + * RouteOptimizationSettings.newBuilder().setEndpoint(myEndpoint).build(); + * RouteOptimizationClient routeOptimizationClient = + * RouteOptimizationClient.create(routeOptimizationSettings); + * }+ * + *
To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over + * the wire: + * + *
{@code + * // This snippet has been automatically generated and should be regarded as a code template only. + * // It will require modifications to work: + * // - It may require correct/in-range values for request initialization. + * // - It may require specifying regional endpoints when creating the service client as shown in + * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + * RouteOptimizationSettings routeOptimizationSettings = + * RouteOptimizationSettings.newHttpJsonBuilder().build(); + * RouteOptimizationClient routeOptimizationClient = + * RouteOptimizationClient.create(routeOptimizationSettings); + * }+ * + *
Please refer to the GitHub repository's samples for more quickstart code snippets. + */ +@Generated("by gapic-generator-java") +public class RouteOptimizationClient implements BackgroundResource { + private final RouteOptimizationSettings settings; + private final RouteOptimizationStub stub; + private final OperationsClient httpJsonOperationsClient; + private final com.google.longrunning.OperationsClient operationsClient; + + /** Constructs an instance of RouteOptimizationClient with default settings. */ + public static final RouteOptimizationClient create() throws IOException { + return create(RouteOptimizationSettings.newBuilder().build()); + } + + /** + * Constructs an instance of RouteOptimizationClient, using the given settings. The channels are + * created based on the settings passed in, or defaults for any settings that are not set. + */ + public static final RouteOptimizationClient create(RouteOptimizationSettings settings) + throws IOException { + return new RouteOptimizationClient(settings); + } + + /** + * Constructs an instance of RouteOptimizationClient, using the given stub for making calls. This + * is for advanced usage - prefer using create(RouteOptimizationSettings). + */ + public static final RouteOptimizationClient create(RouteOptimizationStub stub) { + return new RouteOptimizationClient(stub); + } + + /** + * Constructs an instance of RouteOptimizationClient, using the given settings. This is protected + * so that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected RouteOptimizationClient(RouteOptimizationSettings settings) throws IOException { + this.settings = settings; + this.stub = ((RouteOptimizationStubSettings) settings.getStubSettings()).createStub(); + this.operationsClient = + com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub()); + this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub()); + } + + protected RouteOptimizationClient(RouteOptimizationStub stub) { + this.settings = null; + this.stub = stub; + this.operationsClient = + com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub()); + this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub()); + } + + public final RouteOptimizationSettings getSettings() { + return settings; + } + + public RouteOptimizationStub getStub() { + return stub; + } + + /** + * Returns the OperationsClient that can be used to query the status of a long-running operation + * returned by another API method call. + */ + public final com.google.longrunning.OperationsClient getOperationsClient() { + return operationsClient; + } + + /** + * Returns the OperationsClient that can be used to query the status of a long-running operation + * returned by another API method call. + */ + @BetaApi + public final OperationsClient getHttpJsonOperationsClient() { + return httpJsonOperationsClient; + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * 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`. + * + *
Sample code: + * + *
{@code + * // This snippet has been automatically generated and should be regarded as a code template only. + * // It will require modifications to work: + * // - It may require correct/in-range values for request initialization. + * // - It may require specifying regional endpoints when creating the service client as shown in + * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + * try (RouteOptimizationClient routeOptimizationClient = RouteOptimizationClient.create()) { + * OptimizeToursRequest request = + * OptimizeToursRequest.newBuilder() + * .setParent("parent-995424086") + * .setTimeout(Duration.newBuilder().build()) + * .setModel(ShipmentModel.newBuilder().build()) + * .addAllInjectedFirstSolutionRoutes(new ArrayList+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OptimizeToursResponse optimizeTours(OptimizeToursRequest request) { + return optimizeToursCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * 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. + * + *()) + * .setInjectedSolutionConstraint(InjectedSolutionConstraint.newBuilder().build()) + * .addAllRefreshDetailsRoutes(new ArrayList ()) + * .setInterpretInjectedSolutionsUsingLabels(true) + * .setConsiderRoadTraffic(true) + * .setPopulatePolylines(true) + * .setPopulateTransitionPolylines(true) + * .setAllowLargeDeadlineDespiteInterruptionRisk(true) + * .setUseGeodesicDistances(true) + * .setGeodesicMetersPerSecond(-2129658905) + * .setMaxValidationErrors(-1367418922) + * .setLabel("label102727412") + * .build(); + * OptimizeToursResponse response = routeOptimizationClient.optimizeTours(request); + * } + * }
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`. + * + *
Sample code: + * + *
{@code + * // This snippet has been automatically generated and should be regarded as a code template only. + * // It will require modifications to work: + * // - It may require correct/in-range values for request initialization. + * // - It may require specifying regional endpoints when creating the service client as shown in + * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + * try (RouteOptimizationClient routeOptimizationClient = RouteOptimizationClient.create()) { + * OptimizeToursRequest request = + * OptimizeToursRequest.newBuilder() + * .setParent("parent-995424086") + * .setTimeout(Duration.newBuilder().build()) + * .setModel(ShipmentModel.newBuilder().build()) + * .addAllInjectedFirstSolutionRoutes(new ArrayList+ */ + public final UnaryCallable()) + * .setInjectedSolutionConstraint(InjectedSolutionConstraint.newBuilder().build()) + * .addAllRefreshDetailsRoutes(new ArrayList ()) + * .setInterpretInjectedSolutionsUsingLabels(true) + * .setConsiderRoadTraffic(true) + * .setPopulatePolylines(true) + * .setPopulateTransitionPolylines(true) + * .setAllowLargeDeadlineDespiteInterruptionRisk(true) + * .setUseGeodesicDistances(true) + * .setGeodesicMetersPerSecond(-2129658905) + * .setMaxValidationErrors(-1367418922) + * .setLabel("label102727412") + * .build(); + * ApiFuture future = + * routeOptimizationClient.optimizeToursCallable().futureCall(request); + * // Do something. + * OptimizeToursResponse response = future.get(); + * } + * }
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. + * + *
Sample code: + * + *
{@code + * // This snippet has been automatically generated and should be regarded as a code template only. + * // It will require modifications to work: + * // - It may require correct/in-range values for request initialization. + * // - It may require specifying regional endpoints when creating the service client as shown in + * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + * try (RouteOptimizationClient routeOptimizationClient = RouteOptimizationClient.create()) { + * BatchOptimizeToursRequest request = + * BatchOptimizeToursRequest.newBuilder() + * .setParent("parent-995424086") + * .addAllModelConfigs(new ArrayList+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OperationFuture()) + * .build(); + * BatchOptimizeToursResponse response = + * routeOptimizationClient.batchOptimizeToursAsync(request).get(); + * } + * }
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. + * + *
Sample code: + * + *
{@code + * // This snippet has been automatically generated and should be regarded as a code template only. + * // It will require modifications to work: + * // - It may require correct/in-range values for request initialization. + * // - It may require specifying regional endpoints when creating the service client as shown in + * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + * try (RouteOptimizationClient routeOptimizationClient = RouteOptimizationClient.create()) { + * BatchOptimizeToursRequest request = + * BatchOptimizeToursRequest.newBuilder() + * .setParent("parent-995424086") + * .addAllModelConfigs(new ArrayList+ */ + public final OperationCallable< + BatchOptimizeToursRequest, BatchOptimizeToursResponse, BatchOptimizeToursMetadata> + batchOptimizeToursOperationCallable() { + return stub.batchOptimizeToursOperationCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Optimizes vehicle tours for one or more `OptimizeToursRequest` messages as a batch. + * + *()) + * .build(); + * OperationFuture future = + * routeOptimizationClient.batchOptimizeToursOperationCallable().futureCall(request); + * // Do something. + * BatchOptimizeToursResponse response = future.get(); + * } + * }
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. + * + *
Sample code: + * + *
{@code + * // This snippet has been automatically generated and should be regarded as a code template only. + * // It will require modifications to work: + * // - It may require correct/in-range values for request initialization. + * // - It may require specifying regional endpoints when creating the service client as shown in + * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + * try (RouteOptimizationClient routeOptimizationClient = RouteOptimizationClient.create()) { + * BatchOptimizeToursRequest request = + * BatchOptimizeToursRequest.newBuilder() + * .setParent("parent-995424086") + * .addAllModelConfigs(new ArrayList+ */ + public final UnaryCallable()) + * .build(); + * ApiFuture future = + * routeOptimizationClient.batchOptimizeToursCallable().futureCall(request); + * // Do something. + * Operation response = future.get(); + * } + * }
The default instance has everything set to sensible defaults: + * + *
The builder of this class is recursive, so contained classes are themselves builders. When + * build() is called, the tree of builders is called to create the complete settings object. + * + *
For example, to set the total timeout of optimizeTours to 30 seconds: + * + *
{@code + * // This snippet has been automatically generated and should be regarded as a code template only. + * // It will require modifications to work: + * // - It may require correct/in-range values for request initialization. + * // - It may require specifying regional endpoints when creating the service client as shown in + * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + * RouteOptimizationSettings.Builder routeOptimizationSettingsBuilder = + * RouteOptimizationSettings.newBuilder(); + * routeOptimizationSettingsBuilder + * .optimizeToursSettings() + * .setRetrySettings( + * routeOptimizationSettingsBuilder + * .optimizeToursSettings() + * .getRetrySettings() + * .toBuilder() + * .setTotalTimeout(Duration.ofSeconds(30)) + * .build()); + * RouteOptimizationSettings routeOptimizationSettings = routeOptimizationSettingsBuilder.build(); + * }+ */ +@Generated("by gapic-generator-java") +public class RouteOptimizationSettings extends ClientSettings
Note: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction The interfaces provided are listed below, along with usage samples.
+ *
+ * ======================= RouteOptimizationClient =======================
+ *
+ * Service Description: 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.
+ *
+ * Sample for RouteOptimizationClient:
+ *
+ * This class is for advanced usage.
+ */
+@Generated("by gapic-generator-java")
+public class GrpcRouteOptimizationCallableFactory implements GrpcStubCallableFactory {
+
+ @Override
+ public This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator-java")
+public class GrpcRouteOptimizationStub extends RouteOptimizationStub {
+ private static final MethodDescriptor This class is for advanced usage.
+ */
+@Generated("by gapic-generator-java")
+public class HttpJsonRouteOptimizationCallableFactory
+ implements HttpJsonStubCallableFactory This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator-java")
+public class HttpJsonRouteOptimizationStub extends RouteOptimizationStub {
+ private static final TypeRegistry typeRegistry =
+ TypeRegistry.newBuilder()
+ .add(BatchOptimizeToursResponse.getDescriptor())
+ .add(BatchOptimizeToursMetadata.getDescriptor())
+ .build();
+
+ private static final ApiMethodDescriptor This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator-java")
+public abstract class RouteOptimizationStub implements BackgroundResource {
+
+ public OperationsStub getOperationsStub() {
+ return null;
+ }
+
+ public com.google.api.gax.httpjson.longrunning.stub.OperationsStub getHttpJsonOperationsStub() {
+ return null;
+ }
+
+ public UnaryCallable The default instance has everything set to sensible defaults:
+ *
+ * The builder of this class is recursive, so contained classes are themselves builders. When
+ * build() is called, the tree of builders is called to create the complete settings object.
+ *
+ * For example, to set the total timeout of optimizeTours to 30 seconds:
+ *
+ * Note: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * try (RouteOptimizationClient routeOptimizationClient = RouteOptimizationClient.create()) {
+ * OptimizeToursRequest request =
+ * OptimizeToursRequest.newBuilder()
+ * .setParent("parent-995424086")
+ * .setTimeout(Duration.newBuilder().build())
+ * .setModel(ShipmentModel.newBuilder().build())
+ * .addAllInjectedFirstSolutionRoutes(new ArrayList
+ */
+@Generated("by gapic-generator-java")
+package com.google.maps.routeoptimization.v1;
+
+import javax.annotation.Generated;
diff --git a/java-maps-routeoptimization/google-maps-routeoptimization/src/main/java/com/google/maps/routeoptimization/v1/stub/GrpcRouteOptimizationCallableFactory.java b/java-maps-routeoptimization/google-maps-routeoptimization/src/main/java/com/google/maps/routeoptimization/v1/stub/GrpcRouteOptimizationCallableFactory.java
new file mode 100644
index 000000000000..fe321c4a4a7b
--- /dev/null
+++ b/java-maps-routeoptimization/google-maps-routeoptimization/src/main/java/com/google/maps/routeoptimization/v1/stub/GrpcRouteOptimizationCallableFactory.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2024 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.
+ */
+
+package com.google.maps.routeoptimization.v1.stub;
+
+import com.google.api.gax.grpc.GrpcCallSettings;
+import com.google.api.gax.grpc.GrpcCallableFactory;
+import com.google.api.gax.grpc.GrpcStubCallableFactory;
+import com.google.api.gax.rpc.BatchingCallSettings;
+import com.google.api.gax.rpc.BidiStreamingCallable;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.ClientStreamingCallable;
+import com.google.api.gax.rpc.OperationCallSettings;
+import com.google.api.gax.rpc.OperationCallable;
+import com.google.api.gax.rpc.PagedCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallable;
+import com.google.api.gax.rpc.StreamingCallSettings;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.longrunning.Operation;
+import com.google.longrunning.stub.OperationsStub;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * gRPC callable factory implementation for the RouteOptimization service API.
+ *
+ *
+ *
+ *
+ * {@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * RouteOptimizationStubSettings.Builder routeOptimizationSettingsBuilder =
+ * RouteOptimizationStubSettings.newBuilder();
+ * routeOptimizationSettingsBuilder
+ * .optimizeToursSettings()
+ * .setRetrySettings(
+ * routeOptimizationSettingsBuilder
+ * .optimizeToursSettings()
+ * .getRetrySettings()
+ * .toBuilder()
+ * .setTotalTimeout(Duration.ofSeconds(30))
+ * .build());
+ * RouteOptimizationStubSettings routeOptimizationSettings =
+ * routeOptimizationSettingsBuilder.build();
+ * }
+ */
+@Generated("by gapic-generator-java")
+public class RouteOptimizationStubSettings extends StubSettings