• 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.NetworksClient.ListPagedResponse;
20 import static com.google.cloud.compute.v1.NetworksClient.ListPeeringRoutesPagedResponse;
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.AddPeeringNetworkRequest;
49 import com.google.cloud.compute.v1.DeleteNetworkRequest;
50 import com.google.cloud.compute.v1.ExchangedPeeringRoute;
51 import com.google.cloud.compute.v1.ExchangedPeeringRoutesList;
52 import com.google.cloud.compute.v1.GetEffectiveFirewallsNetworkRequest;
53 import com.google.cloud.compute.v1.GetNetworkRequest;
54 import com.google.cloud.compute.v1.InsertNetworkRequest;
55 import com.google.cloud.compute.v1.ListNetworksRequest;
56 import com.google.cloud.compute.v1.ListPeeringRoutesNetworksRequest;
57 import com.google.cloud.compute.v1.Network;
58 import com.google.cloud.compute.v1.NetworkList;
59 import com.google.cloud.compute.v1.NetworksGetEffectiveFirewallsResponse;
60 import com.google.cloud.compute.v1.Operation;
61 import com.google.cloud.compute.v1.PatchNetworkRequest;
62 import com.google.cloud.compute.v1.RemovePeeringNetworkRequest;
63 import com.google.cloud.compute.v1.SwitchToCustomModeNetworkRequest;
64 import com.google.cloud.compute.v1.UpdatePeeringNetworkRequest;
65 import com.google.common.collect.ImmutableList;
66 import com.google.common.collect.ImmutableMap;
67 import com.google.common.collect.ImmutableSet;
68 import com.google.common.collect.Lists;
69 import java.io.IOException;
70 import java.util.List;
71 import javax.annotation.Generated;
72 import org.threeten.bp.Duration;
73 
74 // AUTO-GENERATED DOCUMENTATION AND CLASS.
75 /**
76  * Settings class to configure an instance of {@link NetworksStub}.
77  *
78  * <p>The default instance has everything set to sensible defaults:
79  *
80  * <ul>
81  *   <li>The default service address (compute.googleapis.com) and default port (443) are used.
82  *   <li>Credentials are acquired automatically through Application Default Credentials.
83  *   <li>Retries are configured for idempotent methods but not for non-idempotent methods.
84  * </ul>
85  *
86  * <p>The builder of this class is recursive, so contained classes are themselves builders. When
87  * build() is called, the tree of builders is called to create the complete settings object.
88  *
89  * <p>For example, to set the total timeout of get to 30 seconds:
90  *
91  * <pre>{@code
92  * // This snippet has been automatically generated and should be regarded as a code template only.
93  * // It will require modifications to work:
94  * // - It may require correct/in-range values for request initialization.
95  * // - It may require specifying regional endpoints when creating the service client as shown in
96  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
97  * NetworksStubSettings.Builder networksSettingsBuilder = NetworksStubSettings.newBuilder();
98  * networksSettingsBuilder
99  *     .getSettings()
100  *     .setRetrySettings(
101  *         networksSettingsBuilder
102  *             .getSettings()
103  *             .getRetrySettings()
104  *             .toBuilder()
105  *             .setTotalTimeout(Duration.ofSeconds(30))
106  *             .build());
107  * NetworksStubSettings networksSettings = networksSettingsBuilder.build();
108  * }</pre>
109  */
110 @Generated("by gapic-generator-java")
111 public class NetworksStubSettings extends StubSettings<NetworksStubSettings> {
112   /** The default scopes of the service. */
113   private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES =
114       ImmutableList.<String>builder()
115           .add("https://www.googleapis.com/auth/compute")
116           .add("https://www.googleapis.com/auth/cloud-platform")
117           .build();
118 
119   private final UnaryCallSettings<AddPeeringNetworkRequest, Operation> addPeeringSettings;
120   private final OperationCallSettings<AddPeeringNetworkRequest, Operation, Operation>
121       addPeeringOperationSettings;
122   private final UnaryCallSettings<DeleteNetworkRequest, Operation> deleteSettings;
123   private final OperationCallSettings<DeleteNetworkRequest, Operation, Operation>
124       deleteOperationSettings;
125   private final UnaryCallSettings<GetNetworkRequest, Network> getSettings;
126   private final UnaryCallSettings<
127           GetEffectiveFirewallsNetworkRequest, NetworksGetEffectiveFirewallsResponse>
128       getEffectiveFirewallsSettings;
129   private final UnaryCallSettings<InsertNetworkRequest, Operation> insertSettings;
130   private final OperationCallSettings<InsertNetworkRequest, Operation, Operation>
131       insertOperationSettings;
132   private final PagedCallSettings<ListNetworksRequest, NetworkList, ListPagedResponse> listSettings;
133   private final PagedCallSettings<
134           ListPeeringRoutesNetworksRequest,
135           ExchangedPeeringRoutesList,
136           ListPeeringRoutesPagedResponse>
137       listPeeringRoutesSettings;
138   private final UnaryCallSettings<PatchNetworkRequest, Operation> patchSettings;
139   private final OperationCallSettings<PatchNetworkRequest, Operation, Operation>
140       patchOperationSettings;
141   private final UnaryCallSettings<RemovePeeringNetworkRequest, Operation> removePeeringSettings;
142   private final OperationCallSettings<RemovePeeringNetworkRequest, Operation, Operation>
143       removePeeringOperationSettings;
144   private final UnaryCallSettings<SwitchToCustomModeNetworkRequest, Operation>
145       switchToCustomModeSettings;
146   private final OperationCallSettings<SwitchToCustomModeNetworkRequest, Operation, Operation>
147       switchToCustomModeOperationSettings;
148   private final UnaryCallSettings<UpdatePeeringNetworkRequest, Operation> updatePeeringSettings;
149   private final OperationCallSettings<UpdatePeeringNetworkRequest, Operation, Operation>
150       updatePeeringOperationSettings;
151 
152   private static final PagedListDescriptor<ListNetworksRequest, NetworkList, Network>
153       LIST_PAGE_STR_DESC =
154           new PagedListDescriptor<ListNetworksRequest, NetworkList, Network>() {
155             @Override
156             public String emptyToken() {
157               return "";
158             }
159 
160             @Override
161             public ListNetworksRequest injectToken(ListNetworksRequest payload, String token) {
162               return ListNetworksRequest.newBuilder(payload).setPageToken(token).build();
163             }
164 
165             @Override
166             public ListNetworksRequest injectPageSize(ListNetworksRequest payload, int pageSize) {
167               return ListNetworksRequest.newBuilder(payload).setMaxResults(pageSize).build();
168             }
169 
170             @Override
171             public Integer extractPageSize(ListNetworksRequest payload) {
172               return payload.getMaxResults();
173             }
174 
175             @Override
176             public String extractNextToken(NetworkList payload) {
177               return payload.getNextPageToken();
178             }
179 
180             @Override
181             public Iterable<Network> extractResources(NetworkList payload) {
182               return payload.getItemsList() == null
183                   ? ImmutableList.<Network>of()
184                   : payload.getItemsList();
185             }
186           };
187 
188   private static final PagedListDescriptor<
189           ListPeeringRoutesNetworksRequest, ExchangedPeeringRoutesList, ExchangedPeeringRoute>
190       LIST_PEERING_ROUTES_PAGE_STR_DESC =
191           new PagedListDescriptor<
192               ListPeeringRoutesNetworksRequest,
193               ExchangedPeeringRoutesList,
194               ExchangedPeeringRoute>() {
195             @Override
196             public String emptyToken() {
197               return "";
198             }
199 
200             @Override
201             public ListPeeringRoutesNetworksRequest injectToken(
202                 ListPeeringRoutesNetworksRequest payload, String token) {
203               return ListPeeringRoutesNetworksRequest.newBuilder(payload)
204                   .setPageToken(token)
205                   .build();
206             }
207 
208             @Override
209             public ListPeeringRoutesNetworksRequest injectPageSize(
210                 ListPeeringRoutesNetworksRequest payload, int pageSize) {
211               return ListPeeringRoutesNetworksRequest.newBuilder(payload)
212                   .setMaxResults(pageSize)
213                   .build();
214             }
215 
216             @Override
217             public Integer extractPageSize(ListPeeringRoutesNetworksRequest payload) {
218               return payload.getMaxResults();
219             }
220 
221             @Override
222             public String extractNextToken(ExchangedPeeringRoutesList payload) {
223               return payload.getNextPageToken();
224             }
225 
226             @Override
227             public Iterable<ExchangedPeeringRoute> extractResources(
228                 ExchangedPeeringRoutesList payload) {
229               return payload.getItemsList() == null
230                   ? ImmutableList.<ExchangedPeeringRoute>of()
231                   : payload.getItemsList();
232             }
233           };
234 
235   private static final PagedListResponseFactory<ListNetworksRequest, NetworkList, ListPagedResponse>
236       LIST_PAGE_STR_FACT =
237           new PagedListResponseFactory<ListNetworksRequest, NetworkList, ListPagedResponse>() {
238             @Override
239             public ApiFuture<ListPagedResponse> getFuturePagedResponse(
240                 UnaryCallable<ListNetworksRequest, NetworkList> callable,
241                 ListNetworksRequest request,
242                 ApiCallContext context,
243                 ApiFuture<NetworkList> futureResponse) {
244               PageContext<ListNetworksRequest, NetworkList, Network> pageContext =
245                   PageContext.create(callable, LIST_PAGE_STR_DESC, request, context);
246               return ListPagedResponse.createAsync(pageContext, futureResponse);
247             }
248           };
249 
250   private static final PagedListResponseFactory<
251           ListPeeringRoutesNetworksRequest,
252           ExchangedPeeringRoutesList,
253           ListPeeringRoutesPagedResponse>
254       LIST_PEERING_ROUTES_PAGE_STR_FACT =
255           new PagedListResponseFactory<
256               ListPeeringRoutesNetworksRequest,
257               ExchangedPeeringRoutesList,
258               ListPeeringRoutesPagedResponse>() {
259             @Override
260             public ApiFuture<ListPeeringRoutesPagedResponse> getFuturePagedResponse(
261                 UnaryCallable<ListPeeringRoutesNetworksRequest, ExchangedPeeringRoutesList>
262                     callable,
263                 ListPeeringRoutesNetworksRequest request,
264                 ApiCallContext context,
265                 ApiFuture<ExchangedPeeringRoutesList> futureResponse) {
266               PageContext<
267                       ListPeeringRoutesNetworksRequest,
268                       ExchangedPeeringRoutesList,
269                       ExchangedPeeringRoute>
270                   pageContext =
271                       PageContext.create(
272                           callable, LIST_PEERING_ROUTES_PAGE_STR_DESC, request, context);
273               return ListPeeringRoutesPagedResponse.createAsync(pageContext, futureResponse);
274             }
275           };
276 
277   /** Returns the object with the settings used for calls to addPeering. */
addPeeringSettings()278   public UnaryCallSettings<AddPeeringNetworkRequest, Operation> addPeeringSettings() {
279     return addPeeringSettings;
280   }
281 
282   /** Returns the object with the settings used for calls to addPeering. */
283   public OperationCallSettings<AddPeeringNetworkRequest, Operation, Operation>
addPeeringOperationSettings()284       addPeeringOperationSettings() {
285     return addPeeringOperationSettings;
286   }
287 
288   /** Returns the object with the settings used for calls to delete. */
deleteSettings()289   public UnaryCallSettings<DeleteNetworkRequest, Operation> deleteSettings() {
290     return deleteSettings;
291   }
292 
293   /** Returns the object with the settings used for calls to delete. */
294   public OperationCallSettings<DeleteNetworkRequest, Operation, Operation>
deleteOperationSettings()295       deleteOperationSettings() {
296     return deleteOperationSettings;
297   }
298 
299   /** Returns the object with the settings used for calls to get. */
getSettings()300   public UnaryCallSettings<GetNetworkRequest, Network> getSettings() {
301     return getSettings;
302   }
303 
304   /** Returns the object with the settings used for calls to getEffectiveFirewalls. */
305   public UnaryCallSettings<
306           GetEffectiveFirewallsNetworkRequest, NetworksGetEffectiveFirewallsResponse>
getEffectiveFirewallsSettings()307       getEffectiveFirewallsSettings() {
308     return getEffectiveFirewallsSettings;
309   }
310 
311   /** Returns the object with the settings used for calls to insert. */
insertSettings()312   public UnaryCallSettings<InsertNetworkRequest, Operation> insertSettings() {
313     return insertSettings;
314   }
315 
316   /** Returns the object with the settings used for calls to insert. */
317   public OperationCallSettings<InsertNetworkRequest, Operation, Operation>
insertOperationSettings()318       insertOperationSettings() {
319     return insertOperationSettings;
320   }
321 
322   /** Returns the object with the settings used for calls to list. */
listSettings()323   public PagedCallSettings<ListNetworksRequest, NetworkList, ListPagedResponse> listSettings() {
324     return listSettings;
325   }
326 
327   /** Returns the object with the settings used for calls to listPeeringRoutes. */
328   public PagedCallSettings<
329           ListPeeringRoutesNetworksRequest,
330           ExchangedPeeringRoutesList,
331           ListPeeringRoutesPagedResponse>
listPeeringRoutesSettings()332       listPeeringRoutesSettings() {
333     return listPeeringRoutesSettings;
334   }
335 
336   /** Returns the object with the settings used for calls to patch. */
patchSettings()337   public UnaryCallSettings<PatchNetworkRequest, Operation> patchSettings() {
338     return patchSettings;
339   }
340 
341   /** Returns the object with the settings used for calls to patch. */
patchOperationSettings()342   public OperationCallSettings<PatchNetworkRequest, Operation, Operation> patchOperationSettings() {
343     return patchOperationSettings;
344   }
345 
346   /** Returns the object with the settings used for calls to removePeering. */
removePeeringSettings()347   public UnaryCallSettings<RemovePeeringNetworkRequest, Operation> removePeeringSettings() {
348     return removePeeringSettings;
349   }
350 
351   /** Returns the object with the settings used for calls to removePeering. */
352   public OperationCallSettings<RemovePeeringNetworkRequest, Operation, Operation>
removePeeringOperationSettings()353       removePeeringOperationSettings() {
354     return removePeeringOperationSettings;
355   }
356 
357   /** Returns the object with the settings used for calls to switchToCustomMode. */
358   public UnaryCallSettings<SwitchToCustomModeNetworkRequest, Operation>
switchToCustomModeSettings()359       switchToCustomModeSettings() {
360     return switchToCustomModeSettings;
361   }
362 
363   /** Returns the object with the settings used for calls to switchToCustomMode. */
364   public OperationCallSettings<SwitchToCustomModeNetworkRequest, Operation, Operation>
switchToCustomModeOperationSettings()365       switchToCustomModeOperationSettings() {
366     return switchToCustomModeOperationSettings;
367   }
368 
369   /** Returns the object with the settings used for calls to updatePeering. */
updatePeeringSettings()370   public UnaryCallSettings<UpdatePeeringNetworkRequest, Operation> updatePeeringSettings() {
371     return updatePeeringSettings;
372   }
373 
374   /** Returns the object with the settings used for calls to updatePeering. */
375   public OperationCallSettings<UpdatePeeringNetworkRequest, Operation, Operation>
updatePeeringOperationSettings()376       updatePeeringOperationSettings() {
377     return updatePeeringOperationSettings;
378   }
379 
createStub()380   public NetworksStub createStub() throws IOException {
381     if (getTransportChannelProvider()
382         .getTransportName()
383         .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
384       return HttpJsonNetworksStub.create(this);
385     }
386     throw new UnsupportedOperationException(
387         String.format(
388             "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
389   }
390 
391   /** Returns a builder for the default ExecutorProvider for this service. */
defaultExecutorProviderBuilder()392   public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
393     return InstantiatingExecutorProvider.newBuilder();
394   }
395 
396   /** Returns the default service endpoint. */
getDefaultEndpoint()397   public static String getDefaultEndpoint() {
398     return "compute.googleapis.com:443";
399   }
400 
401   /** Returns the default mTLS service endpoint. */
getDefaultMtlsEndpoint()402   public static String getDefaultMtlsEndpoint() {
403     return "compute.mtls.googleapis.com:443";
404   }
405 
406   /** Returns the default service scopes. */
getDefaultServiceScopes()407   public static List<String> getDefaultServiceScopes() {
408     return DEFAULT_SERVICE_SCOPES;
409   }
410 
411   /** Returns a builder for the default credentials for this service. */
defaultCredentialsProviderBuilder()412   public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
413     return GoogleCredentialsProvider.newBuilder()
414         .setScopesToApply(DEFAULT_SERVICE_SCOPES)
415         .setUseJwtAccessWithScope(true);
416   }
417 
418   /** Returns a builder for the default ChannelProvider for this service. */
419   public static InstantiatingHttpJsonChannelProvider.Builder
defaultHttpJsonTransportProviderBuilder()420       defaultHttpJsonTransportProviderBuilder() {
421     return InstantiatingHttpJsonChannelProvider.newBuilder();
422   }
423 
defaultTransportChannelProvider()424   public static TransportChannelProvider defaultTransportChannelProvider() {
425     return defaultHttpJsonTransportProviderBuilder().build();
426   }
427 
428   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultApiClientHeaderProviderBuilder()429   public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
430     return ApiClientHeaderProvider.newBuilder()
431         .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(NetworksStubSettings.class))
432         .setTransportToken(
433             GaxHttpJsonProperties.getHttpJsonTokenName(),
434             GaxHttpJsonProperties.getHttpJsonVersion());
435   }
436 
437   /** Returns a new builder for this class. */
newBuilder()438   public static Builder newBuilder() {
439     return Builder.createDefault();
440   }
441 
442   /** Returns a new builder for this class. */
newBuilder(ClientContext clientContext)443   public static Builder newBuilder(ClientContext clientContext) {
444     return new Builder(clientContext);
445   }
446 
447   /** Returns a builder containing all the values of this settings class. */
toBuilder()448   public Builder toBuilder() {
449     return new Builder(this);
450   }
451 
NetworksStubSettings(Builder settingsBuilder)452   protected NetworksStubSettings(Builder settingsBuilder) throws IOException {
453     super(settingsBuilder);
454 
455     addPeeringSettings = settingsBuilder.addPeeringSettings().build();
456     addPeeringOperationSettings = settingsBuilder.addPeeringOperationSettings().build();
457     deleteSettings = settingsBuilder.deleteSettings().build();
458     deleteOperationSettings = settingsBuilder.deleteOperationSettings().build();
459     getSettings = settingsBuilder.getSettings().build();
460     getEffectiveFirewallsSettings = settingsBuilder.getEffectiveFirewallsSettings().build();
461     insertSettings = settingsBuilder.insertSettings().build();
462     insertOperationSettings = settingsBuilder.insertOperationSettings().build();
463     listSettings = settingsBuilder.listSettings().build();
464     listPeeringRoutesSettings = settingsBuilder.listPeeringRoutesSettings().build();
465     patchSettings = settingsBuilder.patchSettings().build();
466     patchOperationSettings = settingsBuilder.patchOperationSettings().build();
467     removePeeringSettings = settingsBuilder.removePeeringSettings().build();
468     removePeeringOperationSettings = settingsBuilder.removePeeringOperationSettings().build();
469     switchToCustomModeSettings = settingsBuilder.switchToCustomModeSettings().build();
470     switchToCustomModeOperationSettings =
471         settingsBuilder.switchToCustomModeOperationSettings().build();
472     updatePeeringSettings = settingsBuilder.updatePeeringSettings().build();
473     updatePeeringOperationSettings = settingsBuilder.updatePeeringOperationSettings().build();
474   }
475 
476   /** Builder for NetworksStubSettings. */
477   public static class Builder extends StubSettings.Builder<NetworksStubSettings, Builder> {
478     private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;
479     private final UnaryCallSettings.Builder<AddPeeringNetworkRequest, Operation> addPeeringSettings;
480     private final OperationCallSettings.Builder<AddPeeringNetworkRequest, Operation, Operation>
481         addPeeringOperationSettings;
482     private final UnaryCallSettings.Builder<DeleteNetworkRequest, Operation> deleteSettings;
483     private final OperationCallSettings.Builder<DeleteNetworkRequest, Operation, Operation>
484         deleteOperationSettings;
485     private final UnaryCallSettings.Builder<GetNetworkRequest, Network> getSettings;
486     private final UnaryCallSettings.Builder<
487             GetEffectiveFirewallsNetworkRequest, NetworksGetEffectiveFirewallsResponse>
488         getEffectiveFirewallsSettings;
489     private final UnaryCallSettings.Builder<InsertNetworkRequest, Operation> insertSettings;
490     private final OperationCallSettings.Builder<InsertNetworkRequest, Operation, Operation>
491         insertOperationSettings;
492     private final PagedCallSettings.Builder<ListNetworksRequest, NetworkList, ListPagedResponse>
493         listSettings;
494     private final PagedCallSettings.Builder<
495             ListPeeringRoutesNetworksRequest,
496             ExchangedPeeringRoutesList,
497             ListPeeringRoutesPagedResponse>
498         listPeeringRoutesSettings;
499     private final UnaryCallSettings.Builder<PatchNetworkRequest, Operation> patchSettings;
500     private final OperationCallSettings.Builder<PatchNetworkRequest, Operation, Operation>
501         patchOperationSettings;
502     private final UnaryCallSettings.Builder<RemovePeeringNetworkRequest, Operation>
503         removePeeringSettings;
504     private final OperationCallSettings.Builder<RemovePeeringNetworkRequest, Operation, Operation>
505         removePeeringOperationSettings;
506     private final UnaryCallSettings.Builder<SwitchToCustomModeNetworkRequest, Operation>
507         switchToCustomModeSettings;
508     private final OperationCallSettings.Builder<
509             SwitchToCustomModeNetworkRequest, Operation, Operation>
510         switchToCustomModeOperationSettings;
511     private final UnaryCallSettings.Builder<UpdatePeeringNetworkRequest, Operation>
512         updatePeeringSettings;
513     private final OperationCallSettings.Builder<UpdatePeeringNetworkRequest, Operation, Operation>
514         updatePeeringOperationSettings;
515     private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>>
516         RETRYABLE_CODE_DEFINITIONS;
517 
518     static {
519       ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions =
520           ImmutableMap.builder();
521       definitions.put(
522           "no_retry_1_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList()));
523       definitions.put(
524           "retry_policy_0_codes",
525           ImmutableSet.copyOf(
526               Lists.<StatusCode.Code>newArrayList(
527                   StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE)));
528       RETRYABLE_CODE_DEFINITIONS = definitions.build();
529     }
530 
531     private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS;
532 
533     static {
534       ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder();
535       RetrySettings settings = null;
536       settings =
537           RetrySettings.newBuilder()
538               .setInitialRpcTimeout(Duration.ofMillis(600000L))
539               .setRpcTimeoutMultiplier(1.0)
540               .setMaxRpcTimeout(Duration.ofMillis(600000L))
541               .setTotalTimeout(Duration.ofMillis(600000L))
542               .build();
543       definitions.put("no_retry_1_params", settings);
544       settings =
545           RetrySettings.newBuilder()
546               .setInitialRetryDelay(Duration.ofMillis(100L))
547               .setRetryDelayMultiplier(1.3)
548               .setMaxRetryDelay(Duration.ofMillis(60000L))
549               .setInitialRpcTimeout(Duration.ofMillis(600000L))
550               .setRpcTimeoutMultiplier(1.0)
551               .setMaxRpcTimeout(Duration.ofMillis(600000L))
552               .setTotalTimeout(Duration.ofMillis(600000L))
553               .build();
554       definitions.put("retry_policy_0_params", settings);
555       RETRY_PARAM_DEFINITIONS = definitions.build();
556     }
557 
Builder()558     protected Builder() {
559       this(((ClientContext) null));
560     }
561 
Builder(ClientContext clientContext)562     protected Builder(ClientContext clientContext) {
563       super(clientContext);
564 
565       addPeeringSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
566       addPeeringOperationSettings = OperationCallSettings.newBuilder();
567       deleteSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
568       deleteOperationSettings = OperationCallSettings.newBuilder();
569       getSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
570       getEffectiveFirewallsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
571       insertSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
572       insertOperationSettings = OperationCallSettings.newBuilder();
573       listSettings = PagedCallSettings.newBuilder(LIST_PAGE_STR_FACT);
574       listPeeringRoutesSettings = PagedCallSettings.newBuilder(LIST_PEERING_ROUTES_PAGE_STR_FACT);
575       patchSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
576       patchOperationSettings = OperationCallSettings.newBuilder();
577       removePeeringSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
578       removePeeringOperationSettings = OperationCallSettings.newBuilder();
579       switchToCustomModeSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
580       switchToCustomModeOperationSettings = OperationCallSettings.newBuilder();
581       updatePeeringSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
582       updatePeeringOperationSettings = OperationCallSettings.newBuilder();
583 
584       unaryMethodSettingsBuilders =
585           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
586               addPeeringSettings,
587               deleteSettings,
588               getSettings,
589               getEffectiveFirewallsSettings,
590               insertSettings,
591               listSettings,
592               listPeeringRoutesSettings,
593               patchSettings,
594               removePeeringSettings,
595               switchToCustomModeSettings,
596               updatePeeringSettings);
597       initDefaults(this);
598     }
599 
Builder(NetworksStubSettings settings)600     protected Builder(NetworksStubSettings settings) {
601       super(settings);
602 
603       addPeeringSettings = settings.addPeeringSettings.toBuilder();
604       addPeeringOperationSettings = settings.addPeeringOperationSettings.toBuilder();
605       deleteSettings = settings.deleteSettings.toBuilder();
606       deleteOperationSettings = settings.deleteOperationSettings.toBuilder();
607       getSettings = settings.getSettings.toBuilder();
608       getEffectiveFirewallsSettings = settings.getEffectiveFirewallsSettings.toBuilder();
609       insertSettings = settings.insertSettings.toBuilder();
610       insertOperationSettings = settings.insertOperationSettings.toBuilder();
611       listSettings = settings.listSettings.toBuilder();
612       listPeeringRoutesSettings = settings.listPeeringRoutesSettings.toBuilder();
613       patchSettings = settings.patchSettings.toBuilder();
614       patchOperationSettings = settings.patchOperationSettings.toBuilder();
615       removePeeringSettings = settings.removePeeringSettings.toBuilder();
616       removePeeringOperationSettings = settings.removePeeringOperationSettings.toBuilder();
617       switchToCustomModeSettings = settings.switchToCustomModeSettings.toBuilder();
618       switchToCustomModeOperationSettings =
619           settings.switchToCustomModeOperationSettings.toBuilder();
620       updatePeeringSettings = settings.updatePeeringSettings.toBuilder();
621       updatePeeringOperationSettings = settings.updatePeeringOperationSettings.toBuilder();
622 
623       unaryMethodSettingsBuilders =
624           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
625               addPeeringSettings,
626               deleteSettings,
627               getSettings,
628               getEffectiveFirewallsSettings,
629               insertSettings,
630               listSettings,
631               listPeeringRoutesSettings,
632               patchSettings,
633               removePeeringSettings,
634               switchToCustomModeSettings,
635               updatePeeringSettings);
636     }
637 
createDefault()638     private static Builder createDefault() {
639       Builder builder = new Builder(((ClientContext) null));
640 
641       builder.setTransportChannelProvider(defaultTransportChannelProvider());
642       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
643       builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
644       builder.setEndpoint(getDefaultEndpoint());
645       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
646       builder.setSwitchToMtlsEndpointAllowed(true);
647 
648       return initDefaults(builder);
649     }
650 
initDefaults(Builder builder)651     private static Builder initDefaults(Builder builder) {
652       builder
653           .addPeeringSettings()
654           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
655           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
656 
657       builder
658           .deleteSettings()
659           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
660           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
661 
662       builder
663           .getSettings()
664           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
665           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
666 
667       builder
668           .getEffectiveFirewallsSettings()
669           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
670           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
671 
672       builder
673           .insertSettings()
674           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
675           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
676 
677       builder
678           .listSettings()
679           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
680           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
681 
682       builder
683           .listPeeringRoutesSettings()
684           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
685           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
686 
687       builder
688           .patchSettings()
689           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
690           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
691 
692       builder
693           .removePeeringSettings()
694           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
695           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
696 
697       builder
698           .switchToCustomModeSettings()
699           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
700           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
701 
702       builder
703           .updatePeeringSettings()
704           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
705           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
706 
707       builder
708           .addPeeringOperationSettings()
709           .setInitialCallSettings(
710               UnaryCallSettings
711                   .<AddPeeringNetworkRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
712                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
713                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
714                   .build())
715           .setResponseTransformer(
716               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
717           .setMetadataTransformer(
718               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
719           .setPollingAlgorithm(
720               OperationTimedPollAlgorithm.create(
721                   RetrySettings.newBuilder()
722                       .setInitialRetryDelay(Duration.ofMillis(500L))
723                       .setRetryDelayMultiplier(1.5)
724                       .setMaxRetryDelay(Duration.ofMillis(20000L))
725                       .setInitialRpcTimeout(Duration.ZERO)
726                       .setRpcTimeoutMultiplier(1.0)
727                       .setMaxRpcTimeout(Duration.ZERO)
728                       .setTotalTimeout(Duration.ofMillis(600000L))
729                       .build()));
730 
731       builder
732           .deleteOperationSettings()
733           .setInitialCallSettings(
734               UnaryCallSettings
735                   .<DeleteNetworkRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
736                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
737                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
738                   .build())
739           .setResponseTransformer(
740               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
741           .setMetadataTransformer(
742               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
743           .setPollingAlgorithm(
744               OperationTimedPollAlgorithm.create(
745                   RetrySettings.newBuilder()
746                       .setInitialRetryDelay(Duration.ofMillis(500L))
747                       .setRetryDelayMultiplier(1.5)
748                       .setMaxRetryDelay(Duration.ofMillis(20000L))
749                       .setInitialRpcTimeout(Duration.ZERO)
750                       .setRpcTimeoutMultiplier(1.0)
751                       .setMaxRpcTimeout(Duration.ZERO)
752                       .setTotalTimeout(Duration.ofMillis(600000L))
753                       .build()));
754 
755       builder
756           .insertOperationSettings()
757           .setInitialCallSettings(
758               UnaryCallSettings
759                   .<InsertNetworkRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
760                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
761                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
762                   .build())
763           .setResponseTransformer(
764               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
765           .setMetadataTransformer(
766               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
767           .setPollingAlgorithm(
768               OperationTimedPollAlgorithm.create(
769                   RetrySettings.newBuilder()
770                       .setInitialRetryDelay(Duration.ofMillis(500L))
771                       .setRetryDelayMultiplier(1.5)
772                       .setMaxRetryDelay(Duration.ofMillis(20000L))
773                       .setInitialRpcTimeout(Duration.ZERO)
774                       .setRpcTimeoutMultiplier(1.0)
775                       .setMaxRpcTimeout(Duration.ZERO)
776                       .setTotalTimeout(Duration.ofMillis(600000L))
777                       .build()));
778 
779       builder
780           .patchOperationSettings()
781           .setInitialCallSettings(
782               UnaryCallSettings
783                   .<PatchNetworkRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
784                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
785                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
786                   .build())
787           .setResponseTransformer(
788               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
789           .setMetadataTransformer(
790               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
791           .setPollingAlgorithm(
792               OperationTimedPollAlgorithm.create(
793                   RetrySettings.newBuilder()
794                       .setInitialRetryDelay(Duration.ofMillis(500L))
795                       .setRetryDelayMultiplier(1.5)
796                       .setMaxRetryDelay(Duration.ofMillis(20000L))
797                       .setInitialRpcTimeout(Duration.ZERO)
798                       .setRpcTimeoutMultiplier(1.0)
799                       .setMaxRpcTimeout(Duration.ZERO)
800                       .setTotalTimeout(Duration.ofMillis(600000L))
801                       .build()));
802 
803       builder
804           .removePeeringOperationSettings()
805           .setInitialCallSettings(
806               UnaryCallSettings
807                   .<RemovePeeringNetworkRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
808                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
809                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
810                   .build())
811           .setResponseTransformer(
812               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
813           .setMetadataTransformer(
814               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
815           .setPollingAlgorithm(
816               OperationTimedPollAlgorithm.create(
817                   RetrySettings.newBuilder()
818                       .setInitialRetryDelay(Duration.ofMillis(500L))
819                       .setRetryDelayMultiplier(1.5)
820                       .setMaxRetryDelay(Duration.ofMillis(20000L))
821                       .setInitialRpcTimeout(Duration.ZERO)
822                       .setRpcTimeoutMultiplier(1.0)
823                       .setMaxRpcTimeout(Duration.ZERO)
824                       .setTotalTimeout(Duration.ofMillis(600000L))
825                       .build()));
826 
827       builder
828           .switchToCustomModeOperationSettings()
829           .setInitialCallSettings(
830               UnaryCallSettings
831                   .<SwitchToCustomModeNetworkRequest, OperationSnapshot>
832                       newUnaryCallSettingsBuilder()
833                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
834                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
835                   .build())
836           .setResponseTransformer(
837               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
838           .setMetadataTransformer(
839               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
840           .setPollingAlgorithm(
841               OperationTimedPollAlgorithm.create(
842                   RetrySettings.newBuilder()
843                       .setInitialRetryDelay(Duration.ofMillis(500L))
844                       .setRetryDelayMultiplier(1.5)
845                       .setMaxRetryDelay(Duration.ofMillis(20000L))
846                       .setInitialRpcTimeout(Duration.ZERO)
847                       .setRpcTimeoutMultiplier(1.0)
848                       .setMaxRpcTimeout(Duration.ZERO)
849                       .setTotalTimeout(Duration.ofMillis(600000L))
850                       .build()));
851 
852       builder
853           .updatePeeringOperationSettings()
854           .setInitialCallSettings(
855               UnaryCallSettings
856                   .<UpdatePeeringNetworkRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
857                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
858                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
859                   .build())
860           .setResponseTransformer(
861               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
862           .setMetadataTransformer(
863               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
864           .setPollingAlgorithm(
865               OperationTimedPollAlgorithm.create(
866                   RetrySettings.newBuilder()
867                       .setInitialRetryDelay(Duration.ofMillis(500L))
868                       .setRetryDelayMultiplier(1.5)
869                       .setMaxRetryDelay(Duration.ofMillis(20000L))
870                       .setInitialRpcTimeout(Duration.ZERO)
871                       .setRpcTimeoutMultiplier(1.0)
872                       .setMaxRpcTimeout(Duration.ZERO)
873                       .setTotalTimeout(Duration.ofMillis(600000L))
874                       .build()));
875 
876       return builder;
877     }
878 
879     /**
880      * Applies the given settings updater function to all of the unary API methods in this service.
881      *
882      * <p>Note: This method does not support applying settings to streaming methods.
883      */
applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)884     public Builder applyToAllUnaryMethods(
885         ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) {
886       super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
887       return this;
888     }
889 
unaryMethodSettingsBuilders()890     public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() {
891       return unaryMethodSettingsBuilders;
892     }
893 
894     /** Returns the builder for the settings used for calls to addPeering. */
addPeeringSettings()895     public UnaryCallSettings.Builder<AddPeeringNetworkRequest, Operation> addPeeringSettings() {
896       return addPeeringSettings;
897     }
898 
899     /** Returns the builder for the settings used for calls to addPeering. */
900     @BetaApi(
901         "The surface for use by generated code is not stable yet and may change in the future.")
902     public OperationCallSettings.Builder<AddPeeringNetworkRequest, Operation, Operation>
addPeeringOperationSettings()903         addPeeringOperationSettings() {
904       return addPeeringOperationSettings;
905     }
906 
907     /** Returns the builder for the settings used for calls to delete. */
deleteSettings()908     public UnaryCallSettings.Builder<DeleteNetworkRequest, Operation> deleteSettings() {
909       return deleteSettings;
910     }
911 
912     /** Returns the builder for the settings used for calls to delete. */
913     @BetaApi(
914         "The surface for use by generated code is not stable yet and may change in the future.")
915     public OperationCallSettings.Builder<DeleteNetworkRequest, Operation, Operation>
deleteOperationSettings()916         deleteOperationSettings() {
917       return deleteOperationSettings;
918     }
919 
920     /** Returns the builder for the settings used for calls to get. */
getSettings()921     public UnaryCallSettings.Builder<GetNetworkRequest, Network> getSettings() {
922       return getSettings;
923     }
924 
925     /** Returns the builder for the settings used for calls to getEffectiveFirewalls. */
926     public UnaryCallSettings.Builder<
927             GetEffectiveFirewallsNetworkRequest, NetworksGetEffectiveFirewallsResponse>
getEffectiveFirewallsSettings()928         getEffectiveFirewallsSettings() {
929       return getEffectiveFirewallsSettings;
930     }
931 
932     /** Returns the builder for the settings used for calls to insert. */
insertSettings()933     public UnaryCallSettings.Builder<InsertNetworkRequest, Operation> insertSettings() {
934       return insertSettings;
935     }
936 
937     /** Returns the builder for the settings used for calls to insert. */
938     @BetaApi(
939         "The surface for use by generated code is not stable yet and may change in the future.")
940     public OperationCallSettings.Builder<InsertNetworkRequest, Operation, Operation>
insertOperationSettings()941         insertOperationSettings() {
942       return insertOperationSettings;
943     }
944 
945     /** Returns the builder for the settings used for calls to list. */
946     public PagedCallSettings.Builder<ListNetworksRequest, NetworkList, ListPagedResponse>
listSettings()947         listSettings() {
948       return listSettings;
949     }
950 
951     /** Returns the builder for the settings used for calls to listPeeringRoutes. */
952     public PagedCallSettings.Builder<
953             ListPeeringRoutesNetworksRequest,
954             ExchangedPeeringRoutesList,
955             ListPeeringRoutesPagedResponse>
listPeeringRoutesSettings()956         listPeeringRoutesSettings() {
957       return listPeeringRoutesSettings;
958     }
959 
960     /** Returns the builder for the settings used for calls to patch. */
patchSettings()961     public UnaryCallSettings.Builder<PatchNetworkRequest, Operation> patchSettings() {
962       return patchSettings;
963     }
964 
965     /** Returns the builder for the settings used for calls to patch. */
966     @BetaApi(
967         "The surface for use by generated code is not stable yet and may change in the future.")
968     public OperationCallSettings.Builder<PatchNetworkRequest, Operation, Operation>
patchOperationSettings()969         patchOperationSettings() {
970       return patchOperationSettings;
971     }
972 
973     /** Returns the builder for the settings used for calls to removePeering. */
974     public UnaryCallSettings.Builder<RemovePeeringNetworkRequest, Operation>
removePeeringSettings()975         removePeeringSettings() {
976       return removePeeringSettings;
977     }
978 
979     /** Returns the builder for the settings used for calls to removePeering. */
980     @BetaApi(
981         "The surface for use by generated code is not stable yet and may change in the future.")
982     public OperationCallSettings.Builder<RemovePeeringNetworkRequest, Operation, Operation>
removePeeringOperationSettings()983         removePeeringOperationSettings() {
984       return removePeeringOperationSettings;
985     }
986 
987     /** Returns the builder for the settings used for calls to switchToCustomMode. */
988     public UnaryCallSettings.Builder<SwitchToCustomModeNetworkRequest, Operation>
switchToCustomModeSettings()989         switchToCustomModeSettings() {
990       return switchToCustomModeSettings;
991     }
992 
993     /** Returns the builder for the settings used for calls to switchToCustomMode. */
994     @BetaApi(
995         "The surface for use by generated code is not stable yet and may change in the future.")
996     public OperationCallSettings.Builder<SwitchToCustomModeNetworkRequest, Operation, Operation>
switchToCustomModeOperationSettings()997         switchToCustomModeOperationSettings() {
998       return switchToCustomModeOperationSettings;
999     }
1000 
1001     /** Returns the builder for the settings used for calls to updatePeering. */
1002     public UnaryCallSettings.Builder<UpdatePeeringNetworkRequest, Operation>
updatePeeringSettings()1003         updatePeeringSettings() {
1004       return updatePeeringSettings;
1005     }
1006 
1007     /** Returns the builder for the settings used for calls to updatePeering. */
1008     @BetaApi(
1009         "The surface for use by generated code is not stable yet and may change in the future.")
1010     public OperationCallSettings.Builder<UpdatePeeringNetworkRequest, Operation, Operation>
updatePeeringOperationSettings()1011         updatePeeringOperationSettings() {
1012       return updatePeeringOperationSettings;
1013     }
1014 
1015     @Override
build()1016     public NetworksStubSettings build() throws IOException {
1017       return new NetworksStubSettings(this);
1018     }
1019   }
1020 }
1021