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