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