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.TargetPoolsClient.AggregatedListPagedResponse; 20 import static com.google.cloud.compute.v1.TargetPoolsClient.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.AddHealthCheckTargetPoolRequest; 37 import com.google.cloud.compute.v1.AddInstanceTargetPoolRequest; 38 import com.google.cloud.compute.v1.AggregatedListTargetPoolsRequest; 39 import com.google.cloud.compute.v1.DeleteTargetPoolRequest; 40 import com.google.cloud.compute.v1.GetHealthTargetPoolRequest; 41 import com.google.cloud.compute.v1.GetTargetPoolRequest; 42 import com.google.cloud.compute.v1.InsertTargetPoolRequest; 43 import com.google.cloud.compute.v1.ListTargetPoolsRequest; 44 import com.google.cloud.compute.v1.Operation; 45 import com.google.cloud.compute.v1.Operation.Status; 46 import com.google.cloud.compute.v1.RemoveHealthCheckTargetPoolRequest; 47 import com.google.cloud.compute.v1.RemoveInstanceTargetPoolRequest; 48 import com.google.cloud.compute.v1.SetBackupTargetPoolRequest; 49 import com.google.cloud.compute.v1.TargetPool; 50 import com.google.cloud.compute.v1.TargetPoolAggregatedList; 51 import com.google.cloud.compute.v1.TargetPoolInstanceHealth; 52 import com.google.cloud.compute.v1.TargetPoolList; 53 import com.google.protobuf.TypeRegistry; 54 import java.io.IOException; 55 import java.util.ArrayList; 56 import java.util.HashMap; 57 import java.util.List; 58 import java.util.Map; 59 import java.util.concurrent.TimeUnit; 60 import javax.annotation.Generated; 61 62 // AUTO-GENERATED DOCUMENTATION AND CLASS. 63 /** 64 * REST stub implementation for the TargetPools service API. 65 * 66 * <p>This class is for advanced usage and reflects the underlying API directly. 67 */ 68 @Generated("by gapic-generator-java") 69 @BetaApi 70 public class HttpJsonTargetPoolsStub extends TargetPoolsStub { 71 private static final TypeRegistry typeRegistry = 72 TypeRegistry.newBuilder().add(Operation.getDescriptor()).build(); 73 74 private static final ApiMethodDescriptor<AddHealthCheckTargetPoolRequest, Operation> 75 addHealthCheckMethodDescriptor = 76 ApiMethodDescriptor.<AddHealthCheckTargetPoolRequest, Operation>newBuilder() 77 .setFullMethodName("google.cloud.compute.v1.TargetPools/AddHealthCheck") 78 .setHttpMethod("POST") 79 .setType(ApiMethodDescriptor.MethodType.UNARY) 80 .setRequestFormatter( 81 ProtoMessageRequestFormatter.<AddHealthCheckTargetPoolRequest>newBuilder() 82 .setPath( 83 "/compute/v1/projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck", 84 request -> { 85 Map<String, String> fields = new HashMap<>(); 86 ProtoRestSerializer<AddHealthCheckTargetPoolRequest> serializer = 87 ProtoRestSerializer.create(); 88 serializer.putPathParam(fields, "project", request.getProject()); 89 serializer.putPathParam(fields, "region", request.getRegion()); 90 serializer.putPathParam(fields, "targetPool", request.getTargetPool()); 91 return fields; 92 }) 93 .setQueryParamsExtractor( 94 request -> { 95 Map<String, List<String>> fields = new HashMap<>(); 96 ProtoRestSerializer<AddHealthCheckTargetPoolRequest> serializer = 97 ProtoRestSerializer.create(); 98 if (request.hasRequestId()) { 99 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 100 } 101 return fields; 102 }) 103 .setRequestBodyExtractor( 104 request -> 105 ProtoRestSerializer.create() 106 .toBody( 107 "targetPoolsAddHealthCheckRequestResource", 108 request.getTargetPoolsAddHealthCheckRequestResource(), 109 false)) 110 .build()) 111 .setResponseParser( 112 ProtoMessageResponseParser.<Operation>newBuilder() 113 .setDefaultInstance(Operation.getDefaultInstance()) 114 .setDefaultTypeRegistry(typeRegistry) 115 .build()) 116 .setOperationSnapshotFactory( 117 (AddHealthCheckTargetPoolRequest request, Operation response) -> { 118 StringBuilder opName = new StringBuilder(response.getName()); 119 opName.append(":").append(request.getProject()); 120 opName.append(":").append(request.getRegion()); 121 return HttpJsonOperationSnapshot.newBuilder() 122 .setName(opName.toString()) 123 .setMetadata(response) 124 .setDone(Status.DONE.equals(response.getStatus())) 125 .setResponse(response) 126 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 127 .build(); 128 }) 129 .build(); 130 131 private static final ApiMethodDescriptor<AddInstanceTargetPoolRequest, Operation> 132 addInstanceMethodDescriptor = 133 ApiMethodDescriptor.<AddInstanceTargetPoolRequest, Operation>newBuilder() 134 .setFullMethodName("google.cloud.compute.v1.TargetPools/AddInstance") 135 .setHttpMethod("POST") 136 .setType(ApiMethodDescriptor.MethodType.UNARY) 137 .setRequestFormatter( 138 ProtoMessageRequestFormatter.<AddInstanceTargetPoolRequest>newBuilder() 139 .setPath( 140 "/compute/v1/projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance", 141 request -> { 142 Map<String, String> fields = new HashMap<>(); 143 ProtoRestSerializer<AddInstanceTargetPoolRequest> serializer = 144 ProtoRestSerializer.create(); 145 serializer.putPathParam(fields, "project", request.getProject()); 146 serializer.putPathParam(fields, "region", request.getRegion()); 147 serializer.putPathParam(fields, "targetPool", request.getTargetPool()); 148 return fields; 149 }) 150 .setQueryParamsExtractor( 151 request -> { 152 Map<String, List<String>> fields = new HashMap<>(); 153 ProtoRestSerializer<AddInstanceTargetPoolRequest> serializer = 154 ProtoRestSerializer.create(); 155 if (request.hasRequestId()) { 156 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 157 } 158 return fields; 159 }) 160 .setRequestBodyExtractor( 161 request -> 162 ProtoRestSerializer.create() 163 .toBody( 164 "targetPoolsAddInstanceRequestResource", 165 request.getTargetPoolsAddInstanceRequestResource(), 166 false)) 167 .build()) 168 .setResponseParser( 169 ProtoMessageResponseParser.<Operation>newBuilder() 170 .setDefaultInstance(Operation.getDefaultInstance()) 171 .setDefaultTypeRegistry(typeRegistry) 172 .build()) 173 .setOperationSnapshotFactory( 174 (AddInstanceTargetPoolRequest request, Operation response) -> { 175 StringBuilder opName = new StringBuilder(response.getName()); 176 opName.append(":").append(request.getProject()); 177 opName.append(":").append(request.getRegion()); 178 return HttpJsonOperationSnapshot.newBuilder() 179 .setName(opName.toString()) 180 .setMetadata(response) 181 .setDone(Status.DONE.equals(response.getStatus())) 182 .setResponse(response) 183 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 184 .build(); 185 }) 186 .build(); 187 188 private static final ApiMethodDescriptor< 189 AggregatedListTargetPoolsRequest, TargetPoolAggregatedList> 190 aggregatedListMethodDescriptor = 191 ApiMethodDescriptor 192 .<AggregatedListTargetPoolsRequest, TargetPoolAggregatedList>newBuilder() 193 .setFullMethodName("google.cloud.compute.v1.TargetPools/AggregatedList") 194 .setHttpMethod("GET") 195 .setType(ApiMethodDescriptor.MethodType.UNARY) 196 .setRequestFormatter( 197 ProtoMessageRequestFormatter.<AggregatedListTargetPoolsRequest>newBuilder() 198 .setPath( 199 "/compute/v1/projects/{project}/aggregated/targetPools", 200 request -> { 201 Map<String, String> fields = new HashMap<>(); 202 ProtoRestSerializer<AggregatedListTargetPoolsRequest> 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<AggregatedListTargetPoolsRequest> serializer = 211 ProtoRestSerializer.create(); 212 if (request.hasFilter()) { 213 serializer.putQueryParam(fields, "filter", request.getFilter()); 214 } 215 if (request.hasIncludeAllScopes()) { 216 serializer.putQueryParam( 217 fields, "includeAllScopes", request.getIncludeAllScopes()); 218 } 219 if (request.hasMaxResults()) { 220 serializer.putQueryParam( 221 fields, "maxResults", request.getMaxResults()); 222 } 223 if (request.hasOrderBy()) { 224 serializer.putQueryParam(fields, "orderBy", request.getOrderBy()); 225 } 226 if (request.hasPageToken()) { 227 serializer.putQueryParam(fields, "pageToken", request.getPageToken()); 228 } 229 if (request.hasReturnPartialSuccess()) { 230 serializer.putQueryParam( 231 fields, 232 "returnPartialSuccess", 233 request.getReturnPartialSuccess()); 234 } 235 return fields; 236 }) 237 .setRequestBodyExtractor(request -> null) 238 .build()) 239 .setResponseParser( 240 ProtoMessageResponseParser.<TargetPoolAggregatedList>newBuilder() 241 .setDefaultInstance(TargetPoolAggregatedList.getDefaultInstance()) 242 .setDefaultTypeRegistry(typeRegistry) 243 .build()) 244 .build(); 245 246 private static final ApiMethodDescriptor<DeleteTargetPoolRequest, Operation> 247 deleteMethodDescriptor = 248 ApiMethodDescriptor.<DeleteTargetPoolRequest, Operation>newBuilder() 249 .setFullMethodName("google.cloud.compute.v1.TargetPools/Delete") 250 .setHttpMethod("DELETE") 251 .setType(ApiMethodDescriptor.MethodType.UNARY) 252 .setRequestFormatter( 253 ProtoMessageRequestFormatter.<DeleteTargetPoolRequest>newBuilder() 254 .setPath( 255 "/compute/v1/projects/{project}/regions/{region}/targetPools/{targetPool}", 256 request -> { 257 Map<String, String> fields = new HashMap<>(); 258 ProtoRestSerializer<DeleteTargetPoolRequest> serializer = 259 ProtoRestSerializer.create(); 260 serializer.putPathParam(fields, "project", request.getProject()); 261 serializer.putPathParam(fields, "region", request.getRegion()); 262 serializer.putPathParam(fields, "targetPool", request.getTargetPool()); 263 return fields; 264 }) 265 .setQueryParamsExtractor( 266 request -> { 267 Map<String, List<String>> fields = new HashMap<>(); 268 ProtoRestSerializer<DeleteTargetPoolRequest> serializer = 269 ProtoRestSerializer.create(); 270 if (request.hasRequestId()) { 271 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 272 } 273 return fields; 274 }) 275 .setRequestBodyExtractor(request -> null) 276 .build()) 277 .setResponseParser( 278 ProtoMessageResponseParser.<Operation>newBuilder() 279 .setDefaultInstance(Operation.getDefaultInstance()) 280 .setDefaultTypeRegistry(typeRegistry) 281 .build()) 282 .setOperationSnapshotFactory( 283 (DeleteTargetPoolRequest request, Operation response) -> { 284 StringBuilder opName = new StringBuilder(response.getName()); 285 opName.append(":").append(request.getProject()); 286 opName.append(":").append(request.getRegion()); 287 return HttpJsonOperationSnapshot.newBuilder() 288 .setName(opName.toString()) 289 .setMetadata(response) 290 .setDone(Status.DONE.equals(response.getStatus())) 291 .setResponse(response) 292 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 293 .build(); 294 }) 295 .build(); 296 297 private static final ApiMethodDescriptor<GetTargetPoolRequest, TargetPool> getMethodDescriptor = 298 ApiMethodDescriptor.<GetTargetPoolRequest, TargetPool>newBuilder() 299 .setFullMethodName("google.cloud.compute.v1.TargetPools/Get") 300 .setHttpMethod("GET") 301 .setType(ApiMethodDescriptor.MethodType.UNARY) 302 .setRequestFormatter( 303 ProtoMessageRequestFormatter.<GetTargetPoolRequest>newBuilder() 304 .setPath( 305 "/compute/v1/projects/{project}/regions/{region}/targetPools/{targetPool}", 306 request -> { 307 Map<String, String> fields = new HashMap<>(); 308 ProtoRestSerializer<GetTargetPoolRequest> serializer = 309 ProtoRestSerializer.create(); 310 serializer.putPathParam(fields, "project", request.getProject()); 311 serializer.putPathParam(fields, "region", request.getRegion()); 312 serializer.putPathParam(fields, "targetPool", request.getTargetPool()); 313 return fields; 314 }) 315 .setQueryParamsExtractor( 316 request -> { 317 Map<String, List<String>> fields = new HashMap<>(); 318 ProtoRestSerializer<GetTargetPoolRequest> serializer = 319 ProtoRestSerializer.create(); 320 return fields; 321 }) 322 .setRequestBodyExtractor(request -> null) 323 .build()) 324 .setResponseParser( 325 ProtoMessageResponseParser.<TargetPool>newBuilder() 326 .setDefaultInstance(TargetPool.getDefaultInstance()) 327 .setDefaultTypeRegistry(typeRegistry) 328 .build()) 329 .build(); 330 331 private static final ApiMethodDescriptor<GetHealthTargetPoolRequest, TargetPoolInstanceHealth> 332 getHealthMethodDescriptor = 333 ApiMethodDescriptor.<GetHealthTargetPoolRequest, TargetPoolInstanceHealth>newBuilder() 334 .setFullMethodName("google.cloud.compute.v1.TargetPools/GetHealth") 335 .setHttpMethod("POST") 336 .setType(ApiMethodDescriptor.MethodType.UNARY) 337 .setRequestFormatter( 338 ProtoMessageRequestFormatter.<GetHealthTargetPoolRequest>newBuilder() 339 .setPath( 340 "/compute/v1/projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth", 341 request -> { 342 Map<String, String> fields = new HashMap<>(); 343 ProtoRestSerializer<GetHealthTargetPoolRequest> serializer = 344 ProtoRestSerializer.create(); 345 serializer.putPathParam(fields, "project", request.getProject()); 346 serializer.putPathParam(fields, "region", request.getRegion()); 347 serializer.putPathParam(fields, "targetPool", request.getTargetPool()); 348 return fields; 349 }) 350 .setQueryParamsExtractor( 351 request -> { 352 Map<String, List<String>> fields = new HashMap<>(); 353 ProtoRestSerializer<GetHealthTargetPoolRequest> serializer = 354 ProtoRestSerializer.create(); 355 return fields; 356 }) 357 .setRequestBodyExtractor( 358 request -> 359 ProtoRestSerializer.create() 360 .toBody( 361 "instanceReferenceResource", 362 request.getInstanceReferenceResource(), 363 false)) 364 .build()) 365 .setResponseParser( 366 ProtoMessageResponseParser.<TargetPoolInstanceHealth>newBuilder() 367 .setDefaultInstance(TargetPoolInstanceHealth.getDefaultInstance()) 368 .setDefaultTypeRegistry(typeRegistry) 369 .build()) 370 .build(); 371 372 private static final ApiMethodDescriptor<InsertTargetPoolRequest, Operation> 373 insertMethodDescriptor = 374 ApiMethodDescriptor.<InsertTargetPoolRequest, Operation>newBuilder() 375 .setFullMethodName("google.cloud.compute.v1.TargetPools/Insert") 376 .setHttpMethod("POST") 377 .setType(ApiMethodDescriptor.MethodType.UNARY) 378 .setRequestFormatter( 379 ProtoMessageRequestFormatter.<InsertTargetPoolRequest>newBuilder() 380 .setPath( 381 "/compute/v1/projects/{project}/regions/{region}/targetPools", 382 request -> { 383 Map<String, String> fields = new HashMap<>(); 384 ProtoRestSerializer<InsertTargetPoolRequest> serializer = 385 ProtoRestSerializer.create(); 386 serializer.putPathParam(fields, "project", request.getProject()); 387 serializer.putPathParam(fields, "region", request.getRegion()); 388 return fields; 389 }) 390 .setQueryParamsExtractor( 391 request -> { 392 Map<String, List<String>> fields = new HashMap<>(); 393 ProtoRestSerializer<InsertTargetPoolRequest> serializer = 394 ProtoRestSerializer.create(); 395 if (request.hasRequestId()) { 396 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 397 } 398 return fields; 399 }) 400 .setRequestBodyExtractor( 401 request -> 402 ProtoRestSerializer.create() 403 .toBody( 404 "targetPoolResource", request.getTargetPoolResource(), false)) 405 .build()) 406 .setResponseParser( 407 ProtoMessageResponseParser.<Operation>newBuilder() 408 .setDefaultInstance(Operation.getDefaultInstance()) 409 .setDefaultTypeRegistry(typeRegistry) 410 .build()) 411 .setOperationSnapshotFactory( 412 (InsertTargetPoolRequest request, Operation response) -> { 413 StringBuilder opName = new StringBuilder(response.getName()); 414 opName.append(":").append(request.getProject()); 415 opName.append(":").append(request.getRegion()); 416 return HttpJsonOperationSnapshot.newBuilder() 417 .setName(opName.toString()) 418 .setMetadata(response) 419 .setDone(Status.DONE.equals(response.getStatus())) 420 .setResponse(response) 421 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 422 .build(); 423 }) 424 .build(); 425 426 private static final ApiMethodDescriptor<ListTargetPoolsRequest, TargetPoolList> 427 listMethodDescriptor = 428 ApiMethodDescriptor.<ListTargetPoolsRequest, TargetPoolList>newBuilder() 429 .setFullMethodName("google.cloud.compute.v1.TargetPools/List") 430 .setHttpMethod("GET") 431 .setType(ApiMethodDescriptor.MethodType.UNARY) 432 .setRequestFormatter( 433 ProtoMessageRequestFormatter.<ListTargetPoolsRequest>newBuilder() 434 .setPath( 435 "/compute/v1/projects/{project}/regions/{region}/targetPools", 436 request -> { 437 Map<String, String> fields = new HashMap<>(); 438 ProtoRestSerializer<ListTargetPoolsRequest> serializer = 439 ProtoRestSerializer.create(); 440 serializer.putPathParam(fields, "project", request.getProject()); 441 serializer.putPathParam(fields, "region", request.getRegion()); 442 return fields; 443 }) 444 .setQueryParamsExtractor( 445 request -> { 446 Map<String, List<String>> fields = new HashMap<>(); 447 ProtoRestSerializer<ListTargetPoolsRequest> serializer = 448 ProtoRestSerializer.create(); 449 if (request.hasFilter()) { 450 serializer.putQueryParam(fields, "filter", request.getFilter()); 451 } 452 if (request.hasMaxResults()) { 453 serializer.putQueryParam( 454 fields, "maxResults", request.getMaxResults()); 455 } 456 if (request.hasOrderBy()) { 457 serializer.putQueryParam(fields, "orderBy", request.getOrderBy()); 458 } 459 if (request.hasPageToken()) { 460 serializer.putQueryParam(fields, "pageToken", request.getPageToken()); 461 } 462 if (request.hasReturnPartialSuccess()) { 463 serializer.putQueryParam( 464 fields, 465 "returnPartialSuccess", 466 request.getReturnPartialSuccess()); 467 } 468 return fields; 469 }) 470 .setRequestBodyExtractor(request -> null) 471 .build()) 472 .setResponseParser( 473 ProtoMessageResponseParser.<TargetPoolList>newBuilder() 474 .setDefaultInstance(TargetPoolList.getDefaultInstance()) 475 .setDefaultTypeRegistry(typeRegistry) 476 .build()) 477 .build(); 478 479 private static final ApiMethodDescriptor<RemoveHealthCheckTargetPoolRequest, Operation> 480 removeHealthCheckMethodDescriptor = 481 ApiMethodDescriptor.<RemoveHealthCheckTargetPoolRequest, Operation>newBuilder() 482 .setFullMethodName("google.cloud.compute.v1.TargetPools/RemoveHealthCheck") 483 .setHttpMethod("POST") 484 .setType(ApiMethodDescriptor.MethodType.UNARY) 485 .setRequestFormatter( 486 ProtoMessageRequestFormatter.<RemoveHealthCheckTargetPoolRequest>newBuilder() 487 .setPath( 488 "/compute/v1/projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck", 489 request -> { 490 Map<String, String> fields = new HashMap<>(); 491 ProtoRestSerializer<RemoveHealthCheckTargetPoolRequest> serializer = 492 ProtoRestSerializer.create(); 493 serializer.putPathParam(fields, "project", request.getProject()); 494 serializer.putPathParam(fields, "region", request.getRegion()); 495 serializer.putPathParam(fields, "targetPool", request.getTargetPool()); 496 return fields; 497 }) 498 .setQueryParamsExtractor( 499 request -> { 500 Map<String, List<String>> fields = new HashMap<>(); 501 ProtoRestSerializer<RemoveHealthCheckTargetPoolRequest> serializer = 502 ProtoRestSerializer.create(); 503 if (request.hasRequestId()) { 504 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 505 } 506 return fields; 507 }) 508 .setRequestBodyExtractor( 509 request -> 510 ProtoRestSerializer.create() 511 .toBody( 512 "targetPoolsRemoveHealthCheckRequestResource", 513 request.getTargetPoolsRemoveHealthCheckRequestResource(), 514 false)) 515 .build()) 516 .setResponseParser( 517 ProtoMessageResponseParser.<Operation>newBuilder() 518 .setDefaultInstance(Operation.getDefaultInstance()) 519 .setDefaultTypeRegistry(typeRegistry) 520 .build()) 521 .setOperationSnapshotFactory( 522 (RemoveHealthCheckTargetPoolRequest request, Operation response) -> { 523 StringBuilder opName = new StringBuilder(response.getName()); 524 opName.append(":").append(request.getProject()); 525 opName.append(":").append(request.getRegion()); 526 return HttpJsonOperationSnapshot.newBuilder() 527 .setName(opName.toString()) 528 .setMetadata(response) 529 .setDone(Status.DONE.equals(response.getStatus())) 530 .setResponse(response) 531 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 532 .build(); 533 }) 534 .build(); 535 536 private static final ApiMethodDescriptor<RemoveInstanceTargetPoolRequest, Operation> 537 removeInstanceMethodDescriptor = 538 ApiMethodDescriptor.<RemoveInstanceTargetPoolRequest, Operation>newBuilder() 539 .setFullMethodName("google.cloud.compute.v1.TargetPools/RemoveInstance") 540 .setHttpMethod("POST") 541 .setType(ApiMethodDescriptor.MethodType.UNARY) 542 .setRequestFormatter( 543 ProtoMessageRequestFormatter.<RemoveInstanceTargetPoolRequest>newBuilder() 544 .setPath( 545 "/compute/v1/projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance", 546 request -> { 547 Map<String, String> fields = new HashMap<>(); 548 ProtoRestSerializer<RemoveInstanceTargetPoolRequest> serializer = 549 ProtoRestSerializer.create(); 550 serializer.putPathParam(fields, "project", request.getProject()); 551 serializer.putPathParam(fields, "region", request.getRegion()); 552 serializer.putPathParam(fields, "targetPool", request.getTargetPool()); 553 return fields; 554 }) 555 .setQueryParamsExtractor( 556 request -> { 557 Map<String, List<String>> fields = new HashMap<>(); 558 ProtoRestSerializer<RemoveInstanceTargetPoolRequest> serializer = 559 ProtoRestSerializer.create(); 560 if (request.hasRequestId()) { 561 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 562 } 563 return fields; 564 }) 565 .setRequestBodyExtractor( 566 request -> 567 ProtoRestSerializer.create() 568 .toBody( 569 "targetPoolsRemoveInstanceRequestResource", 570 request.getTargetPoolsRemoveInstanceRequestResource(), 571 false)) 572 .build()) 573 .setResponseParser( 574 ProtoMessageResponseParser.<Operation>newBuilder() 575 .setDefaultInstance(Operation.getDefaultInstance()) 576 .setDefaultTypeRegistry(typeRegistry) 577 .build()) 578 .setOperationSnapshotFactory( 579 (RemoveInstanceTargetPoolRequest request, Operation response) -> { 580 StringBuilder opName = new StringBuilder(response.getName()); 581 opName.append(":").append(request.getProject()); 582 opName.append(":").append(request.getRegion()); 583 return HttpJsonOperationSnapshot.newBuilder() 584 .setName(opName.toString()) 585 .setMetadata(response) 586 .setDone(Status.DONE.equals(response.getStatus())) 587 .setResponse(response) 588 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 589 .build(); 590 }) 591 .build(); 592 593 private static final ApiMethodDescriptor<SetBackupTargetPoolRequest, Operation> 594 setBackupMethodDescriptor = 595 ApiMethodDescriptor.<SetBackupTargetPoolRequest, Operation>newBuilder() 596 .setFullMethodName("google.cloud.compute.v1.TargetPools/SetBackup") 597 .setHttpMethod("POST") 598 .setType(ApiMethodDescriptor.MethodType.UNARY) 599 .setRequestFormatter( 600 ProtoMessageRequestFormatter.<SetBackupTargetPoolRequest>newBuilder() 601 .setPath( 602 "/compute/v1/projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup", 603 request -> { 604 Map<String, String> fields = new HashMap<>(); 605 ProtoRestSerializer<SetBackupTargetPoolRequest> serializer = 606 ProtoRestSerializer.create(); 607 serializer.putPathParam(fields, "project", request.getProject()); 608 serializer.putPathParam(fields, "region", request.getRegion()); 609 serializer.putPathParam(fields, "targetPool", request.getTargetPool()); 610 return fields; 611 }) 612 .setQueryParamsExtractor( 613 request -> { 614 Map<String, List<String>> fields = new HashMap<>(); 615 ProtoRestSerializer<SetBackupTargetPoolRequest> serializer = 616 ProtoRestSerializer.create(); 617 if (request.hasFailoverRatio()) { 618 serializer.putQueryParam( 619 fields, "failoverRatio", request.getFailoverRatio()); 620 } 621 if (request.hasRequestId()) { 622 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 623 } 624 return fields; 625 }) 626 .setRequestBodyExtractor( 627 request -> 628 ProtoRestSerializer.create() 629 .toBody( 630 "targetReferenceResource", 631 request.getTargetReferenceResource(), 632 false)) 633 .build()) 634 .setResponseParser( 635 ProtoMessageResponseParser.<Operation>newBuilder() 636 .setDefaultInstance(Operation.getDefaultInstance()) 637 .setDefaultTypeRegistry(typeRegistry) 638 .build()) 639 .setOperationSnapshotFactory( 640 (SetBackupTargetPoolRequest request, Operation response) -> { 641 StringBuilder opName = new StringBuilder(response.getName()); 642 opName.append(":").append(request.getProject()); 643 opName.append(":").append(request.getRegion()); 644 return HttpJsonOperationSnapshot.newBuilder() 645 .setName(opName.toString()) 646 .setMetadata(response) 647 .setDone(Status.DONE.equals(response.getStatus())) 648 .setResponse(response) 649 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 650 .build(); 651 }) 652 .build(); 653 654 private final UnaryCallable<AddHealthCheckTargetPoolRequest, Operation> addHealthCheckCallable; 655 private final OperationCallable<AddHealthCheckTargetPoolRequest, Operation, Operation> 656 addHealthCheckOperationCallable; 657 private final UnaryCallable<AddInstanceTargetPoolRequest, Operation> addInstanceCallable; 658 private final OperationCallable<AddInstanceTargetPoolRequest, Operation, Operation> 659 addInstanceOperationCallable; 660 private final UnaryCallable<AggregatedListTargetPoolsRequest, TargetPoolAggregatedList> 661 aggregatedListCallable; 662 private final UnaryCallable<AggregatedListTargetPoolsRequest, AggregatedListPagedResponse> 663 aggregatedListPagedCallable; 664 private final UnaryCallable<DeleteTargetPoolRequest, Operation> deleteCallable; 665 private final OperationCallable<DeleteTargetPoolRequest, Operation, Operation> 666 deleteOperationCallable; 667 private final UnaryCallable<GetTargetPoolRequest, TargetPool> getCallable; 668 private final UnaryCallable<GetHealthTargetPoolRequest, TargetPoolInstanceHealth> 669 getHealthCallable; 670 private final UnaryCallable<InsertTargetPoolRequest, Operation> insertCallable; 671 private final OperationCallable<InsertTargetPoolRequest, Operation, Operation> 672 insertOperationCallable; 673 private final UnaryCallable<ListTargetPoolsRequest, TargetPoolList> listCallable; 674 private final UnaryCallable<ListTargetPoolsRequest, ListPagedResponse> listPagedCallable; 675 private final UnaryCallable<RemoveHealthCheckTargetPoolRequest, Operation> 676 removeHealthCheckCallable; 677 private final OperationCallable<RemoveHealthCheckTargetPoolRequest, Operation, Operation> 678 removeHealthCheckOperationCallable; 679 private final UnaryCallable<RemoveInstanceTargetPoolRequest, Operation> removeInstanceCallable; 680 private final OperationCallable<RemoveInstanceTargetPoolRequest, Operation, Operation> 681 removeInstanceOperationCallable; 682 private final UnaryCallable<SetBackupTargetPoolRequest, Operation> setBackupCallable; 683 private final OperationCallable<SetBackupTargetPoolRequest, Operation, Operation> 684 setBackupOperationCallable; 685 686 private final BackgroundResource backgroundResources; 687 private final HttpJsonRegionOperationsStub httpJsonOperationsStub; 688 private final HttpJsonStubCallableFactory callableFactory; 689 create(TargetPoolsStubSettings settings)690 public static final HttpJsonTargetPoolsStub create(TargetPoolsStubSettings settings) 691 throws IOException { 692 return new HttpJsonTargetPoolsStub(settings, ClientContext.create(settings)); 693 } 694 create(ClientContext clientContext)695 public static final HttpJsonTargetPoolsStub create(ClientContext clientContext) 696 throws IOException { 697 return new HttpJsonTargetPoolsStub(TargetPoolsStubSettings.newBuilder().build(), clientContext); 698 } 699 create( ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)700 public static final HttpJsonTargetPoolsStub create( 701 ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException { 702 return new HttpJsonTargetPoolsStub( 703 TargetPoolsStubSettings.newBuilder().build(), clientContext, callableFactory); 704 } 705 706 /** 707 * Constructs an instance of HttpJsonTargetPoolsStub, using the given settings. This is protected 708 * so that it is easy to make a subclass, but otherwise, the static factory methods should be 709 * preferred. 710 */ HttpJsonTargetPoolsStub(TargetPoolsStubSettings settings, ClientContext clientContext)711 protected HttpJsonTargetPoolsStub(TargetPoolsStubSettings settings, ClientContext clientContext) 712 throws IOException { 713 this(settings, clientContext, new HttpJsonTargetPoolsCallableFactory()); 714 } 715 716 /** 717 * Constructs an instance of HttpJsonTargetPoolsStub, using the given settings. This is protected 718 * so that it is easy to make a subclass, but otherwise, the static factory methods should be 719 * preferred. 720 */ HttpJsonTargetPoolsStub( TargetPoolsStubSettings settings, ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)721 protected HttpJsonTargetPoolsStub( 722 TargetPoolsStubSettings settings, 723 ClientContext clientContext, 724 HttpJsonStubCallableFactory callableFactory) 725 throws IOException { 726 this.callableFactory = callableFactory; 727 this.httpJsonOperationsStub = 728 HttpJsonRegionOperationsStub.create(clientContext, callableFactory); 729 730 HttpJsonCallSettings<AddHealthCheckTargetPoolRequest, Operation> 731 addHealthCheckTransportSettings = 732 HttpJsonCallSettings.<AddHealthCheckTargetPoolRequest, Operation>newBuilder() 733 .setMethodDescriptor(addHealthCheckMethodDescriptor) 734 .setTypeRegistry(typeRegistry) 735 .build(); 736 HttpJsonCallSettings<AddInstanceTargetPoolRequest, Operation> addInstanceTransportSettings = 737 HttpJsonCallSettings.<AddInstanceTargetPoolRequest, Operation>newBuilder() 738 .setMethodDescriptor(addInstanceMethodDescriptor) 739 .setTypeRegistry(typeRegistry) 740 .build(); 741 HttpJsonCallSettings<AggregatedListTargetPoolsRequest, TargetPoolAggregatedList> 742 aggregatedListTransportSettings = 743 HttpJsonCallSettings 744 .<AggregatedListTargetPoolsRequest, TargetPoolAggregatedList>newBuilder() 745 .setMethodDescriptor(aggregatedListMethodDescriptor) 746 .setTypeRegistry(typeRegistry) 747 .build(); 748 HttpJsonCallSettings<DeleteTargetPoolRequest, Operation> deleteTransportSettings = 749 HttpJsonCallSettings.<DeleteTargetPoolRequest, Operation>newBuilder() 750 .setMethodDescriptor(deleteMethodDescriptor) 751 .setTypeRegistry(typeRegistry) 752 .build(); 753 HttpJsonCallSettings<GetTargetPoolRequest, TargetPool> getTransportSettings = 754 HttpJsonCallSettings.<GetTargetPoolRequest, TargetPool>newBuilder() 755 .setMethodDescriptor(getMethodDescriptor) 756 .setTypeRegistry(typeRegistry) 757 .build(); 758 HttpJsonCallSettings<GetHealthTargetPoolRequest, TargetPoolInstanceHealth> 759 getHealthTransportSettings = 760 HttpJsonCallSettings.<GetHealthTargetPoolRequest, TargetPoolInstanceHealth>newBuilder() 761 .setMethodDescriptor(getHealthMethodDescriptor) 762 .setTypeRegistry(typeRegistry) 763 .build(); 764 HttpJsonCallSettings<InsertTargetPoolRequest, Operation> insertTransportSettings = 765 HttpJsonCallSettings.<InsertTargetPoolRequest, Operation>newBuilder() 766 .setMethodDescriptor(insertMethodDescriptor) 767 .setTypeRegistry(typeRegistry) 768 .build(); 769 HttpJsonCallSettings<ListTargetPoolsRequest, TargetPoolList> listTransportSettings = 770 HttpJsonCallSettings.<ListTargetPoolsRequest, TargetPoolList>newBuilder() 771 .setMethodDescriptor(listMethodDescriptor) 772 .setTypeRegistry(typeRegistry) 773 .build(); 774 HttpJsonCallSettings<RemoveHealthCheckTargetPoolRequest, Operation> 775 removeHealthCheckTransportSettings = 776 HttpJsonCallSettings.<RemoveHealthCheckTargetPoolRequest, Operation>newBuilder() 777 .setMethodDescriptor(removeHealthCheckMethodDescriptor) 778 .setTypeRegistry(typeRegistry) 779 .build(); 780 HttpJsonCallSettings<RemoveInstanceTargetPoolRequest, Operation> 781 removeInstanceTransportSettings = 782 HttpJsonCallSettings.<RemoveInstanceTargetPoolRequest, Operation>newBuilder() 783 .setMethodDescriptor(removeInstanceMethodDescriptor) 784 .setTypeRegistry(typeRegistry) 785 .build(); 786 HttpJsonCallSettings<SetBackupTargetPoolRequest, Operation> setBackupTransportSettings = 787 HttpJsonCallSettings.<SetBackupTargetPoolRequest, Operation>newBuilder() 788 .setMethodDescriptor(setBackupMethodDescriptor) 789 .setTypeRegistry(typeRegistry) 790 .build(); 791 792 this.addHealthCheckCallable = 793 callableFactory.createUnaryCallable( 794 addHealthCheckTransportSettings, settings.addHealthCheckSettings(), clientContext); 795 this.addHealthCheckOperationCallable = 796 callableFactory.createOperationCallable( 797 addHealthCheckTransportSettings, 798 settings.addHealthCheckOperationSettings(), 799 clientContext, 800 httpJsonOperationsStub); 801 this.addInstanceCallable = 802 callableFactory.createUnaryCallable( 803 addInstanceTransportSettings, settings.addInstanceSettings(), clientContext); 804 this.addInstanceOperationCallable = 805 callableFactory.createOperationCallable( 806 addInstanceTransportSettings, 807 settings.addInstanceOperationSettings(), 808 clientContext, 809 httpJsonOperationsStub); 810 this.aggregatedListCallable = 811 callableFactory.createUnaryCallable( 812 aggregatedListTransportSettings, settings.aggregatedListSettings(), clientContext); 813 this.aggregatedListPagedCallable = 814 callableFactory.createPagedCallable( 815 aggregatedListTransportSettings, settings.aggregatedListSettings(), clientContext); 816 this.deleteCallable = 817 callableFactory.createUnaryCallable( 818 deleteTransportSettings, settings.deleteSettings(), clientContext); 819 this.deleteOperationCallable = 820 callableFactory.createOperationCallable( 821 deleteTransportSettings, 822 settings.deleteOperationSettings(), 823 clientContext, 824 httpJsonOperationsStub); 825 this.getCallable = 826 callableFactory.createUnaryCallable( 827 getTransportSettings, settings.getSettings(), clientContext); 828 this.getHealthCallable = 829 callableFactory.createUnaryCallable( 830 getHealthTransportSettings, settings.getHealthSettings(), clientContext); 831 this.insertCallable = 832 callableFactory.createUnaryCallable( 833 insertTransportSettings, settings.insertSettings(), clientContext); 834 this.insertOperationCallable = 835 callableFactory.createOperationCallable( 836 insertTransportSettings, 837 settings.insertOperationSettings(), 838 clientContext, 839 httpJsonOperationsStub); 840 this.listCallable = 841 callableFactory.createUnaryCallable( 842 listTransportSettings, settings.listSettings(), clientContext); 843 this.listPagedCallable = 844 callableFactory.createPagedCallable( 845 listTransportSettings, settings.listSettings(), clientContext); 846 this.removeHealthCheckCallable = 847 callableFactory.createUnaryCallable( 848 removeHealthCheckTransportSettings, 849 settings.removeHealthCheckSettings(), 850 clientContext); 851 this.removeHealthCheckOperationCallable = 852 callableFactory.createOperationCallable( 853 removeHealthCheckTransportSettings, 854 settings.removeHealthCheckOperationSettings(), 855 clientContext, 856 httpJsonOperationsStub); 857 this.removeInstanceCallable = 858 callableFactory.createUnaryCallable( 859 removeInstanceTransportSettings, settings.removeInstanceSettings(), clientContext); 860 this.removeInstanceOperationCallable = 861 callableFactory.createOperationCallable( 862 removeInstanceTransportSettings, 863 settings.removeInstanceOperationSettings(), 864 clientContext, 865 httpJsonOperationsStub); 866 this.setBackupCallable = 867 callableFactory.createUnaryCallable( 868 setBackupTransportSettings, settings.setBackupSettings(), clientContext); 869 this.setBackupOperationCallable = 870 callableFactory.createOperationCallable( 871 setBackupTransportSettings, 872 settings.setBackupOperationSettings(), 873 clientContext, 874 httpJsonOperationsStub); 875 876 this.backgroundResources = 877 new BackgroundResourceAggregation(clientContext.getBackgroundResources()); 878 } 879 880 @InternalApi getMethodDescriptors()881 public static List<ApiMethodDescriptor> getMethodDescriptors() { 882 List<ApiMethodDescriptor> methodDescriptors = new ArrayList<>(); 883 methodDescriptors.add(addHealthCheckMethodDescriptor); 884 methodDescriptors.add(addInstanceMethodDescriptor); 885 methodDescriptors.add(aggregatedListMethodDescriptor); 886 methodDescriptors.add(deleteMethodDescriptor); 887 methodDescriptors.add(getMethodDescriptor); 888 methodDescriptors.add(getHealthMethodDescriptor); 889 methodDescriptors.add(insertMethodDescriptor); 890 methodDescriptors.add(listMethodDescriptor); 891 methodDescriptors.add(removeHealthCheckMethodDescriptor); 892 methodDescriptors.add(removeInstanceMethodDescriptor); 893 methodDescriptors.add(setBackupMethodDescriptor); 894 return methodDescriptors; 895 } 896 897 @Override addHealthCheckCallable()898 public UnaryCallable<AddHealthCheckTargetPoolRequest, Operation> addHealthCheckCallable() { 899 return addHealthCheckCallable; 900 } 901 902 @Override 903 public OperationCallable<AddHealthCheckTargetPoolRequest, Operation, Operation> addHealthCheckOperationCallable()904 addHealthCheckOperationCallable() { 905 return addHealthCheckOperationCallable; 906 } 907 908 @Override addInstanceCallable()909 public UnaryCallable<AddInstanceTargetPoolRequest, Operation> addInstanceCallable() { 910 return addInstanceCallable; 911 } 912 913 @Override 914 public OperationCallable<AddInstanceTargetPoolRequest, Operation, Operation> addInstanceOperationCallable()915 addInstanceOperationCallable() { 916 return addInstanceOperationCallable; 917 } 918 919 @Override 920 public UnaryCallable<AggregatedListTargetPoolsRequest, TargetPoolAggregatedList> aggregatedListCallable()921 aggregatedListCallable() { 922 return aggregatedListCallable; 923 } 924 925 @Override 926 public UnaryCallable<AggregatedListTargetPoolsRequest, AggregatedListPagedResponse> aggregatedListPagedCallable()927 aggregatedListPagedCallable() { 928 return aggregatedListPagedCallable; 929 } 930 931 @Override deleteCallable()932 public UnaryCallable<DeleteTargetPoolRequest, Operation> deleteCallable() { 933 return deleteCallable; 934 } 935 936 @Override 937 public OperationCallable<DeleteTargetPoolRequest, Operation, Operation> deleteOperationCallable()938 deleteOperationCallable() { 939 return deleteOperationCallable; 940 } 941 942 @Override getCallable()943 public UnaryCallable<GetTargetPoolRequest, TargetPool> getCallable() { 944 return getCallable; 945 } 946 947 @Override getHealthCallable()948 public UnaryCallable<GetHealthTargetPoolRequest, TargetPoolInstanceHealth> getHealthCallable() { 949 return getHealthCallable; 950 } 951 952 @Override insertCallable()953 public UnaryCallable<InsertTargetPoolRequest, Operation> insertCallable() { 954 return insertCallable; 955 } 956 957 @Override 958 public OperationCallable<InsertTargetPoolRequest, Operation, Operation> insertOperationCallable()959 insertOperationCallable() { 960 return insertOperationCallable; 961 } 962 963 @Override listCallable()964 public UnaryCallable<ListTargetPoolsRequest, TargetPoolList> listCallable() { 965 return listCallable; 966 } 967 968 @Override listPagedCallable()969 public UnaryCallable<ListTargetPoolsRequest, ListPagedResponse> listPagedCallable() { 970 return listPagedCallable; 971 } 972 973 @Override removeHealthCheckCallable()974 public UnaryCallable<RemoveHealthCheckTargetPoolRequest, Operation> removeHealthCheckCallable() { 975 return removeHealthCheckCallable; 976 } 977 978 @Override 979 public OperationCallable<RemoveHealthCheckTargetPoolRequest, Operation, Operation> removeHealthCheckOperationCallable()980 removeHealthCheckOperationCallable() { 981 return removeHealthCheckOperationCallable; 982 } 983 984 @Override removeInstanceCallable()985 public UnaryCallable<RemoveInstanceTargetPoolRequest, Operation> removeInstanceCallable() { 986 return removeInstanceCallable; 987 } 988 989 @Override 990 public OperationCallable<RemoveInstanceTargetPoolRequest, Operation, Operation> removeInstanceOperationCallable()991 removeInstanceOperationCallable() { 992 return removeInstanceOperationCallable; 993 } 994 995 @Override setBackupCallable()996 public UnaryCallable<SetBackupTargetPoolRequest, Operation> setBackupCallable() { 997 return setBackupCallable; 998 } 999 1000 @Override 1001 public OperationCallable<SetBackupTargetPoolRequest, Operation, Operation> setBackupOperationCallable()1002 setBackupOperationCallable() { 1003 return setBackupOperationCallable; 1004 } 1005 1006 @Override close()1007 public final void close() { 1008 try { 1009 backgroundResources.close(); 1010 } catch (RuntimeException e) { 1011 throw e; 1012 } catch (Exception e) { 1013 throw new IllegalStateException("Failed to close resource", e); 1014 } 1015 } 1016 1017 @Override shutdown()1018 public void shutdown() { 1019 backgroundResources.shutdown(); 1020 } 1021 1022 @Override isShutdown()1023 public boolean isShutdown() { 1024 return backgroundResources.isShutdown(); 1025 } 1026 1027 @Override isTerminated()1028 public boolean isTerminated() { 1029 return backgroundResources.isTerminated(); 1030 } 1031 1032 @Override shutdownNow()1033 public void shutdownNow() { 1034 backgroundResources.shutdownNow(); 1035 } 1036 1037 @Override awaitTermination(long duration, TimeUnit unit)1038 public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { 1039 return backgroundResources.awaitTermination(duration, unit); 1040 } 1041 } 1042