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