• 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.compute.v1.stub;
18 
19 import static com.google.cloud.compute.v1.RegionUrlMapsClient.ListPagedResponse;
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.httpjson.GaxHttpJsonProperties;
28 import com.google.api.gax.httpjson.HttpJsonTransportChannel;
29 import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
30 import com.google.api.gax.httpjson.ProtoOperationTransformers;
31 import com.google.api.gax.longrunning.OperationSnapshot;
32 import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
33 import com.google.api.gax.retrying.RetrySettings;
34 import com.google.api.gax.rpc.ApiCallContext;
35 import com.google.api.gax.rpc.ApiClientHeaderProvider;
36 import com.google.api.gax.rpc.ClientContext;
37 import com.google.api.gax.rpc.OperationCallSettings;
38 import com.google.api.gax.rpc.PageContext;
39 import com.google.api.gax.rpc.PagedCallSettings;
40 import com.google.api.gax.rpc.PagedListDescriptor;
41 import com.google.api.gax.rpc.PagedListResponseFactory;
42 import com.google.api.gax.rpc.StatusCode;
43 import com.google.api.gax.rpc.StubSettings;
44 import com.google.api.gax.rpc.TransportChannelProvider;
45 import com.google.api.gax.rpc.UnaryCallSettings;
46 import com.google.api.gax.rpc.UnaryCallable;
47 import com.google.cloud.compute.v1.DeleteRegionUrlMapRequest;
48 import com.google.cloud.compute.v1.GetRegionUrlMapRequest;
49 import com.google.cloud.compute.v1.InsertRegionUrlMapRequest;
50 import com.google.cloud.compute.v1.ListRegionUrlMapsRequest;
51 import com.google.cloud.compute.v1.Operation;
52 import com.google.cloud.compute.v1.PatchRegionUrlMapRequest;
53 import com.google.cloud.compute.v1.UpdateRegionUrlMapRequest;
54 import com.google.cloud.compute.v1.UrlMap;
55 import com.google.cloud.compute.v1.UrlMapList;
56 import com.google.cloud.compute.v1.UrlMapsValidateResponse;
57 import com.google.cloud.compute.v1.ValidateRegionUrlMapRequest;
58 import com.google.common.collect.ImmutableList;
59 import com.google.common.collect.ImmutableMap;
60 import com.google.common.collect.ImmutableSet;
61 import com.google.common.collect.Lists;
62 import java.io.IOException;
63 import java.util.List;
64 import javax.annotation.Generated;
65 import org.threeten.bp.Duration;
66 
67 // AUTO-GENERATED DOCUMENTATION AND CLASS.
68 /**
69  * Settings class to configure an instance of {@link RegionUrlMapsStub}.
70  *
71  * <p>The default instance has everything set to sensible defaults:
72  *
73  * <ul>
74  *   <li>The default service address (compute.googleapis.com) and default port (443) are used.
75  *   <li>Credentials are acquired automatically through Application Default Credentials.
76  *   <li>Retries are configured for idempotent methods but not for non-idempotent methods.
77  * </ul>
78  *
79  * <p>The builder of this class is recursive, so contained classes are themselves builders. When
80  * build() is called, the tree of builders is called to create the complete settings object.
81  *
82  * <p>For example, to set the total timeout of get to 30 seconds:
83  *
84  * <pre>{@code
85  * // This snippet has been automatically generated and should be regarded as a code template only.
86  * // It will require modifications to work:
87  * // - It may require correct/in-range values for request initialization.
88  * // - It may require specifying regional endpoints when creating the service client as shown in
89  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
90  * RegionUrlMapsStubSettings.Builder regionUrlMapsSettingsBuilder =
91  *     RegionUrlMapsStubSettings.newBuilder();
92  * regionUrlMapsSettingsBuilder
93  *     .getSettings()
94  *     .setRetrySettings(
95  *         regionUrlMapsSettingsBuilder
96  *             .getSettings()
97  *             .getRetrySettings()
98  *             .toBuilder()
99  *             .setTotalTimeout(Duration.ofSeconds(30))
100  *             .build());
101  * RegionUrlMapsStubSettings regionUrlMapsSettings = regionUrlMapsSettingsBuilder.build();
102  * }</pre>
103  */
104 @Generated("by gapic-generator-java")
105 public class RegionUrlMapsStubSettings extends StubSettings<RegionUrlMapsStubSettings> {
106   /** The default scopes of the service. */
107   private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES =
108       ImmutableList.<String>builder()
109           .add("https://www.googleapis.com/auth/compute")
110           .add("https://www.googleapis.com/auth/cloud-platform")
111           .build();
112 
113   private final UnaryCallSettings<DeleteRegionUrlMapRequest, Operation> deleteSettings;
114   private final OperationCallSettings<DeleteRegionUrlMapRequest, Operation, Operation>
115       deleteOperationSettings;
116   private final UnaryCallSettings<GetRegionUrlMapRequest, UrlMap> getSettings;
117   private final UnaryCallSettings<InsertRegionUrlMapRequest, Operation> insertSettings;
118   private final OperationCallSettings<InsertRegionUrlMapRequest, Operation, Operation>
119       insertOperationSettings;
120   private final PagedCallSettings<ListRegionUrlMapsRequest, UrlMapList, ListPagedResponse>
121       listSettings;
122   private final UnaryCallSettings<PatchRegionUrlMapRequest, Operation> patchSettings;
123   private final OperationCallSettings<PatchRegionUrlMapRequest, Operation, Operation>
124       patchOperationSettings;
125   private final UnaryCallSettings<UpdateRegionUrlMapRequest, Operation> updateSettings;
126   private final OperationCallSettings<UpdateRegionUrlMapRequest, Operation, Operation>
127       updateOperationSettings;
128   private final UnaryCallSettings<ValidateRegionUrlMapRequest, UrlMapsValidateResponse>
129       validateSettings;
130 
131   private static final PagedListDescriptor<ListRegionUrlMapsRequest, UrlMapList, UrlMap>
132       LIST_PAGE_STR_DESC =
133           new PagedListDescriptor<ListRegionUrlMapsRequest, UrlMapList, UrlMap>() {
134             @Override
135             public String emptyToken() {
136               return "";
137             }
138 
139             @Override
140             public ListRegionUrlMapsRequest injectToken(
141                 ListRegionUrlMapsRequest payload, String token) {
142               return ListRegionUrlMapsRequest.newBuilder(payload).setPageToken(token).build();
143             }
144 
145             @Override
146             public ListRegionUrlMapsRequest injectPageSize(
147                 ListRegionUrlMapsRequest payload, int pageSize) {
148               return ListRegionUrlMapsRequest.newBuilder(payload).setMaxResults(pageSize).build();
149             }
150 
151             @Override
152             public Integer extractPageSize(ListRegionUrlMapsRequest payload) {
153               return payload.getMaxResults();
154             }
155 
156             @Override
157             public String extractNextToken(UrlMapList payload) {
158               return payload.getNextPageToken();
159             }
160 
161             @Override
162             public Iterable<UrlMap> extractResources(UrlMapList payload) {
163               return payload.getItemsList() == null
164                   ? ImmutableList.<UrlMap>of()
165                   : payload.getItemsList();
166             }
167           };
168 
169   private static final PagedListResponseFactory<
170           ListRegionUrlMapsRequest, UrlMapList, ListPagedResponse>
171       LIST_PAGE_STR_FACT =
172           new PagedListResponseFactory<ListRegionUrlMapsRequest, UrlMapList, ListPagedResponse>() {
173             @Override
174             public ApiFuture<ListPagedResponse> getFuturePagedResponse(
175                 UnaryCallable<ListRegionUrlMapsRequest, UrlMapList> callable,
176                 ListRegionUrlMapsRequest request,
177                 ApiCallContext context,
178                 ApiFuture<UrlMapList> futureResponse) {
179               PageContext<ListRegionUrlMapsRequest, UrlMapList, UrlMap> pageContext =
180                   PageContext.create(callable, LIST_PAGE_STR_DESC, request, context);
181               return ListPagedResponse.createAsync(pageContext, futureResponse);
182             }
183           };
184 
185   /** Returns the object with the settings used for calls to delete. */
deleteSettings()186   public UnaryCallSettings<DeleteRegionUrlMapRequest, Operation> deleteSettings() {
187     return deleteSettings;
188   }
189 
190   /** Returns the object with the settings used for calls to delete. */
191   public OperationCallSettings<DeleteRegionUrlMapRequest, Operation, Operation>
deleteOperationSettings()192       deleteOperationSettings() {
193     return deleteOperationSettings;
194   }
195 
196   /** Returns the object with the settings used for calls to get. */
getSettings()197   public UnaryCallSettings<GetRegionUrlMapRequest, UrlMap> getSettings() {
198     return getSettings;
199   }
200 
201   /** Returns the object with the settings used for calls to insert. */
insertSettings()202   public UnaryCallSettings<InsertRegionUrlMapRequest, Operation> insertSettings() {
203     return insertSettings;
204   }
205 
206   /** Returns the object with the settings used for calls to insert. */
207   public OperationCallSettings<InsertRegionUrlMapRequest, Operation, Operation>
insertOperationSettings()208       insertOperationSettings() {
209     return insertOperationSettings;
210   }
211 
212   /** Returns the object with the settings used for calls to list. */
listSettings()213   public PagedCallSettings<ListRegionUrlMapsRequest, UrlMapList, ListPagedResponse> listSettings() {
214     return listSettings;
215   }
216 
217   /** Returns the object with the settings used for calls to patch. */
patchSettings()218   public UnaryCallSettings<PatchRegionUrlMapRequest, Operation> patchSettings() {
219     return patchSettings;
220   }
221 
222   /** Returns the object with the settings used for calls to patch. */
223   public OperationCallSettings<PatchRegionUrlMapRequest, Operation, Operation>
patchOperationSettings()224       patchOperationSettings() {
225     return patchOperationSettings;
226   }
227 
228   /** Returns the object with the settings used for calls to update. */
updateSettings()229   public UnaryCallSettings<UpdateRegionUrlMapRequest, Operation> updateSettings() {
230     return updateSettings;
231   }
232 
233   /** Returns the object with the settings used for calls to update. */
234   public OperationCallSettings<UpdateRegionUrlMapRequest, Operation, Operation>
updateOperationSettings()235       updateOperationSettings() {
236     return updateOperationSettings;
237   }
238 
239   /** Returns the object with the settings used for calls to validate. */
240   public UnaryCallSettings<ValidateRegionUrlMapRequest, UrlMapsValidateResponse>
validateSettings()241       validateSettings() {
242     return validateSettings;
243   }
244 
createStub()245   public RegionUrlMapsStub createStub() throws IOException {
246     if (getTransportChannelProvider()
247         .getTransportName()
248         .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
249       return HttpJsonRegionUrlMapsStub.create(this);
250     }
251     throw new UnsupportedOperationException(
252         String.format(
253             "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
254   }
255 
256   /** Returns a builder for the default ExecutorProvider for this service. */
defaultExecutorProviderBuilder()257   public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
258     return InstantiatingExecutorProvider.newBuilder();
259   }
260 
261   /** Returns the default service endpoint. */
getDefaultEndpoint()262   public static String getDefaultEndpoint() {
263     return "compute.googleapis.com:443";
264   }
265 
266   /** Returns the default mTLS service endpoint. */
getDefaultMtlsEndpoint()267   public static String getDefaultMtlsEndpoint() {
268     return "compute.mtls.googleapis.com:443";
269   }
270 
271   /** Returns the default service scopes. */
getDefaultServiceScopes()272   public static List<String> getDefaultServiceScopes() {
273     return DEFAULT_SERVICE_SCOPES;
274   }
275 
276   /** Returns a builder for the default credentials for this service. */
defaultCredentialsProviderBuilder()277   public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
278     return GoogleCredentialsProvider.newBuilder()
279         .setScopesToApply(DEFAULT_SERVICE_SCOPES)
280         .setUseJwtAccessWithScope(true);
281   }
282 
283   /** Returns a builder for the default ChannelProvider for this service. */
284   public static InstantiatingHttpJsonChannelProvider.Builder
defaultHttpJsonTransportProviderBuilder()285       defaultHttpJsonTransportProviderBuilder() {
286     return InstantiatingHttpJsonChannelProvider.newBuilder();
287   }
288 
defaultTransportChannelProvider()289   public static TransportChannelProvider defaultTransportChannelProvider() {
290     return defaultHttpJsonTransportProviderBuilder().build();
291   }
292 
293   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultApiClientHeaderProviderBuilder()294   public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
295     return ApiClientHeaderProvider.newBuilder()
296         .setGeneratedLibToken(
297             "gapic", GaxProperties.getLibraryVersion(RegionUrlMapsStubSettings.class))
298         .setTransportToken(
299             GaxHttpJsonProperties.getHttpJsonTokenName(),
300             GaxHttpJsonProperties.getHttpJsonVersion());
301   }
302 
303   /** Returns a new builder for this class. */
newBuilder()304   public static Builder newBuilder() {
305     return Builder.createDefault();
306   }
307 
308   /** Returns a new builder for this class. */
newBuilder(ClientContext clientContext)309   public static Builder newBuilder(ClientContext clientContext) {
310     return new Builder(clientContext);
311   }
312 
313   /** Returns a builder containing all the values of this settings class. */
toBuilder()314   public Builder toBuilder() {
315     return new Builder(this);
316   }
317 
RegionUrlMapsStubSettings(Builder settingsBuilder)318   protected RegionUrlMapsStubSettings(Builder settingsBuilder) throws IOException {
319     super(settingsBuilder);
320 
321     deleteSettings = settingsBuilder.deleteSettings().build();
322     deleteOperationSettings = settingsBuilder.deleteOperationSettings().build();
323     getSettings = settingsBuilder.getSettings().build();
324     insertSettings = settingsBuilder.insertSettings().build();
325     insertOperationSettings = settingsBuilder.insertOperationSettings().build();
326     listSettings = settingsBuilder.listSettings().build();
327     patchSettings = settingsBuilder.patchSettings().build();
328     patchOperationSettings = settingsBuilder.patchOperationSettings().build();
329     updateSettings = settingsBuilder.updateSettings().build();
330     updateOperationSettings = settingsBuilder.updateOperationSettings().build();
331     validateSettings = settingsBuilder.validateSettings().build();
332   }
333 
334   /** Builder for RegionUrlMapsStubSettings. */
335   public static class Builder extends StubSettings.Builder<RegionUrlMapsStubSettings, Builder> {
336     private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;
337     private final UnaryCallSettings.Builder<DeleteRegionUrlMapRequest, Operation> deleteSettings;
338     private final OperationCallSettings.Builder<DeleteRegionUrlMapRequest, Operation, Operation>
339         deleteOperationSettings;
340     private final UnaryCallSettings.Builder<GetRegionUrlMapRequest, UrlMap> getSettings;
341     private final UnaryCallSettings.Builder<InsertRegionUrlMapRequest, Operation> insertSettings;
342     private final OperationCallSettings.Builder<InsertRegionUrlMapRequest, Operation, Operation>
343         insertOperationSettings;
344     private final PagedCallSettings.Builder<ListRegionUrlMapsRequest, UrlMapList, ListPagedResponse>
345         listSettings;
346     private final UnaryCallSettings.Builder<PatchRegionUrlMapRequest, Operation> patchSettings;
347     private final OperationCallSettings.Builder<PatchRegionUrlMapRequest, Operation, Operation>
348         patchOperationSettings;
349     private final UnaryCallSettings.Builder<UpdateRegionUrlMapRequest, Operation> updateSettings;
350     private final OperationCallSettings.Builder<UpdateRegionUrlMapRequest, Operation, Operation>
351         updateOperationSettings;
352     private final UnaryCallSettings.Builder<ValidateRegionUrlMapRequest, UrlMapsValidateResponse>
353         validateSettings;
354     private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>>
355         RETRYABLE_CODE_DEFINITIONS;
356 
357     static {
358       ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions =
359           ImmutableMap.builder();
360       definitions.put(
361           "no_retry_1_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList()));
362       definitions.put(
363           "retry_policy_0_codes",
364           ImmutableSet.copyOf(
365               Lists.<StatusCode.Code>newArrayList(
366                   StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE)));
367       RETRYABLE_CODE_DEFINITIONS = definitions.build();
368     }
369 
370     private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS;
371 
372     static {
373       ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder();
374       RetrySettings settings = null;
375       settings =
376           RetrySettings.newBuilder()
377               .setInitialRpcTimeout(Duration.ofMillis(600000L))
378               .setRpcTimeoutMultiplier(1.0)
379               .setMaxRpcTimeout(Duration.ofMillis(600000L))
380               .setTotalTimeout(Duration.ofMillis(600000L))
381               .build();
382       definitions.put("no_retry_1_params", settings);
383       settings =
384           RetrySettings.newBuilder()
385               .setInitialRetryDelay(Duration.ofMillis(100L))
386               .setRetryDelayMultiplier(1.3)
387               .setMaxRetryDelay(Duration.ofMillis(60000L))
388               .setInitialRpcTimeout(Duration.ofMillis(600000L))
389               .setRpcTimeoutMultiplier(1.0)
390               .setMaxRpcTimeout(Duration.ofMillis(600000L))
391               .setTotalTimeout(Duration.ofMillis(600000L))
392               .build();
393       definitions.put("retry_policy_0_params", settings);
394       RETRY_PARAM_DEFINITIONS = definitions.build();
395     }
396 
Builder()397     protected Builder() {
398       this(((ClientContext) null));
399     }
400 
Builder(ClientContext clientContext)401     protected Builder(ClientContext clientContext) {
402       super(clientContext);
403 
404       deleteSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
405       deleteOperationSettings = OperationCallSettings.newBuilder();
406       getSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
407       insertSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
408       insertOperationSettings = OperationCallSettings.newBuilder();
409       listSettings = PagedCallSettings.newBuilder(LIST_PAGE_STR_FACT);
410       patchSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
411       patchOperationSettings = OperationCallSettings.newBuilder();
412       updateSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
413       updateOperationSettings = OperationCallSettings.newBuilder();
414       validateSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
415 
416       unaryMethodSettingsBuilders =
417           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
418               deleteSettings,
419               getSettings,
420               insertSettings,
421               listSettings,
422               patchSettings,
423               updateSettings,
424               validateSettings);
425       initDefaults(this);
426     }
427 
Builder(RegionUrlMapsStubSettings settings)428     protected Builder(RegionUrlMapsStubSettings settings) {
429       super(settings);
430 
431       deleteSettings = settings.deleteSettings.toBuilder();
432       deleteOperationSettings = settings.deleteOperationSettings.toBuilder();
433       getSettings = settings.getSettings.toBuilder();
434       insertSettings = settings.insertSettings.toBuilder();
435       insertOperationSettings = settings.insertOperationSettings.toBuilder();
436       listSettings = settings.listSettings.toBuilder();
437       patchSettings = settings.patchSettings.toBuilder();
438       patchOperationSettings = settings.patchOperationSettings.toBuilder();
439       updateSettings = settings.updateSettings.toBuilder();
440       updateOperationSettings = settings.updateOperationSettings.toBuilder();
441       validateSettings = settings.validateSettings.toBuilder();
442 
443       unaryMethodSettingsBuilders =
444           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
445               deleteSettings,
446               getSettings,
447               insertSettings,
448               listSettings,
449               patchSettings,
450               updateSettings,
451               validateSettings);
452     }
453 
createDefault()454     private static Builder createDefault() {
455       Builder builder = new Builder(((ClientContext) null));
456 
457       builder.setTransportChannelProvider(defaultTransportChannelProvider());
458       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
459       builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
460       builder.setEndpoint(getDefaultEndpoint());
461       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
462       builder.setSwitchToMtlsEndpointAllowed(true);
463 
464       return initDefaults(builder);
465     }
466 
initDefaults(Builder builder)467     private static Builder initDefaults(Builder builder) {
468       builder
469           .deleteSettings()
470           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
471           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
472 
473       builder
474           .getSettings()
475           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
476           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
477 
478       builder
479           .insertSettings()
480           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
481           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
482 
483       builder
484           .listSettings()
485           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
486           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
487 
488       builder
489           .patchSettings()
490           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
491           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
492 
493       builder
494           .updateSettings()
495           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
496           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
497 
498       builder
499           .validateSettings()
500           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
501           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
502 
503       builder
504           .deleteOperationSettings()
505           .setInitialCallSettings(
506               UnaryCallSettings
507                   .<DeleteRegionUrlMapRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
508                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
509                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
510                   .build())
511           .setResponseTransformer(
512               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
513           .setMetadataTransformer(
514               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
515           .setPollingAlgorithm(
516               OperationTimedPollAlgorithm.create(
517                   RetrySettings.newBuilder()
518                       .setInitialRetryDelay(Duration.ofMillis(500L))
519                       .setRetryDelayMultiplier(1.5)
520                       .setMaxRetryDelay(Duration.ofMillis(20000L))
521                       .setInitialRpcTimeout(Duration.ZERO)
522                       .setRpcTimeoutMultiplier(1.0)
523                       .setMaxRpcTimeout(Duration.ZERO)
524                       .setTotalTimeout(Duration.ofMillis(600000L))
525                       .build()));
526 
527       builder
528           .insertOperationSettings()
529           .setInitialCallSettings(
530               UnaryCallSettings
531                   .<InsertRegionUrlMapRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
532                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
533                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
534                   .build())
535           .setResponseTransformer(
536               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
537           .setMetadataTransformer(
538               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
539           .setPollingAlgorithm(
540               OperationTimedPollAlgorithm.create(
541                   RetrySettings.newBuilder()
542                       .setInitialRetryDelay(Duration.ofMillis(500L))
543                       .setRetryDelayMultiplier(1.5)
544                       .setMaxRetryDelay(Duration.ofMillis(20000L))
545                       .setInitialRpcTimeout(Duration.ZERO)
546                       .setRpcTimeoutMultiplier(1.0)
547                       .setMaxRpcTimeout(Duration.ZERO)
548                       .setTotalTimeout(Duration.ofMillis(600000L))
549                       .build()));
550 
551       builder
552           .patchOperationSettings()
553           .setInitialCallSettings(
554               UnaryCallSettings
555                   .<PatchRegionUrlMapRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
556                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
557                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
558                   .build())
559           .setResponseTransformer(
560               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
561           .setMetadataTransformer(
562               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
563           .setPollingAlgorithm(
564               OperationTimedPollAlgorithm.create(
565                   RetrySettings.newBuilder()
566                       .setInitialRetryDelay(Duration.ofMillis(500L))
567                       .setRetryDelayMultiplier(1.5)
568                       .setMaxRetryDelay(Duration.ofMillis(20000L))
569                       .setInitialRpcTimeout(Duration.ZERO)
570                       .setRpcTimeoutMultiplier(1.0)
571                       .setMaxRpcTimeout(Duration.ZERO)
572                       .setTotalTimeout(Duration.ofMillis(600000L))
573                       .build()));
574 
575       builder
576           .updateOperationSettings()
577           .setInitialCallSettings(
578               UnaryCallSettings
579                   .<UpdateRegionUrlMapRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
580                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
581                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
582                   .build())
583           .setResponseTransformer(
584               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
585           .setMetadataTransformer(
586               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
587           .setPollingAlgorithm(
588               OperationTimedPollAlgorithm.create(
589                   RetrySettings.newBuilder()
590                       .setInitialRetryDelay(Duration.ofMillis(500L))
591                       .setRetryDelayMultiplier(1.5)
592                       .setMaxRetryDelay(Duration.ofMillis(20000L))
593                       .setInitialRpcTimeout(Duration.ZERO)
594                       .setRpcTimeoutMultiplier(1.0)
595                       .setMaxRpcTimeout(Duration.ZERO)
596                       .setTotalTimeout(Duration.ofMillis(600000L))
597                       .build()));
598 
599       return builder;
600     }
601 
602     /**
603      * Applies the given settings updater function to all of the unary API methods in this service.
604      *
605      * <p>Note: This method does not support applying settings to streaming methods.
606      */
applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)607     public Builder applyToAllUnaryMethods(
608         ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) {
609       super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
610       return this;
611     }
612 
unaryMethodSettingsBuilders()613     public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() {
614       return unaryMethodSettingsBuilders;
615     }
616 
617     /** Returns the builder for the settings used for calls to delete. */
deleteSettings()618     public UnaryCallSettings.Builder<DeleteRegionUrlMapRequest, Operation> deleteSettings() {
619       return deleteSettings;
620     }
621 
622     /** Returns the builder for the settings used for calls to delete. */
623     @BetaApi(
624         "The surface for use by generated code is not stable yet and may change in the future.")
625     public OperationCallSettings.Builder<DeleteRegionUrlMapRequest, Operation, Operation>
deleteOperationSettings()626         deleteOperationSettings() {
627       return deleteOperationSettings;
628     }
629 
630     /** Returns the builder for the settings used for calls to get. */
getSettings()631     public UnaryCallSettings.Builder<GetRegionUrlMapRequest, UrlMap> getSettings() {
632       return getSettings;
633     }
634 
635     /** Returns the builder for the settings used for calls to insert. */
insertSettings()636     public UnaryCallSettings.Builder<InsertRegionUrlMapRequest, Operation> insertSettings() {
637       return insertSettings;
638     }
639 
640     /** Returns the builder for the settings used for calls to insert. */
641     @BetaApi(
642         "The surface for use by generated code is not stable yet and may change in the future.")
643     public OperationCallSettings.Builder<InsertRegionUrlMapRequest, Operation, Operation>
insertOperationSettings()644         insertOperationSettings() {
645       return insertOperationSettings;
646     }
647 
648     /** Returns the builder for the settings used for calls to list. */
649     public PagedCallSettings.Builder<ListRegionUrlMapsRequest, UrlMapList, ListPagedResponse>
listSettings()650         listSettings() {
651       return listSettings;
652     }
653 
654     /** Returns the builder for the settings used for calls to patch. */
patchSettings()655     public UnaryCallSettings.Builder<PatchRegionUrlMapRequest, Operation> patchSettings() {
656       return patchSettings;
657     }
658 
659     /** Returns the builder for the settings used for calls to patch. */
660     @BetaApi(
661         "The surface for use by generated code is not stable yet and may change in the future.")
662     public OperationCallSettings.Builder<PatchRegionUrlMapRequest, Operation, Operation>
patchOperationSettings()663         patchOperationSettings() {
664       return patchOperationSettings;
665     }
666 
667     /** Returns the builder for the settings used for calls to update. */
updateSettings()668     public UnaryCallSettings.Builder<UpdateRegionUrlMapRequest, Operation> updateSettings() {
669       return updateSettings;
670     }
671 
672     /** Returns the builder for the settings used for calls to update. */
673     @BetaApi(
674         "The surface for use by generated code is not stable yet and may change in the future.")
675     public OperationCallSettings.Builder<UpdateRegionUrlMapRequest, Operation, Operation>
updateOperationSettings()676         updateOperationSettings() {
677       return updateOperationSettings;
678     }
679 
680     /** Returns the builder for the settings used for calls to validate. */
681     public UnaryCallSettings.Builder<ValidateRegionUrlMapRequest, UrlMapsValidateResponse>
validateSettings()682         validateSettings() {
683       return validateSettings;
684     }
685 
686     @Override
build()687     public RegionUrlMapsStubSettings build() throws IOException {
688       return new RegionUrlMapsStubSettings(this);
689     }
690   }
691 }
692