• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.webrisk.v1.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.common.collect.ImmutableList;
38 import com.google.common.collect.ImmutableMap;
39 import com.google.common.collect.ImmutableSet;
40 import com.google.common.collect.Lists;
41 import com.google.webrisk.v1.ComputeThreatListDiffRequest;
42 import com.google.webrisk.v1.ComputeThreatListDiffResponse;
43 import com.google.webrisk.v1.CreateSubmissionRequest;
44 import com.google.webrisk.v1.SearchHashesRequest;
45 import com.google.webrisk.v1.SearchHashesResponse;
46 import com.google.webrisk.v1.SearchUrisRequest;
47 import com.google.webrisk.v1.SearchUrisResponse;
48 import com.google.webrisk.v1.Submission;
49 import java.io.IOException;
50 import java.util.List;
51 import javax.annotation.Generated;
52 import org.threeten.bp.Duration;
53 
54 // AUTO-GENERATED DOCUMENTATION AND CLASS.
55 /**
56  * Settings class to configure an instance of {@link WebRiskServiceStub}.
57  *
58  * <p>The default instance has everything set to sensible defaults:
59  *
60  * <ul>
61  *   <li>The default service address (webrisk.googleapis.com) and default port (443) are used.
62  *   <li>Credentials are acquired automatically through Application Default Credentials.
63  *   <li>Retries are configured for idempotent methods but not for non-idempotent methods.
64  * </ul>
65  *
66  * <p>The builder of this class is recursive, so contained classes are themselves builders. When
67  * build() is called, the tree of builders is called to create the complete settings object.
68  *
69  * <p>For example, to set the total timeout of computeThreatListDiff to 30 seconds:
70  *
71  * <pre>{@code
72  * // This snippet has been automatically generated and should be regarded as a code template only.
73  * // It will require modifications to work:
74  * // - It may require correct/in-range values for request initialization.
75  * // - It may require specifying regional endpoints when creating the service client as shown in
76  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
77  * WebRiskServiceStubSettings.Builder webRiskServiceSettingsBuilder =
78  *     WebRiskServiceStubSettings.newBuilder();
79  * webRiskServiceSettingsBuilder
80  *     .computeThreatListDiffSettings()
81  *     .setRetrySettings(
82  *         webRiskServiceSettingsBuilder
83  *             .computeThreatListDiffSettings()
84  *             .getRetrySettings()
85  *             .toBuilder()
86  *             .setTotalTimeout(Duration.ofSeconds(30))
87  *             .build());
88  * WebRiskServiceStubSettings webRiskServiceSettings = webRiskServiceSettingsBuilder.build();
89  * }</pre>
90  */
91 @Generated("by gapic-generator-java")
92 public class WebRiskServiceStubSettings extends StubSettings<WebRiskServiceStubSettings> {
93   /** The default scopes of the service. */
94   private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES =
95       ImmutableList.<String>builder().add("https://www.googleapis.com/auth/cloud-platform").build();
96 
97   private final UnaryCallSettings<ComputeThreatListDiffRequest, ComputeThreatListDiffResponse>
98       computeThreatListDiffSettings;
99   private final UnaryCallSettings<SearchUrisRequest, SearchUrisResponse> searchUrisSettings;
100   private final UnaryCallSettings<SearchHashesRequest, SearchHashesResponse> searchHashesSettings;
101   private final UnaryCallSettings<CreateSubmissionRequest, Submission> createSubmissionSettings;
102 
103   /** Returns the object with the settings used for calls to computeThreatListDiff. */
104   public UnaryCallSettings<ComputeThreatListDiffRequest, ComputeThreatListDiffResponse>
computeThreatListDiffSettings()105       computeThreatListDiffSettings() {
106     return computeThreatListDiffSettings;
107   }
108 
109   /** Returns the object with the settings used for calls to searchUris. */
searchUrisSettings()110   public UnaryCallSettings<SearchUrisRequest, SearchUrisResponse> searchUrisSettings() {
111     return searchUrisSettings;
112   }
113 
114   /** Returns the object with the settings used for calls to searchHashes. */
searchHashesSettings()115   public UnaryCallSettings<SearchHashesRequest, SearchHashesResponse> searchHashesSettings() {
116     return searchHashesSettings;
117   }
118 
119   /** Returns the object with the settings used for calls to createSubmission. */
createSubmissionSettings()120   public UnaryCallSettings<CreateSubmissionRequest, Submission> createSubmissionSettings() {
121     return createSubmissionSettings;
122   }
123 
createStub()124   public WebRiskServiceStub createStub() throws IOException {
125     if (getTransportChannelProvider()
126         .getTransportName()
127         .equals(GrpcTransportChannel.getGrpcTransportName())) {
128       return GrpcWebRiskServiceStub.create(this);
129     }
130     if (getTransportChannelProvider()
131         .getTransportName()
132         .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
133       return HttpJsonWebRiskServiceStub.create(this);
134     }
135     throw new UnsupportedOperationException(
136         String.format(
137             "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
138   }
139 
140   /** Returns a builder for the default ExecutorProvider for this service. */
defaultExecutorProviderBuilder()141   public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
142     return InstantiatingExecutorProvider.newBuilder();
143   }
144 
145   /** Returns the default service endpoint. */
getDefaultEndpoint()146   public static String getDefaultEndpoint() {
147     return "webrisk.googleapis.com:443";
148   }
149 
150   /** Returns the default mTLS service endpoint. */
getDefaultMtlsEndpoint()151   public static String getDefaultMtlsEndpoint() {
152     return "webrisk.mtls.googleapis.com:443";
153   }
154 
155   /** Returns the default service scopes. */
getDefaultServiceScopes()156   public static List<String> getDefaultServiceScopes() {
157     return DEFAULT_SERVICE_SCOPES;
158   }
159 
160   /** Returns a builder for the default credentials for this service. */
defaultCredentialsProviderBuilder()161   public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
162     return GoogleCredentialsProvider.newBuilder()
163         .setScopesToApply(DEFAULT_SERVICE_SCOPES)
164         .setUseJwtAccessWithScope(true);
165   }
166 
167   /** Returns a builder for the default gRPC ChannelProvider for this service. */
defaultGrpcTransportProviderBuilder()168   public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
169     return InstantiatingGrpcChannelProvider.newBuilder()
170         .setMaxInboundMessageSize(Integer.MAX_VALUE);
171   }
172 
173   /** Returns a builder for the default REST ChannelProvider for this service. */
174   @BetaApi
175   public static InstantiatingHttpJsonChannelProvider.Builder
defaultHttpJsonTransportProviderBuilder()176       defaultHttpJsonTransportProviderBuilder() {
177     return InstantiatingHttpJsonChannelProvider.newBuilder();
178   }
179 
defaultTransportChannelProvider()180   public static TransportChannelProvider defaultTransportChannelProvider() {
181     return defaultGrpcTransportProviderBuilder().build();
182   }
183 
184   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultGrpcApiClientHeaderProviderBuilder()185   public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
186     return ApiClientHeaderProvider.newBuilder()
187         .setGeneratedLibToken(
188             "gapic", GaxProperties.getLibraryVersion(WebRiskServiceStubSettings.class))
189         .setTransportToken(
190             GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
191   }
192 
193   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultHttpJsonApiClientHeaderProviderBuilder()194   public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
195     return ApiClientHeaderProvider.newBuilder()
196         .setGeneratedLibToken(
197             "gapic", GaxProperties.getLibraryVersion(WebRiskServiceStubSettings.class))
198         .setTransportToken(
199             GaxHttpJsonProperties.getHttpJsonTokenName(),
200             GaxHttpJsonProperties.getHttpJsonVersion());
201   }
202 
defaultApiClientHeaderProviderBuilder()203   public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
204     return WebRiskServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
205   }
206 
207   /** Returns a new gRPC builder for this class. */
newBuilder()208   public static Builder newBuilder() {
209     return Builder.createDefault();
210   }
211 
212   /** Returns a new REST builder for this class. */
newHttpJsonBuilder()213   public static Builder newHttpJsonBuilder() {
214     return Builder.createHttpJsonDefault();
215   }
216 
217   /** Returns a new builder for this class. */
newBuilder(ClientContext clientContext)218   public static Builder newBuilder(ClientContext clientContext) {
219     return new Builder(clientContext);
220   }
221 
222   /** Returns a builder containing all the values of this settings class. */
toBuilder()223   public Builder toBuilder() {
224     return new Builder(this);
225   }
226 
WebRiskServiceStubSettings(Builder settingsBuilder)227   protected WebRiskServiceStubSettings(Builder settingsBuilder) throws IOException {
228     super(settingsBuilder);
229 
230     computeThreatListDiffSettings = settingsBuilder.computeThreatListDiffSettings().build();
231     searchUrisSettings = settingsBuilder.searchUrisSettings().build();
232     searchHashesSettings = settingsBuilder.searchHashesSettings().build();
233     createSubmissionSettings = settingsBuilder.createSubmissionSettings().build();
234   }
235 
236   /** Builder for WebRiskServiceStubSettings. */
237   public static class Builder extends StubSettings.Builder<WebRiskServiceStubSettings, Builder> {
238     private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;
239     private final UnaryCallSettings.Builder<
240             ComputeThreatListDiffRequest, ComputeThreatListDiffResponse>
241         computeThreatListDiffSettings;
242     private final UnaryCallSettings.Builder<SearchUrisRequest, SearchUrisResponse>
243         searchUrisSettings;
244     private final UnaryCallSettings.Builder<SearchHashesRequest, SearchHashesResponse>
245         searchHashesSettings;
246     private final UnaryCallSettings.Builder<CreateSubmissionRequest, Submission>
247         createSubmissionSettings;
248     private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>>
249         RETRYABLE_CODE_DEFINITIONS;
250 
251     static {
252       ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions =
253           ImmutableMap.builder();
254       definitions.put(
255           "retry_policy_0_codes",
256           ImmutableSet.copyOf(
257               Lists.<StatusCode.Code>newArrayList(
258                   StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE)));
259       definitions.put(
260           "no_retry_1_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList()));
261       RETRYABLE_CODE_DEFINITIONS = definitions.build();
262     }
263 
264     private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS;
265 
266     static {
267       ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder();
268       RetrySettings settings = null;
269       settings =
270           RetrySettings.newBuilder()
271               .setInitialRetryDelay(Duration.ofMillis(100L))
272               .setRetryDelayMultiplier(1.3)
273               .setMaxRetryDelay(Duration.ofMillis(60000L))
274               .setInitialRpcTimeout(Duration.ofMillis(600000L))
275               .setRpcTimeoutMultiplier(1.0)
276               .setMaxRpcTimeout(Duration.ofMillis(600000L))
277               .setTotalTimeout(Duration.ofMillis(600000L))
278               .build();
279       definitions.put("retry_policy_0_params", settings);
280       settings =
281           RetrySettings.newBuilder()
282               .setInitialRpcTimeout(Duration.ofMillis(600000L))
283               .setRpcTimeoutMultiplier(1.0)
284               .setMaxRpcTimeout(Duration.ofMillis(600000L))
285               .setTotalTimeout(Duration.ofMillis(600000L))
286               .build();
287       definitions.put("no_retry_1_params", settings);
288       RETRY_PARAM_DEFINITIONS = definitions.build();
289     }
290 
Builder()291     protected Builder() {
292       this(((ClientContext) null));
293     }
294 
Builder(ClientContext clientContext)295     protected Builder(ClientContext clientContext) {
296       super(clientContext);
297 
298       computeThreatListDiffSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
299       searchUrisSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
300       searchHashesSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
301       createSubmissionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
302 
303       unaryMethodSettingsBuilders =
304           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
305               computeThreatListDiffSettings,
306               searchUrisSettings,
307               searchHashesSettings,
308               createSubmissionSettings);
309       initDefaults(this);
310     }
311 
Builder(WebRiskServiceStubSettings settings)312     protected Builder(WebRiskServiceStubSettings settings) {
313       super(settings);
314 
315       computeThreatListDiffSettings = settings.computeThreatListDiffSettings.toBuilder();
316       searchUrisSettings = settings.searchUrisSettings.toBuilder();
317       searchHashesSettings = settings.searchHashesSettings.toBuilder();
318       createSubmissionSettings = settings.createSubmissionSettings.toBuilder();
319 
320       unaryMethodSettingsBuilders =
321           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
322               computeThreatListDiffSettings,
323               searchUrisSettings,
324               searchHashesSettings,
325               createSubmissionSettings);
326     }
327 
createDefault()328     private static Builder createDefault() {
329       Builder builder = new Builder(((ClientContext) null));
330 
331       builder.setTransportChannelProvider(defaultTransportChannelProvider());
332       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
333       builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
334       builder.setEndpoint(getDefaultEndpoint());
335       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
336       builder.setSwitchToMtlsEndpointAllowed(true);
337 
338       return initDefaults(builder);
339     }
340 
createHttpJsonDefault()341     private static Builder createHttpJsonDefault() {
342       Builder builder = new Builder(((ClientContext) null));
343 
344       builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
345       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
346       builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
347       builder.setEndpoint(getDefaultEndpoint());
348       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
349       builder.setSwitchToMtlsEndpointAllowed(true);
350 
351       return initDefaults(builder);
352     }
353 
initDefaults(Builder builder)354     private static Builder initDefaults(Builder builder) {
355       builder
356           .computeThreatListDiffSettings()
357           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
358           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
359 
360       builder
361           .searchUrisSettings()
362           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
363           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
364 
365       builder
366           .searchHashesSettings()
367           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
368           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
369 
370       builder
371           .createSubmissionSettings()
372           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
373           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
374 
375       return builder;
376     }
377 
378     /**
379      * Applies the given settings updater function to all of the unary API methods in this service.
380      *
381      * <p>Note: This method does not support applying settings to streaming methods.
382      */
applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)383     public Builder applyToAllUnaryMethods(
384         ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) {
385       super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
386       return this;
387     }
388 
unaryMethodSettingsBuilders()389     public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() {
390       return unaryMethodSettingsBuilders;
391     }
392 
393     /** Returns the builder for the settings used for calls to computeThreatListDiff. */
394     public UnaryCallSettings.Builder<ComputeThreatListDiffRequest, ComputeThreatListDiffResponse>
computeThreatListDiffSettings()395         computeThreatListDiffSettings() {
396       return computeThreatListDiffSettings;
397     }
398 
399     /** Returns the builder for the settings used for calls to searchUris. */
searchUrisSettings()400     public UnaryCallSettings.Builder<SearchUrisRequest, SearchUrisResponse> searchUrisSettings() {
401       return searchUrisSettings;
402     }
403 
404     /** Returns the builder for the settings used for calls to searchHashes. */
405     public UnaryCallSettings.Builder<SearchHashesRequest, SearchHashesResponse>
searchHashesSettings()406         searchHashesSettings() {
407       return searchHashesSettings;
408     }
409 
410     /** Returns the builder for the settings used for calls to createSubmission. */
411     public UnaryCallSettings.Builder<CreateSubmissionRequest, Submission>
createSubmissionSettings()412         createSubmissionSettings() {
413       return createSubmissionSettings;
414     }
415 
416     @Override
build()417     public WebRiskServiceStubSettings build() throws IOException {
418       return new WebRiskServiceStubSettings(this);
419     }
420   }
421 }
422