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.VpnTunnelsClient.AggregatedListPagedResponse; 20 import static com.google.cloud.compute.v1.VpnTunnelsClient.ListPagedResponse; 21 22 import com.google.api.core.ApiFunction; 23 import com.google.api.core.ApiFuture; 24 import com.google.api.core.BetaApi; 25 import com.google.api.gax.core.GaxProperties; 26 import com.google.api.gax.core.GoogleCredentialsProvider; 27 import com.google.api.gax.core.InstantiatingExecutorProvider; 28 import com.google.api.gax.httpjson.GaxHttpJsonProperties; 29 import com.google.api.gax.httpjson.HttpJsonTransportChannel; 30 import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; 31 import com.google.api.gax.httpjson.ProtoOperationTransformers; 32 import com.google.api.gax.longrunning.OperationSnapshot; 33 import com.google.api.gax.longrunning.OperationTimedPollAlgorithm; 34 import com.google.api.gax.retrying.RetrySettings; 35 import com.google.api.gax.rpc.ApiCallContext; 36 import com.google.api.gax.rpc.ApiClientHeaderProvider; 37 import com.google.api.gax.rpc.ClientContext; 38 import com.google.api.gax.rpc.OperationCallSettings; 39 import com.google.api.gax.rpc.PageContext; 40 import com.google.api.gax.rpc.PagedCallSettings; 41 import com.google.api.gax.rpc.PagedListDescriptor; 42 import com.google.api.gax.rpc.PagedListResponseFactory; 43 import com.google.api.gax.rpc.StatusCode; 44 import com.google.api.gax.rpc.StubSettings; 45 import com.google.api.gax.rpc.TransportChannelProvider; 46 import com.google.api.gax.rpc.UnaryCallSettings; 47 import com.google.api.gax.rpc.UnaryCallable; 48 import com.google.cloud.compute.v1.AggregatedListVpnTunnelsRequest; 49 import com.google.cloud.compute.v1.DeleteVpnTunnelRequest; 50 import com.google.cloud.compute.v1.GetVpnTunnelRequest; 51 import com.google.cloud.compute.v1.InsertVpnTunnelRequest; 52 import com.google.cloud.compute.v1.ListVpnTunnelsRequest; 53 import com.google.cloud.compute.v1.Operation; 54 import com.google.cloud.compute.v1.SetLabelsVpnTunnelRequest; 55 import com.google.cloud.compute.v1.VpnTunnel; 56 import com.google.cloud.compute.v1.VpnTunnelAggregatedList; 57 import com.google.cloud.compute.v1.VpnTunnelList; 58 import com.google.cloud.compute.v1.VpnTunnelsScopedList; 59 import com.google.common.collect.ImmutableList; 60 import com.google.common.collect.ImmutableMap; 61 import com.google.common.collect.ImmutableSet; 62 import com.google.common.collect.Lists; 63 import java.io.IOException; 64 import java.util.Collections; 65 import java.util.List; 66 import java.util.Map; 67 import javax.annotation.Generated; 68 import org.threeten.bp.Duration; 69 70 // AUTO-GENERATED DOCUMENTATION AND CLASS. 71 /** 72 * Settings class to configure an instance of {@link VpnTunnelsStub}. 73 * 74 * <p>The default instance has everything set to sensible defaults: 75 * 76 * <ul> 77 * <li>The default service address (compute.googleapis.com) and default port (443) are used. 78 * <li>Credentials are acquired automatically through Application Default Credentials. 79 * <li>Retries are configured for idempotent methods but not for non-idempotent methods. 80 * </ul> 81 * 82 * <p>The builder of this class is recursive, so contained classes are themselves builders. When 83 * build() is called, the tree of builders is called to create the complete settings object. 84 * 85 * <p>For example, to set the total timeout of get to 30 seconds: 86 * 87 * <pre>{@code 88 * // This snippet has been automatically generated and should be regarded as a code template only. 89 * // It will require modifications to work: 90 * // - It may require correct/in-range values for request initialization. 91 * // - It may require specifying regional endpoints when creating the service client as shown in 92 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 93 * VpnTunnelsStubSettings.Builder vpnTunnelsSettingsBuilder = VpnTunnelsStubSettings.newBuilder(); 94 * vpnTunnelsSettingsBuilder 95 * .getSettings() 96 * .setRetrySettings( 97 * vpnTunnelsSettingsBuilder 98 * .getSettings() 99 * .getRetrySettings() 100 * .toBuilder() 101 * .setTotalTimeout(Duration.ofSeconds(30)) 102 * .build()); 103 * VpnTunnelsStubSettings vpnTunnelsSettings = vpnTunnelsSettingsBuilder.build(); 104 * }</pre> 105 */ 106 @Generated("by gapic-generator-java") 107 public class VpnTunnelsStubSettings extends StubSettings<VpnTunnelsStubSettings> { 108 /** The default scopes of the service. */ 109 private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES = 110 ImmutableList.<String>builder() 111 .add("https://www.googleapis.com/auth/compute") 112 .add("https://www.googleapis.com/auth/cloud-platform") 113 .build(); 114 115 private final PagedCallSettings< 116 AggregatedListVpnTunnelsRequest, VpnTunnelAggregatedList, AggregatedListPagedResponse> 117 aggregatedListSettings; 118 private final UnaryCallSettings<DeleteVpnTunnelRequest, Operation> deleteSettings; 119 private final OperationCallSettings<DeleteVpnTunnelRequest, Operation, Operation> 120 deleteOperationSettings; 121 private final UnaryCallSettings<GetVpnTunnelRequest, VpnTunnel> getSettings; 122 private final UnaryCallSettings<InsertVpnTunnelRequest, Operation> insertSettings; 123 private final OperationCallSettings<InsertVpnTunnelRequest, Operation, Operation> 124 insertOperationSettings; 125 private final PagedCallSettings<ListVpnTunnelsRequest, VpnTunnelList, ListPagedResponse> 126 listSettings; 127 private final UnaryCallSettings<SetLabelsVpnTunnelRequest, Operation> setLabelsSettings; 128 private final OperationCallSettings<SetLabelsVpnTunnelRequest, Operation, Operation> 129 setLabelsOperationSettings; 130 131 private static final PagedListDescriptor< 132 AggregatedListVpnTunnelsRequest, 133 VpnTunnelAggregatedList, 134 Map.Entry<String, VpnTunnelsScopedList>> 135 AGGREGATED_LIST_PAGE_STR_DESC = 136 new PagedListDescriptor< 137 AggregatedListVpnTunnelsRequest, 138 VpnTunnelAggregatedList, 139 Map.Entry<String, VpnTunnelsScopedList>>() { 140 @Override 141 public String emptyToken() { 142 return ""; 143 } 144 145 @Override 146 public AggregatedListVpnTunnelsRequest injectToken( 147 AggregatedListVpnTunnelsRequest payload, String token) { 148 return AggregatedListVpnTunnelsRequest.newBuilder(payload) 149 .setPageToken(token) 150 .build(); 151 } 152 153 @Override 154 public AggregatedListVpnTunnelsRequest injectPageSize( 155 AggregatedListVpnTunnelsRequest payload, int pageSize) { 156 return AggregatedListVpnTunnelsRequest.newBuilder(payload) 157 .setMaxResults(pageSize) 158 .build(); 159 } 160 161 @Override 162 public Integer extractPageSize(AggregatedListVpnTunnelsRequest payload) { 163 return payload.getMaxResults(); 164 } 165 166 @Override 167 public String extractNextToken(VpnTunnelAggregatedList payload) { 168 return payload.getNextPageToken(); 169 } 170 171 @Override 172 public Iterable<Map.Entry<String, VpnTunnelsScopedList>> extractResources( 173 VpnTunnelAggregatedList payload) { 174 return payload.getItemsMap() == null 175 ? Collections.<Map.Entry<String, VpnTunnelsScopedList>>emptySet() 176 : payload.getItemsMap().entrySet(); 177 } 178 }; 179 180 private static final PagedListDescriptor<ListVpnTunnelsRequest, VpnTunnelList, VpnTunnel> 181 LIST_PAGE_STR_DESC = 182 new PagedListDescriptor<ListVpnTunnelsRequest, VpnTunnelList, VpnTunnel>() { 183 @Override 184 public String emptyToken() { 185 return ""; 186 } 187 188 @Override 189 public ListVpnTunnelsRequest injectToken(ListVpnTunnelsRequest payload, String token) { 190 return ListVpnTunnelsRequest.newBuilder(payload).setPageToken(token).build(); 191 } 192 193 @Override 194 public ListVpnTunnelsRequest injectPageSize( 195 ListVpnTunnelsRequest payload, int pageSize) { 196 return ListVpnTunnelsRequest.newBuilder(payload).setMaxResults(pageSize).build(); 197 } 198 199 @Override 200 public Integer extractPageSize(ListVpnTunnelsRequest payload) { 201 return payload.getMaxResults(); 202 } 203 204 @Override 205 public String extractNextToken(VpnTunnelList payload) { 206 return payload.getNextPageToken(); 207 } 208 209 @Override 210 public Iterable<VpnTunnel> extractResources(VpnTunnelList payload) { 211 return payload.getItemsList() == null 212 ? ImmutableList.<VpnTunnel>of() 213 : payload.getItemsList(); 214 } 215 }; 216 217 private static final PagedListResponseFactory< 218 AggregatedListVpnTunnelsRequest, VpnTunnelAggregatedList, AggregatedListPagedResponse> 219 AGGREGATED_LIST_PAGE_STR_FACT = 220 new PagedListResponseFactory< 221 AggregatedListVpnTunnelsRequest, 222 VpnTunnelAggregatedList, 223 AggregatedListPagedResponse>() { 224 @Override 225 public ApiFuture<AggregatedListPagedResponse> getFuturePagedResponse( 226 UnaryCallable<AggregatedListVpnTunnelsRequest, VpnTunnelAggregatedList> callable, 227 AggregatedListVpnTunnelsRequest request, 228 ApiCallContext context, 229 ApiFuture<VpnTunnelAggregatedList> futureResponse) { 230 PageContext< 231 AggregatedListVpnTunnelsRequest, 232 VpnTunnelAggregatedList, 233 Map.Entry<String, VpnTunnelsScopedList>> 234 pageContext = 235 PageContext.create(callable, AGGREGATED_LIST_PAGE_STR_DESC, request, context); 236 return AggregatedListPagedResponse.createAsync(pageContext, futureResponse); 237 } 238 }; 239 240 private static final PagedListResponseFactory< 241 ListVpnTunnelsRequest, VpnTunnelList, ListPagedResponse> 242 LIST_PAGE_STR_FACT = 243 new PagedListResponseFactory<ListVpnTunnelsRequest, VpnTunnelList, ListPagedResponse>() { 244 @Override 245 public ApiFuture<ListPagedResponse> getFuturePagedResponse( 246 UnaryCallable<ListVpnTunnelsRequest, VpnTunnelList> callable, 247 ListVpnTunnelsRequest request, 248 ApiCallContext context, 249 ApiFuture<VpnTunnelList> futureResponse) { 250 PageContext<ListVpnTunnelsRequest, VpnTunnelList, VpnTunnel> pageContext = 251 PageContext.create(callable, LIST_PAGE_STR_DESC, request, context); 252 return ListPagedResponse.createAsync(pageContext, futureResponse); 253 } 254 }; 255 256 /** Returns the object with the settings used for calls to aggregatedList. */ 257 public PagedCallSettings< 258 AggregatedListVpnTunnelsRequest, VpnTunnelAggregatedList, AggregatedListPagedResponse> aggregatedListSettings()259 aggregatedListSettings() { 260 return aggregatedListSettings; 261 } 262 263 /** Returns the object with the settings used for calls to delete. */ deleteSettings()264 public UnaryCallSettings<DeleteVpnTunnelRequest, Operation> deleteSettings() { 265 return deleteSettings; 266 } 267 268 /** Returns the object with the settings used for calls to delete. */ 269 public OperationCallSettings<DeleteVpnTunnelRequest, Operation, Operation> deleteOperationSettings()270 deleteOperationSettings() { 271 return deleteOperationSettings; 272 } 273 274 /** Returns the object with the settings used for calls to get. */ getSettings()275 public UnaryCallSettings<GetVpnTunnelRequest, VpnTunnel> getSettings() { 276 return getSettings; 277 } 278 279 /** Returns the object with the settings used for calls to insert. */ insertSettings()280 public UnaryCallSettings<InsertVpnTunnelRequest, Operation> insertSettings() { 281 return insertSettings; 282 } 283 284 /** Returns the object with the settings used for calls to insert. */ 285 public OperationCallSettings<InsertVpnTunnelRequest, Operation, Operation> insertOperationSettings()286 insertOperationSettings() { 287 return insertOperationSettings; 288 } 289 290 /** Returns the object with the settings used for calls to list. */ listSettings()291 public PagedCallSettings<ListVpnTunnelsRequest, VpnTunnelList, ListPagedResponse> listSettings() { 292 return listSettings; 293 } 294 295 /** Returns the object with the settings used for calls to setLabels. */ setLabelsSettings()296 public UnaryCallSettings<SetLabelsVpnTunnelRequest, Operation> setLabelsSettings() { 297 return setLabelsSettings; 298 } 299 300 /** Returns the object with the settings used for calls to setLabels. */ 301 public OperationCallSettings<SetLabelsVpnTunnelRequest, Operation, Operation> setLabelsOperationSettings()302 setLabelsOperationSettings() { 303 return setLabelsOperationSettings; 304 } 305 createStub()306 public VpnTunnelsStub createStub() throws IOException { 307 if (getTransportChannelProvider() 308 .getTransportName() 309 .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) { 310 return HttpJsonVpnTunnelsStub.create(this); 311 } 312 throw new UnsupportedOperationException( 313 String.format( 314 "Transport not supported: %s", getTransportChannelProvider().getTransportName())); 315 } 316 317 /** Returns a builder for the default ExecutorProvider for this service. */ defaultExecutorProviderBuilder()318 public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { 319 return InstantiatingExecutorProvider.newBuilder(); 320 } 321 322 /** Returns the default service endpoint. */ getDefaultEndpoint()323 public static String getDefaultEndpoint() { 324 return "compute.googleapis.com:443"; 325 } 326 327 /** Returns the default mTLS service endpoint. */ getDefaultMtlsEndpoint()328 public static String getDefaultMtlsEndpoint() { 329 return "compute.mtls.googleapis.com:443"; 330 } 331 332 /** Returns the default service scopes. */ getDefaultServiceScopes()333 public static List<String> getDefaultServiceScopes() { 334 return DEFAULT_SERVICE_SCOPES; 335 } 336 337 /** Returns a builder for the default credentials for this service. */ defaultCredentialsProviderBuilder()338 public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { 339 return GoogleCredentialsProvider.newBuilder() 340 .setScopesToApply(DEFAULT_SERVICE_SCOPES) 341 .setUseJwtAccessWithScope(true); 342 } 343 344 /** Returns a builder for the default ChannelProvider for this service. */ 345 public static InstantiatingHttpJsonChannelProvider.Builder defaultHttpJsonTransportProviderBuilder()346 defaultHttpJsonTransportProviderBuilder() { 347 return InstantiatingHttpJsonChannelProvider.newBuilder(); 348 } 349 defaultTransportChannelProvider()350 public static TransportChannelProvider defaultTransportChannelProvider() { 351 return defaultHttpJsonTransportProviderBuilder().build(); 352 } 353 354 @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") defaultApiClientHeaderProviderBuilder()355 public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { 356 return ApiClientHeaderProvider.newBuilder() 357 .setGeneratedLibToken( 358 "gapic", GaxProperties.getLibraryVersion(VpnTunnelsStubSettings.class)) 359 .setTransportToken( 360 GaxHttpJsonProperties.getHttpJsonTokenName(), 361 GaxHttpJsonProperties.getHttpJsonVersion()); 362 } 363 364 /** Returns a new builder for this class. */ newBuilder()365 public static Builder newBuilder() { 366 return Builder.createDefault(); 367 } 368 369 /** Returns a new builder for this class. */ newBuilder(ClientContext clientContext)370 public static Builder newBuilder(ClientContext clientContext) { 371 return new Builder(clientContext); 372 } 373 374 /** Returns a builder containing all the values of this settings class. */ toBuilder()375 public Builder toBuilder() { 376 return new Builder(this); 377 } 378 VpnTunnelsStubSettings(Builder settingsBuilder)379 protected VpnTunnelsStubSettings(Builder settingsBuilder) throws IOException { 380 super(settingsBuilder); 381 382 aggregatedListSettings = settingsBuilder.aggregatedListSettings().build(); 383 deleteSettings = settingsBuilder.deleteSettings().build(); 384 deleteOperationSettings = settingsBuilder.deleteOperationSettings().build(); 385 getSettings = settingsBuilder.getSettings().build(); 386 insertSettings = settingsBuilder.insertSettings().build(); 387 insertOperationSettings = settingsBuilder.insertOperationSettings().build(); 388 listSettings = settingsBuilder.listSettings().build(); 389 setLabelsSettings = settingsBuilder.setLabelsSettings().build(); 390 setLabelsOperationSettings = settingsBuilder.setLabelsOperationSettings().build(); 391 } 392 393 /** Builder for VpnTunnelsStubSettings. */ 394 public static class Builder extends StubSettings.Builder<VpnTunnelsStubSettings, Builder> { 395 private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders; 396 private final PagedCallSettings.Builder< 397 AggregatedListVpnTunnelsRequest, VpnTunnelAggregatedList, AggregatedListPagedResponse> 398 aggregatedListSettings; 399 private final UnaryCallSettings.Builder<DeleteVpnTunnelRequest, Operation> deleteSettings; 400 private final OperationCallSettings.Builder<DeleteVpnTunnelRequest, Operation, Operation> 401 deleteOperationSettings; 402 private final UnaryCallSettings.Builder<GetVpnTunnelRequest, VpnTunnel> getSettings; 403 private final UnaryCallSettings.Builder<InsertVpnTunnelRequest, Operation> insertSettings; 404 private final OperationCallSettings.Builder<InsertVpnTunnelRequest, Operation, Operation> 405 insertOperationSettings; 406 private final PagedCallSettings.Builder<ListVpnTunnelsRequest, VpnTunnelList, ListPagedResponse> 407 listSettings; 408 private final UnaryCallSettings.Builder<SetLabelsVpnTunnelRequest, Operation> setLabelsSettings; 409 private final OperationCallSettings.Builder<SetLabelsVpnTunnelRequest, Operation, Operation> 410 setLabelsOperationSettings; 411 private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>> 412 RETRYABLE_CODE_DEFINITIONS; 413 414 static { 415 ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions = 416 ImmutableMap.builder(); 417 definitions.put( 418 "retry_policy_0_codes", 419 ImmutableSet.copyOf( 420 Lists.<StatusCode.Code>newArrayList( 421 StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE))); 422 definitions.put( 423 "no_retry_1_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList())); 424 RETRYABLE_CODE_DEFINITIONS = definitions.build(); 425 } 426 427 private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS; 428 429 static { 430 ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder(); 431 RetrySettings settings = null; 432 settings = 433 RetrySettings.newBuilder() 434 .setInitialRetryDelay(Duration.ofMillis(100L)) 435 .setRetryDelayMultiplier(1.3) 436 .setMaxRetryDelay(Duration.ofMillis(60000L)) 437 .setInitialRpcTimeout(Duration.ofMillis(600000L)) 438 .setRpcTimeoutMultiplier(1.0) 439 .setMaxRpcTimeout(Duration.ofMillis(600000L)) 440 .setTotalTimeout(Duration.ofMillis(600000L)) 441 .build(); 442 definitions.put("retry_policy_0_params", settings); 443 settings = 444 RetrySettings.newBuilder() 445 .setInitialRpcTimeout(Duration.ofMillis(600000L)) 446 .setRpcTimeoutMultiplier(1.0) 447 .setMaxRpcTimeout(Duration.ofMillis(600000L)) 448 .setTotalTimeout(Duration.ofMillis(600000L)) 449 .build(); 450 definitions.put("no_retry_1_params", settings); 451 RETRY_PARAM_DEFINITIONS = definitions.build(); 452 } 453 Builder()454 protected Builder() { 455 this(((ClientContext) null)); 456 } 457 Builder(ClientContext clientContext)458 protected Builder(ClientContext clientContext) { 459 super(clientContext); 460 461 aggregatedListSettings = PagedCallSettings.newBuilder(AGGREGATED_LIST_PAGE_STR_FACT); 462 deleteSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 463 deleteOperationSettings = OperationCallSettings.newBuilder(); 464 getSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 465 insertSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 466 insertOperationSettings = OperationCallSettings.newBuilder(); 467 listSettings = PagedCallSettings.newBuilder(LIST_PAGE_STR_FACT); 468 setLabelsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 469 setLabelsOperationSettings = OperationCallSettings.newBuilder(); 470 471 unaryMethodSettingsBuilders = 472 ImmutableList.<UnaryCallSettings.Builder<?, ?>>of( 473 aggregatedListSettings, 474 deleteSettings, 475 getSettings, 476 insertSettings, 477 listSettings, 478 setLabelsSettings); 479 initDefaults(this); 480 } 481 Builder(VpnTunnelsStubSettings settings)482 protected Builder(VpnTunnelsStubSettings settings) { 483 super(settings); 484 485 aggregatedListSettings = settings.aggregatedListSettings.toBuilder(); 486 deleteSettings = settings.deleteSettings.toBuilder(); 487 deleteOperationSettings = settings.deleteOperationSettings.toBuilder(); 488 getSettings = settings.getSettings.toBuilder(); 489 insertSettings = settings.insertSettings.toBuilder(); 490 insertOperationSettings = settings.insertOperationSettings.toBuilder(); 491 listSettings = settings.listSettings.toBuilder(); 492 setLabelsSettings = settings.setLabelsSettings.toBuilder(); 493 setLabelsOperationSettings = settings.setLabelsOperationSettings.toBuilder(); 494 495 unaryMethodSettingsBuilders = 496 ImmutableList.<UnaryCallSettings.Builder<?, ?>>of( 497 aggregatedListSettings, 498 deleteSettings, 499 getSettings, 500 insertSettings, 501 listSettings, 502 setLabelsSettings); 503 } 504 createDefault()505 private static Builder createDefault() { 506 Builder builder = new Builder(((ClientContext) null)); 507 508 builder.setTransportChannelProvider(defaultTransportChannelProvider()); 509 builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); 510 builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build()); 511 builder.setEndpoint(getDefaultEndpoint()); 512 builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); 513 builder.setSwitchToMtlsEndpointAllowed(true); 514 515 return initDefaults(builder); 516 } 517 initDefaults(Builder builder)518 private static Builder initDefaults(Builder builder) { 519 builder 520 .aggregatedListSettings() 521 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 522 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 523 524 builder 525 .deleteSettings() 526 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 527 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 528 529 builder 530 .getSettings() 531 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 532 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 533 534 builder 535 .insertSettings() 536 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 537 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 538 539 builder 540 .listSettings() 541 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes")) 542 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params")); 543 544 builder 545 .setLabelsSettings() 546 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 547 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 548 549 builder 550 .deleteOperationSettings() 551 .setInitialCallSettings( 552 UnaryCallSettings 553 .<DeleteVpnTunnelRequest, OperationSnapshot>newUnaryCallSettingsBuilder() 554 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 555 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")) 556 .build()) 557 .setResponseTransformer( 558 ProtoOperationTransformers.ResponseTransformer.create(Operation.class)) 559 .setMetadataTransformer( 560 ProtoOperationTransformers.MetadataTransformer.create(Operation.class)) 561 .setPollingAlgorithm( 562 OperationTimedPollAlgorithm.create( 563 RetrySettings.newBuilder() 564 .setInitialRetryDelay(Duration.ofMillis(500L)) 565 .setRetryDelayMultiplier(1.5) 566 .setMaxRetryDelay(Duration.ofMillis(20000L)) 567 .setInitialRpcTimeout(Duration.ZERO) 568 .setRpcTimeoutMultiplier(1.0) 569 .setMaxRpcTimeout(Duration.ZERO) 570 .setTotalTimeout(Duration.ofMillis(600000L)) 571 .build())); 572 573 builder 574 .insertOperationSettings() 575 .setInitialCallSettings( 576 UnaryCallSettings 577 .<InsertVpnTunnelRequest, OperationSnapshot>newUnaryCallSettingsBuilder() 578 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 579 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")) 580 .build()) 581 .setResponseTransformer( 582 ProtoOperationTransformers.ResponseTransformer.create(Operation.class)) 583 .setMetadataTransformer( 584 ProtoOperationTransformers.MetadataTransformer.create(Operation.class)) 585 .setPollingAlgorithm( 586 OperationTimedPollAlgorithm.create( 587 RetrySettings.newBuilder() 588 .setInitialRetryDelay(Duration.ofMillis(500L)) 589 .setRetryDelayMultiplier(1.5) 590 .setMaxRetryDelay(Duration.ofMillis(20000L)) 591 .setInitialRpcTimeout(Duration.ZERO) 592 .setRpcTimeoutMultiplier(1.0) 593 .setMaxRpcTimeout(Duration.ZERO) 594 .setTotalTimeout(Duration.ofMillis(600000L)) 595 .build())); 596 597 builder 598 .setLabelsOperationSettings() 599 .setInitialCallSettings( 600 UnaryCallSettings 601 .<SetLabelsVpnTunnelRequest, OperationSnapshot>newUnaryCallSettingsBuilder() 602 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 603 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")) 604 .build()) 605 .setResponseTransformer( 606 ProtoOperationTransformers.ResponseTransformer.create(Operation.class)) 607 .setMetadataTransformer( 608 ProtoOperationTransformers.MetadataTransformer.create(Operation.class)) 609 .setPollingAlgorithm( 610 OperationTimedPollAlgorithm.create( 611 RetrySettings.newBuilder() 612 .setInitialRetryDelay(Duration.ofMillis(500L)) 613 .setRetryDelayMultiplier(1.5) 614 .setMaxRetryDelay(Duration.ofMillis(20000L)) 615 .setInitialRpcTimeout(Duration.ZERO) 616 .setRpcTimeoutMultiplier(1.0) 617 .setMaxRpcTimeout(Duration.ZERO) 618 .setTotalTimeout(Duration.ofMillis(600000L)) 619 .build())); 620 621 return builder; 622 } 623 624 /** 625 * Applies the given settings updater function to all of the unary API methods in this service. 626 * 627 * <p>Note: This method does not support applying settings to streaming methods. 628 */ applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)629 public Builder applyToAllUnaryMethods( 630 ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) { 631 super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater); 632 return this; 633 } 634 unaryMethodSettingsBuilders()635 public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() { 636 return unaryMethodSettingsBuilders; 637 } 638 639 /** Returns the builder for the settings used for calls to aggregatedList. */ 640 public PagedCallSettings.Builder< 641 AggregatedListVpnTunnelsRequest, VpnTunnelAggregatedList, AggregatedListPagedResponse> aggregatedListSettings()642 aggregatedListSettings() { 643 return aggregatedListSettings; 644 } 645 646 /** Returns the builder for the settings used for calls to delete. */ deleteSettings()647 public UnaryCallSettings.Builder<DeleteVpnTunnelRequest, Operation> deleteSettings() { 648 return deleteSettings; 649 } 650 651 /** Returns the builder for the settings used for calls to delete. */ 652 @BetaApi( 653 "The surface for use by generated code is not stable yet and may change in the future.") 654 public OperationCallSettings.Builder<DeleteVpnTunnelRequest, Operation, Operation> deleteOperationSettings()655 deleteOperationSettings() { 656 return deleteOperationSettings; 657 } 658 659 /** Returns the builder for the settings used for calls to get. */ getSettings()660 public UnaryCallSettings.Builder<GetVpnTunnelRequest, VpnTunnel> getSettings() { 661 return getSettings; 662 } 663 664 /** Returns the builder for the settings used for calls to insert. */ insertSettings()665 public UnaryCallSettings.Builder<InsertVpnTunnelRequest, Operation> insertSettings() { 666 return insertSettings; 667 } 668 669 /** Returns the builder for the settings used for calls to insert. */ 670 @BetaApi( 671 "The surface for use by generated code is not stable yet and may change in the future.") 672 public OperationCallSettings.Builder<InsertVpnTunnelRequest, Operation, Operation> insertOperationSettings()673 insertOperationSettings() { 674 return insertOperationSettings; 675 } 676 677 /** Returns the builder for the settings used for calls to list. */ 678 public PagedCallSettings.Builder<ListVpnTunnelsRequest, VpnTunnelList, ListPagedResponse> listSettings()679 listSettings() { 680 return listSettings; 681 } 682 683 /** Returns the builder for the settings used for calls to setLabels. */ setLabelsSettings()684 public UnaryCallSettings.Builder<SetLabelsVpnTunnelRequest, Operation> setLabelsSettings() { 685 return setLabelsSettings; 686 } 687 688 /** Returns the builder for the settings used for calls to setLabels. */ 689 @BetaApi( 690 "The surface for use by generated code is not stable yet and may change in the future.") 691 public OperationCallSettings.Builder<SetLabelsVpnTunnelRequest, Operation, Operation> setLabelsOperationSettings()692 setLabelsOperationSettings() { 693 return setLabelsOperationSettings; 694 } 695 696 @Override build()697 public VpnTunnelsStubSettings build() throws IOException { 698 return new VpnTunnelsStubSettings(this); 699 } 700 } 701 } 702