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