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