• 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.ProjectsClient.GetXpnResourcesPagedResponse;
20 import static com.google.cloud.compute.v1.ProjectsClient.ListXpnHostsPagedResponse;
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.DisableXpnHostProjectRequest;
49 import com.google.cloud.compute.v1.DisableXpnResourceProjectRequest;
50 import com.google.cloud.compute.v1.EnableXpnHostProjectRequest;
51 import com.google.cloud.compute.v1.EnableXpnResourceProjectRequest;
52 import com.google.cloud.compute.v1.GetProjectRequest;
53 import com.google.cloud.compute.v1.GetXpnHostProjectRequest;
54 import com.google.cloud.compute.v1.GetXpnResourcesProjectsRequest;
55 import com.google.cloud.compute.v1.ListXpnHostsProjectsRequest;
56 import com.google.cloud.compute.v1.MoveDiskProjectRequest;
57 import com.google.cloud.compute.v1.MoveInstanceProjectRequest;
58 import com.google.cloud.compute.v1.Operation;
59 import com.google.cloud.compute.v1.Project;
60 import com.google.cloud.compute.v1.ProjectsGetXpnResources;
61 import com.google.cloud.compute.v1.SetCommonInstanceMetadataProjectRequest;
62 import com.google.cloud.compute.v1.SetDefaultNetworkTierProjectRequest;
63 import com.google.cloud.compute.v1.SetUsageExportBucketProjectRequest;
64 import com.google.cloud.compute.v1.XpnHostList;
65 import com.google.cloud.compute.v1.XpnResourceId;
66 import com.google.common.collect.ImmutableList;
67 import com.google.common.collect.ImmutableMap;
68 import com.google.common.collect.ImmutableSet;
69 import com.google.common.collect.Lists;
70 import java.io.IOException;
71 import java.util.List;
72 import javax.annotation.Generated;
73 import org.threeten.bp.Duration;
74 
75 // AUTO-GENERATED DOCUMENTATION AND CLASS.
76 /**
77  * Settings class to configure an instance of {@link ProjectsStub}.
78  *
79  * <p>The default instance has everything set to sensible defaults:
80  *
81  * <ul>
82  *   <li>The default service address (compute.googleapis.com) and default port (443) are used.
83  *   <li>Credentials are acquired automatically through Application Default Credentials.
84  *   <li>Retries are configured for idempotent methods but not for non-idempotent methods.
85  * </ul>
86  *
87  * <p>The builder of this class is recursive, so contained classes are themselves builders. When
88  * build() is called, the tree of builders is called to create the complete settings object.
89  *
90  * <p>For example, to set the total timeout of get to 30 seconds:
91  *
92  * <pre>{@code
93  * // This snippet has been automatically generated and should be regarded as a code template only.
94  * // It will require modifications to work:
95  * // - It may require correct/in-range values for request initialization.
96  * // - It may require specifying regional endpoints when creating the service client as shown in
97  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
98  * ProjectsStubSettings.Builder projectsSettingsBuilder = ProjectsStubSettings.newBuilder();
99  * projectsSettingsBuilder
100  *     .getSettings()
101  *     .setRetrySettings(
102  *         projectsSettingsBuilder
103  *             .getSettings()
104  *             .getRetrySettings()
105  *             .toBuilder()
106  *             .setTotalTimeout(Duration.ofSeconds(30))
107  *             .build());
108  * ProjectsStubSettings projectsSettings = projectsSettingsBuilder.build();
109  * }</pre>
110  */
111 @Generated("by gapic-generator-java")
112 public class ProjectsStubSettings extends StubSettings<ProjectsStubSettings> {
113   /** The default scopes of the service. */
114   private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES =
115       ImmutableList.<String>builder()
116           .add("https://www.googleapis.com/auth/compute")
117           .add("https://www.googleapis.com/auth/cloud-platform")
118           .build();
119 
120   private final UnaryCallSettings<DisableXpnHostProjectRequest, Operation> disableXpnHostSettings;
121   private final OperationCallSettings<DisableXpnHostProjectRequest, Operation, Operation>
122       disableXpnHostOperationSettings;
123   private final UnaryCallSettings<DisableXpnResourceProjectRequest, Operation>
124       disableXpnResourceSettings;
125   private final OperationCallSettings<DisableXpnResourceProjectRequest, Operation, Operation>
126       disableXpnResourceOperationSettings;
127   private final UnaryCallSettings<EnableXpnHostProjectRequest, Operation> enableXpnHostSettings;
128   private final OperationCallSettings<EnableXpnHostProjectRequest, Operation, Operation>
129       enableXpnHostOperationSettings;
130   private final UnaryCallSettings<EnableXpnResourceProjectRequest, Operation>
131       enableXpnResourceSettings;
132   private final OperationCallSettings<EnableXpnResourceProjectRequest, Operation, Operation>
133       enableXpnResourceOperationSettings;
134   private final UnaryCallSettings<GetProjectRequest, Project> getSettings;
135   private final UnaryCallSettings<GetXpnHostProjectRequest, Project> getXpnHostSettings;
136   private final PagedCallSettings<
137           GetXpnResourcesProjectsRequest, ProjectsGetXpnResources, GetXpnResourcesPagedResponse>
138       getXpnResourcesSettings;
139   private final PagedCallSettings<
140           ListXpnHostsProjectsRequest, XpnHostList, ListXpnHostsPagedResponse>
141       listXpnHostsSettings;
142   private final UnaryCallSettings<MoveDiskProjectRequest, Operation> moveDiskSettings;
143   private final OperationCallSettings<MoveDiskProjectRequest, Operation, Operation>
144       moveDiskOperationSettings;
145   private final UnaryCallSettings<MoveInstanceProjectRequest, Operation> moveInstanceSettings;
146   private final OperationCallSettings<MoveInstanceProjectRequest, Operation, Operation>
147       moveInstanceOperationSettings;
148   private final UnaryCallSettings<SetCommonInstanceMetadataProjectRequest, Operation>
149       setCommonInstanceMetadataSettings;
150   private final OperationCallSettings<SetCommonInstanceMetadataProjectRequest, Operation, Operation>
151       setCommonInstanceMetadataOperationSettings;
152   private final UnaryCallSettings<SetDefaultNetworkTierProjectRequest, Operation>
153       setDefaultNetworkTierSettings;
154   private final OperationCallSettings<SetDefaultNetworkTierProjectRequest, Operation, Operation>
155       setDefaultNetworkTierOperationSettings;
156   private final UnaryCallSettings<SetUsageExportBucketProjectRequest, Operation>
157       setUsageExportBucketSettings;
158   private final OperationCallSettings<SetUsageExportBucketProjectRequest, Operation, Operation>
159       setUsageExportBucketOperationSettings;
160 
161   private static final PagedListDescriptor<
162           GetXpnResourcesProjectsRequest, ProjectsGetXpnResources, XpnResourceId>
163       GET_XPN_RESOURCES_PAGE_STR_DESC =
164           new PagedListDescriptor<
165               GetXpnResourcesProjectsRequest, ProjectsGetXpnResources, XpnResourceId>() {
166             @Override
167             public String emptyToken() {
168               return "";
169             }
170 
171             @Override
172             public GetXpnResourcesProjectsRequest injectToken(
173                 GetXpnResourcesProjectsRequest payload, String token) {
174               return GetXpnResourcesProjectsRequest.newBuilder(payload).setPageToken(token).build();
175             }
176 
177             @Override
178             public GetXpnResourcesProjectsRequest injectPageSize(
179                 GetXpnResourcesProjectsRequest payload, int pageSize) {
180               return GetXpnResourcesProjectsRequest.newBuilder(payload)
181                   .setMaxResults(pageSize)
182                   .build();
183             }
184 
185             @Override
186             public Integer extractPageSize(GetXpnResourcesProjectsRequest payload) {
187               return payload.getMaxResults();
188             }
189 
190             @Override
191             public String extractNextToken(ProjectsGetXpnResources payload) {
192               return payload.getNextPageToken();
193             }
194 
195             @Override
196             public Iterable<XpnResourceId> extractResources(ProjectsGetXpnResources payload) {
197               return payload.getResourcesList() == null
198                   ? ImmutableList.<XpnResourceId>of()
199                   : payload.getResourcesList();
200             }
201           };
202 
203   private static final PagedListDescriptor<ListXpnHostsProjectsRequest, XpnHostList, Project>
204       LIST_XPN_HOSTS_PAGE_STR_DESC =
205           new PagedListDescriptor<ListXpnHostsProjectsRequest, XpnHostList, Project>() {
206             @Override
207             public String emptyToken() {
208               return "";
209             }
210 
211             @Override
212             public ListXpnHostsProjectsRequest injectToken(
213                 ListXpnHostsProjectsRequest payload, String token) {
214               return ListXpnHostsProjectsRequest.newBuilder(payload).setPageToken(token).build();
215             }
216 
217             @Override
218             public ListXpnHostsProjectsRequest injectPageSize(
219                 ListXpnHostsProjectsRequest payload, int pageSize) {
220               return ListXpnHostsProjectsRequest.newBuilder(payload)
221                   .setMaxResults(pageSize)
222                   .build();
223             }
224 
225             @Override
226             public Integer extractPageSize(ListXpnHostsProjectsRequest payload) {
227               return payload.getMaxResults();
228             }
229 
230             @Override
231             public String extractNextToken(XpnHostList payload) {
232               return payload.getNextPageToken();
233             }
234 
235             @Override
236             public Iterable<Project> extractResources(XpnHostList payload) {
237               return payload.getItemsList() == null
238                   ? ImmutableList.<Project>of()
239                   : payload.getItemsList();
240             }
241           };
242 
243   private static final PagedListResponseFactory<
244           GetXpnResourcesProjectsRequest, ProjectsGetXpnResources, GetXpnResourcesPagedResponse>
245       GET_XPN_RESOURCES_PAGE_STR_FACT =
246           new PagedListResponseFactory<
247               GetXpnResourcesProjectsRequest,
248               ProjectsGetXpnResources,
249               GetXpnResourcesPagedResponse>() {
250             @Override
251             public ApiFuture<GetXpnResourcesPagedResponse> getFuturePagedResponse(
252                 UnaryCallable<GetXpnResourcesProjectsRequest, ProjectsGetXpnResources> callable,
253                 GetXpnResourcesProjectsRequest request,
254                 ApiCallContext context,
255                 ApiFuture<ProjectsGetXpnResources> futureResponse) {
256               PageContext<GetXpnResourcesProjectsRequest, ProjectsGetXpnResources, XpnResourceId>
257                   pageContext =
258                       PageContext.create(
259                           callable, GET_XPN_RESOURCES_PAGE_STR_DESC, request, context);
260               return GetXpnResourcesPagedResponse.createAsync(pageContext, futureResponse);
261             }
262           };
263 
264   private static final PagedListResponseFactory<
265           ListXpnHostsProjectsRequest, XpnHostList, ListXpnHostsPagedResponse>
266       LIST_XPN_HOSTS_PAGE_STR_FACT =
267           new PagedListResponseFactory<
268               ListXpnHostsProjectsRequest, XpnHostList, ListXpnHostsPagedResponse>() {
269             @Override
270             public ApiFuture<ListXpnHostsPagedResponse> getFuturePagedResponse(
271                 UnaryCallable<ListXpnHostsProjectsRequest, XpnHostList> callable,
272                 ListXpnHostsProjectsRequest request,
273                 ApiCallContext context,
274                 ApiFuture<XpnHostList> futureResponse) {
275               PageContext<ListXpnHostsProjectsRequest, XpnHostList, Project> pageContext =
276                   PageContext.create(callable, LIST_XPN_HOSTS_PAGE_STR_DESC, request, context);
277               return ListXpnHostsPagedResponse.createAsync(pageContext, futureResponse);
278             }
279           };
280 
281   /** Returns the object with the settings used for calls to disableXpnHost. */
disableXpnHostSettings()282   public UnaryCallSettings<DisableXpnHostProjectRequest, Operation> disableXpnHostSettings() {
283     return disableXpnHostSettings;
284   }
285 
286   /** Returns the object with the settings used for calls to disableXpnHost. */
287   public OperationCallSettings<DisableXpnHostProjectRequest, Operation, Operation>
disableXpnHostOperationSettings()288       disableXpnHostOperationSettings() {
289     return disableXpnHostOperationSettings;
290   }
291 
292   /** Returns the object with the settings used for calls to disableXpnResource. */
293   public UnaryCallSettings<DisableXpnResourceProjectRequest, Operation>
disableXpnResourceSettings()294       disableXpnResourceSettings() {
295     return disableXpnResourceSettings;
296   }
297 
298   /** Returns the object with the settings used for calls to disableXpnResource. */
299   public OperationCallSettings<DisableXpnResourceProjectRequest, Operation, Operation>
disableXpnResourceOperationSettings()300       disableXpnResourceOperationSettings() {
301     return disableXpnResourceOperationSettings;
302   }
303 
304   /** Returns the object with the settings used for calls to enableXpnHost. */
enableXpnHostSettings()305   public UnaryCallSettings<EnableXpnHostProjectRequest, Operation> enableXpnHostSettings() {
306     return enableXpnHostSettings;
307   }
308 
309   /** Returns the object with the settings used for calls to enableXpnHost. */
310   public OperationCallSettings<EnableXpnHostProjectRequest, Operation, Operation>
enableXpnHostOperationSettings()311       enableXpnHostOperationSettings() {
312     return enableXpnHostOperationSettings;
313   }
314 
315   /** Returns the object with the settings used for calls to enableXpnResource. */
enableXpnResourceSettings()316   public UnaryCallSettings<EnableXpnResourceProjectRequest, Operation> enableXpnResourceSettings() {
317     return enableXpnResourceSettings;
318   }
319 
320   /** Returns the object with the settings used for calls to enableXpnResource. */
321   public OperationCallSettings<EnableXpnResourceProjectRequest, Operation, Operation>
enableXpnResourceOperationSettings()322       enableXpnResourceOperationSettings() {
323     return enableXpnResourceOperationSettings;
324   }
325 
326   /** Returns the object with the settings used for calls to get. */
getSettings()327   public UnaryCallSettings<GetProjectRequest, Project> getSettings() {
328     return getSettings;
329   }
330 
331   /** Returns the object with the settings used for calls to getXpnHost. */
getXpnHostSettings()332   public UnaryCallSettings<GetXpnHostProjectRequest, Project> getXpnHostSettings() {
333     return getXpnHostSettings;
334   }
335 
336   /** Returns the object with the settings used for calls to getXpnResources. */
337   public PagedCallSettings<
338           GetXpnResourcesProjectsRequest, ProjectsGetXpnResources, GetXpnResourcesPagedResponse>
getXpnResourcesSettings()339       getXpnResourcesSettings() {
340     return getXpnResourcesSettings;
341   }
342 
343   /** Returns the object with the settings used for calls to listXpnHosts. */
344   public PagedCallSettings<ListXpnHostsProjectsRequest, XpnHostList, ListXpnHostsPagedResponse>
listXpnHostsSettings()345       listXpnHostsSettings() {
346     return listXpnHostsSettings;
347   }
348 
349   /** Returns the object with the settings used for calls to moveDisk. */
moveDiskSettings()350   public UnaryCallSettings<MoveDiskProjectRequest, Operation> moveDiskSettings() {
351     return moveDiskSettings;
352   }
353 
354   /** Returns the object with the settings used for calls to moveDisk. */
355   public OperationCallSettings<MoveDiskProjectRequest, Operation, Operation>
moveDiskOperationSettings()356       moveDiskOperationSettings() {
357     return moveDiskOperationSettings;
358   }
359 
360   /** Returns the object with the settings used for calls to moveInstance. */
moveInstanceSettings()361   public UnaryCallSettings<MoveInstanceProjectRequest, Operation> moveInstanceSettings() {
362     return moveInstanceSettings;
363   }
364 
365   /** Returns the object with the settings used for calls to moveInstance. */
366   public OperationCallSettings<MoveInstanceProjectRequest, Operation, Operation>
moveInstanceOperationSettings()367       moveInstanceOperationSettings() {
368     return moveInstanceOperationSettings;
369   }
370 
371   /** Returns the object with the settings used for calls to setCommonInstanceMetadata. */
372   public UnaryCallSettings<SetCommonInstanceMetadataProjectRequest, Operation>
setCommonInstanceMetadataSettings()373       setCommonInstanceMetadataSettings() {
374     return setCommonInstanceMetadataSettings;
375   }
376 
377   /** Returns the object with the settings used for calls to setCommonInstanceMetadata. */
378   public OperationCallSettings<SetCommonInstanceMetadataProjectRequest, Operation, Operation>
setCommonInstanceMetadataOperationSettings()379       setCommonInstanceMetadataOperationSettings() {
380     return setCommonInstanceMetadataOperationSettings;
381   }
382 
383   /** Returns the object with the settings used for calls to setDefaultNetworkTier. */
384   public UnaryCallSettings<SetDefaultNetworkTierProjectRequest, Operation>
setDefaultNetworkTierSettings()385       setDefaultNetworkTierSettings() {
386     return setDefaultNetworkTierSettings;
387   }
388 
389   /** Returns the object with the settings used for calls to setDefaultNetworkTier. */
390   public OperationCallSettings<SetDefaultNetworkTierProjectRequest, Operation, Operation>
setDefaultNetworkTierOperationSettings()391       setDefaultNetworkTierOperationSettings() {
392     return setDefaultNetworkTierOperationSettings;
393   }
394 
395   /** Returns the object with the settings used for calls to setUsageExportBucket. */
396   public UnaryCallSettings<SetUsageExportBucketProjectRequest, Operation>
setUsageExportBucketSettings()397       setUsageExportBucketSettings() {
398     return setUsageExportBucketSettings;
399   }
400 
401   /** Returns the object with the settings used for calls to setUsageExportBucket. */
402   public OperationCallSettings<SetUsageExportBucketProjectRequest, Operation, Operation>
setUsageExportBucketOperationSettings()403       setUsageExportBucketOperationSettings() {
404     return setUsageExportBucketOperationSettings;
405   }
406 
createStub()407   public ProjectsStub createStub() throws IOException {
408     if (getTransportChannelProvider()
409         .getTransportName()
410         .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
411       return HttpJsonProjectsStub.create(this);
412     }
413     throw new UnsupportedOperationException(
414         String.format(
415             "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
416   }
417 
418   /** Returns a builder for the default ExecutorProvider for this service. */
defaultExecutorProviderBuilder()419   public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
420     return InstantiatingExecutorProvider.newBuilder();
421   }
422 
423   /** Returns the default service endpoint. */
getDefaultEndpoint()424   public static String getDefaultEndpoint() {
425     return "compute.googleapis.com:443";
426   }
427 
428   /** Returns the default mTLS service endpoint. */
getDefaultMtlsEndpoint()429   public static String getDefaultMtlsEndpoint() {
430     return "compute.mtls.googleapis.com:443";
431   }
432 
433   /** Returns the default service scopes. */
getDefaultServiceScopes()434   public static List<String> getDefaultServiceScopes() {
435     return DEFAULT_SERVICE_SCOPES;
436   }
437 
438   /** Returns a builder for the default credentials for this service. */
defaultCredentialsProviderBuilder()439   public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
440     return GoogleCredentialsProvider.newBuilder()
441         .setScopesToApply(DEFAULT_SERVICE_SCOPES)
442         .setUseJwtAccessWithScope(true);
443   }
444 
445   /** Returns a builder for the default ChannelProvider for this service. */
446   public static InstantiatingHttpJsonChannelProvider.Builder
defaultHttpJsonTransportProviderBuilder()447       defaultHttpJsonTransportProviderBuilder() {
448     return InstantiatingHttpJsonChannelProvider.newBuilder();
449   }
450 
defaultTransportChannelProvider()451   public static TransportChannelProvider defaultTransportChannelProvider() {
452     return defaultHttpJsonTransportProviderBuilder().build();
453   }
454 
455   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultApiClientHeaderProviderBuilder()456   public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
457     return ApiClientHeaderProvider.newBuilder()
458         .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(ProjectsStubSettings.class))
459         .setTransportToken(
460             GaxHttpJsonProperties.getHttpJsonTokenName(),
461             GaxHttpJsonProperties.getHttpJsonVersion());
462   }
463 
464   /** Returns a new builder for this class. */
newBuilder()465   public static Builder newBuilder() {
466     return Builder.createDefault();
467   }
468 
469   /** Returns a new builder for this class. */
newBuilder(ClientContext clientContext)470   public static Builder newBuilder(ClientContext clientContext) {
471     return new Builder(clientContext);
472   }
473 
474   /** Returns a builder containing all the values of this settings class. */
toBuilder()475   public Builder toBuilder() {
476     return new Builder(this);
477   }
478 
ProjectsStubSettings(Builder settingsBuilder)479   protected ProjectsStubSettings(Builder settingsBuilder) throws IOException {
480     super(settingsBuilder);
481 
482     disableXpnHostSettings = settingsBuilder.disableXpnHostSettings().build();
483     disableXpnHostOperationSettings = settingsBuilder.disableXpnHostOperationSettings().build();
484     disableXpnResourceSettings = settingsBuilder.disableXpnResourceSettings().build();
485     disableXpnResourceOperationSettings =
486         settingsBuilder.disableXpnResourceOperationSettings().build();
487     enableXpnHostSettings = settingsBuilder.enableXpnHostSettings().build();
488     enableXpnHostOperationSettings = settingsBuilder.enableXpnHostOperationSettings().build();
489     enableXpnResourceSettings = settingsBuilder.enableXpnResourceSettings().build();
490     enableXpnResourceOperationSettings =
491         settingsBuilder.enableXpnResourceOperationSettings().build();
492     getSettings = settingsBuilder.getSettings().build();
493     getXpnHostSettings = settingsBuilder.getXpnHostSettings().build();
494     getXpnResourcesSettings = settingsBuilder.getXpnResourcesSettings().build();
495     listXpnHostsSettings = settingsBuilder.listXpnHostsSettings().build();
496     moveDiskSettings = settingsBuilder.moveDiskSettings().build();
497     moveDiskOperationSettings = settingsBuilder.moveDiskOperationSettings().build();
498     moveInstanceSettings = settingsBuilder.moveInstanceSettings().build();
499     moveInstanceOperationSettings = settingsBuilder.moveInstanceOperationSettings().build();
500     setCommonInstanceMetadataSettings = settingsBuilder.setCommonInstanceMetadataSettings().build();
501     setCommonInstanceMetadataOperationSettings =
502         settingsBuilder.setCommonInstanceMetadataOperationSettings().build();
503     setDefaultNetworkTierSettings = settingsBuilder.setDefaultNetworkTierSettings().build();
504     setDefaultNetworkTierOperationSettings =
505         settingsBuilder.setDefaultNetworkTierOperationSettings().build();
506     setUsageExportBucketSettings = settingsBuilder.setUsageExportBucketSettings().build();
507     setUsageExportBucketOperationSettings =
508         settingsBuilder.setUsageExportBucketOperationSettings().build();
509   }
510 
511   /** Builder for ProjectsStubSettings. */
512   public static class Builder extends StubSettings.Builder<ProjectsStubSettings, Builder> {
513     private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;
514     private final UnaryCallSettings.Builder<DisableXpnHostProjectRequest, Operation>
515         disableXpnHostSettings;
516     private final OperationCallSettings.Builder<DisableXpnHostProjectRequest, Operation, Operation>
517         disableXpnHostOperationSettings;
518     private final UnaryCallSettings.Builder<DisableXpnResourceProjectRequest, Operation>
519         disableXpnResourceSettings;
520     private final OperationCallSettings.Builder<
521             DisableXpnResourceProjectRequest, Operation, Operation>
522         disableXpnResourceOperationSettings;
523     private final UnaryCallSettings.Builder<EnableXpnHostProjectRequest, Operation>
524         enableXpnHostSettings;
525     private final OperationCallSettings.Builder<EnableXpnHostProjectRequest, Operation, Operation>
526         enableXpnHostOperationSettings;
527     private final UnaryCallSettings.Builder<EnableXpnResourceProjectRequest, Operation>
528         enableXpnResourceSettings;
529     private final OperationCallSettings.Builder<
530             EnableXpnResourceProjectRequest, Operation, Operation>
531         enableXpnResourceOperationSettings;
532     private final UnaryCallSettings.Builder<GetProjectRequest, Project> getSettings;
533     private final UnaryCallSettings.Builder<GetXpnHostProjectRequest, Project> getXpnHostSettings;
534     private final PagedCallSettings.Builder<
535             GetXpnResourcesProjectsRequest, ProjectsGetXpnResources, GetXpnResourcesPagedResponse>
536         getXpnResourcesSettings;
537     private final PagedCallSettings.Builder<
538             ListXpnHostsProjectsRequest, XpnHostList, ListXpnHostsPagedResponse>
539         listXpnHostsSettings;
540     private final UnaryCallSettings.Builder<MoveDiskProjectRequest, Operation> moveDiskSettings;
541     private final OperationCallSettings.Builder<MoveDiskProjectRequest, Operation, Operation>
542         moveDiskOperationSettings;
543     private final UnaryCallSettings.Builder<MoveInstanceProjectRequest, Operation>
544         moveInstanceSettings;
545     private final OperationCallSettings.Builder<MoveInstanceProjectRequest, Operation, Operation>
546         moveInstanceOperationSettings;
547     private final UnaryCallSettings.Builder<SetCommonInstanceMetadataProjectRequest, Operation>
548         setCommonInstanceMetadataSettings;
549     private final OperationCallSettings.Builder<
550             SetCommonInstanceMetadataProjectRequest, Operation, Operation>
551         setCommonInstanceMetadataOperationSettings;
552     private final UnaryCallSettings.Builder<SetDefaultNetworkTierProjectRequest, Operation>
553         setDefaultNetworkTierSettings;
554     private final OperationCallSettings.Builder<
555             SetDefaultNetworkTierProjectRequest, Operation, Operation>
556         setDefaultNetworkTierOperationSettings;
557     private final UnaryCallSettings.Builder<SetUsageExportBucketProjectRequest, Operation>
558         setUsageExportBucketSettings;
559     private final OperationCallSettings.Builder<
560             SetUsageExportBucketProjectRequest, Operation, Operation>
561         setUsageExportBucketOperationSettings;
562     private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>>
563         RETRYABLE_CODE_DEFINITIONS;
564 
565     static {
566       ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions =
567           ImmutableMap.builder();
568       definitions.put(
569           "no_retry_1_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList()));
570       definitions.put(
571           "retry_policy_0_codes",
572           ImmutableSet.copyOf(
573               Lists.<StatusCode.Code>newArrayList(
574                   StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE)));
575       RETRYABLE_CODE_DEFINITIONS = definitions.build();
576     }
577 
578     private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS;
579 
580     static {
581       ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder();
582       RetrySettings settings = null;
583       settings =
584           RetrySettings.newBuilder()
585               .setInitialRpcTimeout(Duration.ofMillis(600000L))
586               .setRpcTimeoutMultiplier(1.0)
587               .setMaxRpcTimeout(Duration.ofMillis(600000L))
588               .setTotalTimeout(Duration.ofMillis(600000L))
589               .build();
590       definitions.put("no_retry_1_params", settings);
591       settings =
592           RetrySettings.newBuilder()
593               .setInitialRetryDelay(Duration.ofMillis(100L))
594               .setRetryDelayMultiplier(1.3)
595               .setMaxRetryDelay(Duration.ofMillis(60000L))
596               .setInitialRpcTimeout(Duration.ofMillis(600000L))
597               .setRpcTimeoutMultiplier(1.0)
598               .setMaxRpcTimeout(Duration.ofMillis(600000L))
599               .setTotalTimeout(Duration.ofMillis(600000L))
600               .build();
601       definitions.put("retry_policy_0_params", settings);
602       RETRY_PARAM_DEFINITIONS = definitions.build();
603     }
604 
Builder()605     protected Builder() {
606       this(((ClientContext) null));
607     }
608 
Builder(ClientContext clientContext)609     protected Builder(ClientContext clientContext) {
610       super(clientContext);
611 
612       disableXpnHostSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
613       disableXpnHostOperationSettings = OperationCallSettings.newBuilder();
614       disableXpnResourceSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
615       disableXpnResourceOperationSettings = OperationCallSettings.newBuilder();
616       enableXpnHostSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
617       enableXpnHostOperationSettings = OperationCallSettings.newBuilder();
618       enableXpnResourceSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
619       enableXpnResourceOperationSettings = OperationCallSettings.newBuilder();
620       getSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
621       getXpnHostSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
622       getXpnResourcesSettings = PagedCallSettings.newBuilder(GET_XPN_RESOURCES_PAGE_STR_FACT);
623       listXpnHostsSettings = PagedCallSettings.newBuilder(LIST_XPN_HOSTS_PAGE_STR_FACT);
624       moveDiskSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
625       moveDiskOperationSettings = OperationCallSettings.newBuilder();
626       moveInstanceSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
627       moveInstanceOperationSettings = OperationCallSettings.newBuilder();
628       setCommonInstanceMetadataSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
629       setCommonInstanceMetadataOperationSettings = OperationCallSettings.newBuilder();
630       setDefaultNetworkTierSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
631       setDefaultNetworkTierOperationSettings = OperationCallSettings.newBuilder();
632       setUsageExportBucketSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
633       setUsageExportBucketOperationSettings = OperationCallSettings.newBuilder();
634 
635       unaryMethodSettingsBuilders =
636           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
637               disableXpnHostSettings,
638               disableXpnResourceSettings,
639               enableXpnHostSettings,
640               enableXpnResourceSettings,
641               getSettings,
642               getXpnHostSettings,
643               getXpnResourcesSettings,
644               listXpnHostsSettings,
645               moveDiskSettings,
646               moveInstanceSettings,
647               setCommonInstanceMetadataSettings,
648               setDefaultNetworkTierSettings,
649               setUsageExportBucketSettings);
650       initDefaults(this);
651     }
652 
Builder(ProjectsStubSettings settings)653     protected Builder(ProjectsStubSettings settings) {
654       super(settings);
655 
656       disableXpnHostSettings = settings.disableXpnHostSettings.toBuilder();
657       disableXpnHostOperationSettings = settings.disableXpnHostOperationSettings.toBuilder();
658       disableXpnResourceSettings = settings.disableXpnResourceSettings.toBuilder();
659       disableXpnResourceOperationSettings =
660           settings.disableXpnResourceOperationSettings.toBuilder();
661       enableXpnHostSettings = settings.enableXpnHostSettings.toBuilder();
662       enableXpnHostOperationSettings = settings.enableXpnHostOperationSettings.toBuilder();
663       enableXpnResourceSettings = settings.enableXpnResourceSettings.toBuilder();
664       enableXpnResourceOperationSettings = settings.enableXpnResourceOperationSettings.toBuilder();
665       getSettings = settings.getSettings.toBuilder();
666       getXpnHostSettings = settings.getXpnHostSettings.toBuilder();
667       getXpnResourcesSettings = settings.getXpnResourcesSettings.toBuilder();
668       listXpnHostsSettings = settings.listXpnHostsSettings.toBuilder();
669       moveDiskSettings = settings.moveDiskSettings.toBuilder();
670       moveDiskOperationSettings = settings.moveDiskOperationSettings.toBuilder();
671       moveInstanceSettings = settings.moveInstanceSettings.toBuilder();
672       moveInstanceOperationSettings = settings.moveInstanceOperationSettings.toBuilder();
673       setCommonInstanceMetadataSettings = settings.setCommonInstanceMetadataSettings.toBuilder();
674       setCommonInstanceMetadataOperationSettings =
675           settings.setCommonInstanceMetadataOperationSettings.toBuilder();
676       setDefaultNetworkTierSettings = settings.setDefaultNetworkTierSettings.toBuilder();
677       setDefaultNetworkTierOperationSettings =
678           settings.setDefaultNetworkTierOperationSettings.toBuilder();
679       setUsageExportBucketSettings = settings.setUsageExportBucketSettings.toBuilder();
680       setUsageExportBucketOperationSettings =
681           settings.setUsageExportBucketOperationSettings.toBuilder();
682 
683       unaryMethodSettingsBuilders =
684           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
685               disableXpnHostSettings,
686               disableXpnResourceSettings,
687               enableXpnHostSettings,
688               enableXpnResourceSettings,
689               getSettings,
690               getXpnHostSettings,
691               getXpnResourcesSettings,
692               listXpnHostsSettings,
693               moveDiskSettings,
694               moveInstanceSettings,
695               setCommonInstanceMetadataSettings,
696               setDefaultNetworkTierSettings,
697               setUsageExportBucketSettings);
698     }
699 
createDefault()700     private static Builder createDefault() {
701       Builder builder = new Builder(((ClientContext) null));
702 
703       builder.setTransportChannelProvider(defaultTransportChannelProvider());
704       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
705       builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
706       builder.setEndpoint(getDefaultEndpoint());
707       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
708       builder.setSwitchToMtlsEndpointAllowed(true);
709 
710       return initDefaults(builder);
711     }
712 
initDefaults(Builder builder)713     private static Builder initDefaults(Builder builder) {
714       builder
715           .disableXpnHostSettings()
716           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
717           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
718 
719       builder
720           .disableXpnResourceSettings()
721           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
722           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
723 
724       builder
725           .enableXpnHostSettings()
726           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
727           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
728 
729       builder
730           .enableXpnResourceSettings()
731           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
732           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
733 
734       builder
735           .getSettings()
736           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
737           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
738 
739       builder
740           .getXpnHostSettings()
741           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
742           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
743 
744       builder
745           .getXpnResourcesSettings()
746           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
747           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
748 
749       builder
750           .listXpnHostsSettings()
751           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
752           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
753 
754       builder
755           .moveDiskSettings()
756           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
757           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
758 
759       builder
760           .moveInstanceSettings()
761           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
762           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
763 
764       builder
765           .setCommonInstanceMetadataSettings()
766           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
767           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
768 
769       builder
770           .setDefaultNetworkTierSettings()
771           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
772           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
773 
774       builder
775           .setUsageExportBucketSettings()
776           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
777           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"));
778 
779       builder
780           .disableXpnHostOperationSettings()
781           .setInitialCallSettings(
782               UnaryCallSettings
783                   .<DisableXpnHostProjectRequest, 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           .disableXpnResourceOperationSettings()
805           .setInitialCallSettings(
806               UnaryCallSettings
807                   .<DisableXpnResourceProjectRequest, OperationSnapshot>
808                       newUnaryCallSettingsBuilder()
809                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
810                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
811                   .build())
812           .setResponseTransformer(
813               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
814           .setMetadataTransformer(
815               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
816           .setPollingAlgorithm(
817               OperationTimedPollAlgorithm.create(
818                   RetrySettings.newBuilder()
819                       .setInitialRetryDelay(Duration.ofMillis(500L))
820                       .setRetryDelayMultiplier(1.5)
821                       .setMaxRetryDelay(Duration.ofMillis(20000L))
822                       .setInitialRpcTimeout(Duration.ZERO)
823                       .setRpcTimeoutMultiplier(1.0)
824                       .setMaxRpcTimeout(Duration.ZERO)
825                       .setTotalTimeout(Duration.ofMillis(600000L))
826                       .build()));
827 
828       builder
829           .enableXpnHostOperationSettings()
830           .setInitialCallSettings(
831               UnaryCallSettings
832                   .<EnableXpnHostProjectRequest, OperationSnapshot>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           .enableXpnResourceOperationSettings()
854           .setInitialCallSettings(
855               UnaryCallSettings
856                   .<EnableXpnResourceProjectRequest, 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       builder
877           .moveDiskOperationSettings()
878           .setInitialCallSettings(
879               UnaryCallSettings
880                   .<MoveDiskProjectRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
881                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
882                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
883                   .build())
884           .setResponseTransformer(
885               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
886           .setMetadataTransformer(
887               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
888           .setPollingAlgorithm(
889               OperationTimedPollAlgorithm.create(
890                   RetrySettings.newBuilder()
891                       .setInitialRetryDelay(Duration.ofMillis(500L))
892                       .setRetryDelayMultiplier(1.5)
893                       .setMaxRetryDelay(Duration.ofMillis(20000L))
894                       .setInitialRpcTimeout(Duration.ZERO)
895                       .setRpcTimeoutMultiplier(1.0)
896                       .setMaxRpcTimeout(Duration.ZERO)
897                       .setTotalTimeout(Duration.ofMillis(600000L))
898                       .build()));
899 
900       builder
901           .moveInstanceOperationSettings()
902           .setInitialCallSettings(
903               UnaryCallSettings
904                   .<MoveInstanceProjectRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
905                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
906                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
907                   .build())
908           .setResponseTransformer(
909               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
910           .setMetadataTransformer(
911               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
912           .setPollingAlgorithm(
913               OperationTimedPollAlgorithm.create(
914                   RetrySettings.newBuilder()
915                       .setInitialRetryDelay(Duration.ofMillis(500L))
916                       .setRetryDelayMultiplier(1.5)
917                       .setMaxRetryDelay(Duration.ofMillis(20000L))
918                       .setInitialRpcTimeout(Duration.ZERO)
919                       .setRpcTimeoutMultiplier(1.0)
920                       .setMaxRpcTimeout(Duration.ZERO)
921                       .setTotalTimeout(Duration.ofMillis(600000L))
922                       .build()));
923 
924       builder
925           .setCommonInstanceMetadataOperationSettings()
926           .setInitialCallSettings(
927               UnaryCallSettings
928                   .<SetCommonInstanceMetadataProjectRequest, OperationSnapshot>
929                       newUnaryCallSettingsBuilder()
930                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
931                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
932                   .build())
933           .setResponseTransformer(
934               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
935           .setMetadataTransformer(
936               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
937           .setPollingAlgorithm(
938               OperationTimedPollAlgorithm.create(
939                   RetrySettings.newBuilder()
940                       .setInitialRetryDelay(Duration.ofMillis(500L))
941                       .setRetryDelayMultiplier(1.5)
942                       .setMaxRetryDelay(Duration.ofMillis(20000L))
943                       .setInitialRpcTimeout(Duration.ZERO)
944                       .setRpcTimeoutMultiplier(1.0)
945                       .setMaxRpcTimeout(Duration.ZERO)
946                       .setTotalTimeout(Duration.ofMillis(600000L))
947                       .build()));
948 
949       builder
950           .setDefaultNetworkTierOperationSettings()
951           .setInitialCallSettings(
952               UnaryCallSettings
953                   .<SetDefaultNetworkTierProjectRequest, OperationSnapshot>
954                       newUnaryCallSettingsBuilder()
955                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
956                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
957                   .build())
958           .setResponseTransformer(
959               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
960           .setMetadataTransformer(
961               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
962           .setPollingAlgorithm(
963               OperationTimedPollAlgorithm.create(
964                   RetrySettings.newBuilder()
965                       .setInitialRetryDelay(Duration.ofMillis(500L))
966                       .setRetryDelayMultiplier(1.5)
967                       .setMaxRetryDelay(Duration.ofMillis(20000L))
968                       .setInitialRpcTimeout(Duration.ZERO)
969                       .setRpcTimeoutMultiplier(1.0)
970                       .setMaxRpcTimeout(Duration.ZERO)
971                       .setTotalTimeout(Duration.ofMillis(600000L))
972                       .build()));
973 
974       builder
975           .setUsageExportBucketOperationSettings()
976           .setInitialCallSettings(
977               UnaryCallSettings
978                   .<SetUsageExportBucketProjectRequest, OperationSnapshot>
979                       newUnaryCallSettingsBuilder()
980                   .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_1_codes"))
981                   .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_1_params"))
982                   .build())
983           .setResponseTransformer(
984               ProtoOperationTransformers.ResponseTransformer.create(Operation.class))
985           .setMetadataTransformer(
986               ProtoOperationTransformers.MetadataTransformer.create(Operation.class))
987           .setPollingAlgorithm(
988               OperationTimedPollAlgorithm.create(
989                   RetrySettings.newBuilder()
990                       .setInitialRetryDelay(Duration.ofMillis(500L))
991                       .setRetryDelayMultiplier(1.5)
992                       .setMaxRetryDelay(Duration.ofMillis(20000L))
993                       .setInitialRpcTimeout(Duration.ZERO)
994                       .setRpcTimeoutMultiplier(1.0)
995                       .setMaxRpcTimeout(Duration.ZERO)
996                       .setTotalTimeout(Duration.ofMillis(600000L))
997                       .build()));
998 
999       return builder;
1000     }
1001 
1002     /**
1003      * Applies the given settings updater function to all of the unary API methods in this service.
1004      *
1005      * <p>Note: This method does not support applying settings to streaming methods.
1006      */
applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)1007     public Builder applyToAllUnaryMethods(
1008         ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) {
1009       super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
1010       return this;
1011     }
1012 
unaryMethodSettingsBuilders()1013     public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() {
1014       return unaryMethodSettingsBuilders;
1015     }
1016 
1017     /** Returns the builder for the settings used for calls to disableXpnHost. */
1018     public UnaryCallSettings.Builder<DisableXpnHostProjectRequest, Operation>
disableXpnHostSettings()1019         disableXpnHostSettings() {
1020       return disableXpnHostSettings;
1021     }
1022 
1023     /** Returns the builder for the settings used for calls to disableXpnHost. */
1024     @BetaApi(
1025         "The surface for use by generated code is not stable yet and may change in the future.")
1026     public OperationCallSettings.Builder<DisableXpnHostProjectRequest, Operation, Operation>
disableXpnHostOperationSettings()1027         disableXpnHostOperationSettings() {
1028       return disableXpnHostOperationSettings;
1029     }
1030 
1031     /** Returns the builder for the settings used for calls to disableXpnResource. */
1032     public UnaryCallSettings.Builder<DisableXpnResourceProjectRequest, Operation>
disableXpnResourceSettings()1033         disableXpnResourceSettings() {
1034       return disableXpnResourceSettings;
1035     }
1036 
1037     /** Returns the builder for the settings used for calls to disableXpnResource. */
1038     @BetaApi(
1039         "The surface for use by generated code is not stable yet and may change in the future.")
1040     public OperationCallSettings.Builder<DisableXpnResourceProjectRequest, Operation, Operation>
disableXpnResourceOperationSettings()1041         disableXpnResourceOperationSettings() {
1042       return disableXpnResourceOperationSettings;
1043     }
1044 
1045     /** Returns the builder for the settings used for calls to enableXpnHost. */
1046     public UnaryCallSettings.Builder<EnableXpnHostProjectRequest, Operation>
enableXpnHostSettings()1047         enableXpnHostSettings() {
1048       return enableXpnHostSettings;
1049     }
1050 
1051     /** Returns the builder for the settings used for calls to enableXpnHost. */
1052     @BetaApi(
1053         "The surface for use by generated code is not stable yet and may change in the future.")
1054     public OperationCallSettings.Builder<EnableXpnHostProjectRequest, Operation, Operation>
enableXpnHostOperationSettings()1055         enableXpnHostOperationSettings() {
1056       return enableXpnHostOperationSettings;
1057     }
1058 
1059     /** Returns the builder for the settings used for calls to enableXpnResource. */
1060     public UnaryCallSettings.Builder<EnableXpnResourceProjectRequest, Operation>
enableXpnResourceSettings()1061         enableXpnResourceSettings() {
1062       return enableXpnResourceSettings;
1063     }
1064 
1065     /** Returns the builder for the settings used for calls to enableXpnResource. */
1066     @BetaApi(
1067         "The surface for use by generated code is not stable yet and may change in the future.")
1068     public OperationCallSettings.Builder<EnableXpnResourceProjectRequest, Operation, Operation>
enableXpnResourceOperationSettings()1069         enableXpnResourceOperationSettings() {
1070       return enableXpnResourceOperationSettings;
1071     }
1072 
1073     /** Returns the builder for the settings used for calls to get. */
getSettings()1074     public UnaryCallSettings.Builder<GetProjectRequest, Project> getSettings() {
1075       return getSettings;
1076     }
1077 
1078     /** Returns the builder for the settings used for calls to getXpnHost. */
getXpnHostSettings()1079     public UnaryCallSettings.Builder<GetXpnHostProjectRequest, Project> getXpnHostSettings() {
1080       return getXpnHostSettings;
1081     }
1082 
1083     /** Returns the builder for the settings used for calls to getXpnResources. */
1084     public PagedCallSettings.Builder<
1085             GetXpnResourcesProjectsRequest, ProjectsGetXpnResources, GetXpnResourcesPagedResponse>
getXpnResourcesSettings()1086         getXpnResourcesSettings() {
1087       return getXpnResourcesSettings;
1088     }
1089 
1090     /** Returns the builder for the settings used for calls to listXpnHosts. */
1091     public PagedCallSettings.Builder<
1092             ListXpnHostsProjectsRequest, XpnHostList, ListXpnHostsPagedResponse>
listXpnHostsSettings()1093         listXpnHostsSettings() {
1094       return listXpnHostsSettings;
1095     }
1096 
1097     /** Returns the builder for the settings used for calls to moveDisk. */
moveDiskSettings()1098     public UnaryCallSettings.Builder<MoveDiskProjectRequest, Operation> moveDiskSettings() {
1099       return moveDiskSettings;
1100     }
1101 
1102     /** Returns the builder for the settings used for calls to moveDisk. */
1103     @BetaApi(
1104         "The surface for use by generated code is not stable yet and may change in the future.")
1105     public OperationCallSettings.Builder<MoveDiskProjectRequest, Operation, Operation>
moveDiskOperationSettings()1106         moveDiskOperationSettings() {
1107       return moveDiskOperationSettings;
1108     }
1109 
1110     /** Returns the builder for the settings used for calls to moveInstance. */
moveInstanceSettings()1111     public UnaryCallSettings.Builder<MoveInstanceProjectRequest, Operation> moveInstanceSettings() {
1112       return moveInstanceSettings;
1113     }
1114 
1115     /** Returns the builder for the settings used for calls to moveInstance. */
1116     @BetaApi(
1117         "The surface for use by generated code is not stable yet and may change in the future.")
1118     public OperationCallSettings.Builder<MoveInstanceProjectRequest, Operation, Operation>
moveInstanceOperationSettings()1119         moveInstanceOperationSettings() {
1120       return moveInstanceOperationSettings;
1121     }
1122 
1123     /** Returns the builder for the settings used for calls to setCommonInstanceMetadata. */
1124     public UnaryCallSettings.Builder<SetCommonInstanceMetadataProjectRequest, Operation>
setCommonInstanceMetadataSettings()1125         setCommonInstanceMetadataSettings() {
1126       return setCommonInstanceMetadataSettings;
1127     }
1128 
1129     /** Returns the builder for the settings used for calls to setCommonInstanceMetadata. */
1130     @BetaApi(
1131         "The surface for use by generated code is not stable yet and may change in the future.")
1132     public OperationCallSettings.Builder<
1133             SetCommonInstanceMetadataProjectRequest, Operation, Operation>
setCommonInstanceMetadataOperationSettings()1134         setCommonInstanceMetadataOperationSettings() {
1135       return setCommonInstanceMetadataOperationSettings;
1136     }
1137 
1138     /** Returns the builder for the settings used for calls to setDefaultNetworkTier. */
1139     public UnaryCallSettings.Builder<SetDefaultNetworkTierProjectRequest, Operation>
setDefaultNetworkTierSettings()1140         setDefaultNetworkTierSettings() {
1141       return setDefaultNetworkTierSettings;
1142     }
1143 
1144     /** Returns the builder for the settings used for calls to setDefaultNetworkTier. */
1145     @BetaApi(
1146         "The surface for use by generated code is not stable yet and may change in the future.")
1147     public OperationCallSettings.Builder<SetDefaultNetworkTierProjectRequest, Operation, Operation>
setDefaultNetworkTierOperationSettings()1148         setDefaultNetworkTierOperationSettings() {
1149       return setDefaultNetworkTierOperationSettings;
1150     }
1151 
1152     /** Returns the builder for the settings used for calls to setUsageExportBucket. */
1153     public UnaryCallSettings.Builder<SetUsageExportBucketProjectRequest, Operation>
setUsageExportBucketSettings()1154         setUsageExportBucketSettings() {
1155       return setUsageExportBucketSettings;
1156     }
1157 
1158     /** Returns the builder for the settings used for calls to setUsageExportBucket. */
1159     @BetaApi(
1160         "The surface for use by generated code is not stable yet and may change in the future.")
1161     public OperationCallSettings.Builder<SetUsageExportBucketProjectRequest, Operation, Operation>
setUsageExportBucketOperationSettings()1162         setUsageExportBucketOperationSettings() {
1163       return setUsageExportBucketOperationSettings;
1164     }
1165 
1166     @Override
build()1167     public ProjectsStubSettings build() throws IOException {
1168       return new ProjectsStubSettings(this);
1169     }
1170   }
1171 }
1172