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.InterconnectsClient.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.DeleteInterconnectRequest; 36 import com.google.cloud.compute.v1.GetDiagnosticsInterconnectRequest; 37 import com.google.cloud.compute.v1.GetInterconnectRequest; 38 import com.google.cloud.compute.v1.InsertInterconnectRequest; 39 import com.google.cloud.compute.v1.Interconnect; 40 import com.google.cloud.compute.v1.InterconnectList; 41 import com.google.cloud.compute.v1.InterconnectsGetDiagnosticsResponse; 42 import com.google.cloud.compute.v1.ListInterconnectsRequest; 43 import com.google.cloud.compute.v1.Operation; 44 import com.google.cloud.compute.v1.Operation.Status; 45 import com.google.cloud.compute.v1.PatchInterconnectRequest; 46 import com.google.cloud.compute.v1.SetLabelsInterconnectRequest; 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 Interconnects 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 HttpJsonInterconnectsStub extends InterconnectsStub { 65 private static final TypeRegistry typeRegistry = 66 TypeRegistry.newBuilder().add(Operation.getDescriptor()).build(); 67 68 private static final ApiMethodDescriptor<DeleteInterconnectRequest, Operation> 69 deleteMethodDescriptor = 70 ApiMethodDescriptor.<DeleteInterconnectRequest, Operation>newBuilder() 71 .setFullMethodName("google.cloud.compute.v1.Interconnects/Delete") 72 .setHttpMethod("DELETE") 73 .setType(ApiMethodDescriptor.MethodType.UNARY) 74 .setRequestFormatter( 75 ProtoMessageRequestFormatter.<DeleteInterconnectRequest>newBuilder() 76 .setPath( 77 "/compute/v1/projects/{project}/global/interconnects/{interconnect}", 78 request -> { 79 Map<String, String> fields = new HashMap<>(); 80 ProtoRestSerializer<DeleteInterconnectRequest> serializer = 81 ProtoRestSerializer.create(); 82 serializer.putPathParam( 83 fields, "interconnect", request.getInterconnect()); 84 serializer.putPathParam(fields, "project", request.getProject()); 85 return fields; 86 }) 87 .setQueryParamsExtractor( 88 request -> { 89 Map<String, List<String>> fields = new HashMap<>(); 90 ProtoRestSerializer<DeleteInterconnectRequest> serializer = 91 ProtoRestSerializer.create(); 92 if (request.hasRequestId()) { 93 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 94 } 95 return fields; 96 }) 97 .setRequestBodyExtractor(request -> null) 98 .build()) 99 .setResponseParser( 100 ProtoMessageResponseParser.<Operation>newBuilder() 101 .setDefaultInstance(Operation.getDefaultInstance()) 102 .setDefaultTypeRegistry(typeRegistry) 103 .build()) 104 .setOperationSnapshotFactory( 105 (DeleteInterconnectRequest request, Operation response) -> { 106 StringBuilder opName = new StringBuilder(response.getName()); 107 opName.append(":").append(request.getProject()); 108 return HttpJsonOperationSnapshot.newBuilder() 109 .setName(opName.toString()) 110 .setMetadata(response) 111 .setDone(Status.DONE.equals(response.getStatus())) 112 .setResponse(response) 113 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 114 .build(); 115 }) 116 .build(); 117 118 private static final ApiMethodDescriptor<GetInterconnectRequest, Interconnect> 119 getMethodDescriptor = 120 ApiMethodDescriptor.<GetInterconnectRequest, Interconnect>newBuilder() 121 .setFullMethodName("google.cloud.compute.v1.Interconnects/Get") 122 .setHttpMethod("GET") 123 .setType(ApiMethodDescriptor.MethodType.UNARY) 124 .setRequestFormatter( 125 ProtoMessageRequestFormatter.<GetInterconnectRequest>newBuilder() 126 .setPath( 127 "/compute/v1/projects/{project}/global/interconnects/{interconnect}", 128 request -> { 129 Map<String, String> fields = new HashMap<>(); 130 ProtoRestSerializer<GetInterconnectRequest> serializer = 131 ProtoRestSerializer.create(); 132 serializer.putPathParam( 133 fields, "interconnect", request.getInterconnect()); 134 serializer.putPathParam(fields, "project", request.getProject()); 135 return fields; 136 }) 137 .setQueryParamsExtractor( 138 request -> { 139 Map<String, List<String>> fields = new HashMap<>(); 140 ProtoRestSerializer<GetInterconnectRequest> serializer = 141 ProtoRestSerializer.create(); 142 return fields; 143 }) 144 .setRequestBodyExtractor(request -> null) 145 .build()) 146 .setResponseParser( 147 ProtoMessageResponseParser.<Interconnect>newBuilder() 148 .setDefaultInstance(Interconnect.getDefaultInstance()) 149 .setDefaultTypeRegistry(typeRegistry) 150 .build()) 151 .build(); 152 153 private static final ApiMethodDescriptor< 154 GetDiagnosticsInterconnectRequest, InterconnectsGetDiagnosticsResponse> 155 getDiagnosticsMethodDescriptor = 156 ApiMethodDescriptor 157 .<GetDiagnosticsInterconnectRequest, InterconnectsGetDiagnosticsResponse>newBuilder() 158 .setFullMethodName("google.cloud.compute.v1.Interconnects/GetDiagnostics") 159 .setHttpMethod("GET") 160 .setType(ApiMethodDescriptor.MethodType.UNARY) 161 .setRequestFormatter( 162 ProtoMessageRequestFormatter.<GetDiagnosticsInterconnectRequest>newBuilder() 163 .setPath( 164 "/compute/v1/projects/{project}/global/interconnects/{interconnect}/getDiagnostics", 165 request -> { 166 Map<String, String> fields = new HashMap<>(); 167 ProtoRestSerializer<GetDiagnosticsInterconnectRequest> serializer = 168 ProtoRestSerializer.create(); 169 serializer.putPathParam( 170 fields, "interconnect", request.getInterconnect()); 171 serializer.putPathParam(fields, "project", request.getProject()); 172 return fields; 173 }) 174 .setQueryParamsExtractor( 175 request -> { 176 Map<String, List<String>> fields = new HashMap<>(); 177 ProtoRestSerializer<GetDiagnosticsInterconnectRequest> serializer = 178 ProtoRestSerializer.create(); 179 return fields; 180 }) 181 .setRequestBodyExtractor(request -> null) 182 .build()) 183 .setResponseParser( 184 ProtoMessageResponseParser.<InterconnectsGetDiagnosticsResponse>newBuilder() 185 .setDefaultInstance(InterconnectsGetDiagnosticsResponse.getDefaultInstance()) 186 .setDefaultTypeRegistry(typeRegistry) 187 .build()) 188 .build(); 189 190 private static final ApiMethodDescriptor<InsertInterconnectRequest, Operation> 191 insertMethodDescriptor = 192 ApiMethodDescriptor.<InsertInterconnectRequest, Operation>newBuilder() 193 .setFullMethodName("google.cloud.compute.v1.Interconnects/Insert") 194 .setHttpMethod("POST") 195 .setType(ApiMethodDescriptor.MethodType.UNARY) 196 .setRequestFormatter( 197 ProtoMessageRequestFormatter.<InsertInterconnectRequest>newBuilder() 198 .setPath( 199 "/compute/v1/projects/{project}/global/interconnects", 200 request -> { 201 Map<String, String> fields = new HashMap<>(); 202 ProtoRestSerializer<InsertInterconnectRequest> serializer = 203 ProtoRestSerializer.create(); 204 serializer.putPathParam(fields, "project", request.getProject()); 205 return fields; 206 }) 207 .setQueryParamsExtractor( 208 request -> { 209 Map<String, List<String>> fields = new HashMap<>(); 210 ProtoRestSerializer<InsertInterconnectRequest> serializer = 211 ProtoRestSerializer.create(); 212 if (request.hasRequestId()) { 213 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 214 } 215 return fields; 216 }) 217 .setRequestBodyExtractor( 218 request -> 219 ProtoRestSerializer.create() 220 .toBody( 221 "interconnectResource", 222 request.getInterconnectResource(), 223 false)) 224 .build()) 225 .setResponseParser( 226 ProtoMessageResponseParser.<Operation>newBuilder() 227 .setDefaultInstance(Operation.getDefaultInstance()) 228 .setDefaultTypeRegistry(typeRegistry) 229 .build()) 230 .setOperationSnapshotFactory( 231 (InsertInterconnectRequest request, Operation response) -> { 232 StringBuilder opName = new StringBuilder(response.getName()); 233 opName.append(":").append(request.getProject()); 234 return HttpJsonOperationSnapshot.newBuilder() 235 .setName(opName.toString()) 236 .setMetadata(response) 237 .setDone(Status.DONE.equals(response.getStatus())) 238 .setResponse(response) 239 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 240 .build(); 241 }) 242 .build(); 243 244 private static final ApiMethodDescriptor<ListInterconnectsRequest, InterconnectList> 245 listMethodDescriptor = 246 ApiMethodDescriptor.<ListInterconnectsRequest, InterconnectList>newBuilder() 247 .setFullMethodName("google.cloud.compute.v1.Interconnects/List") 248 .setHttpMethod("GET") 249 .setType(ApiMethodDescriptor.MethodType.UNARY) 250 .setRequestFormatter( 251 ProtoMessageRequestFormatter.<ListInterconnectsRequest>newBuilder() 252 .setPath( 253 "/compute/v1/projects/{project}/global/interconnects", 254 request -> { 255 Map<String, String> fields = new HashMap<>(); 256 ProtoRestSerializer<ListInterconnectsRequest> serializer = 257 ProtoRestSerializer.create(); 258 serializer.putPathParam(fields, "project", request.getProject()); 259 return fields; 260 }) 261 .setQueryParamsExtractor( 262 request -> { 263 Map<String, List<String>> fields = new HashMap<>(); 264 ProtoRestSerializer<ListInterconnectsRequest> serializer = 265 ProtoRestSerializer.create(); 266 if (request.hasFilter()) { 267 serializer.putQueryParam(fields, "filter", request.getFilter()); 268 } 269 if (request.hasMaxResults()) { 270 serializer.putQueryParam( 271 fields, "maxResults", request.getMaxResults()); 272 } 273 if (request.hasOrderBy()) { 274 serializer.putQueryParam(fields, "orderBy", request.getOrderBy()); 275 } 276 if (request.hasPageToken()) { 277 serializer.putQueryParam(fields, "pageToken", request.getPageToken()); 278 } 279 if (request.hasReturnPartialSuccess()) { 280 serializer.putQueryParam( 281 fields, 282 "returnPartialSuccess", 283 request.getReturnPartialSuccess()); 284 } 285 return fields; 286 }) 287 .setRequestBodyExtractor(request -> null) 288 .build()) 289 .setResponseParser( 290 ProtoMessageResponseParser.<InterconnectList>newBuilder() 291 .setDefaultInstance(InterconnectList.getDefaultInstance()) 292 .setDefaultTypeRegistry(typeRegistry) 293 .build()) 294 .build(); 295 296 private static final ApiMethodDescriptor<PatchInterconnectRequest, Operation> 297 patchMethodDescriptor = 298 ApiMethodDescriptor.<PatchInterconnectRequest, Operation>newBuilder() 299 .setFullMethodName("google.cloud.compute.v1.Interconnects/Patch") 300 .setHttpMethod("PATCH") 301 .setType(ApiMethodDescriptor.MethodType.UNARY) 302 .setRequestFormatter( 303 ProtoMessageRequestFormatter.<PatchInterconnectRequest>newBuilder() 304 .setPath( 305 "/compute/v1/projects/{project}/global/interconnects/{interconnect}", 306 request -> { 307 Map<String, String> fields = new HashMap<>(); 308 ProtoRestSerializer<PatchInterconnectRequest> serializer = 309 ProtoRestSerializer.create(); 310 serializer.putPathParam( 311 fields, "interconnect", request.getInterconnect()); 312 serializer.putPathParam(fields, "project", request.getProject()); 313 return fields; 314 }) 315 .setQueryParamsExtractor( 316 request -> { 317 Map<String, List<String>> fields = new HashMap<>(); 318 ProtoRestSerializer<PatchInterconnectRequest> serializer = 319 ProtoRestSerializer.create(); 320 if (request.hasRequestId()) { 321 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 322 } 323 return fields; 324 }) 325 .setRequestBodyExtractor( 326 request -> 327 ProtoRestSerializer.create() 328 .toBody( 329 "interconnectResource", 330 request.getInterconnectResource(), 331 false)) 332 .build()) 333 .setResponseParser( 334 ProtoMessageResponseParser.<Operation>newBuilder() 335 .setDefaultInstance(Operation.getDefaultInstance()) 336 .setDefaultTypeRegistry(typeRegistry) 337 .build()) 338 .setOperationSnapshotFactory( 339 (PatchInterconnectRequest request, Operation response) -> { 340 StringBuilder opName = new StringBuilder(response.getName()); 341 opName.append(":").append(request.getProject()); 342 return HttpJsonOperationSnapshot.newBuilder() 343 .setName(opName.toString()) 344 .setMetadata(response) 345 .setDone(Status.DONE.equals(response.getStatus())) 346 .setResponse(response) 347 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 348 .build(); 349 }) 350 .build(); 351 352 private static final ApiMethodDescriptor<SetLabelsInterconnectRequest, Operation> 353 setLabelsMethodDescriptor = 354 ApiMethodDescriptor.<SetLabelsInterconnectRequest, Operation>newBuilder() 355 .setFullMethodName("google.cloud.compute.v1.Interconnects/SetLabels") 356 .setHttpMethod("POST") 357 .setType(ApiMethodDescriptor.MethodType.UNARY) 358 .setRequestFormatter( 359 ProtoMessageRequestFormatter.<SetLabelsInterconnectRequest>newBuilder() 360 .setPath( 361 "/compute/v1/projects/{project}/global/interconnects/{resource}/setLabels", 362 request -> { 363 Map<String, String> fields = new HashMap<>(); 364 ProtoRestSerializer<SetLabelsInterconnectRequest> serializer = 365 ProtoRestSerializer.create(); 366 serializer.putPathParam(fields, "project", request.getProject()); 367 serializer.putPathParam(fields, "resource", request.getResource()); 368 return fields; 369 }) 370 .setQueryParamsExtractor( 371 request -> { 372 Map<String, List<String>> fields = new HashMap<>(); 373 ProtoRestSerializer<SetLabelsInterconnectRequest> serializer = 374 ProtoRestSerializer.create(); 375 return fields; 376 }) 377 .setRequestBodyExtractor( 378 request -> 379 ProtoRestSerializer.create() 380 .toBody( 381 "globalSetLabelsRequestResource", 382 request.getGlobalSetLabelsRequestResource(), 383 false)) 384 .build()) 385 .setResponseParser( 386 ProtoMessageResponseParser.<Operation>newBuilder() 387 .setDefaultInstance(Operation.getDefaultInstance()) 388 .setDefaultTypeRegistry(typeRegistry) 389 .build()) 390 .setOperationSnapshotFactory( 391 (SetLabelsInterconnectRequest request, Operation response) -> { 392 StringBuilder opName = new StringBuilder(response.getName()); 393 opName.append(":").append(request.getProject()); 394 return HttpJsonOperationSnapshot.newBuilder() 395 .setName(opName.toString()) 396 .setMetadata(response) 397 .setDone(Status.DONE.equals(response.getStatus())) 398 .setResponse(response) 399 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 400 .build(); 401 }) 402 .build(); 403 404 private final UnaryCallable<DeleteInterconnectRequest, Operation> deleteCallable; 405 private final OperationCallable<DeleteInterconnectRequest, Operation, Operation> 406 deleteOperationCallable; 407 private final UnaryCallable<GetInterconnectRequest, Interconnect> getCallable; 408 private final UnaryCallable< 409 GetDiagnosticsInterconnectRequest, InterconnectsGetDiagnosticsResponse> 410 getDiagnosticsCallable; 411 private final UnaryCallable<InsertInterconnectRequest, Operation> insertCallable; 412 private final OperationCallable<InsertInterconnectRequest, Operation, Operation> 413 insertOperationCallable; 414 private final UnaryCallable<ListInterconnectsRequest, InterconnectList> listCallable; 415 private final UnaryCallable<ListInterconnectsRequest, ListPagedResponse> listPagedCallable; 416 private final UnaryCallable<PatchInterconnectRequest, Operation> patchCallable; 417 private final OperationCallable<PatchInterconnectRequest, Operation, Operation> 418 patchOperationCallable; 419 private final UnaryCallable<SetLabelsInterconnectRequest, Operation> setLabelsCallable; 420 private final OperationCallable<SetLabelsInterconnectRequest, Operation, Operation> 421 setLabelsOperationCallable; 422 423 private final BackgroundResource backgroundResources; 424 private final HttpJsonGlobalOperationsStub httpJsonOperationsStub; 425 private final HttpJsonStubCallableFactory callableFactory; 426 create(InterconnectsStubSettings settings)427 public static final HttpJsonInterconnectsStub create(InterconnectsStubSettings settings) 428 throws IOException { 429 return new HttpJsonInterconnectsStub(settings, ClientContext.create(settings)); 430 } 431 create(ClientContext clientContext)432 public static final HttpJsonInterconnectsStub create(ClientContext clientContext) 433 throws IOException { 434 return new HttpJsonInterconnectsStub( 435 InterconnectsStubSettings.newBuilder().build(), clientContext); 436 } 437 create( ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)438 public static final HttpJsonInterconnectsStub create( 439 ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException { 440 return new HttpJsonInterconnectsStub( 441 InterconnectsStubSettings.newBuilder().build(), clientContext, callableFactory); 442 } 443 444 /** 445 * Constructs an instance of HttpJsonInterconnectsStub, using the given settings. This is 446 * protected so that it is easy to make a subclass, but otherwise, the static factory methods 447 * should be preferred. 448 */ HttpJsonInterconnectsStub( InterconnectsStubSettings settings, ClientContext clientContext)449 protected HttpJsonInterconnectsStub( 450 InterconnectsStubSettings settings, ClientContext clientContext) throws IOException { 451 this(settings, clientContext, new HttpJsonInterconnectsCallableFactory()); 452 } 453 454 /** 455 * Constructs an instance of HttpJsonInterconnectsStub, using the given settings. This is 456 * protected so that it is easy to make a subclass, but otherwise, the static factory methods 457 * should be preferred. 458 */ HttpJsonInterconnectsStub( InterconnectsStubSettings settings, ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)459 protected HttpJsonInterconnectsStub( 460 InterconnectsStubSettings settings, 461 ClientContext clientContext, 462 HttpJsonStubCallableFactory callableFactory) 463 throws IOException { 464 this.callableFactory = callableFactory; 465 this.httpJsonOperationsStub = 466 HttpJsonGlobalOperationsStub.create(clientContext, callableFactory); 467 468 HttpJsonCallSettings<DeleteInterconnectRequest, Operation> deleteTransportSettings = 469 HttpJsonCallSettings.<DeleteInterconnectRequest, Operation>newBuilder() 470 .setMethodDescriptor(deleteMethodDescriptor) 471 .setTypeRegistry(typeRegistry) 472 .build(); 473 HttpJsonCallSettings<GetInterconnectRequest, Interconnect> getTransportSettings = 474 HttpJsonCallSettings.<GetInterconnectRequest, Interconnect>newBuilder() 475 .setMethodDescriptor(getMethodDescriptor) 476 .setTypeRegistry(typeRegistry) 477 .build(); 478 HttpJsonCallSettings<GetDiagnosticsInterconnectRequest, InterconnectsGetDiagnosticsResponse> 479 getDiagnosticsTransportSettings = 480 HttpJsonCallSettings 481 .<GetDiagnosticsInterconnectRequest, InterconnectsGetDiagnosticsResponse> 482 newBuilder() 483 .setMethodDescriptor(getDiagnosticsMethodDescriptor) 484 .setTypeRegistry(typeRegistry) 485 .build(); 486 HttpJsonCallSettings<InsertInterconnectRequest, Operation> insertTransportSettings = 487 HttpJsonCallSettings.<InsertInterconnectRequest, Operation>newBuilder() 488 .setMethodDescriptor(insertMethodDescriptor) 489 .setTypeRegistry(typeRegistry) 490 .build(); 491 HttpJsonCallSettings<ListInterconnectsRequest, InterconnectList> listTransportSettings = 492 HttpJsonCallSettings.<ListInterconnectsRequest, InterconnectList>newBuilder() 493 .setMethodDescriptor(listMethodDescriptor) 494 .setTypeRegistry(typeRegistry) 495 .build(); 496 HttpJsonCallSettings<PatchInterconnectRequest, Operation> patchTransportSettings = 497 HttpJsonCallSettings.<PatchInterconnectRequest, Operation>newBuilder() 498 .setMethodDescriptor(patchMethodDescriptor) 499 .setTypeRegistry(typeRegistry) 500 .build(); 501 HttpJsonCallSettings<SetLabelsInterconnectRequest, Operation> setLabelsTransportSettings = 502 HttpJsonCallSettings.<SetLabelsInterconnectRequest, Operation>newBuilder() 503 .setMethodDescriptor(setLabelsMethodDescriptor) 504 .setTypeRegistry(typeRegistry) 505 .build(); 506 507 this.deleteCallable = 508 callableFactory.createUnaryCallable( 509 deleteTransportSettings, settings.deleteSettings(), clientContext); 510 this.deleteOperationCallable = 511 callableFactory.createOperationCallable( 512 deleteTransportSettings, 513 settings.deleteOperationSettings(), 514 clientContext, 515 httpJsonOperationsStub); 516 this.getCallable = 517 callableFactory.createUnaryCallable( 518 getTransportSettings, settings.getSettings(), clientContext); 519 this.getDiagnosticsCallable = 520 callableFactory.createUnaryCallable( 521 getDiagnosticsTransportSettings, settings.getDiagnosticsSettings(), clientContext); 522 this.insertCallable = 523 callableFactory.createUnaryCallable( 524 insertTransportSettings, settings.insertSettings(), clientContext); 525 this.insertOperationCallable = 526 callableFactory.createOperationCallable( 527 insertTransportSettings, 528 settings.insertOperationSettings(), 529 clientContext, 530 httpJsonOperationsStub); 531 this.listCallable = 532 callableFactory.createUnaryCallable( 533 listTransportSettings, settings.listSettings(), clientContext); 534 this.listPagedCallable = 535 callableFactory.createPagedCallable( 536 listTransportSettings, settings.listSettings(), clientContext); 537 this.patchCallable = 538 callableFactory.createUnaryCallable( 539 patchTransportSettings, settings.patchSettings(), clientContext); 540 this.patchOperationCallable = 541 callableFactory.createOperationCallable( 542 patchTransportSettings, 543 settings.patchOperationSettings(), 544 clientContext, 545 httpJsonOperationsStub); 546 this.setLabelsCallable = 547 callableFactory.createUnaryCallable( 548 setLabelsTransportSettings, settings.setLabelsSettings(), clientContext); 549 this.setLabelsOperationCallable = 550 callableFactory.createOperationCallable( 551 setLabelsTransportSettings, 552 settings.setLabelsOperationSettings(), 553 clientContext, 554 httpJsonOperationsStub); 555 556 this.backgroundResources = 557 new BackgroundResourceAggregation(clientContext.getBackgroundResources()); 558 } 559 560 @InternalApi getMethodDescriptors()561 public static List<ApiMethodDescriptor> getMethodDescriptors() { 562 List<ApiMethodDescriptor> methodDescriptors = new ArrayList<>(); 563 methodDescriptors.add(deleteMethodDescriptor); 564 methodDescriptors.add(getMethodDescriptor); 565 methodDescriptors.add(getDiagnosticsMethodDescriptor); 566 methodDescriptors.add(insertMethodDescriptor); 567 methodDescriptors.add(listMethodDescriptor); 568 methodDescriptors.add(patchMethodDescriptor); 569 methodDescriptors.add(setLabelsMethodDescriptor); 570 return methodDescriptors; 571 } 572 573 @Override deleteCallable()574 public UnaryCallable<DeleteInterconnectRequest, Operation> deleteCallable() { 575 return deleteCallable; 576 } 577 578 @Override 579 public OperationCallable<DeleteInterconnectRequest, Operation, Operation> deleteOperationCallable()580 deleteOperationCallable() { 581 return deleteOperationCallable; 582 } 583 584 @Override getCallable()585 public UnaryCallable<GetInterconnectRequest, Interconnect> getCallable() { 586 return getCallable; 587 } 588 589 @Override 590 public UnaryCallable<GetDiagnosticsInterconnectRequest, InterconnectsGetDiagnosticsResponse> getDiagnosticsCallable()591 getDiagnosticsCallable() { 592 return getDiagnosticsCallable; 593 } 594 595 @Override insertCallable()596 public UnaryCallable<InsertInterconnectRequest, Operation> insertCallable() { 597 return insertCallable; 598 } 599 600 @Override 601 public OperationCallable<InsertInterconnectRequest, Operation, Operation> insertOperationCallable()602 insertOperationCallable() { 603 return insertOperationCallable; 604 } 605 606 @Override listCallable()607 public UnaryCallable<ListInterconnectsRequest, InterconnectList> listCallable() { 608 return listCallable; 609 } 610 611 @Override listPagedCallable()612 public UnaryCallable<ListInterconnectsRequest, ListPagedResponse> listPagedCallable() { 613 return listPagedCallable; 614 } 615 616 @Override patchCallable()617 public UnaryCallable<PatchInterconnectRequest, Operation> patchCallable() { 618 return patchCallable; 619 } 620 621 @Override 622 public OperationCallable<PatchInterconnectRequest, Operation, Operation> patchOperationCallable()623 patchOperationCallable() { 624 return patchOperationCallable; 625 } 626 627 @Override setLabelsCallable()628 public UnaryCallable<SetLabelsInterconnectRequest, Operation> setLabelsCallable() { 629 return setLabelsCallable; 630 } 631 632 @Override 633 public OperationCallable<SetLabelsInterconnectRequest, Operation, Operation> setLabelsOperationCallable()634 setLabelsOperationCallable() { 635 return setLabelsOperationCallable; 636 } 637 638 @Override close()639 public final void close() { 640 try { 641 backgroundResources.close(); 642 } catch (RuntimeException e) { 643 throw e; 644 } catch (Exception e) { 645 throw new IllegalStateException("Failed to close resource", e); 646 } 647 } 648 649 @Override shutdown()650 public void shutdown() { 651 backgroundResources.shutdown(); 652 } 653 654 @Override isShutdown()655 public boolean isShutdown() { 656 return backgroundResources.isShutdown(); 657 } 658 659 @Override isTerminated()660 public boolean isTerminated() { 661 return backgroundResources.isTerminated(); 662 } 663 664 @Override shutdownNow()665 public void shutdownNow() { 666 backgroundResources.shutdownNow(); 667 } 668 669 @Override awaitTermination(long duration, TimeUnit unit)670 public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { 671 return backgroundResources.awaitTermination(duration, unit); 672 } 673 } 674