Skip to content

Commit 00fcb69

Browse files
yoshi-automationPraful Makani
authored andcommitted
Regenerate iamcredentials client (#4768)
1 parent 9b0156b commit 00fcb69

File tree

4 files changed

+104
-16
lines changed

4 files changed

+104
-16
lines changed

google-cloud-clients/google-cloud-iamcredentials/src/main/java/com/google/cloud/iam/credentials/v1/IamCredentialsClient.java

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -571,10 +571,49 @@ public final UnaryCallable<SignBlobRequest, SignBlobResponse> signBlobCallable()
571571
*
572572
* <pre><code>
573573
* try (IamCredentialsClient iamCredentialsClient = IamCredentialsClient.create()) {
574-
* String formattedName = ServiceAccountName.format("[PROJECT]", "[SERVICE_ACCOUNT]");
574+
* ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
575575
* List&lt;String&gt; delegates = new ArrayList&lt;&gt;();
576576
* String payload = "";
577-
* SignJwtResponse response = iamCredentialsClient.signJwt(formattedName, delegates, payload);
577+
* SignJwtResponse response = iamCredentialsClient.signJwt(name, delegates, payload);
578+
* }
579+
* </code></pre>
580+
*
581+
* @param name The resource name of the service account for which the credentials are requested,
582+
* in the following format: `projects/-/serviceAccounts/{ACCOUNT_EMAIL_OR_UNIQUEID}`.
583+
* @param delegates The sequence of service accounts in a delegation chain. Each service account
584+
* must be granted the `roles/iam.serviceAccountTokenCreator` role on its next service account
585+
* in the chain. The last service account in the chain must be granted the
586+
* `roles/iam.serviceAccountTokenCreator` role on the service account that is specified in the
587+
* `name` field of the request.
588+
* <p>The delegates must have the following format:
589+
* `projects/-/serviceAccounts/{ACCOUNT_EMAIL_OR_UNIQUEID}`
590+
* @param payload The JWT payload to sign: a JSON object that contains a JWT Claims Set.
591+
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
592+
*/
593+
public final SignJwtResponse signJwt(
594+
ServiceAccountName name, List<String> delegates, String payload) {
595+
596+
SignJwtRequest request =
597+
SignJwtRequest.newBuilder()
598+
.setName(name == null ? null : name.toString())
599+
.addAllDelegates(delegates)
600+
.setPayload(payload)
601+
.build();
602+
return signJwt(request);
603+
}
604+
605+
// AUTO-GENERATED DOCUMENTATION AND METHOD
606+
/**
607+
* Signs a JWT using a service account's system-managed private key.
608+
*
609+
* <p>Sample code:
610+
*
611+
* <pre><code>
612+
* try (IamCredentialsClient iamCredentialsClient = IamCredentialsClient.create()) {
613+
* ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
614+
* List&lt;String&gt; delegates = new ArrayList&lt;&gt;();
615+
* String payload = "";
616+
* SignJwtResponse response = iamCredentialsClient.signJwt(name.toString(), delegates, payload);
578617
* }
579618
* </code></pre>
580619
*
@@ -609,10 +648,10 @@ public final SignJwtResponse signJwt(String name, List<String> delegates, String
609648
*
610649
* <pre><code>
611650
* try (IamCredentialsClient iamCredentialsClient = IamCredentialsClient.create()) {
612-
* String formattedName = ServiceAccountName.format("[PROJECT]", "[SERVICE_ACCOUNT]");
651+
* ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
613652
* String payload = "";
614653
* SignJwtRequest request = SignJwtRequest.newBuilder()
615-
* .setName(formattedName)
654+
* .setName(name.toString())
616655
* .setPayload(payload)
617656
* .build();
618657
* SignJwtResponse response = iamCredentialsClient.signJwt(request);
@@ -634,10 +673,10 @@ public final SignJwtResponse signJwt(SignJwtRequest request) {
634673
*
635674
* <pre><code>
636675
* try (IamCredentialsClient iamCredentialsClient = IamCredentialsClient.create()) {
637-
* String formattedName = ServiceAccountName.format("[PROJECT]", "[SERVICE_ACCOUNT]");
676+
* ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
638677
* String payload = "";
639678
* SignJwtRequest request = SignJwtRequest.newBuilder()
640-
* .setName(formattedName)
679+
* .setName(name.toString())
641680
* .setPayload(payload)
642681
* .build();
643682
* ApiFuture&lt;SignJwtResponse&gt; future = iamCredentialsClient.signJwtCallable().futureCall(request);

google-cloud-clients/google-cloud-iamcredentials/src/main/java/com/google/cloud/iam/credentials/v1/stub/GrpcIamCredentialsStub.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.google.api.gax.grpc.GrpcCallSettings;
2222
import com.google.api.gax.grpc.GrpcStubCallableFactory;
2323
import com.google.api.gax.rpc.ClientContext;
24+
import com.google.api.gax.rpc.RequestParamsExtractor;
2425
import com.google.api.gax.rpc.UnaryCallable;
2526
import com.google.cloud.iam.credentials.v1.GenerateAccessTokenRequest;
2627
import com.google.cloud.iam.credentials.v1.GenerateAccessTokenResponse;
@@ -32,9 +33,11 @@
3233
import com.google.cloud.iam.credentials.v1.SignBlobResponse;
3334
import com.google.cloud.iam.credentials.v1.SignJwtRequest;
3435
import com.google.cloud.iam.credentials.v1.SignJwtResponse;
36+
import com.google.common.collect.ImmutableMap;
3537
import io.grpc.MethodDescriptor;
3638
import io.grpc.protobuf.ProtoUtils;
3739
import java.io.IOException;
40+
import java.util.Map;
3841
import java.util.concurrent.TimeUnit;
3942
import javax.annotation.Generated;
4043

@@ -158,19 +161,55 @@ protected GrpcIamCredentialsStub(
158161
generateAccessTokenTransportSettings =
159162
GrpcCallSettings.<GenerateAccessTokenRequest, GenerateAccessTokenResponse>newBuilder()
160163
.setMethodDescriptor(generateAccessTokenMethodDescriptor)
164+
.setParamsExtractor(
165+
new RequestParamsExtractor<GenerateAccessTokenRequest>() {
166+
@Override
167+
public Map<String, String> extract(GenerateAccessTokenRequest request) {
168+
ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
169+
params.put("name", String.valueOf(request.getName()));
170+
return params.build();
171+
}
172+
})
161173
.build();
162174
GrpcCallSettings<GenerateIdTokenRequest, GenerateIdTokenResponse>
163175
generateIdTokenTransportSettings =
164176
GrpcCallSettings.<GenerateIdTokenRequest, GenerateIdTokenResponse>newBuilder()
165177
.setMethodDescriptor(generateIdTokenMethodDescriptor)
178+
.setParamsExtractor(
179+
new RequestParamsExtractor<GenerateIdTokenRequest>() {
180+
@Override
181+
public Map<String, String> extract(GenerateIdTokenRequest request) {
182+
ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
183+
params.put("name", String.valueOf(request.getName()));
184+
return params.build();
185+
}
186+
})
166187
.build();
167188
GrpcCallSettings<SignBlobRequest, SignBlobResponse> signBlobTransportSettings =
168189
GrpcCallSettings.<SignBlobRequest, SignBlobResponse>newBuilder()
169190
.setMethodDescriptor(signBlobMethodDescriptor)
191+
.setParamsExtractor(
192+
new RequestParamsExtractor<SignBlobRequest>() {
193+
@Override
194+
public Map<String, String> extract(SignBlobRequest request) {
195+
ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
196+
params.put("name", String.valueOf(request.getName()));
197+
return params.build();
198+
}
199+
})
170200
.build();
171201
GrpcCallSettings<SignJwtRequest, SignJwtResponse> signJwtTransportSettings =
172202
GrpcCallSettings.<SignJwtRequest, SignJwtResponse>newBuilder()
173203
.setMethodDescriptor(signJwtMethodDescriptor)
204+
.setParamsExtractor(
205+
new RequestParamsExtractor<SignJwtRequest>() {
206+
@Override
207+
public Map<String, String> extract(SignJwtRequest request) {
208+
ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
209+
params.put("name", String.valueOf(request.getName()));
210+
return params.build();
211+
}
212+
})
174213
.build();
175214
GrpcCallSettings<
176215
GenerateIdentityBindingAccessTokenRequest, GenerateIdentityBindingAccessTokenResponse>
@@ -180,6 +219,16 @@ protected GrpcIamCredentialsStub(
180219
GenerateIdentityBindingAccessTokenResponse>
181220
newBuilder()
182221
.setMethodDescriptor(generateIdentityBindingAccessTokenMethodDescriptor)
222+
.setParamsExtractor(
223+
new RequestParamsExtractor<GenerateIdentityBindingAccessTokenRequest>() {
224+
@Override
225+
public Map<String, String> extract(
226+
GenerateIdentityBindingAccessTokenRequest request) {
227+
ImmutableMap.Builder<String, String> params = ImmutableMap.builder();
228+
params.put("name", String.valueOf(request.getName()));
229+
return params.build();
230+
}
231+
})
183232
.build();
184233

185234
this.generateAccessTokenCallable =

google-cloud-clients/google-cloud-iamcredentials/src/test/java/com/google/cloud/iam/credentials/v1/IamCredentialsClientTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -231,18 +231,18 @@ public void signJwtTest() {
231231
SignJwtResponse.newBuilder().setKeyId(keyId).setSignedJwt(signedJwt).build();
232232
mockIAMCredentials.addResponse(expectedResponse);
233233

234-
String formattedName = ServiceAccountName.format("[PROJECT]", "[SERVICE_ACCOUNT]");
234+
ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
235235
List<String> delegates = new ArrayList<>();
236236
String payload = "-114";
237237

238-
SignJwtResponse actualResponse = client.signJwt(formattedName, delegates, payload);
238+
SignJwtResponse actualResponse = client.signJwt(name, delegates, payload);
239239
Assert.assertEquals(expectedResponse, actualResponse);
240240

241241
List<GeneratedMessageV3> actualRequests = mockIAMCredentials.getRequests();
242242
Assert.assertEquals(1, actualRequests.size());
243243
SignJwtRequest actualRequest = (SignJwtRequest) actualRequests.get(0);
244244

245-
Assert.assertEquals(formattedName, actualRequest.getName());
245+
Assert.assertEquals(name, ServiceAccountName.parse(actualRequest.getName()));
246246
Assert.assertEquals(delegates, actualRequest.getDelegatesList());
247247
Assert.assertEquals(payload, actualRequest.getPayload());
248248
Assert.assertTrue(
@@ -258,11 +258,11 @@ public void signJwtExceptionTest() throws Exception {
258258
mockIAMCredentials.addException(exception);
259259

260260
try {
261-
String formattedName = ServiceAccountName.format("[PROJECT]", "[SERVICE_ACCOUNT]");
261+
ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
262262
List<String> delegates = new ArrayList<>();
263263
String payload = "-114";
264264

265-
client.signJwt(formattedName, delegates, payload);
265+
client.signJwt(name, delegates, payload);
266266
Assert.fail("No exception raised");
267267
} catch (InvalidArgumentException e) {
268268
// Expected exception

google-cloud-clients/google-cloud-iamcredentials/synth.metadata

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
{
2-
"updateTime": "2019-03-27T07:47:22.536681Z",
2+
"updateTime": "2019-03-28T07:46:30.745415Z",
33
"sources": [
44
{
55
"generator": {
66
"name": "artman",
7-
"version": "0.16.19",
8-
"dockerImage": "googleapis/artman@sha256:70ba28fda87e032ae44e6df41b7fc342c1b0cce1ed90658c4890eb4f613038c2"
7+
"version": "0.16.20",
8+
"dockerImage": "googleapis/artman@sha256:e3c054a2fb85a12481c722af616c7fb6f1d02d862248385eecbec3e4240ebd1e"
99
}
1010
},
1111
{
1212
"git": {
1313
"name": "googleapis",
1414
"remote": "https://github.com/googleapis/googleapis.git",
15-
"sha": "d4d57d766601105478c661132f2687e6984b92d5",
16-
"internalRef": "240469931"
15+
"sha": "6a84b3267b0a95e922608b9891219075047eee29",
16+
"internalRef": "240640999"
1717
}
1818
}
1919
],

0 commit comments

Comments
 (0)