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.UrlMapsClient.AggregatedListPagedResponse; 20 import static com.google.cloud.compute.v1.UrlMapsClient.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.AggregatedListUrlMapsRequest; 37 import com.google.cloud.compute.v1.DeleteUrlMapRequest; 38 import com.google.cloud.compute.v1.GetUrlMapRequest; 39 import com.google.cloud.compute.v1.InsertUrlMapRequest; 40 import com.google.cloud.compute.v1.InvalidateCacheUrlMapRequest; 41 import com.google.cloud.compute.v1.ListUrlMapsRequest; 42 import com.google.cloud.compute.v1.Operation; 43 import com.google.cloud.compute.v1.Operation.Status; 44 import com.google.cloud.compute.v1.PatchUrlMapRequest; 45 import com.google.cloud.compute.v1.UpdateUrlMapRequest; 46 import com.google.cloud.compute.v1.UrlMap; 47 import com.google.cloud.compute.v1.UrlMapList; 48 import com.google.cloud.compute.v1.UrlMapsAggregatedList; 49 import com.google.cloud.compute.v1.UrlMapsValidateResponse; 50 import com.google.cloud.compute.v1.ValidateUrlMapRequest; 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 UrlMaps 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 HttpJsonUrlMapsStub extends UrlMapsStub { 69 private static final TypeRegistry typeRegistry = 70 TypeRegistry.newBuilder().add(Operation.getDescriptor()).build(); 71 72 private static final ApiMethodDescriptor<AggregatedListUrlMapsRequest, UrlMapsAggregatedList> 73 aggregatedListMethodDescriptor = 74 ApiMethodDescriptor.<AggregatedListUrlMapsRequest, UrlMapsAggregatedList>newBuilder() 75 .setFullMethodName("google.cloud.compute.v1.UrlMaps/AggregatedList") 76 .setHttpMethod("GET") 77 .setType(ApiMethodDescriptor.MethodType.UNARY) 78 .setRequestFormatter( 79 ProtoMessageRequestFormatter.<AggregatedListUrlMapsRequest>newBuilder() 80 .setPath( 81 "/compute/v1/projects/{project}/aggregated/urlMaps", 82 request -> { 83 Map<String, String> fields = new HashMap<>(); 84 ProtoRestSerializer<AggregatedListUrlMapsRequest> serializer = 85 ProtoRestSerializer.create(); 86 serializer.putPathParam(fields, "project", request.getProject()); 87 return fields; 88 }) 89 .setQueryParamsExtractor( 90 request -> { 91 Map<String, List<String>> fields = new HashMap<>(); 92 ProtoRestSerializer<AggregatedListUrlMapsRequest> serializer = 93 ProtoRestSerializer.create(); 94 if (request.hasFilter()) { 95 serializer.putQueryParam(fields, "filter", request.getFilter()); 96 } 97 if (request.hasIncludeAllScopes()) { 98 serializer.putQueryParam( 99 fields, "includeAllScopes", request.getIncludeAllScopes()); 100 } 101 if (request.hasMaxResults()) { 102 serializer.putQueryParam( 103 fields, "maxResults", request.getMaxResults()); 104 } 105 if (request.hasOrderBy()) { 106 serializer.putQueryParam(fields, "orderBy", request.getOrderBy()); 107 } 108 if (request.hasPageToken()) { 109 serializer.putQueryParam(fields, "pageToken", request.getPageToken()); 110 } 111 if (request.hasReturnPartialSuccess()) { 112 serializer.putQueryParam( 113 fields, 114 "returnPartialSuccess", 115 request.getReturnPartialSuccess()); 116 } 117 return fields; 118 }) 119 .setRequestBodyExtractor(request -> null) 120 .build()) 121 .setResponseParser( 122 ProtoMessageResponseParser.<UrlMapsAggregatedList>newBuilder() 123 .setDefaultInstance(UrlMapsAggregatedList.getDefaultInstance()) 124 .setDefaultTypeRegistry(typeRegistry) 125 .build()) 126 .build(); 127 128 private static final ApiMethodDescriptor<DeleteUrlMapRequest, Operation> deleteMethodDescriptor = 129 ApiMethodDescriptor.<DeleteUrlMapRequest, Operation>newBuilder() 130 .setFullMethodName("google.cloud.compute.v1.UrlMaps/Delete") 131 .setHttpMethod("DELETE") 132 .setType(ApiMethodDescriptor.MethodType.UNARY) 133 .setRequestFormatter( 134 ProtoMessageRequestFormatter.<DeleteUrlMapRequest>newBuilder() 135 .setPath( 136 "/compute/v1/projects/{project}/global/urlMaps/{urlMap}", 137 request -> { 138 Map<String, String> fields = new HashMap<>(); 139 ProtoRestSerializer<DeleteUrlMapRequest> serializer = 140 ProtoRestSerializer.create(); 141 serializer.putPathParam(fields, "project", request.getProject()); 142 serializer.putPathParam(fields, "urlMap", request.getUrlMap()); 143 return fields; 144 }) 145 .setQueryParamsExtractor( 146 request -> { 147 Map<String, List<String>> fields = new HashMap<>(); 148 ProtoRestSerializer<DeleteUrlMapRequest> serializer = 149 ProtoRestSerializer.create(); 150 if (request.hasRequestId()) { 151 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 152 } 153 return fields; 154 }) 155 .setRequestBodyExtractor(request -> null) 156 .build()) 157 .setResponseParser( 158 ProtoMessageResponseParser.<Operation>newBuilder() 159 .setDefaultInstance(Operation.getDefaultInstance()) 160 .setDefaultTypeRegistry(typeRegistry) 161 .build()) 162 .setOperationSnapshotFactory( 163 (DeleteUrlMapRequest request, Operation response) -> { 164 StringBuilder opName = new StringBuilder(response.getName()); 165 opName.append(":").append(request.getProject()); 166 return HttpJsonOperationSnapshot.newBuilder() 167 .setName(opName.toString()) 168 .setMetadata(response) 169 .setDone(Status.DONE.equals(response.getStatus())) 170 .setResponse(response) 171 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 172 .build(); 173 }) 174 .build(); 175 176 private static final ApiMethodDescriptor<GetUrlMapRequest, UrlMap> getMethodDescriptor = 177 ApiMethodDescriptor.<GetUrlMapRequest, UrlMap>newBuilder() 178 .setFullMethodName("google.cloud.compute.v1.UrlMaps/Get") 179 .setHttpMethod("GET") 180 .setType(ApiMethodDescriptor.MethodType.UNARY) 181 .setRequestFormatter( 182 ProtoMessageRequestFormatter.<GetUrlMapRequest>newBuilder() 183 .setPath( 184 "/compute/v1/projects/{project}/global/urlMaps/{urlMap}", 185 request -> { 186 Map<String, String> fields = new HashMap<>(); 187 ProtoRestSerializer<GetUrlMapRequest> serializer = 188 ProtoRestSerializer.create(); 189 serializer.putPathParam(fields, "project", request.getProject()); 190 serializer.putPathParam(fields, "urlMap", request.getUrlMap()); 191 return fields; 192 }) 193 .setQueryParamsExtractor( 194 request -> { 195 Map<String, List<String>> fields = new HashMap<>(); 196 ProtoRestSerializer<GetUrlMapRequest> serializer = 197 ProtoRestSerializer.create(); 198 return fields; 199 }) 200 .setRequestBodyExtractor(request -> null) 201 .build()) 202 .setResponseParser( 203 ProtoMessageResponseParser.<UrlMap>newBuilder() 204 .setDefaultInstance(UrlMap.getDefaultInstance()) 205 .setDefaultTypeRegistry(typeRegistry) 206 .build()) 207 .build(); 208 209 private static final ApiMethodDescriptor<InsertUrlMapRequest, Operation> insertMethodDescriptor = 210 ApiMethodDescriptor.<InsertUrlMapRequest, Operation>newBuilder() 211 .setFullMethodName("google.cloud.compute.v1.UrlMaps/Insert") 212 .setHttpMethod("POST") 213 .setType(ApiMethodDescriptor.MethodType.UNARY) 214 .setRequestFormatter( 215 ProtoMessageRequestFormatter.<InsertUrlMapRequest>newBuilder() 216 .setPath( 217 "/compute/v1/projects/{project}/global/urlMaps", 218 request -> { 219 Map<String, String> fields = new HashMap<>(); 220 ProtoRestSerializer<InsertUrlMapRequest> serializer = 221 ProtoRestSerializer.create(); 222 serializer.putPathParam(fields, "project", request.getProject()); 223 return fields; 224 }) 225 .setQueryParamsExtractor( 226 request -> { 227 Map<String, List<String>> fields = new HashMap<>(); 228 ProtoRestSerializer<InsertUrlMapRequest> serializer = 229 ProtoRestSerializer.create(); 230 if (request.hasRequestId()) { 231 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 232 } 233 return fields; 234 }) 235 .setRequestBodyExtractor( 236 request -> 237 ProtoRestSerializer.create() 238 .toBody("urlMapResource", request.getUrlMapResource(), false)) 239 .build()) 240 .setResponseParser( 241 ProtoMessageResponseParser.<Operation>newBuilder() 242 .setDefaultInstance(Operation.getDefaultInstance()) 243 .setDefaultTypeRegistry(typeRegistry) 244 .build()) 245 .setOperationSnapshotFactory( 246 (InsertUrlMapRequest request, Operation response) -> { 247 StringBuilder opName = new StringBuilder(response.getName()); 248 opName.append(":").append(request.getProject()); 249 return HttpJsonOperationSnapshot.newBuilder() 250 .setName(opName.toString()) 251 .setMetadata(response) 252 .setDone(Status.DONE.equals(response.getStatus())) 253 .setResponse(response) 254 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 255 .build(); 256 }) 257 .build(); 258 259 private static final ApiMethodDescriptor<InvalidateCacheUrlMapRequest, Operation> 260 invalidateCacheMethodDescriptor = 261 ApiMethodDescriptor.<InvalidateCacheUrlMapRequest, Operation>newBuilder() 262 .setFullMethodName("google.cloud.compute.v1.UrlMaps/InvalidateCache") 263 .setHttpMethod("POST") 264 .setType(ApiMethodDescriptor.MethodType.UNARY) 265 .setRequestFormatter( 266 ProtoMessageRequestFormatter.<InvalidateCacheUrlMapRequest>newBuilder() 267 .setPath( 268 "/compute/v1/projects/{project}/global/urlMaps/{urlMap}/invalidateCache", 269 request -> { 270 Map<String, String> fields = new HashMap<>(); 271 ProtoRestSerializer<InvalidateCacheUrlMapRequest> serializer = 272 ProtoRestSerializer.create(); 273 serializer.putPathParam(fields, "project", request.getProject()); 274 serializer.putPathParam(fields, "urlMap", request.getUrlMap()); 275 return fields; 276 }) 277 .setQueryParamsExtractor( 278 request -> { 279 Map<String, List<String>> fields = new HashMap<>(); 280 ProtoRestSerializer<InvalidateCacheUrlMapRequest> 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 "cacheInvalidationRuleResource", 292 request.getCacheInvalidationRuleResource(), 293 false)) 294 .build()) 295 .setResponseParser( 296 ProtoMessageResponseParser.<Operation>newBuilder() 297 .setDefaultInstance(Operation.getDefaultInstance()) 298 .setDefaultTypeRegistry(typeRegistry) 299 .build()) 300 .setOperationSnapshotFactory( 301 (InvalidateCacheUrlMapRequest request, Operation response) -> { 302 StringBuilder opName = new StringBuilder(response.getName()); 303 opName.append(":").append(request.getProject()); 304 return HttpJsonOperationSnapshot.newBuilder() 305 .setName(opName.toString()) 306 .setMetadata(response) 307 .setDone(Status.DONE.equals(response.getStatus())) 308 .setResponse(response) 309 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 310 .build(); 311 }) 312 .build(); 313 314 private static final ApiMethodDescriptor<ListUrlMapsRequest, UrlMapList> listMethodDescriptor = 315 ApiMethodDescriptor.<ListUrlMapsRequest, UrlMapList>newBuilder() 316 .setFullMethodName("google.cloud.compute.v1.UrlMaps/List") 317 .setHttpMethod("GET") 318 .setType(ApiMethodDescriptor.MethodType.UNARY) 319 .setRequestFormatter( 320 ProtoMessageRequestFormatter.<ListUrlMapsRequest>newBuilder() 321 .setPath( 322 "/compute/v1/projects/{project}/global/urlMaps", 323 request -> { 324 Map<String, String> fields = new HashMap<>(); 325 ProtoRestSerializer<ListUrlMapsRequest> serializer = 326 ProtoRestSerializer.create(); 327 serializer.putPathParam(fields, "project", request.getProject()); 328 return fields; 329 }) 330 .setQueryParamsExtractor( 331 request -> { 332 Map<String, List<String>> fields = new HashMap<>(); 333 ProtoRestSerializer<ListUrlMapsRequest> serializer = 334 ProtoRestSerializer.create(); 335 if (request.hasFilter()) { 336 serializer.putQueryParam(fields, "filter", request.getFilter()); 337 } 338 if (request.hasMaxResults()) { 339 serializer.putQueryParam(fields, "maxResults", request.getMaxResults()); 340 } 341 if (request.hasOrderBy()) { 342 serializer.putQueryParam(fields, "orderBy", request.getOrderBy()); 343 } 344 if (request.hasPageToken()) { 345 serializer.putQueryParam(fields, "pageToken", request.getPageToken()); 346 } 347 if (request.hasReturnPartialSuccess()) { 348 serializer.putQueryParam( 349 fields, "returnPartialSuccess", request.getReturnPartialSuccess()); 350 } 351 return fields; 352 }) 353 .setRequestBodyExtractor(request -> null) 354 .build()) 355 .setResponseParser( 356 ProtoMessageResponseParser.<UrlMapList>newBuilder() 357 .setDefaultInstance(UrlMapList.getDefaultInstance()) 358 .setDefaultTypeRegistry(typeRegistry) 359 .build()) 360 .build(); 361 362 private static final ApiMethodDescriptor<PatchUrlMapRequest, Operation> patchMethodDescriptor = 363 ApiMethodDescriptor.<PatchUrlMapRequest, Operation>newBuilder() 364 .setFullMethodName("google.cloud.compute.v1.UrlMaps/Patch") 365 .setHttpMethod("PATCH") 366 .setType(ApiMethodDescriptor.MethodType.UNARY) 367 .setRequestFormatter( 368 ProtoMessageRequestFormatter.<PatchUrlMapRequest>newBuilder() 369 .setPath( 370 "/compute/v1/projects/{project}/global/urlMaps/{urlMap}", 371 request -> { 372 Map<String, String> fields = new HashMap<>(); 373 ProtoRestSerializer<PatchUrlMapRequest> serializer = 374 ProtoRestSerializer.create(); 375 serializer.putPathParam(fields, "project", request.getProject()); 376 serializer.putPathParam(fields, "urlMap", request.getUrlMap()); 377 return fields; 378 }) 379 .setQueryParamsExtractor( 380 request -> { 381 Map<String, List<String>> fields = new HashMap<>(); 382 ProtoRestSerializer<PatchUrlMapRequest> serializer = 383 ProtoRestSerializer.create(); 384 if (request.hasRequestId()) { 385 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 386 } 387 return fields; 388 }) 389 .setRequestBodyExtractor( 390 request -> 391 ProtoRestSerializer.create() 392 .toBody("urlMapResource", request.getUrlMapResource(), false)) 393 .build()) 394 .setResponseParser( 395 ProtoMessageResponseParser.<Operation>newBuilder() 396 .setDefaultInstance(Operation.getDefaultInstance()) 397 .setDefaultTypeRegistry(typeRegistry) 398 .build()) 399 .setOperationSnapshotFactory( 400 (PatchUrlMapRequest request, Operation response) -> { 401 StringBuilder opName = new StringBuilder(response.getName()); 402 opName.append(":").append(request.getProject()); 403 return HttpJsonOperationSnapshot.newBuilder() 404 .setName(opName.toString()) 405 .setMetadata(response) 406 .setDone(Status.DONE.equals(response.getStatus())) 407 .setResponse(response) 408 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 409 .build(); 410 }) 411 .build(); 412 413 private static final ApiMethodDescriptor<UpdateUrlMapRequest, Operation> updateMethodDescriptor = 414 ApiMethodDescriptor.<UpdateUrlMapRequest, Operation>newBuilder() 415 .setFullMethodName("google.cloud.compute.v1.UrlMaps/Update") 416 .setHttpMethod("PUT") 417 .setType(ApiMethodDescriptor.MethodType.UNARY) 418 .setRequestFormatter( 419 ProtoMessageRequestFormatter.<UpdateUrlMapRequest>newBuilder() 420 .setPath( 421 "/compute/v1/projects/{project}/global/urlMaps/{urlMap}", 422 request -> { 423 Map<String, String> fields = new HashMap<>(); 424 ProtoRestSerializer<UpdateUrlMapRequest> serializer = 425 ProtoRestSerializer.create(); 426 serializer.putPathParam(fields, "project", request.getProject()); 427 serializer.putPathParam(fields, "urlMap", request.getUrlMap()); 428 return fields; 429 }) 430 .setQueryParamsExtractor( 431 request -> { 432 Map<String, List<String>> fields = new HashMap<>(); 433 ProtoRestSerializer<UpdateUrlMapRequest> serializer = 434 ProtoRestSerializer.create(); 435 if (request.hasRequestId()) { 436 serializer.putQueryParam(fields, "requestId", request.getRequestId()); 437 } 438 return fields; 439 }) 440 .setRequestBodyExtractor( 441 request -> 442 ProtoRestSerializer.create() 443 .toBody("urlMapResource", request.getUrlMapResource(), false)) 444 .build()) 445 .setResponseParser( 446 ProtoMessageResponseParser.<Operation>newBuilder() 447 .setDefaultInstance(Operation.getDefaultInstance()) 448 .setDefaultTypeRegistry(typeRegistry) 449 .build()) 450 .setOperationSnapshotFactory( 451 (UpdateUrlMapRequest request, Operation response) -> { 452 StringBuilder opName = new StringBuilder(response.getName()); 453 opName.append(":").append(request.getProject()); 454 return HttpJsonOperationSnapshot.newBuilder() 455 .setName(opName.toString()) 456 .setMetadata(response) 457 .setDone(Status.DONE.equals(response.getStatus())) 458 .setResponse(response) 459 .setError(response.getHttpErrorStatusCode(), response.getHttpErrorMessage()) 460 .build(); 461 }) 462 .build(); 463 464 private static final ApiMethodDescriptor<ValidateUrlMapRequest, UrlMapsValidateResponse> 465 validateMethodDescriptor = 466 ApiMethodDescriptor.<ValidateUrlMapRequest, UrlMapsValidateResponse>newBuilder() 467 .setFullMethodName("google.cloud.compute.v1.UrlMaps/Validate") 468 .setHttpMethod("POST") 469 .setType(ApiMethodDescriptor.MethodType.UNARY) 470 .setRequestFormatter( 471 ProtoMessageRequestFormatter.<ValidateUrlMapRequest>newBuilder() 472 .setPath( 473 "/compute/v1/projects/{project}/global/urlMaps/{urlMap}/validate", 474 request -> { 475 Map<String, String> fields = new HashMap<>(); 476 ProtoRestSerializer<ValidateUrlMapRequest> serializer = 477 ProtoRestSerializer.create(); 478 serializer.putPathParam(fields, "project", request.getProject()); 479 serializer.putPathParam(fields, "urlMap", request.getUrlMap()); 480 return fields; 481 }) 482 .setQueryParamsExtractor( 483 request -> { 484 Map<String, List<String>> fields = new HashMap<>(); 485 ProtoRestSerializer<ValidateUrlMapRequest> serializer = 486 ProtoRestSerializer.create(); 487 return fields; 488 }) 489 .setRequestBodyExtractor( 490 request -> 491 ProtoRestSerializer.create() 492 .toBody( 493 "urlMapsValidateRequestResource", 494 request.getUrlMapsValidateRequestResource(), 495 false)) 496 .build()) 497 .setResponseParser( 498 ProtoMessageResponseParser.<UrlMapsValidateResponse>newBuilder() 499 .setDefaultInstance(UrlMapsValidateResponse.getDefaultInstance()) 500 .setDefaultTypeRegistry(typeRegistry) 501 .build()) 502 .build(); 503 504 private final UnaryCallable<AggregatedListUrlMapsRequest, UrlMapsAggregatedList> 505 aggregatedListCallable; 506 private final UnaryCallable<AggregatedListUrlMapsRequest, AggregatedListPagedResponse> 507 aggregatedListPagedCallable; 508 private final UnaryCallable<DeleteUrlMapRequest, Operation> deleteCallable; 509 private final OperationCallable<DeleteUrlMapRequest, Operation, Operation> 510 deleteOperationCallable; 511 private final UnaryCallable<GetUrlMapRequest, UrlMap> getCallable; 512 private final UnaryCallable<InsertUrlMapRequest, Operation> insertCallable; 513 private final OperationCallable<InsertUrlMapRequest, Operation, Operation> 514 insertOperationCallable; 515 private final UnaryCallable<InvalidateCacheUrlMapRequest, Operation> invalidateCacheCallable; 516 private final OperationCallable<InvalidateCacheUrlMapRequest, Operation, Operation> 517 invalidateCacheOperationCallable; 518 private final UnaryCallable<ListUrlMapsRequest, UrlMapList> listCallable; 519 private final UnaryCallable<ListUrlMapsRequest, ListPagedResponse> listPagedCallable; 520 private final UnaryCallable<PatchUrlMapRequest, Operation> patchCallable; 521 private final OperationCallable<PatchUrlMapRequest, Operation, Operation> patchOperationCallable; 522 private final UnaryCallable<UpdateUrlMapRequest, Operation> updateCallable; 523 private final OperationCallable<UpdateUrlMapRequest, Operation, Operation> 524 updateOperationCallable; 525 private final UnaryCallable<ValidateUrlMapRequest, UrlMapsValidateResponse> validateCallable; 526 527 private final BackgroundResource backgroundResources; 528 private final HttpJsonGlobalOperationsStub httpJsonOperationsStub; 529 private final HttpJsonStubCallableFactory callableFactory; 530 create(UrlMapsStubSettings settings)531 public static final HttpJsonUrlMapsStub create(UrlMapsStubSettings settings) throws IOException { 532 return new HttpJsonUrlMapsStub(settings, ClientContext.create(settings)); 533 } 534 create(ClientContext clientContext)535 public static final HttpJsonUrlMapsStub create(ClientContext clientContext) throws IOException { 536 return new HttpJsonUrlMapsStub(UrlMapsStubSettings.newBuilder().build(), clientContext); 537 } 538 create( ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)539 public static final HttpJsonUrlMapsStub create( 540 ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException { 541 return new HttpJsonUrlMapsStub( 542 UrlMapsStubSettings.newBuilder().build(), clientContext, callableFactory); 543 } 544 545 /** 546 * Constructs an instance of HttpJsonUrlMapsStub, using the given settings. This is protected so 547 * that it is easy to make a subclass, but otherwise, the static factory methods should be 548 * preferred. 549 */ HttpJsonUrlMapsStub(UrlMapsStubSettings settings, ClientContext clientContext)550 protected HttpJsonUrlMapsStub(UrlMapsStubSettings settings, ClientContext clientContext) 551 throws IOException { 552 this(settings, clientContext, new HttpJsonUrlMapsCallableFactory()); 553 } 554 555 /** 556 * Constructs an instance of HttpJsonUrlMapsStub, using the given settings. This is protected so 557 * that it is easy to make a subclass, but otherwise, the static factory methods should be 558 * preferred. 559 */ HttpJsonUrlMapsStub( UrlMapsStubSettings settings, ClientContext clientContext, HttpJsonStubCallableFactory callableFactory)560 protected HttpJsonUrlMapsStub( 561 UrlMapsStubSettings settings, 562 ClientContext clientContext, 563 HttpJsonStubCallableFactory callableFactory) 564 throws IOException { 565 this.callableFactory = callableFactory; 566 this.httpJsonOperationsStub = 567 HttpJsonGlobalOperationsStub.create(clientContext, callableFactory); 568 569 HttpJsonCallSettings<AggregatedListUrlMapsRequest, UrlMapsAggregatedList> 570 aggregatedListTransportSettings = 571 HttpJsonCallSettings.<AggregatedListUrlMapsRequest, UrlMapsAggregatedList>newBuilder() 572 .setMethodDescriptor(aggregatedListMethodDescriptor) 573 .setTypeRegistry(typeRegistry) 574 .build(); 575 HttpJsonCallSettings<DeleteUrlMapRequest, Operation> deleteTransportSettings = 576 HttpJsonCallSettings.<DeleteUrlMapRequest, Operation>newBuilder() 577 .setMethodDescriptor(deleteMethodDescriptor) 578 .setTypeRegistry(typeRegistry) 579 .build(); 580 HttpJsonCallSettings<GetUrlMapRequest, UrlMap> getTransportSettings = 581 HttpJsonCallSettings.<GetUrlMapRequest, UrlMap>newBuilder() 582 .setMethodDescriptor(getMethodDescriptor) 583 .setTypeRegistry(typeRegistry) 584 .build(); 585 HttpJsonCallSettings<InsertUrlMapRequest, Operation> insertTransportSettings = 586 HttpJsonCallSettings.<InsertUrlMapRequest, Operation>newBuilder() 587 .setMethodDescriptor(insertMethodDescriptor) 588 .setTypeRegistry(typeRegistry) 589 .build(); 590 HttpJsonCallSettings<InvalidateCacheUrlMapRequest, Operation> invalidateCacheTransportSettings = 591 HttpJsonCallSettings.<InvalidateCacheUrlMapRequest, Operation>newBuilder() 592 .setMethodDescriptor(invalidateCacheMethodDescriptor) 593 .setTypeRegistry(typeRegistry) 594 .build(); 595 HttpJsonCallSettings<ListUrlMapsRequest, UrlMapList> listTransportSettings = 596 HttpJsonCallSettings.<ListUrlMapsRequest, UrlMapList>newBuilder() 597 .setMethodDescriptor(listMethodDescriptor) 598 .setTypeRegistry(typeRegistry) 599 .build(); 600 HttpJsonCallSettings<PatchUrlMapRequest, Operation> patchTransportSettings = 601 HttpJsonCallSettings.<PatchUrlMapRequest, Operation>newBuilder() 602 .setMethodDescriptor(patchMethodDescriptor) 603 .setTypeRegistry(typeRegistry) 604 .build(); 605 HttpJsonCallSettings<UpdateUrlMapRequest, Operation> updateTransportSettings = 606 HttpJsonCallSettings.<UpdateUrlMapRequest, Operation>newBuilder() 607 .setMethodDescriptor(updateMethodDescriptor) 608 .setTypeRegistry(typeRegistry) 609 .build(); 610 HttpJsonCallSettings<ValidateUrlMapRequest, UrlMapsValidateResponse> validateTransportSettings = 611 HttpJsonCallSettings.<ValidateUrlMapRequest, UrlMapsValidateResponse>newBuilder() 612 .setMethodDescriptor(validateMethodDescriptor) 613 .setTypeRegistry(typeRegistry) 614 .build(); 615 616 this.aggregatedListCallable = 617 callableFactory.createUnaryCallable( 618 aggregatedListTransportSettings, settings.aggregatedListSettings(), clientContext); 619 this.aggregatedListPagedCallable = 620 callableFactory.createPagedCallable( 621 aggregatedListTransportSettings, settings.aggregatedListSettings(), clientContext); 622 this.deleteCallable = 623 callableFactory.createUnaryCallable( 624 deleteTransportSettings, settings.deleteSettings(), clientContext); 625 this.deleteOperationCallable = 626 callableFactory.createOperationCallable( 627 deleteTransportSettings, 628 settings.deleteOperationSettings(), 629 clientContext, 630 httpJsonOperationsStub); 631 this.getCallable = 632 callableFactory.createUnaryCallable( 633 getTransportSettings, settings.getSettings(), clientContext); 634 this.insertCallable = 635 callableFactory.createUnaryCallable( 636 insertTransportSettings, settings.insertSettings(), clientContext); 637 this.insertOperationCallable = 638 callableFactory.createOperationCallable( 639 insertTransportSettings, 640 settings.insertOperationSettings(), 641 clientContext, 642 httpJsonOperationsStub); 643 this.invalidateCacheCallable = 644 callableFactory.createUnaryCallable( 645 invalidateCacheTransportSettings, settings.invalidateCacheSettings(), clientContext); 646 this.invalidateCacheOperationCallable = 647 callableFactory.createOperationCallable( 648 invalidateCacheTransportSettings, 649 settings.invalidateCacheOperationSettings(), 650 clientContext, 651 httpJsonOperationsStub); 652 this.listCallable = 653 callableFactory.createUnaryCallable( 654 listTransportSettings, settings.listSettings(), clientContext); 655 this.listPagedCallable = 656 callableFactory.createPagedCallable( 657 listTransportSettings, settings.listSettings(), clientContext); 658 this.patchCallable = 659 callableFactory.createUnaryCallable( 660 patchTransportSettings, settings.patchSettings(), clientContext); 661 this.patchOperationCallable = 662 callableFactory.createOperationCallable( 663 patchTransportSettings, 664 settings.patchOperationSettings(), 665 clientContext, 666 httpJsonOperationsStub); 667 this.updateCallable = 668 callableFactory.createUnaryCallable( 669 updateTransportSettings, settings.updateSettings(), clientContext); 670 this.updateOperationCallable = 671 callableFactory.createOperationCallable( 672 updateTransportSettings, 673 settings.updateOperationSettings(), 674 clientContext, 675 httpJsonOperationsStub); 676 this.validateCallable = 677 callableFactory.createUnaryCallable( 678 validateTransportSettings, settings.validateSettings(), clientContext); 679 680 this.backgroundResources = 681 new BackgroundResourceAggregation(clientContext.getBackgroundResources()); 682 } 683 684 @InternalApi getMethodDescriptors()685 public static List<ApiMethodDescriptor> getMethodDescriptors() { 686 List<ApiMethodDescriptor> methodDescriptors = new ArrayList<>(); 687 methodDescriptors.add(aggregatedListMethodDescriptor); 688 methodDescriptors.add(deleteMethodDescriptor); 689 methodDescriptors.add(getMethodDescriptor); 690 methodDescriptors.add(insertMethodDescriptor); 691 methodDescriptors.add(invalidateCacheMethodDescriptor); 692 methodDescriptors.add(listMethodDescriptor); 693 methodDescriptors.add(patchMethodDescriptor); 694 methodDescriptors.add(updateMethodDescriptor); 695 methodDescriptors.add(validateMethodDescriptor); 696 return methodDescriptors; 697 } 698 699 @Override 700 public UnaryCallable<AggregatedListUrlMapsRequest, UrlMapsAggregatedList> aggregatedListCallable()701 aggregatedListCallable() { 702 return aggregatedListCallable; 703 } 704 705 @Override 706 public UnaryCallable<AggregatedListUrlMapsRequest, AggregatedListPagedResponse> aggregatedListPagedCallable()707 aggregatedListPagedCallable() { 708 return aggregatedListPagedCallable; 709 } 710 711 @Override deleteCallable()712 public UnaryCallable<DeleteUrlMapRequest, Operation> deleteCallable() { 713 return deleteCallable; 714 } 715 716 @Override deleteOperationCallable()717 public OperationCallable<DeleteUrlMapRequest, Operation, Operation> deleteOperationCallable() { 718 return deleteOperationCallable; 719 } 720 721 @Override getCallable()722 public UnaryCallable<GetUrlMapRequest, UrlMap> getCallable() { 723 return getCallable; 724 } 725 726 @Override insertCallable()727 public UnaryCallable<InsertUrlMapRequest, Operation> insertCallable() { 728 return insertCallable; 729 } 730 731 @Override insertOperationCallable()732 public OperationCallable<InsertUrlMapRequest, Operation, Operation> insertOperationCallable() { 733 return insertOperationCallable; 734 } 735 736 @Override invalidateCacheCallable()737 public UnaryCallable<InvalidateCacheUrlMapRequest, Operation> invalidateCacheCallable() { 738 return invalidateCacheCallable; 739 } 740 741 @Override 742 public OperationCallable<InvalidateCacheUrlMapRequest, Operation, Operation> invalidateCacheOperationCallable()743 invalidateCacheOperationCallable() { 744 return invalidateCacheOperationCallable; 745 } 746 747 @Override listCallable()748 public UnaryCallable<ListUrlMapsRequest, UrlMapList> listCallable() { 749 return listCallable; 750 } 751 752 @Override listPagedCallable()753 public UnaryCallable<ListUrlMapsRequest, ListPagedResponse> listPagedCallable() { 754 return listPagedCallable; 755 } 756 757 @Override patchCallable()758 public UnaryCallable<PatchUrlMapRequest, Operation> patchCallable() { 759 return patchCallable; 760 } 761 762 @Override patchOperationCallable()763 public OperationCallable<PatchUrlMapRequest, Operation, Operation> patchOperationCallable() { 764 return patchOperationCallable; 765 } 766 767 @Override updateCallable()768 public UnaryCallable<UpdateUrlMapRequest, Operation> updateCallable() { 769 return updateCallable; 770 } 771 772 @Override updateOperationCallable()773 public OperationCallable<UpdateUrlMapRequest, Operation, Operation> updateOperationCallable() { 774 return updateOperationCallable; 775 } 776 777 @Override validateCallable()778 public UnaryCallable<ValidateUrlMapRequest, UrlMapsValidateResponse> validateCallable() { 779 return validateCallable; 780 } 781 782 @Override close()783 public final void close() { 784 try { 785 backgroundResources.close(); 786 } catch (RuntimeException e) { 787 throw e; 788 } catch (Exception e) { 789 throw new IllegalStateException("Failed to close resource", e); 790 } 791 } 792 793 @Override shutdown()794 public void shutdown() { 795 backgroundResources.shutdown(); 796 } 797 798 @Override isShutdown()799 public boolean isShutdown() { 800 return backgroundResources.isShutdown(); 801 } 802 803 @Override isTerminated()804 public boolean isTerminated() { 805 return backgroundResources.isTerminated(); 806 } 807 808 @Override shutdownNow()809 public void shutdownNow() { 810 backgroundResources.shutdownNow(); 811 } 812 813 @Override awaitTermination(long duration, TimeUnit unit)814 public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { 815 return backgroundResources.awaitTermination(duration, unit); 816 } 817 } 818