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