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