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.BackendBucketsClient.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.AddSignedUrlKeyBackendBucketRequest; 36 import com.google.cloud.compute.v1.BackendBucket; 37 import com.google.cloud.compute.v1.BackendBucketList; 38 import com.google.cloud.compute.v1.DeleteBackendBucketRequest; 39 import com.google.cloud.compute.v1.DeleteSignedUrlKeyBackendBucketRequest; 40 import com.google.cloud.compute.v1.GetBackendBucketRequest; 41 import com.google.cloud.compute.v1.InsertBackendBucketRequest; 42 import com.google.cloud.compute.v1.ListBackendBucketsRequest; 43 import com.google.cloud.compute.v1.Operation; 44 import com.google.cloud.compute.v1.Operation.Status; 45 import com.google.cloud.compute.v1.PatchBackendBucketRequest; 46 import com.google.cloud.compute.v1.SetEdgeSecurityPolicyBackendBucketRequest; 47 import com.google.cloud.compute.v1.UpdateBackendBucketRequest; 48 import com.google.protobuf.TypeRegistry; 49 import java.io.IOException; 50 import java.util.ArrayList; 51 import java.util.HashMap; 52 import java.util.List; 53 import java.util.Map; 54 import java.util.concurrent.TimeUnit; 55 import javax.annotation.Generated; 56 57 // AUTO-GENERATED DOCUMENTATION AND CLASS. 58 /** 59 * REST stub implementation for the BackendBuckets service API. 60 * 61 * <p>This class is for advanced usage and reflects the underlying API directly. 62 */ 63 @Generated("by gapic-generator-java") 64 @BetaApi 65 public class HttpJsonBackendBucketsStub extends BackendBucketsStub { 66 private static final TypeRegistry typeRegistry = 67 TypeRegistry.newBuilder().add(Operation.getDescriptor()).build(); 68 69 private static final ApiMethodDescriptor<AddSignedUrlKeyBackendBucketRequest, Operation> 70 addSignedUrlKeyMethodDescriptor = 71 ApiMethodDescriptor.<AddSignedUrlKeyBackendBucketRequest, Operation>newBuilder() 72 .setFullMethodName("google.cloud.compute.v1.BackendBuckets/AddSignedUrlKey") 73 .setHttpMethod("POST") 74 .setType(ApiMethodDescriptor.MethodType.UNARY) 75 .setRequestFormatter( 76 ProtoMessageRequestFormatter.<AddSignedUrlKeyBackendBucketRequest>newBuilder() 77 .setPath( 78 "/compute/v1/projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey", 79 request -> { 80 Map<String, String> fields = new HashMap<>(); 81 ProtoRestSerializer<AddSignedUrlKeyBackendBucketRequest> serializer = 82 ProtoRestSerializer.create(); 83 serializer.putPathParam( 84 fields, "backendBucket", request.getBackendBucket()); 85 serializer.putPathParam(fields, "project", request.getProject()); 86 return fields; 87 }) 88 .setQueryParamsExtractor( 89 request -> { 90 Map<String, List<String>> fields = new HashMap<>(); 91 ProtoRestSerializer<AddSignedUrlKeyBackendBucketRequest> serializer = 92 ProtoRestSerializer.create(); 93 if (request.hasRequestId()) { 94 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 95 } 96 return fields; 97 }) 98 .setRequestBodyExtractor( 99 request -> 100 ProtoRestSerializer.create() 101 .toBody( 102 "signedUrlKeyResource", 103 request.getSignedUrlKeyResource(), 104 false)) 105 .build()) 106 .setResponseParser( 107 ProtoMessageResponseParser.<Operation>newBuilder() 108 .setDefaultInstance(Operation.getDefaultInstance()) 109 .setDefaultTypeRegistry(typeRegistry) 110 .build()) 111 .setOperationSnapshotFactory( 112 (AddSignedUrlKeyBackendBucketRequest request, Operation response) -> { 113 StringBuilder opName = new StringBuilder(response.getName()); 114 opName.append(":").append(request.getProject()); 115 return HttpJsonOperationSnapshot.newBuilder() 116 .setName(opName.toString()) 117 .setMetadata(response) 118 .setDone(Status.DONE.equals(response.getStatus())) 119 .setResponse(response) 120 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 121 .build(); 122 }) 123 .build(); 124 125 private static final ApiMethodDescriptor<DeleteBackendBucketRequest, Operation> 126 deleteMethodDescriptor = 127 ApiMethodDescriptor.<DeleteBackendBucketRequest, Operation>newBuilder() 128 .setFullMethodName("google.cloud.compute.v1.BackendBuckets/Delete") 129 .setHttpMethod("DELETE") 130 .setType(ApiMethodDescriptor.MethodType.UNARY) 131 .setRequestFormatter( 132 ProtoMessageRequestFormatter.<DeleteBackendBucketRequest>newBuilder() 133 .setPath( 134 "/compute/v1/projects/{project}/global/backendBuckets/{backendBucket}", 135 request -> { 136 Map<String, String> fields = new HashMap<>(); 137 ProtoRestSerializer<DeleteBackendBucketRequest> serializer = 138 ProtoRestSerializer.create(); 139 serializer.putPathParam( 140 fields, "backendBucket", request.getBackendBucket()); 141 serializer.putPathParam(fields, "project", request.getProject()); 142 return fields; 143 }) 144 .setQueryParamsExtractor( 145 request -> { 146 Map<String, List<String>> fields = new HashMap<>(); 147 ProtoRestSerializer<DeleteBackendBucketRequest> serializer = 148 ProtoRestSerializer.create(); 149 if (request.hasRequestId()) { 150 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 151 } 152 return fields; 153 }) 154 .setRequestBodyExtractor(request -> null) 155 .build()) 156 .setResponseParser( 157 ProtoMessageResponseParser.<Operation>newBuilder() 158 .setDefaultInstance(Operation.getDefaultInstance()) 159 .setDefaultTypeRegistry(typeRegistry) 160 .build()) 161 .setOperationSnapshotFactory( 162 (DeleteBackendBucketRequest request, Operation response) -> { 163 StringBuilder opName = new StringBuilder(response.getName()); 164 opName.append(":").append(request.getProject()); 165 return HttpJsonOperationSnapshot.newBuilder() 166 .setName(opName.toString()) 167 .setMetadata(response) 168 .setDone(Status.DONE.equals(response.getStatus())) 169 .setResponse(response) 170 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 171 .build(); 172 }) 173 .build(); 174 175 private static final ApiMethodDescriptor<DeleteSignedUrlKeyBackendBucketRequest, Operation> 176 deleteSignedUrlKeyMethodDescriptor = 177 ApiMethodDescriptor.<DeleteSignedUrlKeyBackendBucketRequest, Operation>newBuilder() 178 .setFullMethodName("google.cloud.compute.v1.BackendBuckets/DeleteSignedUrlKey") 179 .setHttpMethod("POST") 180 .setType(ApiMethodDescriptor.MethodType.UNARY) 181 .setRequestFormatter( 182 ProtoMessageRequestFormatter.<DeleteSignedUrlKeyBackendBucketRequest>newBuilder() 183 .setPath( 184 "/compute/v1/projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey", 185 request -> { 186 Map<String, String> fields = new HashMap<>(); 187 ProtoRestSerializer<DeleteSignedUrlKeyBackendBucketRequest> serializer = 188 ProtoRestSerializer.create(); 189 serializer.putPathParam( 190 fields, "backendBucket", request.getBackendBucket()); 191 serializer.putPathParam(fields, "project", request.getProject()); 192 return fields; 193 }) 194 .setQueryParamsExtractor( 195 request -> { 196 Map<String, List<String>> fields = new HashMap<>(); 197 ProtoRestSerializer<DeleteSignedUrlKeyBackendBucketRequest> serializer = 198 ProtoRestSerializer.create(); 199 serializer.putQueryParam(fields, "keyName", request.getKeyName()); 200 if (request.hasRequestId()) { 201 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 202 } 203 return fields; 204 }) 205 .setRequestBodyExtractor(request -> null) 206 .build()) 207 .setResponseParser( 208 ProtoMessageResponseParser.<Operation>newBuilder() 209 .setDefaultInstance(Operation.getDefaultInstance()) 210 .setDefaultTypeRegistry(typeRegistry) 211 .build()) 212 .setOperationSnapshotFactory( 213 (DeleteSignedUrlKeyBackendBucketRequest request, Operation response) -> { 214 StringBuilder opName = new StringBuilder(response.getName()); 215 opName.append(":").append(request.getProject()); 216 return HttpJsonOperationSnapshot.newBuilder() 217 .setName(opName.toString()) 218 .setMetadata(response) 219 .setDone(Status.DONE.equals(response.getStatus())) 220 .setResponse(response) 221 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 222 .build(); 223 }) 224 .build(); 225 226 private static final ApiMethodDescriptor<GetBackendBucketRequest, BackendBucket> 227 getMethodDescriptor = 228 ApiMethodDescriptor.<GetBackendBucketRequest, BackendBucket>newBuilder() 229 .setFullMethodName("google.cloud.compute.v1.BackendBuckets/Get") 230 .setHttpMethod("GET") 231 .setType(ApiMethodDescriptor.MethodType.UNARY) 232 .setRequestFormatter( 233 ProtoMessageRequestFormatter.<GetBackendBucketRequest>newBuilder() 234 .setPath( 235 "/compute/v1/projects/{project}/global/backendBuckets/{backendBucket}", 236 request -> { 237 Map<String, String> fields = new HashMap<>(); 238 ProtoRestSerializer<GetBackendBucketRequest> serializer = 239 ProtoRestSerializer.create(); 240 serializer.putPathParam( 241 fields, "backendBucket", request.getBackendBucket()); 242 serializer.putPathParam(fields, "project", request.getProject()); 243 return fields; 244 }) 245 .setQueryParamsExtractor( 246 request -> { 247 Map<String, List<String>> fields = new HashMap<>(); 248 ProtoRestSerializer<GetBackendBucketRequest> serializer = 249 ProtoRestSerializer.create(); 250 return fields; 251 }) 252 .setRequestBodyExtractor(request -> null) 253 .build()) 254 .setResponseParser( 255 ProtoMessageResponseParser.<BackendBucket>newBuilder() 256 .setDefaultInstance(BackendBucket.getDefaultInstance()) 257 .setDefaultTypeRegistry(typeRegistry) 258 .build()) 259 .build(); 260 261 private static final ApiMethodDescriptor<InsertBackendBucketRequest, Operation> 262 insertMethodDescriptor = 263 ApiMethodDescriptor.<InsertBackendBucketRequest, Operation>newBuilder() 264 .setFullMethodName("google.cloud.compute.v1.BackendBuckets/Insert") 265 .setHttpMethod("POST") 266 .setType(ApiMethodDescriptor.MethodType.UNARY) 267 .setRequestFormatter( 268 ProtoMessageRequestFormatter.<InsertBackendBucketRequest>newBuilder() 269 .setPath( 270 "/compute/v1/projects/{project}/global/backendBuckets", 271 request -> { 272 Map<String, String> fields = new HashMap<>(); 273 ProtoRestSerializer<InsertBackendBucketRequest> serializer = 274 ProtoRestSerializer.create(); 275 serializer.putPathParam(fields, "project", request.getProject()); 276 return fields; 277 }) 278 .setQueryParamsExtractor( 279 request -> { 280 Map<String, List<String>> fields = new HashMap<>(); 281 ProtoRestSerializer<InsertBackendBucketRequest> serializer = 282 ProtoRestSerializer.create(); 283 if (request.hasRequestId()) { 284 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 285 } 286 return fields; 287 }) 288 .setRequestBodyExtractor( 289 request -> 290 ProtoRestSerializer.create() 291 .toBody( 292 "backendBucketResource", 293 request.getBackendBucketResource(), 294 false)) 295 .build()) 296 .setResponseParser( 297 ProtoMessageResponseParser.<Operation>newBuilder() 298 .setDefaultInstance(Operation.getDefaultInstance()) 299 .setDefaultTypeRegistry(typeRegistry) 300 .build()) 301 .setOperationSnapshotFactory( 302 (InsertBackendBucketRequest request, Operation response) -> { 303 StringBuilder opName = new StringBuilder(response.getName()); 304 opName.append(":").append(request.getProject()); 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<ListBackendBucketsRequest, BackendBucketList> 316 listMethodDescriptor = 317 ApiMethodDescriptor.<ListBackendBucketsRequest, BackendBucketList>newBuilder() 318 .setFullMethodName("google.cloud.compute.v1.BackendBuckets/List") 319 .setHttpMethod("GET") 320 .setType(ApiMethodDescriptor.MethodType.UNARY) 321 .setRequestFormatter( 322 ProtoMessageRequestFormatter.<ListBackendBucketsRequest>newBuilder() 323 .setPath( 324 "/compute/v1/projects/{project}/global/backendBuckets", 325 request -> { 326 Map<String, String> fields = new HashMap<>(); 327 ProtoRestSerializer<ListBackendBucketsRequest> serializer = 328 ProtoRestSerializer.create(); 329 serializer.putPathParam(fields, "project", request.getProject()); 330 return fields; 331 }) 332 .setQueryParamsExtractor( 333 request -> { 334 Map<String, List<String>> fields = new HashMap<>(); 335 ProtoRestSerializer<ListBackendBucketsRequest> serializer = 336 ProtoRestSerializer.create(); 337 if (request.hasFilter()) { 338 serializer.putQueryParam(fields, "filter", request.getFilter()); 339 } 340 if (request.hasMaxResults()) { 341 serializer.putQueryParam( 342 fields, "maxResults", request.getMaxResults()); 343 } 344 if (request.hasOrderBy()) { 345 serializer.putQueryParam(fields, "orderBy", request.getOrderBy()); 346 } 347 if (request.hasPageToken()) { 348 serializer.putQueryParam(fields, "pageToken", request.getPageToken()); 349 } 350 if (request.hasReturnPartialSuccess()) { 351 serializer.putQueryParam( 352 fields, 353 "returnPartialSuccess", 354 request.getReturnPartialSuccess()); 355 } 356 return fields; 357 }) 358 .setRequestBodyExtractor(request -> null) 359 .build()) 360 .setResponseParser( 361 ProtoMessageResponseParser.<BackendBucketList>newBuilder() 362 .setDefaultInstance(BackendBucketList.getDefaultInstance()) 363 .setDefaultTypeRegistry(typeRegistry) 364 .build()) 365 .build(); 366 367 private static final ApiMethodDescriptor<PatchBackendBucketRequest, Operation> 368 patchMethodDescriptor = 369 ApiMethodDescriptor.<PatchBackendBucketRequest, Operation>newBuilder() 370 .setFullMethodName("google.cloud.compute.v1.BackendBuckets/Patch") 371 .setHttpMethod("PATCH") 372 .setType(ApiMethodDescriptor.MethodType.UNARY) 373 .setRequestFormatter( 374 ProtoMessageRequestFormatter.<PatchBackendBucketRequest>newBuilder() 375 .setPath( 376 "/compute/v1/projects/{project}/global/backendBuckets/{backendBucket}", 377 request -> { 378 Map<String, String> fields = new HashMap<>(); 379 ProtoRestSerializer<PatchBackendBucketRequest> serializer = 380 ProtoRestSerializer.create(); 381 serializer.putPathParam( 382 fields, "backendBucket", request.getBackendBucket()); 383 serializer.putPathParam(fields, "project", request.getProject()); 384 return fields; 385 }) 386 .setQueryParamsExtractor( 387 request -> { 388 Map<String, List<String>> fields = new HashMap<>(); 389 ProtoRestSerializer<PatchBackendBucketRequest> serializer = 390 ProtoRestSerializer.create(); 391 if (request.hasRequestId()) { 392 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 393 } 394 return fields; 395 }) 396 .setRequestBodyExtractor( 397 request -> 398 ProtoRestSerializer.create() 399 .toBody( 400 "backendBucketResource", 401 request.getBackendBucketResource(), 402 false)) 403 .build()) 404 .setResponseParser( 405 ProtoMessageResponseParser.<Operation>newBuilder() 406 .setDefaultInstance(Operation.getDefaultInstance()) 407 .setDefaultTypeRegistry(typeRegistry) 408 .build()) 409 .setOperationSnapshotFactory( 410 (PatchBackendBucketRequest request, Operation response) -> { 411 StringBuilder opName = new StringBuilder(response.getName()); 412 opName.append(":").append(request.getProject()); 413 return HttpJsonOperationSnapshot.newBuilder() 414 .setName(opName.toString()) 415 .setMetadata(response) 416 .setDone(Status.DONE.equals(response.getStatus())) 417 .setResponse(response) 418 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 419 .build(); 420 }) 421 .build(); 422 423 private static final ApiMethodDescriptor<SetEdgeSecurityPolicyBackendBucketRequest, Operation> 424 setEdgeSecurityPolicyMethodDescriptor = 425 ApiMethodDescriptor.<SetEdgeSecurityPolicyBackendBucketRequest, Operation>newBuilder() 426 .setFullMethodName("google.cloud.compute.v1.BackendBuckets/SetEdgeSecurityPolicy") 427 .setHttpMethod("POST") 428 .setType(ApiMethodDescriptor.MethodType.UNARY) 429 .setRequestFormatter( 430 ProtoMessageRequestFormatter 431 .<SetEdgeSecurityPolicyBackendBucketRequest>newBuilder() 432 .setPath( 433 "/compute/v1/projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy", 434 request -> { 435 Map<String, String> fields = new HashMap<>(); 436 ProtoRestSerializer<SetEdgeSecurityPolicyBackendBucketRequest> 437 serializer = ProtoRestSerializer.create(); 438 serializer.putPathParam( 439 fields, "backendBucket", request.getBackendBucket()); 440 serializer.putPathParam(fields, "project", request.getProject()); 441 return fields; 442 }) 443 .setQueryParamsExtractor( 444 request -> { 445 Map<String, List<String>> fields = new HashMap<>(); 446 ProtoRestSerializer<SetEdgeSecurityPolicyBackendBucketRequest> 447 serializer = ProtoRestSerializer.create(); 448 if (request.hasRequestId()) { 449 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 450 } 451 return fields; 452 }) 453 .setRequestBodyExtractor( 454 request -> 455 ProtoRestSerializer.create() 456 .toBody( 457 "securityPolicyReferenceResource", 458 request.getSecurityPolicyReferenceResource(), 459 false)) 460 .build()) 461 .setResponseParser( 462 ProtoMessageResponseParser.<Operation>newBuilder() 463 .setDefaultInstance(Operation.getDefaultInstance()) 464 .setDefaultTypeRegistry(typeRegistry) 465 .build()) 466 .setOperationSnapshotFactory( 467 (SetEdgeSecurityPolicyBackendBucketRequest request, Operation response) -> { 468 StringBuilder opName = new StringBuilder(response.getName()); 469 opName.append(":").append(request.getProject()); 470 return HttpJsonOperationSnapshot.newBuilder() 471 .setName(opName.toString()) 472 .setMetadata(response) 473 .setDone(Status.DONE.equals(response.getStatus())) 474 .setResponse(response) 475 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 476 .build(); 477 }) 478 .build(); 479 480 private static final ApiMethodDescriptor<UpdateBackendBucketRequest, Operation> 481 updateMethodDescriptor = 482 ApiMethodDescriptor.<UpdateBackendBucketRequest, Operation>newBuilder() 483 .setFullMethodName("google.cloud.compute.v1.BackendBuckets/Update") 484 .setHttpMethod("PUT") 485 .setType(ApiMethodDescriptor.MethodType.UNARY) 486 .setRequestFormatter( 487 ProtoMessageRequestFormatter.<UpdateBackendBucketRequest>newBuilder() 488 .setPath( 489 "/compute/v1/projects/{project}/global/backendBuckets/{backendBucket}", 490 request -> { 491 Map<String, String> fields = new HashMap<>(); 492 ProtoRestSerializer<UpdateBackendBucketRequest> serializer = 493 ProtoRestSerializer.create(); 494 serializer.putPathParam( 495 fields, "backendBucket", request.getBackendBucket()); 496 serializer.putPathParam(fields, "project", request.getProject()); 497 return fields; 498 }) 499 .setQueryParamsExtractor( 500 request -> { 501 Map<String, List<String>> fields = new HashMap<>(); 502 ProtoRestSerializer<UpdateBackendBucketRequest> serializer = 503 ProtoRestSerializer.create(); 504 if (request.hasRequestId()) { 505 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 506 } 507 return fields; 508 }) 509 .setRequestBodyExtractor( 510 request -> 511 ProtoRestSerializer.create() 512 .toBody( 513 "backendBucketResource", 514 request.getBackendBucketResource(), 515 false)) 516 .build()) 517 .setResponseParser( 518 ProtoMessageResponseParser.<Operation>newBuilder() 519 .setDefaultInstance(Operation.getDefaultInstance()) 520 .setDefaultTypeRegistry(typeRegistry) 521 .build()) 522 .setOperationSnapshotFactory( 523 (UpdateBackendBucketRequest request, Operation response) -> { 524 StringBuilder opName = new StringBuilder(response.getName()); 525 opName.append(":").append(request.getProject()); 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 final UnaryCallable<AddSignedUrlKeyBackendBucketRequest, Operation> 537 addSignedUrlKeyCallable; 538 private final OperationCallable<AddSignedUrlKeyBackendBucketRequest, Operation, Operation> 539 addSignedUrlKeyOperationCallable; 540 private final UnaryCallable<DeleteBackendBucketRequest, Operation> deleteCallable; 541 private final OperationCallable<DeleteBackendBucketRequest, Operation, Operation> 542 deleteOperationCallable; 543 private final UnaryCallable<DeleteSignedUrlKeyBackendBucketRequest, Operation> 544 deleteSignedUrlKeyCallable; 545 private final OperationCallable<DeleteSignedUrlKeyBackendBucketRequest, Operation, Operation> 546 deleteSignedUrlKeyOperationCallable; 547 private final UnaryCallable<GetBackendBucketRequest, BackendBucket> getCallable; 548 private final UnaryCallable<InsertBackendBucketRequest, Operation> insertCallable; 549 private final OperationCallable<InsertBackendBucketRequest, Operation, Operation> 550 insertOperationCallable; 551 private final UnaryCallable<ListBackendBucketsRequest, BackendBucketList> listCallable; 552 private final UnaryCallable<ListBackendBucketsRequest, ListPagedResponse> listPagedCallable; 553 private final UnaryCallable<PatchBackendBucketRequest, Operation> patchCallable; 554 private final OperationCallable<PatchBackendBucketRequest, Operation, Operation> 555 patchOperationCallable; 556 private final UnaryCallable<SetEdgeSecurityPolicyBackendBucketRequest, Operation> 557 setEdgeSecurityPolicyCallable; 558 private final OperationCallable<SetEdgeSecurityPolicyBackendBucketRequest, Operation, Operation> 559 setEdgeSecurityPolicyOperationCallable; 560 private final UnaryCallable<UpdateBackendBucketRequest, Operation> updateCallable; 561 private final OperationCallable<UpdateBackendBucketRequest, Operation, Operation> 562 updateOperationCallable; 563 564 private final BackgroundResource backgroundResources; 565 private final HttpJsonGlobalOperationsStub httpJsonOperationsStub; 566 private final HttpJsonStubCallableFactory callableFactory; 567 create(BackendBucketsStubSettings settings)568 public static final HttpJsonBackendBucketsStub create(BackendBucketsStubSettings settings) 569 throws IOException { 570 return new HttpJsonBackendBucketsStub(settings, ClientContext.create(settings)); 571 } 572 create(ClientContext clientContext)573 public static final HttpJsonBackendBucketsStub create(ClientContext clientContext) 574 throws IOException { 575 return new HttpJsonBackendBucketsStub( 576 BackendBucketsStubSettings.newBuilder().build(), clientContext); 577 } 578 create( ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)579 public static final HttpJsonBackendBucketsStub create( 580 ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException { 581 return new HttpJsonBackendBucketsStub( 582 BackendBucketsStubSettings.newBuilder().build(), clientContext, callableFactory); 583 } 584 585 /** 586 * Constructs an instance of HttpJsonBackendBucketsStub, using the given settings. This is 587 * protected so that it is easy to make a subclass, but otherwise, the static factory methods 588 * should be preferred. 589 */ HttpJsonBackendBucketsStub( BackendBucketsStubSettings settings, ClientContext clientContext)590 protected HttpJsonBackendBucketsStub( 591 BackendBucketsStubSettings settings, ClientContext clientContext) throws IOException { 592 this(settings, clientContext, new HttpJsonBackendBucketsCallableFactory()); 593 } 594 595 /** 596 * Constructs an instance of HttpJsonBackendBucketsStub, using the given settings. This is 597 * protected so that it is easy to make a subclass, but otherwise, the static factory methods 598 * should be preferred. 599 */ HttpJsonBackendBucketsStub( BackendBucketsStubSettings settings, ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)600 protected HttpJsonBackendBucketsStub( 601 BackendBucketsStubSettings settings, 602 ClientContext clientContext, 603 HttpJsonStubCallableFactory callableFactory) 604 throws IOException { 605 this.callableFactory = callableFactory; 606 this.httpJsonOperationsStub = 607 HttpJsonGlobalOperationsStub.create(clientContext, callableFactory); 608 609 HttpJsonCallSettings<AddSignedUrlKeyBackendBucketRequest, Operation> 610 addSignedUrlKeyTransportSettings = 611 HttpJsonCallSettings.<AddSignedUrlKeyBackendBucketRequest, Operation>newBuilder() 612 .setMethodDescriptor(addSignedUrlKeyMethodDescriptor) 613 .setTypeRegistry(typeRegistry) 614 .build(); 615 HttpJsonCallSettings<DeleteBackendBucketRequest, Operation> deleteTransportSettings = 616 HttpJsonCallSettings.<DeleteBackendBucketRequest, Operation>newBuilder() 617 .setMethodDescriptor(deleteMethodDescriptor) 618 .setTypeRegistry(typeRegistry) 619 .build(); 620 HttpJsonCallSettings<DeleteSignedUrlKeyBackendBucketRequest, Operation> 621 deleteSignedUrlKeyTransportSettings = 622 HttpJsonCallSettings.<DeleteSignedUrlKeyBackendBucketRequest, Operation>newBuilder() 623 .setMethodDescriptor(deleteSignedUrlKeyMethodDescriptor) 624 .setTypeRegistry(typeRegistry) 625 .build(); 626 HttpJsonCallSettings<GetBackendBucketRequest, BackendBucket> getTransportSettings = 627 HttpJsonCallSettings.<GetBackendBucketRequest, BackendBucket>newBuilder() 628 .setMethodDescriptor(getMethodDescriptor) 629 .setTypeRegistry(typeRegistry) 630 .build(); 631 HttpJsonCallSettings<InsertBackendBucketRequest, Operation> insertTransportSettings = 632 HttpJsonCallSettings.<InsertBackendBucketRequest, Operation>newBuilder() 633 .setMethodDescriptor(insertMethodDescriptor) 634 .setTypeRegistry(typeRegistry) 635 .build(); 636 HttpJsonCallSettings<ListBackendBucketsRequest, BackendBucketList> listTransportSettings = 637 HttpJsonCallSettings.<ListBackendBucketsRequest, BackendBucketList>newBuilder() 638 .setMethodDescriptor(listMethodDescriptor) 639 .setTypeRegistry(typeRegistry) 640 .build(); 641 HttpJsonCallSettings<PatchBackendBucketRequest, Operation> patchTransportSettings = 642 HttpJsonCallSettings.<PatchBackendBucketRequest, Operation>newBuilder() 643 .setMethodDescriptor(patchMethodDescriptor) 644 .setTypeRegistry(typeRegistry) 645 .build(); 646 HttpJsonCallSettings<SetEdgeSecurityPolicyBackendBucketRequest, Operation> 647 setEdgeSecurityPolicyTransportSettings = 648 HttpJsonCallSettings.<SetEdgeSecurityPolicyBackendBucketRequest, Operation>newBuilder() 649 .setMethodDescriptor(setEdgeSecurityPolicyMethodDescriptor) 650 .setTypeRegistry(typeRegistry) 651 .build(); 652 HttpJsonCallSettings<UpdateBackendBucketRequest, Operation> updateTransportSettings = 653 HttpJsonCallSettings.<UpdateBackendBucketRequest, Operation>newBuilder() 654 .setMethodDescriptor(updateMethodDescriptor) 655 .setTypeRegistry(typeRegistry) 656 .build(); 657 658 this.addSignedUrlKeyCallable = 659 callableFactory.createUnaryCallable( 660 addSignedUrlKeyTransportSettings, settings.addSignedUrlKeySettings(), clientContext); 661 this.addSignedUrlKeyOperationCallable = 662 callableFactory.createOperationCallable( 663 addSignedUrlKeyTransportSettings, 664 settings.addSignedUrlKeyOperationSettings(), 665 clientContext, 666 httpJsonOperationsStub); 667 this.deleteCallable = 668 callableFactory.createUnaryCallable( 669 deleteTransportSettings, settings.deleteSettings(), clientContext); 670 this.deleteOperationCallable = 671 callableFactory.createOperationCallable( 672 deleteTransportSettings, 673 settings.deleteOperationSettings(), 674 clientContext, 675 httpJsonOperationsStub); 676 this.deleteSignedUrlKeyCallable = 677 callableFactory.createUnaryCallable( 678 deleteSignedUrlKeyTransportSettings, 679 settings.deleteSignedUrlKeySettings(), 680 clientContext); 681 this.deleteSignedUrlKeyOperationCallable = 682 callableFactory.createOperationCallable( 683 deleteSignedUrlKeyTransportSettings, 684 settings.deleteSignedUrlKeyOperationSettings(), 685 clientContext, 686 httpJsonOperationsStub); 687 this.getCallable = 688 callableFactory.createUnaryCallable( 689 getTransportSettings, settings.getSettings(), clientContext); 690 this.insertCallable = 691 callableFactory.createUnaryCallable( 692 insertTransportSettings, settings.insertSettings(), clientContext); 693 this.insertOperationCallable = 694 callableFactory.createOperationCallable( 695 insertTransportSettings, 696 settings.insertOperationSettings(), 697 clientContext, 698 httpJsonOperationsStub); 699 this.listCallable = 700 callableFactory.createUnaryCallable( 701 listTransportSettings, settings.listSettings(), clientContext); 702 this.listPagedCallable = 703 callableFactory.createPagedCallable( 704 listTransportSettings, settings.listSettings(), clientContext); 705 this.patchCallable = 706 callableFactory.createUnaryCallable( 707 patchTransportSettings, settings.patchSettings(), clientContext); 708 this.patchOperationCallable = 709 callableFactory.createOperationCallable( 710 patchTransportSettings, 711 settings.patchOperationSettings(), 712 clientContext, 713 httpJsonOperationsStub); 714 this.setEdgeSecurityPolicyCallable = 715 callableFactory.createUnaryCallable( 716 setEdgeSecurityPolicyTransportSettings, 717 settings.setEdgeSecurityPolicySettings(), 718 clientContext); 719 this.setEdgeSecurityPolicyOperationCallable = 720 callableFactory.createOperationCallable( 721 setEdgeSecurityPolicyTransportSettings, 722 settings.setEdgeSecurityPolicyOperationSettings(), 723 clientContext, 724 httpJsonOperationsStub); 725 this.updateCallable = 726 callableFactory.createUnaryCallable( 727 updateTransportSettings, settings.updateSettings(), clientContext); 728 this.updateOperationCallable = 729 callableFactory.createOperationCallable( 730 updateTransportSettings, 731 settings.updateOperationSettings(), 732 clientContext, 733 httpJsonOperationsStub); 734 735 this.backgroundResources = 736 new BackgroundResourceAggregation(clientContext.getBackgroundResources()); 737 } 738 739 @InternalApi getMethodDescriptors()740 public static List<ApiMethodDescriptor> getMethodDescriptors() { 741 List<ApiMethodDescriptor> methodDescriptors = new ArrayList<>(); 742 methodDescriptors.add(addSignedUrlKeyMethodDescriptor); 743 methodDescriptors.add(deleteMethodDescriptor); 744 methodDescriptors.add(deleteSignedUrlKeyMethodDescriptor); 745 methodDescriptors.add(getMethodDescriptor); 746 methodDescriptors.add(insertMethodDescriptor); 747 methodDescriptors.add(listMethodDescriptor); 748 methodDescriptors.add(patchMethodDescriptor); 749 methodDescriptors.add(setEdgeSecurityPolicyMethodDescriptor); 750 methodDescriptors.add(updateMethodDescriptor); 751 return methodDescriptors; 752 } 753 754 @Override addSignedUrlKeyCallable()755 public UnaryCallable<AddSignedUrlKeyBackendBucketRequest, Operation> addSignedUrlKeyCallable() { 756 return addSignedUrlKeyCallable; 757 } 758 759 @Override 760 public OperationCallable<AddSignedUrlKeyBackendBucketRequest, Operation, Operation> addSignedUrlKeyOperationCallable()761 addSignedUrlKeyOperationCallable() { 762 return addSignedUrlKeyOperationCallable; 763 } 764 765 @Override deleteCallable()766 public UnaryCallable<DeleteBackendBucketRequest, Operation> deleteCallable() { 767 return deleteCallable; 768 } 769 770 @Override 771 public OperationCallable<DeleteBackendBucketRequest, Operation, Operation> deleteOperationCallable()772 deleteOperationCallable() { 773 return deleteOperationCallable; 774 } 775 776 @Override 777 public UnaryCallable<DeleteSignedUrlKeyBackendBucketRequest, Operation> deleteSignedUrlKeyCallable()778 deleteSignedUrlKeyCallable() { 779 return deleteSignedUrlKeyCallable; 780 } 781 782 @Override 783 public OperationCallable<DeleteSignedUrlKeyBackendBucketRequest, Operation, Operation> deleteSignedUrlKeyOperationCallable()784 deleteSignedUrlKeyOperationCallable() { 785 return deleteSignedUrlKeyOperationCallable; 786 } 787 788 @Override getCallable()789 public UnaryCallable<GetBackendBucketRequest, BackendBucket> getCallable() { 790 return getCallable; 791 } 792 793 @Override insertCallable()794 public UnaryCallable<InsertBackendBucketRequest, Operation> insertCallable() { 795 return insertCallable; 796 } 797 798 @Override 799 public OperationCallable<InsertBackendBucketRequest, Operation, Operation> insertOperationCallable()800 insertOperationCallable() { 801 return insertOperationCallable; 802 } 803 804 @Override listCallable()805 public UnaryCallable<ListBackendBucketsRequest, BackendBucketList> listCallable() { 806 return listCallable; 807 } 808 809 @Override listPagedCallable()810 public UnaryCallable<ListBackendBucketsRequest, ListPagedResponse> listPagedCallable() { 811 return listPagedCallable; 812 } 813 814 @Override patchCallable()815 public UnaryCallable<PatchBackendBucketRequest, Operation> patchCallable() { 816 return patchCallable; 817 } 818 819 @Override 820 public OperationCallable<PatchBackendBucketRequest, Operation, Operation> patchOperationCallable()821 patchOperationCallable() { 822 return patchOperationCallable; 823 } 824 825 @Override 826 public UnaryCallable<SetEdgeSecurityPolicyBackendBucketRequest, Operation> setEdgeSecurityPolicyCallable()827 setEdgeSecurityPolicyCallable() { 828 return setEdgeSecurityPolicyCallable; 829 } 830 831 @Override 832 public OperationCallable<SetEdgeSecurityPolicyBackendBucketRequest, Operation, Operation> setEdgeSecurityPolicyOperationCallable()833 setEdgeSecurityPolicyOperationCallable() { 834 return setEdgeSecurityPolicyOperationCallable; 835 } 836 837 @Override updateCallable()838 public UnaryCallable<UpdateBackendBucketRequest, Operation> updateCallable() { 839 return updateCallable; 840 } 841 842 @Override 843 public OperationCallable<UpdateBackendBucketRequest, Operation, Operation> updateOperationCallable()844 updateOperationCallable() { 845 return updateOperationCallable; 846 } 847 848 @Override close()849 public final void close() { 850 try { 851 backgroundResources.close(); 852 } catch (RuntimeException e) { 853 throw e; 854 } catch (Exception e) { 855 throw new IllegalStateException("Failed to close resource", e); 856 } 857 } 858 859 @Override shutdown()860 public void shutdown() { 861 backgroundResources.shutdown(); 862 } 863 864 @Override isShutdown()865 public boolean isShutdown() { 866 return backgroundResources.isShutdown(); 867 } 868 869 @Override isTerminated()870 public boolean isTerminated() { 871 return backgroundResources.isTerminated(); 872 } 873 874 @Override shutdownNow()875 public void shutdownNow() { 876 backgroundResources.shutdownNow(); 877 } 878 879 @Override awaitTermination(long duration, TimeUnit unit)880 public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { 881 return backgroundResources.awaitTermination(duration, unit); 882 } 883 } 884