• 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.orgpolicy.v2.stub;
18 
19 import static com.google.cloud.orgpolicy.v2.OrgPolicyClient.ListConstraintsPagedResponse;
20 import static com.google.cloud.orgpolicy.v2.OrgPolicyClient.ListPoliciesPagedResponse;
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.grpc.GaxGrpcProperties;
29 import com.google.api.gax.grpc.GrpcTransportChannel;
30 import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
31 import com.google.api.gax.httpjson.GaxHttpJsonProperties;
32 import com.google.api.gax.httpjson.HttpJsonTransportChannel;
33 import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
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.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.orgpolicy.v2.Constraint;
48 import com.google.cloud.orgpolicy.v2.CreatePolicyRequest;
49 import com.google.cloud.orgpolicy.v2.DeletePolicyRequest;
50 import com.google.cloud.orgpolicy.v2.GetEffectivePolicyRequest;
51 import com.google.cloud.orgpolicy.v2.GetPolicyRequest;
52 import com.google.cloud.orgpolicy.v2.ListConstraintsRequest;
53 import com.google.cloud.orgpolicy.v2.ListConstraintsResponse;
54 import com.google.cloud.orgpolicy.v2.ListPoliciesRequest;
55 import com.google.cloud.orgpolicy.v2.ListPoliciesResponse;
56 import com.google.cloud.orgpolicy.v2.Policy;
57 import com.google.cloud.orgpolicy.v2.UpdatePolicyRequest;
58 import com.google.common.collect.ImmutableList;
59 import com.google.common.collect.ImmutableMap;
60 import com.google.common.collect.ImmutableSet;
61 import com.google.common.collect.Lists;
62 import com.google.protobuf.Empty;
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 OrgPolicyStub}.
71  *
72  * <p>The default instance has everything set to sensible defaults:
73  *
74  * <ul>
75  *   <li>The default service address (orgpolicy.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 getPolicy 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  * OrgPolicyStubSettings.Builder orgPolicySettingsBuilder = OrgPolicyStubSettings.newBuilder();
92  * orgPolicySettingsBuilder
93  *     .getPolicySettings()
94  *     .setRetrySettings(
95  *         orgPolicySettingsBuilder
96  *             .getPolicySettings()
97  *             .getRetrySettings()
98  *             .toBuilder()
99  *             .setTotalTimeout(Duration.ofSeconds(30))
100  *             .build());
101  * OrgPolicyStubSettings orgPolicySettings = orgPolicySettingsBuilder.build();
102  * }</pre>
103  */
104 @Generated("by gapic-generator-java")
105 public class OrgPolicyStubSettings extends StubSettings<OrgPolicyStubSettings> {
106   /** The default scopes of the service. */
107   private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES =
108       ImmutableList.<String>builder().add("https://www.googleapis.com/auth/cloud-platform").build();
109 
110   private final PagedCallSettings<
111           ListConstraintsRequest, ListConstraintsResponse, ListConstraintsPagedResponse>
112       listConstraintsSettings;
113   private final PagedCallSettings<
114           ListPoliciesRequest, ListPoliciesResponse, ListPoliciesPagedResponse>
115       listPoliciesSettings;
116   private final UnaryCallSettings<GetPolicyRequest, Policy> getPolicySettings;
117   private final UnaryCallSettings<GetEffectivePolicyRequest, Policy> getEffectivePolicySettings;
118   private final UnaryCallSettings<CreatePolicyRequest, Policy> createPolicySettings;
119   private final UnaryCallSettings<UpdatePolicyRequest, Policy> updatePolicySettings;
120   private final UnaryCallSettings<DeletePolicyRequest, Empty> deletePolicySettings;
121 
122   private static final PagedListDescriptor<
123           ListConstraintsRequest, ListConstraintsResponse, Constraint>
124       LIST_CONSTRAINTS_PAGE_STR_DESC =
125           new PagedListDescriptor<ListConstraintsRequest, ListConstraintsResponse, Constraint>() {
126             @Override
127             public String emptyToken() {
128               return "";
129             }
130 
131             @Override
132             public ListConstraintsRequest injectToken(
133                 ListConstraintsRequest payload, String token) {
134               return ListConstraintsRequest.newBuilder(payload).setPageToken(token).build();
135             }
136 
137             @Override
138             public ListConstraintsRequest injectPageSize(
139                 ListConstraintsRequest payload, int pageSize) {
140               return ListConstraintsRequest.newBuilder(payload).setPageSize(pageSize).build();
141             }
142 
143             @Override
144             public Integer extractPageSize(ListConstraintsRequest payload) {
145               return payload.getPageSize();
146             }
147 
148             @Override
149             public String extractNextToken(ListConstraintsResponse payload) {
150               return payload.getNextPageToken();
151             }
152 
153             @Override
154             public Iterable<Constraint> extractResources(ListConstraintsResponse payload) {
155               return payload.getConstraintsList() == null
156                   ? ImmutableList.<Constraint>of()
157                   : payload.getConstraintsList();
158             }
159           };
160 
161   private static final PagedListDescriptor<ListPoliciesRequest, ListPoliciesResponse, Policy>
162       LIST_POLICIES_PAGE_STR_DESC =
163           new PagedListDescriptor<ListPoliciesRequest, ListPoliciesResponse, Policy>() {
164             @Override
165             public String emptyToken() {
166               return "";
167             }
168 
169             @Override
170             public ListPoliciesRequest injectToken(ListPoliciesRequest payload, String token) {
171               return ListPoliciesRequest.newBuilder(payload).setPageToken(token).build();
172             }
173 
174             @Override
175             public ListPoliciesRequest injectPageSize(ListPoliciesRequest payload, int pageSize) {
176               return ListPoliciesRequest.newBuilder(payload).setPageSize(pageSize).build();
177             }
178 
179             @Override
180             public Integer extractPageSize(ListPoliciesRequest payload) {
181               return payload.getPageSize();
182             }
183 
184             @Override
185             public String extractNextToken(ListPoliciesResponse payload) {
186               return payload.getNextPageToken();
187             }
188 
189             @Override
190             public Iterable<Policy> extractResources(ListPoliciesResponse payload) {
191               return payload.getPoliciesList() == null
192                   ? ImmutableList.<Policy>of()
193                   : payload.getPoliciesList();
194             }
195           };
196 
197   private static final PagedListResponseFactory<
198           ListConstraintsRequest, ListConstraintsResponse, ListConstraintsPagedResponse>
199       LIST_CONSTRAINTS_PAGE_STR_FACT =
200           new PagedListResponseFactory<
201               ListConstraintsRequest, ListConstraintsResponse, ListConstraintsPagedResponse>() {
202             @Override
203             public ApiFuture<ListConstraintsPagedResponse> getFuturePagedResponse(
204                 UnaryCallable<ListConstraintsRequest, ListConstraintsResponse> callable,
205                 ListConstraintsRequest request,
206                 ApiCallContext context,
207                 ApiFuture<ListConstraintsResponse> futureResponse) {
208               PageContext<ListConstraintsRequest, ListConstraintsResponse, Constraint> pageContext =
209                   PageContext.create(callable, LIST_CONSTRAINTS_PAGE_STR_DESC, request, context);
210               return ListConstraintsPagedResponse.createAsync(pageContext, futureResponse);
211             }
212           };
213 
214   private static final PagedListResponseFactory<
215           ListPoliciesRequest, ListPoliciesResponse, ListPoliciesPagedResponse>
216       LIST_POLICIES_PAGE_STR_FACT =
217           new PagedListResponseFactory<
218               ListPoliciesRequest, ListPoliciesResponse, ListPoliciesPagedResponse>() {
219             @Override
220             public ApiFuture<ListPoliciesPagedResponse> getFuturePagedResponse(
221                 UnaryCallable<ListPoliciesRequest, ListPoliciesResponse> callable,
222                 ListPoliciesRequest request,
223                 ApiCallContext context,
224                 ApiFuture<ListPoliciesResponse> futureResponse) {
225               PageContext<ListPoliciesRequest, ListPoliciesResponse, Policy> pageContext =
226                   PageContext.create(callable, LIST_POLICIES_PAGE_STR_DESC, request, context);
227               return ListPoliciesPagedResponse.createAsync(pageContext, futureResponse);
228             }
229           };
230 
231   /** Returns the object with the settings used for calls to listConstraints. */
232   public PagedCallSettings<
233           ListConstraintsRequest, ListConstraintsResponse, ListConstraintsPagedResponse>
listConstraintsSettings()234       listConstraintsSettings() {
235     return listConstraintsSettings;
236   }
237 
238   /** Returns the object with the settings used for calls to listPolicies. */
239   public PagedCallSettings<ListPoliciesRequest, ListPoliciesResponse, ListPoliciesPagedResponse>
listPoliciesSettings()240       listPoliciesSettings() {
241     return listPoliciesSettings;
242   }
243 
244   /** Returns the object with the settings used for calls to getPolicy. */
getPolicySettings()245   public UnaryCallSettings<GetPolicyRequest, Policy> getPolicySettings() {
246     return getPolicySettings;
247   }
248 
249   /** Returns the object with the settings used for calls to getEffectivePolicy. */
getEffectivePolicySettings()250   public UnaryCallSettings<GetEffectivePolicyRequest, Policy> getEffectivePolicySettings() {
251     return getEffectivePolicySettings;
252   }
253 
254   /** Returns the object with the settings used for calls to createPolicy. */
createPolicySettings()255   public UnaryCallSettings<CreatePolicyRequest, Policy> createPolicySettings() {
256     return createPolicySettings;
257   }
258 
259   /** Returns the object with the settings used for calls to updatePolicy. */
updatePolicySettings()260   public UnaryCallSettings<UpdatePolicyRequest, Policy> updatePolicySettings() {
261     return updatePolicySettings;
262   }
263 
264   /** Returns the object with the settings used for calls to deletePolicy. */
deletePolicySettings()265   public UnaryCallSettings<DeletePolicyRequest, Empty> deletePolicySettings() {
266     return deletePolicySettings;
267   }
268 
createStub()269   public OrgPolicyStub createStub() throws IOException {
270     if (getTransportChannelProvider()
271         .getTransportName()
272         .equals(GrpcTransportChannel.getGrpcTransportName())) {
273       return GrpcOrgPolicyStub.create(this);
274     }
275     if (getTransportChannelProvider()
276         .getTransportName()
277         .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
278       return HttpJsonOrgPolicyStub.create(this);
279     }
280     throw new UnsupportedOperationException(
281         String.format(
282             "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
283   }
284 
285   /** Returns a builder for the default ExecutorProvider for this service. */
defaultExecutorProviderBuilder()286   public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
287     return InstantiatingExecutorProvider.newBuilder();
288   }
289 
290   /** Returns the default service endpoint. */
getDefaultEndpoint()291   public static String getDefaultEndpoint() {
292     return "orgpolicy.googleapis.com:443";
293   }
294 
295   /** Returns the default mTLS service endpoint. */
getDefaultMtlsEndpoint()296   public static String getDefaultMtlsEndpoint() {
297     return "orgpolicy.mtls.googleapis.com:443";
298   }
299 
300   /** Returns the default service scopes. */
getDefaultServiceScopes()301   public static List<String> getDefaultServiceScopes() {
302     return DEFAULT_SERVICE_SCOPES;
303   }
304 
305   /** Returns a builder for the default credentials for this service. */
defaultCredentialsProviderBuilder()306   public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
307     return GoogleCredentialsProvider.newBuilder()
308         .setScopesToApply(DEFAULT_SERVICE_SCOPES)
309         .setUseJwtAccessWithScope(true);
310   }
311 
312   /** Returns a builder for the default gRPC ChannelProvider for this service. */
defaultGrpcTransportProviderBuilder()313   public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
314     return InstantiatingGrpcChannelProvider.newBuilder()
315         .setMaxInboundMessageSize(Integer.MAX_VALUE);
316   }
317 
318   /** Returns a builder for the default REST ChannelProvider for this service. */
319   @BetaApi
320   public static InstantiatingHttpJsonChannelProvider.Builder
defaultHttpJsonTransportProviderBuilder()321       defaultHttpJsonTransportProviderBuilder() {
322     return InstantiatingHttpJsonChannelProvider.newBuilder();
323   }
324 
defaultTransportChannelProvider()325   public static TransportChannelProvider defaultTransportChannelProvider() {
326     return defaultGrpcTransportProviderBuilder().build();
327   }
328 
329   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultGrpcApiClientHeaderProviderBuilder()330   public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
331     return ApiClientHeaderProvider.newBuilder()
332         .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(OrgPolicyStubSettings.class))
333         .setTransportToken(
334             GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
335   }
336 
337   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultHttpJsonApiClientHeaderProviderBuilder()338   public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
339     return ApiClientHeaderProvider.newBuilder()
340         .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(OrgPolicyStubSettings.class))
341         .setTransportToken(
342             GaxHttpJsonProperties.getHttpJsonTokenName(),
343             GaxHttpJsonProperties.getHttpJsonVersion());
344   }
345 
defaultApiClientHeaderProviderBuilder()346   public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
347     return OrgPolicyStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
348   }
349 
350   /** Returns a new gRPC builder for this class. */
newBuilder()351   public static Builder newBuilder() {
352     return Builder.createDefault();
353   }
354 
355   /** Returns a new REST builder for this class. */
newHttpJsonBuilder()356   public static Builder newHttpJsonBuilder() {
357     return Builder.createHttpJsonDefault();
358   }
359 
360   /** Returns a new builder for this class. */
newBuilder(ClientContext clientContext)361   public static Builder newBuilder(ClientContext clientContext) {
362     return new Builder(clientContext);
363   }
364 
365   /** Returns a builder containing all the values of this settings class. */
toBuilder()366   public Builder toBuilder() {
367     return new Builder(this);
368   }
369 
OrgPolicyStubSettings(Builder settingsBuilder)370   protected OrgPolicyStubSettings(Builder settingsBuilder) throws IOException {
371     super(settingsBuilder);
372 
373     listConstraintsSettings = settingsBuilder.listConstraintsSettings().build();
374     listPoliciesSettings = settingsBuilder.listPoliciesSettings().build();
375     getPolicySettings = settingsBuilder.getPolicySettings().build();
376     getEffectivePolicySettings = settingsBuilder.getEffectivePolicySettings().build();
377     createPolicySettings = settingsBuilder.createPolicySettings().build();
378     updatePolicySettings = settingsBuilder.updatePolicySettings().build();
379     deletePolicySettings = settingsBuilder.deletePolicySettings().build();
380   }
381 
382   /** Builder for OrgPolicyStubSettings. */
383   public static class Builder extends StubSettings.Builder<OrgPolicyStubSettings, Builder> {
384     private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;
385     private final PagedCallSettings.Builder<
386             ListConstraintsRequest, ListConstraintsResponse, ListConstraintsPagedResponse>
387         listConstraintsSettings;
388     private final PagedCallSettings.Builder<
389             ListPoliciesRequest, ListPoliciesResponse, ListPoliciesPagedResponse>
390         listPoliciesSettings;
391     private final UnaryCallSettings.Builder<GetPolicyRequest, Policy> getPolicySettings;
392     private final UnaryCallSettings.Builder<GetEffectivePolicyRequest, Policy>
393         getEffectivePolicySettings;
394     private final UnaryCallSettings.Builder<CreatePolicyRequest, Policy> createPolicySettings;
395     private final UnaryCallSettings.Builder<UpdatePolicyRequest, Policy> updatePolicySettings;
396     private final UnaryCallSettings.Builder<DeletePolicyRequest, Empty> deletePolicySettings;
397     private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>>
398         RETRYABLE_CODE_DEFINITIONS;
399 
400     static {
401       ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions =
402           ImmutableMap.builder();
403       definitions.put(
404           "retry_policy_0_codes",
405           ImmutableSet.copyOf(
406               Lists.<StatusCode.Code>newArrayList(
407                   StatusCode.Code.UNAVAILABLE, StatusCode.Code.DEADLINE_EXCEEDED)));
408       RETRYABLE_CODE_DEFINITIONS = definitions.build();
409     }
410 
411     private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS;
412 
413     static {
414       ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder();
415       RetrySettings settings = null;
416       settings =
417           RetrySettings.newBuilder()
418               .setInitialRetryDelay(Duration.ofMillis(1000L))
419               .setRetryDelayMultiplier(1.3)
420               .setMaxRetryDelay(Duration.ofMillis(10000L))
421               .setInitialRpcTimeout(Duration.ofMillis(60000L))
422               .setRpcTimeoutMultiplier(1.0)
423               .setMaxRpcTimeout(Duration.ofMillis(60000L))
424               .setTotalTimeout(Duration.ofMillis(60000L))
425               .build();
426       definitions.put("retry_policy_0_params", settings);
427       RETRY_PARAM_DEFINITIONS = definitions.build();
428     }
429 
Builder()430     protected Builder() {
431       this(((ClientContext) null));
432     }
433 
Builder(ClientContext clientContext)434     protected Builder(ClientContext clientContext) {
435       super(clientContext);
436 
437       listConstraintsSettings = PagedCallSettings.newBuilder(LIST_CONSTRAINTS_PAGE_STR_FACT);
438       listPoliciesSettings = PagedCallSettings.newBuilder(LIST_POLICIES_PAGE_STR_FACT);
439       getPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
440       getEffectivePolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
441       createPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
442       updatePolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
443       deletePolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
444 
445       unaryMethodSettingsBuilders =
446           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
447               listConstraintsSettings,
448               listPoliciesSettings,
449               getPolicySettings,
450               getEffectivePolicySettings,
451               createPolicySettings,
452               updatePolicySettings,
453               deletePolicySettings);
454       initDefaults(this);
455     }
456 
Builder(OrgPolicyStubSettings settings)457     protected Builder(OrgPolicyStubSettings settings) {
458       super(settings);
459 
460       listConstraintsSettings = settings.listConstraintsSettings.toBuilder();
461       listPoliciesSettings = settings.listPoliciesSettings.toBuilder();
462       getPolicySettings = settings.getPolicySettings.toBuilder();
463       getEffectivePolicySettings = settings.getEffectivePolicySettings.toBuilder();
464       createPolicySettings = settings.createPolicySettings.toBuilder();
465       updatePolicySettings = settings.updatePolicySettings.toBuilder();
466       deletePolicySettings = settings.deletePolicySettings.toBuilder();
467 
468       unaryMethodSettingsBuilders =
469           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
470               listConstraintsSettings,
471               listPoliciesSettings,
472               getPolicySettings,
473               getEffectivePolicySettings,
474               createPolicySettings,
475               updatePolicySettings,
476               deletePolicySettings);
477     }
478 
createDefault()479     private static Builder createDefault() {
480       Builder builder = new Builder(((ClientContext) null));
481 
482       builder.setTransportChannelProvider(defaultTransportChannelProvider());
483       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
484       builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
485       builder.setEndpoint(getDefaultEndpoint());
486       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
487       builder.setSwitchToMtlsEndpointAllowed(true);
488 
489       return initDefaults(builder);
490     }
491 
createHttpJsonDefault()492     private static Builder createHttpJsonDefault() {
493       Builder builder = new Builder(((ClientContext) null));
494 
495       builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
496       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
497       builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
498       builder.setEndpoint(getDefaultEndpoint());
499       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
500       builder.setSwitchToMtlsEndpointAllowed(true);
501 
502       return initDefaults(builder);
503     }
504 
initDefaults(Builder builder)505     private static Builder initDefaults(Builder builder) {
506       builder
507           .listConstraintsSettings()
508           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
509           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
510 
511       builder
512           .listPoliciesSettings()
513           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
514           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
515 
516       builder
517           .getPolicySettings()
518           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
519           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
520 
521       builder
522           .getEffectivePolicySettings()
523           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
524           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
525 
526       builder
527           .createPolicySettings()
528           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
529           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
530 
531       builder
532           .updatePolicySettings()
533           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
534           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
535 
536       builder
537           .deletePolicySettings()
538           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_0_codes"))
539           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_0_params"));
540 
541       return builder;
542     }
543 
544     /**
545      * Applies the given settings updater function to all of the unary API methods in this service.
546      *
547      * <p>Note: This method does not support applying settings to streaming methods.
548      */
applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)549     public Builder applyToAllUnaryMethods(
550         ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) {
551       super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
552       return this;
553     }
554 
unaryMethodSettingsBuilders()555     public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() {
556       return unaryMethodSettingsBuilders;
557     }
558 
559     /** Returns the builder for the settings used for calls to listConstraints. */
560     public PagedCallSettings.Builder<
561             ListConstraintsRequest, ListConstraintsResponse, ListConstraintsPagedResponse>
listConstraintsSettings()562         listConstraintsSettings() {
563       return listConstraintsSettings;
564     }
565 
566     /** Returns the builder for the settings used for calls to listPolicies. */
567     public PagedCallSettings.Builder<
568             ListPoliciesRequest, ListPoliciesResponse, ListPoliciesPagedResponse>
listPoliciesSettings()569         listPoliciesSettings() {
570       return listPoliciesSettings;
571     }
572 
573     /** Returns the builder for the settings used for calls to getPolicy. */
getPolicySettings()574     public UnaryCallSettings.Builder<GetPolicyRequest, Policy> getPolicySettings() {
575       return getPolicySettings;
576     }
577 
578     /** Returns the builder for the settings used for calls to getEffectivePolicy. */
579     public UnaryCallSettings.Builder<GetEffectivePolicyRequest, Policy>
getEffectivePolicySettings()580         getEffectivePolicySettings() {
581       return getEffectivePolicySettings;
582     }
583 
584     /** Returns the builder for the settings used for calls to createPolicy. */
createPolicySettings()585     public UnaryCallSettings.Builder<CreatePolicyRequest, Policy> createPolicySettings() {
586       return createPolicySettings;
587     }
588 
589     /** Returns the builder for the settings used for calls to updatePolicy. */
updatePolicySettings()590     public UnaryCallSettings.Builder<UpdatePolicyRequest, Policy> updatePolicySettings() {
591       return updatePolicySettings;
592     }
593 
594     /** Returns the builder for the settings used for calls to deletePolicy. */
deletePolicySettings()595     public UnaryCallSettings.Builder<DeletePolicyRequest, Empty> deletePolicySettings() {
596       return deletePolicySettings;
597     }
598 
599     @Override
build()600     public OrgPolicyStubSettings build() throws IOException {
601       return new OrgPolicyStubSettings(this);
602     }
603   }
604 }
605