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