• 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.domains.v1beta1.stub;
18 
19 import static com.google.cloud.domains.v1beta1.DomainsClient.ListRegistrationsPagedResponse;
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.domains.v1beta1.AuthorizationCode;
51 import com.google.cloud.domains.v1beta1.ConfigureContactSettingsRequest;
52 import com.google.cloud.domains.v1beta1.ConfigureDnsSettingsRequest;
53 import com.google.cloud.domains.v1beta1.ConfigureManagementSettingsRequest;
54 import com.google.cloud.domains.v1beta1.DeleteRegistrationRequest;
55 import com.google.cloud.domains.v1beta1.ExportRegistrationRequest;
56 import com.google.cloud.domains.v1beta1.GetRegistrationRequest;
57 import com.google.cloud.domains.v1beta1.ListRegistrationsRequest;
58 import com.google.cloud.domains.v1beta1.ListRegistrationsResponse;
59 import com.google.cloud.domains.v1beta1.OperationMetadata;
60 import com.google.cloud.domains.v1beta1.RegisterDomainRequest;
61 import com.google.cloud.domains.v1beta1.Registration;
62 import com.google.cloud.domains.v1beta1.ResetAuthorizationCodeRequest;
63 import com.google.cloud.domains.v1beta1.RetrieveAuthorizationCodeRequest;
64 import com.google.cloud.domains.v1beta1.RetrieveRegisterParametersRequest;
65 import com.google.cloud.domains.v1beta1.RetrieveRegisterParametersResponse;
66 import com.google.cloud.domains.v1beta1.RetrieveTransferParametersRequest;
67 import com.google.cloud.domains.v1beta1.RetrieveTransferParametersResponse;
68 import com.google.cloud.domains.v1beta1.SearchDomainsRequest;
69 import com.google.cloud.domains.v1beta1.SearchDomainsResponse;
70 import com.google.cloud.domains.v1beta1.TransferDomainRequest;
71 import com.google.cloud.domains.v1beta1.UpdateRegistrationRequest;
72 import com.google.common.collect.ImmutableList;
73 import com.google.common.collect.ImmutableMap;
74 import com.google.common.collect.ImmutableSet;
75 import com.google.common.collect.Lists;
76 import com.google.longrunning.Operation;
77 import com.google.protobuf.Empty;
78 import java.io.IOException;
79 import java.util.List;
80 import javax.annotation.Generated;
81 import org.threeten.bp.Duration;
82 
83 // AUTO-GENERATED DOCUMENTATION AND CLASS.
84 /**
85  * Settings class to configure an instance of {@link DomainsStub}.
86  *
87  * <p>The default instance has everything set to sensible defaults:
88  *
89  * <ul>
90  *   <li>The default service address (domains.googleapis.com) and default port (443) are used.
91  *   <li>Credentials are acquired automatically through Application Default Credentials.
92  *   <li>Retries are configured for idempotent methods but not for non-idempotent methods.
93  * </ul>
94  *
95  * <p>The builder of this class is recursive, so contained classes are themselves builders. When
96  * build() is called, the tree of builders is called to create the complete settings object.
97  *
98  * <p>For example, to set the total timeout of searchDomains to 30 seconds:
99  *
100  * <pre>{@code
101  * // This snippet has been automatically generated and should be regarded as a code template only.
102  * // It will require modifications to work:
103  * // - It may require correct/in-range values for request initialization.
104  * // - It may require specifying regional endpoints when creating the service client as shown in
105  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
106  * DomainsStubSettings.Builder domainsSettingsBuilder = DomainsStubSettings.newBuilder();
107  * domainsSettingsBuilder
108  *     .searchDomainsSettings()
109  *     .setRetrySettings(
110  *         domainsSettingsBuilder
111  *             .searchDomainsSettings()
112  *             .getRetrySettings()
113  *             .toBuilder()
114  *             .setTotalTimeout(Duration.ofSeconds(30))
115  *             .build());
116  * DomainsStubSettings domainsSettings = domainsSettingsBuilder.build();
117  * }</pre>
118  */
119 @BetaApi
120 @Generated("by gapic-generator-java")
121 public class DomainsStubSettings extends StubSettings<DomainsStubSettings> {
122   /** The default scopes of the service. */
123   private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES =
124       ImmutableList.<String>builder().add("https://www.googleapis.com/auth/cloud-platform").build();
125 
126   private final UnaryCallSettings<SearchDomainsRequest, SearchDomainsResponse>
127       searchDomainsSettings;
128   private final UnaryCallSettings<
129           RetrieveRegisterParametersRequest, RetrieveRegisterParametersResponse>
130       retrieveRegisterParametersSettings;
131   private final UnaryCallSettings<RegisterDomainRequest, Operation> registerDomainSettings;
132   private final OperationCallSettings<RegisterDomainRequest, Registration, OperationMetadata>
133       registerDomainOperationSettings;
134   private final UnaryCallSettings<
135           RetrieveTransferParametersRequest, RetrieveTransferParametersResponse>
136       retrieveTransferParametersSettings;
137   private final UnaryCallSettings<TransferDomainRequest, Operation> transferDomainSettings;
138   private final OperationCallSettings<TransferDomainRequest, Registration, OperationMetadata>
139       transferDomainOperationSettings;
140   private final PagedCallSettings<
141           ListRegistrationsRequest, ListRegistrationsResponse, ListRegistrationsPagedResponse>
142       listRegistrationsSettings;
143   private final UnaryCallSettings<GetRegistrationRequest, Registration> getRegistrationSettings;
144   private final UnaryCallSettings<UpdateRegistrationRequest, Operation> updateRegistrationSettings;
145   private final OperationCallSettings<UpdateRegistrationRequest, Registration, OperationMetadata>
146       updateRegistrationOperationSettings;
147   private final UnaryCallSettings<ConfigureManagementSettingsRequest, Operation>
148       configureManagementSettingsSettings;
149   private final OperationCallSettings<
150           ConfigureManagementSettingsRequest, Registration, OperationMetadata>
151       configureManagementSettingsOperationSettings;
152   private final UnaryCallSettings<ConfigureDnsSettingsRequest, Operation>
153       configureDnsSettingsSettings;
154   private final OperationCallSettings<ConfigureDnsSettingsRequest, Registration, OperationMetadata>
155       configureDnsSettingsOperationSettings;
156   private final UnaryCallSettings<ConfigureContactSettingsRequest, Operation>
157       configureContactSettingsSettings;
158   private final OperationCallSettings<
159           ConfigureContactSettingsRequest, Registration, OperationMetadata>
160       configureContactSettingsOperationSettings;
161   private final UnaryCallSettings<ExportRegistrationRequest, Operation> exportRegistrationSettings;
162   private final OperationCallSettings<ExportRegistrationRequest, Registration, OperationMetadata>
163       exportRegistrationOperationSettings;
164   private final UnaryCallSettings<DeleteRegistrationRequest, Operation> deleteRegistrationSettings;
165   private final OperationCallSettings<DeleteRegistrationRequest, Empty, OperationMetadata>
166       deleteRegistrationOperationSettings;
167   private final UnaryCallSettings<RetrieveAuthorizationCodeRequest, AuthorizationCode>
168       retrieveAuthorizationCodeSettings;
169   private final UnaryCallSettings<ResetAuthorizationCodeRequest, AuthorizationCode>
170       resetAuthorizationCodeSettings;
171 
172   private static final PagedListDescriptor<
173           ListRegistrationsRequest, ListRegistrationsResponse, Registration>
174       LIST_REGISTRATIONS_PAGE_STR_DESC =
175           new PagedListDescriptor<
176               ListRegistrationsRequest, ListRegistrationsResponse, Registration>() {
177             @Override
178             public String emptyToken() {
179               return "";
180             }
181 
182             @Override
183             public ListRegistrationsRequest injectToken(
184                 ListRegistrationsRequest payload, String token) {
185               return ListRegistrationsRequest.newBuilder(payload).setPageToken(token).build();
186             }
187 
188             @Override
189             public ListRegistrationsRequest injectPageSize(
190                 ListRegistrationsRequest payload, int pageSize) {
191               return ListRegistrationsRequest.newBuilder(payload).setPageSize(pageSize).build();
192             }
193 
194             @Override
195             public Integer extractPageSize(ListRegistrationsRequest payload) {
196               return payload.getPageSize();
197             }
198 
199             @Override
200             public String extractNextToken(ListRegistrationsResponse payload) {
201               return payload.getNextPageToken();
202             }
203 
204             @Override
205             public Iterable<Registration> extractResources(ListRegistrationsResponse payload) {
206               return payload.getRegistrationsList() == null
207                   ? ImmutableList.<Registration>of()
208                   : payload.getRegistrationsList();
209             }
210           };
211 
212   private static final PagedListResponseFactory<
213           ListRegistrationsRequest, ListRegistrationsResponse, ListRegistrationsPagedResponse>
214       LIST_REGISTRATIONS_PAGE_STR_FACT =
215           new PagedListResponseFactory<
216               ListRegistrationsRequest,
217               ListRegistrationsResponse,
218               ListRegistrationsPagedResponse>() {
219             @Override
220             public ApiFuture<ListRegistrationsPagedResponse> getFuturePagedResponse(
221                 UnaryCallable<ListRegistrationsRequest, ListRegistrationsResponse> callable,
222                 ListRegistrationsRequest request,
223                 ApiCallContext context,
224                 ApiFuture<ListRegistrationsResponse> futureResponse) {
225               PageContext<ListRegistrationsRequest, ListRegistrationsResponse, Registration>
226                   pageContext =
227                       PageContext.create(
228                           callable, LIST_REGISTRATIONS_PAGE_STR_DESC, request, context);
229               return ListRegistrationsPagedResponse.createAsync(pageContext, futureResponse);
230             }
231           };
232 
233   /** Returns the object with the settings used for calls to searchDomains. */
searchDomainsSettings()234   public UnaryCallSettings<SearchDomainsRequest, SearchDomainsResponse> searchDomainsSettings() {
235     return searchDomainsSettings;
236   }
237 
238   /** Returns the object with the settings used for calls to retrieveRegisterParameters. */
239   public UnaryCallSettings<RetrieveRegisterParametersRequest, RetrieveRegisterParametersResponse>
retrieveRegisterParametersSettings()240       retrieveRegisterParametersSettings() {
241     return retrieveRegisterParametersSettings;
242   }
243 
244   /** Returns the object with the settings used for calls to registerDomain. */
registerDomainSettings()245   public UnaryCallSettings<RegisterDomainRequest, Operation> registerDomainSettings() {
246     return registerDomainSettings;
247   }
248 
249   /** Returns the object with the settings used for calls to registerDomain. */
250   public OperationCallSettings<RegisterDomainRequest, Registration, OperationMetadata>
registerDomainOperationSettings()251       registerDomainOperationSettings() {
252     return registerDomainOperationSettings;
253   }
254 
255   /** Returns the object with the settings used for calls to retrieveTransferParameters. */
256   public UnaryCallSettings<RetrieveTransferParametersRequest, RetrieveTransferParametersResponse>
retrieveTransferParametersSettings()257       retrieveTransferParametersSettings() {
258     return retrieveTransferParametersSettings;
259   }
260 
261   /** Returns the object with the settings used for calls to transferDomain. */
transferDomainSettings()262   public UnaryCallSettings<TransferDomainRequest, Operation> transferDomainSettings() {
263     return transferDomainSettings;
264   }
265 
266   /** Returns the object with the settings used for calls to transferDomain. */
267   public OperationCallSettings<TransferDomainRequest, Registration, OperationMetadata>
transferDomainOperationSettings()268       transferDomainOperationSettings() {
269     return transferDomainOperationSettings;
270   }
271 
272   /** Returns the object with the settings used for calls to listRegistrations. */
273   public PagedCallSettings<
274           ListRegistrationsRequest, ListRegistrationsResponse, ListRegistrationsPagedResponse>
listRegistrationsSettings()275       listRegistrationsSettings() {
276     return listRegistrationsSettings;
277   }
278 
279   /** Returns the object with the settings used for calls to getRegistration. */
getRegistrationSettings()280   public UnaryCallSettings<GetRegistrationRequest, Registration> getRegistrationSettings() {
281     return getRegistrationSettings;
282   }
283 
284   /** Returns the object with the settings used for calls to updateRegistration. */
updateRegistrationSettings()285   public UnaryCallSettings<UpdateRegistrationRequest, Operation> updateRegistrationSettings() {
286     return updateRegistrationSettings;
287   }
288 
289   /** Returns the object with the settings used for calls to updateRegistration. */
290   public OperationCallSettings<UpdateRegistrationRequest, Registration, OperationMetadata>
updateRegistrationOperationSettings()291       updateRegistrationOperationSettings() {
292     return updateRegistrationOperationSettings;
293   }
294 
295   /** Returns the object with the settings used for calls to configureManagementSettings. */
296   public UnaryCallSettings<ConfigureManagementSettingsRequest, Operation>
configureManagementSettingsSettings()297       configureManagementSettingsSettings() {
298     return configureManagementSettingsSettings;
299   }
300 
301   /** Returns the object with the settings used for calls to configureManagementSettings. */
302   public OperationCallSettings<ConfigureManagementSettingsRequest, Registration, OperationMetadata>
configureManagementSettingsOperationSettings()303       configureManagementSettingsOperationSettings() {
304     return configureManagementSettingsOperationSettings;
305   }
306 
307   /** Returns the object with the settings used for calls to configureDnsSettings. */
configureDnsSettingsSettings()308   public UnaryCallSettings<ConfigureDnsSettingsRequest, Operation> configureDnsSettingsSettings() {
309     return configureDnsSettingsSettings;
310   }
311 
312   /** Returns the object with the settings used for calls to configureDnsSettings. */
313   public OperationCallSettings<ConfigureDnsSettingsRequest, Registration, OperationMetadata>
configureDnsSettingsOperationSettings()314       configureDnsSettingsOperationSettings() {
315     return configureDnsSettingsOperationSettings;
316   }
317 
318   /** Returns the object with the settings used for calls to configureContactSettings. */
319   public UnaryCallSettings<ConfigureContactSettingsRequest, Operation>
configureContactSettingsSettings()320       configureContactSettingsSettings() {
321     return configureContactSettingsSettings;
322   }
323 
324   /** Returns the object with the settings used for calls to configureContactSettings. */
325   public OperationCallSettings<ConfigureContactSettingsRequest, Registration, OperationMetadata>
configureContactSettingsOperationSettings()326       configureContactSettingsOperationSettings() {
327     return configureContactSettingsOperationSettings;
328   }
329 
330   /** Returns the object with the settings used for calls to exportRegistration. */
exportRegistrationSettings()331   public UnaryCallSettings<ExportRegistrationRequest, Operation> exportRegistrationSettings() {
332     return exportRegistrationSettings;
333   }
334 
335   /** Returns the object with the settings used for calls to exportRegistration. */
336   public OperationCallSettings<ExportRegistrationRequest, Registration, OperationMetadata>
exportRegistrationOperationSettings()337       exportRegistrationOperationSettings() {
338     return exportRegistrationOperationSettings;
339   }
340 
341   /** Returns the object with the settings used for calls to deleteRegistration. */
deleteRegistrationSettings()342   public UnaryCallSettings<DeleteRegistrationRequest, Operation> deleteRegistrationSettings() {
343     return deleteRegistrationSettings;
344   }
345 
346   /** Returns the object with the settings used for calls to deleteRegistration. */
347   public OperationCallSettings<DeleteRegistrationRequest, Empty, OperationMetadata>
deleteRegistrationOperationSettings()348       deleteRegistrationOperationSettings() {
349     return deleteRegistrationOperationSettings;
350   }
351 
352   /** Returns the object with the settings used for calls to retrieveAuthorizationCode. */
353   public UnaryCallSettings<RetrieveAuthorizationCodeRequest, AuthorizationCode>
retrieveAuthorizationCodeSettings()354       retrieveAuthorizationCodeSettings() {
355     return retrieveAuthorizationCodeSettings;
356   }
357 
358   /** Returns the object with the settings used for calls to resetAuthorizationCode. */
359   public UnaryCallSettings<ResetAuthorizationCodeRequest, AuthorizationCode>
resetAuthorizationCodeSettings()360       resetAuthorizationCodeSettings() {
361     return resetAuthorizationCodeSettings;
362   }
363 
createStub()364   public DomainsStub createStub() throws IOException {
365     if (getTransportChannelProvider()
366         .getTransportName()
367         .equals(GrpcTransportChannel.getGrpcTransportName())) {
368       return GrpcDomainsStub.create(this);
369     }
370     if (getTransportChannelProvider()
371         .getTransportName()
372         .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
373       return HttpJsonDomainsStub.create(this);
374     }
375     throw new UnsupportedOperationException(
376         String.format(
377             "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
378   }
379 
380   /** Returns a builder for the default ExecutorProvider for this service. */
defaultExecutorProviderBuilder()381   public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
382     return InstantiatingExecutorProvider.newBuilder();
383   }
384 
385   /** Returns the default service endpoint. */
getDefaultEndpoint()386   public static String getDefaultEndpoint() {
387     return "domains.googleapis.com:443";
388   }
389 
390   /** Returns the default mTLS service endpoint. */
getDefaultMtlsEndpoint()391   public static String getDefaultMtlsEndpoint() {
392     return "domains.mtls.googleapis.com:443";
393   }
394 
395   /** Returns the default service scopes. */
getDefaultServiceScopes()396   public static List<String> getDefaultServiceScopes() {
397     return DEFAULT_SERVICE_SCOPES;
398   }
399 
400   /** Returns a builder for the default credentials for this service. */
defaultCredentialsProviderBuilder()401   public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
402     return GoogleCredentialsProvider.newBuilder()
403         .setScopesToApply(DEFAULT_SERVICE_SCOPES)
404         .setUseJwtAccessWithScope(true);
405   }
406 
407   /** Returns a builder for the default gRPC ChannelProvider for this service. */
defaultGrpcTransportProviderBuilder()408   public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
409     return InstantiatingGrpcChannelProvider.newBuilder()
410         .setMaxInboundMessageSize(Integer.MAX_VALUE);
411   }
412 
413   /** Returns a builder for the default REST ChannelProvider for this service. */
414   @BetaApi
415   public static InstantiatingHttpJsonChannelProvider.Builder
defaultHttpJsonTransportProviderBuilder()416       defaultHttpJsonTransportProviderBuilder() {
417     return InstantiatingHttpJsonChannelProvider.newBuilder();
418   }
419 
defaultTransportChannelProvider()420   public static TransportChannelProvider defaultTransportChannelProvider() {
421     return defaultGrpcTransportProviderBuilder().build();
422   }
423 
424   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultGrpcApiClientHeaderProviderBuilder()425   public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
426     return ApiClientHeaderProvider.newBuilder()
427         .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(DomainsStubSettings.class))
428         .setTransportToken(
429             GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
430   }
431 
432   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultHttpJsonApiClientHeaderProviderBuilder()433   public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
434     return ApiClientHeaderProvider.newBuilder()
435         .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(DomainsStubSettings.class))
436         .setTransportToken(
437             GaxHttpJsonProperties.getHttpJsonTokenName(),
438             GaxHttpJsonProperties.getHttpJsonVersion());
439   }
440 
defaultApiClientHeaderProviderBuilder()441   public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
442     return DomainsStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
443   }
444 
445   /** Returns a new gRPC builder for this class. */
newBuilder()446   public static Builder newBuilder() {
447     return Builder.createDefault();
448   }
449 
450   /** Returns a new REST builder for this class. */
newHttpJsonBuilder()451   public static Builder newHttpJsonBuilder() {
452     return Builder.createHttpJsonDefault();
453   }
454 
455   /** Returns a new builder for this class. */
newBuilder(ClientContext clientContext)456   public static Builder newBuilder(ClientContext clientContext) {
457     return new Builder(clientContext);
458   }
459 
460   /** Returns a builder containing all the values of this settings class. */
toBuilder()461   public Builder toBuilder() {
462     return new Builder(this);
463   }
464 
DomainsStubSettings(Builder settingsBuilder)465   protected DomainsStubSettings(Builder settingsBuilder) throws IOException {
466     super(settingsBuilder);
467 
468     searchDomainsSettings = settingsBuilder.searchDomainsSettings().build();
469     retrieveRegisterParametersSettings =
470         settingsBuilder.retrieveRegisterParametersSettings().build();
471     registerDomainSettings = settingsBuilder.registerDomainSettings().build();
472     registerDomainOperationSettings = settingsBuilder.registerDomainOperationSettings().build();
473     retrieveTransferParametersSettings =
474         settingsBuilder.retrieveTransferParametersSettings().build();
475     transferDomainSettings = settingsBuilder.transferDomainSettings().build();
476     transferDomainOperationSettings = settingsBuilder.transferDomainOperationSettings().build();
477     listRegistrationsSettings = settingsBuilder.listRegistrationsSettings().build();
478     getRegistrationSettings = settingsBuilder.getRegistrationSettings().build();
479     updateRegistrationSettings = settingsBuilder.updateRegistrationSettings().build();
480     updateRegistrationOperationSettings =
481         settingsBuilder.updateRegistrationOperationSettings().build();
482     configureManagementSettingsSettings =
483         settingsBuilder.configureManagementSettingsSettings().build();
484     configureManagementSettingsOperationSettings =
485         settingsBuilder.configureManagementSettingsOperationSettings().build();
486     configureDnsSettingsSettings = settingsBuilder.configureDnsSettingsSettings().build();
487     configureDnsSettingsOperationSettings =
488         settingsBuilder.configureDnsSettingsOperationSettings().build();
489     configureContactSettingsSettings = settingsBuilder.configureContactSettingsSettings().build();
490     configureContactSettingsOperationSettings =
491         settingsBuilder.configureContactSettingsOperationSettings().build();
492     exportRegistrationSettings = settingsBuilder.exportRegistrationSettings().build();
493     exportRegistrationOperationSettings =
494         settingsBuilder.exportRegistrationOperationSettings().build();
495     deleteRegistrationSettings = settingsBuilder.deleteRegistrationSettings().build();
496     deleteRegistrationOperationSettings =
497         settingsBuilder.deleteRegistrationOperationSettings().build();
498     retrieveAuthorizationCodeSettings = settingsBuilder.retrieveAuthorizationCodeSettings().build();
499     resetAuthorizationCodeSettings = settingsBuilder.resetAuthorizationCodeSettings().build();
500   }
501 
502   /** Builder for DomainsStubSettings. */
503   public static class Builder extends StubSettings.Builder<DomainsStubSettings, Builder> {
504     private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;
505     private final UnaryCallSettings.Builder<SearchDomainsRequest, SearchDomainsResponse>
506         searchDomainsSettings;
507     private final UnaryCallSettings.Builder<
508             RetrieveRegisterParametersRequest, RetrieveRegisterParametersResponse>
509         retrieveRegisterParametersSettings;
510     private final UnaryCallSettings.Builder<RegisterDomainRequest, Operation>
511         registerDomainSettings;
512     private final OperationCallSettings.Builder<
513             RegisterDomainRequest, Registration, OperationMetadata>
514         registerDomainOperationSettings;
515     private final UnaryCallSettings.Builder<
516             RetrieveTransferParametersRequest, RetrieveTransferParametersResponse>
517         retrieveTransferParametersSettings;
518     private final UnaryCallSettings.Builder<TransferDomainRequest, Operation>
519         transferDomainSettings;
520     private final OperationCallSettings.Builder<
521             TransferDomainRequest, Registration, OperationMetadata>
522         transferDomainOperationSettings;
523     private final PagedCallSettings.Builder<
524             ListRegistrationsRequest, ListRegistrationsResponse, ListRegistrationsPagedResponse>
525         listRegistrationsSettings;
526     private final UnaryCallSettings.Builder<GetRegistrationRequest, Registration>
527         getRegistrationSettings;
528     private final UnaryCallSettings.Builder<UpdateRegistrationRequest, Operation>
529         updateRegistrationSettings;
530     private final OperationCallSettings.Builder<
531             UpdateRegistrationRequest, Registration, OperationMetadata>
532         updateRegistrationOperationSettings;
533     private final UnaryCallSettings.Builder<ConfigureManagementSettingsRequest, Operation>
534         configureManagementSettingsSettings;
535     private final OperationCallSettings.Builder<
536             ConfigureManagementSettingsRequest, Registration, OperationMetadata>
537         configureManagementSettingsOperationSettings;
538     private final UnaryCallSettings.Builder<ConfigureDnsSettingsRequest, Operation>
539         configureDnsSettingsSettings;
540     private final OperationCallSettings.Builder<
541             ConfigureDnsSettingsRequest, Registration, OperationMetadata>
542         configureDnsSettingsOperationSettings;
543     private final UnaryCallSettings.Builder<ConfigureContactSettingsRequest, Operation>
544         configureContactSettingsSettings;
545     private final OperationCallSettings.Builder<
546             ConfigureContactSettingsRequest, Registration, OperationMetadata>
547         configureContactSettingsOperationSettings;
548     private final UnaryCallSettings.Builder<ExportRegistrationRequest, Operation>
549         exportRegistrationSettings;
550     private final OperationCallSettings.Builder<
551             ExportRegistrationRequest, Registration, OperationMetadata>
552         exportRegistrationOperationSettings;
553     private final UnaryCallSettings.Builder<DeleteRegistrationRequest, Operation>
554         deleteRegistrationSettings;
555     private final OperationCallSettings.Builder<DeleteRegistrationRequest, Empty, OperationMetadata>
556         deleteRegistrationOperationSettings;
557     private final UnaryCallSettings.Builder<RetrieveAuthorizationCodeRequest, AuthorizationCode>
558         retrieveAuthorizationCodeSettings;
559     private final UnaryCallSettings.Builder<ResetAuthorizationCodeRequest, AuthorizationCode>
560         resetAuthorizationCodeSettings;
561     private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>>
562         RETRYABLE_CODE_DEFINITIONS;
563 
564     static {
565       ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions =
566           ImmutableMap.builder();
567       definitions.put("no_retry_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList()));
568       RETRYABLE_CODE_DEFINITIONS = definitions.build();
569     }
570 
571     private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS;
572 
573     static {
574       ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder();
575       RetrySettings settings = null;
576       settings = RetrySettings.newBuilder().setRpcTimeoutMultiplier(1.0).build();
577       definitions.put("no_retry_params", settings);
578       RETRY_PARAM_DEFINITIONS = definitions.build();
579     }
580 
Builder()581     protected Builder() {
582       this(((ClientContext) null));
583     }
584 
Builder(ClientContext clientContext)585     protected Builder(ClientContext clientContext) {
586       super(clientContext);
587 
588       searchDomainsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
589       retrieveRegisterParametersSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
590       registerDomainSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
591       registerDomainOperationSettings = OperationCallSettings.newBuilder();
592       retrieveTransferParametersSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
593       transferDomainSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
594       transferDomainOperationSettings = OperationCallSettings.newBuilder();
595       listRegistrationsSettings = PagedCallSettings.newBuilder(LIST_REGISTRATIONS_PAGE_STR_FACT);
596       getRegistrationSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
597       updateRegistrationSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
598       updateRegistrationOperationSettings = OperationCallSettings.newBuilder();
599       configureManagementSettingsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
600       configureManagementSettingsOperationSettings = OperationCallSettings.newBuilder();
601       configureDnsSettingsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
602       configureDnsSettingsOperationSettings = OperationCallSettings.newBuilder();
603       configureContactSettingsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
604       configureContactSettingsOperationSettings = OperationCallSettings.newBuilder();
605       exportRegistrationSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
606       exportRegistrationOperationSettings = OperationCallSettings.newBuilder();
607       deleteRegistrationSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
608       deleteRegistrationOperationSettings = OperationCallSettings.newBuilder();
609       retrieveAuthorizationCodeSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
610       resetAuthorizationCodeSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
611 
612       unaryMethodSettingsBuilders =
613           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
614               searchDomainsSettings,
615               retrieveRegisterParametersSettings,
616               registerDomainSettings,
617               retrieveTransferParametersSettings,
618               transferDomainSettings,
619               listRegistrationsSettings,
620               getRegistrationSettings,
621               updateRegistrationSettings,
622               configureManagementSettingsSettings,
623               configureDnsSettingsSettings,
624               configureContactSettingsSettings,
625               exportRegistrationSettings,
626               deleteRegistrationSettings,
627               retrieveAuthorizationCodeSettings,
628               resetAuthorizationCodeSettings);
629       initDefaults(this);
630     }
631 
Builder(DomainsStubSettings settings)632     protected Builder(DomainsStubSettings settings) {
633       super(settings);
634 
635       searchDomainsSettings = settings.searchDomainsSettings.toBuilder();
636       retrieveRegisterParametersSettings = settings.retrieveRegisterParametersSettings.toBuilder();
637       registerDomainSettings = settings.registerDomainSettings.toBuilder();
638       registerDomainOperationSettings = settings.registerDomainOperationSettings.toBuilder();
639       retrieveTransferParametersSettings = settings.retrieveTransferParametersSettings.toBuilder();
640       transferDomainSettings = settings.transferDomainSettings.toBuilder();
641       transferDomainOperationSettings = settings.transferDomainOperationSettings.toBuilder();
642       listRegistrationsSettings = settings.listRegistrationsSettings.toBuilder();
643       getRegistrationSettings = settings.getRegistrationSettings.toBuilder();
644       updateRegistrationSettings = settings.updateRegistrationSettings.toBuilder();
645       updateRegistrationOperationSettings =
646           settings.updateRegistrationOperationSettings.toBuilder();
647       configureManagementSettingsSettings =
648           settings.configureManagementSettingsSettings.toBuilder();
649       configureManagementSettingsOperationSettings =
650           settings.configureManagementSettingsOperationSettings.toBuilder();
651       configureDnsSettingsSettings = settings.configureDnsSettingsSettings.toBuilder();
652       configureDnsSettingsOperationSettings =
653           settings.configureDnsSettingsOperationSettings.toBuilder();
654       configureContactSettingsSettings = settings.configureContactSettingsSettings.toBuilder();
655       configureContactSettingsOperationSettings =
656           settings.configureContactSettingsOperationSettings.toBuilder();
657       exportRegistrationSettings = settings.exportRegistrationSettings.toBuilder();
658       exportRegistrationOperationSettings =
659           settings.exportRegistrationOperationSettings.toBuilder();
660       deleteRegistrationSettings = settings.deleteRegistrationSettings.toBuilder();
661       deleteRegistrationOperationSettings =
662           settings.deleteRegistrationOperationSettings.toBuilder();
663       retrieveAuthorizationCodeSettings = settings.retrieveAuthorizationCodeSettings.toBuilder();
664       resetAuthorizationCodeSettings = settings.resetAuthorizationCodeSettings.toBuilder();
665 
666       unaryMethodSettingsBuilders =
667           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
668               searchDomainsSettings,
669               retrieveRegisterParametersSettings,
670               registerDomainSettings,
671               retrieveTransferParametersSettings,
672               transferDomainSettings,
673               listRegistrationsSettings,
674               getRegistrationSettings,
675               updateRegistrationSettings,
676               configureManagementSettingsSettings,
677               configureDnsSettingsSettings,
678               configureContactSettingsSettings,
679               exportRegistrationSettings,
680               deleteRegistrationSettings,
681               retrieveAuthorizationCodeSettings,
682               resetAuthorizationCodeSettings);
683     }
684 
createDefault()685     private static Builder createDefault() {
686       Builder builder = new Builder(((ClientContext) null));
687 
688       builder.setTransportChannelProvider(defaultTransportChannelProvider());
689       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
690       builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
691       builder.setEndpoint(getDefaultEndpoint());
692       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
693       builder.setSwitchToMtlsEndpointAllowed(true);
694 
695       return initDefaults(builder);
696     }
697 
createHttpJsonDefault()698     private static Builder createHttpJsonDefault() {
699       Builder builder = new Builder(((ClientContext) null));
700 
701       builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
702       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
703       builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
704       builder.setEndpoint(getDefaultEndpoint());
705       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
706       builder.setSwitchToMtlsEndpointAllowed(true);
707 
708       return initDefaults(builder);
709     }
710 
initDefaults(Builder builder)711     private static Builder initDefaults(Builder builder) {
712       builder
713           .searchDomainsSettings()
714           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
715           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
716 
717       builder
718           .retrieveRegisterParametersSettings()
719           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
720           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
721 
722       builder
723           .registerDomainSettings()
724           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
725           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
726 
727       builder
728           .retrieveTransferParametersSettings()
729           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
730           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
731 
732       builder
733           .transferDomainSettings()
734           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
735           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
736 
737       builder
738           .listRegistrationsSettings()
739           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
740           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
741 
742       builder
743           .getRegistrationSettings()
744           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
745           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
746 
747       builder
748           .updateRegistrationSettings()
749           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
750           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
751 
752       builder
753           .configureManagementSettingsSettings()
754           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
755           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
756 
757       builder
758           .configureDnsSettingsSettings()
759           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
760           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
761 
762       builder
763           .configureContactSettingsSettings()
764           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
765           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
766 
767       builder
768           .exportRegistrationSettings()
769           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
770           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
771 
772       builder
773           .deleteRegistrationSettings()
774           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
775           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
776 
777       builder
778           .retrieveAuthorizationCodeSettings()
779           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
780           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
781 
782       builder
783           .resetAuthorizationCodeSettings()
784           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
785           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
786 
787       builder
788           .registerDomainOperationSettings()
789           .setInitialCallSettings(
790               UnaryCallSettings
791                   .<RegisterDomainRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
792                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
793                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
794                   .build())
795           .setResponseTransformer(
796               ProtoOperationTransformers.ResponseTransformer.create(Registration.class))
797           .setMetadataTransformer(
798               ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
799           .setPollingAlgorithm(
800               OperationTimedPollAlgorithm.create(
801                   RetrySettings.newBuilder()
802                       .setInitialRetryDelay(Duration.ofMillis(5000L))
803                       .setRetryDelayMultiplier(1.5)
804                       .setMaxRetryDelay(Duration.ofMillis(45000L))
805                       .setInitialRpcTimeout(Duration.ZERO)
806                       .setRpcTimeoutMultiplier(1.0)
807                       .setMaxRpcTimeout(Duration.ZERO)
808                       .setTotalTimeout(Duration.ofMillis(300000L))
809                       .build()));
810 
811       builder
812           .transferDomainOperationSettings()
813           .setInitialCallSettings(
814               UnaryCallSettings
815                   .<TransferDomainRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
816                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
817                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
818                   .build())
819           .setResponseTransformer(
820               ProtoOperationTransformers.ResponseTransformer.create(Registration.class))
821           .setMetadataTransformer(
822               ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
823           .setPollingAlgorithm(
824               OperationTimedPollAlgorithm.create(
825                   RetrySettings.newBuilder()
826                       .setInitialRetryDelay(Duration.ofMillis(5000L))
827                       .setRetryDelayMultiplier(1.5)
828                       .setMaxRetryDelay(Duration.ofMillis(45000L))
829                       .setInitialRpcTimeout(Duration.ZERO)
830                       .setRpcTimeoutMultiplier(1.0)
831                       .setMaxRpcTimeout(Duration.ZERO)
832                       .setTotalTimeout(Duration.ofMillis(300000L))
833                       .build()));
834 
835       builder
836           .updateRegistrationOperationSettings()
837           .setInitialCallSettings(
838               UnaryCallSettings
839                   .<UpdateRegistrationRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
840                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
841                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
842                   .build())
843           .setResponseTransformer(
844               ProtoOperationTransformers.ResponseTransformer.create(Registration.class))
845           .setMetadataTransformer(
846               ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.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       builder
860           .configureManagementSettingsOperationSettings()
861           .setInitialCallSettings(
862               UnaryCallSettings
863                   .<ConfigureManagementSettingsRequest, OperationSnapshot>
864                       newUnaryCallSettingsBuilder()
865                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
866                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
867                   .build())
868           .setResponseTransformer(
869               ProtoOperationTransformers.ResponseTransformer.create(Registration.class))
870           .setMetadataTransformer(
871               ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
872           .setPollingAlgorithm(
873               OperationTimedPollAlgorithm.create(
874                   RetrySettings.newBuilder()
875                       .setInitialRetryDelay(Duration.ofMillis(5000L))
876                       .setRetryDelayMultiplier(1.5)
877                       .setMaxRetryDelay(Duration.ofMillis(45000L))
878                       .setInitialRpcTimeout(Duration.ZERO)
879                       .setRpcTimeoutMultiplier(1.0)
880                       .setMaxRpcTimeout(Duration.ZERO)
881                       .setTotalTimeout(Duration.ofMillis(300000L))
882                       .build()));
883 
884       builder
885           .configureDnsSettingsOperationSettings()
886           .setInitialCallSettings(
887               UnaryCallSettings
888                   .<ConfigureDnsSettingsRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
889                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
890                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
891                   .build())
892           .setResponseTransformer(
893               ProtoOperationTransformers.ResponseTransformer.create(Registration.class))
894           .setMetadataTransformer(
895               ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
896           .setPollingAlgorithm(
897               OperationTimedPollAlgorithm.create(
898                   RetrySettings.newBuilder()
899                       .setInitialRetryDelay(Duration.ofMillis(5000L))
900                       .setRetryDelayMultiplier(1.5)
901                       .setMaxRetryDelay(Duration.ofMillis(45000L))
902                       .setInitialRpcTimeout(Duration.ZERO)
903                       .setRpcTimeoutMultiplier(1.0)
904                       .setMaxRpcTimeout(Duration.ZERO)
905                       .setTotalTimeout(Duration.ofMillis(300000L))
906                       .build()));
907 
908       builder
909           .configureContactSettingsOperationSettings()
910           .setInitialCallSettings(
911               UnaryCallSettings
912                   .<ConfigureContactSettingsRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
913                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
914                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
915                   .build())
916           .setResponseTransformer(
917               ProtoOperationTransformers.ResponseTransformer.create(Registration.class))
918           .setMetadataTransformer(
919               ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
920           .setPollingAlgorithm(
921               OperationTimedPollAlgorithm.create(
922                   RetrySettings.newBuilder()
923                       .setInitialRetryDelay(Duration.ofMillis(5000L))
924                       .setRetryDelayMultiplier(1.5)
925                       .setMaxRetryDelay(Duration.ofMillis(45000L))
926                       .setInitialRpcTimeout(Duration.ZERO)
927                       .setRpcTimeoutMultiplier(1.0)
928                       .setMaxRpcTimeout(Duration.ZERO)
929                       .setTotalTimeout(Duration.ofMillis(300000L))
930                       .build()));
931 
932       builder
933           .exportRegistrationOperationSettings()
934           .setInitialCallSettings(
935               UnaryCallSettings
936                   .<ExportRegistrationRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
937                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
938                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
939                   .build())
940           .setResponseTransformer(
941               ProtoOperationTransformers.ResponseTransformer.create(Registration.class))
942           .setMetadataTransformer(
943               ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
944           .setPollingAlgorithm(
945               OperationTimedPollAlgorithm.create(
946                   RetrySettings.newBuilder()
947                       .setInitialRetryDelay(Duration.ofMillis(5000L))
948                       .setRetryDelayMultiplier(1.5)
949                       .setMaxRetryDelay(Duration.ofMillis(45000L))
950                       .setInitialRpcTimeout(Duration.ZERO)
951                       .setRpcTimeoutMultiplier(1.0)
952                       .setMaxRpcTimeout(Duration.ZERO)
953                       .setTotalTimeout(Duration.ofMillis(300000L))
954                       .build()));
955 
956       builder
957           .deleteRegistrationOperationSettings()
958           .setInitialCallSettings(
959               UnaryCallSettings
960                   .<DeleteRegistrationRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
961                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
962                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
963                   .build())
964           .setResponseTransformer(
965               ProtoOperationTransformers.ResponseTransformer.create(Empty.class))
966           .setMetadataTransformer(
967               ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
968           .setPollingAlgorithm(
969               OperationTimedPollAlgorithm.create(
970                   RetrySettings.newBuilder()
971                       .setInitialRetryDelay(Duration.ofMillis(5000L))
972                       .setRetryDelayMultiplier(1.5)
973                       .setMaxRetryDelay(Duration.ofMillis(45000L))
974                       .setInitialRpcTimeout(Duration.ZERO)
975                       .setRpcTimeoutMultiplier(1.0)
976                       .setMaxRpcTimeout(Duration.ZERO)
977                       .setTotalTimeout(Duration.ofMillis(300000L))
978                       .build()));
979 
980       return builder;
981     }
982 
983     /**
984      * Applies the given settings updater function to all of the unary API methods in this service.
985      *
986      * <p>Note: This method does not support applying settings to streaming methods.
987      */
applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)988     public Builder applyToAllUnaryMethods(
989         ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) {
990       super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
991       return this;
992     }
993 
unaryMethodSettingsBuilders()994     public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() {
995       return unaryMethodSettingsBuilders;
996     }
997 
998     /** Returns the builder for the settings used for calls to searchDomains. */
999     public UnaryCallSettings.Builder<SearchDomainsRequest, SearchDomainsResponse>
searchDomainsSettings()1000         searchDomainsSettings() {
1001       return searchDomainsSettings;
1002     }
1003 
1004     /** Returns the builder for the settings used for calls to retrieveRegisterParameters. */
1005     public UnaryCallSettings.Builder<
1006             RetrieveRegisterParametersRequest, RetrieveRegisterParametersResponse>
retrieveRegisterParametersSettings()1007         retrieveRegisterParametersSettings() {
1008       return retrieveRegisterParametersSettings;
1009     }
1010 
1011     /** Returns the builder for the settings used for calls to registerDomain. */
registerDomainSettings()1012     public UnaryCallSettings.Builder<RegisterDomainRequest, Operation> registerDomainSettings() {
1013       return registerDomainSettings;
1014     }
1015 
1016     /** Returns the builder for the settings used for calls to registerDomain. */
1017     @BetaApi(
1018         "The surface for use by generated code is not stable yet and may change in the future.")
1019     public OperationCallSettings.Builder<RegisterDomainRequest, Registration, OperationMetadata>
registerDomainOperationSettings()1020         registerDomainOperationSettings() {
1021       return registerDomainOperationSettings;
1022     }
1023 
1024     /** Returns the builder for the settings used for calls to retrieveTransferParameters. */
1025     public UnaryCallSettings.Builder<
1026             RetrieveTransferParametersRequest, RetrieveTransferParametersResponse>
retrieveTransferParametersSettings()1027         retrieveTransferParametersSettings() {
1028       return retrieveTransferParametersSettings;
1029     }
1030 
1031     /** Returns the builder for the settings used for calls to transferDomain. */
transferDomainSettings()1032     public UnaryCallSettings.Builder<TransferDomainRequest, Operation> transferDomainSettings() {
1033       return transferDomainSettings;
1034     }
1035 
1036     /** Returns the builder for the settings used for calls to transferDomain. */
1037     @BetaApi(
1038         "The surface for use by generated code is not stable yet and may change in the future.")
1039     public OperationCallSettings.Builder<TransferDomainRequest, Registration, OperationMetadata>
transferDomainOperationSettings()1040         transferDomainOperationSettings() {
1041       return transferDomainOperationSettings;
1042     }
1043 
1044     /** Returns the builder for the settings used for calls to listRegistrations. */
1045     public PagedCallSettings.Builder<
1046             ListRegistrationsRequest, ListRegistrationsResponse, ListRegistrationsPagedResponse>
listRegistrationsSettings()1047         listRegistrationsSettings() {
1048       return listRegistrationsSettings;
1049     }
1050 
1051     /** Returns the builder for the settings used for calls to getRegistration. */
1052     public UnaryCallSettings.Builder<GetRegistrationRequest, Registration>
getRegistrationSettings()1053         getRegistrationSettings() {
1054       return getRegistrationSettings;
1055     }
1056 
1057     /** Returns the builder for the settings used for calls to updateRegistration. */
1058     public UnaryCallSettings.Builder<UpdateRegistrationRequest, Operation>
updateRegistrationSettings()1059         updateRegistrationSettings() {
1060       return updateRegistrationSettings;
1061     }
1062 
1063     /** Returns the builder for the settings used for calls to updateRegistration. */
1064     @BetaApi(
1065         "The surface for use by generated code is not stable yet and may change in the future.")
1066     public OperationCallSettings.Builder<UpdateRegistrationRequest, Registration, OperationMetadata>
updateRegistrationOperationSettings()1067         updateRegistrationOperationSettings() {
1068       return updateRegistrationOperationSettings;
1069     }
1070 
1071     /** Returns the builder for the settings used for calls to configureManagementSettings. */
1072     public UnaryCallSettings.Builder<ConfigureManagementSettingsRequest, Operation>
configureManagementSettingsSettings()1073         configureManagementSettingsSettings() {
1074       return configureManagementSettingsSettings;
1075     }
1076 
1077     /** Returns the builder for the settings used for calls to configureManagementSettings. */
1078     @BetaApi(
1079         "The surface for use by generated code is not stable yet and may change in the future.")
1080     public OperationCallSettings.Builder<
1081             ConfigureManagementSettingsRequest, Registration, OperationMetadata>
configureManagementSettingsOperationSettings()1082         configureManagementSettingsOperationSettings() {
1083       return configureManagementSettingsOperationSettings;
1084     }
1085 
1086     /** Returns the builder for the settings used for calls to configureDnsSettings. */
1087     public UnaryCallSettings.Builder<ConfigureDnsSettingsRequest, Operation>
configureDnsSettingsSettings()1088         configureDnsSettingsSettings() {
1089       return configureDnsSettingsSettings;
1090     }
1091 
1092     /** Returns the builder for the settings used for calls to configureDnsSettings. */
1093     @BetaApi(
1094         "The surface for use by generated code is not stable yet and may change in the future.")
1095     public OperationCallSettings.Builder<
1096             ConfigureDnsSettingsRequest, Registration, OperationMetadata>
configureDnsSettingsOperationSettings()1097         configureDnsSettingsOperationSettings() {
1098       return configureDnsSettingsOperationSettings;
1099     }
1100 
1101     /** Returns the builder for the settings used for calls to configureContactSettings. */
1102     public UnaryCallSettings.Builder<ConfigureContactSettingsRequest, Operation>
configureContactSettingsSettings()1103         configureContactSettingsSettings() {
1104       return configureContactSettingsSettings;
1105     }
1106 
1107     /** Returns the builder for the settings used for calls to configureContactSettings. */
1108     @BetaApi(
1109         "The surface for use by generated code is not stable yet and may change in the future.")
1110     public OperationCallSettings.Builder<
1111             ConfigureContactSettingsRequest, Registration, OperationMetadata>
configureContactSettingsOperationSettings()1112         configureContactSettingsOperationSettings() {
1113       return configureContactSettingsOperationSettings;
1114     }
1115 
1116     /** Returns the builder for the settings used for calls to exportRegistration. */
1117     public UnaryCallSettings.Builder<ExportRegistrationRequest, Operation>
exportRegistrationSettings()1118         exportRegistrationSettings() {
1119       return exportRegistrationSettings;
1120     }
1121 
1122     /** Returns the builder for the settings used for calls to exportRegistration. */
1123     @BetaApi(
1124         "The surface for use by generated code is not stable yet and may change in the future.")
1125     public OperationCallSettings.Builder<ExportRegistrationRequest, Registration, OperationMetadata>
exportRegistrationOperationSettings()1126         exportRegistrationOperationSettings() {
1127       return exportRegistrationOperationSettings;
1128     }
1129 
1130     /** Returns the builder for the settings used for calls to deleteRegistration. */
1131     public UnaryCallSettings.Builder<DeleteRegistrationRequest, Operation>
deleteRegistrationSettings()1132         deleteRegistrationSettings() {
1133       return deleteRegistrationSettings;
1134     }
1135 
1136     /** Returns the builder for the settings used for calls to deleteRegistration. */
1137     @BetaApi(
1138         "The surface for use by generated code is not stable yet and may change in the future.")
1139     public OperationCallSettings.Builder<DeleteRegistrationRequest, Empty, OperationMetadata>
deleteRegistrationOperationSettings()1140         deleteRegistrationOperationSettings() {
1141       return deleteRegistrationOperationSettings;
1142     }
1143 
1144     /** Returns the builder for the settings used for calls to retrieveAuthorizationCode. */
1145     public UnaryCallSettings.Builder<RetrieveAuthorizationCodeRequest, AuthorizationCode>
retrieveAuthorizationCodeSettings()1146         retrieveAuthorizationCodeSettings() {
1147       return retrieveAuthorizationCodeSettings;
1148     }
1149 
1150     /** Returns the builder for the settings used for calls to resetAuthorizationCode. */
1151     public UnaryCallSettings.Builder<ResetAuthorizationCodeRequest, AuthorizationCode>
resetAuthorizationCodeSettings()1152         resetAuthorizationCodeSettings() {
1153       return resetAuthorizationCodeSettings;
1154     }
1155 
1156     @Override
build()1157     public DomainsStubSettings build() throws IOException {
1158       return new DomainsStubSettings(this);
1159     }
1160   }
1161 }
1162