• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.cloud.retail.v2.stub;
18 
19 import static com.google.cloud.retail.v2.ProductServiceClient.ListProductsPagedResponse;
20 
21 import com.google.api.core.ApiFunction;
22 import com.google.api.core.ApiFuture;
23 import com.google.api.core.BetaApi;
24 import com.google.api.gax.core.GaxProperties;
25 import com.google.api.gax.core.GoogleCredentialsProvider;
26 import com.google.api.gax.core.InstantiatingExecutorProvider;
27 import com.google.api.gax.grpc.GaxGrpcProperties;
28 import com.google.api.gax.grpc.GrpcTransportChannel;
29 import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
30 import com.google.api.gax.grpc.ProtoOperationTransformers;
31 import com.google.api.gax.httpjson.GaxHttpJsonProperties;
32 import com.google.api.gax.httpjson.HttpJsonTransportChannel;
33 import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
34 import com.google.api.gax.longrunning.OperationSnapshot;
35 import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
36 import com.google.api.gax.retrying.RetrySettings;
37 import com.google.api.gax.rpc.ApiCallContext;
38 import com.google.api.gax.rpc.ApiClientHeaderProvider;
39 import com.google.api.gax.rpc.ClientContext;
40 import com.google.api.gax.rpc.OperationCallSettings;
41 import com.google.api.gax.rpc.PageContext;
42 import com.google.api.gax.rpc.PagedCallSettings;
43 import com.google.api.gax.rpc.PagedListDescriptor;
44 import com.google.api.gax.rpc.PagedListResponseFactory;
45 import com.google.api.gax.rpc.StatusCode;
46 import com.google.api.gax.rpc.StubSettings;
47 import com.google.api.gax.rpc.TransportChannelProvider;
48 import com.google.api.gax.rpc.UnaryCallSettings;
49 import com.google.api.gax.rpc.UnaryCallable;
50 import com.google.cloud.retail.v2.AddFulfillmentPlacesMetadata;
51 import com.google.cloud.retail.v2.AddFulfillmentPlacesRequest;
52 import com.google.cloud.retail.v2.AddFulfillmentPlacesResponse;
53 import com.google.cloud.retail.v2.AddLocalInventoriesMetadata;
54 import com.google.cloud.retail.v2.AddLocalInventoriesRequest;
55 import com.google.cloud.retail.v2.AddLocalInventoriesResponse;
56 import com.google.cloud.retail.v2.CreateProductRequest;
57 import com.google.cloud.retail.v2.DeleteProductRequest;
58 import com.google.cloud.retail.v2.GetProductRequest;
59 import com.google.cloud.retail.v2.ImportMetadata;
60 import com.google.cloud.retail.v2.ImportProductsRequest;
61 import com.google.cloud.retail.v2.ImportProductsResponse;
62 import com.google.cloud.retail.v2.ListProductsRequest;
63 import com.google.cloud.retail.v2.ListProductsResponse;
64 import com.google.cloud.retail.v2.Product;
65 import com.google.cloud.retail.v2.RemoveFulfillmentPlacesMetadata;
66 import com.google.cloud.retail.v2.RemoveFulfillmentPlacesRequest;
67 import com.google.cloud.retail.v2.RemoveFulfillmentPlacesResponse;
68 import com.google.cloud.retail.v2.RemoveLocalInventoriesMetadata;
69 import com.google.cloud.retail.v2.RemoveLocalInventoriesRequest;
70 import com.google.cloud.retail.v2.RemoveLocalInventoriesResponse;
71 import com.google.cloud.retail.v2.SetInventoryMetadata;
72 import com.google.cloud.retail.v2.SetInventoryRequest;
73 import com.google.cloud.retail.v2.SetInventoryResponse;
74 import com.google.cloud.retail.v2.UpdateProductRequest;
75 import com.google.common.collect.ImmutableList;
76 import com.google.common.collect.ImmutableMap;
77 import com.google.common.collect.ImmutableSet;
78 import com.google.common.collect.Lists;
79 import com.google.longrunning.Operation;
80 import com.google.protobuf.Empty;
81 import java.io.IOException;
82 import java.util.List;
83 import javax.annotation.Generated;
84 import org.threeten.bp.Duration;
85 
86 // AUTO-GENERATED DOCUMENTATION AND CLASS.
87 /**
88  * Settings class to configure an instance of {@link ProductServiceStub}.
89  *
90  * <p>The default instance has everything set to sensible defaults:
91  *
92  * <ul>
93  *   <li>The default service address (retail.googleapis.com) and default port (443) are used.
94  *   <li>Credentials are acquired automatically through Application Default Credentials.
95  *   <li>Retries are configured for idempotent methods but not for non-idempotent methods.
96  * </ul>
97  *
98  * <p>The builder of this class is recursive, so contained classes are themselves builders. When
99  * build() is called, the tree of builders is called to create the complete settings object.
100  *
101  * <p>For example, to set the total timeout of createProduct to 30 seconds:
102  *
103  * <pre>{@code
104  * // This snippet has been automatically generated and should be regarded as a code template only.
105  * // It will require modifications to work:
106  * // - It may require correct/in-range values for request initialization.
107  * // - It may require specifying regional endpoints when creating the service client as shown in
108  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
109  * ProductServiceStubSettings.Builder productServiceSettingsBuilder =
110  *     ProductServiceStubSettings.newBuilder();
111  * productServiceSettingsBuilder
112  *     .createProductSettings()
113  *     .setRetrySettings(
114  *         productServiceSettingsBuilder
115  *             .createProductSettings()
116  *             .getRetrySettings()
117  *             .toBuilder()
118  *             .setTotalTimeout(Duration.ofSeconds(30))
119  *             .build());
120  * ProductServiceStubSettings productServiceSettings = productServiceSettingsBuilder.build();
121  * }</pre>
122  */
123 @Generated("by gapic-generator-java")
124 public class ProductServiceStubSettings extends StubSettings<ProductServiceStubSettings> {
125   /** The default scopes of the service. */
126   private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES =
127       ImmutableList.<String>builder().add("https://www.googleapis.com/auth/cloud-platform").build();
128 
129   private final UnaryCallSettings<CreateProductRequest, Product> createProductSettings;
130   private final UnaryCallSettings<GetProductRequest, Product> getProductSettings;
131   private final PagedCallSettings<
132           ListProductsRequest, ListProductsResponse, ListProductsPagedResponse>
133       listProductsSettings;
134   private final UnaryCallSettings<UpdateProductRequest, Product> updateProductSettings;
135   private final UnaryCallSettings<DeleteProductRequest, Empty> deleteProductSettings;
136   private final UnaryCallSettings<ImportProductsRequest, Operation> importProductsSettings;
137   private final OperationCallSettings<ImportProductsRequest, ImportProductsResponse, ImportMetadata>
138       importProductsOperationSettings;
139   private final UnaryCallSettings<SetInventoryRequest, Operation> setInventorySettings;
140   private final OperationCallSettings<
141           SetInventoryRequest, SetInventoryResponse, SetInventoryMetadata>
142       setInventoryOperationSettings;
143   private final UnaryCallSettings<AddFulfillmentPlacesRequest, Operation>
144       addFulfillmentPlacesSettings;
145   private final OperationCallSettings<
146           AddFulfillmentPlacesRequest, AddFulfillmentPlacesResponse, AddFulfillmentPlacesMetadata>
147       addFulfillmentPlacesOperationSettings;
148   private final UnaryCallSettings<RemoveFulfillmentPlacesRequest, Operation>
149       removeFulfillmentPlacesSettings;
150   private final OperationCallSettings<
151           RemoveFulfillmentPlacesRequest,
152           RemoveFulfillmentPlacesResponse,
153           RemoveFulfillmentPlacesMetadata>
154       removeFulfillmentPlacesOperationSettings;
155   private final UnaryCallSettings<AddLocalInventoriesRequest, Operation>
156       addLocalInventoriesSettings;
157   private final OperationCallSettings<
158           AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata>
159       addLocalInventoriesOperationSettings;
160   private final UnaryCallSettings<RemoveLocalInventoriesRequest, Operation>
161       removeLocalInventoriesSettings;
162   private final OperationCallSettings<
163           RemoveLocalInventoriesRequest,
164           RemoveLocalInventoriesResponse,
165           RemoveLocalInventoriesMetadata>
166       removeLocalInventoriesOperationSettings;
167 
168   private static final PagedListDescriptor<ListProductsRequest, ListProductsResponse, Product>
169       LIST_PRODUCTS_PAGE_STR_DESC =
170           new PagedListDescriptor<ListProductsRequest, ListProductsResponse, Product>() {
171             @Override
172             public String emptyToken() {
173               return "";
174             }
175 
176             @Override
177             public ListProductsRequest injectToken(ListProductsRequest payload, String token) {
178               return ListProductsRequest.newBuilder(payload).setPageToken(token).build();
179             }
180 
181             @Override
182             public ListProductsRequest injectPageSize(ListProductsRequest payload, int pageSize) {
183               return ListProductsRequest.newBuilder(payload).setPageSize(pageSize).build();
184             }
185 
186             @Override
187             public Integer extractPageSize(ListProductsRequest payload) {
188               return payload.getPageSize();
189             }
190 
191             @Override
192             public String extractNextToken(ListProductsResponse payload) {
193               return payload.getNextPageToken();
194             }
195 
196             @Override
197             public Iterable<Product> extractResources(ListProductsResponse payload) {
198               return payload.getProductsList() == null
199                   ? ImmutableList.<Product>of()
200                   : payload.getProductsList();
201             }
202           };
203 
204   private static final PagedListResponseFactory<
205           ListProductsRequest, ListProductsResponse, ListProductsPagedResponse>
206       LIST_PRODUCTS_PAGE_STR_FACT =
207           new PagedListResponseFactory<
208               ListProductsRequest, ListProductsResponse, ListProductsPagedResponse>() {
209             @Override
210             public ApiFuture<ListProductsPagedResponse> getFuturePagedResponse(
211                 UnaryCallable<ListProductsRequest, ListProductsResponse> callable,
212                 ListProductsRequest request,
213                 ApiCallContext context,
214                 ApiFuture<ListProductsResponse> futureResponse) {
215               PageContext<ListProductsRequest, ListProductsResponse, Product> pageContext =
216                   PageContext.create(callable, LIST_PRODUCTS_PAGE_STR_DESC, request, context);
217               return ListProductsPagedResponse.createAsync(pageContext, futureResponse);
218             }
219           };
220 
221   /** Returns the object with the settings used for calls to createProduct. */
createProductSettings()222   public UnaryCallSettings<CreateProductRequest, Product> createProductSettings() {
223     return createProductSettings;
224   }
225 
226   /** Returns the object with the settings used for calls to getProduct. */
getProductSettings()227   public UnaryCallSettings<GetProductRequest, Product> getProductSettings() {
228     return getProductSettings;
229   }
230 
231   /** Returns the object with the settings used for calls to listProducts. */
232   public PagedCallSettings<ListProductsRequest, ListProductsResponse, ListProductsPagedResponse>
listProductsSettings()233       listProductsSettings() {
234     return listProductsSettings;
235   }
236 
237   /** Returns the object with the settings used for calls to updateProduct. */
updateProductSettings()238   public UnaryCallSettings<UpdateProductRequest, Product> updateProductSettings() {
239     return updateProductSettings;
240   }
241 
242   /** Returns the object with the settings used for calls to deleteProduct. */
deleteProductSettings()243   public UnaryCallSettings<DeleteProductRequest, Empty> deleteProductSettings() {
244     return deleteProductSettings;
245   }
246 
247   /** Returns the object with the settings used for calls to importProducts. */
importProductsSettings()248   public UnaryCallSettings<ImportProductsRequest, Operation> importProductsSettings() {
249     return importProductsSettings;
250   }
251 
252   /** Returns the object with the settings used for calls to importProducts. */
253   public OperationCallSettings<ImportProductsRequest, ImportProductsResponse, ImportMetadata>
importProductsOperationSettings()254       importProductsOperationSettings() {
255     return importProductsOperationSettings;
256   }
257 
258   /** Returns the object with the settings used for calls to setInventory. */
setInventorySettings()259   public UnaryCallSettings<SetInventoryRequest, Operation> setInventorySettings() {
260     return setInventorySettings;
261   }
262 
263   /** Returns the object with the settings used for calls to setInventory. */
264   public OperationCallSettings<SetInventoryRequest, SetInventoryResponse, SetInventoryMetadata>
setInventoryOperationSettings()265       setInventoryOperationSettings() {
266     return setInventoryOperationSettings;
267   }
268 
269   /** Returns the object with the settings used for calls to addFulfillmentPlaces. */
addFulfillmentPlacesSettings()270   public UnaryCallSettings<AddFulfillmentPlacesRequest, Operation> addFulfillmentPlacesSettings() {
271     return addFulfillmentPlacesSettings;
272   }
273 
274   /** Returns the object with the settings used for calls to addFulfillmentPlaces. */
275   public OperationCallSettings<
276           AddFulfillmentPlacesRequest, AddFulfillmentPlacesResponse, AddFulfillmentPlacesMetadata>
addFulfillmentPlacesOperationSettings()277       addFulfillmentPlacesOperationSettings() {
278     return addFulfillmentPlacesOperationSettings;
279   }
280 
281   /** Returns the object with the settings used for calls to removeFulfillmentPlaces. */
282   public UnaryCallSettings<RemoveFulfillmentPlacesRequest, Operation>
removeFulfillmentPlacesSettings()283       removeFulfillmentPlacesSettings() {
284     return removeFulfillmentPlacesSettings;
285   }
286 
287   /** Returns the object with the settings used for calls to removeFulfillmentPlaces. */
288   public OperationCallSettings<
289           RemoveFulfillmentPlacesRequest,
290           RemoveFulfillmentPlacesResponse,
291           RemoveFulfillmentPlacesMetadata>
removeFulfillmentPlacesOperationSettings()292       removeFulfillmentPlacesOperationSettings() {
293     return removeFulfillmentPlacesOperationSettings;
294   }
295 
296   /** Returns the object with the settings used for calls to addLocalInventories. */
addLocalInventoriesSettings()297   public UnaryCallSettings<AddLocalInventoriesRequest, Operation> addLocalInventoriesSettings() {
298     return addLocalInventoriesSettings;
299   }
300 
301   /** Returns the object with the settings used for calls to addLocalInventories. */
302   public OperationCallSettings<
303           AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata>
addLocalInventoriesOperationSettings()304       addLocalInventoriesOperationSettings() {
305     return addLocalInventoriesOperationSettings;
306   }
307 
308   /** Returns the object with the settings used for calls to removeLocalInventories. */
309   public UnaryCallSettings<RemoveLocalInventoriesRequest, Operation>
removeLocalInventoriesSettings()310       removeLocalInventoriesSettings() {
311     return removeLocalInventoriesSettings;
312   }
313 
314   /** Returns the object with the settings used for calls to removeLocalInventories. */
315   public OperationCallSettings<
316           RemoveLocalInventoriesRequest,
317           RemoveLocalInventoriesResponse,
318           RemoveLocalInventoriesMetadata>
removeLocalInventoriesOperationSettings()319       removeLocalInventoriesOperationSettings() {
320     return removeLocalInventoriesOperationSettings;
321   }
322 
createStub()323   public ProductServiceStub createStub() throws IOException {
324     if (getTransportChannelProvider()
325         .getTransportName()
326         .equals(GrpcTransportChannel.getGrpcTransportName())) {
327       return GrpcProductServiceStub.create(this);
328     }
329     if (getTransportChannelProvider()
330         .getTransportName()
331         .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
332       return HttpJsonProductServiceStub.create(this);
333     }
334     throw new UnsupportedOperationException(
335         String.format(
336             "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
337   }
338 
339   /** Returns a builder for the default ExecutorProvider for this service. */
defaultExecutorProviderBuilder()340   public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
341     return InstantiatingExecutorProvider.newBuilder();
342   }
343 
344   /** Returns the default service endpoint. */
getDefaultEndpoint()345   public static String getDefaultEndpoint() {
346     return "retail.googleapis.com:443";
347   }
348 
349   /** Returns the default mTLS service endpoint. */
getDefaultMtlsEndpoint()350   public static String getDefaultMtlsEndpoint() {
351     return "retail.mtls.googleapis.com:443";
352   }
353 
354   /** Returns the default service scopes. */
getDefaultServiceScopes()355   public static List<String> getDefaultServiceScopes() {
356     return DEFAULT_SERVICE_SCOPES;
357   }
358 
359   /** Returns a builder for the default credentials for this service. */
defaultCredentialsProviderBuilder()360   public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
361     return GoogleCredentialsProvider.newBuilder()
362         .setScopesToApply(DEFAULT_SERVICE_SCOPES)
363         .setUseJwtAccessWithScope(true);
364   }
365 
366   /** Returns a builder for the default gRPC ChannelProvider for this service. */
defaultGrpcTransportProviderBuilder()367   public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
368     return InstantiatingGrpcChannelProvider.newBuilder()
369         .setMaxInboundMessageSize(Integer.MAX_VALUE);
370   }
371 
372   /** Returns a builder for the default REST ChannelProvider for this service. */
373   @BetaApi
374   public static InstantiatingHttpJsonChannelProvider.Builder
defaultHttpJsonTransportProviderBuilder()375       defaultHttpJsonTransportProviderBuilder() {
376     return InstantiatingHttpJsonChannelProvider.newBuilder();
377   }
378 
defaultTransportChannelProvider()379   public static TransportChannelProvider defaultTransportChannelProvider() {
380     return defaultGrpcTransportProviderBuilder().build();
381   }
382 
383   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultGrpcApiClientHeaderProviderBuilder()384   public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
385     return ApiClientHeaderProvider.newBuilder()
386         .setGeneratedLibToken(
387             "gapic", GaxProperties.getLibraryVersion(ProductServiceStubSettings.class))
388         .setTransportToken(
389             GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
390   }
391 
392   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultHttpJsonApiClientHeaderProviderBuilder()393   public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
394     return ApiClientHeaderProvider.newBuilder()
395         .setGeneratedLibToken(
396             "gapic", GaxProperties.getLibraryVersion(ProductServiceStubSettings.class))
397         .setTransportToken(
398             GaxHttpJsonProperties.getHttpJsonTokenName(),
399             GaxHttpJsonProperties.getHttpJsonVersion());
400   }
401 
defaultApiClientHeaderProviderBuilder()402   public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
403     return ProductServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
404   }
405 
406   /** Returns a new gRPC builder for this class. */
newBuilder()407   public static Builder newBuilder() {
408     return Builder.createDefault();
409   }
410 
411   /** Returns a new REST builder for this class. */
newHttpJsonBuilder()412   public static Builder newHttpJsonBuilder() {
413     return Builder.createHttpJsonDefault();
414   }
415 
416   /** Returns a new builder for this class. */
newBuilder(ClientContext clientContext)417   public static Builder newBuilder(ClientContext clientContext) {
418     return new Builder(clientContext);
419   }
420 
421   /** Returns a builder containing all the values of this settings class. */
toBuilder()422   public Builder toBuilder() {
423     return new Builder(this);
424   }
425 
ProductServiceStubSettings(Builder settingsBuilder)426   protected ProductServiceStubSettings(Builder settingsBuilder) throws IOException {
427     super(settingsBuilder);
428 
429     createProductSettings = settingsBuilder.createProductSettings().build();
430     getProductSettings = settingsBuilder.getProductSettings().build();
431     listProductsSettings = settingsBuilder.listProductsSettings().build();
432     updateProductSettings = settingsBuilder.updateProductSettings().build();
433     deleteProductSettings = settingsBuilder.deleteProductSettings().build();
434     importProductsSettings = settingsBuilder.importProductsSettings().build();
435     importProductsOperationSettings = settingsBuilder.importProductsOperationSettings().build();
436     setInventorySettings = settingsBuilder.setInventorySettings().build();
437     setInventoryOperationSettings = settingsBuilder.setInventoryOperationSettings().build();
438     addFulfillmentPlacesSettings = settingsBuilder.addFulfillmentPlacesSettings().build();
439     addFulfillmentPlacesOperationSettings =
440         settingsBuilder.addFulfillmentPlacesOperationSettings().build();
441     removeFulfillmentPlacesSettings = settingsBuilder.removeFulfillmentPlacesSettings().build();
442     removeFulfillmentPlacesOperationSettings =
443         settingsBuilder.removeFulfillmentPlacesOperationSettings().build();
444     addLocalInventoriesSettings = settingsBuilder.addLocalInventoriesSettings().build();
445     addLocalInventoriesOperationSettings =
446         settingsBuilder.addLocalInventoriesOperationSettings().build();
447     removeLocalInventoriesSettings = settingsBuilder.removeLocalInventoriesSettings().build();
448     removeLocalInventoriesOperationSettings =
449         settingsBuilder.removeLocalInventoriesOperationSettings().build();
450   }
451 
452   /** Builder for ProductServiceStubSettings. */
453   public static class Builder extends StubSettings.Builder<ProductServiceStubSettings, Builder> {
454     private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;
455     private final UnaryCallSettings.Builder<CreateProductRequest, Product> createProductSettings;
456     private final UnaryCallSettings.Builder<GetProductRequest, Product> getProductSettings;
457     private final PagedCallSettings.Builder<
458             ListProductsRequest, ListProductsResponse, ListProductsPagedResponse>
459         listProductsSettings;
460     private final UnaryCallSettings.Builder<UpdateProductRequest, Product> updateProductSettings;
461     private final UnaryCallSettings.Builder<DeleteProductRequest, Empty> deleteProductSettings;
462     private final UnaryCallSettings.Builder<ImportProductsRequest, Operation>
463         importProductsSettings;
464     private final OperationCallSettings.Builder<
465             ImportProductsRequest, ImportProductsResponse, ImportMetadata>
466         importProductsOperationSettings;
467     private final UnaryCallSettings.Builder<SetInventoryRequest, Operation> setInventorySettings;
468     private final OperationCallSettings.Builder<
469             SetInventoryRequest, SetInventoryResponse, SetInventoryMetadata>
470         setInventoryOperationSettings;
471     private final UnaryCallSettings.Builder<AddFulfillmentPlacesRequest, Operation>
472         addFulfillmentPlacesSettings;
473     private final OperationCallSettings.Builder<
474             AddFulfillmentPlacesRequest, AddFulfillmentPlacesResponse, AddFulfillmentPlacesMetadata>
475         addFulfillmentPlacesOperationSettings;
476     private final UnaryCallSettings.Builder<RemoveFulfillmentPlacesRequest, Operation>
477         removeFulfillmentPlacesSettings;
478     private final OperationCallSettings.Builder<
479             RemoveFulfillmentPlacesRequest,
480             RemoveFulfillmentPlacesResponse,
481             RemoveFulfillmentPlacesMetadata>
482         removeFulfillmentPlacesOperationSettings;
483     private final UnaryCallSettings.Builder<AddLocalInventoriesRequest, Operation>
484         addLocalInventoriesSettings;
485     private final OperationCallSettings.Builder<
486             AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata>
487         addLocalInventoriesOperationSettings;
488     private final UnaryCallSettings.Builder<RemoveLocalInventoriesRequest, Operation>
489         removeLocalInventoriesSettings;
490     private final OperationCallSettings.Builder<
491             RemoveLocalInventoriesRequest,
492             RemoveLocalInventoriesResponse,
493             RemoveLocalInventoriesMetadata>
494         removeLocalInventoriesOperationSettings;
495     private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>>
496         RETRYABLE_CODE_DEFINITIONS;
497 
498     static {
499       ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions =
500           ImmutableMap.builder();
501       definitions.put(
502           "retry_policy_1_codes",
503           ImmutableSet.copyOf(
504               Lists.<StatusCode.Code>newArrayList(
505                   StatusCode.Code.UNAVAILABLE, StatusCode.Code.DEADLINE_EXCEEDED)));
506       definitions.put(
507           "retry_policy_3_codes",
508           ImmutableSet.copyOf(
509               Lists.<StatusCode.Code>newArrayList(
510                   StatusCode.Code.UNAVAILABLE, StatusCode.Code.DEADLINE_EXCEEDED)));
511       RETRYABLE_CODE_DEFINITIONS = definitions.build();
512     }
513 
514     private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS;
515 
516     static {
517       ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder();
518       RetrySettings settings = null;
519       settings =
520           RetrySettings.newBuilder()
521               .setInitialRetryDelay(Duration.ofMillis(100L))
522               .setRetryDelayMultiplier(1.3)
523               .setMaxRetryDelay(Duration.ofMillis(30000L))
524               .setInitialRpcTimeout(Duration.ofMillis(30000L))
525               .setRpcTimeoutMultiplier(1.0)
526               .setMaxRpcTimeout(Duration.ofMillis(30000L))
527               .setTotalTimeout(Duration.ofMillis(30000L))
528               .build();
529       definitions.put("retry_policy_1_params", settings);
530       settings =
531           RetrySettings.newBuilder()
532               .setInitialRetryDelay(Duration.ofMillis(100L))
533               .setRetryDelayMultiplier(1.3)
534               .setMaxRetryDelay(Duration.ofMillis(300000L))
535               .setInitialRpcTimeout(Duration.ofMillis(300000L))
536               .setRpcTimeoutMultiplier(1.0)
537               .setMaxRpcTimeout(Duration.ofMillis(300000L))
538               .setTotalTimeout(Duration.ofMillis(300000L))
539               .build();
540       definitions.put("retry_policy_3_params", settings);
541       RETRY_PARAM_DEFINITIONS = definitions.build();
542     }
543 
Builder()544     protected Builder() {
545       this(((ClientContext) null));
546     }
547 
Builder(ClientContext clientContext)548     protected Builder(ClientContext clientContext) {
549       super(clientContext);
550 
551       createProductSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
552       getProductSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
553       listProductsSettings = PagedCallSettings.newBuilder(LIST_PRODUCTS_PAGE_STR_FACT);
554       updateProductSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
555       deleteProductSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
556       importProductsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
557       importProductsOperationSettings = OperationCallSettings.newBuilder();
558       setInventorySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
559       setInventoryOperationSettings = OperationCallSettings.newBuilder();
560       addFulfillmentPlacesSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
561       addFulfillmentPlacesOperationSettings = OperationCallSettings.newBuilder();
562       removeFulfillmentPlacesSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
563       removeFulfillmentPlacesOperationSettings = OperationCallSettings.newBuilder();
564       addLocalInventoriesSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
565       addLocalInventoriesOperationSettings = OperationCallSettings.newBuilder();
566       removeLocalInventoriesSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
567       removeLocalInventoriesOperationSettings = OperationCallSettings.newBuilder();
568 
569       unaryMethodSettingsBuilders =
570           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
571               createProductSettings,
572               getProductSettings,
573               listProductsSettings,
574               updateProductSettings,
575               deleteProductSettings,
576               importProductsSettings,
577               setInventorySettings,
578               addFulfillmentPlacesSettings,
579               removeFulfillmentPlacesSettings,
580               addLocalInventoriesSettings,
581               removeLocalInventoriesSettings);
582       initDefaults(this);
583     }
584 
Builder(ProductServiceStubSettings settings)585     protected Builder(ProductServiceStubSettings settings) {
586       super(settings);
587 
588       createProductSettings = settings.createProductSettings.toBuilder();
589       getProductSettings = settings.getProductSettings.toBuilder();
590       listProductsSettings = settings.listProductsSettings.toBuilder();
591       updateProductSettings = settings.updateProductSettings.toBuilder();
592       deleteProductSettings = settings.deleteProductSettings.toBuilder();
593       importProductsSettings = settings.importProductsSettings.toBuilder();
594       importProductsOperationSettings = settings.importProductsOperationSettings.toBuilder();
595       setInventorySettings = settings.setInventorySettings.toBuilder();
596       setInventoryOperationSettings = settings.setInventoryOperationSettings.toBuilder();
597       addFulfillmentPlacesSettings = settings.addFulfillmentPlacesSettings.toBuilder();
598       addFulfillmentPlacesOperationSettings =
599           settings.addFulfillmentPlacesOperationSettings.toBuilder();
600       removeFulfillmentPlacesSettings = settings.removeFulfillmentPlacesSettings.toBuilder();
601       removeFulfillmentPlacesOperationSettings =
602           settings.removeFulfillmentPlacesOperationSettings.toBuilder();
603       addLocalInventoriesSettings = settings.addLocalInventoriesSettings.toBuilder();
604       addLocalInventoriesOperationSettings =
605           settings.addLocalInventoriesOperationSettings.toBuilder();
606       removeLocalInventoriesSettings = settings.removeLocalInventoriesSettings.toBuilder();
607       removeLocalInventoriesOperationSettings =
608           settings.removeLocalInventoriesOperationSettings.toBuilder();
609 
610       unaryMethodSettingsBuilders =
611           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
612               createProductSettings,
613               getProductSettings,
614               listProductsSettings,
615               updateProductSettings,
616               deleteProductSettings,
617               importProductsSettings,
618               setInventorySettings,
619               addFulfillmentPlacesSettings,
620               removeFulfillmentPlacesSettings,
621               addLocalInventoriesSettings,
622               removeLocalInventoriesSettings);
623     }
624 
createDefault()625     private static Builder createDefault() {
626       Builder builder = new Builder(((ClientContext) null));
627 
628       builder.setTransportChannelProvider(defaultTransportChannelProvider());
629       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
630       builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
631       builder.setEndpoint(getDefaultEndpoint());
632       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
633       builder.setSwitchToMtlsEndpointAllowed(true);
634 
635       return initDefaults(builder);
636     }
637 
createHttpJsonDefault()638     private static Builder createHttpJsonDefault() {
639       Builder builder = new Builder(((ClientContext) null));
640 
641       builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
642       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
643       builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
644       builder.setEndpoint(getDefaultEndpoint());
645       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
646       builder.setSwitchToMtlsEndpointAllowed(true);
647 
648       return initDefaults(builder);
649     }
650 
initDefaults(Builder builder)651     private static Builder initDefaults(Builder builder) {
652       builder
653           .createProductSettings()
654           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
655           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
656 
657       builder
658           .getProductSettings()
659           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
660           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
661 
662       builder
663           .listProductsSettings()
664           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
665           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
666 
667       builder
668           .updateProductSettings()
669           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
670           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
671 
672       builder
673           .deleteProductSettings()
674           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
675           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
676 
677       builder
678           .importProductsSettings()
679           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_3_codes"))
680           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_3_params"));
681 
682       builder
683           .setInventorySettings()
684           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
685           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
686 
687       builder
688           .addFulfillmentPlacesSettings()
689           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
690           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
691 
692       builder
693           .removeFulfillmentPlacesSettings()
694           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
695           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
696 
697       builder
698           .addLocalInventoriesSettings()
699           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
700           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
701 
702       builder
703           .removeLocalInventoriesSettings()
704           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
705           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
706 
707       builder
708           .importProductsOperationSettings()
709           .setInitialCallSettings(
710               UnaryCallSettings
711                   .<ImportProductsRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
712                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_3_codes"))
713                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_3_params"))
714                   .build())
715           .setResponseTransformer(
716               ProtoOperationTransformers.ResponseTransformer.create(ImportProductsResponse.class))
717           .setMetadataTransformer(
718               ProtoOperationTransformers.MetadataTransformer.create(ImportMetadata.class))
719           .setPollingAlgorithm(
720               OperationTimedPollAlgorithm.create(
721                   RetrySettings.newBuilder()
722                       .setInitialRetryDelay(Duration.ofMillis(5000L))
723                       .setRetryDelayMultiplier(1.5)
724                       .setMaxRetryDelay(Duration.ofMillis(45000L))
725                       .setInitialRpcTimeout(Duration.ZERO)
726                       .setRpcTimeoutMultiplier(1.0)
727                       .setMaxRpcTimeout(Duration.ZERO)
728                       .setTotalTimeout(Duration.ofMillis(300000L))
729                       .build()));
730 
731       builder
732           .setInventoryOperationSettings()
733           .setInitialCallSettings(
734               UnaryCallSettings
735                   .<SetInventoryRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
736                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
737                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"))
738                   .build())
739           .setResponseTransformer(
740               ProtoOperationTransformers.ResponseTransformer.create(SetInventoryResponse.class))
741           .setMetadataTransformer(
742               ProtoOperationTransformers.MetadataTransformer.create(SetInventoryMetadata.class))
743           .setPollingAlgorithm(
744               OperationTimedPollAlgorithm.create(
745                   RetrySettings.newBuilder()
746                       .setInitialRetryDelay(Duration.ofMillis(5000L))
747                       .setRetryDelayMultiplier(1.5)
748                       .setMaxRetryDelay(Duration.ofMillis(45000L))
749                       .setInitialRpcTimeout(Duration.ZERO)
750                       .setRpcTimeoutMultiplier(1.0)
751                       .setMaxRpcTimeout(Duration.ZERO)
752                       .setTotalTimeout(Duration.ofMillis(300000L))
753                       .build()));
754 
755       builder
756           .addFulfillmentPlacesOperationSettings()
757           .setInitialCallSettings(
758               UnaryCallSettings
759                   .<AddFulfillmentPlacesRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
760                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
761                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"))
762                   .build())
763           .setResponseTransformer(
764               ProtoOperationTransformers.ResponseTransformer.create(
765                   AddFulfillmentPlacesResponse.class))
766           .setMetadataTransformer(
767               ProtoOperationTransformers.MetadataTransformer.create(
768                   AddFulfillmentPlacesMetadata.class))
769           .setPollingAlgorithm(
770               OperationTimedPollAlgorithm.create(
771                   RetrySettings.newBuilder()
772                       .setInitialRetryDelay(Duration.ofMillis(5000L))
773                       .setRetryDelayMultiplier(1.5)
774                       .setMaxRetryDelay(Duration.ofMillis(45000L))
775                       .setInitialRpcTimeout(Duration.ZERO)
776                       .setRpcTimeoutMultiplier(1.0)
777                       .setMaxRpcTimeout(Duration.ZERO)
778                       .setTotalTimeout(Duration.ofMillis(300000L))
779                       .build()));
780 
781       builder
782           .removeFulfillmentPlacesOperationSettings()
783           .setInitialCallSettings(
784               UnaryCallSettings
785                   .<RemoveFulfillmentPlacesRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
786                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
787                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"))
788                   .build())
789           .setResponseTransformer(
790               ProtoOperationTransformers.ResponseTransformer.create(
791                   RemoveFulfillmentPlacesResponse.class))
792           .setMetadataTransformer(
793               ProtoOperationTransformers.MetadataTransformer.create(
794                   RemoveFulfillmentPlacesMetadata.class))
795           .setPollingAlgorithm(
796               OperationTimedPollAlgorithm.create(
797                   RetrySettings.newBuilder()
798                       .setInitialRetryDelay(Duration.ofMillis(5000L))
799                       .setRetryDelayMultiplier(1.5)
800                       .setMaxRetryDelay(Duration.ofMillis(45000L))
801                       .setInitialRpcTimeout(Duration.ZERO)
802                       .setRpcTimeoutMultiplier(1.0)
803                       .setMaxRpcTimeout(Duration.ZERO)
804                       .setTotalTimeout(Duration.ofMillis(300000L))
805                       .build()));
806 
807       builder
808           .addLocalInventoriesOperationSettings()
809           .setInitialCallSettings(
810               UnaryCallSettings
811                   .<AddLocalInventoriesRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
812                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
813                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"))
814                   .build())
815           .setResponseTransformer(
816               ProtoOperationTransformers.ResponseTransformer.create(
817                   AddLocalInventoriesResponse.class))
818           .setMetadataTransformer(
819               ProtoOperationTransformers.MetadataTransformer.create(
820                   AddLocalInventoriesMetadata.class))
821           .setPollingAlgorithm(
822               OperationTimedPollAlgorithm.create(
823                   RetrySettings.newBuilder()
824                       .setInitialRetryDelay(Duration.ofMillis(5000L))
825                       .setRetryDelayMultiplier(1.5)
826                       .setMaxRetryDelay(Duration.ofMillis(45000L))
827                       .setInitialRpcTimeout(Duration.ZERO)
828                       .setRpcTimeoutMultiplier(1.0)
829                       .setMaxRpcTimeout(Duration.ZERO)
830                       .setTotalTimeout(Duration.ofMillis(300000L))
831                       .build()));
832 
833       builder
834           .removeLocalInventoriesOperationSettings()
835           .setInitialCallSettings(
836               UnaryCallSettings
837                   .<RemoveLocalInventoriesRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
838                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
839                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"))
840                   .build())
841           .setResponseTransformer(
842               ProtoOperationTransformers.ResponseTransformer.create(
843                   RemoveLocalInventoriesResponse.class))
844           .setMetadataTransformer(
845               ProtoOperationTransformers.MetadataTransformer.create(
846                   RemoveLocalInventoriesMetadata.class))
847           .setPollingAlgorithm(
848               OperationTimedPollAlgorithm.create(
849                   RetrySettings.newBuilder()
850                       .setInitialRetryDelay(Duration.ofMillis(5000L))
851                       .setRetryDelayMultiplier(1.5)
852                       .setMaxRetryDelay(Duration.ofMillis(45000L))
853                       .setInitialRpcTimeout(Duration.ZERO)
854                       .setRpcTimeoutMultiplier(1.0)
855                       .setMaxRpcTimeout(Duration.ZERO)
856                       .setTotalTimeout(Duration.ofMillis(300000L))
857                       .build()));
858 
859       return builder;
860     }
861 
862     /**
863      * Applies the given settings updater function to all of the unary API methods in this service.
864      *
865      * <p>Note: This method does not support applying settings to streaming methods.
866      */
applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)867     public Builder applyToAllUnaryMethods(
868         ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) {
869       super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
870       return this;
871     }
872 
unaryMethodSettingsBuilders()873     public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() {
874       return unaryMethodSettingsBuilders;
875     }
876 
877     /** Returns the builder for the settings used for calls to createProduct. */
createProductSettings()878     public UnaryCallSettings.Builder<CreateProductRequest, Product> createProductSettings() {
879       return createProductSettings;
880     }
881 
882     /** Returns the builder for the settings used for calls to getProduct. */
getProductSettings()883     public UnaryCallSettings.Builder<GetProductRequest, Product> getProductSettings() {
884       return getProductSettings;
885     }
886 
887     /** Returns the builder for the settings used for calls to listProducts. */
888     public PagedCallSettings.Builder<
889             ListProductsRequest, ListProductsResponse, ListProductsPagedResponse>
listProductsSettings()890         listProductsSettings() {
891       return listProductsSettings;
892     }
893 
894     /** Returns the builder for the settings used for calls to updateProduct. */
updateProductSettings()895     public UnaryCallSettings.Builder<UpdateProductRequest, Product> updateProductSettings() {
896       return updateProductSettings;
897     }
898 
899     /** Returns the builder for the settings used for calls to deleteProduct. */
deleteProductSettings()900     public UnaryCallSettings.Builder<DeleteProductRequest, Empty> deleteProductSettings() {
901       return deleteProductSettings;
902     }
903 
904     /** Returns the builder for the settings used for calls to importProducts. */
importProductsSettings()905     public UnaryCallSettings.Builder<ImportProductsRequest, Operation> importProductsSettings() {
906       return importProductsSettings;
907     }
908 
909     /** Returns the builder for the settings used for calls to importProducts. */
910     @BetaApi(
911         "The surface for use by generated code is not stable yet and may change in the future.")
912     public OperationCallSettings.Builder<
913             ImportProductsRequest, ImportProductsResponse, ImportMetadata>
importProductsOperationSettings()914         importProductsOperationSettings() {
915       return importProductsOperationSettings;
916     }
917 
918     /** Returns the builder for the settings used for calls to setInventory. */
setInventorySettings()919     public UnaryCallSettings.Builder<SetInventoryRequest, Operation> setInventorySettings() {
920       return setInventorySettings;
921     }
922 
923     /** Returns the builder for the settings used for calls to setInventory. */
924     @BetaApi(
925         "The surface for use by generated code is not stable yet and may change in the future.")
926     public OperationCallSettings.Builder<
927             SetInventoryRequest, SetInventoryResponse, SetInventoryMetadata>
setInventoryOperationSettings()928         setInventoryOperationSettings() {
929       return setInventoryOperationSettings;
930     }
931 
932     /** Returns the builder for the settings used for calls to addFulfillmentPlaces. */
933     public UnaryCallSettings.Builder<AddFulfillmentPlacesRequest, Operation>
addFulfillmentPlacesSettings()934         addFulfillmentPlacesSettings() {
935       return addFulfillmentPlacesSettings;
936     }
937 
938     /** Returns the builder for the settings used for calls to addFulfillmentPlaces. */
939     @BetaApi(
940         "The surface for use by generated code is not stable yet and may change in the future.")
941     public OperationCallSettings.Builder<
942             AddFulfillmentPlacesRequest, AddFulfillmentPlacesResponse, AddFulfillmentPlacesMetadata>
addFulfillmentPlacesOperationSettings()943         addFulfillmentPlacesOperationSettings() {
944       return addFulfillmentPlacesOperationSettings;
945     }
946 
947     /** Returns the builder for the settings used for calls to removeFulfillmentPlaces. */
948     public UnaryCallSettings.Builder<RemoveFulfillmentPlacesRequest, Operation>
removeFulfillmentPlacesSettings()949         removeFulfillmentPlacesSettings() {
950       return removeFulfillmentPlacesSettings;
951     }
952 
953     /** Returns the builder for the settings used for calls to removeFulfillmentPlaces. */
954     @BetaApi(
955         "The surface for use by generated code is not stable yet and may change in the future.")
956     public OperationCallSettings.Builder<
957             RemoveFulfillmentPlacesRequest,
958             RemoveFulfillmentPlacesResponse,
959             RemoveFulfillmentPlacesMetadata>
removeFulfillmentPlacesOperationSettings()960         removeFulfillmentPlacesOperationSettings() {
961       return removeFulfillmentPlacesOperationSettings;
962     }
963 
964     /** Returns the builder for the settings used for calls to addLocalInventories. */
965     public UnaryCallSettings.Builder<AddLocalInventoriesRequest, Operation>
addLocalInventoriesSettings()966         addLocalInventoriesSettings() {
967       return addLocalInventoriesSettings;
968     }
969 
970     /** Returns the builder for the settings used for calls to addLocalInventories. */
971     @BetaApi(
972         "The surface for use by generated code is not stable yet and may change in the future.")
973     public OperationCallSettings.Builder<
974             AddLocalInventoriesRequest, AddLocalInventoriesResponse, AddLocalInventoriesMetadata>
addLocalInventoriesOperationSettings()975         addLocalInventoriesOperationSettings() {
976       return addLocalInventoriesOperationSettings;
977     }
978 
979     /** Returns the builder for the settings used for calls to removeLocalInventories. */
980     public UnaryCallSettings.Builder<RemoveLocalInventoriesRequest, Operation>
removeLocalInventoriesSettings()981         removeLocalInventoriesSettings() {
982       return removeLocalInventoriesSettings;
983     }
984 
985     /** Returns the builder for the settings used for calls to removeLocalInventories. */
986     @BetaApi(
987         "The surface for use by generated code is not stable yet and may change in the future.")
988     public OperationCallSettings.Builder<
989             RemoveLocalInventoriesRequest,
990             RemoveLocalInventoriesResponse,
991             RemoveLocalInventoriesMetadata>
removeLocalInventoriesOperationSettings()992         removeLocalInventoriesOperationSettings() {
993       return removeLocalInventoriesOperationSettings;
994     }
995 
996     @Override
build()997     public ProductServiceStubSettings build() throws IOException {
998       return new ProductServiceStubSettings(this);
999     }
1000   }
1001 }
1002