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