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