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