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.talent.v4.stub; 18 19 import com.google.api.core.ApiFunction; 20 import com.google.api.core.BetaApi; 21 import com.google.api.gax.core.GaxProperties; 22 import com.google.api.gax.core.GoogleCredentialsProvider; 23 import com.google.api.gax.core.InstantiatingExecutorProvider; 24 import com.google.api.gax.grpc.GaxGrpcProperties; 25 import com.google.api.gax.grpc.GrpcTransportChannel; 26 import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; 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.retrying.RetrySettings; 31 import com.google.api.gax.rpc.ApiClientHeaderProvider; 32 import com.google.api.gax.rpc.ClientContext; 33 import com.google.api.gax.rpc.StatusCode; 34 import com.google.api.gax.rpc.StubSettings; 35 import com.google.api.gax.rpc.TransportChannelProvider; 36 import com.google.api.gax.rpc.UnaryCallSettings; 37 import com.google.cloud.talent.v4.ClientEvent; 38 import com.google.cloud.talent.v4.CreateClientEventRequest; 39 import com.google.common.collect.ImmutableList; 40 import com.google.common.collect.ImmutableMap; 41 import com.google.common.collect.ImmutableSet; 42 import com.google.common.collect.Lists; 43 import java.io.IOException; 44 import java.util.List; 45 import javax.annotation.Generated; 46 import org.threeten.bp.Duration; 47 48 // AUTO-GENERATED DOCUMENTATION AND CLASS. 49 /** 50 * Settings class to configure an instance of {@link EventServiceStub}. 51 * 52 * <p>The default instance has everything set to sensible defaults: 53 * 54 * <ul> 55 * <li>The default service address (jobs.googleapis.com) and default port (443) are used. 56 * <li>Credentials are acquired automatically through Application Default Credentials. 57 * <li>Retries are configured for idempotent methods but not for non-idempotent methods. 58 * </ul> 59 * 60 * <p>The builder of this class is recursive, so contained classes are themselves builders. When 61 * build() is called, the tree of builders is called to create the complete settings object. 62 * 63 * <p>For example, to set the total timeout of createClientEvent to 30 seconds: 64 * 65 * <pre>{@code 66 * // This snippet has been automatically generated and should be regarded as a code template only. 67 * // It will require modifications to work: 68 * // - It may require correct/in-range values for request initialization. 69 * // - It may require specifying regional endpoints when creating the service client as shown in 70 * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library 71 * EventServiceStubSettings.Builder eventServiceSettingsBuilder = 72 * EventServiceStubSettings.newBuilder(); 73 * eventServiceSettingsBuilder 74 * .createClientEventSettings() 75 * .setRetrySettings( 76 * eventServiceSettingsBuilder 77 * .createClientEventSettings() 78 * .getRetrySettings() 79 * .toBuilder() 80 * .setTotalTimeout(Duration.ofSeconds(30)) 81 * .build()); 82 * EventServiceStubSettings eventServiceSettings = eventServiceSettingsBuilder.build(); 83 * }</pre> 84 */ 85 @Generated("by gapic-generator-java") 86 public class EventServiceStubSettings extends StubSettings<EventServiceStubSettings> { 87 /** The default scopes of the service. */ 88 private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES = 89 ImmutableList.<String>builder() 90 .add("https://www.googleapis.com/auth/cloud-platform") 91 .add("https://www.googleapis.com/auth/jobs") 92 .build(); 93 94 private final UnaryCallSettings<CreateClientEventRequest, ClientEvent> createClientEventSettings; 95 96 /** Returns the object with the settings used for calls to createClientEvent. */ createClientEventSettings()97 public UnaryCallSettings<CreateClientEventRequest, ClientEvent> createClientEventSettings() { 98 return createClientEventSettings; 99 } 100 createStub()101 public EventServiceStub createStub() throws IOException { 102 if (getTransportChannelProvider() 103 .getTransportName() 104 .equals(GrpcTransportChannel.getGrpcTransportName())) { 105 return GrpcEventServiceStub.create(this); 106 } 107 if (getTransportChannelProvider() 108 .getTransportName() 109 .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) { 110 return HttpJsonEventServiceStub.create(this); 111 } 112 throw new UnsupportedOperationException( 113 String.format( 114 "Transport not supported: %s", getTransportChannelProvider().getTransportName())); 115 } 116 117 /** Returns a builder for the default ExecutorProvider for this service. */ defaultExecutorProviderBuilder()118 public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { 119 return InstantiatingExecutorProvider.newBuilder(); 120 } 121 122 /** Returns the default service endpoint. */ getDefaultEndpoint()123 public static String getDefaultEndpoint() { 124 return "jobs.googleapis.com:443"; 125 } 126 127 /** Returns the default mTLS service endpoint. */ getDefaultMtlsEndpoint()128 public static String getDefaultMtlsEndpoint() { 129 return "jobs.mtls.googleapis.com:443"; 130 } 131 132 /** Returns the default service scopes. */ getDefaultServiceScopes()133 public static List<String> getDefaultServiceScopes() { 134 return DEFAULT_SERVICE_SCOPES; 135 } 136 137 /** Returns a builder for the default credentials for this service. */ defaultCredentialsProviderBuilder()138 public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { 139 return GoogleCredentialsProvider.newBuilder() 140 .setScopesToApply(DEFAULT_SERVICE_SCOPES) 141 .setUseJwtAccessWithScope(true); 142 } 143 144 /** Returns a builder for the default gRPC ChannelProvider for this service. */ defaultGrpcTransportProviderBuilder()145 public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { 146 return InstantiatingGrpcChannelProvider.newBuilder() 147 .setMaxInboundMessageSize(Integer.MAX_VALUE); 148 } 149 150 /** Returns a builder for the default REST ChannelProvider for this service. */ 151 @BetaApi 152 public static InstantiatingHttpJsonChannelProvider.Builder defaultHttpJsonTransportProviderBuilder()153 defaultHttpJsonTransportProviderBuilder() { 154 return InstantiatingHttpJsonChannelProvider.newBuilder(); 155 } 156 defaultTransportChannelProvider()157 public static TransportChannelProvider defaultTransportChannelProvider() { 158 return defaultGrpcTransportProviderBuilder().build(); 159 } 160 161 @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") defaultGrpcApiClientHeaderProviderBuilder()162 public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() { 163 return ApiClientHeaderProvider.newBuilder() 164 .setGeneratedLibToken( 165 "gapic", GaxProperties.getLibraryVersion(EventServiceStubSettings.class)) 166 .setTransportToken( 167 GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); 168 } 169 170 @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") defaultHttpJsonApiClientHeaderProviderBuilder()171 public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() { 172 return ApiClientHeaderProvider.newBuilder() 173 .setGeneratedLibToken( 174 "gapic", GaxProperties.getLibraryVersion(EventServiceStubSettings.class)) 175 .setTransportToken( 176 GaxHttpJsonProperties.getHttpJsonTokenName(), 177 GaxHttpJsonProperties.getHttpJsonVersion()); 178 } 179 defaultApiClientHeaderProviderBuilder()180 public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { 181 return EventServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder(); 182 } 183 184 /** Returns a new gRPC builder for this class. */ newBuilder()185 public static Builder newBuilder() { 186 return Builder.createDefault(); 187 } 188 189 /** Returns a new REST builder for this class. */ newHttpJsonBuilder()190 public static Builder newHttpJsonBuilder() { 191 return Builder.createHttpJsonDefault(); 192 } 193 194 /** Returns a new builder for this class. */ newBuilder(ClientContext clientContext)195 public static Builder newBuilder(ClientContext clientContext) { 196 return new Builder(clientContext); 197 } 198 199 /** Returns a builder containing all the values of this settings class. */ toBuilder()200 public Builder toBuilder() { 201 return new Builder(this); 202 } 203 EventServiceStubSettings(Builder settingsBuilder)204 protected EventServiceStubSettings(Builder settingsBuilder) throws IOException { 205 super(settingsBuilder); 206 207 createClientEventSettings = settingsBuilder.createClientEventSettings().build(); 208 } 209 210 /** Builder for EventServiceStubSettings. */ 211 public static class Builder extends StubSettings.Builder<EventServiceStubSettings, Builder> { 212 private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders; 213 private final UnaryCallSettings.Builder<CreateClientEventRequest, ClientEvent> 214 createClientEventSettings; 215 private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>> 216 RETRYABLE_CODE_DEFINITIONS; 217 218 static { 219 ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions = 220 ImmutableMap.builder(); 221 definitions.put( 222 "no_retry_1_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList())); 223 RETRYABLE_CODE_DEFINITIONS = definitions.build(); 224 } 225 226 private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS; 227 228 static { 229 ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder(); 230 RetrySettings settings = null; 231 settings = 232 RetrySettings.newBuilder() 233 .setInitialRpcTimeout(Duration.ofMillis(30000L)) 234 .setRpcTimeoutMultiplier(1.0) 235 .setMaxRpcTimeout(Duration.ofMillis(30000L)) 236 .setTotalTimeout(Duration.ofMillis(30000L)) 237 .build(); 238 definitions.put("no_retry_1_params", settings); 239 RETRY_PARAM_DEFINITIONS = definitions.build(); 240 } 241 Builder()242 protected Builder() { 243 this(((ClientContext) null)); 244 } 245 Builder(ClientContext clientContext)246 protected Builder(ClientContext clientContext) { 247 super(clientContext); 248 249 createClientEventSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); 250 251 unaryMethodSettingsBuilders = 252 ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(createClientEventSettings); 253 initDefaults(this); 254 } 255 Builder(EventServiceStubSettings settings)256 protected Builder(EventServiceStubSettings settings) { 257 super(settings); 258 259 createClientEventSettings = settings.createClientEventSettings.toBuilder(); 260 261 unaryMethodSettingsBuilders = 262 ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(createClientEventSettings); 263 } 264 createDefault()265 private static Builder createDefault() { 266 Builder builder = new Builder(((ClientContext) null)); 267 268 builder.setTransportChannelProvider(defaultTransportChannelProvider()); 269 builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); 270 builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build()); 271 builder.setEndpoint(getDefaultEndpoint()); 272 builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); 273 builder.setSwitchToMtlsEndpointAllowed(true); 274 275 return initDefaults(builder); 276 } 277 createHttpJsonDefault()278 private static Builder createHttpJsonDefault() { 279 Builder builder = new Builder(((ClientContext) null)); 280 281 builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build()); 282 builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); 283 builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build()); 284 builder.setEndpoint(getDefaultEndpoint()); 285 builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); 286 builder.setSwitchToMtlsEndpointAllowed(true); 287 288 return initDefaults(builder); 289 } 290 initDefaults(Builder builder)291 private static Builder initDefaults(Builder builder) { 292 builder 293 .createClientEventSettings() 294 .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes")) 295 .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params")); 296 297 return builder; 298 } 299 300 /** 301 * Applies the given settings updater function to all of the unary API methods in this service. 302 * 303 * <p>Note: This method does not support applying settings to streaming methods. 304 */ applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)305 public Builder applyToAllUnaryMethods( 306 ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) { 307 super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater); 308 return this; 309 } 310 unaryMethodSettingsBuilders()311 public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() { 312 return unaryMethodSettingsBuilders; 313 } 314 315 /** Returns the builder for the settings used for calls to createClientEvent. */ 316 public UnaryCallSettings.Builder<CreateClientEventRequest, ClientEvent> createClientEventSettings()317 createClientEventSettings() { 318 return createClientEventSettings; 319 } 320 321 @Override build()322 public EventServiceStubSettings build() throws IOException { 323 return new EventServiceStubSettings(this); 324 } 325 } 326 } 327