From 46dcaeb57dc1522511b46c3f6f63e4e3330b4738 Mon Sep 17 00:00:00 2001 From: yoshi-automation Date: Thu, 28 Mar 2019 00:46:31 -0700 Subject: [PATCH] Regenerate iamcredentials client --- .../credentials/v1/IamCredentialsClient.java | 51 ++++++++++++++++--- .../v1/stub/GrpcIamCredentialsStub.java | 49 ++++++++++++++++++ .../v1/IamCredentialsClientTest.java | 10 ++-- .../synth.metadata | 10 ++-- 4 files changed, 104 insertions(+), 16 deletions(-) diff --git a/google-cloud-clients/google-cloud-iamcredentials/src/main/java/com/google/cloud/iam/credentials/v1/IamCredentialsClient.java b/google-cloud-clients/google-cloud-iamcredentials/src/main/java/com/google/cloud/iam/credentials/v1/IamCredentialsClient.java index 58f66c3ad587..0222c89b9e76 100644 --- a/google-cloud-clients/google-cloud-iamcredentials/src/main/java/com/google/cloud/iam/credentials/v1/IamCredentialsClient.java +++ b/google-cloud-clients/google-cloud-iamcredentials/src/main/java/com/google/cloud/iam/credentials/v1/IamCredentialsClient.java @@ -571,10 +571,49 @@ public final UnaryCallable signBlobCallable() * *

    * try (IamCredentialsClient iamCredentialsClient = IamCredentialsClient.create()) {
-   *   String formattedName = ServiceAccountName.format("[PROJECT]", "[SERVICE_ACCOUNT]");
+   *   ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
    *   List<String> delegates = new ArrayList<>();
    *   String payload = "";
-   *   SignJwtResponse response = iamCredentialsClient.signJwt(formattedName, delegates, payload);
+   *   SignJwtResponse response = iamCredentialsClient.signJwt(name, delegates, payload);
+   * }
+   * 
+ * + * @param name The resource name of the service account for which the credentials are requested, + * in the following format: `projects/-/serviceAccounts/{ACCOUNT_EMAIL_OR_UNIQUEID}`. + * @param delegates The sequence of service accounts in a delegation chain. Each service account + * must be granted the `roles/iam.serviceAccountTokenCreator` role on its next service account + * in the chain. The last service account in the chain must be granted the + * `roles/iam.serviceAccountTokenCreator` role on the service account that is specified in the + * `name` field of the request. + *

The delegates must have the following format: + * `projects/-/serviceAccounts/{ACCOUNT_EMAIL_OR_UNIQUEID}` + * @param payload The JWT payload to sign: a JSON object that contains a JWT Claims Set. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final SignJwtResponse signJwt( + ServiceAccountName name, List delegates, String payload) { + + SignJwtRequest request = + SignJwtRequest.newBuilder() + .setName(name == null ? null : name.toString()) + .addAllDelegates(delegates) + .setPayload(payload) + .build(); + return signJwt(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Signs a JWT using a service account's system-managed private key. + * + *

Sample code: + * + *


+   * try (IamCredentialsClient iamCredentialsClient = IamCredentialsClient.create()) {
+   *   ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
+   *   List<String> delegates = new ArrayList<>();
+   *   String payload = "";
+   *   SignJwtResponse response = iamCredentialsClient.signJwt(name.toString(), delegates, payload);
    * }
    * 
* @@ -609,10 +648,10 @@ public final SignJwtResponse signJwt(String name, List delegates, String * *

    * try (IamCredentialsClient iamCredentialsClient = IamCredentialsClient.create()) {
-   *   String formattedName = ServiceAccountName.format("[PROJECT]", "[SERVICE_ACCOUNT]");
+   *   ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
    *   String payload = "";
    *   SignJwtRequest request = SignJwtRequest.newBuilder()
-   *     .setName(formattedName)
+   *     .setName(name.toString())
    *     .setPayload(payload)
    *     .build();
    *   SignJwtResponse response = iamCredentialsClient.signJwt(request);
@@ -634,10 +673,10 @@ public final SignJwtResponse signJwt(SignJwtRequest request) {
    *
    * 

    * try (IamCredentialsClient iamCredentialsClient = IamCredentialsClient.create()) {
-   *   String formattedName = ServiceAccountName.format("[PROJECT]", "[SERVICE_ACCOUNT]");
+   *   ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
    *   String payload = "";
    *   SignJwtRequest request = SignJwtRequest.newBuilder()
-   *     .setName(formattedName)
+   *     .setName(name.toString())
    *     .setPayload(payload)
    *     .build();
    *   ApiFuture<SignJwtResponse> future = iamCredentialsClient.signJwtCallable().futureCall(request);
diff --git a/google-cloud-clients/google-cloud-iamcredentials/src/main/java/com/google/cloud/iam/credentials/v1/stub/GrpcIamCredentialsStub.java b/google-cloud-clients/google-cloud-iamcredentials/src/main/java/com/google/cloud/iam/credentials/v1/stub/GrpcIamCredentialsStub.java
index ec3c3a89f963..ac3de9a8647d 100644
--- a/google-cloud-clients/google-cloud-iamcredentials/src/main/java/com/google/cloud/iam/credentials/v1/stub/GrpcIamCredentialsStub.java
+++ b/google-cloud-clients/google-cloud-iamcredentials/src/main/java/com/google/cloud/iam/credentials/v1/stub/GrpcIamCredentialsStub.java
@@ -21,6 +21,7 @@
 import com.google.api.gax.grpc.GrpcCallSettings;
 import com.google.api.gax.grpc.GrpcStubCallableFactory;
 import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.RequestParamsExtractor;
 import com.google.api.gax.rpc.UnaryCallable;
 import com.google.cloud.iam.credentials.v1.GenerateAccessTokenRequest;
 import com.google.cloud.iam.credentials.v1.GenerateAccessTokenResponse;
@@ -32,9 +33,11 @@
 import com.google.cloud.iam.credentials.v1.SignBlobResponse;
 import com.google.cloud.iam.credentials.v1.SignJwtRequest;
 import com.google.cloud.iam.credentials.v1.SignJwtResponse;
+import com.google.common.collect.ImmutableMap;
 import io.grpc.MethodDescriptor;
 import io.grpc.protobuf.ProtoUtils;
 import java.io.IOException;
+import java.util.Map;
 import java.util.concurrent.TimeUnit;
 import javax.annotation.Generated;
 
@@ -158,19 +161,55 @@ protected GrpcIamCredentialsStub(
         generateAccessTokenTransportSettings =
             GrpcCallSettings.newBuilder()
                 .setMethodDescriptor(generateAccessTokenMethodDescriptor)
+                .setParamsExtractor(
+                    new RequestParamsExtractor() {
+                      @Override
+                      public Map extract(GenerateAccessTokenRequest request) {
+                        ImmutableMap.Builder params = ImmutableMap.builder();
+                        params.put("name", String.valueOf(request.getName()));
+                        return params.build();
+                      }
+                    })
                 .build();
     GrpcCallSettings
         generateIdTokenTransportSettings =
             GrpcCallSettings.newBuilder()
                 .setMethodDescriptor(generateIdTokenMethodDescriptor)
+                .setParamsExtractor(
+                    new RequestParamsExtractor() {
+                      @Override
+                      public Map extract(GenerateIdTokenRequest request) {
+                        ImmutableMap.Builder params = ImmutableMap.builder();
+                        params.put("name", String.valueOf(request.getName()));
+                        return params.build();
+                      }
+                    })
                 .build();
     GrpcCallSettings signBlobTransportSettings =
         GrpcCallSettings.newBuilder()
             .setMethodDescriptor(signBlobMethodDescriptor)
+            .setParamsExtractor(
+                new RequestParamsExtractor() {
+                  @Override
+                  public Map extract(SignBlobRequest request) {
+                    ImmutableMap.Builder params = ImmutableMap.builder();
+                    params.put("name", String.valueOf(request.getName()));
+                    return params.build();
+                  }
+                })
             .build();
     GrpcCallSettings signJwtTransportSettings =
         GrpcCallSettings.newBuilder()
             .setMethodDescriptor(signJwtMethodDescriptor)
+            .setParamsExtractor(
+                new RequestParamsExtractor() {
+                  @Override
+                  public Map extract(SignJwtRequest request) {
+                    ImmutableMap.Builder params = ImmutableMap.builder();
+                    params.put("name", String.valueOf(request.getName()));
+                    return params.build();
+                  }
+                })
             .build();
     GrpcCallSettings<
             GenerateIdentityBindingAccessTokenRequest, GenerateIdentityBindingAccessTokenResponse>
@@ -180,6 +219,16 @@ protected GrpcIamCredentialsStub(
                     GenerateIdentityBindingAccessTokenResponse>
                     newBuilder()
                 .setMethodDescriptor(generateIdentityBindingAccessTokenMethodDescriptor)
+                .setParamsExtractor(
+                    new RequestParamsExtractor() {
+                      @Override
+                      public Map extract(
+                          GenerateIdentityBindingAccessTokenRequest request) {
+                        ImmutableMap.Builder params = ImmutableMap.builder();
+                        params.put("name", String.valueOf(request.getName()));
+                        return params.build();
+                      }
+                    })
                 .build();
 
     this.generateAccessTokenCallable =
diff --git a/google-cloud-clients/google-cloud-iamcredentials/src/test/java/com/google/cloud/iam/credentials/v1/IamCredentialsClientTest.java b/google-cloud-clients/google-cloud-iamcredentials/src/test/java/com/google/cloud/iam/credentials/v1/IamCredentialsClientTest.java
index f6e3d117291e..1a00044a26fe 100644
--- a/google-cloud-clients/google-cloud-iamcredentials/src/test/java/com/google/cloud/iam/credentials/v1/IamCredentialsClientTest.java
+++ b/google-cloud-clients/google-cloud-iamcredentials/src/test/java/com/google/cloud/iam/credentials/v1/IamCredentialsClientTest.java
@@ -231,18 +231,18 @@ public void signJwtTest() {
         SignJwtResponse.newBuilder().setKeyId(keyId).setSignedJwt(signedJwt).build();
     mockIAMCredentials.addResponse(expectedResponse);
 
-    String formattedName = ServiceAccountName.format("[PROJECT]", "[SERVICE_ACCOUNT]");
+    ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
     List delegates = new ArrayList<>();
     String payload = "-114";
 
-    SignJwtResponse actualResponse = client.signJwt(formattedName, delegates, payload);
+    SignJwtResponse actualResponse = client.signJwt(name, delegates, payload);
     Assert.assertEquals(expectedResponse, actualResponse);
 
     List actualRequests = mockIAMCredentials.getRequests();
     Assert.assertEquals(1, actualRequests.size());
     SignJwtRequest actualRequest = (SignJwtRequest) actualRequests.get(0);
 
-    Assert.assertEquals(formattedName, actualRequest.getName());
+    Assert.assertEquals(name, ServiceAccountName.parse(actualRequest.getName()));
     Assert.assertEquals(delegates, actualRequest.getDelegatesList());
     Assert.assertEquals(payload, actualRequest.getPayload());
     Assert.assertTrue(
@@ -258,11 +258,11 @@ public void signJwtExceptionTest() throws Exception {
     mockIAMCredentials.addException(exception);
 
     try {
-      String formattedName = ServiceAccountName.format("[PROJECT]", "[SERVICE_ACCOUNT]");
+      ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
       List delegates = new ArrayList<>();
       String payload = "-114";
 
-      client.signJwt(formattedName, delegates, payload);
+      client.signJwt(name, delegates, payload);
       Assert.fail("No exception raised");
     } catch (InvalidArgumentException e) {
       // Expected exception
diff --git a/google-cloud-clients/google-cloud-iamcredentials/synth.metadata b/google-cloud-clients/google-cloud-iamcredentials/synth.metadata
index afafe9fbe18e..c3dc172297ce 100644
--- a/google-cloud-clients/google-cloud-iamcredentials/synth.metadata
+++ b/google-cloud-clients/google-cloud-iamcredentials/synth.metadata
@@ -1,19 +1,19 @@
 {
-  "updateTime": "2019-03-27T07:47:22.536681Z",
+  "updateTime": "2019-03-28T07:46:30.745415Z",
   "sources": [
     {
       "generator": {
         "name": "artman",
-        "version": "0.16.19",
-        "dockerImage": "googleapis/artman@sha256:70ba28fda87e032ae44e6df41b7fc342c1b0cce1ed90658c4890eb4f613038c2"
+        "version": "0.16.20",
+        "dockerImage": "googleapis/artman@sha256:e3c054a2fb85a12481c722af616c7fb6f1d02d862248385eecbec3e4240ebd1e"
       }
     },
     {
       "git": {
         "name": "googleapis",
         "remote": "https://github.com/googleapis/googleapis.git",
-        "sha": "d4d57d766601105478c661132f2687e6984b92d5",
-        "internalRef": "240469931"
+        "sha": "6a84b3267b0a95e922608b9891219075047eee29",
+        "internalRef": "240640999"
       }
     }
   ],