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