• 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.BetaApi;
22 import com.google.api.gax.core.BackgroundResource;
23 import com.google.api.gax.core.BackgroundResourceAggregation;
24 import com.google.api.gax.grpc.GrpcCallSettings;
25 import com.google.api.gax.grpc.GrpcStubCallableFactory;
26 import com.google.api.gax.rpc.ClientContext;
27 import com.google.api.gax.rpc.OperationCallable;
28 import com.google.api.gax.rpc.UnaryCallable;
29 import com.google.cloud.domains.v1beta1.AuthorizationCode;
30 import com.google.cloud.domains.v1beta1.ConfigureContactSettingsRequest;
31 import com.google.cloud.domains.v1beta1.ConfigureDnsSettingsRequest;
32 import com.google.cloud.domains.v1beta1.ConfigureManagementSettingsRequest;
33 import com.google.cloud.domains.v1beta1.DeleteRegistrationRequest;
34 import com.google.cloud.domains.v1beta1.ExportRegistrationRequest;
35 import com.google.cloud.domains.v1beta1.GetRegistrationRequest;
36 import com.google.cloud.domains.v1beta1.ListRegistrationsRequest;
37 import com.google.cloud.domains.v1beta1.ListRegistrationsResponse;
38 import com.google.cloud.domains.v1beta1.OperationMetadata;
39 import com.google.cloud.domains.v1beta1.RegisterDomainRequest;
40 import com.google.cloud.domains.v1beta1.Registration;
41 import com.google.cloud.domains.v1beta1.ResetAuthorizationCodeRequest;
42 import com.google.cloud.domains.v1beta1.RetrieveAuthorizationCodeRequest;
43 import com.google.cloud.domains.v1beta1.RetrieveRegisterParametersRequest;
44 import com.google.cloud.domains.v1beta1.RetrieveRegisterParametersResponse;
45 import com.google.cloud.domains.v1beta1.RetrieveTransferParametersRequest;
46 import com.google.cloud.domains.v1beta1.RetrieveTransferParametersResponse;
47 import com.google.cloud.domains.v1beta1.SearchDomainsRequest;
48 import com.google.cloud.domains.v1beta1.SearchDomainsResponse;
49 import com.google.cloud.domains.v1beta1.TransferDomainRequest;
50 import com.google.cloud.domains.v1beta1.UpdateRegistrationRequest;
51 import com.google.common.collect.ImmutableMap;
52 import com.google.longrunning.Operation;
53 import com.google.longrunning.stub.GrpcOperationsStub;
54 import com.google.protobuf.Empty;
55 import io.grpc.MethodDescriptor;
56 import io.grpc.protobuf.ProtoUtils;
57 import java.io.IOException;
58 import java.util.concurrent.TimeUnit;
59 import javax.annotation.Generated;
60 
61 // AUTO-GENERATED DOCUMENTATION AND CLASS.
62 /**
63  * gRPC stub implementation for the Domains service API.
64  *
65  * <p>This class is for advanced usage and reflects the underlying API directly.
66  */
67 @BetaApi
68 @Generated("by gapic-generator-java")
69 public class GrpcDomainsStub extends DomainsStub {
70   private static final MethodDescriptor<SearchDomainsRequest, SearchDomainsResponse>
71       searchDomainsMethodDescriptor =
72           MethodDescriptor.<SearchDomainsRequest, SearchDomainsResponse>newBuilder()
73               .setType(MethodDescriptor.MethodType.UNARY)
74               .setFullMethodName("google.cloud.domains.v1beta1.Domains/SearchDomains")
75               .setRequestMarshaller(
76                   ProtoUtils.marshaller(SearchDomainsRequest.getDefaultInstance()))
77               .setResponseMarshaller(
78                   ProtoUtils.marshaller(SearchDomainsResponse.getDefaultInstance()))
79               .build();
80 
81   private static final MethodDescriptor<
82           RetrieveRegisterParametersRequest, RetrieveRegisterParametersResponse>
83       retrieveRegisterParametersMethodDescriptor =
84           MethodDescriptor
85               .<RetrieveRegisterParametersRequest, RetrieveRegisterParametersResponse>newBuilder()
86               .setType(MethodDescriptor.MethodType.UNARY)
87               .setFullMethodName("google.cloud.domains.v1beta1.Domains/RetrieveRegisterParameters")
88               .setRequestMarshaller(
89                   ProtoUtils.marshaller(RetrieveRegisterParametersRequest.getDefaultInstance()))
90               .setResponseMarshaller(
91                   ProtoUtils.marshaller(RetrieveRegisterParametersResponse.getDefaultInstance()))
92               .build();
93 
94   private static final MethodDescriptor<RegisterDomainRequest, Operation>
95       registerDomainMethodDescriptor =
96           MethodDescriptor.<RegisterDomainRequest, Operation>newBuilder()
97               .setType(MethodDescriptor.MethodType.UNARY)
98               .setFullMethodName("google.cloud.domains.v1beta1.Domains/RegisterDomain")
99               .setRequestMarshaller(
100                   ProtoUtils.marshaller(RegisterDomainRequest.getDefaultInstance()))
101               .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
102               .build();
103 
104   private static final MethodDescriptor<
105           RetrieveTransferParametersRequest, RetrieveTransferParametersResponse>
106       retrieveTransferParametersMethodDescriptor =
107           MethodDescriptor
108               .<RetrieveTransferParametersRequest, RetrieveTransferParametersResponse>newBuilder()
109               .setType(MethodDescriptor.MethodType.UNARY)
110               .setFullMethodName("google.cloud.domains.v1beta1.Domains/RetrieveTransferParameters")
111               .setRequestMarshaller(
112                   ProtoUtils.marshaller(RetrieveTransferParametersRequest.getDefaultInstance()))
113               .setResponseMarshaller(
114                   ProtoUtils.marshaller(RetrieveTransferParametersResponse.getDefaultInstance()))
115               .build();
116 
117   private static final MethodDescriptor<TransferDomainRequest, Operation>
118       transferDomainMethodDescriptor =
119           MethodDescriptor.<TransferDomainRequest, Operation>newBuilder()
120               .setType(MethodDescriptor.MethodType.UNARY)
121               .setFullMethodName("google.cloud.domains.v1beta1.Domains/TransferDomain")
122               .setRequestMarshaller(
123                   ProtoUtils.marshaller(TransferDomainRequest.getDefaultInstance()))
124               .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
125               .build();
126 
127   private static final MethodDescriptor<ListRegistrationsRequest, ListRegistrationsResponse>
128       listRegistrationsMethodDescriptor =
129           MethodDescriptor.<ListRegistrationsRequest, ListRegistrationsResponse>newBuilder()
130               .setType(MethodDescriptor.MethodType.UNARY)
131               .setFullMethodName("google.cloud.domains.v1beta1.Domains/ListRegistrations")
132               .setRequestMarshaller(
133                   ProtoUtils.marshaller(ListRegistrationsRequest.getDefaultInstance()))
134               .setResponseMarshaller(
135                   ProtoUtils.marshaller(ListRegistrationsResponse.getDefaultInstance()))
136               .build();
137 
138   private static final MethodDescriptor<GetRegistrationRequest, Registration>
139       getRegistrationMethodDescriptor =
140           MethodDescriptor.<GetRegistrationRequest, Registration>newBuilder()
141               .setType(MethodDescriptor.MethodType.UNARY)
142               .setFullMethodName("google.cloud.domains.v1beta1.Domains/GetRegistration")
143               .setRequestMarshaller(
144                   ProtoUtils.marshaller(GetRegistrationRequest.getDefaultInstance()))
145               .setResponseMarshaller(ProtoUtils.marshaller(Registration.getDefaultInstance()))
146               .build();
147 
148   private static final MethodDescriptor<UpdateRegistrationRequest, Operation>
149       updateRegistrationMethodDescriptor =
150           MethodDescriptor.<UpdateRegistrationRequest, Operation>newBuilder()
151               .setType(MethodDescriptor.MethodType.UNARY)
152               .setFullMethodName("google.cloud.domains.v1beta1.Domains/UpdateRegistration")
153               .setRequestMarshaller(
154                   ProtoUtils.marshaller(UpdateRegistrationRequest.getDefaultInstance()))
155               .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
156               .build();
157 
158   private static final MethodDescriptor<ConfigureManagementSettingsRequest, Operation>
159       configureManagementSettingsMethodDescriptor =
160           MethodDescriptor.<ConfigureManagementSettingsRequest, Operation>newBuilder()
161               .setType(MethodDescriptor.MethodType.UNARY)
162               .setFullMethodName("google.cloud.domains.v1beta1.Domains/ConfigureManagementSettings")
163               .setRequestMarshaller(
164                   ProtoUtils.marshaller(ConfigureManagementSettingsRequest.getDefaultInstance()))
165               .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
166               .build();
167 
168   private static final MethodDescriptor<ConfigureDnsSettingsRequest, Operation>
169       configureDnsSettingsMethodDescriptor =
170           MethodDescriptor.<ConfigureDnsSettingsRequest, Operation>newBuilder()
171               .setType(MethodDescriptor.MethodType.UNARY)
172               .setFullMethodName("google.cloud.domains.v1beta1.Domains/ConfigureDnsSettings")
173               .setRequestMarshaller(
174                   ProtoUtils.marshaller(ConfigureDnsSettingsRequest.getDefaultInstance()))
175               .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
176               .build();
177 
178   private static final MethodDescriptor<ConfigureContactSettingsRequest, Operation>
179       configureContactSettingsMethodDescriptor =
180           MethodDescriptor.<ConfigureContactSettingsRequest, Operation>newBuilder()
181               .setType(MethodDescriptor.MethodType.UNARY)
182               .setFullMethodName("google.cloud.domains.v1beta1.Domains/ConfigureContactSettings")
183               .setRequestMarshaller(
184                   ProtoUtils.marshaller(ConfigureContactSettingsRequest.getDefaultInstance()))
185               .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
186               .build();
187 
188   private static final MethodDescriptor<ExportRegistrationRequest, Operation>
189       exportRegistrationMethodDescriptor =
190           MethodDescriptor.<ExportRegistrationRequest, Operation>newBuilder()
191               .setType(MethodDescriptor.MethodType.UNARY)
192               .setFullMethodName("google.cloud.domains.v1beta1.Domains/ExportRegistration")
193               .setRequestMarshaller(
194                   ProtoUtils.marshaller(ExportRegistrationRequest.getDefaultInstance()))
195               .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
196               .build();
197 
198   private static final MethodDescriptor<DeleteRegistrationRequest, Operation>
199       deleteRegistrationMethodDescriptor =
200           MethodDescriptor.<DeleteRegistrationRequest, Operation>newBuilder()
201               .setType(MethodDescriptor.MethodType.UNARY)
202               .setFullMethodName("google.cloud.domains.v1beta1.Domains/DeleteRegistration")
203               .setRequestMarshaller(
204                   ProtoUtils.marshaller(DeleteRegistrationRequest.getDefaultInstance()))
205               .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
206               .build();
207 
208   private static final MethodDescriptor<RetrieveAuthorizationCodeRequest, AuthorizationCode>
209       retrieveAuthorizationCodeMethodDescriptor =
210           MethodDescriptor.<RetrieveAuthorizationCodeRequest, AuthorizationCode>newBuilder()
211               .setType(MethodDescriptor.MethodType.UNARY)
212               .setFullMethodName("google.cloud.domains.v1beta1.Domains/RetrieveAuthorizationCode")
213               .setRequestMarshaller(
214                   ProtoUtils.marshaller(RetrieveAuthorizationCodeRequest.getDefaultInstance()))
215               .setResponseMarshaller(ProtoUtils.marshaller(AuthorizationCode.getDefaultInstance()))
216               .build();
217 
218   private static final MethodDescriptor<ResetAuthorizationCodeRequest, AuthorizationCode>
219       resetAuthorizationCodeMethodDescriptor =
220           MethodDescriptor.<ResetAuthorizationCodeRequest, AuthorizationCode>newBuilder()
221               .setType(MethodDescriptor.MethodType.UNARY)
222               .setFullMethodName("google.cloud.domains.v1beta1.Domains/ResetAuthorizationCode")
223               .setRequestMarshaller(
224                   ProtoUtils.marshaller(ResetAuthorizationCodeRequest.getDefaultInstance()))
225               .setResponseMarshaller(ProtoUtils.marshaller(AuthorizationCode.getDefaultInstance()))
226               .build();
227 
228   private final UnaryCallable<SearchDomainsRequest, SearchDomainsResponse> searchDomainsCallable;
229   private final UnaryCallable<RetrieveRegisterParametersRequest, RetrieveRegisterParametersResponse>
230       retrieveRegisterParametersCallable;
231   private final UnaryCallable<RegisterDomainRequest, Operation> registerDomainCallable;
232   private final OperationCallable<RegisterDomainRequest, Registration, OperationMetadata>
233       registerDomainOperationCallable;
234   private final UnaryCallable<RetrieveTransferParametersRequest, RetrieveTransferParametersResponse>
235       retrieveTransferParametersCallable;
236   private final UnaryCallable<TransferDomainRequest, Operation> transferDomainCallable;
237   private final OperationCallable<TransferDomainRequest, Registration, OperationMetadata>
238       transferDomainOperationCallable;
239   private final UnaryCallable<ListRegistrationsRequest, ListRegistrationsResponse>
240       listRegistrationsCallable;
241   private final UnaryCallable<ListRegistrationsRequest, ListRegistrationsPagedResponse>
242       listRegistrationsPagedCallable;
243   private final UnaryCallable<GetRegistrationRequest, Registration> getRegistrationCallable;
244   private final UnaryCallable<UpdateRegistrationRequest, Operation> updateRegistrationCallable;
245   private final OperationCallable<UpdateRegistrationRequest, Registration, OperationMetadata>
246       updateRegistrationOperationCallable;
247   private final UnaryCallable<ConfigureManagementSettingsRequest, Operation>
248       configureManagementSettingsCallable;
249   private final OperationCallable<
250           ConfigureManagementSettingsRequest, Registration, OperationMetadata>
251       configureManagementSettingsOperationCallable;
252   private final UnaryCallable<ConfigureDnsSettingsRequest, Operation> configureDnsSettingsCallable;
253   private final OperationCallable<ConfigureDnsSettingsRequest, Registration, OperationMetadata>
254       configureDnsSettingsOperationCallable;
255   private final UnaryCallable<ConfigureContactSettingsRequest, Operation>
256       configureContactSettingsCallable;
257   private final OperationCallable<ConfigureContactSettingsRequest, Registration, OperationMetadata>
258       configureContactSettingsOperationCallable;
259   private final UnaryCallable<ExportRegistrationRequest, Operation> exportRegistrationCallable;
260   private final OperationCallable<ExportRegistrationRequest, Registration, OperationMetadata>
261       exportRegistrationOperationCallable;
262   private final UnaryCallable<DeleteRegistrationRequest, Operation> deleteRegistrationCallable;
263   private final OperationCallable<DeleteRegistrationRequest, Empty, OperationMetadata>
264       deleteRegistrationOperationCallable;
265   private final UnaryCallable<RetrieveAuthorizationCodeRequest, AuthorizationCode>
266       retrieveAuthorizationCodeCallable;
267   private final UnaryCallable<ResetAuthorizationCodeRequest, AuthorizationCode>
268       resetAuthorizationCodeCallable;
269 
270   private final BackgroundResource backgroundResources;
271   private final GrpcOperationsStub operationsStub;
272   private final GrpcStubCallableFactory callableFactory;
273 
create(DomainsStubSettings settings)274   public static final GrpcDomainsStub create(DomainsStubSettings settings) throws IOException {
275     return new GrpcDomainsStub(settings, ClientContext.create(settings));
276   }
277 
create(ClientContext clientContext)278   public static final GrpcDomainsStub create(ClientContext clientContext) throws IOException {
279     return new GrpcDomainsStub(DomainsStubSettings.newBuilder().build(), clientContext);
280   }
281 
create( ClientContext clientContext, GrpcStubCallableFactory callableFactory)282   public static final GrpcDomainsStub create(
283       ClientContext clientContext, GrpcStubCallableFactory callableFactory) throws IOException {
284     return new GrpcDomainsStub(
285         DomainsStubSettings.newBuilder().build(), clientContext, callableFactory);
286   }
287 
288   /**
289    * Constructs an instance of GrpcDomainsStub, using the given settings. This is protected so that
290    * it is easy to make a subclass, but otherwise, the static factory methods should be preferred.
291    */
GrpcDomainsStub(DomainsStubSettings settings, ClientContext clientContext)292   protected GrpcDomainsStub(DomainsStubSettings settings, ClientContext clientContext)
293       throws IOException {
294     this(settings, clientContext, new GrpcDomainsCallableFactory());
295   }
296 
297   /**
298    * Constructs an instance of GrpcDomainsStub, using the given settings. This is protected so that
299    * it is easy to make a subclass, but otherwise, the static factory methods should be preferred.
300    */
GrpcDomainsStub( DomainsStubSettings settings, ClientContext clientContext, GrpcStubCallableFactory callableFactory)301   protected GrpcDomainsStub(
302       DomainsStubSettings settings,
303       ClientContext clientContext,
304       GrpcStubCallableFactory callableFactory)
305       throws IOException {
306     this.callableFactory = callableFactory;
307     this.operationsStub = GrpcOperationsStub.create(clientContext, callableFactory);
308 
309     GrpcCallSettings<SearchDomainsRequest, SearchDomainsResponse> searchDomainsTransportSettings =
310         GrpcCallSettings.<SearchDomainsRequest, SearchDomainsResponse>newBuilder()
311             .setMethodDescriptor(searchDomainsMethodDescriptor)
312             .setParamsExtractor(
313                 request -> {
314                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
315                   params.put("location", String.valueOf(request.getLocation()));
316                   return params.build();
317                 })
318             .build();
319     GrpcCallSettings<RetrieveRegisterParametersRequest, RetrieveRegisterParametersResponse>
320         retrieveRegisterParametersTransportSettings =
321             GrpcCallSettings
322                 .<RetrieveRegisterParametersRequest, RetrieveRegisterParametersResponse>newBuilder()
323                 .setMethodDescriptor(retrieveRegisterParametersMethodDescriptor)
324                 .setParamsExtractor(
325                     request -> {
326                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
327                       params.put("location", String.valueOf(request.getLocation()));
328                       return params.build();
329                     })
330                 .build();
331     GrpcCallSettings<RegisterDomainRequest, Operation> registerDomainTransportSettings =
332         GrpcCallSettings.<RegisterDomainRequest, Operation>newBuilder()
333             .setMethodDescriptor(registerDomainMethodDescriptor)
334             .setParamsExtractor(
335                 request -> {
336                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
337                   params.put("parent", String.valueOf(request.getParent()));
338                   return params.build();
339                 })
340             .build();
341     GrpcCallSettings<RetrieveTransferParametersRequest, RetrieveTransferParametersResponse>
342         retrieveTransferParametersTransportSettings =
343             GrpcCallSettings
344                 .<RetrieveTransferParametersRequest, RetrieveTransferParametersResponse>newBuilder()
345                 .setMethodDescriptor(retrieveTransferParametersMethodDescriptor)
346                 .setParamsExtractor(
347                     request -> {
348                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
349                       params.put("location", String.valueOf(request.getLocation()));
350                       return params.build();
351                     })
352                 .build();
353     GrpcCallSettings<TransferDomainRequest, Operation> transferDomainTransportSettings =
354         GrpcCallSettings.<TransferDomainRequest, Operation>newBuilder()
355             .setMethodDescriptor(transferDomainMethodDescriptor)
356             .setParamsExtractor(
357                 request -> {
358                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
359                   params.put("parent", String.valueOf(request.getParent()));
360                   return params.build();
361                 })
362             .build();
363     GrpcCallSettings<ListRegistrationsRequest, ListRegistrationsResponse>
364         listRegistrationsTransportSettings =
365             GrpcCallSettings.<ListRegistrationsRequest, ListRegistrationsResponse>newBuilder()
366                 .setMethodDescriptor(listRegistrationsMethodDescriptor)
367                 .setParamsExtractor(
368                     request -> {
369                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
370                       params.put("parent", String.valueOf(request.getParent()));
371                       return params.build();
372                     })
373                 .build();
374     GrpcCallSettings<GetRegistrationRequest, Registration> getRegistrationTransportSettings =
375         GrpcCallSettings.<GetRegistrationRequest, Registration>newBuilder()
376             .setMethodDescriptor(getRegistrationMethodDescriptor)
377             .setParamsExtractor(
378                 request -> {
379                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
380                   params.put("name", String.valueOf(request.getName()));
381                   return params.build();
382                 })
383             .build();
384     GrpcCallSettings<UpdateRegistrationRequest, Operation> updateRegistrationTransportSettings =
385         GrpcCallSettings.<UpdateRegistrationRequest, Operation>newBuilder()
386             .setMethodDescriptor(updateRegistrationMethodDescriptor)
387             .setParamsExtractor(
388                 request -> {
389                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
390                   params.put(
391                       "registration.name", String.valueOf(request.getRegistration().getName()));
392                   return params.build();
393                 })
394             .build();
395     GrpcCallSettings<ConfigureManagementSettingsRequest, Operation>
396         configureManagementSettingsTransportSettings =
397             GrpcCallSettings.<ConfigureManagementSettingsRequest, Operation>newBuilder()
398                 .setMethodDescriptor(configureManagementSettingsMethodDescriptor)
399                 .setParamsExtractor(
400                     request -> {
401                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
402                       params.put("registration", String.valueOf(request.getRegistration()));
403                       return params.build();
404                     })
405                 .build();
406     GrpcCallSettings<ConfigureDnsSettingsRequest, Operation> configureDnsSettingsTransportSettings =
407         GrpcCallSettings.<ConfigureDnsSettingsRequest, Operation>newBuilder()
408             .setMethodDescriptor(configureDnsSettingsMethodDescriptor)
409             .setParamsExtractor(
410                 request -> {
411                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
412                   params.put("registration", String.valueOf(request.getRegistration()));
413                   return params.build();
414                 })
415             .build();
416     GrpcCallSettings<ConfigureContactSettingsRequest, Operation>
417         configureContactSettingsTransportSettings =
418             GrpcCallSettings.<ConfigureContactSettingsRequest, Operation>newBuilder()
419                 .setMethodDescriptor(configureContactSettingsMethodDescriptor)
420                 .setParamsExtractor(
421                     request -> {
422                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
423                       params.put("registration", String.valueOf(request.getRegistration()));
424                       return params.build();
425                     })
426                 .build();
427     GrpcCallSettings<ExportRegistrationRequest, Operation> exportRegistrationTransportSettings =
428         GrpcCallSettings.<ExportRegistrationRequest, Operation>newBuilder()
429             .setMethodDescriptor(exportRegistrationMethodDescriptor)
430             .setParamsExtractor(
431                 request -> {
432                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
433                   params.put("name", String.valueOf(request.getName()));
434                   return params.build();
435                 })
436             .build();
437     GrpcCallSettings<DeleteRegistrationRequest, Operation> deleteRegistrationTransportSettings =
438         GrpcCallSettings.<DeleteRegistrationRequest, Operation>newBuilder()
439             .setMethodDescriptor(deleteRegistrationMethodDescriptor)
440             .setParamsExtractor(
441                 request -> {
442                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
443                   params.put("name", String.valueOf(request.getName()));
444                   return params.build();
445                 })
446             .build();
447     GrpcCallSettings<RetrieveAuthorizationCodeRequest, AuthorizationCode>
448         retrieveAuthorizationCodeTransportSettings =
449             GrpcCallSettings.<RetrieveAuthorizationCodeRequest, AuthorizationCode>newBuilder()
450                 .setMethodDescriptor(retrieveAuthorizationCodeMethodDescriptor)
451                 .setParamsExtractor(
452                     request -> {
453                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
454                       params.put("registration", String.valueOf(request.getRegistration()));
455                       return params.build();
456                     })
457                 .build();
458     GrpcCallSettings<ResetAuthorizationCodeRequest, AuthorizationCode>
459         resetAuthorizationCodeTransportSettings =
460             GrpcCallSettings.<ResetAuthorizationCodeRequest, AuthorizationCode>newBuilder()
461                 .setMethodDescriptor(resetAuthorizationCodeMethodDescriptor)
462                 .setParamsExtractor(
463                     request -> {
464                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
465                       params.put("registration", String.valueOf(request.getRegistration()));
466                       return params.build();
467                     })
468                 .build();
469 
470     this.searchDomainsCallable =
471         callableFactory.createUnaryCallable(
472             searchDomainsTransportSettings, settings.searchDomainsSettings(), clientContext);
473     this.retrieveRegisterParametersCallable =
474         callableFactory.createUnaryCallable(
475             retrieveRegisterParametersTransportSettings,
476             settings.retrieveRegisterParametersSettings(),
477             clientContext);
478     this.registerDomainCallable =
479         callableFactory.createUnaryCallable(
480             registerDomainTransportSettings, settings.registerDomainSettings(), clientContext);
481     this.registerDomainOperationCallable =
482         callableFactory.createOperationCallable(
483             registerDomainTransportSettings,
484             settings.registerDomainOperationSettings(),
485             clientContext,
486             operationsStub);
487     this.retrieveTransferParametersCallable =
488         callableFactory.createUnaryCallable(
489             retrieveTransferParametersTransportSettings,
490             settings.retrieveTransferParametersSettings(),
491             clientContext);
492     this.transferDomainCallable =
493         callableFactory.createUnaryCallable(
494             transferDomainTransportSettings, settings.transferDomainSettings(), clientContext);
495     this.transferDomainOperationCallable =
496         callableFactory.createOperationCallable(
497             transferDomainTransportSettings,
498             settings.transferDomainOperationSettings(),
499             clientContext,
500             operationsStub);
501     this.listRegistrationsCallable =
502         callableFactory.createUnaryCallable(
503             listRegistrationsTransportSettings,
504             settings.listRegistrationsSettings(),
505             clientContext);
506     this.listRegistrationsPagedCallable =
507         callableFactory.createPagedCallable(
508             listRegistrationsTransportSettings,
509             settings.listRegistrationsSettings(),
510             clientContext);
511     this.getRegistrationCallable =
512         callableFactory.createUnaryCallable(
513             getRegistrationTransportSettings, settings.getRegistrationSettings(), clientContext);
514     this.updateRegistrationCallable =
515         callableFactory.createUnaryCallable(
516             updateRegistrationTransportSettings,
517             settings.updateRegistrationSettings(),
518             clientContext);
519     this.updateRegistrationOperationCallable =
520         callableFactory.createOperationCallable(
521             updateRegistrationTransportSettings,
522             settings.updateRegistrationOperationSettings(),
523             clientContext,
524             operationsStub);
525     this.configureManagementSettingsCallable =
526         callableFactory.createUnaryCallable(
527             configureManagementSettingsTransportSettings,
528             settings.configureManagementSettingsSettings(),
529             clientContext);
530     this.configureManagementSettingsOperationCallable =
531         callableFactory.createOperationCallable(
532             configureManagementSettingsTransportSettings,
533             settings.configureManagementSettingsOperationSettings(),
534             clientContext,
535             operationsStub);
536     this.configureDnsSettingsCallable =
537         callableFactory.createUnaryCallable(
538             configureDnsSettingsTransportSettings,
539             settings.configureDnsSettingsSettings(),
540             clientContext);
541     this.configureDnsSettingsOperationCallable =
542         callableFactory.createOperationCallable(
543             configureDnsSettingsTransportSettings,
544             settings.configureDnsSettingsOperationSettings(),
545             clientContext,
546             operationsStub);
547     this.configureContactSettingsCallable =
548         callableFactory.createUnaryCallable(
549             configureContactSettingsTransportSettings,
550             settings.configureContactSettingsSettings(),
551             clientContext);
552     this.configureContactSettingsOperationCallable =
553         callableFactory.createOperationCallable(
554             configureContactSettingsTransportSettings,
555             settings.configureContactSettingsOperationSettings(),
556             clientContext,
557             operationsStub);
558     this.exportRegistrationCallable =
559         callableFactory.createUnaryCallable(
560             exportRegistrationTransportSettings,
561             settings.exportRegistrationSettings(),
562             clientContext);
563     this.exportRegistrationOperationCallable =
564         callableFactory.createOperationCallable(
565             exportRegistrationTransportSettings,
566             settings.exportRegistrationOperationSettings(),
567             clientContext,
568             operationsStub);
569     this.deleteRegistrationCallable =
570         callableFactory.createUnaryCallable(
571             deleteRegistrationTransportSettings,
572             settings.deleteRegistrationSettings(),
573             clientContext);
574     this.deleteRegistrationOperationCallable =
575         callableFactory.createOperationCallable(
576             deleteRegistrationTransportSettings,
577             settings.deleteRegistrationOperationSettings(),
578             clientContext,
579             operationsStub);
580     this.retrieveAuthorizationCodeCallable =
581         callableFactory.createUnaryCallable(
582             retrieveAuthorizationCodeTransportSettings,
583             settings.retrieveAuthorizationCodeSettings(),
584             clientContext);
585     this.resetAuthorizationCodeCallable =
586         callableFactory.createUnaryCallable(
587             resetAuthorizationCodeTransportSettings,
588             settings.resetAuthorizationCodeSettings(),
589             clientContext);
590 
591     this.backgroundResources =
592         new BackgroundResourceAggregation(clientContext.getBackgroundResources());
593   }
594 
getOperationsStub()595   public GrpcOperationsStub getOperationsStub() {
596     return operationsStub;
597   }
598 
599   @Override
searchDomainsCallable()600   public UnaryCallable<SearchDomainsRequest, SearchDomainsResponse> searchDomainsCallable() {
601     return searchDomainsCallable;
602   }
603 
604   @Override
605   public UnaryCallable<RetrieveRegisterParametersRequest, RetrieveRegisterParametersResponse>
retrieveRegisterParametersCallable()606       retrieveRegisterParametersCallable() {
607     return retrieveRegisterParametersCallable;
608   }
609 
610   @Override
registerDomainCallable()611   public UnaryCallable<RegisterDomainRequest, Operation> registerDomainCallable() {
612     return registerDomainCallable;
613   }
614 
615   @Override
616   public OperationCallable<RegisterDomainRequest, Registration, OperationMetadata>
registerDomainOperationCallable()617       registerDomainOperationCallable() {
618     return registerDomainOperationCallable;
619   }
620 
621   @Override
622   public UnaryCallable<RetrieveTransferParametersRequest, RetrieveTransferParametersResponse>
retrieveTransferParametersCallable()623       retrieveTransferParametersCallable() {
624     return retrieveTransferParametersCallable;
625   }
626 
627   @Override
transferDomainCallable()628   public UnaryCallable<TransferDomainRequest, Operation> transferDomainCallable() {
629     return transferDomainCallable;
630   }
631 
632   @Override
633   public OperationCallable<TransferDomainRequest, Registration, OperationMetadata>
transferDomainOperationCallable()634       transferDomainOperationCallable() {
635     return transferDomainOperationCallable;
636   }
637 
638   @Override
639   public UnaryCallable<ListRegistrationsRequest, ListRegistrationsResponse>
listRegistrationsCallable()640       listRegistrationsCallable() {
641     return listRegistrationsCallable;
642   }
643 
644   @Override
645   public UnaryCallable<ListRegistrationsRequest, ListRegistrationsPagedResponse>
listRegistrationsPagedCallable()646       listRegistrationsPagedCallable() {
647     return listRegistrationsPagedCallable;
648   }
649 
650   @Override
getRegistrationCallable()651   public UnaryCallable<GetRegistrationRequest, Registration> getRegistrationCallable() {
652     return getRegistrationCallable;
653   }
654 
655   @Override
updateRegistrationCallable()656   public UnaryCallable<UpdateRegistrationRequest, Operation> updateRegistrationCallable() {
657     return updateRegistrationCallable;
658   }
659 
660   @Override
661   public OperationCallable<UpdateRegistrationRequest, Registration, OperationMetadata>
updateRegistrationOperationCallable()662       updateRegistrationOperationCallable() {
663     return updateRegistrationOperationCallable;
664   }
665 
666   @Override
667   public UnaryCallable<ConfigureManagementSettingsRequest, Operation>
configureManagementSettingsCallable()668       configureManagementSettingsCallable() {
669     return configureManagementSettingsCallable;
670   }
671 
672   @Override
673   public OperationCallable<ConfigureManagementSettingsRequest, Registration, OperationMetadata>
configureManagementSettingsOperationCallable()674       configureManagementSettingsOperationCallable() {
675     return configureManagementSettingsOperationCallable;
676   }
677 
678   @Override
configureDnsSettingsCallable()679   public UnaryCallable<ConfigureDnsSettingsRequest, Operation> configureDnsSettingsCallable() {
680     return configureDnsSettingsCallable;
681   }
682 
683   @Override
684   public OperationCallable<ConfigureDnsSettingsRequest, Registration, OperationMetadata>
configureDnsSettingsOperationCallable()685       configureDnsSettingsOperationCallable() {
686     return configureDnsSettingsOperationCallable;
687   }
688 
689   @Override
690   public UnaryCallable<ConfigureContactSettingsRequest, Operation>
configureContactSettingsCallable()691       configureContactSettingsCallable() {
692     return configureContactSettingsCallable;
693   }
694 
695   @Override
696   public OperationCallable<ConfigureContactSettingsRequest, Registration, OperationMetadata>
configureContactSettingsOperationCallable()697       configureContactSettingsOperationCallable() {
698     return configureContactSettingsOperationCallable;
699   }
700 
701   @Override
exportRegistrationCallable()702   public UnaryCallable<ExportRegistrationRequest, Operation> exportRegistrationCallable() {
703     return exportRegistrationCallable;
704   }
705 
706   @Override
707   public OperationCallable<ExportRegistrationRequest, Registration, OperationMetadata>
exportRegistrationOperationCallable()708       exportRegistrationOperationCallable() {
709     return exportRegistrationOperationCallable;
710   }
711 
712   @Override
deleteRegistrationCallable()713   public UnaryCallable<DeleteRegistrationRequest, Operation> deleteRegistrationCallable() {
714     return deleteRegistrationCallable;
715   }
716 
717   @Override
718   public OperationCallable<DeleteRegistrationRequest, Empty, OperationMetadata>
deleteRegistrationOperationCallable()719       deleteRegistrationOperationCallable() {
720     return deleteRegistrationOperationCallable;
721   }
722 
723   @Override
724   public UnaryCallable<RetrieveAuthorizationCodeRequest, AuthorizationCode>
retrieveAuthorizationCodeCallable()725       retrieveAuthorizationCodeCallable() {
726     return retrieveAuthorizationCodeCallable;
727   }
728 
729   @Override
730   public UnaryCallable<ResetAuthorizationCodeRequest, AuthorizationCode>
resetAuthorizationCodeCallable()731       resetAuthorizationCodeCallable() {
732     return resetAuthorizationCodeCallable;
733   }
734 
735   @Override
close()736   public final void close() {
737     try {
738       backgroundResources.close();
739     } catch (RuntimeException e) {
740       throw e;
741     } catch (Exception e) {
742       throw new IllegalStateException("Failed to close resource", e);
743     }
744   }
745 
746   @Override
shutdown()747   public void shutdown() {
748     backgroundResources.shutdown();
749   }
750 
751   @Override
isShutdown()752   public boolean isShutdown() {
753     return backgroundResources.isShutdown();
754   }
755 
756   @Override
isTerminated()757   public boolean isTerminated() {
758     return backgroundResources.isTerminated();
759   }
760 
761   @Override
shutdownNow()762   public void shutdownNow() {
763     backgroundResources.shutdownNow();
764   }
765 
766   @Override
awaitTermination(long duration, TimeUnit unit)767   public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
768     return backgroundResources.awaitTermination(duration, unit);
769   }
770 }
771