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