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