• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2022 Google LLC
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.google.cloud.compute.v1.stub;
18 
19 import static com.google.cloud.compute.v1.AddressesClient.AggregatedListPagedResponse;
20 import static com.google.cloud.compute.v1.AddressesClient.ListPagedResponse;
21 
22 import com.google.api.core.BetaApi;
23 import com.google.api.core.InternalApi;
24 import com.google.api.gax.core.BackgroundResource;
25 import com.google.api.gax.core.BackgroundResourceAggregation;
26 import com.google.api.gax.httpjson.ApiMethodDescriptor;
27 import com.google.api.gax.httpjson.HttpJsonCallSettings;
28 import com.google.api.gax.httpjson.HttpJsonOperationSnapshot;
29 import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
30 import com.google.api.gax.httpjson.ProtoMessageRequestFormatter;
31 import com.google.api.gax.httpjson.ProtoMessageResponseParser;
32 import com.google.api.gax.httpjson.ProtoRestSerializer;
33 import com.google.api.gax.rpc.ClientContext;
34 import com.google.api.gax.rpc.OperationCallable;
35 import com.google.api.gax.rpc.UnaryCallable;
36 import com.google.cloud.compute.v1.Address;
37 import com.google.cloud.compute.v1.AddressAggregatedList;
38 import com.google.cloud.compute.v1.AddressList;
39 import com.google.cloud.compute.v1.AggregatedListAddressesRequest;
40 import com.google.cloud.compute.v1.DeleteAddressRequest;
41 import com.google.cloud.compute.v1.GetAddressRequest;
42 import com.google.cloud.compute.v1.InsertAddressRequest;
43 import com.google.cloud.compute.v1.ListAddressesRequest;
44 import com.google.cloud.compute.v1.Operation;
45 import com.google.cloud.compute.v1.Operation.Status;
46 import com.google.cloud.compute.v1.SetLabelsAddressRequest;
47 import com.google.protobuf.TypeRegistry;
48 import java.io.IOException;
49 import java.util.ArrayList;
50 import java.util.HashMap;
51 import java.util.List;
52 import java.util.Map;
53 import java.util.concurrent.TimeUnit;
54 import javax.annotation.Generated;
55 
56 // AUTO-GENERATED DOCUMENTATION AND CLASS.
57 /**
58  * REST stub implementation for the Addresses service API.
59  *
60  * <p>This class is for advanced usage and reflects the underlying API directly.
61  */
62 @Generated("by gapic-generator-java")
63 @BetaApi
64 public class HttpJsonAddressesStub extends AddressesStub {
65   private static final TypeRegistry typeRegistry =
66       TypeRegistry.newBuilder().add(Operation.getDescriptor()).build();
67 
68   private static final ApiMethodDescriptor<AggregatedListAddressesRequest, AddressAggregatedList>
69       aggregatedListMethodDescriptor =
70           ApiMethodDescriptor.<AggregatedListAddressesRequest, AddressAggregatedList>newBuilder()
71               .setFullMethodName("google.cloud.compute.v1.Addresses/AggregatedList")
72               .setHttpMethod("GET")
73               .setType(ApiMethodDescriptor.MethodType.UNARY)
74               .setRequestFormatter(
75                   ProtoMessageRequestFormatter.<AggregatedListAddressesRequest>newBuilder()
76                       .setPath(
77                           "/compute/v1/projects/{project}/aggregated/addresses",
78                           request -> {
79                             Map<String, String> fields = new HashMap<>();
80                             ProtoRestSerializer<AggregatedListAddressesRequest> serializer =
81                                 ProtoRestSerializer.create();
82                             serializer.putPathParam(fields, "project", request.getProject());
83                             return fields;
84                           })
85                       .setQueryParamsExtractor(
86                           request -> {
87                             Map<String, List<String>> fields = new HashMap<>();
88                             ProtoRestSerializer<AggregatedListAddressesRequest> serializer =
89                                 ProtoRestSerializer.create();
90                             if (request.hasFilter()) {
91                               serializer.putQueryParam(fields, "filter", request.getFilter());
92                             }
93                             if (request.hasIncludeAllScopes()) {
94                               serializer.putQueryParam(
95                                   fields, "includeAllScopes", request.getIncludeAllScopes());
96                             }
97                             if (request.hasMaxResults()) {
98                               serializer.putQueryParam(
99                                   fields, "maxResults", request.getMaxResults());
100                             }
101                             if (request.hasOrderBy()) {
102                               serializer.putQueryParam(fields, "orderBy", request.getOrderBy());
103                             }
104                             if (request.hasPageToken()) {
105                               serializer.putQueryParam(fields, "pageToken", request.getPageToken());
106                             }
107                             if (request.hasReturnPartialSuccess()) {
108                               serializer.putQueryParam(
109                                   fields,
110                                   "returnPartialSuccess",
111                                   request.getReturnPartialSuccess());
112                             }
113                             return fields;
114                           })
115                       .setRequestBodyExtractor(request -> null)
116                       .build())
117               .setResponseParser(
118                   ProtoMessageResponseParser.<AddressAggregatedList>newBuilder()
119                       .setDefaultInstance(AddressAggregatedList.getDefaultInstance())
120                       .setDefaultTypeRegistry(typeRegistry)
121                       .build())
122               .build();
123 
124   private static final ApiMethodDescriptor<DeleteAddressRequest, Operation> deleteMethodDescriptor =
125       ApiMethodDescriptor.<DeleteAddressRequest, Operation>newBuilder()
126           .setFullMethodName("google.cloud.compute.v1.Addresses/Delete")
127           .setHttpMethod("DELETE")
128           .setType(ApiMethodDescriptor.MethodType.UNARY)
129           .setRequestFormatter(
130               ProtoMessageRequestFormatter.<DeleteAddressRequest>newBuilder()
131                   .setPath(
132                       "/compute/v1/projects/{project}/regions/{region}/addresses/{address}",
133                       request -> {
134                         Map<String, String> fields = new HashMap<>();
135                         ProtoRestSerializer<DeleteAddressRequest> serializer =
136                             ProtoRestSerializer.create();
137                         serializer.putPathParam(fields, "address", request.getAddress());
138                         serializer.putPathParam(fields, "project", request.getProject());
139                         serializer.putPathParam(fields, "region", request.getRegion());
140                         return fields;
141                       })
142                   .setQueryParamsExtractor(
143                       request -> {
144                         Map<String, List<String>> fields = new HashMap<>();
145                         ProtoRestSerializer<DeleteAddressRequest> serializer =
146                             ProtoRestSerializer.create();
147                         if (request.hasRequestId()) {
148                           serializer.putQueryParam(fields, "requestId", request.getRequestId());
149                         }
150                         return fields;
151                       })
152                   .setRequestBodyExtractor(request -> null)
153                   .build())
154           .setResponseParser(
155               ProtoMessageResponseParser.<Operation>newBuilder()
156                   .setDefaultInstance(Operation.getDefaultInstance())
157                   .setDefaultTypeRegistry(typeRegistry)
158                   .build())
159           .setOperationSnapshotFactory(
160               (DeleteAddressRequest request, Operation response) -> {
161                 StringBuilder opName = new StringBuilder(response.getName());
162                 opName.append(":").append(request.getProject());
163                 opName.append(":").append(request.getRegion());
164                 return HttpJsonOperationSnapshot.newBuilder()
165                     .setName(opName.toString())
166                     .setMetadata(response)
167                     .setDone(Status.DONE.equals(response.getStatus()))
168                     .setResponse(response)
169                     .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
170                     .build();
171               })
172           .build();
173 
174   private static final ApiMethodDescriptor<GetAddressRequest, Address> getMethodDescriptor =
175       ApiMethodDescriptor.<GetAddressRequest, Address>newBuilder()
176           .setFullMethodName("google.cloud.compute.v1.Addresses/Get")
177           .setHttpMethod("GET")
178           .setType(ApiMethodDescriptor.MethodType.UNARY)
179           .setRequestFormatter(
180               ProtoMessageRequestFormatter.<GetAddressRequest>newBuilder()
181                   .setPath(
182                       "/compute/v1/projects/{project}/regions/{region}/addresses/{address}",
183                       request -> {
184                         Map<String, String> fields = new HashMap<>();
185                         ProtoRestSerializer<GetAddressRequest> serializer =
186                             ProtoRestSerializer.create();
187                         serializer.putPathParam(fields, "address", request.getAddress());
188                         serializer.putPathParam(fields, "project", request.getProject());
189                         serializer.putPathParam(fields, "region", request.getRegion());
190                         return fields;
191                       })
192                   .setQueryParamsExtractor(
193                       request -> {
194                         Map<String, List<String>> fields = new HashMap<>();
195                         ProtoRestSerializer<GetAddressRequest> serializer =
196                             ProtoRestSerializer.create();
197                         return fields;
198                       })
199                   .setRequestBodyExtractor(request -> null)
200                   .build())
201           .setResponseParser(
202               ProtoMessageResponseParser.<Address>newBuilder()
203                   .setDefaultInstance(Address.getDefaultInstance())
204                   .setDefaultTypeRegistry(typeRegistry)
205                   .build())
206           .build();
207 
208   private static final ApiMethodDescriptor<InsertAddressRequest, Operation> insertMethodDescriptor =
209       ApiMethodDescriptor.<InsertAddressRequest, Operation>newBuilder()
210           .setFullMethodName("google.cloud.compute.v1.Addresses/Insert")
211           .setHttpMethod("POST")
212           .setType(ApiMethodDescriptor.MethodType.UNARY)
213           .setRequestFormatter(
214               ProtoMessageRequestFormatter.<InsertAddressRequest>newBuilder()
215                   .setPath(
216                       "/compute/v1/projects/{project}/regions/{region}/addresses",
217                       request -> {
218                         Map<String, String> fields = new HashMap<>();
219                         ProtoRestSerializer<InsertAddressRequest> serializer =
220                             ProtoRestSerializer.create();
221                         serializer.putPathParam(fields, "project", request.getProject());
222                         serializer.putPathParam(fields, "region", request.getRegion());
223                         return fields;
224                       })
225                   .setQueryParamsExtractor(
226                       request -> {
227                         Map<String, List<String>> fields = new HashMap<>();
228                         ProtoRestSerializer<InsertAddressRequest> serializer =
229                             ProtoRestSerializer.create();
230                         if (request.hasRequestId()) {
231                           serializer.putQueryParam(fields, "requestId", request.getRequestId());
232                         }
233                         return fields;
234                       })
235                   .setRequestBodyExtractor(
236                       request ->
237                           ProtoRestSerializer.create()
238                               .toBody("addressResource", request.getAddressResource(), false))
239                   .build())
240           .setResponseParser(
241               ProtoMessageResponseParser.<Operation>newBuilder()
242                   .setDefaultInstance(Operation.getDefaultInstance())
243                   .setDefaultTypeRegistry(typeRegistry)
244                   .build())
245           .setOperationSnapshotFactory(
246               (InsertAddressRequest request, Operation response) -> {
247                 StringBuilder opName = new StringBuilder(response.getName());
248                 opName.append(":").append(request.getProject());
249                 opName.append(":").append(request.getRegion());
250                 return HttpJsonOperationSnapshot.newBuilder()
251                     .setName(opName.toString())
252                     .setMetadata(response)
253                     .setDone(Status.DONE.equals(response.getStatus()))
254                     .setResponse(response)
255                     .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
256                     .build();
257               })
258           .build();
259 
260   private static final ApiMethodDescriptor<ListAddressesRequest, AddressList> listMethodDescriptor =
261       ApiMethodDescriptor.<ListAddressesRequest, AddressList>newBuilder()
262           .setFullMethodName("google.cloud.compute.v1.Addresses/List")
263           .setHttpMethod("GET")
264           .setType(ApiMethodDescriptor.MethodType.UNARY)
265           .setRequestFormatter(
266               ProtoMessageRequestFormatter.<ListAddressesRequest>newBuilder()
267                   .setPath(
268                       "/compute/v1/projects/{project}/regions/{region}/addresses",
269                       request -> {
270                         Map<String, String> fields = new HashMap<>();
271                         ProtoRestSerializer<ListAddressesRequest> serializer =
272                             ProtoRestSerializer.create();
273                         serializer.putPathParam(fields, "project", request.getProject());
274                         serializer.putPathParam(fields, "region", request.getRegion());
275                         return fields;
276                       })
277                   .setQueryParamsExtractor(
278                       request -> {
279                         Map<String, List<String>> fields = new HashMap<>();
280                         ProtoRestSerializer<ListAddressesRequest> serializer =
281                             ProtoRestSerializer.create();
282                         if (request.hasFilter()) {
283                           serializer.putQueryParam(fields, "filter", request.getFilter());
284                         }
285                         if (request.hasMaxResults()) {
286                           serializer.putQueryParam(fields, "maxResults", request.getMaxResults());
287                         }
288                         if (request.hasOrderBy()) {
289                           serializer.putQueryParam(fields, "orderBy", request.getOrderBy());
290                         }
291                         if (request.hasPageToken()) {
292                           serializer.putQueryParam(fields, "pageToken", request.getPageToken());
293                         }
294                         if (request.hasReturnPartialSuccess()) {
295                           serializer.putQueryParam(
296                               fields, "returnPartialSuccess", request.getReturnPartialSuccess());
297                         }
298                         return fields;
299                       })
300                   .setRequestBodyExtractor(request -> null)
301                   .build())
302           .setResponseParser(
303               ProtoMessageResponseParser.<AddressList>newBuilder()
304                   .setDefaultInstance(AddressList.getDefaultInstance())
305                   .setDefaultTypeRegistry(typeRegistry)
306                   .build())
307           .build();
308 
309   private static final ApiMethodDescriptor<SetLabelsAddressRequest, Operation>
310       setLabelsMethodDescriptor =
311           ApiMethodDescriptor.<SetLabelsAddressRequest, Operation>newBuilder()
312               .setFullMethodName("google.cloud.compute.v1.Addresses/SetLabels")
313               .setHttpMethod("POST")
314               .setType(ApiMethodDescriptor.MethodType.UNARY)
315               .setRequestFormatter(
316                   ProtoMessageRequestFormatter.<SetLabelsAddressRequest>newBuilder()
317                       .setPath(
318                           "/compute/v1/projects/{project}/regions/{region}/addresses/{resource}/setLabels",
319                           request -> {
320                             Map<String, String> fields = new HashMap<>();
321                             ProtoRestSerializer<SetLabelsAddressRequest> serializer =
322                                 ProtoRestSerializer.create();
323                             serializer.putPathParam(fields, "project", request.getProject());
324                             serializer.putPathParam(fields, "region", request.getRegion());
325                             serializer.putPathParam(fields, "resource", request.getResource());
326                             return fields;
327                           })
328                       .setQueryParamsExtractor(
329                           request -> {
330                             Map<String, List<String>> fields = new HashMap<>();
331                             ProtoRestSerializer<SetLabelsAddressRequest> serializer =
332                                 ProtoRestSerializer.create();
333                             if (request.hasRequestId()) {
334                               serializer.putQueryParam(fields, "requestId", request.getRequestId());
335                             }
336                             return fields;
337                           })
338                       .setRequestBodyExtractor(
339                           request ->
340                               ProtoRestSerializer.create()
341                                   .toBody(
342                                       "regionSetLabelsRequestResource",
343                                       request.getRegionSetLabelsRequestResource(),
344                                       false))
345                       .build())
346               .setResponseParser(
347                   ProtoMessageResponseParser.<Operation>newBuilder()
348                       .setDefaultInstance(Operation.getDefaultInstance())
349                       .setDefaultTypeRegistry(typeRegistry)
350                       .build())
351               .setOperationSnapshotFactory(
352                   (SetLabelsAddressRequest request, Operation response) -> {
353                     StringBuilder opName = new StringBuilder(response.getName());
354                     opName.append(":").append(request.getProject());
355                     opName.append(":").append(request.getRegion());
356                     return HttpJsonOperationSnapshot.newBuilder()
357                         .setName(opName.toString())
358                         .setMetadata(response)
359                         .setDone(Status.DONE.equals(response.getStatus()))
360                         .setResponse(response)
361                         .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage())
362                         .build();
363                   })
364               .build();
365 
366   private final UnaryCallable<AggregatedListAddressesRequest, AddressAggregatedList>
367       aggregatedListCallable;
368   private final UnaryCallable<AggregatedListAddressesRequest, AggregatedListPagedResponse>
369       aggregatedListPagedCallable;
370   private final UnaryCallable<DeleteAddressRequest, Operation> deleteCallable;
371   private final OperationCallable<DeleteAddressRequest, Operation, Operation>
372       deleteOperationCallable;
373   private final UnaryCallable<GetAddressRequest, Address> getCallable;
374   private final UnaryCallable<InsertAddressRequest, Operation> insertCallable;
375   private final OperationCallable<InsertAddressRequest, Operation, Operation>
376       insertOperationCallable;
377   private final UnaryCallable<ListAddressesRequest, AddressList> listCallable;
378   private final UnaryCallable<ListAddressesRequest, ListPagedResponse> listPagedCallable;
379   private final UnaryCallable<SetLabelsAddressRequest, Operation> setLabelsCallable;
380   private final OperationCallable<SetLabelsAddressRequest, Operation, Operation>
381       setLabelsOperationCallable;
382 
383   private final BackgroundResource backgroundResources;
384   private final HttpJsonRegionOperationsStub httpJsonOperationsStub;
385   private final HttpJsonStubCallableFactory callableFactory;
386 
create(AddressesStubSettings settings)387   public static final HttpJsonAddressesStub create(AddressesStubSettings settings)
388       throws IOException {
389     return new HttpJsonAddressesStub(settings, ClientContext.create(settings));
390   }
391 
create(ClientContext clientContext)392   public static final HttpJsonAddressesStub create(ClientContext clientContext) throws IOException {
393     return new HttpJsonAddressesStub(AddressesStubSettings.newBuilder().build(), clientContext);
394   }
395 
create( ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)396   public static final HttpJsonAddressesStub create(
397       ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException {
398     return new HttpJsonAddressesStub(
399         AddressesStubSettings.newBuilder().build(), clientContext, callableFactory);
400   }
401 
402   /**
403    * Constructs an instance of HttpJsonAddressesStub, using the given settings. This is protected so
404    * that it is easy to make a subclass, but otherwise, the static factory methods should be
405    * preferred.
406    */
HttpJsonAddressesStub(AddressesStubSettings settings, ClientContext clientContext)407   protected HttpJsonAddressesStub(AddressesStubSettings settings, ClientContext clientContext)
408       throws IOException {
409     this(settings, clientContext, new HttpJsonAddressesCallableFactory());
410   }
411 
412   /**
413    * Constructs an instance of HttpJsonAddressesStub, using the given settings. This is protected so
414    * that it is easy to make a subclass, but otherwise, the static factory methods should be
415    * preferred.
416    */
HttpJsonAddressesStub( AddressesStubSettings settings, ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)417   protected HttpJsonAddressesStub(
418       AddressesStubSettings settings,
419       ClientContext clientContext,
420       HttpJsonStubCallableFactory callableFactory)
421       throws IOException {
422     this.callableFactory = callableFactory;
423     this.httpJsonOperationsStub =
424         HttpJsonRegionOperationsStub.create(clientContext, callableFactory);
425 
426     HttpJsonCallSettings<AggregatedListAddressesRequest, AddressAggregatedList>
427         aggregatedListTransportSettings =
428             HttpJsonCallSettings.<AggregatedListAddressesRequest, AddressAggregatedList>newBuilder()
429                 .setMethodDescriptor(aggregatedListMethodDescriptor)
430                 .setTypeRegistry(typeRegistry)
431                 .build();
432     HttpJsonCallSettings<DeleteAddressRequest, Operation> deleteTransportSettings =
433         HttpJsonCallSettings.<DeleteAddressRequest, Operation>newBuilder()
434             .setMethodDescriptor(deleteMethodDescriptor)
435             .setTypeRegistry(typeRegistry)
436             .build();
437     HttpJsonCallSettings<GetAddressRequest, Address> getTransportSettings =
438         HttpJsonCallSettings.<GetAddressRequest, Address>newBuilder()
439             .setMethodDescriptor(getMethodDescriptor)
440             .setTypeRegistry(typeRegistry)
441             .build();
442     HttpJsonCallSettings<InsertAddressRequest, Operation> insertTransportSettings =
443         HttpJsonCallSettings.<InsertAddressRequest, Operation>newBuilder()
444             .setMethodDescriptor(insertMethodDescriptor)
445             .setTypeRegistry(typeRegistry)
446             .build();
447     HttpJsonCallSettings<ListAddressesRequest, AddressList> listTransportSettings =
448         HttpJsonCallSettings.<ListAddressesRequest, AddressList>newBuilder()
449             .setMethodDescriptor(listMethodDescriptor)
450             .setTypeRegistry(typeRegistry)
451             .build();
452     HttpJsonCallSettings<SetLabelsAddressRequest, Operation> setLabelsTransportSettings =
453         HttpJsonCallSettings.<SetLabelsAddressRequest, Operation>newBuilder()
454             .setMethodDescriptor(setLabelsMethodDescriptor)
455             .setTypeRegistry(typeRegistry)
456             .build();
457 
458     this.aggregatedListCallable =
459         callableFactory.createUnaryCallable(
460             aggregatedListTransportSettings, settings.aggregatedListSettings(), clientContext);
461     this.aggregatedListPagedCallable =
462         callableFactory.createPagedCallable(
463             aggregatedListTransportSettings, settings.aggregatedListSettings(), clientContext);
464     this.deleteCallable =
465         callableFactory.createUnaryCallable(
466             deleteTransportSettings, settings.deleteSettings(), clientContext);
467     this.deleteOperationCallable =
468         callableFactory.createOperationCallable(
469             deleteTransportSettings,
470             settings.deleteOperationSettings(),
471             clientContext,
472             httpJsonOperationsStub);
473     this.getCallable =
474         callableFactory.createUnaryCallable(
475             getTransportSettings, settings.getSettings(), clientContext);
476     this.insertCallable =
477         callableFactory.createUnaryCallable(
478             insertTransportSettings, settings.insertSettings(), clientContext);
479     this.insertOperationCallable =
480         callableFactory.createOperationCallable(
481             insertTransportSettings,
482             settings.insertOperationSettings(),
483             clientContext,
484             httpJsonOperationsStub);
485     this.listCallable =
486         callableFactory.createUnaryCallable(
487             listTransportSettings, settings.listSettings(), clientContext);
488     this.listPagedCallable =
489         callableFactory.createPagedCallable(
490             listTransportSettings, settings.listSettings(), clientContext);
491     this.setLabelsCallable =
492         callableFactory.createUnaryCallable(
493             setLabelsTransportSettings, settings.setLabelsSettings(), clientContext);
494     this.setLabelsOperationCallable =
495         callableFactory.createOperationCallable(
496             setLabelsTransportSettings,
497             settings.setLabelsOperationSettings(),
498             clientContext,
499             httpJsonOperationsStub);
500 
501     this.backgroundResources =
502         new BackgroundResourceAggregation(clientContext.getBackgroundResources());
503   }
504 
505   @InternalApi
getMethodDescriptors()506   public static List<ApiMethodDescriptor> getMethodDescriptors() {
507     List<ApiMethodDescriptor> methodDescriptors = new ArrayList<>();
508     methodDescriptors.add(aggregatedListMethodDescriptor);
509     methodDescriptors.add(deleteMethodDescriptor);
510     methodDescriptors.add(getMethodDescriptor);
511     methodDescriptors.add(insertMethodDescriptor);
512     methodDescriptors.add(listMethodDescriptor);
513     methodDescriptors.add(setLabelsMethodDescriptor);
514     return methodDescriptors;
515   }
516 
517   @Override
518   public UnaryCallable<AggregatedListAddressesRequest, AddressAggregatedList>
aggregatedListCallable()519       aggregatedListCallable() {
520     return aggregatedListCallable;
521   }
522 
523   @Override
524   public UnaryCallable<AggregatedListAddressesRequest, AggregatedListPagedResponse>
aggregatedListPagedCallable()525       aggregatedListPagedCallable() {
526     return aggregatedListPagedCallable;
527   }
528 
529   @Override
deleteCallable()530   public UnaryCallable<DeleteAddressRequest, Operation> deleteCallable() {
531     return deleteCallable;
532   }
533 
534   @Override
deleteOperationCallable()535   public OperationCallable<DeleteAddressRequest, Operation, Operation> deleteOperationCallable() {
536     return deleteOperationCallable;
537   }
538 
539   @Override
getCallable()540   public UnaryCallable<GetAddressRequest, Address> getCallable() {
541     return getCallable;
542   }
543 
544   @Override
insertCallable()545   public UnaryCallable<InsertAddressRequest, Operation> insertCallable() {
546     return insertCallable;
547   }
548 
549   @Override
insertOperationCallable()550   public OperationCallable<InsertAddressRequest, Operation, Operation> insertOperationCallable() {
551     return insertOperationCallable;
552   }
553 
554   @Override
listCallable()555   public UnaryCallable<ListAddressesRequest, AddressList> listCallable() {
556     return listCallable;
557   }
558 
559   @Override
listPagedCallable()560   public UnaryCallable<ListAddressesRequest, ListPagedResponse> listPagedCallable() {
561     return listPagedCallable;
562   }
563 
564   @Override
setLabelsCallable()565   public UnaryCallable<SetLabelsAddressRequest, Operation> setLabelsCallable() {
566     return setLabelsCallable;
567   }
568 
569   @Override
570   public OperationCallable<SetLabelsAddressRequest, Operation, Operation>
setLabelsOperationCallable()571       setLabelsOperationCallable() {
572     return setLabelsOperationCallable;
573   }
574 
575   @Override
close()576   public final void close() {
577     try {
578       backgroundResources.close();
579     } catch (RuntimeException e) {
580       throw e;
581     } catch (Exception e) {
582       throw new IllegalStateException("Failed to close resource", e);
583     }
584   }
585 
586   @Override
shutdown()587   public void shutdown() {
588     backgroundResources.shutdown();
589   }
590 
591   @Override
isShutdown()592   public boolean isShutdown() {
593     return backgroundResources.isShutdown();
594   }
595 
596   @Override
isTerminated()597   public boolean isTerminated() {
598     return backgroundResources.isTerminated();
599   }
600 
601   @Override
shutdownNow()602   public void shutdownNow() {
603     backgroundResources.shutdownNow();
604   }
605 
606   @Override
awaitTermination(long duration, TimeUnit unit)607   public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
608     return backgroundResources.awaitTermination(duration, unit);
609   }
610 }
611