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