• 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.kms.v1.stub;
18 
19 import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListCryptoKeyVersionsPagedResponse;
20 import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListCryptoKeysPagedResponse;
21 import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListImportJobsPagedResponse;
22 import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListKeyRingsPagedResponse;
23 import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListLocationsPagedResponse;
24 
25 import com.google.api.core.ApiFunction;
26 import com.google.api.core.ApiFuture;
27 import com.google.api.core.BetaApi;
28 import com.google.api.gax.core.GaxProperties;
29 import com.google.api.gax.core.GoogleCredentialsProvider;
30 import com.google.api.gax.core.InstantiatingExecutorProvider;
31 import com.google.api.gax.grpc.GaxGrpcProperties;
32 import com.google.api.gax.grpc.GrpcTransportChannel;
33 import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
34 import com.google.api.gax.httpjson.GaxHttpJsonProperties;
35 import com.google.api.gax.httpjson.HttpJsonTransportChannel;
36 import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
37 import com.google.api.gax.retrying.RetrySettings;
38 import com.google.api.gax.rpc.ApiCallContext;
39 import com.google.api.gax.rpc.ApiClientHeaderProvider;
40 import com.google.api.gax.rpc.ClientContext;
41 import com.google.api.gax.rpc.PageContext;
42 import com.google.api.gax.rpc.PagedCallSettings;
43 import com.google.api.gax.rpc.PagedListDescriptor;
44 import com.google.api.gax.rpc.PagedListResponseFactory;
45 import com.google.api.gax.rpc.StatusCode;
46 import com.google.api.gax.rpc.StubSettings;
47 import com.google.api.gax.rpc.TransportChannelProvider;
48 import com.google.api.gax.rpc.UnaryCallSettings;
49 import com.google.api.gax.rpc.UnaryCallable;
50 import com.google.cloud.kms.v1.AsymmetricDecryptRequest;
51 import com.google.cloud.kms.v1.AsymmetricDecryptResponse;
52 import com.google.cloud.kms.v1.AsymmetricSignRequest;
53 import com.google.cloud.kms.v1.AsymmetricSignResponse;
54 import com.google.cloud.kms.v1.CreateCryptoKeyRequest;
55 import com.google.cloud.kms.v1.CreateCryptoKeyVersionRequest;
56 import com.google.cloud.kms.v1.CreateImportJobRequest;
57 import com.google.cloud.kms.v1.CreateKeyRingRequest;
58 import com.google.cloud.kms.v1.CryptoKey;
59 import com.google.cloud.kms.v1.CryptoKeyVersion;
60 import com.google.cloud.kms.v1.DecryptRequest;
61 import com.google.cloud.kms.v1.DecryptResponse;
62 import com.google.cloud.kms.v1.DestroyCryptoKeyVersionRequest;
63 import com.google.cloud.kms.v1.EncryptRequest;
64 import com.google.cloud.kms.v1.EncryptResponse;
65 import com.google.cloud.kms.v1.GenerateRandomBytesRequest;
66 import com.google.cloud.kms.v1.GenerateRandomBytesResponse;
67 import com.google.cloud.kms.v1.GetCryptoKeyRequest;
68 import com.google.cloud.kms.v1.GetCryptoKeyVersionRequest;
69 import com.google.cloud.kms.v1.GetImportJobRequest;
70 import com.google.cloud.kms.v1.GetKeyRingRequest;
71 import com.google.cloud.kms.v1.GetPublicKeyRequest;
72 import com.google.cloud.kms.v1.ImportCryptoKeyVersionRequest;
73 import com.google.cloud.kms.v1.ImportJob;
74 import com.google.cloud.kms.v1.KeyRing;
75 import com.google.cloud.kms.v1.ListCryptoKeyVersionsRequest;
76 import com.google.cloud.kms.v1.ListCryptoKeyVersionsResponse;
77 import com.google.cloud.kms.v1.ListCryptoKeysRequest;
78 import com.google.cloud.kms.v1.ListCryptoKeysResponse;
79 import com.google.cloud.kms.v1.ListImportJobsRequest;
80 import com.google.cloud.kms.v1.ListImportJobsResponse;
81 import com.google.cloud.kms.v1.ListKeyRingsRequest;
82 import com.google.cloud.kms.v1.ListKeyRingsResponse;
83 import com.google.cloud.kms.v1.MacSignRequest;
84 import com.google.cloud.kms.v1.MacSignResponse;
85 import com.google.cloud.kms.v1.MacVerifyRequest;
86 import com.google.cloud.kms.v1.MacVerifyResponse;
87 import com.google.cloud.kms.v1.PublicKey;
88 import com.google.cloud.kms.v1.RestoreCryptoKeyVersionRequest;
89 import com.google.cloud.kms.v1.UpdateCryptoKeyPrimaryVersionRequest;
90 import com.google.cloud.kms.v1.UpdateCryptoKeyRequest;
91 import com.google.cloud.kms.v1.UpdateCryptoKeyVersionRequest;
92 import com.google.cloud.location.GetLocationRequest;
93 import com.google.cloud.location.ListLocationsRequest;
94 import com.google.cloud.location.ListLocationsResponse;
95 import com.google.cloud.location.Location;
96 import com.google.common.collect.ImmutableList;
97 import com.google.common.collect.ImmutableMap;
98 import com.google.common.collect.ImmutableSet;
99 import com.google.common.collect.Lists;
100 import com.google.iam.v1.GetIamPolicyRequest;
101 import com.google.iam.v1.Policy;
102 import com.google.iam.v1.SetIamPolicyRequest;
103 import com.google.iam.v1.TestIamPermissionsRequest;
104 import com.google.iam.v1.TestIamPermissionsResponse;
105 import java.io.IOException;
106 import java.util.List;
107 import javax.annotation.Generated;
108 import org.threeten.bp.Duration;
109 
110 // AUTO-GENERATED DOCUMENTATION AND CLASS.
111 /**
112  * Settings class to configure an instance of {@link KeyManagementServiceStub}.
113  *
114  * <p>The default instance has everything set to sensible defaults:
115  *
116  * <ul>
117  *   <li>The default service address (cloudkms.googleapis.com) and default port (443) are used.
118  *   <li>Credentials are acquired automatically through Application Default Credentials.
119  *   <li>Retries are configured for idempotent methods but not for non-idempotent methods.
120  * </ul>
121  *
122  * <p>The builder of this class is recursive, so contained classes are themselves builders. When
123  * build() is called, the tree of builders is called to create the complete settings object.
124  *
125  * <p>For example, to set the total timeout of getKeyRing to 30 seconds:
126  *
127  * <pre>{@code
128  * // This snippet has been automatically generated and should be regarded as a code template only.
129  * // It will require modifications to work:
130  * // - It may require correct/in-range values for request initialization.
131  * // - It may require specifying regional endpoints when creating the service client as shown in
132  * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
133  * KeyManagementServiceStubSettings.Builder keyManagementServiceSettingsBuilder =
134  *     KeyManagementServiceStubSettings.newBuilder();
135  * keyManagementServiceSettingsBuilder
136  *     .getKeyRingSettings()
137  *     .setRetrySettings(
138  *         keyManagementServiceSettingsBuilder
139  *             .getKeyRingSettings()
140  *             .getRetrySettings()
141  *             .toBuilder()
142  *             .setTotalTimeout(Duration.ofSeconds(30))
143  *             .build());
144  * KeyManagementServiceStubSettings keyManagementServiceSettings =
145  *     keyManagementServiceSettingsBuilder.build();
146  * }</pre>
147  */
148 @Generated("by gapic-generator-java")
149 public class KeyManagementServiceStubSettings
150     extends StubSettings<KeyManagementServiceStubSettings> {
151   /** The default scopes of the service. */
152   private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES =
153       ImmutableList.<String>builder()
154           .add("https://www.googleapis.com/auth/cloud-platform")
155           .add("https://www.googleapis.com/auth/cloudkms")
156           .build();
157 
158   private final PagedCallSettings<
159           ListKeyRingsRequest, ListKeyRingsResponse, ListKeyRingsPagedResponse>
160       listKeyRingsSettings;
161   private final PagedCallSettings<
162           ListCryptoKeysRequest, ListCryptoKeysResponse, ListCryptoKeysPagedResponse>
163       listCryptoKeysSettings;
164   private final PagedCallSettings<
165           ListCryptoKeyVersionsRequest,
166           ListCryptoKeyVersionsResponse,
167           ListCryptoKeyVersionsPagedResponse>
168       listCryptoKeyVersionsSettings;
169   private final PagedCallSettings<
170           ListImportJobsRequest, ListImportJobsResponse, ListImportJobsPagedResponse>
171       listImportJobsSettings;
172   private final UnaryCallSettings<GetKeyRingRequest, KeyRing> getKeyRingSettings;
173   private final UnaryCallSettings<GetCryptoKeyRequest, CryptoKey> getCryptoKeySettings;
174   private final UnaryCallSettings<GetCryptoKeyVersionRequest, CryptoKeyVersion>
175       getCryptoKeyVersionSettings;
176   private final UnaryCallSettings<GetPublicKeyRequest, PublicKey> getPublicKeySettings;
177   private final UnaryCallSettings<GetImportJobRequest, ImportJob> getImportJobSettings;
178   private final UnaryCallSettings<CreateKeyRingRequest, KeyRing> createKeyRingSettings;
179   private final UnaryCallSettings<CreateCryptoKeyRequest, CryptoKey> createCryptoKeySettings;
180   private final UnaryCallSettings<CreateCryptoKeyVersionRequest, CryptoKeyVersion>
181       createCryptoKeyVersionSettings;
182   private final UnaryCallSettings<ImportCryptoKeyVersionRequest, CryptoKeyVersion>
183       importCryptoKeyVersionSettings;
184   private final UnaryCallSettings<CreateImportJobRequest, ImportJob> createImportJobSettings;
185   private final UnaryCallSettings<UpdateCryptoKeyRequest, CryptoKey> updateCryptoKeySettings;
186   private final UnaryCallSettings<UpdateCryptoKeyVersionRequest, CryptoKeyVersion>
187       updateCryptoKeyVersionSettings;
188   private final UnaryCallSettings<UpdateCryptoKeyPrimaryVersionRequest, CryptoKey>
189       updateCryptoKeyPrimaryVersionSettings;
190   private final UnaryCallSettings<DestroyCryptoKeyVersionRequest, CryptoKeyVersion>
191       destroyCryptoKeyVersionSettings;
192   private final UnaryCallSettings<RestoreCryptoKeyVersionRequest, CryptoKeyVersion>
193       restoreCryptoKeyVersionSettings;
194   private final UnaryCallSettings<EncryptRequest, EncryptResponse> encryptSettings;
195   private final UnaryCallSettings<DecryptRequest, DecryptResponse> decryptSettings;
196   private final UnaryCallSettings<AsymmetricSignRequest, AsymmetricSignResponse>
197       asymmetricSignSettings;
198   private final UnaryCallSettings<AsymmetricDecryptRequest, AsymmetricDecryptResponse>
199       asymmetricDecryptSettings;
200   private final UnaryCallSettings<MacSignRequest, MacSignResponse> macSignSettings;
201   private final UnaryCallSettings<MacVerifyRequest, MacVerifyResponse> macVerifySettings;
202   private final UnaryCallSettings<GenerateRandomBytesRequest, GenerateRandomBytesResponse>
203       generateRandomBytesSettings;
204   private final PagedCallSettings<
205           ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
206       listLocationsSettings;
207   private final UnaryCallSettings<GetLocationRequest, Location> getLocationSettings;
208   private final UnaryCallSettings<SetIamPolicyRequest, Policy> setIamPolicySettings;
209   private final UnaryCallSettings<GetIamPolicyRequest, Policy> getIamPolicySettings;
210   private final UnaryCallSettings<TestIamPermissionsRequest, TestIamPermissionsResponse>
211       testIamPermissionsSettings;
212 
213   private static final PagedListDescriptor<ListKeyRingsRequest, ListKeyRingsResponse, KeyRing>
214       LIST_KEY_RINGS_PAGE_STR_DESC =
215           new PagedListDescriptor<ListKeyRingsRequest, ListKeyRingsResponse, KeyRing>() {
216             @Override
217             public String emptyToken() {
218               return "";
219             }
220 
221             @Override
222             public ListKeyRingsRequest injectToken(ListKeyRingsRequest payload, String token) {
223               return ListKeyRingsRequest.newBuilder(payload).setPageToken(token).build();
224             }
225 
226             @Override
227             public ListKeyRingsRequest injectPageSize(ListKeyRingsRequest payload, int pageSize) {
228               return ListKeyRingsRequest.newBuilder(payload).setPageSize(pageSize).build();
229             }
230 
231             @Override
232             public Integer extractPageSize(ListKeyRingsRequest payload) {
233               return payload.getPageSize();
234             }
235 
236             @Override
237             public String extractNextToken(ListKeyRingsResponse payload) {
238               return payload.getNextPageToken();
239             }
240 
241             @Override
242             public Iterable<KeyRing> extractResources(ListKeyRingsResponse payload) {
243               return payload.getKeyRingsList() == null
244                   ? ImmutableList.<KeyRing>of()
245                   : payload.getKeyRingsList();
246             }
247           };
248 
249   private static final PagedListDescriptor<ListCryptoKeysRequest, ListCryptoKeysResponse, CryptoKey>
250       LIST_CRYPTO_KEYS_PAGE_STR_DESC =
251           new PagedListDescriptor<ListCryptoKeysRequest, ListCryptoKeysResponse, CryptoKey>() {
252             @Override
253             public String emptyToken() {
254               return "";
255             }
256 
257             @Override
258             public ListCryptoKeysRequest injectToken(ListCryptoKeysRequest payload, String token) {
259               return ListCryptoKeysRequest.newBuilder(payload).setPageToken(token).build();
260             }
261 
262             @Override
263             public ListCryptoKeysRequest injectPageSize(
264                 ListCryptoKeysRequest payload, int pageSize) {
265               return ListCryptoKeysRequest.newBuilder(payload).setPageSize(pageSize).build();
266             }
267 
268             @Override
269             public Integer extractPageSize(ListCryptoKeysRequest payload) {
270               return payload.getPageSize();
271             }
272 
273             @Override
274             public String extractNextToken(ListCryptoKeysResponse payload) {
275               return payload.getNextPageToken();
276             }
277 
278             @Override
279             public Iterable<CryptoKey> extractResources(ListCryptoKeysResponse payload) {
280               return payload.getCryptoKeysList() == null
281                   ? ImmutableList.<CryptoKey>of()
282                   : payload.getCryptoKeysList();
283             }
284           };
285 
286   private static final PagedListDescriptor<
287           ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsResponse, CryptoKeyVersion>
288       LIST_CRYPTO_KEY_VERSIONS_PAGE_STR_DESC =
289           new PagedListDescriptor<
290               ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsResponse, CryptoKeyVersion>() {
291             @Override
292             public String emptyToken() {
293               return "";
294             }
295 
296             @Override
297             public ListCryptoKeyVersionsRequest injectToken(
298                 ListCryptoKeyVersionsRequest payload, String token) {
299               return ListCryptoKeyVersionsRequest.newBuilder(payload).setPageToken(token).build();
300             }
301 
302             @Override
303             public ListCryptoKeyVersionsRequest injectPageSize(
304                 ListCryptoKeyVersionsRequest payload, int pageSize) {
305               return ListCryptoKeyVersionsRequest.newBuilder(payload).setPageSize(pageSize).build();
306             }
307 
308             @Override
309             public Integer extractPageSize(ListCryptoKeyVersionsRequest payload) {
310               return payload.getPageSize();
311             }
312 
313             @Override
314             public String extractNextToken(ListCryptoKeyVersionsResponse payload) {
315               return payload.getNextPageToken();
316             }
317 
318             @Override
319             public Iterable<CryptoKeyVersion> extractResources(
320                 ListCryptoKeyVersionsResponse payload) {
321               return payload.getCryptoKeyVersionsList() == null
322                   ? ImmutableList.<CryptoKeyVersion>of()
323                   : payload.getCryptoKeyVersionsList();
324             }
325           };
326 
327   private static final PagedListDescriptor<ListImportJobsRequest, ListImportJobsResponse, ImportJob>
328       LIST_IMPORT_JOBS_PAGE_STR_DESC =
329           new PagedListDescriptor<ListImportJobsRequest, ListImportJobsResponse, ImportJob>() {
330             @Override
331             public String emptyToken() {
332               return "";
333             }
334 
335             @Override
336             public ListImportJobsRequest injectToken(ListImportJobsRequest payload, String token) {
337               return ListImportJobsRequest.newBuilder(payload).setPageToken(token).build();
338             }
339 
340             @Override
341             public ListImportJobsRequest injectPageSize(
342                 ListImportJobsRequest payload, int pageSize) {
343               return ListImportJobsRequest.newBuilder(payload).setPageSize(pageSize).build();
344             }
345 
346             @Override
347             public Integer extractPageSize(ListImportJobsRequest payload) {
348               return payload.getPageSize();
349             }
350 
351             @Override
352             public String extractNextToken(ListImportJobsResponse payload) {
353               return payload.getNextPageToken();
354             }
355 
356             @Override
357             public Iterable<ImportJob> extractResources(ListImportJobsResponse payload) {
358               return payload.getImportJobsList() == null
359                   ? ImmutableList.<ImportJob>of()
360                   : payload.getImportJobsList();
361             }
362           };
363 
364   private static final PagedListDescriptor<ListLocationsRequest, ListLocationsResponse, Location>
365       LIST_LOCATIONS_PAGE_STR_DESC =
366           new PagedListDescriptor<ListLocationsRequest, ListLocationsResponse, Location>() {
367             @Override
368             public String emptyToken() {
369               return "";
370             }
371 
372             @Override
373             public ListLocationsRequest injectToken(ListLocationsRequest payload, String token) {
374               return ListLocationsRequest.newBuilder(payload).setPageToken(token).build();
375             }
376 
377             @Override
378             public ListLocationsRequest injectPageSize(ListLocationsRequest payload, int pageSize) {
379               return ListLocationsRequest.newBuilder(payload).setPageSize(pageSize).build();
380             }
381 
382             @Override
383             public Integer extractPageSize(ListLocationsRequest payload) {
384               return payload.getPageSize();
385             }
386 
387             @Override
388             public String extractNextToken(ListLocationsResponse payload) {
389               return payload.getNextPageToken();
390             }
391 
392             @Override
393             public Iterable<Location> extractResources(ListLocationsResponse payload) {
394               return payload.getLocationsList() == null
395                   ? ImmutableList.<Location>of()
396                   : payload.getLocationsList();
397             }
398           };
399 
400   private static final PagedListResponseFactory<
401           ListKeyRingsRequest, ListKeyRingsResponse, ListKeyRingsPagedResponse>
402       LIST_KEY_RINGS_PAGE_STR_FACT =
403           new PagedListResponseFactory<
404               ListKeyRingsRequest, ListKeyRingsResponse, ListKeyRingsPagedResponse>() {
405             @Override
406             public ApiFuture<ListKeyRingsPagedResponse> getFuturePagedResponse(
407                 UnaryCallable<ListKeyRingsRequest, ListKeyRingsResponse> callable,
408                 ListKeyRingsRequest request,
409                 ApiCallContext context,
410                 ApiFuture<ListKeyRingsResponse> futureResponse) {
411               PageContext<ListKeyRingsRequest, ListKeyRingsResponse, KeyRing> pageContext =
412                   PageContext.create(callable, LIST_KEY_RINGS_PAGE_STR_DESC, request, context);
413               return ListKeyRingsPagedResponse.createAsync(pageContext, futureResponse);
414             }
415           };
416 
417   private static final PagedListResponseFactory<
418           ListCryptoKeysRequest, ListCryptoKeysResponse, ListCryptoKeysPagedResponse>
419       LIST_CRYPTO_KEYS_PAGE_STR_FACT =
420           new PagedListResponseFactory<
421               ListCryptoKeysRequest, ListCryptoKeysResponse, ListCryptoKeysPagedResponse>() {
422             @Override
423             public ApiFuture<ListCryptoKeysPagedResponse> getFuturePagedResponse(
424                 UnaryCallable<ListCryptoKeysRequest, ListCryptoKeysResponse> callable,
425                 ListCryptoKeysRequest request,
426                 ApiCallContext context,
427                 ApiFuture<ListCryptoKeysResponse> futureResponse) {
428               PageContext<ListCryptoKeysRequest, ListCryptoKeysResponse, CryptoKey> pageContext =
429                   PageContext.create(callable, LIST_CRYPTO_KEYS_PAGE_STR_DESC, request, context);
430               return ListCryptoKeysPagedResponse.createAsync(pageContext, futureResponse);
431             }
432           };
433 
434   private static final PagedListResponseFactory<
435           ListCryptoKeyVersionsRequest,
436           ListCryptoKeyVersionsResponse,
437           ListCryptoKeyVersionsPagedResponse>
438       LIST_CRYPTO_KEY_VERSIONS_PAGE_STR_FACT =
439           new PagedListResponseFactory<
440               ListCryptoKeyVersionsRequest,
441               ListCryptoKeyVersionsResponse,
442               ListCryptoKeyVersionsPagedResponse>() {
443             @Override
444             public ApiFuture<ListCryptoKeyVersionsPagedResponse> getFuturePagedResponse(
445                 UnaryCallable<ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsResponse> callable,
446                 ListCryptoKeyVersionsRequest request,
447                 ApiCallContext context,
448                 ApiFuture<ListCryptoKeyVersionsResponse> futureResponse) {
449               PageContext<
450                       ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsResponse, CryptoKeyVersion>
451                   pageContext =
452                       PageContext.create(
453                           callable, LIST_CRYPTO_KEY_VERSIONS_PAGE_STR_DESC, request, context);
454               return ListCryptoKeyVersionsPagedResponse.createAsync(pageContext, futureResponse);
455             }
456           };
457 
458   private static final PagedListResponseFactory<
459           ListImportJobsRequest, ListImportJobsResponse, ListImportJobsPagedResponse>
460       LIST_IMPORT_JOBS_PAGE_STR_FACT =
461           new PagedListResponseFactory<
462               ListImportJobsRequest, ListImportJobsResponse, ListImportJobsPagedResponse>() {
463             @Override
464             public ApiFuture<ListImportJobsPagedResponse> getFuturePagedResponse(
465                 UnaryCallable<ListImportJobsRequest, ListImportJobsResponse> callable,
466                 ListImportJobsRequest request,
467                 ApiCallContext context,
468                 ApiFuture<ListImportJobsResponse> futureResponse) {
469               PageContext<ListImportJobsRequest, ListImportJobsResponse, ImportJob> pageContext =
470                   PageContext.create(callable, LIST_IMPORT_JOBS_PAGE_STR_DESC, request, context);
471               return ListImportJobsPagedResponse.createAsync(pageContext, futureResponse);
472             }
473           };
474 
475   private static final PagedListResponseFactory<
476           ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
477       LIST_LOCATIONS_PAGE_STR_FACT =
478           new PagedListResponseFactory<
479               ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>() {
480             @Override
481             public ApiFuture<ListLocationsPagedResponse> getFuturePagedResponse(
482                 UnaryCallable<ListLocationsRequest, ListLocationsResponse> callable,
483                 ListLocationsRequest request,
484                 ApiCallContext context,
485                 ApiFuture<ListLocationsResponse> futureResponse) {
486               PageContext<ListLocationsRequest, ListLocationsResponse, Location> pageContext =
487                   PageContext.create(callable, LIST_LOCATIONS_PAGE_STR_DESC, request, context);
488               return ListLocationsPagedResponse.createAsync(pageContext, futureResponse);
489             }
490           };
491 
492   /** Returns the object with the settings used for calls to listKeyRings. */
493   public PagedCallSettings<ListKeyRingsRequest, ListKeyRingsResponse, ListKeyRingsPagedResponse>
listKeyRingsSettings()494       listKeyRingsSettings() {
495     return listKeyRingsSettings;
496   }
497 
498   /** Returns the object with the settings used for calls to listCryptoKeys. */
499   public PagedCallSettings<
500           ListCryptoKeysRequest, ListCryptoKeysResponse, ListCryptoKeysPagedResponse>
listCryptoKeysSettings()501       listCryptoKeysSettings() {
502     return listCryptoKeysSettings;
503   }
504 
505   /** Returns the object with the settings used for calls to listCryptoKeyVersions. */
506   public PagedCallSettings<
507           ListCryptoKeyVersionsRequest,
508           ListCryptoKeyVersionsResponse,
509           ListCryptoKeyVersionsPagedResponse>
listCryptoKeyVersionsSettings()510       listCryptoKeyVersionsSettings() {
511     return listCryptoKeyVersionsSettings;
512   }
513 
514   /** Returns the object with the settings used for calls to listImportJobs. */
515   public PagedCallSettings<
516           ListImportJobsRequest, ListImportJobsResponse, ListImportJobsPagedResponse>
listImportJobsSettings()517       listImportJobsSettings() {
518     return listImportJobsSettings;
519   }
520 
521   /** Returns the object with the settings used for calls to getKeyRing. */
getKeyRingSettings()522   public UnaryCallSettings<GetKeyRingRequest, KeyRing> getKeyRingSettings() {
523     return getKeyRingSettings;
524   }
525 
526   /** Returns the object with the settings used for calls to getCryptoKey. */
getCryptoKeySettings()527   public UnaryCallSettings<GetCryptoKeyRequest, CryptoKey> getCryptoKeySettings() {
528     return getCryptoKeySettings;
529   }
530 
531   /** Returns the object with the settings used for calls to getCryptoKeyVersion. */
532   public UnaryCallSettings<GetCryptoKeyVersionRequest, CryptoKeyVersion>
getCryptoKeyVersionSettings()533       getCryptoKeyVersionSettings() {
534     return getCryptoKeyVersionSettings;
535   }
536 
537   /** Returns the object with the settings used for calls to getPublicKey. */
getPublicKeySettings()538   public UnaryCallSettings<GetPublicKeyRequest, PublicKey> getPublicKeySettings() {
539     return getPublicKeySettings;
540   }
541 
542   /** Returns the object with the settings used for calls to getImportJob. */
getImportJobSettings()543   public UnaryCallSettings<GetImportJobRequest, ImportJob> getImportJobSettings() {
544     return getImportJobSettings;
545   }
546 
547   /** Returns the object with the settings used for calls to createKeyRing. */
createKeyRingSettings()548   public UnaryCallSettings<CreateKeyRingRequest, KeyRing> createKeyRingSettings() {
549     return createKeyRingSettings;
550   }
551 
552   /** Returns the object with the settings used for calls to createCryptoKey. */
createCryptoKeySettings()553   public UnaryCallSettings<CreateCryptoKeyRequest, CryptoKey> createCryptoKeySettings() {
554     return createCryptoKeySettings;
555   }
556 
557   /** Returns the object with the settings used for calls to createCryptoKeyVersion. */
558   public UnaryCallSettings<CreateCryptoKeyVersionRequest, CryptoKeyVersion>
createCryptoKeyVersionSettings()559       createCryptoKeyVersionSettings() {
560     return createCryptoKeyVersionSettings;
561   }
562 
563   /** Returns the object with the settings used for calls to importCryptoKeyVersion. */
564   public UnaryCallSettings<ImportCryptoKeyVersionRequest, CryptoKeyVersion>
importCryptoKeyVersionSettings()565       importCryptoKeyVersionSettings() {
566     return importCryptoKeyVersionSettings;
567   }
568 
569   /** Returns the object with the settings used for calls to createImportJob. */
createImportJobSettings()570   public UnaryCallSettings<CreateImportJobRequest, ImportJob> createImportJobSettings() {
571     return createImportJobSettings;
572   }
573 
574   /** Returns the object with the settings used for calls to updateCryptoKey. */
updateCryptoKeySettings()575   public UnaryCallSettings<UpdateCryptoKeyRequest, CryptoKey> updateCryptoKeySettings() {
576     return updateCryptoKeySettings;
577   }
578 
579   /** Returns the object with the settings used for calls to updateCryptoKeyVersion. */
580   public UnaryCallSettings<UpdateCryptoKeyVersionRequest, CryptoKeyVersion>
updateCryptoKeyVersionSettings()581       updateCryptoKeyVersionSettings() {
582     return updateCryptoKeyVersionSettings;
583   }
584 
585   /** Returns the object with the settings used for calls to updateCryptoKeyPrimaryVersion. */
586   public UnaryCallSettings<UpdateCryptoKeyPrimaryVersionRequest, CryptoKey>
updateCryptoKeyPrimaryVersionSettings()587       updateCryptoKeyPrimaryVersionSettings() {
588     return updateCryptoKeyPrimaryVersionSettings;
589   }
590 
591   /** Returns the object with the settings used for calls to destroyCryptoKeyVersion. */
592   public UnaryCallSettings<DestroyCryptoKeyVersionRequest, CryptoKeyVersion>
destroyCryptoKeyVersionSettings()593       destroyCryptoKeyVersionSettings() {
594     return destroyCryptoKeyVersionSettings;
595   }
596 
597   /** Returns the object with the settings used for calls to restoreCryptoKeyVersion. */
598   public UnaryCallSettings<RestoreCryptoKeyVersionRequest, CryptoKeyVersion>
restoreCryptoKeyVersionSettings()599       restoreCryptoKeyVersionSettings() {
600     return restoreCryptoKeyVersionSettings;
601   }
602 
603   /** Returns the object with the settings used for calls to encrypt. */
encryptSettings()604   public UnaryCallSettings<EncryptRequest, EncryptResponse> encryptSettings() {
605     return encryptSettings;
606   }
607 
608   /** Returns the object with the settings used for calls to decrypt. */
decryptSettings()609   public UnaryCallSettings<DecryptRequest, DecryptResponse> decryptSettings() {
610     return decryptSettings;
611   }
612 
613   /** Returns the object with the settings used for calls to asymmetricSign. */
asymmetricSignSettings()614   public UnaryCallSettings<AsymmetricSignRequest, AsymmetricSignResponse> asymmetricSignSettings() {
615     return asymmetricSignSettings;
616   }
617 
618   /** Returns the object with the settings used for calls to asymmetricDecrypt. */
619   public UnaryCallSettings<AsymmetricDecryptRequest, AsymmetricDecryptResponse>
asymmetricDecryptSettings()620       asymmetricDecryptSettings() {
621     return asymmetricDecryptSettings;
622   }
623 
624   /** Returns the object with the settings used for calls to macSign. */
macSignSettings()625   public UnaryCallSettings<MacSignRequest, MacSignResponse> macSignSettings() {
626     return macSignSettings;
627   }
628 
629   /** Returns the object with the settings used for calls to macVerify. */
macVerifySettings()630   public UnaryCallSettings<MacVerifyRequest, MacVerifyResponse> macVerifySettings() {
631     return macVerifySettings;
632   }
633 
634   /** Returns the object with the settings used for calls to generateRandomBytes. */
635   public UnaryCallSettings<GenerateRandomBytesRequest, GenerateRandomBytesResponse>
generateRandomBytesSettings()636       generateRandomBytesSettings() {
637     return generateRandomBytesSettings;
638   }
639 
640   /** Returns the object with the settings used for calls to listLocations. */
641   public PagedCallSettings<ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
listLocationsSettings()642       listLocationsSettings() {
643     return listLocationsSettings;
644   }
645 
646   /** Returns the object with the settings used for calls to getLocation. */
getLocationSettings()647   public UnaryCallSettings<GetLocationRequest, Location> getLocationSettings() {
648     return getLocationSettings;
649   }
650 
651   /** Returns the object with the settings used for calls to setIamPolicy. */
setIamPolicySettings()652   public UnaryCallSettings<SetIamPolicyRequest, Policy> setIamPolicySettings() {
653     return setIamPolicySettings;
654   }
655 
656   /** Returns the object with the settings used for calls to getIamPolicy. */
getIamPolicySettings()657   public UnaryCallSettings<GetIamPolicyRequest, Policy> getIamPolicySettings() {
658     return getIamPolicySettings;
659   }
660 
661   /** Returns the object with the settings used for calls to testIamPermissions. */
662   public UnaryCallSettings<TestIamPermissionsRequest, TestIamPermissionsResponse>
testIamPermissionsSettings()663       testIamPermissionsSettings() {
664     return testIamPermissionsSettings;
665   }
666 
createStub()667   public KeyManagementServiceStub createStub() throws IOException {
668     if (getTransportChannelProvider()
669         .getTransportName()
670         .equals(GrpcTransportChannel.getGrpcTransportName())) {
671       return GrpcKeyManagementServiceStub.create(this);
672     }
673     if (getTransportChannelProvider()
674         .getTransportName()
675         .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
676       return HttpJsonKeyManagementServiceStub.create(this);
677     }
678     throw new UnsupportedOperationException(
679         String.format(
680             "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
681   }
682 
683   /** Returns a builder for the default ExecutorProvider for this service. */
defaultExecutorProviderBuilder()684   public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
685     return InstantiatingExecutorProvider.newBuilder();
686   }
687 
688   /** Returns the default service endpoint. */
getDefaultEndpoint()689   public static String getDefaultEndpoint() {
690     return "cloudkms.googleapis.com:443";
691   }
692 
693   /** Returns the default mTLS service endpoint. */
getDefaultMtlsEndpoint()694   public static String getDefaultMtlsEndpoint() {
695     return "cloudkms.mtls.googleapis.com:443";
696   }
697 
698   /** Returns the default service scopes. */
getDefaultServiceScopes()699   public static List<String> getDefaultServiceScopes() {
700     return DEFAULT_SERVICE_SCOPES;
701   }
702 
703   /** Returns a builder for the default credentials for this service. */
defaultCredentialsProviderBuilder()704   public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
705     return GoogleCredentialsProvider.newBuilder()
706         .setScopesToApply(DEFAULT_SERVICE_SCOPES)
707         .setUseJwtAccessWithScope(true);
708   }
709 
710   /** Returns a builder for the default gRPC ChannelProvider for this service. */
defaultGrpcTransportProviderBuilder()711   public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
712     return InstantiatingGrpcChannelProvider.newBuilder()
713         .setMaxInboundMessageSize(Integer.MAX_VALUE);
714   }
715 
716   /** Returns a builder for the default REST ChannelProvider for this service. */
717   @BetaApi
718   public static InstantiatingHttpJsonChannelProvider.Builder
defaultHttpJsonTransportProviderBuilder()719       defaultHttpJsonTransportProviderBuilder() {
720     return InstantiatingHttpJsonChannelProvider.newBuilder();
721   }
722 
defaultTransportChannelProvider()723   public static TransportChannelProvider defaultTransportChannelProvider() {
724     return defaultGrpcTransportProviderBuilder().build();
725   }
726 
727   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultGrpcApiClientHeaderProviderBuilder()728   public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
729     return ApiClientHeaderProvider.newBuilder()
730         .setGeneratedLibToken(
731             "gapic", GaxProperties.getLibraryVersion(KeyManagementServiceStubSettings.class))
732         .setTransportToken(
733             GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
734   }
735 
736   @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
defaultHttpJsonApiClientHeaderProviderBuilder()737   public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
738     return ApiClientHeaderProvider.newBuilder()
739         .setGeneratedLibToken(
740             "gapic", GaxProperties.getLibraryVersion(KeyManagementServiceStubSettings.class))
741         .setTransportToken(
742             GaxHttpJsonProperties.getHttpJsonTokenName(),
743             GaxHttpJsonProperties.getHttpJsonVersion());
744   }
745 
defaultApiClientHeaderProviderBuilder()746   public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
747     return KeyManagementServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
748   }
749 
750   /** Returns a new gRPC builder for this class. */
newBuilder()751   public static Builder newBuilder() {
752     return Builder.createDefault();
753   }
754 
755   /** Returns a new REST builder for this class. */
newHttpJsonBuilder()756   public static Builder newHttpJsonBuilder() {
757     return Builder.createHttpJsonDefault();
758   }
759 
760   /** Returns a new builder for this class. */
newBuilder(ClientContext clientContext)761   public static Builder newBuilder(ClientContext clientContext) {
762     return new Builder(clientContext);
763   }
764 
765   /** Returns a builder containing all the values of this settings class. */
toBuilder()766   public Builder toBuilder() {
767     return new Builder(this);
768   }
769 
KeyManagementServiceStubSettings(Builder settingsBuilder)770   protected KeyManagementServiceStubSettings(Builder settingsBuilder) throws IOException {
771     super(settingsBuilder);
772 
773     listKeyRingsSettings = settingsBuilder.listKeyRingsSettings().build();
774     listCryptoKeysSettings = settingsBuilder.listCryptoKeysSettings().build();
775     listCryptoKeyVersionsSettings = settingsBuilder.listCryptoKeyVersionsSettings().build();
776     listImportJobsSettings = settingsBuilder.listImportJobsSettings().build();
777     getKeyRingSettings = settingsBuilder.getKeyRingSettings().build();
778     getCryptoKeySettings = settingsBuilder.getCryptoKeySettings().build();
779     getCryptoKeyVersionSettings = settingsBuilder.getCryptoKeyVersionSettings().build();
780     getPublicKeySettings = settingsBuilder.getPublicKeySettings().build();
781     getImportJobSettings = settingsBuilder.getImportJobSettings().build();
782     createKeyRingSettings = settingsBuilder.createKeyRingSettings().build();
783     createCryptoKeySettings = settingsBuilder.createCryptoKeySettings().build();
784     createCryptoKeyVersionSettings = settingsBuilder.createCryptoKeyVersionSettings().build();
785     importCryptoKeyVersionSettings = settingsBuilder.importCryptoKeyVersionSettings().build();
786     createImportJobSettings = settingsBuilder.createImportJobSettings().build();
787     updateCryptoKeySettings = settingsBuilder.updateCryptoKeySettings().build();
788     updateCryptoKeyVersionSettings = settingsBuilder.updateCryptoKeyVersionSettings().build();
789     updateCryptoKeyPrimaryVersionSettings =
790         settingsBuilder.updateCryptoKeyPrimaryVersionSettings().build();
791     destroyCryptoKeyVersionSettings = settingsBuilder.destroyCryptoKeyVersionSettings().build();
792     restoreCryptoKeyVersionSettings = settingsBuilder.restoreCryptoKeyVersionSettings().build();
793     encryptSettings = settingsBuilder.encryptSettings().build();
794     decryptSettings = settingsBuilder.decryptSettings().build();
795     asymmetricSignSettings = settingsBuilder.asymmetricSignSettings().build();
796     asymmetricDecryptSettings = settingsBuilder.asymmetricDecryptSettings().build();
797     macSignSettings = settingsBuilder.macSignSettings().build();
798     macVerifySettings = settingsBuilder.macVerifySettings().build();
799     generateRandomBytesSettings = settingsBuilder.generateRandomBytesSettings().build();
800     listLocationsSettings = settingsBuilder.listLocationsSettings().build();
801     getLocationSettings = settingsBuilder.getLocationSettings().build();
802     setIamPolicySettings = settingsBuilder.setIamPolicySettings().build();
803     getIamPolicySettings = settingsBuilder.getIamPolicySettings().build();
804     testIamPermissionsSettings = settingsBuilder.testIamPermissionsSettings().build();
805   }
806 
807   /** Builder for KeyManagementServiceStubSettings. */
808   public static class Builder
809       extends StubSettings.Builder<KeyManagementServiceStubSettings, Builder> {
810     private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;
811     private final PagedCallSettings.Builder<
812             ListKeyRingsRequest, ListKeyRingsResponse, ListKeyRingsPagedResponse>
813         listKeyRingsSettings;
814     private final PagedCallSettings.Builder<
815             ListCryptoKeysRequest, ListCryptoKeysResponse, ListCryptoKeysPagedResponse>
816         listCryptoKeysSettings;
817     private final PagedCallSettings.Builder<
818             ListCryptoKeyVersionsRequest,
819             ListCryptoKeyVersionsResponse,
820             ListCryptoKeyVersionsPagedResponse>
821         listCryptoKeyVersionsSettings;
822     private final PagedCallSettings.Builder<
823             ListImportJobsRequest, ListImportJobsResponse, ListImportJobsPagedResponse>
824         listImportJobsSettings;
825     private final UnaryCallSettings.Builder<GetKeyRingRequest, KeyRing> getKeyRingSettings;
826     private final UnaryCallSettings.Builder<GetCryptoKeyRequest, CryptoKey> getCryptoKeySettings;
827     private final UnaryCallSettings.Builder<GetCryptoKeyVersionRequest, CryptoKeyVersion>
828         getCryptoKeyVersionSettings;
829     private final UnaryCallSettings.Builder<GetPublicKeyRequest, PublicKey> getPublicKeySettings;
830     private final UnaryCallSettings.Builder<GetImportJobRequest, ImportJob> getImportJobSettings;
831     private final UnaryCallSettings.Builder<CreateKeyRingRequest, KeyRing> createKeyRingSettings;
832     private final UnaryCallSettings.Builder<CreateCryptoKeyRequest, CryptoKey>
833         createCryptoKeySettings;
834     private final UnaryCallSettings.Builder<CreateCryptoKeyVersionRequest, CryptoKeyVersion>
835         createCryptoKeyVersionSettings;
836     private final UnaryCallSettings.Builder<ImportCryptoKeyVersionRequest, CryptoKeyVersion>
837         importCryptoKeyVersionSettings;
838     private final UnaryCallSettings.Builder<CreateImportJobRequest, ImportJob>
839         createImportJobSettings;
840     private final UnaryCallSettings.Builder<UpdateCryptoKeyRequest, CryptoKey>
841         updateCryptoKeySettings;
842     private final UnaryCallSettings.Builder<UpdateCryptoKeyVersionRequest, CryptoKeyVersion>
843         updateCryptoKeyVersionSettings;
844     private final UnaryCallSettings.Builder<UpdateCryptoKeyPrimaryVersionRequest, CryptoKey>
845         updateCryptoKeyPrimaryVersionSettings;
846     private final UnaryCallSettings.Builder<DestroyCryptoKeyVersionRequest, CryptoKeyVersion>
847         destroyCryptoKeyVersionSettings;
848     private final UnaryCallSettings.Builder<RestoreCryptoKeyVersionRequest, CryptoKeyVersion>
849         restoreCryptoKeyVersionSettings;
850     private final UnaryCallSettings.Builder<EncryptRequest, EncryptResponse> encryptSettings;
851     private final UnaryCallSettings.Builder<DecryptRequest, DecryptResponse> decryptSettings;
852     private final UnaryCallSettings.Builder<AsymmetricSignRequest, AsymmetricSignResponse>
853         asymmetricSignSettings;
854     private final UnaryCallSettings.Builder<AsymmetricDecryptRequest, AsymmetricDecryptResponse>
855         asymmetricDecryptSettings;
856     private final UnaryCallSettings.Builder<MacSignRequest, MacSignResponse> macSignSettings;
857     private final UnaryCallSettings.Builder<MacVerifyRequest, MacVerifyResponse> macVerifySettings;
858     private final UnaryCallSettings.Builder<GenerateRandomBytesRequest, GenerateRandomBytesResponse>
859         generateRandomBytesSettings;
860     private final PagedCallSettings.Builder<
861             ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
862         listLocationsSettings;
863     private final UnaryCallSettings.Builder<GetLocationRequest, Location> getLocationSettings;
864     private final UnaryCallSettings.Builder<SetIamPolicyRequest, Policy> setIamPolicySettings;
865     private final UnaryCallSettings.Builder<GetIamPolicyRequest, Policy> getIamPolicySettings;
866     private final UnaryCallSettings.Builder<TestIamPermissionsRequest, TestIamPermissionsResponse>
867         testIamPermissionsSettings;
868     private static final ImmutableMap<String, ImmutableSet<StatusCode.Code>>
869         RETRYABLE_CODE_DEFINITIONS;
870 
871     static {
872       ImmutableMap.Builder<String, ImmutableSet<StatusCode.Code>> definitions =
873           ImmutableMap.builder();
874       definitions.put(
875           "retry_policy_1_codes",
876           ImmutableSet.copyOf(
877               Lists.<StatusCode.Code>newArrayList(
878                   StatusCode.Code.UNAVAILABLE, StatusCode.Code.DEADLINE_EXCEEDED)));
879       definitions.put(
880           "no_retry_0_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList()));
881       definitions.put("no_retry_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList()));
882       RETRYABLE_CODE_DEFINITIONS = definitions.build();
883     }
884 
885     private static final ImmutableMap<String, RetrySettings> RETRY_PARAM_DEFINITIONS;
886 
887     static {
888       ImmutableMap.Builder<String, RetrySettings> definitions = ImmutableMap.builder();
889       RetrySettings settings = null;
890       settings =
891           RetrySettings.newBuilder()
892               .setInitialRetryDelay(Duration.ofMillis(100L))
893               .setRetryDelayMultiplier(1.3)
894               .setMaxRetryDelay(Duration.ofMillis(60000L))
895               .setInitialRpcTimeout(Duration.ofMillis(60000L))
896               .setRpcTimeoutMultiplier(1.0)
897               .setMaxRpcTimeout(Duration.ofMillis(60000L))
898               .setTotalTimeout(Duration.ofMillis(60000L))
899               .build();
900       definitions.put("retry_policy_1_params", settings);
901       settings =
902           RetrySettings.newBuilder()
903               .setInitialRpcTimeout(Duration.ofMillis(60000L))
904               .setRpcTimeoutMultiplier(1.0)
905               .setMaxRpcTimeout(Duration.ofMillis(60000L))
906               .setTotalTimeout(Duration.ofMillis(60000L))
907               .build();
908       definitions.put("no_retry_0_params", settings);
909       settings = RetrySettings.newBuilder().setRpcTimeoutMultiplier(1.0).build();
910       definitions.put("no_retry_params", settings);
911       RETRY_PARAM_DEFINITIONS = definitions.build();
912     }
913 
Builder()914     protected Builder() {
915       this(((ClientContext) null));
916     }
917 
Builder(ClientContext clientContext)918     protected Builder(ClientContext clientContext) {
919       super(clientContext);
920 
921       listKeyRingsSettings = PagedCallSettings.newBuilder(LIST_KEY_RINGS_PAGE_STR_FACT);
922       listCryptoKeysSettings = PagedCallSettings.newBuilder(LIST_CRYPTO_KEYS_PAGE_STR_FACT);
923       listCryptoKeyVersionsSettings =
924           PagedCallSettings.newBuilder(LIST_CRYPTO_KEY_VERSIONS_PAGE_STR_FACT);
925       listImportJobsSettings = PagedCallSettings.newBuilder(LIST_IMPORT_JOBS_PAGE_STR_FACT);
926       getKeyRingSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
927       getCryptoKeySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
928       getCryptoKeyVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
929       getPublicKeySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
930       getImportJobSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
931       createKeyRingSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
932       createCryptoKeySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
933       createCryptoKeyVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
934       importCryptoKeyVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
935       createImportJobSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
936       updateCryptoKeySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
937       updateCryptoKeyVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
938       updateCryptoKeyPrimaryVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
939       destroyCryptoKeyVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
940       restoreCryptoKeyVersionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
941       encryptSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
942       decryptSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
943       asymmetricSignSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
944       asymmetricDecryptSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
945       macSignSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
946       macVerifySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
947       generateRandomBytesSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
948       listLocationsSettings = PagedCallSettings.newBuilder(LIST_LOCATIONS_PAGE_STR_FACT);
949       getLocationSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
950       setIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
951       getIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
952       testIamPermissionsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
953 
954       unaryMethodSettingsBuilders =
955           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
956               listKeyRingsSettings,
957               listCryptoKeysSettings,
958               listCryptoKeyVersionsSettings,
959               listImportJobsSettings,
960               getKeyRingSettings,
961               getCryptoKeySettings,
962               getCryptoKeyVersionSettings,
963               getPublicKeySettings,
964               getImportJobSettings,
965               createKeyRingSettings,
966               createCryptoKeySettings,
967               createCryptoKeyVersionSettings,
968               importCryptoKeyVersionSettings,
969               createImportJobSettings,
970               updateCryptoKeySettings,
971               updateCryptoKeyVersionSettings,
972               updateCryptoKeyPrimaryVersionSettings,
973               destroyCryptoKeyVersionSettings,
974               restoreCryptoKeyVersionSettings,
975               encryptSettings,
976               decryptSettings,
977               asymmetricSignSettings,
978               asymmetricDecryptSettings,
979               macSignSettings,
980               macVerifySettings,
981               generateRandomBytesSettings,
982               listLocationsSettings,
983               getLocationSettings,
984               setIamPolicySettings,
985               getIamPolicySettings,
986               testIamPermissionsSettings);
987       initDefaults(this);
988     }
989 
Builder(KeyManagementServiceStubSettings settings)990     protected Builder(KeyManagementServiceStubSettings settings) {
991       super(settings);
992 
993       listKeyRingsSettings = settings.listKeyRingsSettings.toBuilder();
994       listCryptoKeysSettings = settings.listCryptoKeysSettings.toBuilder();
995       listCryptoKeyVersionsSettings = settings.listCryptoKeyVersionsSettings.toBuilder();
996       listImportJobsSettings = settings.listImportJobsSettings.toBuilder();
997       getKeyRingSettings = settings.getKeyRingSettings.toBuilder();
998       getCryptoKeySettings = settings.getCryptoKeySettings.toBuilder();
999       getCryptoKeyVersionSettings = settings.getCryptoKeyVersionSettings.toBuilder();
1000       getPublicKeySettings = settings.getPublicKeySettings.toBuilder();
1001       getImportJobSettings = settings.getImportJobSettings.toBuilder();
1002       createKeyRingSettings = settings.createKeyRingSettings.toBuilder();
1003       createCryptoKeySettings = settings.createCryptoKeySettings.toBuilder();
1004       createCryptoKeyVersionSettings = settings.createCryptoKeyVersionSettings.toBuilder();
1005       importCryptoKeyVersionSettings = settings.importCryptoKeyVersionSettings.toBuilder();
1006       createImportJobSettings = settings.createImportJobSettings.toBuilder();
1007       updateCryptoKeySettings = settings.updateCryptoKeySettings.toBuilder();
1008       updateCryptoKeyVersionSettings = settings.updateCryptoKeyVersionSettings.toBuilder();
1009       updateCryptoKeyPrimaryVersionSettings =
1010           settings.updateCryptoKeyPrimaryVersionSettings.toBuilder();
1011       destroyCryptoKeyVersionSettings = settings.destroyCryptoKeyVersionSettings.toBuilder();
1012       restoreCryptoKeyVersionSettings = settings.restoreCryptoKeyVersionSettings.toBuilder();
1013       encryptSettings = settings.encryptSettings.toBuilder();
1014       decryptSettings = settings.decryptSettings.toBuilder();
1015       asymmetricSignSettings = settings.asymmetricSignSettings.toBuilder();
1016       asymmetricDecryptSettings = settings.asymmetricDecryptSettings.toBuilder();
1017       macSignSettings = settings.macSignSettings.toBuilder();
1018       macVerifySettings = settings.macVerifySettings.toBuilder();
1019       generateRandomBytesSettings = settings.generateRandomBytesSettings.toBuilder();
1020       listLocationsSettings = settings.listLocationsSettings.toBuilder();
1021       getLocationSettings = settings.getLocationSettings.toBuilder();
1022       setIamPolicySettings = settings.setIamPolicySettings.toBuilder();
1023       getIamPolicySettings = settings.getIamPolicySettings.toBuilder();
1024       testIamPermissionsSettings = settings.testIamPermissionsSettings.toBuilder();
1025 
1026       unaryMethodSettingsBuilders =
1027           ImmutableList.<UnaryCallSettings.Builder<?, ?>>of(
1028               listKeyRingsSettings,
1029               listCryptoKeysSettings,
1030               listCryptoKeyVersionsSettings,
1031               listImportJobsSettings,
1032               getKeyRingSettings,
1033               getCryptoKeySettings,
1034               getCryptoKeyVersionSettings,
1035               getPublicKeySettings,
1036               getImportJobSettings,
1037               createKeyRingSettings,
1038               createCryptoKeySettings,
1039               createCryptoKeyVersionSettings,
1040               importCryptoKeyVersionSettings,
1041               createImportJobSettings,
1042               updateCryptoKeySettings,
1043               updateCryptoKeyVersionSettings,
1044               updateCryptoKeyPrimaryVersionSettings,
1045               destroyCryptoKeyVersionSettings,
1046               restoreCryptoKeyVersionSettings,
1047               encryptSettings,
1048               decryptSettings,
1049               asymmetricSignSettings,
1050               asymmetricDecryptSettings,
1051               macSignSettings,
1052               macVerifySettings,
1053               generateRandomBytesSettings,
1054               listLocationsSettings,
1055               getLocationSettings,
1056               setIamPolicySettings,
1057               getIamPolicySettings,
1058               testIamPermissionsSettings);
1059     }
1060 
createDefault()1061     private static Builder createDefault() {
1062       Builder builder = new Builder(((ClientContext) null));
1063 
1064       builder.setTransportChannelProvider(defaultTransportChannelProvider());
1065       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
1066       builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
1067       builder.setEndpoint(getDefaultEndpoint());
1068       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
1069       builder.setSwitchToMtlsEndpointAllowed(true);
1070 
1071       return initDefaults(builder);
1072     }
1073 
createHttpJsonDefault()1074     private static Builder createHttpJsonDefault() {
1075       Builder builder = new Builder(((ClientContext) null));
1076 
1077       builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
1078       builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
1079       builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
1080       builder.setEndpoint(getDefaultEndpoint());
1081       builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
1082       builder.setSwitchToMtlsEndpointAllowed(true);
1083 
1084       return initDefaults(builder);
1085     }
1086 
initDefaults(Builder builder)1087     private static Builder initDefaults(Builder builder) {
1088       builder
1089           .listKeyRingsSettings()
1090           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1091           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1092 
1093       builder
1094           .listCryptoKeysSettings()
1095           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1096           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1097 
1098       builder
1099           .listCryptoKeyVersionsSettings()
1100           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1101           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1102 
1103       builder
1104           .listImportJobsSettings()
1105           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1106           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1107 
1108       builder
1109           .getKeyRingSettings()
1110           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1111           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1112 
1113       builder
1114           .getCryptoKeySettings()
1115           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1116           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1117 
1118       builder
1119           .getCryptoKeyVersionSettings()
1120           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1121           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1122 
1123       builder
1124           .getPublicKeySettings()
1125           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1126           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1127 
1128       builder
1129           .getImportJobSettings()
1130           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1131           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1132 
1133       builder
1134           .createKeyRingSettings()
1135           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1136           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1137 
1138       builder
1139           .createCryptoKeySettings()
1140           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1141           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1142 
1143       builder
1144           .createCryptoKeyVersionSettings()
1145           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_0_codes"))
1146           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_0_params"));
1147 
1148       builder
1149           .importCryptoKeyVersionSettings()
1150           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_0_codes"))
1151           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_0_params"));
1152 
1153       builder
1154           .createImportJobSettings()
1155           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1156           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1157 
1158       builder
1159           .updateCryptoKeySettings()
1160           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1161           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1162 
1163       builder
1164           .updateCryptoKeyVersionSettings()
1165           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1166           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1167 
1168       builder
1169           .updateCryptoKeyPrimaryVersionSettings()
1170           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1171           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1172 
1173       builder
1174           .destroyCryptoKeyVersionSettings()
1175           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1176           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1177 
1178       builder
1179           .restoreCryptoKeyVersionSettings()
1180           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1181           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1182 
1183       builder
1184           .encryptSettings()
1185           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1186           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1187 
1188       builder
1189           .decryptSettings()
1190           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1191           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1192 
1193       builder
1194           .asymmetricSignSettings()
1195           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1196           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1197 
1198       builder
1199           .asymmetricDecryptSettings()
1200           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1201           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1202 
1203       builder
1204           .macSignSettings()
1205           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1206           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1207 
1208       builder
1209           .macVerifySettings()
1210           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1211           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1212 
1213       builder
1214           .generateRandomBytesSettings()
1215           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1216           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1217 
1218       builder
1219           .listLocationsSettings()
1220           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
1221           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
1222 
1223       builder
1224           .getLocationSettings()
1225           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
1226           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
1227 
1228       builder
1229           .setIamPolicySettings()
1230           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1231           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1232 
1233       builder
1234           .getIamPolicySettings()
1235           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1236           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1237 
1238       builder
1239           .testIamPermissionsSettings()
1240           .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes"))
1241           .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params"));
1242 
1243       return builder;
1244     }
1245 
1246     /**
1247      * Applies the given settings updater function to all of the unary API methods in this service.
1248      *
1249      * <p>Note: This method does not support applying settings to streaming methods.
1250      */
applyToAllUnaryMethods( ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater)1251     public Builder applyToAllUnaryMethods(
1252         ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) {
1253       super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
1254       return this;
1255     }
1256 
unaryMethodSettingsBuilders()1257     public ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders() {
1258       return unaryMethodSettingsBuilders;
1259     }
1260 
1261     /** Returns the builder for the settings used for calls to listKeyRings. */
1262     public PagedCallSettings.Builder<
1263             ListKeyRingsRequest, ListKeyRingsResponse, ListKeyRingsPagedResponse>
listKeyRingsSettings()1264         listKeyRingsSettings() {
1265       return listKeyRingsSettings;
1266     }
1267 
1268     /** Returns the builder for the settings used for calls to listCryptoKeys. */
1269     public PagedCallSettings.Builder<
1270             ListCryptoKeysRequest, ListCryptoKeysResponse, ListCryptoKeysPagedResponse>
listCryptoKeysSettings()1271         listCryptoKeysSettings() {
1272       return listCryptoKeysSettings;
1273     }
1274 
1275     /** Returns the builder for the settings used for calls to listCryptoKeyVersions. */
1276     public PagedCallSettings.Builder<
1277             ListCryptoKeyVersionsRequest,
1278             ListCryptoKeyVersionsResponse,
1279             ListCryptoKeyVersionsPagedResponse>
listCryptoKeyVersionsSettings()1280         listCryptoKeyVersionsSettings() {
1281       return listCryptoKeyVersionsSettings;
1282     }
1283 
1284     /** Returns the builder for the settings used for calls to listImportJobs. */
1285     public PagedCallSettings.Builder<
1286             ListImportJobsRequest, ListImportJobsResponse, ListImportJobsPagedResponse>
listImportJobsSettings()1287         listImportJobsSettings() {
1288       return listImportJobsSettings;
1289     }
1290 
1291     /** Returns the builder for the settings used for calls to getKeyRing. */
getKeyRingSettings()1292     public UnaryCallSettings.Builder<GetKeyRingRequest, KeyRing> getKeyRingSettings() {
1293       return getKeyRingSettings;
1294     }
1295 
1296     /** Returns the builder for the settings used for calls to getCryptoKey. */
getCryptoKeySettings()1297     public UnaryCallSettings.Builder<GetCryptoKeyRequest, CryptoKey> getCryptoKeySettings() {
1298       return getCryptoKeySettings;
1299     }
1300 
1301     /** Returns the builder for the settings used for calls to getCryptoKeyVersion. */
1302     public UnaryCallSettings.Builder<GetCryptoKeyVersionRequest, CryptoKeyVersion>
getCryptoKeyVersionSettings()1303         getCryptoKeyVersionSettings() {
1304       return getCryptoKeyVersionSettings;
1305     }
1306 
1307     /** Returns the builder for the settings used for calls to getPublicKey. */
getPublicKeySettings()1308     public UnaryCallSettings.Builder<GetPublicKeyRequest, PublicKey> getPublicKeySettings() {
1309       return getPublicKeySettings;
1310     }
1311 
1312     /** Returns the builder for the settings used for calls to getImportJob. */
getImportJobSettings()1313     public UnaryCallSettings.Builder<GetImportJobRequest, ImportJob> getImportJobSettings() {
1314       return getImportJobSettings;
1315     }
1316 
1317     /** Returns the builder for the settings used for calls to createKeyRing. */
createKeyRingSettings()1318     public UnaryCallSettings.Builder<CreateKeyRingRequest, KeyRing> createKeyRingSettings() {
1319       return createKeyRingSettings;
1320     }
1321 
1322     /** Returns the builder for the settings used for calls to createCryptoKey. */
createCryptoKeySettings()1323     public UnaryCallSettings.Builder<CreateCryptoKeyRequest, CryptoKey> createCryptoKeySettings() {
1324       return createCryptoKeySettings;
1325     }
1326 
1327     /** Returns the builder for the settings used for calls to createCryptoKeyVersion. */
1328     public UnaryCallSettings.Builder<CreateCryptoKeyVersionRequest, CryptoKeyVersion>
createCryptoKeyVersionSettings()1329         createCryptoKeyVersionSettings() {
1330       return createCryptoKeyVersionSettings;
1331     }
1332 
1333     /** Returns the builder for the settings used for calls to importCryptoKeyVersion. */
1334     public UnaryCallSettings.Builder<ImportCryptoKeyVersionRequest, CryptoKeyVersion>
importCryptoKeyVersionSettings()1335         importCryptoKeyVersionSettings() {
1336       return importCryptoKeyVersionSettings;
1337     }
1338 
1339     /** Returns the builder for the settings used for calls to createImportJob. */
createImportJobSettings()1340     public UnaryCallSettings.Builder<CreateImportJobRequest, ImportJob> createImportJobSettings() {
1341       return createImportJobSettings;
1342     }
1343 
1344     /** Returns the builder for the settings used for calls to updateCryptoKey. */
updateCryptoKeySettings()1345     public UnaryCallSettings.Builder<UpdateCryptoKeyRequest, CryptoKey> updateCryptoKeySettings() {
1346       return updateCryptoKeySettings;
1347     }
1348 
1349     /** Returns the builder for the settings used for calls to updateCryptoKeyVersion. */
1350     public UnaryCallSettings.Builder<UpdateCryptoKeyVersionRequest, CryptoKeyVersion>
updateCryptoKeyVersionSettings()1351         updateCryptoKeyVersionSettings() {
1352       return updateCryptoKeyVersionSettings;
1353     }
1354 
1355     /** Returns the builder for the settings used for calls to updateCryptoKeyPrimaryVersion. */
1356     public UnaryCallSettings.Builder<UpdateCryptoKeyPrimaryVersionRequest, CryptoKey>
updateCryptoKeyPrimaryVersionSettings()1357         updateCryptoKeyPrimaryVersionSettings() {
1358       return updateCryptoKeyPrimaryVersionSettings;
1359     }
1360 
1361     /** Returns the builder for the settings used for calls to destroyCryptoKeyVersion. */
1362     public UnaryCallSettings.Builder<DestroyCryptoKeyVersionRequest, CryptoKeyVersion>
destroyCryptoKeyVersionSettings()1363         destroyCryptoKeyVersionSettings() {
1364       return destroyCryptoKeyVersionSettings;
1365     }
1366 
1367     /** Returns the builder for the settings used for calls to restoreCryptoKeyVersion. */
1368     public UnaryCallSettings.Builder<RestoreCryptoKeyVersionRequest, CryptoKeyVersion>
restoreCryptoKeyVersionSettings()1369         restoreCryptoKeyVersionSettings() {
1370       return restoreCryptoKeyVersionSettings;
1371     }
1372 
1373     /** Returns the builder for the settings used for calls to encrypt. */
encryptSettings()1374     public UnaryCallSettings.Builder<EncryptRequest, EncryptResponse> encryptSettings() {
1375       return encryptSettings;
1376     }
1377 
1378     /** Returns the builder for the settings used for calls to decrypt. */
decryptSettings()1379     public UnaryCallSettings.Builder<DecryptRequest, DecryptResponse> decryptSettings() {
1380       return decryptSettings;
1381     }
1382 
1383     /** Returns the builder for the settings used for calls to asymmetricSign. */
1384     public UnaryCallSettings.Builder<AsymmetricSignRequest, AsymmetricSignResponse>
asymmetricSignSettings()1385         asymmetricSignSettings() {
1386       return asymmetricSignSettings;
1387     }
1388 
1389     /** Returns the builder for the settings used for calls to asymmetricDecrypt. */
1390     public UnaryCallSettings.Builder<AsymmetricDecryptRequest, AsymmetricDecryptResponse>
asymmetricDecryptSettings()1391         asymmetricDecryptSettings() {
1392       return asymmetricDecryptSettings;
1393     }
1394 
1395     /** Returns the builder for the settings used for calls to macSign. */
macSignSettings()1396     public UnaryCallSettings.Builder<MacSignRequest, MacSignResponse> macSignSettings() {
1397       return macSignSettings;
1398     }
1399 
1400     /** Returns the builder for the settings used for calls to macVerify. */
macVerifySettings()1401     public UnaryCallSettings.Builder<MacVerifyRequest, MacVerifyResponse> macVerifySettings() {
1402       return macVerifySettings;
1403     }
1404 
1405     /** Returns the builder for the settings used for calls to generateRandomBytes. */
1406     public UnaryCallSettings.Builder<GenerateRandomBytesRequest, GenerateRandomBytesResponse>
generateRandomBytesSettings()1407         generateRandomBytesSettings() {
1408       return generateRandomBytesSettings;
1409     }
1410 
1411     /** Returns the builder for the settings used for calls to listLocations. */
1412     public PagedCallSettings.Builder<
1413             ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
listLocationsSettings()1414         listLocationsSettings() {
1415       return listLocationsSettings;
1416     }
1417 
1418     /** Returns the builder for the settings used for calls to getLocation. */
getLocationSettings()1419     public UnaryCallSettings.Builder<GetLocationRequest, Location> getLocationSettings() {
1420       return getLocationSettings;
1421     }
1422 
1423     /** Returns the builder for the settings used for calls to setIamPolicy. */
setIamPolicySettings()1424     public UnaryCallSettings.Builder<SetIamPolicyRequest, Policy> setIamPolicySettings() {
1425       return setIamPolicySettings;
1426     }
1427 
1428     /** Returns the builder for the settings used for calls to getIamPolicy. */
getIamPolicySettings()1429     public UnaryCallSettings.Builder<GetIamPolicyRequest, Policy> getIamPolicySettings() {
1430       return getIamPolicySettings;
1431     }
1432 
1433     /** Returns the builder for the settings used for calls to testIamPermissions. */
1434     public UnaryCallSettings.Builder<TestIamPermissionsRequest, TestIamPermissionsResponse>
testIamPermissionsSettings()1435         testIamPermissionsSettings() {
1436       return testIamPermissionsSettings;
1437     }
1438 
1439     @Override
build()1440     public KeyManagementServiceStubSettings build() throws IOException {
1441       return new KeyManagementServiceStubSettings(this);
1442     }
1443   }
1444 }
1445