diff --git a/src/main/java/com/google/api/generator/gapic/composer/SampleCodeHelperComposer.java b/src/main/java/com/google/api/generator/gapic/composer/SampleCodeHelperComposer.java index d8d244fa39..7afacdbcbd 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/SampleCodeHelperComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/SampleCodeHelperComposer.java @@ -14,26 +14,33 @@ package com.google.api.generator.gapic.composer; +import com.google.api.core.ApiFuture; import com.google.api.gax.rpc.ApiStreamObserver; import com.google.api.gax.rpc.BidiStream; import com.google.api.gax.rpc.ServerStream; import com.google.api.generator.engine.ast.AnonymousClassExpr; import com.google.api.generator.engine.ast.AssignmentExpr; +import com.google.api.generator.engine.ast.BreakStatement; import com.google.api.generator.engine.ast.CommentStatement; import com.google.api.generator.engine.ast.ConcreteReference; import com.google.api.generator.engine.ast.EmptyLineStatement; import com.google.api.generator.engine.ast.Expr; import com.google.api.generator.engine.ast.ExprStatement; import com.google.api.generator.engine.ast.ForStatement; +import com.google.api.generator.engine.ast.IfStatement; import com.google.api.generator.engine.ast.LineComment; import com.google.api.generator.engine.ast.MethodDefinition; import com.google.api.generator.engine.ast.MethodInvocationExpr; +import com.google.api.generator.engine.ast.PrimitiveValue; import com.google.api.generator.engine.ast.ScopeNode; import com.google.api.generator.engine.ast.Statement; import com.google.api.generator.engine.ast.TryCatchStatement; import com.google.api.generator.engine.ast.TypeNode; +import com.google.api.generator.engine.ast.UnaryOperationExpr; +import com.google.api.generator.engine.ast.ValueExpr; import com.google.api.generator.engine.ast.Variable; import com.google.api.generator.engine.ast.VariableExpr; +import com.google.api.generator.engine.ast.WhileStatement; import com.google.api.generator.gapic.model.Method; import com.google.api.generator.gapic.model.Method.Stream; import com.google.api.generator.gapic.model.MethodArgument; @@ -47,11 +54,16 @@ import java.util.stream.Collectors; public final class SampleCodeHelperComposer { - private static String RESPONSE_VAR_NAME = "response"; - private static String REQUEST_VAR_NAME = "request"; + private static String RESPONSE = "response"; + private static String REQUEST = "request"; + private static String FUTURE = "future"; + private static String ELEMENT = "element"; + private static String ASYNC_NAME_PATTERN = "%sAsync"; private static String OBSERVER_NAME_PATTERN = "%sObserver"; private static String UNARY_CALLABLE_NAME_PATTERN = "%sCallable"; + private static String PAGED_CALLABLE_NAME_PATTERN = "%sPagedCallable"; + private static String PAGED_RESPONSE_NAME_PATTERN = "%sPagedResponse"; public static TryCatchStatement composeRpcMethodSampleCode( Method method, @@ -123,7 +135,7 @@ private static TryCatchStatement composeUnaryRpcMethodSampleCode( bodyStatements.add( ExprStatement.withExpr( createAssignExprForVariableWithClientMethod( - RESPONSE_VAR_NAME, method.outputType(), clientType, method.name(), arguments))); + RESPONSE, method.outputType(), clientType, method.name(), arguments))); } return TryCatchStatement.builder() @@ -164,7 +176,7 @@ private static TryCatchStatement composeLroUnaryRpcMethodSampleCode( bodyStatements.add( ExprStatement.withExpr( AssignmentExpr.builder() - .setVariableExpr(createVariableDeclExpr(RESPONSE_VAR_NAME, method.outputType())) + .setVariableExpr(createVariableDeclExpr(RESPONSE, method.outputType())) .setValueExpr(getResponseMethodExpr) .build())); return TryCatchStatement.builder() @@ -245,8 +257,7 @@ private static TryCatchStatement composeUnaryRpcDefaultMethodSampleCode( MethodInvocationExpr.builder() .setStaticReferenceType(clientType) .setMethodName(getLroMethodName(method.name())) - .setArguments( - Arrays.asList(createVariableExpr(REQUEST_VAR_NAME, method.inputType()))) + .setArguments(Arrays.asList(createVariableExpr(REQUEST, method.inputType()))) .build()) .setMethodName("get") .setReturnType(method.outputType()) @@ -254,7 +265,7 @@ private static TryCatchStatement composeUnaryRpcDefaultMethodSampleCode( bodyStatements.add( ExprStatement.withExpr( AssignmentExpr.builder() - .setVariableExpr(createVariableDeclExpr(RESPONSE_VAR_NAME, method.outputType())) + .setVariableExpr(createVariableDeclExpr(RESPONSE, method.outputType())) .setValueExpr(getResponseMethodExpr) .build())); } else { @@ -270,7 +281,7 @@ private static TryCatchStatement composeUnaryRpcDefaultMethodSampleCode( bodyStatements.add( ExprStatement.withExpr( AssignmentExpr.builder() - .setVariableExpr(createVariableDeclExpr(RESPONSE_VAR_NAME, method.outputType())) + .setVariableExpr(createVariableDeclExpr(RESPONSE, method.outputType())) .setValueExpr(invokeMethodExpr) .build())); } @@ -307,7 +318,7 @@ private static TryCatchStatement composeStreamClientRpcCallableMethodSampleCode( MethodInvocationExpr.builder() .setExprReferenceExpr(createStreamObserverVarExpr(method, false)) .setMethodName("onNext") - .setArguments(createVariableExpr(REQUEST_VAR_NAME, method.inputType())) + .setArguments(createVariableExpr(REQUEST, method.inputType())) .build(); List bodyStatements = new ArrayList<>(); @@ -373,7 +384,7 @@ private static TryCatchStatement composeStreamServerRpcCallableMethodSampleCode( // For loop on stream response variable with comment as body. bodyStatements.add( ForStatement.builder() - .setLocalVariableExpr(createVariableDeclExpr(RESPONSE_VAR_NAME, method.outputType())) + .setLocalVariableExpr(createVariableDeclExpr(RESPONSE, method.outputType())) .setCollectionExpr(serverStreamVarExpr) .setBody( Arrays.asList(createLineCommentStatement("Do something when receive a response."))) @@ -460,13 +471,13 @@ private static TryCatchStatement composeStreamBiDiRpcCallableMethodSampleCode( MethodInvocationExpr.builder() .setExprReferenceExpr(bidiStreamVarExpr) .setMethodName("send") - .setArguments(createVariableExpr(RESPONSE_VAR_NAME, method.inputType())) + .setArguments(createVariableExpr(RESPONSE, method.inputType())) .build())); // For loop on bidiStream with comment in the body. bodyStatements.add( ForStatement.builder() - .setLocalVariableExpr(createVariableDeclExpr(RESPONSE_VAR_NAME, method.outputType())) + .setLocalVariableExpr(createVariableDeclExpr(RESPONSE, method.outputType())) .setCollectionExpr(bidiStreamVarExpr) .setBody( Arrays.asList(createLineCommentStatement("Do something when receive a response."))) @@ -484,12 +495,35 @@ private static TryCatchStatement composePagedRpcCallableMethodSampleCode( TypeNode clientType, TypeNode returnType, Map resourceNames) { + List arguments = + method.methodSignatures().isEmpty() + ? Collections.emptyList() + : method.methodSignatures().get(0); + List bodyStatements = + arguments.stream() + .map( + methodArg -> + ExprStatement.withExpr( + assignMethodArgumentWithDefaultValue(methodArg, resourceNames))) + .collect(Collectors.toList()); + bodyStatements.add( + ExprStatement.withExpr(createRequestBuilderExpr(method.inputType(), arguments))); + // If generic in return type is FoorbarPagedResponse, we create future variable and loop on its + // iterator; + // if not, we create while statement. + if (returnType + .reference() + .generics() + .get(1) + .name() + .equals(String.format(PAGED_RESPONSE_NAME_PATTERN, method.name()))) { + bodyStatements.addAll(createPagedResponseBodyStatements(method, clientType, returnType)); + } else { + bodyStatements.add(createPagedWhileStatement(method, clientType)); + } return TryCatchStatement.builder() .setTryResourceExpr(assignClientVariableWithCreateMethodExpr(clientType)) - .setTryBody( - Arrays.asList( - createLineCommentStatement( - "Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code."))) + .setTryBody(bodyStatements) .setIsSampleCode(true) .build(); } @@ -624,9 +658,7 @@ private static VariableExpr createStreamObserverVarExpr(Method method, boolean i return VariableExpr.withVariable( Variable.builder() .setName( - isResponse - ? getObserverVariableName(RESPONSE_VAR_NAME) - : getObserverVariableName(REQUEST_VAR_NAME)) + isResponse ? getObserverVariableName(RESPONSE) : getObserverVariableName(REQUEST)) .setType( TypeNode.withReference( ConcreteReference.builder() @@ -647,7 +679,7 @@ private static Expr createAssignStreamObserverResponseAnonymousClassExpr(Method .setIsOverride(true) .setScope(ScopeNode.PUBLIC) .setName("onNext") - .setArguments(createVariableDeclExpr(RESPONSE_VAR_NAME, method.outputType())) + .setArguments(createVariableDeclExpr(RESPONSE, method.outputType())) .setBody( Arrays.asList(createLineCommentStatement("Do something when receive a response."))) .setReturnType(TypeNode.VOID) @@ -702,6 +734,151 @@ private static Expr createAssignStreamObserverRequestExpr(Method method, TypeNod .build(); } + private static List createPagedResponseBodyStatements( + Method method, TypeNode clientType, TypeNode returnType) { + // Assign future variable with calling paged callable method. + // e.g. ApiFuture future = + // echoClient.pagedExpandPagedCallable().futureCall(request); + TypeNode pagedResponseType = + TypeNode.withReference( + ConcreteReference.builder() + .setClazz(ApiFuture.class) + .setGenerics(returnType.reference().generics().get(1)) + .build()); + VariableExpr pagedResponseFutureVarExpr = createVariableExpr(FUTURE, pagedResponseType); + MethodInvocationExpr futureCallMethodExpr = + MethodInvocationExpr.builder() + .setExprReferenceExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr(createVariableExpr(getClientName(clientType), clientType)) + .setMethodName(getPagedCallableName(method.name())) + .build()) + .setMethodName("futureCall") + .setReturnType(pagedResponseType) + .setArguments(createVariableExpr(REQUEST, method.inputType())) + .build(); + AssignmentExpr assignPagedResponseExpr = + AssignmentExpr.builder() + .setVariableExpr(pagedResponseFutureVarExpr.toBuilder().setIsDecl(true).build()) + .setValueExpr(futureCallMethodExpr) + .build(); + // For loop method response. + // e.g for (EchoResponse element : future.get().iterateAll()) {// doThingsWith(element);} + ForStatement loopResponseStatement = + ForStatement.builder() + .setLocalVariableExpr(createVariableDeclExpr(ELEMENT, method.outputType())) + .setCollectionExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr(pagedResponseFutureVarExpr) + .setMethodName("get") + .build()) + .setMethodName("iterateAll") + .setReturnType(method.outputType()) + .build()) + .setBody(Arrays.asList(createLineCommentStatement("doThingsWith(element);"))) + .build(); + return Arrays.asList( + ExprStatement.withExpr(assignPagedResponseExpr), + createLineCommentStatement("Do something."), + loopResponseStatement); + } + + private static WhileStatement createPagedWhileStatement(Method method, TypeNode clientType) { + List bodyStatements = new ArrayList<>(); + // Initialize the response with calling callable method. + // PagedExpandResponse response = echoClient.pagedExpandCallable().call(request); + VariableExpr responseVarExpr = createVariableExpr(RESPONSE, method.outputType()); + MethodInvocationExpr callableMethodExpr = + MethodInvocationExpr.builder() + .setExprReferenceExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr(createVariableExpr(getClientName(clientType), clientType)) + .setMethodName(getCallableMethodName(method.name())) + .build()) + .setMethodName("call") + .setArguments(createVariableExpr(REQUEST, method.inputType())) + .setReturnType(method.outputType()) + .build(); + bodyStatements.add( + ExprStatement.withExpr( + AssignmentExpr.builder() + .setVariableExpr(responseVarExpr.toBuilder().setIsDecl(true).build()) + .setValueExpr(callableMethodExpr) + .build())); + // For loop on method response. + // e.g. for (EchoResponse element : response.getResponsesList()) {// doThingsWith(element);} + bodyStatements.add( + ForStatement.builder() + .setLocalVariableExpr(createVariableDeclExpr(ELEMENT, method.outputType())) + .setCollectionExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr(createVariableExpr(RESPONSE, method.outputType())) + .setMethodName("getResponsesList") + .build()) + .setBody(Arrays.asList(createLineCommentStatement("doThingsWith(element);"))) + .build()); + // Initialize nextPageToken variable. + // e.g.String nextPageToken = response.getNextPageToken(); + VariableExpr nextPageTokenVarExpr = createVariableExpr("nextPageToken", TypeNode.STRING); + bodyStatements.add( + ExprStatement.withExpr( + AssignmentExpr.builder() + .setVariableExpr(nextPageTokenVarExpr.toBuilder().setIsDecl(true).build()) + .setValueExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr(createVariableExpr(RESPONSE, method.outputType())) + .setMethodName("getNextPageToken") + .setReturnType(TypeNode.STRING) + .build()) + .build())); + // If isNullOrEmpty nextPageToken, assign request variable. + // if (!Strings.isNullOrEmpty(nextPageToken)) { request = + // request.toBuilder().setPageToken(nextPageToken).build();} else {break;} + Expr conditionExpr = + UnaryOperationExpr.logicalNotWithExpr( + MethodInvocationExpr.builder() + .setStaticReferenceType(TypeNode.STRING) + .setMethodName("isNullOrEmpty") + .setArguments(nextPageTokenVarExpr) + .setReturnType(TypeNode.BOOLEAN) + .build()); + VariableExpr requestVariableExpr = createVariableExpr(REQUEST, method.inputType()); + MethodInvocationExpr buildRequestMethodExpr = + MethodInvocationExpr.builder() + .setExprReferenceExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr(requestVariableExpr) + .setMethodName("toBuilder") + .build()) + .setArguments(nextPageTokenVarExpr) + .setMethodName("setPageToken") + .build()) + .setMethodName("build") + .setReturnType(method.inputType()) + .build(); + Expr requestAssignExpr = + AssignmentExpr.builder() + .setVariableExpr(requestVariableExpr) + .setValueExpr(buildRequestMethodExpr) + .build(); + bodyStatements.add( + IfStatement.builder() + .setConditionExpr(conditionExpr) + .setBody(Arrays.asList(ExprStatement.withExpr(requestAssignExpr))) + .setElseBody(Arrays.asList(BreakStatement.create())) + .build()); + return WhileStatement.builder() + .setConditionExpr( + ValueExpr.withValue( + PrimitiveValue.builder().setValue("true").setType(TypeNode.BOOLEAN).build())) + .setBody(bodyStatements) + .build(); + } + private static String getClientName(TypeNode clientType) { return JavaStyle.toLowerCamelCase(clientType.reference().name()); } @@ -718,6 +895,10 @@ private static String getCallableMethodName(String methodName) { return JavaStyle.toLowerCamelCase(String.format(UNARY_CALLABLE_NAME_PATTERN, methodName)); } + private static String getPagedCallableName(String methodName) { + return JavaStyle.toLowerCamelCase(String.format(PAGED_CALLABLE_NAME_PATTERN, methodName)); + } + private static CommentStatement createLineCommentStatement(String content) { return CommentStatement.withComment(LineComment.withComment(content)); } 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 a778bad63f..2ebdf81cea 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 @@ -438,7 +438,13 @@ public class EchoClient implements BackgroundResource { * *
{@code
    * try (EchoClient echoClient = EchoClient.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   PagedExpandRequest request = PagedExpandRequest.newBuilder().build();
+   *   ApiFuture future =
+   *       echoClient.pagedExpandPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (PagedExpandResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -453,7 +459,19 @@ public class EchoClient implements BackgroundResource { * *
{@code
    * try (EchoClient echoClient = EchoClient.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   PagedExpandRequest request = PagedExpandRequest.newBuilder().build();
+   *   while (true) {
+   *     PagedExpandResponse response = echoClient.pagedExpandCallable().call(request);
+   *     for (PagedExpandResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ 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 b40853d7c7..e454bc7dbe 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 @@ -442,7 +442,13 @@ public class IdentityClient implements BackgroundResource { * *
{@code
    * try (IdentityClient identityClient = IdentityClient.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   ListUsersRequest request = ListUsersRequest.newBuilder().build();
+   *   ApiFuture future =
+   *       identityClient.listUsersPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (ListUsersResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -456,7 +462,19 @@ public class IdentityClient implements BackgroundResource { * *
{@code
    * try (IdentityClient identityClient = IdentityClient.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   ListUsersRequest request = ListUsersRequest.newBuilder().build();
+   *   while (true) {
+   *     ListUsersResponse response = identityClient.listUsersCallable().call(request);
+   *     for (ListUsersResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ diff --git a/test/integration/goldens/asset/AssetServiceClient.java b/test/integration/goldens/asset/AssetServiceClient.java index 5a7e444ad0..6e7d225027 100644 --- a/test/integration/goldens/asset/AssetServiceClient.java +++ b/test/integration/goldens/asset/AssetServiceClient.java @@ -751,7 +751,21 @@ public final SearchAllResourcesPagedResponse searchAllResources( * *
{@code
    * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   String scope = "scope109264468";
+   *   String query = "query107944136";
+   *   List asset_types = new ArrayList<>();
+   *   SearchAllResourcesRequest request =
+   *       SearchAllResourcesRequest.newBuilder()
+   *           .setScope(scope)
+   *           .setQuery(query)
+   *           .setAssetTypes(asset_types)
+   *           .build();
+   *   ApiFuture future =
+   *       assetServiceClient.searchAllResourcesPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (SearchAllResourcesResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -770,7 +784,28 @@ public final SearchAllResourcesPagedResponse searchAllResources( * *
{@code
    * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   String scope = "scope109264468";
+   *   String query = "query107944136";
+   *   List asset_types = new ArrayList<>();
+   *   SearchAllResourcesRequest request =
+   *       SearchAllResourcesRequest.newBuilder()
+   *           .setScope(scope)
+   *           .setQuery(query)
+   *           .setAssetTypes(asset_types)
+   *           .build();
+   *   while (true) {
+   *     SearchAllResourcesResponse response =
+   *         assetServiceClient.searchAllResourcesCallable().call(request);
+   *     for (SearchAllResourcesResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ @@ -881,7 +916,16 @@ public final SearchAllIamPoliciesPagedResponse searchAllIamPolicies( * *
{@code
    * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   String scope = "scope109264468";
+   *   String query = "query107944136";
+   *   SearchAllIamPoliciesRequest request =
+   *       SearchAllIamPoliciesRequest.newBuilder().setScope(scope).setQuery(query).build();
+   *   ApiFuture future =
+   *       assetServiceClient.searchAllIamPoliciesPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (SearchAllIamPoliciesResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -900,7 +944,23 @@ public final SearchAllIamPoliciesPagedResponse searchAllIamPolicies( * *
{@code
    * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   String scope = "scope109264468";
+   *   String query = "query107944136";
+   *   SearchAllIamPoliciesRequest request =
+   *       SearchAllIamPoliciesRequest.newBuilder().setScope(scope).setQuery(query).build();
+   *   while (true) {
+   *     SearchAllIamPoliciesResponse response =
+   *         assetServiceClient.searchAllIamPoliciesCallable().call(request);
+   *     for (SearchAllIamPoliciesResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ diff --git a/test/integration/goldens/logging/ConfigServiceV2Client.java b/test/integration/goldens/logging/ConfigServiceV2Client.java index acfd881fda..dd89f0c15f 100644 --- a/test/integration/goldens/logging/ConfigServiceV2Client.java +++ b/test/integration/goldens/logging/ConfigServiceV2Client.java @@ -341,7 +341,15 @@ public final ListBucketsPagedResponse listBuckets(ListBucketsRequest request) { * *
{@code
    * try (ConfigServiceV2Client configServiceV2Client = ConfigServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   BillingAccountLocationName parent =
+   *       BillingAccountLocationName.of("[BILLING_ACCOUNT]", "[LOCATION]");
+   *   ListBucketsRequest request = ListBucketsRequest.newBuilder().setParent(parent).build();
+   *   ApiFuture future =
+   *       configServiceV2Client.listBucketsPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (ListBucketsResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -358,7 +366,21 @@ public final ListBucketsPagedResponse listBuckets(ListBucketsRequest request) { * *
{@code
    * try (ConfigServiceV2Client configServiceV2Client = ConfigServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   BillingAccountLocationName parent =
+   *       BillingAccountLocationName.of("[BILLING_ACCOUNT]", "[LOCATION]");
+   *   ListBucketsRequest request = ListBucketsRequest.newBuilder().setParent(parent).build();
+   *   while (true) {
+   *     ListBucketsResponse response = configServiceV2Client.listBucketsCallable().call(request);
+   *     for (ListBucketsResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ @@ -630,7 +652,14 @@ public final ListSinksPagedResponse listSinks(ListSinksRequest request) { * *
{@code
    * try (ConfigServiceV2Client configServiceV2Client = ConfigServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   BillingAccountName parent = BillingAccountName.of("[BILLING_ACCOUNT]");
+   *   ListSinksRequest request = ListSinksRequest.newBuilder().setParent(parent).build();
+   *   ApiFuture future =
+   *       configServiceV2Client.listSinksPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (ListSinksResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -646,7 +675,20 @@ public final UnaryCallable listSinksPa * *
{@code
    * try (ConfigServiceV2Client configServiceV2Client = ConfigServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   BillingAccountName parent = BillingAccountName.of("[BILLING_ACCOUNT]");
+   *   ListSinksRequest request = ListSinksRequest.newBuilder().setParent(parent).build();
+   *   while (true) {
+   *     ListSinksResponse response = configServiceV2Client.listSinksCallable().call(request);
+   *     for (ListSinksResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ @@ -1448,7 +1490,14 @@ public final ListExclusionsPagedResponse listExclusions(ListExclusionsRequest re * *
{@code
    * try (ConfigServiceV2Client configServiceV2Client = ConfigServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   BillingAccountName parent = BillingAccountName.of("[BILLING_ACCOUNT]");
+   *   ListExclusionsRequest request = ListExclusionsRequest.newBuilder().setParent(parent).build();
+   *   ApiFuture future =
+   *       configServiceV2Client.listExclusionsPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (ListExclusionsResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -1465,7 +1514,21 @@ public final ListExclusionsPagedResponse listExclusions(ListExclusionsRequest re * *
{@code
    * try (ConfigServiceV2Client configServiceV2Client = ConfigServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   BillingAccountName parent = BillingAccountName.of("[BILLING_ACCOUNT]");
+   *   ListExclusionsRequest request = ListExclusionsRequest.newBuilder().setParent(parent).build();
+   *   while (true) {
+   *     ListExclusionsResponse response =
+   *         configServiceV2Client.listExclusionsCallable().call(request);
+   *     for (ListExclusionsResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ diff --git a/test/integration/goldens/logging/LoggingServiceV2Client.java b/test/integration/goldens/logging/LoggingServiceV2Client.java index 91e792d644..47cfc0ecce 100644 --- a/test/integration/goldens/logging/LoggingServiceV2Client.java +++ b/test/integration/goldens/logging/LoggingServiceV2Client.java @@ -542,7 +542,21 @@ public final ListLogEntriesPagedResponse listLogEntries(ListLogEntriesRequest re * *
{@code
    * try (LoggingServiceV2Client loggingServiceV2Client = LoggingServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   List resource_names = new ArrayList<>();
+   *   String filter = "filter-1274492040";
+   *   String order_by = "order_by1234304744";
+   *   ListLogEntriesRequest request =
+   *       ListLogEntriesRequest.newBuilder()
+   *           .setResourceNames(resource_names)
+   *           .setFilter(filter)
+   *           .setOrderBy(order_by)
+   *           .build();
+   *   ApiFuture future =
+   *       loggingServiceV2Client.listLogEntriesPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (ListLogEntriesResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -561,7 +575,28 @@ public final ListLogEntriesPagedResponse listLogEntries(ListLogEntriesRequest re * *
{@code
    * try (LoggingServiceV2Client loggingServiceV2Client = LoggingServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   List resource_names = new ArrayList<>();
+   *   String filter = "filter-1274492040";
+   *   String order_by = "order_by1234304744";
+   *   ListLogEntriesRequest request =
+   *       ListLogEntriesRequest.newBuilder()
+   *           .setResourceNames(resource_names)
+   *           .setFilter(filter)
+   *           .setOrderBy(order_by)
+   *           .build();
+   *   while (true) {
+   *     ListLogEntriesResponse response =
+   *         loggingServiceV2Client.listLogEntriesCallable().call(request);
+   *     for (ListLogEntriesResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ @@ -603,7 +638,16 @@ public final ListMonitoredResourceDescriptorsPagedResponse listMonitoredResource * *
{@code
    * try (LoggingServiceV2Client loggingServiceV2Client = LoggingServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   ListMonitoredResourceDescriptorsRequest request =
+   *       ListMonitoredResourceDescriptorsRequest.newBuilder().build();
+   *   ApiFuture future =
+   *       loggingServiceV2Client
+   *           .listMonitoredResourceDescriptorsPagedCallable()
+   *           .futureCall(request);
+   *   // Do something.
+   *   for (ListMonitoredResourceDescriptorsResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -621,7 +665,21 @@ public final ListMonitoredResourceDescriptorsPagedResponse listMonitoredResource * *
{@code
    * try (LoggingServiceV2Client loggingServiceV2Client = LoggingServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   ListMonitoredResourceDescriptorsRequest request =
+   *       ListMonitoredResourceDescriptorsRequest.newBuilder().build();
+   *   while (true) {
+   *     ListMonitoredResourceDescriptorsResponse response =
+   *         loggingServiceV2Client.listMonitoredResourceDescriptorsCallable().call(request);
+   *     for (ListMonitoredResourceDescriptorsResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ @@ -812,7 +870,14 @@ public final ListLogsPagedResponse listLogs(ListLogsRequest request) { * *
{@code
    * try (LoggingServiceV2Client loggingServiceV2Client = LoggingServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   BillingAccountName parent = BillingAccountName.of("[BILLING_ACCOUNT]");
+   *   ListLogsRequest request = ListLogsRequest.newBuilder().setParent(parent).build();
+   *   ApiFuture future =
+   *       loggingServiceV2Client.listLogsPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (ListLogsResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -829,7 +894,20 @@ public final UnaryCallable listLogsPaged * *
{@code
    * try (LoggingServiceV2Client loggingServiceV2Client = LoggingServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   BillingAccountName parent = BillingAccountName.of("[BILLING_ACCOUNT]");
+   *   ListLogsRequest request = ListLogsRequest.newBuilder().setParent(parent).build();
+   *   while (true) {
+   *     ListLogsResponse response = loggingServiceV2Client.listLogsCallable().call(request);
+   *     for (ListLogsResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ diff --git a/test/integration/goldens/logging/MetricsServiceV2Client.java b/test/integration/goldens/logging/MetricsServiceV2Client.java index b0c08f92d3..abdff0504a 100644 --- a/test/integration/goldens/logging/MetricsServiceV2Client.java +++ b/test/integration/goldens/logging/MetricsServiceV2Client.java @@ -229,7 +229,14 @@ public final ListLogMetricsPagedResponse listLogMetrics(ListLogMetricsRequest re * *
{@code
    * try (MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   ProjectName parent = ProjectName.of("[PROJECT]");
+   *   ListLogMetricsRequest request = ListLogMetricsRequest.newBuilder().setParent(parent).build();
+   *   ApiFuture future =
+   *       metricsServiceV2Client.listLogMetricsPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (ListLogMetricsResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -246,7 +253,21 @@ public final ListLogMetricsPagedResponse listLogMetrics(ListLogMetricsRequest re * *
{@code
    * try (MetricsServiceV2Client metricsServiceV2Client = MetricsServiceV2Client.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   ProjectName parent = ProjectName.of("[PROJECT]");
+   *   ListLogMetricsRequest request = ListLogMetricsRequest.newBuilder().setParent(parent).build();
+   *   while (true) {
+   *     ListLogMetricsResponse response =
+   *         metricsServiceV2Client.listLogMetricsCallable().call(request);
+   *     for (ListLogMetricsResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/ diff --git a/test/integration/goldens/redis/CloudRedisClient.java b/test/integration/goldens/redis/CloudRedisClient.java index 3eeeba948c..09d6ee57b9 100644 --- a/test/integration/goldens/redis/CloudRedisClient.java +++ b/test/integration/goldens/redis/CloudRedisClient.java @@ -299,7 +299,14 @@ public final ListInstancesPagedResponse listInstances(ListInstancesRequest reque * *
{@code
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+   *   ListInstancesRequest request = ListInstancesRequest.newBuilder().setParent(parent).build();
+   *   ApiFuture future =
+   *       cloudRedisClient.listInstancesPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (ListInstancesResponse element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
    * }
    * }
*/ @@ -326,7 +333,20 @@ public final ListInstancesPagedResponse listInstances(ListInstancesRequest reque * *
{@code
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
-   *   // Note: Not implement yet, placeholder for Paged Rpc callable methods' sample code.
+   *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+   *   ListInstancesRequest request = ListInstancesRequest.newBuilder().setParent(parent).build();
+   *   while (true) {
+   *     ListInstancesResponse response = cloudRedisClient.listInstancesCallable().call(request);
+   *     for (ListInstancesResponse element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!String.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
    * }
    * }
*/