• 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.gax.core.BackgroundResource;
26 import com.google.api.gax.core.BackgroundResourceAggregation;
27 import com.google.api.gax.grpc.GrpcCallSettings;
28 import com.google.api.gax.grpc.GrpcStubCallableFactory;
29 import com.google.api.gax.rpc.ClientContext;
30 import com.google.api.gax.rpc.UnaryCallable;
31 import com.google.cloud.kms.v1.AsymmetricDecryptRequest;
32 import com.google.cloud.kms.v1.AsymmetricDecryptResponse;
33 import com.google.cloud.kms.v1.AsymmetricSignRequest;
34 import com.google.cloud.kms.v1.AsymmetricSignResponse;
35 import com.google.cloud.kms.v1.CreateCryptoKeyRequest;
36 import com.google.cloud.kms.v1.CreateCryptoKeyVersionRequest;
37 import com.google.cloud.kms.v1.CreateImportJobRequest;
38 import com.google.cloud.kms.v1.CreateKeyRingRequest;
39 import com.google.cloud.kms.v1.CryptoKey;
40 import com.google.cloud.kms.v1.CryptoKeyVersion;
41 import com.google.cloud.kms.v1.DecryptRequest;
42 import com.google.cloud.kms.v1.DecryptResponse;
43 import com.google.cloud.kms.v1.DestroyCryptoKeyVersionRequest;
44 import com.google.cloud.kms.v1.EncryptRequest;
45 import com.google.cloud.kms.v1.EncryptResponse;
46 import com.google.cloud.kms.v1.GenerateRandomBytesRequest;
47 import com.google.cloud.kms.v1.GenerateRandomBytesResponse;
48 import com.google.cloud.kms.v1.GetCryptoKeyRequest;
49 import com.google.cloud.kms.v1.GetCryptoKeyVersionRequest;
50 import com.google.cloud.kms.v1.GetImportJobRequest;
51 import com.google.cloud.kms.v1.GetKeyRingRequest;
52 import com.google.cloud.kms.v1.GetPublicKeyRequest;
53 import com.google.cloud.kms.v1.ImportCryptoKeyVersionRequest;
54 import com.google.cloud.kms.v1.ImportJob;
55 import com.google.cloud.kms.v1.KeyRing;
56 import com.google.cloud.kms.v1.ListCryptoKeyVersionsRequest;
57 import com.google.cloud.kms.v1.ListCryptoKeyVersionsResponse;
58 import com.google.cloud.kms.v1.ListCryptoKeysRequest;
59 import com.google.cloud.kms.v1.ListCryptoKeysResponse;
60 import com.google.cloud.kms.v1.ListImportJobsRequest;
61 import com.google.cloud.kms.v1.ListImportJobsResponse;
62 import com.google.cloud.kms.v1.ListKeyRingsRequest;
63 import com.google.cloud.kms.v1.ListKeyRingsResponse;
64 import com.google.cloud.kms.v1.MacSignRequest;
65 import com.google.cloud.kms.v1.MacSignResponse;
66 import com.google.cloud.kms.v1.MacVerifyRequest;
67 import com.google.cloud.kms.v1.MacVerifyResponse;
68 import com.google.cloud.kms.v1.PublicKey;
69 import com.google.cloud.kms.v1.RestoreCryptoKeyVersionRequest;
70 import com.google.cloud.kms.v1.UpdateCryptoKeyPrimaryVersionRequest;
71 import com.google.cloud.kms.v1.UpdateCryptoKeyRequest;
72 import com.google.cloud.kms.v1.UpdateCryptoKeyVersionRequest;
73 import com.google.cloud.location.GetLocationRequest;
74 import com.google.cloud.location.ListLocationsRequest;
75 import com.google.cloud.location.ListLocationsResponse;
76 import com.google.cloud.location.Location;
77 import com.google.common.collect.ImmutableMap;
78 import com.google.iam.v1.GetIamPolicyRequest;
79 import com.google.iam.v1.Policy;
80 import com.google.iam.v1.SetIamPolicyRequest;
81 import com.google.iam.v1.TestIamPermissionsRequest;
82 import com.google.iam.v1.TestIamPermissionsResponse;
83 import com.google.longrunning.stub.GrpcOperationsStub;
84 import io.grpc.MethodDescriptor;
85 import io.grpc.protobuf.ProtoUtils;
86 import java.io.IOException;
87 import java.util.concurrent.TimeUnit;
88 import javax.annotation.Generated;
89 
90 // AUTO-GENERATED DOCUMENTATION AND CLASS.
91 /**
92  * gRPC stub implementation for the KeyManagementService service API.
93  *
94  * <p>This class is for advanced usage and reflects the underlying API directly.
95  */
96 @Generated("by gapic-generator-java")
97 public class GrpcKeyManagementServiceStub extends KeyManagementServiceStub {
98   private static final MethodDescriptor<ListKeyRingsRequest, ListKeyRingsResponse>
99       listKeyRingsMethodDescriptor =
100           MethodDescriptor.<ListKeyRingsRequest, ListKeyRingsResponse>newBuilder()
101               .setType(MethodDescriptor.MethodType.UNARY)
102               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/ListKeyRings")
103               .setRequestMarshaller(ProtoUtils.marshaller(ListKeyRingsRequest.getDefaultInstance()))
104               .setResponseMarshaller(
105                   ProtoUtils.marshaller(ListKeyRingsResponse.getDefaultInstance()))
106               .build();
107 
108   private static final MethodDescriptor<ListCryptoKeysRequest, ListCryptoKeysResponse>
109       listCryptoKeysMethodDescriptor =
110           MethodDescriptor.<ListCryptoKeysRequest, ListCryptoKeysResponse>newBuilder()
111               .setType(MethodDescriptor.MethodType.UNARY)
112               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/ListCryptoKeys")
113               .setRequestMarshaller(
114                   ProtoUtils.marshaller(ListCryptoKeysRequest.getDefaultInstance()))
115               .setResponseMarshaller(
116                   ProtoUtils.marshaller(ListCryptoKeysResponse.getDefaultInstance()))
117               .build();
118 
119   private static final MethodDescriptor<ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsResponse>
120       listCryptoKeyVersionsMethodDescriptor =
121           MethodDescriptor.<ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsResponse>newBuilder()
122               .setType(MethodDescriptor.MethodType.UNARY)
123               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/ListCryptoKeyVersions")
124               .setRequestMarshaller(
125                   ProtoUtils.marshaller(ListCryptoKeyVersionsRequest.getDefaultInstance()))
126               .setResponseMarshaller(
127                   ProtoUtils.marshaller(ListCryptoKeyVersionsResponse.getDefaultInstance()))
128               .build();
129 
130   private static final MethodDescriptor<ListImportJobsRequest, ListImportJobsResponse>
131       listImportJobsMethodDescriptor =
132           MethodDescriptor.<ListImportJobsRequest, ListImportJobsResponse>newBuilder()
133               .setType(MethodDescriptor.MethodType.UNARY)
134               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/ListImportJobs")
135               .setRequestMarshaller(
136                   ProtoUtils.marshaller(ListImportJobsRequest.getDefaultInstance()))
137               .setResponseMarshaller(
138                   ProtoUtils.marshaller(ListImportJobsResponse.getDefaultInstance()))
139               .build();
140 
141   private static final MethodDescriptor<GetKeyRingRequest, KeyRing> getKeyRingMethodDescriptor =
142       MethodDescriptor.<GetKeyRingRequest, KeyRing>newBuilder()
143           .setType(MethodDescriptor.MethodType.UNARY)
144           .setFullMethodName("google.cloud.kms.v1.KeyManagementService/GetKeyRing")
145           .setRequestMarshaller(ProtoUtils.marshaller(GetKeyRingRequest.getDefaultInstance()))
146           .setResponseMarshaller(ProtoUtils.marshaller(KeyRing.getDefaultInstance()))
147           .build();
148 
149   private static final MethodDescriptor<GetCryptoKeyRequest, CryptoKey>
150       getCryptoKeyMethodDescriptor =
151           MethodDescriptor.<GetCryptoKeyRequest, CryptoKey>newBuilder()
152               .setType(MethodDescriptor.MethodType.UNARY)
153               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/GetCryptoKey")
154               .setRequestMarshaller(ProtoUtils.marshaller(GetCryptoKeyRequest.getDefaultInstance()))
155               .setResponseMarshaller(ProtoUtils.marshaller(CryptoKey.getDefaultInstance()))
156               .build();
157 
158   private static final MethodDescriptor<GetCryptoKeyVersionRequest, CryptoKeyVersion>
159       getCryptoKeyVersionMethodDescriptor =
160           MethodDescriptor.<GetCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
161               .setType(MethodDescriptor.MethodType.UNARY)
162               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/GetCryptoKeyVersion")
163               .setRequestMarshaller(
164                   ProtoUtils.marshaller(GetCryptoKeyVersionRequest.getDefaultInstance()))
165               .setResponseMarshaller(ProtoUtils.marshaller(CryptoKeyVersion.getDefaultInstance()))
166               .build();
167 
168   private static final MethodDescriptor<GetPublicKeyRequest, PublicKey>
169       getPublicKeyMethodDescriptor =
170           MethodDescriptor.<GetPublicKeyRequest, PublicKey>newBuilder()
171               .setType(MethodDescriptor.MethodType.UNARY)
172               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/GetPublicKey")
173               .setRequestMarshaller(ProtoUtils.marshaller(GetPublicKeyRequest.getDefaultInstance()))
174               .setResponseMarshaller(ProtoUtils.marshaller(PublicKey.getDefaultInstance()))
175               .build();
176 
177   private static final MethodDescriptor<GetImportJobRequest, ImportJob>
178       getImportJobMethodDescriptor =
179           MethodDescriptor.<GetImportJobRequest, ImportJob>newBuilder()
180               .setType(MethodDescriptor.MethodType.UNARY)
181               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/GetImportJob")
182               .setRequestMarshaller(ProtoUtils.marshaller(GetImportJobRequest.getDefaultInstance()))
183               .setResponseMarshaller(ProtoUtils.marshaller(ImportJob.getDefaultInstance()))
184               .build();
185 
186   private static final MethodDescriptor<CreateKeyRingRequest, KeyRing>
187       createKeyRingMethodDescriptor =
188           MethodDescriptor.<CreateKeyRingRequest, KeyRing>newBuilder()
189               .setType(MethodDescriptor.MethodType.UNARY)
190               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/CreateKeyRing")
191               .setRequestMarshaller(
192                   ProtoUtils.marshaller(CreateKeyRingRequest.getDefaultInstance()))
193               .setResponseMarshaller(ProtoUtils.marshaller(KeyRing.getDefaultInstance()))
194               .build();
195 
196   private static final MethodDescriptor<CreateCryptoKeyRequest, CryptoKey>
197       createCryptoKeyMethodDescriptor =
198           MethodDescriptor.<CreateCryptoKeyRequest, CryptoKey>newBuilder()
199               .setType(MethodDescriptor.MethodType.UNARY)
200               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/CreateCryptoKey")
201               .setRequestMarshaller(
202                   ProtoUtils.marshaller(CreateCryptoKeyRequest.getDefaultInstance()))
203               .setResponseMarshaller(ProtoUtils.marshaller(CryptoKey.getDefaultInstance()))
204               .build();
205 
206   private static final MethodDescriptor<CreateCryptoKeyVersionRequest, CryptoKeyVersion>
207       createCryptoKeyVersionMethodDescriptor =
208           MethodDescriptor.<CreateCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
209               .setType(MethodDescriptor.MethodType.UNARY)
210               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/CreateCryptoKeyVersion")
211               .setRequestMarshaller(
212                   ProtoUtils.marshaller(CreateCryptoKeyVersionRequest.getDefaultInstance()))
213               .setResponseMarshaller(ProtoUtils.marshaller(CryptoKeyVersion.getDefaultInstance()))
214               .build();
215 
216   private static final MethodDescriptor<ImportCryptoKeyVersionRequest, CryptoKeyVersion>
217       importCryptoKeyVersionMethodDescriptor =
218           MethodDescriptor.<ImportCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
219               .setType(MethodDescriptor.MethodType.UNARY)
220               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/ImportCryptoKeyVersion")
221               .setRequestMarshaller(
222                   ProtoUtils.marshaller(ImportCryptoKeyVersionRequest.getDefaultInstance()))
223               .setResponseMarshaller(ProtoUtils.marshaller(CryptoKeyVersion.getDefaultInstance()))
224               .build();
225 
226   private static final MethodDescriptor<CreateImportJobRequest, ImportJob>
227       createImportJobMethodDescriptor =
228           MethodDescriptor.<CreateImportJobRequest, ImportJob>newBuilder()
229               .setType(MethodDescriptor.MethodType.UNARY)
230               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/CreateImportJob")
231               .setRequestMarshaller(
232                   ProtoUtils.marshaller(CreateImportJobRequest.getDefaultInstance()))
233               .setResponseMarshaller(ProtoUtils.marshaller(ImportJob.getDefaultInstance()))
234               .build();
235 
236   private static final MethodDescriptor<UpdateCryptoKeyRequest, CryptoKey>
237       updateCryptoKeyMethodDescriptor =
238           MethodDescriptor.<UpdateCryptoKeyRequest, CryptoKey>newBuilder()
239               .setType(MethodDescriptor.MethodType.UNARY)
240               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/UpdateCryptoKey")
241               .setRequestMarshaller(
242                   ProtoUtils.marshaller(UpdateCryptoKeyRequest.getDefaultInstance()))
243               .setResponseMarshaller(ProtoUtils.marshaller(CryptoKey.getDefaultInstance()))
244               .build();
245 
246   private static final MethodDescriptor<UpdateCryptoKeyVersionRequest, CryptoKeyVersion>
247       updateCryptoKeyVersionMethodDescriptor =
248           MethodDescriptor.<UpdateCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
249               .setType(MethodDescriptor.MethodType.UNARY)
250               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/UpdateCryptoKeyVersion")
251               .setRequestMarshaller(
252                   ProtoUtils.marshaller(UpdateCryptoKeyVersionRequest.getDefaultInstance()))
253               .setResponseMarshaller(ProtoUtils.marshaller(CryptoKeyVersion.getDefaultInstance()))
254               .build();
255 
256   private static final MethodDescriptor<UpdateCryptoKeyPrimaryVersionRequest, CryptoKey>
257       updateCryptoKeyPrimaryVersionMethodDescriptor =
258           MethodDescriptor.<UpdateCryptoKeyPrimaryVersionRequest, CryptoKey>newBuilder()
259               .setType(MethodDescriptor.MethodType.UNARY)
260               .setFullMethodName(
261                   "google.cloud.kms.v1.KeyManagementService/UpdateCryptoKeyPrimaryVersion")
262               .setRequestMarshaller(
263                   ProtoUtils.marshaller(UpdateCryptoKeyPrimaryVersionRequest.getDefaultInstance()))
264               .setResponseMarshaller(ProtoUtils.marshaller(CryptoKey.getDefaultInstance()))
265               .build();
266 
267   private static final MethodDescriptor<DestroyCryptoKeyVersionRequest, CryptoKeyVersion>
268       destroyCryptoKeyVersionMethodDescriptor =
269           MethodDescriptor.<DestroyCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
270               .setType(MethodDescriptor.MethodType.UNARY)
271               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/DestroyCryptoKeyVersion")
272               .setRequestMarshaller(
273                   ProtoUtils.marshaller(DestroyCryptoKeyVersionRequest.getDefaultInstance()))
274               .setResponseMarshaller(ProtoUtils.marshaller(CryptoKeyVersion.getDefaultInstance()))
275               .build();
276 
277   private static final MethodDescriptor<RestoreCryptoKeyVersionRequest, CryptoKeyVersion>
278       restoreCryptoKeyVersionMethodDescriptor =
279           MethodDescriptor.<RestoreCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
280               .setType(MethodDescriptor.MethodType.UNARY)
281               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/RestoreCryptoKeyVersion")
282               .setRequestMarshaller(
283                   ProtoUtils.marshaller(RestoreCryptoKeyVersionRequest.getDefaultInstance()))
284               .setResponseMarshaller(ProtoUtils.marshaller(CryptoKeyVersion.getDefaultInstance()))
285               .build();
286 
287   private static final MethodDescriptor<EncryptRequest, EncryptResponse> encryptMethodDescriptor =
288       MethodDescriptor.<EncryptRequest, EncryptResponse>newBuilder()
289           .setType(MethodDescriptor.MethodType.UNARY)
290           .setFullMethodName("google.cloud.kms.v1.KeyManagementService/Encrypt")
291           .setRequestMarshaller(ProtoUtils.marshaller(EncryptRequest.getDefaultInstance()))
292           .setResponseMarshaller(ProtoUtils.marshaller(EncryptResponse.getDefaultInstance()))
293           .build();
294 
295   private static final MethodDescriptor<DecryptRequest, DecryptResponse> decryptMethodDescriptor =
296       MethodDescriptor.<DecryptRequest, DecryptResponse>newBuilder()
297           .setType(MethodDescriptor.MethodType.UNARY)
298           .setFullMethodName("google.cloud.kms.v1.KeyManagementService/Decrypt")
299           .setRequestMarshaller(ProtoUtils.marshaller(DecryptRequest.getDefaultInstance()))
300           .setResponseMarshaller(ProtoUtils.marshaller(DecryptResponse.getDefaultInstance()))
301           .build();
302 
303   private static final MethodDescriptor<AsymmetricSignRequest, AsymmetricSignResponse>
304       asymmetricSignMethodDescriptor =
305           MethodDescriptor.<AsymmetricSignRequest, AsymmetricSignResponse>newBuilder()
306               .setType(MethodDescriptor.MethodType.UNARY)
307               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/AsymmetricSign")
308               .setRequestMarshaller(
309                   ProtoUtils.marshaller(AsymmetricSignRequest.getDefaultInstance()))
310               .setResponseMarshaller(
311                   ProtoUtils.marshaller(AsymmetricSignResponse.getDefaultInstance()))
312               .build();
313 
314   private static final MethodDescriptor<AsymmetricDecryptRequest, AsymmetricDecryptResponse>
315       asymmetricDecryptMethodDescriptor =
316           MethodDescriptor.<AsymmetricDecryptRequest, AsymmetricDecryptResponse>newBuilder()
317               .setType(MethodDescriptor.MethodType.UNARY)
318               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/AsymmetricDecrypt")
319               .setRequestMarshaller(
320                   ProtoUtils.marshaller(AsymmetricDecryptRequest.getDefaultInstance()))
321               .setResponseMarshaller(
322                   ProtoUtils.marshaller(AsymmetricDecryptResponse.getDefaultInstance()))
323               .build();
324 
325   private static final MethodDescriptor<MacSignRequest, MacSignResponse> macSignMethodDescriptor =
326       MethodDescriptor.<MacSignRequest, MacSignResponse>newBuilder()
327           .setType(MethodDescriptor.MethodType.UNARY)
328           .setFullMethodName("google.cloud.kms.v1.KeyManagementService/MacSign")
329           .setRequestMarshaller(ProtoUtils.marshaller(MacSignRequest.getDefaultInstance()))
330           .setResponseMarshaller(ProtoUtils.marshaller(MacSignResponse.getDefaultInstance()))
331           .build();
332 
333   private static final MethodDescriptor<MacVerifyRequest, MacVerifyResponse>
334       macVerifyMethodDescriptor =
335           MethodDescriptor.<MacVerifyRequest, MacVerifyResponse>newBuilder()
336               .setType(MethodDescriptor.MethodType.UNARY)
337               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/MacVerify")
338               .setRequestMarshaller(ProtoUtils.marshaller(MacVerifyRequest.getDefaultInstance()))
339               .setResponseMarshaller(ProtoUtils.marshaller(MacVerifyResponse.getDefaultInstance()))
340               .build();
341 
342   private static final MethodDescriptor<GenerateRandomBytesRequest, GenerateRandomBytesResponse>
343       generateRandomBytesMethodDescriptor =
344           MethodDescriptor.<GenerateRandomBytesRequest, GenerateRandomBytesResponse>newBuilder()
345               .setType(MethodDescriptor.MethodType.UNARY)
346               .setFullMethodName("google.cloud.kms.v1.KeyManagementService/GenerateRandomBytes")
347               .setRequestMarshaller(
348                   ProtoUtils.marshaller(GenerateRandomBytesRequest.getDefaultInstance()))
349               .setResponseMarshaller(
350                   ProtoUtils.marshaller(GenerateRandomBytesResponse.getDefaultInstance()))
351               .build();
352 
353   private static final MethodDescriptor<ListLocationsRequest, ListLocationsResponse>
354       listLocationsMethodDescriptor =
355           MethodDescriptor.<ListLocationsRequest, ListLocationsResponse>newBuilder()
356               .setType(MethodDescriptor.MethodType.UNARY)
357               .setFullMethodName("google.cloud.location.Locations/ListLocations")
358               .setRequestMarshaller(
359                   ProtoUtils.marshaller(ListLocationsRequest.getDefaultInstance()))
360               .setResponseMarshaller(
361                   ProtoUtils.marshaller(ListLocationsResponse.getDefaultInstance()))
362               .build();
363 
364   private static final MethodDescriptor<GetLocationRequest, Location> getLocationMethodDescriptor =
365       MethodDescriptor.<GetLocationRequest, Location>newBuilder()
366           .setType(MethodDescriptor.MethodType.UNARY)
367           .setFullMethodName("google.cloud.location.Locations/GetLocation")
368           .setRequestMarshaller(ProtoUtils.marshaller(GetLocationRequest.getDefaultInstance()))
369           .setResponseMarshaller(ProtoUtils.marshaller(Location.getDefaultInstance()))
370           .build();
371 
372   private static final MethodDescriptor<SetIamPolicyRequest, Policy> setIamPolicyMethodDescriptor =
373       MethodDescriptor.<SetIamPolicyRequest, Policy>newBuilder()
374           .setType(MethodDescriptor.MethodType.UNARY)
375           .setFullMethodName("google.iam.v1.IAMPolicy/SetIamPolicy")
376           .setRequestMarshaller(ProtoUtils.marshaller(SetIamPolicyRequest.getDefaultInstance()))
377           .setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance()))
378           .build();
379 
380   private static final MethodDescriptor<GetIamPolicyRequest, Policy> getIamPolicyMethodDescriptor =
381       MethodDescriptor.<GetIamPolicyRequest, Policy>newBuilder()
382           .setType(MethodDescriptor.MethodType.UNARY)
383           .setFullMethodName("google.iam.v1.IAMPolicy/GetIamPolicy")
384           .setRequestMarshaller(ProtoUtils.marshaller(GetIamPolicyRequest.getDefaultInstance()))
385           .setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance()))
386           .build();
387 
388   private static final MethodDescriptor<TestIamPermissionsRequest, TestIamPermissionsResponse>
389       testIamPermissionsMethodDescriptor =
390           MethodDescriptor.<TestIamPermissionsRequest, TestIamPermissionsResponse>newBuilder()
391               .setType(MethodDescriptor.MethodType.UNARY)
392               .setFullMethodName("google.iam.v1.IAMPolicy/TestIamPermissions")
393               .setRequestMarshaller(
394                   ProtoUtils.marshaller(TestIamPermissionsRequest.getDefaultInstance()))
395               .setResponseMarshaller(
396                   ProtoUtils.marshaller(TestIamPermissionsResponse.getDefaultInstance()))
397               .build();
398 
399   private final UnaryCallable<ListKeyRingsRequest, ListKeyRingsResponse> listKeyRingsCallable;
400   private final UnaryCallable<ListKeyRingsRequest, ListKeyRingsPagedResponse>
401       listKeyRingsPagedCallable;
402   private final UnaryCallable<ListCryptoKeysRequest, ListCryptoKeysResponse> listCryptoKeysCallable;
403   private final UnaryCallable<ListCryptoKeysRequest, ListCryptoKeysPagedResponse>
404       listCryptoKeysPagedCallable;
405   private final UnaryCallable<ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsResponse>
406       listCryptoKeyVersionsCallable;
407   private final UnaryCallable<ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsPagedResponse>
408       listCryptoKeyVersionsPagedCallable;
409   private final UnaryCallable<ListImportJobsRequest, ListImportJobsResponse> listImportJobsCallable;
410   private final UnaryCallable<ListImportJobsRequest, ListImportJobsPagedResponse>
411       listImportJobsPagedCallable;
412   private final UnaryCallable<GetKeyRingRequest, KeyRing> getKeyRingCallable;
413   private final UnaryCallable<GetCryptoKeyRequest, CryptoKey> getCryptoKeyCallable;
414   private final UnaryCallable<GetCryptoKeyVersionRequest, CryptoKeyVersion>
415       getCryptoKeyVersionCallable;
416   private final UnaryCallable<GetPublicKeyRequest, PublicKey> getPublicKeyCallable;
417   private final UnaryCallable<GetImportJobRequest, ImportJob> getImportJobCallable;
418   private final UnaryCallable<CreateKeyRingRequest, KeyRing> createKeyRingCallable;
419   private final UnaryCallable<CreateCryptoKeyRequest, CryptoKey> createCryptoKeyCallable;
420   private final UnaryCallable<CreateCryptoKeyVersionRequest, CryptoKeyVersion>
421       createCryptoKeyVersionCallable;
422   private final UnaryCallable<ImportCryptoKeyVersionRequest, CryptoKeyVersion>
423       importCryptoKeyVersionCallable;
424   private final UnaryCallable<CreateImportJobRequest, ImportJob> createImportJobCallable;
425   private final UnaryCallable<UpdateCryptoKeyRequest, CryptoKey> updateCryptoKeyCallable;
426   private final UnaryCallable<UpdateCryptoKeyVersionRequest, CryptoKeyVersion>
427       updateCryptoKeyVersionCallable;
428   private final UnaryCallable<UpdateCryptoKeyPrimaryVersionRequest, CryptoKey>
429       updateCryptoKeyPrimaryVersionCallable;
430   private final UnaryCallable<DestroyCryptoKeyVersionRequest, CryptoKeyVersion>
431       destroyCryptoKeyVersionCallable;
432   private final UnaryCallable<RestoreCryptoKeyVersionRequest, CryptoKeyVersion>
433       restoreCryptoKeyVersionCallable;
434   private final UnaryCallable<EncryptRequest, EncryptResponse> encryptCallable;
435   private final UnaryCallable<DecryptRequest, DecryptResponse> decryptCallable;
436   private final UnaryCallable<AsymmetricSignRequest, AsymmetricSignResponse> asymmetricSignCallable;
437   private final UnaryCallable<AsymmetricDecryptRequest, AsymmetricDecryptResponse>
438       asymmetricDecryptCallable;
439   private final UnaryCallable<MacSignRequest, MacSignResponse> macSignCallable;
440   private final UnaryCallable<MacVerifyRequest, MacVerifyResponse> macVerifyCallable;
441   private final UnaryCallable<GenerateRandomBytesRequest, GenerateRandomBytesResponse>
442       generateRandomBytesCallable;
443   private final UnaryCallable<ListLocationsRequest, ListLocationsResponse> listLocationsCallable;
444   private final UnaryCallable<ListLocationsRequest, ListLocationsPagedResponse>
445       listLocationsPagedCallable;
446   private final UnaryCallable<GetLocationRequest, Location> getLocationCallable;
447   private final UnaryCallable<SetIamPolicyRequest, Policy> setIamPolicyCallable;
448   private final UnaryCallable<GetIamPolicyRequest, Policy> getIamPolicyCallable;
449   private final UnaryCallable<TestIamPermissionsRequest, TestIamPermissionsResponse>
450       testIamPermissionsCallable;
451 
452   private final BackgroundResource backgroundResources;
453   private final GrpcOperationsStub operationsStub;
454   private final GrpcStubCallableFactory callableFactory;
455 
create(KeyManagementServiceStubSettings settings)456   public static final GrpcKeyManagementServiceStub create(KeyManagementServiceStubSettings settings)
457       throws IOException {
458     return new GrpcKeyManagementServiceStub(settings, ClientContext.create(settings));
459   }
460 
create(ClientContext clientContext)461   public static final GrpcKeyManagementServiceStub create(ClientContext clientContext)
462       throws IOException {
463     return new GrpcKeyManagementServiceStub(
464         KeyManagementServiceStubSettings.newBuilder().build(), clientContext);
465   }
466 
create( ClientContext clientContext, GrpcStubCallableFactory callableFactory)467   public static final GrpcKeyManagementServiceStub create(
468       ClientContext clientContext, GrpcStubCallableFactory callableFactory) throws IOException {
469     return new GrpcKeyManagementServiceStub(
470         KeyManagementServiceStubSettings.newBuilder().build(), clientContext, callableFactory);
471   }
472 
473   /**
474    * Constructs an instance of GrpcKeyManagementServiceStub, using the given settings. This is
475    * protected so that it is easy to make a subclass, but otherwise, the static factory methods
476    * should be preferred.
477    */
GrpcKeyManagementServiceStub( KeyManagementServiceStubSettings settings, ClientContext clientContext)478   protected GrpcKeyManagementServiceStub(
479       KeyManagementServiceStubSettings settings, ClientContext clientContext) throws IOException {
480     this(settings, clientContext, new GrpcKeyManagementServiceCallableFactory());
481   }
482 
483   /**
484    * Constructs an instance of GrpcKeyManagementServiceStub, using the given settings. This is
485    * protected so that it is easy to make a subclass, but otherwise, the static factory methods
486    * should be preferred.
487    */
GrpcKeyManagementServiceStub( KeyManagementServiceStubSettings settings, ClientContext clientContext, GrpcStubCallableFactory callableFactory)488   protected GrpcKeyManagementServiceStub(
489       KeyManagementServiceStubSettings settings,
490       ClientContext clientContext,
491       GrpcStubCallableFactory callableFactory)
492       throws IOException {
493     this.callableFactory = callableFactory;
494     this.operationsStub = GrpcOperationsStub.create(clientContext, callableFactory);
495 
496     GrpcCallSettings<ListKeyRingsRequest, ListKeyRingsResponse> listKeyRingsTransportSettings =
497         GrpcCallSettings.<ListKeyRingsRequest, ListKeyRingsResponse>newBuilder()
498             .setMethodDescriptor(listKeyRingsMethodDescriptor)
499             .setParamsExtractor(
500                 request -> {
501                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
502                   params.put("parent", String.valueOf(request.getParent()));
503                   return params.build();
504                 })
505             .build();
506     GrpcCallSettings<ListCryptoKeysRequest, ListCryptoKeysResponse>
507         listCryptoKeysTransportSettings =
508             GrpcCallSettings.<ListCryptoKeysRequest, ListCryptoKeysResponse>newBuilder()
509                 .setMethodDescriptor(listCryptoKeysMethodDescriptor)
510                 .setParamsExtractor(
511                     request -> {
512                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
513                       params.put("parent", String.valueOf(request.getParent()));
514                       return params.build();
515                     })
516                 .build();
517     GrpcCallSettings<ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsResponse>
518         listCryptoKeyVersionsTransportSettings =
519             GrpcCallSettings
520                 .<ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsResponse>newBuilder()
521                 .setMethodDescriptor(listCryptoKeyVersionsMethodDescriptor)
522                 .setParamsExtractor(
523                     request -> {
524                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
525                       params.put("parent", String.valueOf(request.getParent()));
526                       return params.build();
527                     })
528                 .build();
529     GrpcCallSettings<ListImportJobsRequest, ListImportJobsResponse>
530         listImportJobsTransportSettings =
531             GrpcCallSettings.<ListImportJobsRequest, ListImportJobsResponse>newBuilder()
532                 .setMethodDescriptor(listImportJobsMethodDescriptor)
533                 .setParamsExtractor(
534                     request -> {
535                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
536                       params.put("parent", String.valueOf(request.getParent()));
537                       return params.build();
538                     })
539                 .build();
540     GrpcCallSettings<GetKeyRingRequest, KeyRing> getKeyRingTransportSettings =
541         GrpcCallSettings.<GetKeyRingRequest, KeyRing>newBuilder()
542             .setMethodDescriptor(getKeyRingMethodDescriptor)
543             .setParamsExtractor(
544                 request -> {
545                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
546                   params.put("name", String.valueOf(request.getName()));
547                   return params.build();
548                 })
549             .build();
550     GrpcCallSettings<GetCryptoKeyRequest, CryptoKey> getCryptoKeyTransportSettings =
551         GrpcCallSettings.<GetCryptoKeyRequest, CryptoKey>newBuilder()
552             .setMethodDescriptor(getCryptoKeyMethodDescriptor)
553             .setParamsExtractor(
554                 request -> {
555                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
556                   params.put("name", String.valueOf(request.getName()));
557                   return params.build();
558                 })
559             .build();
560     GrpcCallSettings<GetCryptoKeyVersionRequest, CryptoKeyVersion>
561         getCryptoKeyVersionTransportSettings =
562             GrpcCallSettings.<GetCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
563                 .setMethodDescriptor(getCryptoKeyVersionMethodDescriptor)
564                 .setParamsExtractor(
565                     request -> {
566                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
567                       params.put("name", String.valueOf(request.getName()));
568                       return params.build();
569                     })
570                 .build();
571     GrpcCallSettings<GetPublicKeyRequest, PublicKey> getPublicKeyTransportSettings =
572         GrpcCallSettings.<GetPublicKeyRequest, PublicKey>newBuilder()
573             .setMethodDescriptor(getPublicKeyMethodDescriptor)
574             .setParamsExtractor(
575                 request -> {
576                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
577                   params.put("name", String.valueOf(request.getName()));
578                   return params.build();
579                 })
580             .build();
581     GrpcCallSettings<GetImportJobRequest, ImportJob> getImportJobTransportSettings =
582         GrpcCallSettings.<GetImportJobRequest, ImportJob>newBuilder()
583             .setMethodDescriptor(getImportJobMethodDescriptor)
584             .setParamsExtractor(
585                 request -> {
586                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
587                   params.put("name", String.valueOf(request.getName()));
588                   return params.build();
589                 })
590             .build();
591     GrpcCallSettings<CreateKeyRingRequest, KeyRing> createKeyRingTransportSettings =
592         GrpcCallSettings.<CreateKeyRingRequest, KeyRing>newBuilder()
593             .setMethodDescriptor(createKeyRingMethodDescriptor)
594             .setParamsExtractor(
595                 request -> {
596                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
597                   params.put("parent", String.valueOf(request.getParent()));
598                   return params.build();
599                 })
600             .build();
601     GrpcCallSettings<CreateCryptoKeyRequest, CryptoKey> createCryptoKeyTransportSettings =
602         GrpcCallSettings.<CreateCryptoKeyRequest, CryptoKey>newBuilder()
603             .setMethodDescriptor(createCryptoKeyMethodDescriptor)
604             .setParamsExtractor(
605                 request -> {
606                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
607                   params.put("parent", String.valueOf(request.getParent()));
608                   return params.build();
609                 })
610             .build();
611     GrpcCallSettings<CreateCryptoKeyVersionRequest, CryptoKeyVersion>
612         createCryptoKeyVersionTransportSettings =
613             GrpcCallSettings.<CreateCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
614                 .setMethodDescriptor(createCryptoKeyVersionMethodDescriptor)
615                 .setParamsExtractor(
616                     request -> {
617                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
618                       params.put("parent", String.valueOf(request.getParent()));
619                       return params.build();
620                     })
621                 .build();
622     GrpcCallSettings<ImportCryptoKeyVersionRequest, CryptoKeyVersion>
623         importCryptoKeyVersionTransportSettings =
624             GrpcCallSettings.<ImportCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
625                 .setMethodDescriptor(importCryptoKeyVersionMethodDescriptor)
626                 .setParamsExtractor(
627                     request -> {
628                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
629                       params.put("parent", String.valueOf(request.getParent()));
630                       return params.build();
631                     })
632                 .build();
633     GrpcCallSettings<CreateImportJobRequest, ImportJob> createImportJobTransportSettings =
634         GrpcCallSettings.<CreateImportJobRequest, ImportJob>newBuilder()
635             .setMethodDescriptor(createImportJobMethodDescriptor)
636             .setParamsExtractor(
637                 request -> {
638                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
639                   params.put("parent", String.valueOf(request.getParent()));
640                   return params.build();
641                 })
642             .build();
643     GrpcCallSettings<UpdateCryptoKeyRequest, CryptoKey> updateCryptoKeyTransportSettings =
644         GrpcCallSettings.<UpdateCryptoKeyRequest, CryptoKey>newBuilder()
645             .setMethodDescriptor(updateCryptoKeyMethodDescriptor)
646             .setParamsExtractor(
647                 request -> {
648                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
649                   params.put("crypto_key.name", String.valueOf(request.getCryptoKey().getName()));
650                   return params.build();
651                 })
652             .build();
653     GrpcCallSettings<UpdateCryptoKeyVersionRequest, CryptoKeyVersion>
654         updateCryptoKeyVersionTransportSettings =
655             GrpcCallSettings.<UpdateCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
656                 .setMethodDescriptor(updateCryptoKeyVersionMethodDescriptor)
657                 .setParamsExtractor(
658                     request -> {
659                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
660                       params.put(
661                           "crypto_key_version.name",
662                           String.valueOf(request.getCryptoKeyVersion().getName()));
663                       return params.build();
664                     })
665                 .build();
666     GrpcCallSettings<UpdateCryptoKeyPrimaryVersionRequest, CryptoKey>
667         updateCryptoKeyPrimaryVersionTransportSettings =
668             GrpcCallSettings.<UpdateCryptoKeyPrimaryVersionRequest, CryptoKey>newBuilder()
669                 .setMethodDescriptor(updateCryptoKeyPrimaryVersionMethodDescriptor)
670                 .setParamsExtractor(
671                     request -> {
672                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
673                       params.put("name", String.valueOf(request.getName()));
674                       return params.build();
675                     })
676                 .build();
677     GrpcCallSettings<DestroyCryptoKeyVersionRequest, CryptoKeyVersion>
678         destroyCryptoKeyVersionTransportSettings =
679             GrpcCallSettings.<DestroyCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
680                 .setMethodDescriptor(destroyCryptoKeyVersionMethodDescriptor)
681                 .setParamsExtractor(
682                     request -> {
683                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
684                       params.put("name", String.valueOf(request.getName()));
685                       return params.build();
686                     })
687                 .build();
688     GrpcCallSettings<RestoreCryptoKeyVersionRequest, CryptoKeyVersion>
689         restoreCryptoKeyVersionTransportSettings =
690             GrpcCallSettings.<RestoreCryptoKeyVersionRequest, CryptoKeyVersion>newBuilder()
691                 .setMethodDescriptor(restoreCryptoKeyVersionMethodDescriptor)
692                 .setParamsExtractor(
693                     request -> {
694                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
695                       params.put("name", String.valueOf(request.getName()));
696                       return params.build();
697                     })
698                 .build();
699     GrpcCallSettings<EncryptRequest, EncryptResponse> encryptTransportSettings =
700         GrpcCallSettings.<EncryptRequest, EncryptResponse>newBuilder()
701             .setMethodDescriptor(encryptMethodDescriptor)
702             .setParamsExtractor(
703                 request -> {
704                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
705                   params.put("name", String.valueOf(request.getName()));
706                   return params.build();
707                 })
708             .build();
709     GrpcCallSettings<DecryptRequest, DecryptResponse> decryptTransportSettings =
710         GrpcCallSettings.<DecryptRequest, DecryptResponse>newBuilder()
711             .setMethodDescriptor(decryptMethodDescriptor)
712             .setParamsExtractor(
713                 request -> {
714                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
715                   params.put("name", String.valueOf(request.getName()));
716                   return params.build();
717                 })
718             .build();
719     GrpcCallSettings<AsymmetricSignRequest, AsymmetricSignResponse>
720         asymmetricSignTransportSettings =
721             GrpcCallSettings.<AsymmetricSignRequest, AsymmetricSignResponse>newBuilder()
722                 .setMethodDescriptor(asymmetricSignMethodDescriptor)
723                 .setParamsExtractor(
724                     request -> {
725                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
726                       params.put("name", String.valueOf(request.getName()));
727                       return params.build();
728                     })
729                 .build();
730     GrpcCallSettings<AsymmetricDecryptRequest, AsymmetricDecryptResponse>
731         asymmetricDecryptTransportSettings =
732             GrpcCallSettings.<AsymmetricDecryptRequest, AsymmetricDecryptResponse>newBuilder()
733                 .setMethodDescriptor(asymmetricDecryptMethodDescriptor)
734                 .setParamsExtractor(
735                     request -> {
736                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
737                       params.put("name", String.valueOf(request.getName()));
738                       return params.build();
739                     })
740                 .build();
741     GrpcCallSettings<MacSignRequest, MacSignResponse> macSignTransportSettings =
742         GrpcCallSettings.<MacSignRequest, MacSignResponse>newBuilder()
743             .setMethodDescriptor(macSignMethodDescriptor)
744             .setParamsExtractor(
745                 request -> {
746                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
747                   params.put("name", String.valueOf(request.getName()));
748                   return params.build();
749                 })
750             .build();
751     GrpcCallSettings<MacVerifyRequest, MacVerifyResponse> macVerifyTransportSettings =
752         GrpcCallSettings.<MacVerifyRequest, MacVerifyResponse>newBuilder()
753             .setMethodDescriptor(macVerifyMethodDescriptor)
754             .setParamsExtractor(
755                 request -> {
756                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
757                   params.put("name", String.valueOf(request.getName()));
758                   return params.build();
759                 })
760             .build();
761     GrpcCallSettings<GenerateRandomBytesRequest, GenerateRandomBytesResponse>
762         generateRandomBytesTransportSettings =
763             GrpcCallSettings.<GenerateRandomBytesRequest, GenerateRandomBytesResponse>newBuilder()
764                 .setMethodDescriptor(generateRandomBytesMethodDescriptor)
765                 .setParamsExtractor(
766                     request -> {
767                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
768                       params.put("location", String.valueOf(request.getLocation()));
769                       return params.build();
770                     })
771                 .build();
772     GrpcCallSettings<ListLocationsRequest, ListLocationsResponse> listLocationsTransportSettings =
773         GrpcCallSettings.<ListLocationsRequest, ListLocationsResponse>newBuilder()
774             .setMethodDescriptor(listLocationsMethodDescriptor)
775             .setParamsExtractor(
776                 request -> {
777                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
778                   params.put("name", String.valueOf(request.getName()));
779                   return params.build();
780                 })
781             .build();
782     GrpcCallSettings<GetLocationRequest, Location> getLocationTransportSettings =
783         GrpcCallSettings.<GetLocationRequest, Location>newBuilder()
784             .setMethodDescriptor(getLocationMethodDescriptor)
785             .setParamsExtractor(
786                 request -> {
787                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
788                   params.put("name", String.valueOf(request.getName()));
789                   return params.build();
790                 })
791             .build();
792     GrpcCallSettings<SetIamPolicyRequest, Policy> setIamPolicyTransportSettings =
793         GrpcCallSettings.<SetIamPolicyRequest, Policy>newBuilder()
794             .setMethodDescriptor(setIamPolicyMethodDescriptor)
795             .setParamsExtractor(
796                 request -> {
797                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
798                   params.put("resource", String.valueOf(request.getResource()));
799                   return params.build();
800                 })
801             .build();
802     GrpcCallSettings<GetIamPolicyRequest, Policy> getIamPolicyTransportSettings =
803         GrpcCallSettings.<GetIamPolicyRequest, Policy>newBuilder()
804             .setMethodDescriptor(getIamPolicyMethodDescriptor)
805             .setParamsExtractor(
806                 request -> {
807                   ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
808                   params.put("resource", String.valueOf(request.getResource()));
809                   return params.build();
810                 })
811             .build();
812     GrpcCallSettings<TestIamPermissionsRequest, TestIamPermissionsResponse>
813         testIamPermissionsTransportSettings =
814             GrpcCallSettings.<TestIamPermissionsRequest, TestIamPermissionsResponse>newBuilder()
815                 .setMethodDescriptor(testIamPermissionsMethodDescriptor)
816                 .setParamsExtractor(
817                     request -> {
818                       ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
819                       params.put("resource", String.valueOf(request.getResource()));
820                       return params.build();
821                     })
822                 .build();
823 
824     this.listKeyRingsCallable =
825         callableFactory.createUnaryCallable(
826             listKeyRingsTransportSettings, settings.listKeyRingsSettings(), clientContext);
827     this.listKeyRingsPagedCallable =
828         callableFactory.createPagedCallable(
829             listKeyRingsTransportSettings, settings.listKeyRingsSettings(), clientContext);
830     this.listCryptoKeysCallable =
831         callableFactory.createUnaryCallable(
832             listCryptoKeysTransportSettings, settings.listCryptoKeysSettings(), clientContext);
833     this.listCryptoKeysPagedCallable =
834         callableFactory.createPagedCallable(
835             listCryptoKeysTransportSettings, settings.listCryptoKeysSettings(), clientContext);
836     this.listCryptoKeyVersionsCallable =
837         callableFactory.createUnaryCallable(
838             listCryptoKeyVersionsTransportSettings,
839             settings.listCryptoKeyVersionsSettings(),
840             clientContext);
841     this.listCryptoKeyVersionsPagedCallable =
842         callableFactory.createPagedCallable(
843             listCryptoKeyVersionsTransportSettings,
844             settings.listCryptoKeyVersionsSettings(),
845             clientContext);
846     this.listImportJobsCallable =
847         callableFactory.createUnaryCallable(
848             listImportJobsTransportSettings, settings.listImportJobsSettings(), clientContext);
849     this.listImportJobsPagedCallable =
850         callableFactory.createPagedCallable(
851             listImportJobsTransportSettings, settings.listImportJobsSettings(), clientContext);
852     this.getKeyRingCallable =
853         callableFactory.createUnaryCallable(
854             getKeyRingTransportSettings, settings.getKeyRingSettings(), clientContext);
855     this.getCryptoKeyCallable =
856         callableFactory.createUnaryCallable(
857             getCryptoKeyTransportSettings, settings.getCryptoKeySettings(), clientContext);
858     this.getCryptoKeyVersionCallable =
859         callableFactory.createUnaryCallable(
860             getCryptoKeyVersionTransportSettings,
861             settings.getCryptoKeyVersionSettings(),
862             clientContext);
863     this.getPublicKeyCallable =
864         callableFactory.createUnaryCallable(
865             getPublicKeyTransportSettings, settings.getPublicKeySettings(), clientContext);
866     this.getImportJobCallable =
867         callableFactory.createUnaryCallable(
868             getImportJobTransportSettings, settings.getImportJobSettings(), clientContext);
869     this.createKeyRingCallable =
870         callableFactory.createUnaryCallable(
871             createKeyRingTransportSettings, settings.createKeyRingSettings(), clientContext);
872     this.createCryptoKeyCallable =
873         callableFactory.createUnaryCallable(
874             createCryptoKeyTransportSettings, settings.createCryptoKeySettings(), clientContext);
875     this.createCryptoKeyVersionCallable =
876         callableFactory.createUnaryCallable(
877             createCryptoKeyVersionTransportSettings,
878             settings.createCryptoKeyVersionSettings(),
879             clientContext);
880     this.importCryptoKeyVersionCallable =
881         callableFactory.createUnaryCallable(
882             importCryptoKeyVersionTransportSettings,
883             settings.importCryptoKeyVersionSettings(),
884             clientContext);
885     this.createImportJobCallable =
886         callableFactory.createUnaryCallable(
887             createImportJobTransportSettings, settings.createImportJobSettings(), clientContext);
888     this.updateCryptoKeyCallable =
889         callableFactory.createUnaryCallable(
890             updateCryptoKeyTransportSettings, settings.updateCryptoKeySettings(), clientContext);
891     this.updateCryptoKeyVersionCallable =
892         callableFactory.createUnaryCallable(
893             updateCryptoKeyVersionTransportSettings,
894             settings.updateCryptoKeyVersionSettings(),
895             clientContext);
896     this.updateCryptoKeyPrimaryVersionCallable =
897         callableFactory.createUnaryCallable(
898             updateCryptoKeyPrimaryVersionTransportSettings,
899             settings.updateCryptoKeyPrimaryVersionSettings(),
900             clientContext);
901     this.destroyCryptoKeyVersionCallable =
902         callableFactory.createUnaryCallable(
903             destroyCryptoKeyVersionTransportSettings,
904             settings.destroyCryptoKeyVersionSettings(),
905             clientContext);
906     this.restoreCryptoKeyVersionCallable =
907         callableFactory.createUnaryCallable(
908             restoreCryptoKeyVersionTransportSettings,
909             settings.restoreCryptoKeyVersionSettings(),
910             clientContext);
911     this.encryptCallable =
912         callableFactory.createUnaryCallable(
913             encryptTransportSettings, settings.encryptSettings(), clientContext);
914     this.decryptCallable =
915         callableFactory.createUnaryCallable(
916             decryptTransportSettings, settings.decryptSettings(), clientContext);
917     this.asymmetricSignCallable =
918         callableFactory.createUnaryCallable(
919             asymmetricSignTransportSettings, settings.asymmetricSignSettings(), clientContext);
920     this.asymmetricDecryptCallable =
921         callableFactory.createUnaryCallable(
922             asymmetricDecryptTransportSettings,
923             settings.asymmetricDecryptSettings(),
924             clientContext);
925     this.macSignCallable =
926         callableFactory.createUnaryCallable(
927             macSignTransportSettings, settings.macSignSettings(), clientContext);
928     this.macVerifyCallable =
929         callableFactory.createUnaryCallable(
930             macVerifyTransportSettings, settings.macVerifySettings(), clientContext);
931     this.generateRandomBytesCallable =
932         callableFactory.createUnaryCallable(
933             generateRandomBytesTransportSettings,
934             settings.generateRandomBytesSettings(),
935             clientContext);
936     this.listLocationsCallable =
937         callableFactory.createUnaryCallable(
938             listLocationsTransportSettings, settings.listLocationsSettings(), clientContext);
939     this.listLocationsPagedCallable =
940         callableFactory.createPagedCallable(
941             listLocationsTransportSettings, settings.listLocationsSettings(), clientContext);
942     this.getLocationCallable =
943         callableFactory.createUnaryCallable(
944             getLocationTransportSettings, settings.getLocationSettings(), clientContext);
945     this.setIamPolicyCallable =
946         callableFactory.createUnaryCallable(
947             setIamPolicyTransportSettings, settings.setIamPolicySettings(), clientContext);
948     this.getIamPolicyCallable =
949         callableFactory.createUnaryCallable(
950             getIamPolicyTransportSettings, settings.getIamPolicySettings(), clientContext);
951     this.testIamPermissionsCallable =
952         callableFactory.createUnaryCallable(
953             testIamPermissionsTransportSettings,
954             settings.testIamPermissionsSettings(),
955             clientContext);
956 
957     this.backgroundResources =
958         new BackgroundResourceAggregation(clientContext.getBackgroundResources());
959   }
960 
getOperationsStub()961   public GrpcOperationsStub getOperationsStub() {
962     return operationsStub;
963   }
964 
965   @Override
listKeyRingsCallable()966   public UnaryCallable<ListKeyRingsRequest, ListKeyRingsResponse> listKeyRingsCallable() {
967     return listKeyRingsCallable;
968   }
969 
970   @Override
listKeyRingsPagedCallable()971   public UnaryCallable<ListKeyRingsRequest, ListKeyRingsPagedResponse> listKeyRingsPagedCallable() {
972     return listKeyRingsPagedCallable;
973   }
974 
975   @Override
listCryptoKeysCallable()976   public UnaryCallable<ListCryptoKeysRequest, ListCryptoKeysResponse> listCryptoKeysCallable() {
977     return listCryptoKeysCallable;
978   }
979 
980   @Override
981   public UnaryCallable<ListCryptoKeysRequest, ListCryptoKeysPagedResponse>
listCryptoKeysPagedCallable()982       listCryptoKeysPagedCallable() {
983     return listCryptoKeysPagedCallable;
984   }
985 
986   @Override
987   public UnaryCallable<ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsResponse>
listCryptoKeyVersionsCallable()988       listCryptoKeyVersionsCallable() {
989     return listCryptoKeyVersionsCallable;
990   }
991 
992   @Override
993   public UnaryCallable<ListCryptoKeyVersionsRequest, ListCryptoKeyVersionsPagedResponse>
listCryptoKeyVersionsPagedCallable()994       listCryptoKeyVersionsPagedCallable() {
995     return listCryptoKeyVersionsPagedCallable;
996   }
997 
998   @Override
listImportJobsCallable()999   public UnaryCallable<ListImportJobsRequest, ListImportJobsResponse> listImportJobsCallable() {
1000     return listImportJobsCallable;
1001   }
1002 
1003   @Override
1004   public UnaryCallable<ListImportJobsRequest, ListImportJobsPagedResponse>
listImportJobsPagedCallable()1005       listImportJobsPagedCallable() {
1006     return listImportJobsPagedCallable;
1007   }
1008 
1009   @Override
getKeyRingCallable()1010   public UnaryCallable<GetKeyRingRequest, KeyRing> getKeyRingCallable() {
1011     return getKeyRingCallable;
1012   }
1013 
1014   @Override
getCryptoKeyCallable()1015   public UnaryCallable<GetCryptoKeyRequest, CryptoKey> getCryptoKeyCallable() {
1016     return getCryptoKeyCallable;
1017   }
1018 
1019   @Override
getCryptoKeyVersionCallable()1020   public UnaryCallable<GetCryptoKeyVersionRequest, CryptoKeyVersion> getCryptoKeyVersionCallable() {
1021     return getCryptoKeyVersionCallable;
1022   }
1023 
1024   @Override
getPublicKeyCallable()1025   public UnaryCallable<GetPublicKeyRequest, PublicKey> getPublicKeyCallable() {
1026     return getPublicKeyCallable;
1027   }
1028 
1029   @Override
getImportJobCallable()1030   public UnaryCallable<GetImportJobRequest, ImportJob> getImportJobCallable() {
1031     return getImportJobCallable;
1032   }
1033 
1034   @Override
createKeyRingCallable()1035   public UnaryCallable<CreateKeyRingRequest, KeyRing> createKeyRingCallable() {
1036     return createKeyRingCallable;
1037   }
1038 
1039   @Override
createCryptoKeyCallable()1040   public UnaryCallable<CreateCryptoKeyRequest, CryptoKey> createCryptoKeyCallable() {
1041     return createCryptoKeyCallable;
1042   }
1043 
1044   @Override
1045   public UnaryCallable<CreateCryptoKeyVersionRequest, CryptoKeyVersion>
createCryptoKeyVersionCallable()1046       createCryptoKeyVersionCallable() {
1047     return createCryptoKeyVersionCallable;
1048   }
1049 
1050   @Override
1051   public UnaryCallable<ImportCryptoKeyVersionRequest, CryptoKeyVersion>
importCryptoKeyVersionCallable()1052       importCryptoKeyVersionCallable() {
1053     return importCryptoKeyVersionCallable;
1054   }
1055 
1056   @Override
createImportJobCallable()1057   public UnaryCallable<CreateImportJobRequest, ImportJob> createImportJobCallable() {
1058     return createImportJobCallable;
1059   }
1060 
1061   @Override
updateCryptoKeyCallable()1062   public UnaryCallable<UpdateCryptoKeyRequest, CryptoKey> updateCryptoKeyCallable() {
1063     return updateCryptoKeyCallable;
1064   }
1065 
1066   @Override
1067   public UnaryCallable<UpdateCryptoKeyVersionRequest, CryptoKeyVersion>
updateCryptoKeyVersionCallable()1068       updateCryptoKeyVersionCallable() {
1069     return updateCryptoKeyVersionCallable;
1070   }
1071 
1072   @Override
1073   public UnaryCallable<UpdateCryptoKeyPrimaryVersionRequest, CryptoKey>
updateCryptoKeyPrimaryVersionCallable()1074       updateCryptoKeyPrimaryVersionCallable() {
1075     return updateCryptoKeyPrimaryVersionCallable;
1076   }
1077 
1078   @Override
1079   public UnaryCallable<DestroyCryptoKeyVersionRequest, CryptoKeyVersion>
destroyCryptoKeyVersionCallable()1080       destroyCryptoKeyVersionCallable() {
1081     return destroyCryptoKeyVersionCallable;
1082   }
1083 
1084   @Override
1085   public UnaryCallable<RestoreCryptoKeyVersionRequest, CryptoKeyVersion>
restoreCryptoKeyVersionCallable()1086       restoreCryptoKeyVersionCallable() {
1087     return restoreCryptoKeyVersionCallable;
1088   }
1089 
1090   @Override
encryptCallable()1091   public UnaryCallable<EncryptRequest, EncryptResponse> encryptCallable() {
1092     return encryptCallable;
1093   }
1094 
1095   @Override
decryptCallable()1096   public UnaryCallable<DecryptRequest, DecryptResponse> decryptCallable() {
1097     return decryptCallable;
1098   }
1099 
1100   @Override
asymmetricSignCallable()1101   public UnaryCallable<AsymmetricSignRequest, AsymmetricSignResponse> asymmetricSignCallable() {
1102     return asymmetricSignCallable;
1103   }
1104 
1105   @Override
1106   public UnaryCallable<AsymmetricDecryptRequest, AsymmetricDecryptResponse>
asymmetricDecryptCallable()1107       asymmetricDecryptCallable() {
1108     return asymmetricDecryptCallable;
1109   }
1110 
1111   @Override
macSignCallable()1112   public UnaryCallable<MacSignRequest, MacSignResponse> macSignCallable() {
1113     return macSignCallable;
1114   }
1115 
1116   @Override
macVerifyCallable()1117   public UnaryCallable<MacVerifyRequest, MacVerifyResponse> macVerifyCallable() {
1118     return macVerifyCallable;
1119   }
1120 
1121   @Override
1122   public UnaryCallable<GenerateRandomBytesRequest, GenerateRandomBytesResponse>
generateRandomBytesCallable()1123       generateRandomBytesCallable() {
1124     return generateRandomBytesCallable;
1125   }
1126 
1127   @Override
listLocationsCallable()1128   public UnaryCallable<ListLocationsRequest, ListLocationsResponse> listLocationsCallable() {
1129     return listLocationsCallable;
1130   }
1131 
1132   @Override
1133   public UnaryCallable<ListLocationsRequest, ListLocationsPagedResponse>
listLocationsPagedCallable()1134       listLocationsPagedCallable() {
1135     return listLocationsPagedCallable;
1136   }
1137 
1138   @Override
getLocationCallable()1139   public UnaryCallable<GetLocationRequest, Location> getLocationCallable() {
1140     return getLocationCallable;
1141   }
1142 
1143   @Override
setIamPolicyCallable()1144   public UnaryCallable<SetIamPolicyRequest, Policy> setIamPolicyCallable() {
1145     return setIamPolicyCallable;
1146   }
1147 
1148   @Override
getIamPolicyCallable()1149   public UnaryCallable<GetIamPolicyRequest, Policy> getIamPolicyCallable() {
1150     return getIamPolicyCallable;
1151   }
1152 
1153   @Override
1154   public UnaryCallable<TestIamPermissionsRequest, TestIamPermissionsResponse>
testIamPermissionsCallable()1155       testIamPermissionsCallable() {
1156     return testIamPermissionsCallable;
1157   }
1158 
1159   @Override
close()1160   public final void close() {
1161     try {
1162       backgroundResources.close();
1163     } catch (RuntimeException e) {
1164       throw e;
1165     } catch (Exception e) {
1166       throw new IllegalStateException("Failed to close resource", e);
1167     }
1168   }
1169 
1170   @Override
shutdown()1171   public void shutdown() {
1172     backgroundResources.shutdown();
1173   }
1174 
1175   @Override
isShutdown()1176   public boolean isShutdown() {
1177     return backgroundResources.isShutdown();
1178   }
1179 
1180   @Override
isTerminated()1181   public boolean isTerminated() {
1182     return backgroundResources.isTerminated();
1183   }
1184 
1185   @Override
shutdownNow()1186   public void shutdownNow() {
1187     backgroundResources.shutdownNow();
1188   }
1189 
1190   @Override
awaitTermination(long duration, TimeUnit unit)1191   public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
1192     return backgroundResources.awaitTermination(duration, unit);
1193   }
1194 }
1195