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