• 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.dialogflow.v2.stub;
18 
19 import static com.google.cloud.dialogflow.v2.VersionsClient.ListLocationsPagedResponse;
20 import static com.google.cloud.dialogflow.v2.VersionsClient.ListVersionsPagedResponse;
21 
22 import com.google.api.core.ApiFunction;
23 import com.google.api.core.ApiFuture;
24 import com.google.api.core.BetaApi;
25 import com.google.api.gax.core.GaxProperties;
26 import com.google.api.gax.core.GoogleCredentialsProvider;
27 import com.google.api.gax.core.InstantiatingExecutorProvider;
28 import com.google.api.gax.grpc.GaxGrpcProperties;
29 import com.google.api.gax.grpc.GrpcTransportChannel;
30 import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
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.retrying.RetrySettings;
35 import com.google.api.gax.rpc.ApiCallContext;
36 import com.google.api.gax.rpc.ApiClientHeaderProvider;
37 import com.google.api.gax.rpc.ClientContext;
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.dialogflow.v2.CreateVersionRequest;
48 import com.google.cloud.dialogflow.v2.DeleteVersionRequest;
49 import com.google.cloud.dialogflow.v2.GetVersionRequest;
50 import com.google.cloud.dialogflow.v2.ListVersionsRequest;
51 import com.google.cloud.dialogflow.v2.ListVersionsResponse;
52 import com.google.cloud.dialogflow.v2.UpdateVersionRequest;
53 import com.google.cloud.dialogflow.v2.Version;
54 import com.google.cloud.location.GetLocationRequest;
55 import com.google.cloud.location.ListLocationsRequest;
56 import com.google.cloud.location.ListLocationsResponse;
57 import com.google.cloud.location.Location;
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 com.google.protobuf.Empty;
63 import java.io.IOException;
64 import java.util.List;
65 import javax.annotation.Generated;
66 import org.threeten.bp.Duration;
67 
68 // AUTO-GENERATED DOCUMENTATION AND CLASS.
69 /**
70  * Settings class to configure an instance of {@link VersionsStub}.
71  *
72  * <p>The default instance has everything set to sensible defaults:
73  *
74  * <ul>
75  *   <li>The default service address (dialogflow.googleapis.com) and default port (443) are used.
76  *   <li>Credentials are acquired automatically through Application Default Credentials.
77  *   <li>Retries are configured for idempotent methods but not for non-idempotent methods.
78  * </ul>
79  *
80  * <p>The builder of this class is recursive, so contained classes are themselves builders. When
81  * build() is called, the tree of builders is called to create the complete settings object.
82  *
83  * <p>For example, to set the total timeout of getVersion to 30 seconds:
84  *
85  * <pre>{@code
86  * // This snippet has been automatically generated and should be regarded as a code template only.
87  * // It will require modifications to work:
88  * // - It may require correct/in-range values for request initialization.
89  * // - It may require specifying regional endpoints when creating the service client as shown in
90  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
91  * VersionsStubSettings.Builder versionsSettingsBuilder = VersionsStubSettings.newBuilder();
92  * versionsSettingsBuilder
93  *     .getVersionSettings()
94  *     .setRetrySettings(
95  *         versionsSettingsBuilder
96  *             .getVersionSettings()
97  *             .getRetrySettings()
98  *             .toBuilder()
99  *             .setTotalTimeout(Duration.ofSeconds(30))
100  *             .build());
101  * VersionsStubSettings versionsSettings = versionsSettingsBuilder.build();
102  * }</pre>
103  */
104 @Generated("by gapic-generator-java")
105 public class VersionsStubSettings extends StubSettings<VersionsStubSettings> {
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/cloud-platform")
110           .add("https://www.googleapis.com/auth/dialogflow")
111           .build();
112 
113   private final PagedCallSettings<
114           ListVersionsRequest, ListVersionsResponse, ListVersionsPagedResponse>
115       listVersionsSettings;
116   private final UnaryCallSettings<GetVersionRequest, Version> getVersionSettings;
117   private final UnaryCallSettings<CreateVersionRequest, Version> createVersionSettings;
118   private final UnaryCallSettings<UpdateVersionRequest, Version> updateVersionSettings;
119   private final UnaryCallSettings<DeleteVersionRequest, Empty> deleteVersionSettings;
120   private final PagedCallSettings<
121           ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
122       listLocationsSettings;
123   private final UnaryCallSettings<GetLocationRequest, Location> getLocationSettings;
124 
125   private static final PagedListDescriptor<ListVersionsRequest, ListVersionsResponse, Version>
126       LIST_VERSIONS_PAGE_STR_DESC =
127           new PagedListDescriptor<ListVersionsRequest, ListVersionsResponse, Version>() {
128             @Override
129             public String emptyToken() {
130               return "";
131             }
132 
133             @Override
134             public ListVersionsRequest injectToken(ListVersionsRequest payload, String token) {
135               return ListVersionsRequest.newBuilder(payload).setPageToken(token).build();
136             }
137 
138             @Override
139             public ListVersionsRequest injectPageSize(ListVersionsRequest payload, int pageSize) {
140               return ListVersionsRequest.newBuilder(payload).setPageSize(pageSize).build();
141             }
142 
143             @Override
144             public Integer extractPageSize(ListVersionsRequest payload) {
145               return payload.getPageSize();
146             }
147 
148             @Override
149             public String extractNextToken(ListVersionsResponse payload) {
150               return payload.getNextPageToken();
151             }
152 
153             @Override
154             public Iterable<Version> extractResources(ListVersionsResponse payload) {
155               return payload.getVersionsList() == null
156                   ? ImmutableList.<Version>of()
157                   : payload.getVersionsList();
158             }
159           };
160 
161   private static final PagedListDescriptor<ListLocationsRequest, ListLocationsResponse, Location>
162       LIST_LOCATIONS_PAGE_STR_DESC =
163           new PagedListDescriptor<ListLocationsRequest, ListLocationsResponse, Location>() {
164             @Override
165             public String emptyToken() {
166               return "";
167             }
168 
169             @Override
170             public ListLocationsRequest injectToken(ListLocationsRequest payload, String token) {
171               return ListLocationsRequest.newBuilder(payload).setPageToken(token).build();
172             }
173 
174             @Override
175             public ListLocationsRequest injectPageSize(ListLocationsRequest payload, int pageSize) {
176               return ListLocationsRequest.newBuilder(payload).setPageSize(pageSize).build();
177             }
178 
179             @Override
180             public Integer extractPageSize(ListLocationsRequest payload) {
181               return payload.getPageSize();
182             }
183 
184             @Override
185             public String extractNextToken(ListLocationsResponse payload) {
186               return payload.getNextPageToken();
187             }
188 
189             @Override
190             public Iterable<Location> extractResources(ListLocationsResponse payload) {
191               return payload.getLocationsList() == null
192                   ? ImmutableList.<Location>of()
193                   : payload.getLocationsList();
194             }
195           };
196 
197   private static final PagedListResponseFactory<
198           ListVersionsRequest, ListVersionsResponse, ListVersionsPagedResponse>
199       LIST_VERSIONS_PAGE_STR_FACT =
200           new PagedListResponseFactory<
201               ListVersionsRequest, ListVersionsResponse, ListVersionsPagedResponse>() {
202             @Override
203             public ApiFuture<ListVersionsPagedResponse> getFuturePagedResponse(
204                 UnaryCallable<ListVersionsRequest, ListVersionsResponse> callable,
205                 ListVersionsRequest request,
206                 ApiCallContext context,
207                 ApiFuture<ListVersionsResponse> futureResponse) {
208               PageContext<ListVersionsRequest, ListVersionsResponse, Version> pageContext =
209                   PageContext.create(callable, LIST_VERSIONS_PAGE_STR_DESC, request, context);
210               return ListVersionsPagedResponse.createAsync(pageContext, futureResponse);
211             }
212           };
213 
214   private static final PagedListResponseFactory<
215           ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
216       LIST_LOCATIONS_PAGE_STR_FACT =
217           new PagedListResponseFactory<
218               ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>() {
219             @Override
220             public ApiFuture<ListLocationsPagedResponse> getFuturePagedResponse(
221                 UnaryCallable<ListLocationsRequest, ListLocationsResponse> callable,
222                 ListLocationsRequest request,
223                 ApiCallContext context,
224                 ApiFuture<ListLocationsResponse> futureResponse) {
225               PageContext<ListLocationsRequest, ListLocationsResponse, Location> pageContext =
226                   PageContext.create(callable, LIST_LOCATIONS_PAGE_STR_DESC, request, context);
227               return ListLocationsPagedResponse.createAsync(pageContext, futureResponse);
228             }
229           };
230 
231   /** Returns the object with the settings used for calls to listVersions. */
232   public PagedCallSettings<ListVersionsRequest, ListVersionsResponse, ListVersionsPagedResponse>
listVersionsSettings()233       listVersionsSettings() {
234     return listVersionsSettings;
235   }
236 
237   /** Returns the object with the settings used for calls to getVersion. */
getVersionSettings()238   public UnaryCallSettings<GetVersionRequest, Version> getVersionSettings() {
239     return getVersionSettings;
240   }
241 
242   /** Returns the object with the settings used for calls to createVersion. */
createVersionSettings()243   public UnaryCallSettings<CreateVersionRequest, Version> createVersionSettings() {
244     return createVersionSettings;
245   }
246 
247   /** Returns the object with the settings used for calls to updateVersion. */
updateVersionSettings()248   public UnaryCallSettings<UpdateVersionRequest, Version> updateVersionSettings() {
249     return updateVersionSettings;
250   }
251 
252   /** Returns the object with the settings used for calls to deleteVersion. */
deleteVersionSettings()253   public UnaryCallSettings<DeleteVersionRequest, Empty> deleteVersionSettings() {
254     return deleteVersionSettings;
255   }
256 
257   /** Returns the object with the settings used for calls to listLocations. */
258   public PagedCallSettings<ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
listLocationsSettings()259       listLocationsSettings() {
260     return listLocationsSettings;
261   }
262 
263   /** Returns the object with the settings used for calls to getLocation. */
getLocationSettings()264   public UnaryCallSettings<GetLocationRequest, Location> getLocationSettings() {
265     return getLocationSettings;
266   }
267 
createStub()268   public VersionsStub createStub() throws IOException {
269     if (getTransportChannelProvider()
270         .getTransportName()
271         .equals(GrpcTransportChannel.getGrpcTransportName())) {
272       return GrpcVersionsStub.create(this);
273     }
274     if (getTransportChannelProvider()
275         .getTransportName()
276         .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
277       return HttpJsonVersionsStub.create(this);
278     }
279     throw new UnsupportedOperationException(
280         String.format(
281             "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
282   }
283 
284   /** Returns a builder for the default ExecutorProvider for this service. */
defaultExecutorProviderBuilder()285   public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
286     return InstantiatingExecutorProvider.newBuilder();
287   }
288 
289   /** Returns the default service endpoint. */
getDefaultEndpoint()290   public static String getDefaultEndpoint() {
291     return "dialogflow.googleapis.com:443";
292   }
293 
294   /** Returns the default mTLS service endpoint. */
getDefaultMtlsEndpoint()295   public static String getDefaultMtlsEndpoint() {
296     return "dialogflow.mtls.googleapis.com:443";
297   }
298 
299   /** Returns the default service scopes. */
getDefaultServiceScopes()300   public static List<String> getDefaultServiceScopes() {
301     return DEFAULT_SERVICE_SCOPES;
302   }
303 
304   /** Returns a builder for the default credentials for this service. */
defaultCredentialsProviderBuilder()305   public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
306     return GoogleCredentialsProvider.newBuilder()
307         .setScopesToApply(DEFAULT_SERVICE_SCOPES)
308         .setUseJwtAccessWithScope(true);
309   }
310 
311   /** Returns a builder for the default gRPC ChannelProvider for this service. */
defaultGrpcTransportProviderBuilder()312   public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
313     return InstantiatingGrpcChannelProvider.newBuilder()
314         .setMaxInboundMessageSize(Integer.MAX_VALUE);
315   }
316 
317   /** Returns a builder for the default REST ChannelProvider for this service. */
318   @BetaApi
319   public static InstantiatingHttpJsonChannelProvider.Builder
defaultHttpJsonTransportProviderBuilder()320       defaultHttpJsonTransportProviderBuilder() {
321     return InstantiatingHttpJsonChannelProvider.newBuilder();
322   }
323 
defaultTransportChannelProvider()324   public static TransportChannelProvider defaultTransportChannelProvider() {
325     return defaultGrpcTransportProviderBuilder().build();
326   }
327 
328   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultGrpcApiClientHeaderProviderBuilder()329   public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
330     return ApiClientHeaderProvider.newBuilder()
331         .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(VersionsStubSettings.class))
332         .setTransportToken(
333             GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
334   }
335 
336   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultHttpJsonApiClientHeaderProviderBuilder()337   public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
338     return ApiClientHeaderProvider.newBuilder()
339         .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(VersionsStubSettings.class))
340         .setTransportToken(
341             GaxHttpJsonProperties.getHttpJsonTokenName(),
342             GaxHttpJsonProperties.getHttpJsonVersion());
343   }
344 
defaultApiClientHeaderProviderBuilder()345   public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
346     return VersionsStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
347   }
348 
349   /** Returns a new gRPC builder for this class. */
newBuilder()350   public static Builder newBuilder() {
351     return Builder.createDefault();
352   }
353 
354   /** Returns a new REST builder for this class. */
newHttpJsonBuilder()355   public static Builder newHttpJsonBuilder() {
356     return Builder.createHttpJsonDefault();
357   }
358 
359   /** Returns a new builder for this class. */
newBuilder(ClientContext clientContext)360   public static Builder newBuilder(ClientContext clientContext) {
361     return new Builder(clientContext);
362   }
363 
364   /** Returns a builder containing all the values of this settings class. */
toBuilder()365   public Builder toBuilder() {
366     return new Builder(this);
367   }
368 
VersionsStubSettings(Builder settingsBuilder)369   protected VersionsStubSettings(Builder settingsBuilder) throws IOException {
370     super(settingsBuilder);
371 
372     listVersionsSettings = settingsBuilder.listVersionsSettings().build();
373     getVersionSettings = settingsBuilder.getVersionSettings().build();
374     createVersionSettings = settingsBuilder.createVersionSettings().build();
375     updateVersionSettings = settingsBuilder.updateVersionSettings().build();
376     deleteVersionSettings = settingsBuilder.deleteVersionSettings().build();
377     listLocationsSettings = settingsBuilder.listLocationsSettings().build();
378     getLocationSettings = settingsBuilder.getLocationSettings().build();
379   }
380 
381   /** Builder for VersionsStubSettings. */
382   public static class Builder extends StubSettings.Builder<VersionsStubSettings, Builder> {
383     private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;
384     private final PagedCallSettings.Builder<
385             ListVersionsRequest, ListVersionsResponse, ListVersionsPagedResponse>
386         listVersionsSettings;
387     private final UnaryCallSettings.Builder<GetVersionRequest, Version> getVersionSettings;
388     private final UnaryCallSettings.Builder<CreateVersionRequest, Version> createVersionSettings;
389     private final UnaryCallSettings.Builder<UpdateVersionRequest, Version> updateVersionSettings;
390     private final UnaryCallSettings.Builder<DeleteVersionRequest, Empty> deleteVersionSettings;
391     private final PagedCallSettings.Builder<
392             ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
393         listLocationsSettings;
394     private final UnaryCallSettings.Builder<GetLocationRequest, Location> getLocationSettings;
395     private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>>
396         RETRYABLE_CODE_DEFINITIONS;
397 
398     static {
399       ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions =
400           ImmutableMap.builder();
401       definitions.put(
402           "retry_policy_0_codes",
403           ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList(StatusCode.Code.UNAVAILABLE)));
404       RETRYABLE_CODE_DEFINITIONS = definitions.build();
405     }
406 
407     private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS;
408 
409     static {
410       ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder();
411       RetrySettings settings = null;
412       settings =
413           RetrySettings.newBuilder()
414               .setInitialRetryDelay(Duration.ofMillis(100L))
415               .setRetryDelayMultiplier(1.3)
416               .setMaxRetryDelay(Duration.ofMillis(60000L))
417               .setInitialRpcTimeout(Duration.ofMillis(60000L))
418               .setRpcTimeoutMultiplier(1.0)
419               .setMaxRpcTimeout(Duration.ofMillis(60000L))
420               .setTotalTimeout(Duration.ofMillis(60000L))
421               .build();
422       definitions.put("retry_policy_0_params", settings);
423       RETRY_PARAM_DEFINITIONS = definitions.build();
424     }
425 
Builder()426     protected Builder() {
427       this(((ClientContext) null));
428     }
429 
Builder(ClientContext clientContext)430     protected Builder(ClientContext clientContext) {
431       super(clientContext);
432 
433       listVersionsSettings = PagedCallSettings.newBuilder(LIST_VERSIONS_PAGE_STR_FACT);
434       getVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
435       createVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
436       updateVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
437       deleteVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
438       listLocationsSettings = PagedCallSettings.newBuilder(LIST_LOCATIONS_PAGE_STR_FACT);
439       getLocationSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
440 
441       unaryMethodSettingsBuilders =
442           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
443               listVersionsSettings,
444               getVersionSettings,
445               createVersionSettings,
446               updateVersionSettings,
447               deleteVersionSettings,
448               listLocationsSettings,
449               getLocationSettings);
450       initDefaults(this);
451     }
452 
Builder(VersionsStubSettings settings)453     protected Builder(VersionsStubSettings settings) {
454       super(settings);
455 
456       listVersionsSettings = settings.listVersionsSettings.toBuilder();
457       getVersionSettings = settings.getVersionSettings.toBuilder();
458       createVersionSettings = settings.createVersionSettings.toBuilder();
459       updateVersionSettings = settings.updateVersionSettings.toBuilder();
460       deleteVersionSettings = settings.deleteVersionSettings.toBuilder();
461       listLocationsSettings = settings.listLocationsSettings.toBuilder();
462       getLocationSettings = settings.getLocationSettings.toBuilder();
463 
464       unaryMethodSettingsBuilders =
465           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
466               listVersionsSettings,
467               getVersionSettings,
468               createVersionSettings,
469               updateVersionSettings,
470               deleteVersionSettings,
471               listLocationsSettings,
472               getLocationSettings);
473     }
474 
createDefault()475     private static Builder createDefault() {
476       Builder builder = new Builder(((ClientContext) null));
477 
478       builder.setTransportChannelProvider(defaultTransportChannelProvider());
479       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
480       builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
481       builder.setEndpoint(getDefaultEndpoint());
482       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
483       builder.setSwitchToMtlsEndpointAllowed(true);
484 
485       return initDefaults(builder);
486     }
487 
createHttpJsonDefault()488     private static Builder createHttpJsonDefault() {
489       Builder builder = new Builder(((ClientContext) null));
490 
491       builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
492       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
493       builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
494       builder.setEndpoint(getDefaultEndpoint());
495       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
496       builder.setSwitchToMtlsEndpointAllowed(true);
497 
498       return initDefaults(builder);
499     }
500 
initDefaults(Builder builder)501     private static Builder initDefaults(Builder builder) {
502       builder
503           .listVersionsSettings()
504           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
505           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
506 
507       builder
508           .getVersionSettings()
509           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
510           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
511 
512       builder
513           .createVersionSettings()
514           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
515           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
516 
517       builder
518           .updateVersionSettings()
519           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
520           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
521 
522       builder
523           .deleteVersionSettings()
524           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
525           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
526 
527       builder
528           .listLocationsSettings()
529           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
530           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
531 
532       builder
533           .getLocationSettings()
534           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
535           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
536 
537       return builder;
538     }
539 
540     /**
541      * Applies the given settings updater function to all of the unary API methods in this service.
542      *
543      * <p>Note: This method does not support applying settings to streaming methods.
544      */
applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)545     public Builder applyToAllUnaryMethods(
546         ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) {
547       super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
548       return this;
549     }
550 
unaryMethodSettingsBuilders()551     public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() {
552       return unaryMethodSettingsBuilders;
553     }
554 
555     /** Returns the builder for the settings used for calls to listVersions. */
556     public PagedCallSettings.Builder<
557             ListVersionsRequest, ListVersionsResponse, ListVersionsPagedResponse>
listVersionsSettings()558         listVersionsSettings() {
559       return listVersionsSettings;
560     }
561 
562     /** Returns the builder for the settings used for calls to getVersion. */
getVersionSettings()563     public UnaryCallSettings.Builder<GetVersionRequest, Version> getVersionSettings() {
564       return getVersionSettings;
565     }
566 
567     /** Returns the builder for the settings used for calls to createVersion. */
createVersionSettings()568     public UnaryCallSettings.Builder<CreateVersionRequest, Version> createVersionSettings() {
569       return createVersionSettings;
570     }
571 
572     /** Returns the builder for the settings used for calls to updateVersion. */
updateVersionSettings()573     public UnaryCallSettings.Builder<UpdateVersionRequest, Version> updateVersionSettings() {
574       return updateVersionSettings;
575     }
576 
577     /** Returns the builder for the settings used for calls to deleteVersion. */
deleteVersionSettings()578     public UnaryCallSettings.Builder<DeleteVersionRequest, Empty> deleteVersionSettings() {
579       return deleteVersionSettings;
580     }
581 
582     /** Returns the builder for the settings used for calls to listLocations. */
583     public PagedCallSettings.Builder<
584             ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
listLocationsSettings()585         listLocationsSettings() {
586       return listLocationsSettings;
587     }
588 
589     /** Returns the builder for the settings used for calls to getLocation. */
getLocationSettings()590     public UnaryCallSettings.Builder<GetLocationRequest, Location> getLocationSettings() {
591       return getLocationSettings;
592     }
593 
594     @Override
build()595     public VersionsStubSettings build() throws IOException {
596       return new VersionsStubSettings(this);
597     }
598   }
599 }
600