diff --git a/src/main/java/com/google/api/generator/engine/ast/JavaDocComment.java b/src/main/java/com/google/api/generator/engine/ast/JavaDocComment.java index 733223df06..12300b862c 100644 --- a/src/main/java/com/google/api/generator/engine/ast/JavaDocComment.java +++ b/src/main/java/com/google/api/generator/engine/ast/JavaDocComment.java @@ -92,9 +92,7 @@ public Builder addSampleCode(String sampleCode) { Arrays.stream(sampleCode.split("\\r?\\n")) .forEach( line -> { - // TODO(summerji): Temporary solution to escape character @ in
{@code...}
- // markdown code block.
- componentsList.add(line.replace("@Override", "{@literal @}Override"));
+ componentsList.add(line);
});
componentsList.add("}");
return this;
diff --git a/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java
index fa6de000a1..9fe1ff6eca 100644
--- a/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java
+++ b/src/main/java/com/google/api/generator/gapic/composer/ClientLibraryPackageInfoComposer.java
@@ -20,6 +20,8 @@
import com.google.api.generator.engine.ast.JavaDocComment;
import com.google.api.generator.engine.ast.PackageInfoDefinition;
import com.google.api.generator.engine.ast.TypeNode;
+import com.google.api.generator.engine.ast.VaporReference;
+import com.google.api.generator.gapic.composer.samplecode.ServiceClientSampleCodeComposer;
import com.google.api.generator.gapic.composer.utils.ClassNames;
import com.google.api.generator.gapic.model.GapicContext;
import com.google.api.generator.gapic.model.GapicPackageInfo;
@@ -111,7 +113,16 @@ private static CommentStatement createPackageInfoJavadoc(GapicContext context) {
javaDocCommentBuilder =
javaDocCommentBuilder.addParagraph(
String.format(SAMPLE_CODE_HEADER_PATTERN, javaClientName));
- // TODO(summerji): Add package-info.java sample code here.
+ TypeNode clientType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setPakkage(service.pakkage())
+ .setName(ClassNames.getServiceClientClassName(service))
+ .build());
+ String packageInfoSampleCode =
+ ServiceClientSampleCodeComposer.composeClassHeaderMethodSampleCode(
+ service, clientType, context.resourceNames(), context.messages());
+ javaDocCommentBuilder.addSampleCode(packageInfoSampleCode);
}
return CommentStatement.withComment(javaDocCommentBuilder.build());
diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java
index 29a9c4db1e..45757f71bd 100644
--- a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java
+++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientClassComposer.java
@@ -129,7 +129,8 @@ public GapicClass generate(
ClassDefinition classDef =
ClassDefinition.builder()
- .setHeaderCommentStatements(createClassHeaderComments(service, typeStore))
+ .setHeaderCommentStatements(
+ createClassHeaderComments(service, typeStore, resourceNames, messageTypes))
.setPackageString(pakkage)
.setAnnotations(createClassAnnotations(pakkage, typeStore))
.setScope(ScopeNode.PUBLIC)
@@ -161,9 +162,15 @@ private static List{@code...} tags.
+ return formattedSampleCode.replaceAll("@", "{@literal @}");
}
}
diff --git a/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientSampleCodeComposer.java b/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientSampleCodeComposer.java
index a3adb6486a..1951beb93b 100644
--- a/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientSampleCodeComposer.java
+++ b/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientSampleCodeComposer.java
@@ -44,6 +44,7 @@
import com.google.api.generator.gapic.model.Method.Stream;
import com.google.api.generator.gapic.model.MethodArgument;
import com.google.api.generator.gapic.model.ResourceName;
+import com.google.api.generator.gapic.model.Service;
import com.google.api.generator.gapic.utils.JavaStyle;
import com.google.common.base.Preconditions;
import java.util.ArrayList;
@@ -56,8 +57,31 @@
public class ServiceClientSampleCodeComposer {
+ public static String composeClassHeaderMethodSampleCode(
+ Service service,
+ TypeNode clientType,
+ Map resourceNames,
+ Map messageTypes) {
+ // Use the first pure unary RPC method's sample code as showcase, if no such method exists, use
+ // the first method in the service's methods list.
+ Method method =
+ service.methods().stream()
+ .filter(m -> m.stream() == Stream.NONE && !m.hasLro() && !m.isPaged())
+ .findFirst()
+ .orElse(service.methods().get(0));
+ if (method.stream() == Stream.NONE) {
+ if (method.methodSignatures().isEmpty()) {
+ return composeRpcDefaultMethodHeaderSampleCode(
+ method, clientType, resourceNames, messageTypes);
+ }
+ return composeRpcMethodHeaderSampleCode(
+ method, clientType, method.methodSignatures().get(0), resourceNames, messageTypes);
+ }
+ return composeStreamCallableMethodHeaderSampleCode(
+ method, clientType, resourceNames, messageTypes);
+ }
+
public static String composeClassHeaderCredentialsSampleCode(
- // TODO(summerji): Add unit tests for composeClassHeaderCredentialsSampleCode.
TypeNode clientType, TypeNode settingsType) {
// Initialize clientSettings with builder() method.
// e.g. EchoSettings echoSettings =
@@ -130,7 +154,6 @@ public static String composeClassHeaderCredentialsSampleCode(
}
public static String composeClassHeaderEndpointSampleCode(
- // TODO(summerji): Add unit tests for composeClassHeaderEndpointSampleCode.
TypeNode clientType, TypeNode settingsType) {
// Initialize client settings with builder() method.
// e.g. EchoSettings echoSettings = EchoSettings.newBuilder().setEndpoint("myEndpoint").build();
diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoClient.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoClient.golden
index 9d9e299fa1..caf5f4108e 100644
--- a/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoClient.golden
+++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/EchoClient.golden
@@ -34,6 +34,12 @@ import javax.annotation.Generated;
* This class provides the ability to make remote calls to the backing service through method calls
* that map to API methods. Sample code to get started:
*
+ * {@code
+ * try (EchoClient echoClient = EchoClient.create()) {
+ * EchoResponse response = echoClient.echo();
+ * }
+ * }
+ *
* Note: close() needs to be called on the EchoClient object to clean up resources such as
* threads. In the example above, try-with-resources is used, which automatically calls close().
*
diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/IdentityClient.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/IdentityClient.golden
index e68742165d..ea5a23008b 100644
--- a/src/test/java/com/google/api/generator/gapic/composer/goldens/IdentityClient.golden
+++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/IdentityClient.golden
@@ -24,6 +24,15 @@ import javax.annotation.Generated;
* This class provides the ability to make remote calls to the backing service through method calls
* that map to API methods. Sample code to get started:
*
+ *
{@code
+ * try (IdentityClient identityClient = IdentityClient.create()) {
+ * String parent = UserName.of("[USER]").toString();
+ * String displayName = "displayName1714148973";
+ * String email = "email96619420";
+ * User response = identityClient.createUser(parent, displayName, email);
+ * }
+ * }
+ *
* Note: close() needs to be called on the IdentityClient object to clean up resources such as
* threads. In the example above, try-with-resources is used, which automatically calls close().
*
diff --git a/src/test/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientSampleCodeComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientSampleCodeComposerTest.java
index 85bba288e8..0b42cae251 100644
--- a/src/test/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientSampleCodeComposerTest.java
+++ b/src/test/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientSampleCodeComposerTest.java
@@ -30,14 +30,19 @@
import com.google.api.generator.gapic.model.MethodArgument;
import com.google.api.generator.gapic.model.ResourceName;
import com.google.api.generator.gapic.model.ResourceReference;
+import com.google.api.generator.gapic.model.Service;
import com.google.api.generator.gapic.protoparser.Parser;
import com.google.api.generator.testutils.LineFormatter;
import com.google.protobuf.Descriptors.FileDescriptor;
+import com.google.protobuf.Descriptors.ServiceDescriptor;
import com.google.showcase.v1beta1.EchoOuterClass;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
import org.junit.Test;
public class ServiceClientSampleCodeComposerTest {
@@ -45,6 +50,268 @@ public class ServiceClientSampleCodeComposerTest {
private static final String LRO_PACKAGE_NAME = "com.google.longrunning";
private static final String PROTO_PACKAGE_NAME = "com.google.protobuf";
+ // =============================== Class Header Sample Code ===============================//
+ @Test
+ public void composeClassHeaderMethodSampleCode_unaryRpc() {
+ FileDescriptor echoFileDescriptor = EchoOuterClass.getDescriptor();
+ Map resourceNames = Parser.parseResourceNames(echoFileDescriptor);
+ Map messageTypes = Parser.parseMessages(echoFileDescriptor);
+ ServiceDescriptor echoService = echoFileDescriptor.getServices().get(0);
+ Set outputResourceNames = new HashSet<>();
+ List services =
+ Parser.parseService(
+ echoFileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames);
+ Service echoProtoService = services.get(0);
+ TypeNode clientType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("EchoClient")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ String results = ServiceClientSampleCodeComposer.composeClassHeaderMethodSampleCode(echoProtoService, clientType, resourceNames, messageTypes);
+ String expected =
+ LineFormatter.lines(
+ "try (EchoClient echoClient = EchoClient.create()) {\n",
+ " EchoResponse response = echoClient.echo();\n",
+ "}");
+ assertEquals(expected, results);
+ }
+
+ @Test
+ public void composeClassHeaderMethodSampleCode_firstMethodIsNotUnaryRpc() {
+ FileDescriptor echoFileDescriptor = EchoOuterClass.getDescriptor();
+ Map resourceNames = Parser.parseResourceNames(echoFileDescriptor);
+ Map messageTypes = Parser.parseMessages(echoFileDescriptor);
+ TypeNode inputType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("WaitRequest")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ TypeNode outputType =
+ TypeNode.withReference(
+ VaporReference.builder().setName("Operation").setPakkage(LRO_PACKAGE_NAME).build());
+ TypeNode responseType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("WaitResponse")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ TypeNode metadataType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("WaitMetadata")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ LongrunningOperation lro = LongrunningOperation.withTypes(responseType, metadataType);
+ TypeNode ttlTypeNode =
+ TypeNode.withReference(
+ VaporReference.builder().setName("Duration").setPakkage(PROTO_PACKAGE_NAME).build());
+ MethodArgument ttl =
+ MethodArgument.builder()
+ .setName("ttl")
+ .setType(ttlTypeNode)
+ .setField(
+ Field.builder()
+ .setName("ttl")
+ .setType(ttlTypeNode)
+ .setIsMessage(true)
+ .setIsContainedInOneof(true)
+ .build())
+ .build();
+ Method method =
+ Method.builder()
+ .setName("Wait")
+ .setInputType(inputType)
+ .setOutputType(outputType)
+ .setLro(lro)
+ .setMethodSignatures(Arrays.asList(Arrays.asList(ttl)))
+ .build();
+ Service service = Service.builder()
+ .setName("Echo")
+ .setDefaultHost("localhost:7469")
+ .setOauthScopes(Arrays.asList("https://www.googleapis.com/auth/cloud-platform"))
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .setProtoPakkage(SHOWCASE_PACKAGE_NAME)
+ .setOriginalJavaPackage(SHOWCASE_PACKAGE_NAME)
+ .setOverriddenName("Echo")
+ .setMethods(Arrays.asList(method))
+ .build();
+ TypeNode clientType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("EchoClient")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ String results =
+ ServiceClientSampleCodeComposer.composeClassHeaderMethodSampleCode(
+ service, clientType, resourceNames, messageTypes);
+ String expected =
+ LineFormatter.lines(
+ "try (EchoClient echoClient = EchoClient.create()) {\n",
+ " Duration ttl = Duration.newBuilder().build();\n",
+ " WaitResponse response = echoClient.waitAsync(ttl).get();\n",
+ "}");
+ assertEquals(results, expected);
+ }
+
+ @Test
+ public void composeClassHeaderMethodSampleCode_firstMethodHasNoSignatures() {
+ FileDescriptor echoFileDescriptor = EchoOuterClass.getDescriptor();
+ Map resourceNames = Parser.parseResourceNames(echoFileDescriptor);
+ Map messageTypes = Parser.parseMessages(echoFileDescriptor);
+ TypeNode inputType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("EchoRequest")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ TypeNode outputType =
+ TypeNode.withReference(
+ VaporReference.builder().setName("EchoResponse").setPakkage(SHOWCASE_PACKAGE_NAME).build());
+ Method method =
+ Method.builder()
+ .setName("Echo")
+ .setInputType(inputType)
+ .setOutputType(outputType)
+ .setMethodSignatures(Collections.emptyList())
+ .build();
+ Service service = Service.builder()
+ .setName("Echo")
+ .setDefaultHost("localhost:7469")
+ .setOauthScopes(Arrays.asList("https://www.googleapis.com/auth/cloud-platform"))
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .setProtoPakkage(SHOWCASE_PACKAGE_NAME)
+ .setOriginalJavaPackage(SHOWCASE_PACKAGE_NAME)
+ .setOverriddenName("Echo")
+ .setMethods(Arrays.asList(method))
+ .build();
+ TypeNode clientType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("EchoClient")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ String results =
+ ServiceClientSampleCodeComposer.composeClassHeaderMethodSampleCode(
+ service, clientType, resourceNames, messageTypes);
+ String expected =
+ LineFormatter.lines(
+ "try (EchoClient echoClient = EchoClient.create()) {\n",
+ " EchoRequest request =\n",
+ " EchoRequest.newBuilder()\n",
+ " .setName(FoobarName.ofProjectFoobarName(\"[PROJECT]\", \"[FOOBAR]\").toString())\n",
+ " .setParent(FoobarName.ofProjectFoobarName(\"[PROJECT]\", \"[FOOBAR]\").toString())\n",
+ " .setFoobar(Foobar.newBuilder().build())\n",
+ " .build();\n",
+ " EchoResponse response = echoClient.echo(request);\n",
+ "}");
+ assertEquals(results, expected);
+ }
+
+ @Test
+ public void composeClassHeaderMethodSampleCode_firstMethodIsStream() {
+ FileDescriptor echoFileDescriptor = EchoOuterClass.getDescriptor();
+ Map resourceNames = Parser.parseResourceNames(echoFileDescriptor);
+ Map messageTypes = Parser.parseMessages(echoFileDescriptor);
+ TypeNode inputType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("ExpandRequest")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ TypeNode outputType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("EchoResponse")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ Method method =
+ Method.builder()
+ .setName("Expand")
+ .setInputType(inputType)
+ .setOutputType(outputType)
+ .setStream(Stream.SERVER)
+ .build();
+ Service service = Service.builder()
+ .setName("Echo")
+ .setDefaultHost("localhost:7469")
+ .setOauthScopes(Arrays.asList("https://www.googleapis.com/auth/cloud-platform"))
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .setProtoPakkage(SHOWCASE_PACKAGE_NAME)
+ .setOriginalJavaPackage(SHOWCASE_PACKAGE_NAME)
+ .setOverriddenName("Echo")
+ .setMethods(Arrays.asList(method))
+ .build();
+ TypeNode clientType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("EchoClient")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ String results = ServiceClientSampleCodeComposer.composeClassHeaderMethodSampleCode(service, clientType, resourceNames, messageTypes);
+ String expected =
+ LineFormatter.lines(
+ "try (EchoClient echoClient = EchoClient.create()) {\n",
+ " ExpandRequest request =\n",
+ " ExpandRequest.newBuilder().setContent(\"content951530617\").setInfo(\"info3237038\").build();\n",
+ " ServerStream stream = echoClient.expandCallable().call(request);\n",
+ " for (EchoResponse response : stream) {\n",
+ " // Do something when a response is received.\n",
+ " }\n",
+ "}");
+ assertEquals(results, expected);
+ }
+
+ @Test
+ public void composeClassHeaderCredentialsSampleCode() {
+ TypeNode clientType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("EchoClient")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ TypeNode settingsType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("EchoSettings")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ String results =
+ ServiceClientSampleCodeComposer.composeClassHeaderCredentialsSampleCode(clientType, settingsType);
+ String expected =
+ LineFormatter.lines(
+ "EchoSettings echoSettings =\n",
+ " EchoSettings.newBuilder()\n",
+ " .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))\n",
+ " .build();\n",
+ "EchoClient echoClient = EchoClient.create(echoSettings);");
+ assertEquals(expected, results);
+ }
+
+ @Test
+ public void composeClassHeaderEndpointSampleCode() {
+ TypeNode clientType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("EchoClient")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ TypeNode settingsType =
+ TypeNode.withReference(
+ VaporReference.builder()
+ .setName("EchoSettings")
+ .setPakkage(SHOWCASE_PACKAGE_NAME)
+ .build());
+ String results =
+ ServiceClientSampleCodeComposer.composeClassHeaderEndpointSampleCode(clientType, settingsType);
+ String expected =
+ LineFormatter.lines(
+ "EchoSettings echoSettings = EchoSettings.newBuilder().setEndpoint(myEndpoint).build();\n",
+ "EchoClient echoClient = EchoClient.create(echoSettings);");
+ assertEquals(expected, results);
+ }
+
// =======================================Unary RPC Method Sample Code=======================//
@Test
public void validComposeRpcMethodHeaderSampleCode_pureUnaryRpc() {
@@ -1894,17 +2161,17 @@ public void validComposeStreamCallableMethodHeaderSampleCode_clientStream() {
"try (EchoClient echoClient = EchoClient.create()) {\n",
" ApiStreamObserver responseObserver =\n",
" new ApiStreamObserver() {\n",
- " @Override\n",
+ " {@literal @}Override\n",
" public void onNext(EchoResponse response) {\n",
" // Do something when a response is received.\n",
" }\n",
"\n",
- " @Override\n",
+ " {@literal @}Override\n",
" public void onError(Throwable t) {\n",
" // Add error-handling\n",
" }\n",
"\n",
- " @Override\n",
+ " {@literal @}Override\n",
" public void onCompleted() {\n",
" // Do something when complete.\n",
" }\n",
diff --git a/test/integration/goldens/asset/AssetServiceClient.java b/test/integration/goldens/asset/AssetServiceClient.java
index 66f9f6589e..b838391926 100644
--- a/test/integration/goldens/asset/AssetServiceClient.java
+++ b/test/integration/goldens/asset/AssetServiceClient.java
@@ -46,6 +46,18 @@
* This class provides the ability to make remote calls to the backing service through method
* calls that map to API methods. Sample code to get started:
*
+ *
{@code
+ * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
+ * BatchGetAssetsHistoryRequest request =
+ * BatchGetAssetsHistoryRequest.newBuilder()
+ * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString())
+ * .addAllAssetNames(new ArrayList())
+ * .setReadTimeWindow(TimeWindow.newBuilder().build())
+ * .build();
+ * BatchGetAssetsHistoryResponse response = assetServiceClient.batchGetAssetsHistory(request);
+ * }
+ * }
+ *
* Note: close() needs to be called on the AssetServiceClient object to clean up resources such
* as threads. In the example above, try-with-resources is used, which automatically calls close().
*
diff --git a/test/integration/goldens/asset/package-info.java b/test/integration/goldens/asset/package-info.java
index e57f641808..1d38c8e91e 100644
--- a/test/integration/goldens/asset/package-info.java
+++ b/test/integration/goldens/asset/package-info.java
@@ -22,6 +22,18 @@
*
Service Description: Asset service definition.
*
*
Sample for AssetServiceClient:
+ *
+ *
{@code
+ * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
+ * BatchGetAssetsHistoryRequest request =
+ * BatchGetAssetsHistoryRequest.newBuilder()
+ * .setParent(ProjectName.of("[PROJECT]").toString())
+ * .addAllAssetNames(new ArrayList())
+ * .setReadTimeWindow(TimeWindow.newBuilder().build())
+ * .build();
+ * BatchGetAssetsHistoryResponse response = assetServiceClient.batchGetAssetsHistory(request);
+ * }
+ * }
*/
@Generated("by gapic-generator-java")
package com.google.cloud.asset.v1;
diff --git a/test/integration/goldens/credentials/IamCredentialsClient.java b/test/integration/goldens/credentials/IamCredentialsClient.java
index 6dd22974d7..dd6d14576c 100644
--- a/test/integration/goldens/credentials/IamCredentialsClient.java
+++ b/test/integration/goldens/credentials/IamCredentialsClient.java
@@ -42,6 +42,17 @@
* This class provides the ability to make remote calls to the backing service through method
* calls that map to API methods. Sample code to get started:
*
+ *
{@code
+ * try (IamCredentialsClient iamCredentialsClient = IamCredentialsClient.create()) {
+ * ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
+ * List delegates = new ArrayList<>();
+ * List scope = new ArrayList<>();
+ * Duration lifetime = Duration.newBuilder().build();
+ * GenerateAccessTokenResponse response =
+ * iamCredentialsClient.generateAccessToken(name, delegates, scope, lifetime);
+ * }
+ * }
+ *
* Note: close() needs to be called on the IamCredentialsClient object to clean up resources such
* as threads. In the example above, try-with-resources is used, which automatically calls close().
*
diff --git a/test/integration/goldens/credentials/package-info.java b/test/integration/goldens/credentials/package-info.java
index dd29f50059..44fccd4d71 100644
--- a/test/integration/goldens/credentials/package-info.java
+++ b/test/integration/goldens/credentials/package-info.java
@@ -29,6 +29,17 @@
* self-signed JSON Web Tokens (JWTs), and more.
*
*
Sample for IamCredentialsClient:
+ *
+ *
{@code
+ * try (IamCredentialsClient iamCredentialsClient = IamCredentialsClient.create()) {
+ * ServiceAccountName name = ServiceAccountName.of("[PROJECT]", "[SERVICE_ACCOUNT]");
+ * List delegates = new ArrayList<>();
+ * List scope = new ArrayList<>();
+ * Duration lifetime = Duration.newBuilder().build();
+ * GenerateAccessTokenResponse response =
+ * iamCredentialsClient.generateAccessToken(name, delegates, scope, lifetime);
+ * }
+ * }
*/
@Generated("by gapic-generator-java")
package com.google.cloud.iam.credentials.v1;
diff --git a/test/integration/goldens/library/LibraryServiceClient.java b/test/integration/goldens/library/LibraryServiceClient.java
index 8cb759bc3a..71f65f763b 100644
--- a/test/integration/goldens/library/LibraryServiceClient.java
+++ b/test/integration/goldens/library/LibraryServiceClient.java
@@ -66,6 +66,13 @@
* This class provides the ability to make remote calls to the backing service through method
* calls that map to API methods. Sample code to get started:
*
+ *
{@code
+ * try (LibraryServiceClient libraryServiceClient = LibraryServiceClient.create()) {
+ * Shelf shelf = Shelf.newBuilder().build();
+ * Shelf response = libraryServiceClient.createShelf(shelf);
+ * }
+ * }
+ *
* Note: close() needs to be called on the LibraryServiceClient object to clean up resources such
* as threads. In the example above, try-with-resources is used, which automatically calls close().
*
diff --git a/test/integration/goldens/library/package-info.java b/test/integration/goldens/library/package-info.java
index 17a7499dac..708b4eb1d1 100644
--- a/test/integration/goldens/library/package-info.java
+++ b/test/integration/goldens/library/package-info.java
@@ -29,6 +29,13 @@
* `shelves/*/books/*`
*
*
Sample for LibraryServiceClient:
+ *
+ *
{@code
+ * try (LibraryServiceClient libraryServiceClient = LibraryServiceClient.create()) {
+ * Shelf shelf = Shelf.newBuilder().build();
+ * Shelf response = libraryServiceClient.createShelf(shelf);
+ * }
+ * }
*/
@Generated("by gapic-generator-java")
package com.google.cloud.example.library.v1;
diff --git a/test/integration/goldens/logging/ConfigClient.java b/test/integration/goldens/logging/ConfigClient.java
index 5e50999446..d36cf98868 100644
--- a/test/integration/goldens/logging/ConfigClient.java
+++ b/test/integration/goldens/logging/ConfigClient.java
@@ -75,6 +75,18 @@
* This class provides the ability to make remote calls to the backing service through method
* calls that map to API methods. Sample code to get started:
*
+ *
{@code
+ * try (ConfigClient configClient = ConfigClient.create()) {
+ * GetBucketRequest request =
+ * GetBucketRequest.newBuilder()
+ * .setName(
+ * LogBucketName.ofProjectLocationBucketName("[PROJECT]", "[LOCATION]", "[BUCKET]")
+ * .toString())
+ * .build();
+ * LogBucket response = configClient.getBucket(request);
+ * }
+ * }
+ *
* Note: close() needs to be called on the ConfigClient object to clean up resources such as
* threads. In the example above, try-with-resources is used, which automatically calls close().
*
diff --git a/test/integration/goldens/logging/LoggingClient.java b/test/integration/goldens/logging/LoggingClient.java
index c4941027e1..777f7cec46 100644
--- a/test/integration/goldens/logging/LoggingClient.java
+++ b/test/integration/goldens/logging/LoggingClient.java
@@ -60,6 +60,13 @@
*
This class provides the ability to make remote calls to the backing service through method
* calls that map to API methods. Sample code to get started:
*
+ *
{@code
+ * try (LoggingClient loggingClient = LoggingClient.create()) {
+ * LogName logName = LogName.ofProjectLogName("[PROJECT]", "[LOG]");
+ * loggingClient.deleteLog(logName);
+ * }
+ * }
+ *
* Note: close() needs to be called on the LoggingClient object to clean up resources such as
* threads. In the example above, try-with-resources is used, which automatically calls close().
*
diff --git a/test/integration/goldens/logging/MetricsClient.java b/test/integration/goldens/logging/MetricsClient.java
index 15bb6d7de2..75f52ead30 100644
--- a/test/integration/goldens/logging/MetricsClient.java
+++ b/test/integration/goldens/logging/MetricsClient.java
@@ -51,6 +51,13 @@
*
This class provides the ability to make remote calls to the backing service through method
* calls that map to API methods. Sample code to get started:
*
+ *
{@code
+ * try (MetricsClient metricsClient = MetricsClient.create()) {
+ * LogMetricName metricName = LogMetricName.of("[PROJECT]", "[METRIC]");
+ * LogMetric response = metricsClient.getLogMetric(metricName);
+ * }
+ * }
+ *
* Note: close() needs to be called on the MetricsClient object to clean up resources such as
* threads. In the example above, try-with-resources is used, which automatically calls close().
*
diff --git a/test/integration/goldens/logging/package-info.java b/test/integration/goldens/logging/package-info.java
index e9e35d3456..33fd7ef3d9 100644
--- a/test/integration/goldens/logging/package-info.java
+++ b/test/integration/goldens/logging/package-info.java
@@ -23,17 +23,43 @@
*
*
Sample for LoggingClient:
*
+ *
{@code
+ * try (LoggingClient loggingClient = LoggingClient.create()) {
+ * LogName logName = LogName.ofProjectLogName("[PROJECT]", "[LOG]");
+ * loggingClient.deleteLog(logName);
+ * }
+ * }
+ *
* ======================= ConfigClient =======================
*
*
Service Description: Service for configuring sinks used to route log entries.
*
*
Sample for ConfigClient:
*
+ *
{@code
+ * try (ConfigClient configClient = ConfigClient.create()) {
+ * GetBucketRequest request =
+ * GetBucketRequest.newBuilder()
+ * .setName(
+ * LogBucketName.ofProjectLocationBucketName("[PROJECT]", "[LOCATION]", "[BUCKET]")
+ * .toString())
+ * .build();
+ * LogBucket response = configClient.getBucket(request);
+ * }
+ * }
+ *
* ======================= MetricsClient =======================
*
*
Service Description: Service for configuring logs-based metrics.
*
*
Sample for MetricsClient:
+ *
+ *
{@code
+ * try (MetricsClient metricsClient = MetricsClient.create()) {
+ * LogMetricName metricName = LogMetricName.of("[PROJECT]", "[METRIC]");
+ * LogMetric response = metricsClient.getLogMetric(metricName);
+ * }
+ * }
*/
@Generated("by gapic-generator-java")
package com.google.cloud.logging.v2;
diff --git a/test/integration/goldens/redis/CloudRedisClient.java b/test/integration/goldens/redis/CloudRedisClient.java
index aa220493f0..7b1a0e27f6 100644
--- a/test/integration/goldens/redis/CloudRedisClient.java
+++ b/test/integration/goldens/redis/CloudRedisClient.java
@@ -67,6 +67,13 @@
* This class provides the ability to make remote calls to the backing service through method
* calls that map to API methods. Sample code to get started:
*
+ *
{@code
+ * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
+ * InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
+ * Instance response = cloudRedisClient.getInstance(name);
+ * }
+ * }
+ *
* Note: close() needs to be called on the CloudRedisClient object to clean up resources such as
* threads. In the example above, try-with-resources is used, which automatically calls close().
*
diff --git a/test/integration/goldens/redis/package-info.java b/test/integration/goldens/redis/package-info.java
index 34ceb21ccf..9aa6d67fa9 100644
--- a/test/integration/goldens/redis/package-info.java
+++ b/test/integration/goldens/redis/package-info.java
@@ -41,6 +41,13 @@
*
*
*
Sample for CloudRedisClient:
+ *
+ *
{@code
+ * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
+ * InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
+ * Instance response = cloudRedisClient.getInstance(name);
+ * }
+ * }
*/
@Generated("by gapic-generator-java")
package com.google.cloud.redis.v1beta1;