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