From 61e2e9660fa62536163982f3241fcc479973e163 Mon Sep 17 00:00:00 2001 From: Vadym Matsishevskyi <25311427+vam-google@users.noreply.github.com> Date: Fri, 3 Jun 2022 09:22:06 -0700 Subject: [PATCH] fix: Multiple REST transport related fixes (#997) 1) Stop failing for grpc+rest and rest transports in case if there are bidi- or client- streaming methods (generated a method throwing "Unimplemented" exception if called) 2) Make sure that the resource name suggested for wildcard resource names actually matches url pattern (most of the changes in goldens are caused by this change) 3) Fix the order of "actual" and "expected" in diff_gen_and_golden to match 4) Fix multipattern `of%Name` method resoluiton to make sure that the chosen pattern matches url pattern (the changes in `MessagingClient.golden` and related files are caused by this change). 5) Fix anonymous resource name class construction (add proper toString() method matching pattern) 6) Gracefully treat methods without http bindings as not supported in rest transport (instead of failing on generation) --- scripts/diff_gen_and_golden.sh | 4 +- ...bstractServiceClientTestClassComposer.java | 23 +- ...ractTransportServiceStubClassComposer.java | 16 +- .../defaultvalue/DefaultValueComposer.java | 88 ++- .../grpc/ServiceClientTestClassComposer.java | 7 +- ...ttpJsonServiceClientTestClassComposer.java | 8 + .../HttpJsonServiceStubClassComposer.java | 7 + ...iceClientCallableMethodSampleComposer.java | 8 +- .../ServiceClientHeaderSampleComposer.java | 16 +- .../ServiceClientMethodSampleComposer.java | 2 +- .../generator/gapic/model/HttpBindings.java | 4 +- .../generator/gapic/model/ResourceName.java | 34 ++ .../DefaultValueComposerTest.java | 117 +++- .../grpc/goldens/MessagingClient.golden | 20 +- .../messagingclient/AsyncDeleteBlurb.golden | 4 +- .../messagingclient/AsyncGetBlurb.golden | 4 +- .../messagingclient/SyncDeleteBlurb.golden | 4 +- .../SyncDeleteBlurbBlurbname.golden | 2 +- .../messagingclient/SyncGetBlurb.golden | 4 +- .../SyncGetBlurbBlurbname.golden | 2 +- .../ServiceStubSettingsClassComposerTest.java | 3 +- .../grpcrest/goldens/EchoClient.golden | 79 +++ .../grpcrest/goldens/EchoClientTest.golden | 116 ++++ .../grpcrest/goldens/EchoSettings.golden | 21 + .../grpcrest/goldens/EchoStubSettings.golden | 504 ++++++++++++++++-- .../grpcrest/goldens/GrpcEchoStub.golden | 43 ++ .../gapic/model/ResourceNameTest.java | 74 +++ src/test/proto/echo_grpcrest.proto | 9 + .../AsyncBatchGetAssetsHistory.java | 3 +- .../SyncBatchGetAssetsHistory.java | 3 +- .../exportassets/AsyncExportAssets.java | 3 +- .../exportassets/AsyncExportAssetsLRO.java | 3 +- .../exportassets/SyncExportAssets.java | 3 +- .../listassets/AsyncListAssets.java | 3 +- .../listassets/AsyncListAssetsPaged.java | 3 +- .../listassets/SyncListAssets.java | 3 +- .../SyncListAssetsResourcename.java | 23 +- .../cloud/asset/v1/AssetServiceClient.java | 38 +- .../asset/v1/AssetServiceClientTest.java | 50 +- .../google/cloud/asset/v1/package-info.java | 2 +- .../getiampolicy/AsyncGetIamPolicy.java | 4 +- .../getiampolicy/SyncGetIamPolicy.java | 4 +- .../setiampolicy/AsyncSetIamPolicy.java | 4 +- .../setiampolicy/SyncSetIamPolicy.java | 4 +- .../AsyncTestIamPermissions.java | 4 +- .../SyncTestIamPermissions.java | 4 +- .../getiampolicy/AsyncGetIamPolicy.java | 4 +- .../getiampolicy/SyncGetIamPolicy.java | 4 +- .../setiampolicy/AsyncSetIamPolicy.java | 4 +- .../setiampolicy/SyncSetIamPolicy.java | 4 +- .../AsyncTestIamPermissions.java | 4 +- .../SyncTestIamPermissions.java | 4 +- .../getiampolicy/AsyncGetIamPolicy.java | 4 +- .../getiampolicy/SyncGetIamPolicy.java | 4 +- .../setiampolicy/AsyncSetIamPolicy.java | 4 +- .../setiampolicy/SyncSetIamPolicy.java | 4 +- .../AsyncTestIamPermissions.java | 4 +- .../SyncTestIamPermissions.java | 4 +- .../cloud/pubsub/v1/SchemaServiceClient.java | 12 +- .../pubsub/v1/SchemaServiceClientTest.java | 13 +- .../pubsub/v1/SubscriptionAdminClient.java | 12 +- .../v1/SubscriptionAdminClientTest.java | 12 +- .../cloud/pubsub/v1/TopicAdminClient.java | 12 +- .../cloud/pubsub/v1/TopicAdminClientTest.java | 13 +- 64 files changed, 1255 insertions(+), 251 deletions(-) create mode 100644 src/test/java/com/google/api/generator/gapic/model/ResourceNameTest.java diff --git a/scripts/diff_gen_and_golden.sh b/scripts/diff_gen_and_golden.sh index 0fba834bbe..19f9389320 100755 --- a/scripts/diff_gen_and_golden.sh +++ b/scripts/diff_gen_and_golden.sh @@ -23,5 +23,5 @@ find src -type f -name 'PlaceholderFile.java' -delete find src -type d -empty -delete # This will not print diff_output to the console unless `--test_output=all` option # is enabled, it only emits the comparison results to the test.log. -diff -ru src test/integration/goldens/${API_NAME}/src -diff -ru samples test/integration/goldens/${API_NAME}/samples \ No newline at end of file +diff -ru test/integration/goldens/${API_NAME}/src src +diff -ru test/integration/goldens/${API_NAME}/samples samples \ No newline at end of file diff --git a/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceClientTestClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceClientTestClassComposer.java index a02ac5cd1f..11786d29ab 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceClientTestClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/common/AbstractServiceClientTestClassComposer.java @@ -130,6 +130,10 @@ protected GapicClass generate(String className, GapicContext context, Service se return GapicClass.create(kind, classDef); } + protected boolean isSupportedMethod(Method method) { + return true; + } + private List createClassAnnotations() { return Arrays.asList( AnnotationNode.builder() @@ -225,6 +229,9 @@ private List createTestMethods( Map messageTypes = context.messages(); List javaMethods = new ArrayList<>(); for (Method method : service.methods()) { + if (!isSupportedMethod(method)) { + continue; + } Service matchingService = service; if (method.isMixin()) { int dotIndex = method.mixedInApiName().lastIndexOf("."); @@ -388,7 +395,8 @@ private MethodDefinition createRpcTestMethod( DefaultValueComposer.createSimpleMessageBuilderValue( messageTypes.get(methodOutputType.reference().fullName()), resourceNames, - messageTypes); + messageTypes, + method.httpBindings()); } else { // Wrap this in a field so we don't have to split the helper into lots of different methods, // or duplicate it for VariableExpr. @@ -461,9 +469,14 @@ private MethodDefinition createRpcTestMethod( if (getTransportContext().useValuePatterns() && method.hasHttpBindings()) { pathParamValuePatterns = method.httpBindings().getPathParametersValuePatterns(); } + Expr valExpr = DefaultValueComposer.createSimpleMessageBuilderValue( - requestMessage, resourceNames, messageTypes, pathParamValuePatterns); + requestMessage, + resourceNames, + messageTypes, + pathParamValuePatterns, + method.httpBindings()); methodExprs.add( AssignmentExpr.builder() .setVariableExpr(requestVarExpr.toBuilder().setIsDecl(true).build()) @@ -482,7 +495,7 @@ private MethodDefinition createRpcTestMethod( argExprs.add(varExpr); Expr valExpr = DefaultValueComposer.createMethodArgValue( - methodArg, resourceNames, messageTypes, valuePatterns); + methodArg, resourceNames, messageTypes, valuePatterns, method.httpBindings()); methodExprs.add( AssignmentExpr.builder() .setVariableExpr(varExpr.toBuilder().setIsDecl(true).build()) @@ -770,7 +783,7 @@ protected List createRpcExceptionTestStatements( } Expr valExpr = DefaultValueComposer.createSimpleMessageBuilderValue( - requestMessage, resourceNames, messageTypes, valuePatterns); + requestMessage, resourceNames, messageTypes, valuePatterns, method.httpBindings()); tryBodyExprs.add( AssignmentExpr.builder() .setVariableExpr(varExpr.toBuilder().setIsDecl(true).build()) @@ -789,7 +802,7 @@ protected List createRpcExceptionTestStatements( argVarExprs.add(varExpr); Expr valExpr = DefaultValueComposer.createMethodArgValue( - methodArg, resourceNames, messageTypes, valuePatterns); + methodArg, resourceNames, messageTypes, valuePatterns, method.httpBindings()); tryBodyExprs.add( AssignmentExpr.builder() .setVariableExpr(varExpr.toBuilder().setIsDecl(true).build()) diff --git a/src/main/java/com/google/api/generator/gapic/composer/common/AbstractTransportServiceStubClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/common/AbstractTransportServiceStubClassComposer.java index e9d5d6c7c6..b2dc6969ce 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/common/AbstractTransportServiceStubClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/common/AbstractTransportServiceStubClassComposer.java @@ -217,6 +217,10 @@ public GapicClass generate(GapicContext context, Service service) { return GapicClass.create(kind, classDef); } + protected boolean isSupportedMethod(Method method) { + return true; + } + protected abstract Statement createMethodDescriptorVariableDecl( Service service, Method protoMethod, @@ -299,6 +303,7 @@ protected List createMethodDescriptorVariableDecls( Map protoMethodNameToDescriptorVarExprs, Map messageTypes) { return service.methods().stream() + .filter(this::isSupportedMethod) .map( m -> createMethodDescriptorVariableDecl( @@ -323,6 +328,7 @@ private static List createClassMemberFieldDeclarations( protected Map createProtoMethodNameToDescriptorClassMembers( Service service, Class descriptorClass) { return service.methods().stream() + .filter(this::isSupportedMethod) .collect( Collectors.toMap( Method::name, @@ -354,6 +360,9 @@ private Map createCallableClassMembers( Map callableClassMembers = new LinkedHashMap<>(); // Using a for-loop because the output cardinality is not a 1:1 mapping to the input set. for (Method protoMethod : service.methods()) { + if (!isSupportedMethod(protoMethod)) { + continue; + } String javaStyleProtoMethodName = JavaStyle.toLowerCamelCase(protoMethod.name()); String callableName = String.format(CALLABLE_CLASS_MEMBER_PATTERN, javaStyleProtoMethodName); callableClassMembers.put( @@ -643,6 +652,7 @@ protected List createConstructorMethods( // Transport settings local variables. Map javaStyleMethodNameToTransportSettingsVarExprs = service.methods().stream() + .filter(this::isSupportedMethod) .collect( Collectors.toMap( m -> JavaStyle.toLowerCamelCase(m.name()), @@ -666,6 +676,7 @@ protected List createConstructorMethods( secondCtorExprs.addAll( service.methods().stream() + .filter(this::isSupportedMethod) .map( m -> createTransportSettingsInitExpr( @@ -1035,7 +1046,9 @@ private List createStubOverrideMethods( } private boolean checkOperationPollingMethod(Service service) { - return service.methods().stream().anyMatch(Method::isOperationPollingMethod); + return service.methods().stream() + .filter(this::isSupportedMethod) + .anyMatch(Method::isOperationPollingMethod); } protected List createLongRunningClientGetters() { @@ -1073,6 +1086,7 @@ private TypeStore createDynamicTypes(Service service, String stubPakkage) { typeStore.putAll( service.pakkage(), service.methods().stream() + .filter(this::isSupportedMethod) .filter(Method::isPaged) .map(m -> String.format(PAGED_RESPONSE_TYPE_NAME_PATTERN, m.name())) .collect(Collectors.toList()), diff --git a/src/main/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposer.java b/src/main/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposer.java index 1fb9191346..bf1c26dae4 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposer.java @@ -32,6 +32,7 @@ import com.google.api.generator.engine.ast.VariableExpr; import com.google.api.generator.gapic.composer.resourcename.ResourceNameTokenizer; import com.google.api.generator.gapic.model.Field; +import com.google.api.generator.gapic.model.HttpBindings; import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.MethodArgument; import com.google.api.generator.gapic.model.ResourceName; @@ -65,7 +66,8 @@ public static Expr createMethodArgValue( MethodArgument methodArg, Map resourceNames, Map messageTypes, - Map valuePatterns) { + Map valuePatterns, + HttpBindings bindings) { if (methodArg.isResourceNameHelper()) { Preconditions.checkState( methodArg.field().hasResourceReference(), @@ -84,7 +86,8 @@ public static Expr createMethodArgValue( resourceName, methodArg.field().resourceReference().isChildType(), resourceNames.values().stream().collect(Collectors.toList()), - methodArg.field().name()); + methodArg.field().name(), + bindings); if (!methodArg.isResourceNameHelper() && methodArg.field().hasResourceReference()) { defValue = @@ -156,7 +159,7 @@ public static Expr createValue( Message nestedMessage = messageTypes.get(field.type().reference().fullName()); if (nestedMessage != null) { return createSimpleMessageBuilderValue( - nestedMessage, resourceNames, messageTypes, nestedValuePatterns); + nestedMessage, resourceNames, messageTypes, nestedValuePatterns, null); } } @@ -209,8 +212,10 @@ public static Expr createResourceHelperValue( ResourceName resourceName, boolean isChildType, List resnames, - String fieldOrMessageName) { - return createResourceHelperValue(resourceName, isChildType, resnames, fieldOrMessageName, true); + String fieldOrMessageName, + HttpBindings bindings) { + return createResourceHelperValue( + resourceName, isChildType, resnames, fieldOrMessageName, true, bindings); } private static Optional findParentResource( @@ -239,7 +244,8 @@ static Expr createResourceHelperValue( boolean isChildType, List resnames, String fieldOrMessageName, - boolean allowAnonResourceNameClass) { + boolean allowAnonResourceNameClass, + HttpBindings bindings) { if (isChildType) { resourceName = findParentResource(resourceName, resnames).orElse(resourceName); @@ -249,13 +255,15 @@ static Expr createResourceHelperValue( List unexaminedResnames = new ArrayList<>(resnames); for (ResourceName resname : resnames) { unexaminedResnames.remove(resname); - if (!resname.isOnlyWildcard()) { - return createResourceHelperValue(resname, false, unexaminedResnames, fieldOrMessageName); + if (!resname.isOnlyWildcard() + && (bindings == null || resname.getMatchingPattern(bindings) != null)) { + return createResourceHelperValue( + resname, false, unexaminedResnames, fieldOrMessageName, null); } } return allowAnonResourceNameClass - ? createAnonymousResourceNameClassValue(fieldOrMessageName) + ? createAnonymousResourceNameClassValue(fieldOrMessageName, bindings) : ValueExpr.withValue( StringObjectValue.withValue( String.format("%s%s", fieldOrMessageName, fieldOrMessageName.hashCode()))); @@ -272,15 +280,22 @@ static Expr createResourceHelperValue( if (containsOnlyDeletedTopic) { ofMethodName = "ofDeletedTopic"; } else { - for (String pattern : resourceName.patterns()) { - if (pattern.equals(ResourceNameConstants.WILDCARD_PATTERN) - || pattern.equals(ResourceNameConstants.DELETED_TOPIC_LITERAL)) { - continue; + String matchingPattern = null; + if (bindings != null) { + matchingPattern = resourceName.getMatchingPattern(bindings); + } + if (matchingPattern == null) { + for (String pattern : resourceName.patterns()) { + if (pattern.equals(ResourceNameConstants.WILDCARD_PATTERN) + || pattern.equals(ResourceNameConstants.DELETED_TOPIC_LITERAL)) { + continue; + } + matchingPattern = pattern; + break; } - patternPlaceholderTokens.addAll( - ResourceNameTokenizer.parseTokenHierarchy(Arrays.asList(pattern)).get(0)); - break; } + patternPlaceholderTokens.addAll( + ResourceNameTokenizer.parseTokenHierarchy(Arrays.asList(matchingPattern)).get(0)); } boolean hasOnePattern = resourceName.patterns().size() == 1; @@ -312,16 +327,20 @@ static Expr createResourceHelperValue( } public static Expr createSimpleMessageBuilderValue( - Message message, Map resourceNames, Map messageTypes) { + Message message, + Map resourceNames, + Map messageTypes, + HttpBindings bindings) { return createSimpleMessageBuilderValue( - message, resourceNames, messageTypes, Collections.emptyMap()); + message, resourceNames, messageTypes, Collections.emptyMap(), bindings); } public static Expr createSimpleMessageBuilderValue( Message message, Map resourceNames, Map messageTypes, - Map valuePatterns) { + Map valuePatterns, + HttpBindings bindings) { MethodInvocationExpr builderExpr = MethodInvocationExpr.builder() .setStaticReferenceType(message.type()) @@ -350,7 +369,8 @@ public static Expr createSimpleMessageBuilderValue( field.resourceReference().isChildType(), resourceNames.values().stream().collect(Collectors.toList()), message.name(), - /* allowAnonResourceNameClass = */ false); + /* allowAnonResourceNameClass = */ false, + bindings); defaultExpr = MethodInvocationExpr.builder() .setExprReferenceExpr(defaultExpr) @@ -507,7 +527,8 @@ public static Expr createSimplePagedResponseValue( } @VisibleForTesting - static AnonymousClassExpr createAnonymousResourceNameClassValue(String fieldOrMessageName) { + static AnonymousClassExpr createAnonymousResourceNameClassValue( + String fieldOrMessageName, HttpBindings matchedBindings) { TypeNode stringMapType = TypeNode.withReference( ConcreteReference.builder() @@ -525,12 +546,18 @@ static AnonymousClassExpr createAnonymousResourceNameClassValue(String fieldOrMe // fieldValuesMap.put("resource", "resource-12345"); // return fieldValuesMap; // } + + String toStringValue = String.format("%s%s", fieldOrMessageName, fieldOrMessageName.hashCode()); + if (matchedBindings != null) { + Map valuePatterns = matchedBindings.getPathParametersValuePatterns(); + toStringValue = + constructValueMatchingPattern(fieldOrMessageName, valuePatterns.get(fieldOrMessageName)); + } + VariableExpr fieldValuesMapVarExpr = VariableExpr.withVariable( Variable.builder().setType(stringMapType).setName("fieldValuesMap").build()); - StringObjectValue fieldOrMessageStringValue = - StringObjectValue.withValue( - String.format("%s%s", fieldOrMessageName, fieldOrMessageName.hashCode())); + StringObjectValue fieldOrMessageStringValue = StringObjectValue.withValue(toStringValue); List bodyExprs = Arrays.asList( @@ -586,15 +613,24 @@ static AnonymousClassExpr createAnonymousResourceNameClassValue(String fieldOrMe .build()) .build(); + MethodDefinition toStringMethod = + MethodDefinition.builder() + .setIsOverride(true) + .setScope(ScopeNode.PUBLIC) + .setReturnType(TypeNode.STRING) + .setName("toString") + .setReturnExpr(ValueExpr.withValue(StringObjectValue.withValue(toStringValue))) + .build(); + return AnonymousClassExpr.builder() .setType( TypeNode.withReference( ConcreteReference.withClazz(com.google.api.resourcenames.ResourceName.class))) - .setMethods(Arrays.asList(getFieldValuesMapMethod, getFieldValueMethod)) + .setMethods(Arrays.asList(getFieldValuesMapMethod, getFieldValueMethod, toStringMethod)) .build(); } - private static String constructValueMatchingPattern(String fieldName, String pattern) { + public static String constructValueMatchingPattern(String fieldName, String pattern) { if (pattern == null || pattern.isEmpty()) { return fieldName + fieldName.hashCode(); } diff --git a/src/main/java/com/google/api/generator/gapic/composer/grpc/ServiceClientTestClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/grpc/ServiceClientTestClassComposer.java index f2e6f6ad2a..36f45326af 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/grpc/ServiceClientTestClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/grpc/ServiceClientTestClassComposer.java @@ -551,7 +551,8 @@ protected MethodDefinition createStreamingRpcTestMethod( DefaultValueComposer.createSimpleMessageBuilderValue( messageTypes.get(methodOutputType.reference().fullName()), resourceNames, - messageTypes); + messageTypes, + method.httpBindings()); } else { // Wrap this in a field so we don't have to split the helper into lots of different methods, // or duplicate it for VariableExpr. @@ -608,7 +609,7 @@ protected MethodDefinition createStreamingRpcTestMethod( Preconditions.checkNotNull(requestMessage); Expr valExpr = DefaultValueComposer.createSimpleMessageBuilderValue( - requestMessage, resourceNames, messageTypes); + requestMessage, resourceNames, messageTypes, method.httpBindings()); methodExprs.add( AssignmentExpr.builder() .setVariableExpr(requestVarExpr.toBuilder().setIsDecl(true).build()) @@ -881,7 +882,7 @@ protected List createStreamingRpcExceptionTestStatements( Preconditions.checkNotNull(requestMessage); Expr valExpr = DefaultValueComposer.createSimpleMessageBuilderValue( - requestMessage, resourceNames, messageTypes); + requestMessage, resourceNames, messageTypes, method.httpBindings()); List statements = new ArrayList<>(); statements.add( diff --git a/src/main/java/com/google/api/generator/gapic/composer/grpcrest/HttpJsonServiceClientTestClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/grpcrest/HttpJsonServiceClientTestClassComposer.java index 9f9bbafc05..00f76eb75e 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/grpcrest/HttpJsonServiceClientTestClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/grpcrest/HttpJsonServiceClientTestClassComposer.java @@ -21,6 +21,8 @@ import com.google.api.generator.gapic.composer.store.TypeStore; import com.google.api.generator.gapic.model.GapicClass; import com.google.api.generator.gapic.model.GapicContext; +import com.google.api.generator.gapic.model.Method; +import com.google.api.generator.gapic.model.Method.Stream; import com.google.api.generator.gapic.model.Service; import java.util.Map; @@ -44,6 +46,12 @@ protected GapicClass generate(String className, GapicContext context, Service se service); } + protected boolean isSupportedMethod(Method method) { + return method.httpBindings() != null + && method.stream() != Stream.BIDI + && method.stream() != Stream.CLIENT; + } + @Override protected MethodDefinition createStartStaticServerMethod( Service service, diff --git a/src/main/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceStubClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceStubClassComposer.java index 839b4d27b0..7a4708d53f 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceStubClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceStubClassComposer.java @@ -56,6 +56,7 @@ import com.google.api.generator.gapic.model.HttpBindings.HttpBinding; import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; +import com.google.api.generator.gapic.model.Method.Stream; import com.google.api.generator.gapic.model.OperationResponse; import com.google.api.generator.gapic.model.Service; import com.google.api.generator.gapic.utils.JavaStyle; @@ -113,6 +114,12 @@ private static TypeStore createStaticTypes() { TypeRegistry.class)); } + protected boolean isSupportedMethod(Method method) { + return method.httpBindings() != null + && method.stream() != Stream.BIDI + && method.stream() != Stream.CLIENT; + } + @Override protected boolean generateOperationsStubLogic(Service service) { return service.hasLroMethods(); diff --git a/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientCallableMethodSampleComposer.java b/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientCallableMethodSampleComposer.java index 2f41633be3..38a64ef233 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientCallableMethodSampleComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientCallableMethodSampleComposer.java @@ -308,7 +308,7 @@ public static Sample composeLroCallableMethod( "Could not find the message type %s.", method.inputType().reference().fullName())); Expr requestBuilderExpr = DefaultValueComposer.createSimpleMessageBuilderValue( - requestMessage, resourceNames, messageTypes); + requestMessage, resourceNames, messageTypes, method.httpBindings()); AssignmentExpr requestAssignmentExpr = AssignmentExpr.builder() .setVariableExpr(requestVarExpr.toBuilder().setIsDecl(true).build()) @@ -429,7 +429,7 @@ public static Sample composePagedCallableMethod( "Could not find the message type %s.", method.inputType().reference().fullName())); Expr requestBuilderExpr = DefaultValueComposer.createSimpleMessageBuilderValue( - requestMessage, resourceNames, messageTypes); + requestMessage, resourceNames, messageTypes, method.httpBindings()); AssignmentExpr requestAssignmentExpr = AssignmentExpr.builder() .setVariableExpr(requestVarExpr.toBuilder().setIsDecl(true).build()) @@ -558,7 +558,7 @@ public static Sample composeRegularCallableMethod( "Could not find the message type %s.", method.inputType().reference().fullName())); Expr requestBuilderExpr = DefaultValueComposer.createSimpleMessageBuilderValue( - requestMessage, resourceNames, messageTypes); + requestMessage, resourceNames, messageTypes, method.httpBindings()); AssignmentExpr requestAssignmentExpr = AssignmentExpr.builder() .setVariableExpr(requestVarExpr.toBuilder().setIsDecl(true).build()) @@ -615,7 +615,7 @@ public static Sample composeStreamCallableMethod( "Could not find the message type %s.", method.inputType().reference().fullName())); Expr requestBuilderExpr = DefaultValueComposer.createSimpleMessageBuilderValue( - requestMessage, resourceNames, messageTypes); + requestMessage, resourceNames, messageTypes, method.httpBindings()); AssignmentExpr requestAssignmentExpr = AssignmentExpr.builder() .setVariableExpr(requestVarExpr.toBuilder().setIsDecl(true).build()) diff --git a/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientHeaderSampleComposer.java b/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientHeaderSampleComposer.java index 7dea0cca50..6c3389b865 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientHeaderSampleComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientHeaderSampleComposer.java @@ -27,6 +27,7 @@ import com.google.api.generator.engine.ast.Variable; import com.google.api.generator.engine.ast.VariableExpr; import com.google.api.generator.gapic.composer.defaultvalue.DefaultValueComposer; +import com.google.api.generator.gapic.model.HttpBindings; import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.Method; import com.google.api.generator.gapic.model.MethodArgument; @@ -91,7 +92,7 @@ public static Sample composeShowcaseMethodSample( // Assign method's arguments variable with the default values. List rpcMethodArgVarExprs = createArgumentVariableExprs(arguments); List rpcMethodArgDefaultValueExprs = - createArgumentDefaultValueExprs(arguments, resourceNames); + createArgumentDefaultValueExprs(arguments, resourceNames, method.httpBindings()); List rpcMethodArgAssignmentExprs = createAssignmentsForVarExprsWithValueExprs( rpcMethodArgVarExprs, rpcMethodArgDefaultValueExprs); @@ -367,7 +368,9 @@ private static List createArgumentVariableExprs(List createArgumentDefaultValueExprs( - List arguments, Map resourceNames) { + List arguments, + Map resourceNames, + HttpBindings bindings) { List resourceNameList = resourceNames.values().stream().collect(Collectors.toList()); Function stringResourceNameDefaultValueExpr = @@ -378,7 +381,8 @@ private static List createArgumentDefaultValueExprs( resourceNames.get(arg.field().resourceReference().resourceTypeString()), arg.field().resourceReference().isChildType(), resourceNameList, - arg.field().name())) + arg.field().name(), + null)) .setMethodName("toString") .setReturnType(TypeNode.STRING) .build(); @@ -387,7 +391,11 @@ private static List createArgumentDefaultValueExprs( arg -> !SampleComposerUtil.isStringTypedResourceName(arg, resourceNames) ? DefaultValueComposer.createMethodArgValue( - arg, resourceNames, Collections.emptyMap(), Collections.emptyMap()) + arg, + resourceNames, + Collections.emptyMap(), + Collections.emptyMap(), + bindings) : stringResourceNameDefaultValueExpr.apply(arg)) .collect(Collectors.toList()); } diff --git a/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientMethodSampleComposer.java b/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientMethodSampleComposer.java index 9fa91574f6..f93383c729 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientMethodSampleComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/samplecode/ServiceClientMethodSampleComposer.java @@ -96,7 +96,7 @@ public static Sample composeCanonicalSample( "Could not find the message type %s.", method.inputType().reference().fullName())); Expr requestBuilderExpr = DefaultValueComposer.createSimpleMessageBuilderValue( - requestMessage, resourceNames, messageTypes); + requestMessage, resourceNames, messageTypes, method.httpBindings()); AssignmentExpr requestAssignmentExpr = AssignmentExpr.builder() .setVariableExpr(requestVarExpr.toBuilder().setIsDecl(true).build()) diff --git a/src/main/java/com/google/api/generator/gapic/model/HttpBindings.java b/src/main/java/com/google/api/generator/gapic/model/HttpBindings.java index 61eea88504..e6ecea5c94 100644 --- a/src/main/java/com/google/api/generator/gapic/model/HttpBindings.java +++ b/src/main/java/com/google/api/generator/gapic/model/HttpBindings.java @@ -17,7 +17,7 @@ import com.google.api.generator.gapic.utils.JavaStyle; import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableSet; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -108,7 +108,7 @@ private static String lowerCamelPattern(String originalPattern, Set } public Map getPathParametersValuePatterns() { - Map valuePatterns = new HashMap<>(); + Map valuePatterns = new LinkedHashMap<>(); for (HttpBinding pathParameter : pathParameters()) { valuePatterns.put(pathParameter.lowerCamelName(), pathParameter.valuePattern()); } diff --git a/src/main/java/com/google/api/generator/gapic/model/ResourceName.java b/src/main/java/com/google/api/generator/gapic/model/ResourceName.java index effb867746..9a01bf6dba 100644 --- a/src/main/java/com/google/api/generator/gapic/model/ResourceName.java +++ b/src/main/java/com/google/api/generator/gapic/model/ResourceName.java @@ -20,8 +20,10 @@ import com.google.api.generator.engine.ast.VaporReference; import com.google.api.generator.gapic.utils.JavaStyle; import com.google.api.generator.gapic.utils.ResourceNameConstants; +import com.google.api.pathtemplate.PathTemplate; import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import java.util.List; import java.util.Objects; import javax.annotation.Nullable; @@ -55,6 +57,38 @@ public abstract class ResourceName { public abstract boolean isOnlyWildcard(); + @Nullable + public String getMatchingPattern(HttpBindings bindings) { + List bindingPatterns = + ImmutableList.builder() + .add(bindings.pattern()) + .addAll(bindings.additionalPatterns()) + .build(); + + for (String bindingPattern : bindingPatterns) { + PathTemplate bindingTemplate = PathTemplate.create(bindingPattern); + for (String resNamePattern : patterns()) { + PathTemplate restNamePatternTemplate = PathTemplate.create(resNamePattern); + ImmutableMap.Builder mb = ImmutableMap.builder(); + for (String var : restNamePatternTemplate.vars()) { + mb.put(var, var + (var.hashCode() % 100)); + } + + String resNameValue = restNamePatternTemplate.instantiate(mb.build()); + mb = ImmutableMap.builder(); + for (String var : bindingTemplate.vars()) { + mb.put(var, resNameValue); + } + + String url = bindingTemplate.instantiate(mb.build()); + if (bindingTemplate.matches(url)) { + return resNamePattern; + } + } + } + return null; + } + // The message in which this resource was defined. Optional. // This is expected to be empty for file-level definitions. @Nullable diff --git a/src/test/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposerTest.java index 1cdd6cd08d..9f84b34ad0 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/defaultvalue/DefaultValueComposerTest.java @@ -21,6 +21,8 @@ import com.google.api.generator.engine.ast.TypeNode; import com.google.api.generator.engine.writer.JavaWriterVisitor; import com.google.api.generator.gapic.model.Field; +import com.google.api.generator.gapic.model.HttpBindings; +import com.google.api.generator.gapic.model.HttpBindings.HttpVerb; import com.google.api.generator.gapic.model.Message; import com.google.api.generator.gapic.model.ResourceName; import com.google.api.generator.gapic.protoparser.Parser; @@ -29,6 +31,7 @@ import com.google.protobuf.Descriptors.FileDescriptor; import com.google.showcase.v1beta1.EchoOuterClass; import com.google.testgapic.v1beta1.LockerProto; +import java.util.Arrays; import java.util.Collections; import java.util.Map; import java.util.stream.Collectors; @@ -163,7 +166,8 @@ public void defaultValue_resourceNameWithOnePattern() { resourceName, false, typeStringsToResourceNames.values().stream().collect(Collectors.toList()), - "ignored"); + "ignored", + null); expr.accept(writerVisitor); assertEquals("BillingAccountName.of(\"[BILLING_ACCOUNT]\")", writerVisitor.write()); } @@ -180,7 +184,8 @@ public void defaultValue_resourceNameWithMultiplePatterns() { resourceName, false, typeStringsToResourceNames.values().stream().collect(Collectors.toList()), - "ignored"); + "ignored", + null); expr.accept(writerVisitor); assertEquals( "FolderName.ofProjectFolderName(\"[PROJECT]\", \"[FOLDER]\")", writerVisitor.write()); @@ -198,7 +203,8 @@ public void defaultValue_resourceNameWithWildcardPattern() { resourceName, false, typeStringsToResourceNames.values().stream().collect(Collectors.toList()), - "ignored"); + "ignored", + null); expr.accept(writerVisitor); assertEquals("DocumentName.ofDocumentName(\"[DOCUMENT]\")", writerVisitor.write()); } @@ -221,7 +227,8 @@ public void defaultValue_wildcardResourceNameWithOnlyDeletedTopic() { resourceName, false, typeStringsToResourceNames.values().stream().collect(Collectors.toList()), - "ignored"); + "ignored", + null); expr.accept(writerVisitor); assertEquals("TopicName.ofDeletedTopic()", writerVisitor.write()); } @@ -243,7 +250,85 @@ public void defaultValue_resourceNameWithOnlyWildcards_valueOnly() { false, Collections.emptyList(), fallbackField, - /* allowAnonResourceNameClass = */ false); + /* allowAnonResourceNameClass = */ false, + null); + expr.accept(writerVisitor); + assertEquals( + String.format("\"%s%s\"", fallbackField, fallbackField.hashCode()), writerVisitor.write()); + } + + @Test + public void defaultValue_resourceNameWithOnlyWildcards_matchingBinding() { + FileDescriptor lockerServiceFileDescriptor = LockerProto.getDescriptor(); + Map typeStringsToResourceNames = + Parser.parseResourceNames(lockerServiceFileDescriptor); + ResourceName resourceName = + typeStringsToResourceNames.get("cloudresourcemanager.googleapis.com/Anything"); + String fallbackField = "foobar"; + + ResourceName extraResourceName = + ResourceName.builder() + .setVariableName("topic") + .setPakkage("com.google.pubsub.v1") + .setResourceTypeString("pubsub.googleapis.com/Topic") + .setPatterns(Arrays.asList("_deleted-topic_", "projects/{project}/topics/{topic}")) + .setParentMessageName("com.google.pubsub.v1.Topic") + .build(); + + HttpBindings bindings = + HttpBindings.builder() + .setHttpVerb(HttpVerb.PUT) + .setPattern("/v1/{name=projects/*/topics/*}") + .setAdditionalPatterns(Collections.emptyList()) + .setIsAsteriskBody(true) + .build(); + + Expr expr = + DefaultValueComposer.createResourceHelperValue( + resourceName, + false, + Arrays.asList(resourceName, extraResourceName), + fallbackField, + /* allowAnonResourceNameClass = */ false, + bindings); + expr.accept(writerVisitor); + assertEquals("TopicName.ofProjectTopicName(\"[PROJECT]\", \"[TOPIC]\")", writerVisitor.write()); + } + + @Test + public void defaultValue_resourceNameWithOnlyWildcards_mismatchingBinding() { + FileDescriptor lockerServiceFileDescriptor = LockerProto.getDescriptor(); + Map typeStringsToResourceNames = + Parser.parseResourceNames(lockerServiceFileDescriptor); + ResourceName resourceName = + typeStringsToResourceNames.get("cloudresourcemanager.googleapis.com/Anything"); + String fallbackField = "foobar"; + + ResourceName extraResourceName = + ResourceName.builder() + .setVariableName("topic") + .setPakkage("com.google.pubsub.v1") + .setResourceTypeString("pubsub.googleapis.com/Topic") + .setPatterns(Arrays.asList("_deleted-topic_", "projects/{project}/topics/{topic}")) + .setParentMessageName("com.google.pubsub.v1.Topic") + .build(); + + HttpBindings bindings = + HttpBindings.builder() + .setHttpVerb(HttpVerb.PUT) + .setPattern("/v1/{name=projects/*/subscriptions/*}") + .setAdditionalPatterns(Collections.emptyList()) + .setIsAsteriskBody(true) + .build(); + + Expr expr = + DefaultValueComposer.createResourceHelperValue( + resourceName, + false, + Arrays.asList(resourceName, extraResourceName), + fallbackField, + /* allowAnonResourceNameClass = */ false, + bindings); expr.accept(writerVisitor); assertEquals( String.format("\"%s%s\"", fallbackField, fallbackField.hashCode()), writerVisitor.write()); @@ -262,7 +347,7 @@ public void defaultValue_resourceNameWithOnlyWildcards_allowAnonResourceNameClas String fallbackField = "foobar"; Expr expr = DefaultValueComposer.createResourceHelperValue( - resourceName, false, Collections.emptyList(), fallbackField); + resourceName, false, Collections.emptyList(), fallbackField, null); expr.accept(writerVisitor); String expected = LineFormatter.lines( @@ -279,6 +364,11 @@ public void defaultValue_resourceNameWithOnlyWildcards_allowAnonResourceNameClas "return getFieldValuesMap().get(fieldName);\n", "}\n", "\n", + "@Override\n", + "public String toString() {\n", + "return \"foobar-1268878963\";\n", + "}\n", + "\n", "}"); assertEquals(expected, writerVisitor.write()); } @@ -292,7 +382,7 @@ public void createSimpleMessage_basicPrimitivesOnly() { Message message = messageTypes.get("com.google.showcase.v1beta1.Foobar"); Expr expr = DefaultValueComposer.createSimpleMessageBuilderValue( - message, typeStringsToResourceNames, messageTypes); + message, typeStringsToResourceNames, messageTypes, null); expr.accept(writerVisitor); assertEquals( "Foobar.newBuilder().setName(FoobarName.ofProjectFoobarName(\"[PROJECT]\", \"[FOOBAR]\")" @@ -309,7 +399,7 @@ public void createSimpleMessage_containsMessagesEnumsAndResourceName() { Message message = messageTypes.get("com.google.showcase.v1beta1.EchoRequest"); Expr expr = DefaultValueComposer.createSimpleMessageBuilderValue( - message, typeStringsToResourceNames, messageTypes); + message, typeStringsToResourceNames, messageTypes, null); expr.accept(writerVisitor); assertEquals( "EchoRequest.newBuilder().setName(" @@ -329,7 +419,7 @@ public void createSimpleMessage_containsRepeatedField() { Message message = messageTypes.get("com.google.showcase.v1beta1.PagedExpandResponse"); Expr expr = DefaultValueComposer.createSimpleMessageBuilderValue( - message, typeStringsToResourceNames, messageTypes); + message, typeStringsToResourceNames, messageTypes, null); expr.accept(writerVisitor); assertEquals( "PagedExpandResponse.newBuilder().addAllResponses(new ArrayList())" @@ -346,14 +436,14 @@ public void createSimpleMessage_onlyOneofs() { Message message = messageTypes.get("com.google.showcase.v1beta1.WaitRequest"); Expr expr = DefaultValueComposer.createSimpleMessageBuilderValue( - message, typeStringsToResourceNames, messageTypes); + message, typeStringsToResourceNames, messageTypes, null); expr.accept(writerVisitor); assertEquals("WaitRequest.newBuilder().build()", writerVisitor.write()); } @Test public void createAnonymousResourceNameClass() { - Expr expr = DefaultValueComposer.createAnonymousResourceNameClassValue("resource"); + Expr expr = DefaultValueComposer.createAnonymousResourceNameClassValue("resource", null); expr.accept(writerVisitor); String expected = LineFormatter.lines( @@ -370,6 +460,11 @@ public void createAnonymousResourceNameClass() { "return getFieldValuesMap().get(fieldName);\n", "}\n", "\n", + "@Override\n", + "public String toString() {\n", + "return \"resource-341064690\";\n", + "}\n", + "\n", "}"); assertEquals(expected, writerVisitor.write()); diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MessagingClient.golden b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MessagingClient.golden index 7c7788f312..15d6d67681 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MessagingClient.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MessagingClient.golden @@ -728,7 +728,7 @@ public class MessagingClient implements BackgroundResource { * // This snippet has been automatically generated for illustrative purposes only. * // It may require modifications to work in your environment. * try (MessagingClient messagingClient = MessagingClient.create()) { - * BlurbName name = BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]"); + * BlurbName name = BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]"); * Blurb response = messagingClient.getBlurb(name); * } * } @@ -774,9 +774,7 @@ public class MessagingClient implements BackgroundResource { * try (MessagingClient messagingClient = MessagingClient.create()) { * GetBlurbRequest request = * GetBlurbRequest.newBuilder() - * .setName( - * BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]") - * .toString()) + * .setName(BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]").toString()) * .build(); * Blurb response = messagingClient.getBlurb(request); * } @@ -799,9 +797,7 @@ public class MessagingClient implements BackgroundResource { * try (MessagingClient messagingClient = MessagingClient.create()) { * GetBlurbRequest request = * GetBlurbRequest.newBuilder() - * .setName( - * BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]") - * .toString()) + * .setName(BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]").toString()) * .build(); * ApiFuture future = messagingClient.getBlurbCallable().futureCall(request); * // Do something. @@ -862,7 +858,7 @@ public class MessagingClient implements BackgroundResource { * // This snippet has been automatically generated for illustrative purposes only. * // It may require modifications to work in your environment. * try (MessagingClient messagingClient = MessagingClient.create()) { - * BlurbName name = BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]"); + * BlurbName name = BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]"); * messagingClient.deleteBlurb(name); * } * } @@ -908,9 +904,7 @@ public class MessagingClient implements BackgroundResource { * try (MessagingClient messagingClient = MessagingClient.create()) { * DeleteBlurbRequest request = * DeleteBlurbRequest.newBuilder() - * .setName( - * BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]") - * .toString()) + * .setName(BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]").toString()) * .build(); * messagingClient.deleteBlurb(request); * } @@ -933,9 +927,7 @@ public class MessagingClient implements BackgroundResource { * try (MessagingClient messagingClient = MessagingClient.create()) { * DeleteBlurbRequest request = * DeleteBlurbRequest.newBuilder() - * .setName( - * BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]") - * .toString()) + * .setName(BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]").toString()) * .build(); * ApiFuture future = messagingClient.deleteBlurbCallable().futureCall(request); * // Do something. diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/AsyncDeleteBlurb.golden b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/AsyncDeleteBlurb.golden index 21cd62ee46..b8b3bf208d 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/AsyncDeleteBlurb.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/AsyncDeleteBlurb.golden @@ -35,9 +35,7 @@ public class AsyncDeleteBlurb { try (MessagingClient messagingClient = MessagingClient.create()) { DeleteBlurbRequest request = DeleteBlurbRequest.newBuilder() - .setName( - BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]") - .toString()) + .setName(BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]").toString()) .build(); ApiFuture future = messagingClient.deleteBlurbCallable().futureCall(request); // Do something. diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/AsyncGetBlurb.golden b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/AsyncGetBlurb.golden index 1a2a94c0fe..9662bed70a 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/AsyncGetBlurb.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/AsyncGetBlurb.golden @@ -35,9 +35,7 @@ public class AsyncGetBlurb { try (MessagingClient messagingClient = MessagingClient.create()) { GetBlurbRequest request = GetBlurbRequest.newBuilder() - .setName( - BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]") - .toString()) + .setName(BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]").toString()) .build(); ApiFuture future = messagingClient.getBlurbCallable().futureCall(request); // Do something. diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncDeleteBlurb.golden b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncDeleteBlurb.golden index abedec6cc9..70e15ecc60 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncDeleteBlurb.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncDeleteBlurb.golden @@ -34,9 +34,7 @@ public class SyncDeleteBlurb { try (MessagingClient messagingClient = MessagingClient.create()) { DeleteBlurbRequest request = DeleteBlurbRequest.newBuilder() - .setName( - BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]") - .toString()) + .setName(BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]").toString()) .build(); messagingClient.deleteBlurb(request); } diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncDeleteBlurbBlurbname.golden b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncDeleteBlurbBlurbname.golden index fbab080ec4..041312eb46 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncDeleteBlurbBlurbname.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncDeleteBlurbBlurbname.golden @@ -31,7 +31,7 @@ public class SyncDeleteBlurbBlurbname { // This snippet has been automatically generated for illustrative purposes only. // It may require modifications to work in your environment. try (MessagingClient messagingClient = MessagingClient.create()) { - BlurbName name = BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]"); + BlurbName name = BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]"); messagingClient.deleteBlurb(name); } } diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncGetBlurb.golden b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncGetBlurb.golden index cc1ae967ba..93d780d72a 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncGetBlurb.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncGetBlurb.golden @@ -34,9 +34,7 @@ public class SyncGetBlurb { try (MessagingClient messagingClient = MessagingClient.create()) { GetBlurbRequest request = GetBlurbRequest.newBuilder() - .setName( - BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]") - .toString()) + .setName(BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]").toString()) .build(); Blurb response = messagingClient.getBlurb(request); } diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncGetBlurbBlurbname.golden b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncGetBlurbBlurbname.golden index 4696adc0ca..3a2d980e42 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncGetBlurbBlurbname.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/messagingclient/SyncGetBlurbBlurbname.golden @@ -31,7 +31,7 @@ public class SyncGetBlurbBlurbname { // This snippet has been automatically generated for illustrative purposes only. // It may require modifications to work in your environment. try (MessagingClient messagingClient = MessagingClient.create()) { - BlurbName name = BlurbName.ofUserLegacyUserBlurbName("[USER]", "[LEGACY_USER]", "[BLURB]"); + BlurbName name = BlurbName.ofRoomBlurbName("[ROOM]", "[BLURB]"); Blurb response = messagingClient.getBlurb(name); } } diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/ServiceStubSettingsClassComposerTest.java b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/ServiceStubSettingsClassComposerTest.java index 1035aa1d85..812df41ff8 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/ServiceStubSettingsClassComposerTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/ServiceStubSettingsClassComposerTest.java @@ -29,7 +29,8 @@ public class ServiceStubSettingsClassComposerTest { public void generateServiceClasses() { GapicContext context = GrpcRestTestProtoLoader.instance().parseShowcaseEcho(); Service echoProtoService = context.services().get(0); - GapicClass clazz = ServiceSettingsClassComposer.instance().generate(context, echoProtoService); + GapicClass clazz = + ServiceStubSettingsClassComposer.instance().generate(context, echoProtoService); JavaWriterVisitor visitor = new JavaWriterVisitor(); clazz.classDefinition().accept(visitor); diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoClient.golden b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoClient.golden index 31fdeed3cd..8f6fd7cf56 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoClient.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoClient.golden @@ -9,6 +9,7 @@ import com.google.api.gax.longrunning.OperationFuture; import com.google.api.gax.paging.AbstractFixedSizeCollection; import com.google.api.gax.paging.AbstractPage; import com.google.api.gax.paging.AbstractPagedListResponse; +import com.google.api.gax.rpc.BidiStreamingCallable; import com.google.api.gax.rpc.OperationCallable; import com.google.api.gax.rpc.PageContext; import com.google.api.gax.rpc.ServerStreamingCallable; @@ -861,6 +862,84 @@ public class EchoClient implements BackgroundResource { return stub.nestedBindingCallable(); } + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Sample code: + * + *
{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
+   * try (EchoClient echoClient = EchoClient.create()) {
+   *   BidiStream bidiStream = echoClient.chatCallable().call();
+   *   EchoRequest request =
+   *       EchoRequest.newBuilder()
+   *           .setName(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString())
+   *           .setParent(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString())
+   *           .setSeverity(Severity.forNumber(0))
+   *           .setFooBar(Foobar.newBuilder().build())
+   *           .build();
+   *   bidiStream.send(request);
+   *   for (EchoResponse response : bidiStream) {
+   *     // Do something when a response is received.
+   *   }
+   * }
+   * }
+ */ + public final BidiStreamingCallable chatCallable() { + return stub.chatCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Sample code: + * + *
{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
+   * try (EchoClient echoClient = EchoClient.create()) {
+   *   EchoRequest request =
+   *       EchoRequest.newBuilder()
+   *           .setName(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString())
+   *           .setParent(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString())
+   *           .setSeverity(Severity.forNumber(0))
+   *           .setFooBar(Foobar.newBuilder().build())
+   *           .build();
+   *   EchoResponse response = echoClient.noBinding(request);
+   * }
+   * }
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final EchoResponse noBinding(EchoRequest request) { + return noBindingCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Sample code: + * + *
{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
+   * try (EchoClient echoClient = EchoClient.create()) {
+   *   EchoRequest request =
+   *       EchoRequest.newBuilder()
+   *           .setName(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString())
+   *           .setParent(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString())
+   *           .setSeverity(Severity.forNumber(0))
+   *           .setFooBar(Foobar.newBuilder().build())
+   *           .build();
+   *   ApiFuture future = echoClient.noBindingCallable().futureCall(request);
+   *   // Do something.
+   *   EchoResponse response = future.get();
+   * }
+   * }
+ */ + public final UnaryCallable noBindingCallable() { + return stub.noBindingCallable(); + } + @Override public final void close() { stub.close(); diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoClientTest.golden b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoClientTest.golden index 99dfb8c534..014add9c3a 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoClientTest.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoClientTest.golden @@ -10,6 +10,8 @@ import com.google.api.gax.grpc.testing.MockGrpcService; import com.google.api.gax.grpc.testing.MockServiceHelper; import com.google.api.gax.grpc.testing.MockStreamObserver; import com.google.api.gax.rpc.ApiClientHeaderProvider; +import com.google.api.gax.rpc.ApiStreamObserver; +import com.google.api.gax.rpc.BidiStreamingCallable; import com.google.api.gax.rpc.InvalidArgumentException; import com.google.api.gax.rpc.ServerStreamingCallable; import com.google.api.gax.rpc.StatusCode; @@ -772,4 +774,118 @@ public class EchoClientTest { // Expected exception. } } + + @Test + public void chatTest() throws Exception { + EchoResponse expectedResponse = + EchoResponse.newBuilder() + .setContent("content951530617") + .setSeverity(Severity.forNumber(0)) + .build(); + mockEcho.addResponse(expectedResponse); + EchoRequest request = + EchoRequest.newBuilder() + .setName(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString()) + .setParent(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString()) + .setSeverity(Severity.forNumber(0)) + .setFooBar(Foobar.newBuilder().build()) + .build(); + + MockStreamObserver responseObserver = new MockStreamObserver<>(); + + BidiStreamingCallable callable = client.chatCallable(); + ApiStreamObserver requestObserver = callable.bidiStreamingCall(responseObserver); + + requestObserver.onNext(request); + requestObserver.onCompleted(); + + List actualResponses = responseObserver.future().get(); + Assert.assertEquals(1, actualResponses.size()); + Assert.assertEquals(expectedResponse, actualResponses.get(0)); + } + + @Test + public void chatExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockEcho.addException(exception); + EchoRequest request = + EchoRequest.newBuilder() + .setName(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString()) + .setParent(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString()) + .setSeverity(Severity.forNumber(0)) + .setFooBar(Foobar.newBuilder().build()) + .build(); + + MockStreamObserver responseObserver = new MockStreamObserver<>(); + + BidiStreamingCallable callable = client.chatCallable(); + ApiStreamObserver requestObserver = callable.bidiStreamingCall(responseObserver); + + requestObserver.onNext(request); + + try { + List actualResponses = responseObserver.future().get(); + Assert.fail("No exception thrown"); + } catch (ExecutionException e) { + Assert.assertTrue(e.getCause() instanceof InvalidArgumentException); + InvalidArgumentException apiException = ((InvalidArgumentException) e.getCause()); + Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode()); + } + } + + @Test + public void noBindingTest() throws Exception { + EchoResponse expectedResponse = + EchoResponse.newBuilder() + .setContent("content951530617") + .setSeverity(Severity.forNumber(0)) + .build(); + mockEcho.addResponse(expectedResponse); + + EchoRequest request = + EchoRequest.newBuilder() + .setName(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString()) + .setParent(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString()) + .setSeverity(Severity.forNumber(0)) + .setFooBar(Foobar.newBuilder().build()) + .build(); + + EchoResponse actualResponse = client.noBinding(request); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockEcho.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + EchoRequest actualRequest = ((EchoRequest) actualRequests.get(0)); + + Assert.assertEquals(request.getName(), actualRequest.getName()); + Assert.assertEquals(request.getParent(), actualRequest.getParent()); + Assert.assertEquals(request.getContent(), actualRequest.getContent()); + Assert.assertEquals(request.getError(), actualRequest.getError()); + Assert.assertEquals(request.getSeverity(), actualRequest.getSeverity()); + Assert.assertEquals(request.getFooBar(), actualRequest.getFooBar()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void noBindingExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockEcho.addException(exception); + + try { + EchoRequest request = + EchoRequest.newBuilder() + .setName(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString()) + .setParent(FoobarName.ofProjectFoobarName("[PROJECT]", "[FOOBAR]").toString()) + .setSeverity(Severity.forNumber(0)) + .setFooBar(Foobar.newBuilder().build()) + .build(); + client.noBinding(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } } diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoSettings.golden b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoSettings.golden index 9485329b47..4c175371d4 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoSettings.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoSettings.golden @@ -15,6 +15,7 @@ import com.google.api.gax.rpc.ClientSettings; import com.google.api.gax.rpc.OperationCallSettings; import com.google.api.gax.rpc.PagedCallSettings; import com.google.api.gax.rpc.ServerStreamingCallSettings; +import com.google.api.gax.rpc.StreamingCallSettings; import com.google.api.gax.rpc.StubSettings; import com.google.api.gax.rpc.TransportChannelProvider; import com.google.api.gax.rpc.UnaryCallSettings; @@ -108,6 +109,16 @@ public class EchoSettings extends ClientSettings { return ((EchoStubSettings) getStubSettings()).nestedBindingSettings(); } + /** Returns the object with the settings used for calls to chat. */ + public StreamingCallSettings chatSettings() { + return ((EchoStubSettings) getStubSettings()).chatSettings(); + } + + /** Returns the object with the settings used for calls to noBinding. */ + public UnaryCallSettings noBindingSettings() { + return ((EchoStubSettings) getStubSettings()).noBindingSettings(); + } + public static final EchoSettings create(EchoStubSettings stub) throws IOException { return new EchoSettings.Builder(stub.toBuilder()).build(); } @@ -272,6 +283,16 @@ public class EchoSettings extends ClientSettings { return getStubSettingsBuilder().nestedBindingSettings(); } + /** Returns the builder for the settings used for calls to chat. */ + public StreamingCallSettings.Builder chatSettings() { + return getStubSettingsBuilder().chatSettings(); + } + + /** Returns the builder for the settings used for calls to noBinding. */ + public UnaryCallSettings.Builder noBindingSettings() { + return getStubSettingsBuilder().noBindingSettings(); + } + @Override public EchoSettings build() throws IOException { return new EchoSettings(this); diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoStubSettings.golden b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoStubSettings.golden index 9485329b47..5e787650ed 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoStubSettings.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/EchoStubSettings.golden @@ -1,32 +1,63 @@ -package com.google.showcase.grpcrest.v1beta1; +package com.google.showcase.grpcrest.v1beta1.stub; import static com.google.showcase.grpcrest.v1beta1.EchoClient.PagedExpandPagedResponse; import static com.google.showcase.grpcrest.v1beta1.EchoClient.SimplePagedExpandPagedResponse; import com.google.api.core.ApiFunction; +import com.google.api.core.ApiFuture; import com.google.api.core.BetaApi; +import com.google.api.gax.core.GaxProperties; import com.google.api.gax.core.GoogleCredentialsProvider; import com.google.api.gax.core.InstantiatingExecutorProvider; +import com.google.api.gax.grpc.GaxGrpcProperties; +import com.google.api.gax.grpc.GrpcTransportChannel; import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; +import com.google.api.gax.grpc.ProtoOperationTransformers; +import com.google.api.gax.httpjson.GaxHttpJsonProperties; +import com.google.api.gax.httpjson.HttpJsonTransportChannel; import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider; +import com.google.api.gax.longrunning.OperationSnapshot; +import com.google.api.gax.longrunning.OperationTimedPollAlgorithm; +import com.google.api.gax.retrying.RetrySettings; +import com.google.api.gax.rpc.ApiCallContext; import com.google.api.gax.rpc.ApiClientHeaderProvider; import com.google.api.gax.rpc.ClientContext; -import com.google.api.gax.rpc.ClientSettings; import com.google.api.gax.rpc.OperationCallSettings; +import com.google.api.gax.rpc.PageContext; import com.google.api.gax.rpc.PagedCallSettings; +import com.google.api.gax.rpc.PagedListDescriptor; +import com.google.api.gax.rpc.PagedListResponseFactory; import com.google.api.gax.rpc.ServerStreamingCallSettings; +import com.google.api.gax.rpc.StatusCode; +import com.google.api.gax.rpc.StreamingCallSettings; import com.google.api.gax.rpc.StubSettings; import com.google.api.gax.rpc.TransportChannelProvider; import com.google.api.gax.rpc.UnaryCallSettings; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Lists; import com.google.longrunning.Operation; -import com.google.showcase.grpcrest.v1beta1.stub.EchoStubSettings; +import com.google.showcase.grpcrest.v1beta1.BlockRequest; +import com.google.showcase.grpcrest.v1beta1.BlockResponse; +import com.google.showcase.grpcrest.v1beta1.EchoRequest; +import com.google.showcase.grpcrest.v1beta1.EchoResponse; +import com.google.showcase.grpcrest.v1beta1.ExpandRequest; +import com.google.showcase.grpcrest.v1beta1.Object; +import com.google.showcase.grpcrest.v1beta1.PagedExpandRequest; +import com.google.showcase.grpcrest.v1beta1.PagedExpandResponse; +import com.google.showcase.grpcrest.v1beta1.WaitMetadata; +import com.google.showcase.grpcrest.v1beta1.WaitRequest; +import com.google.showcase.grpcrest.v1beta1.WaitResponse; import java.io.IOException; import java.util.List; import javax.annotation.Generated; +import org.threeten.bp.Duration; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** - * Settings class to configure an instance of {@link EchoClient}. + * Settings class to configure an instance of {@link EchoStub}. * *

The default instance has everything set to sensible defaults: * @@ -44,7 +75,7 @@ import javax.annotation.Generated; *

{@code
  * // This snippet has been automatically generated for illustrative purposes only.
  * // It may require modifications to work in your environment.
- * EchoSettings.Builder echoSettingsBuilder = EchoSettings.newBuilder();
+ * EchoStubSettings.Builder echoSettingsBuilder = EchoStubSettings.newBuilder();
  * echoSettingsBuilder
  *     .echoSettings()
  *     .setRetrySettings(
@@ -54,103 +85,274 @@ import javax.annotation.Generated;
  *             .toBuilder()
  *             .setTotalTimeout(Duration.ofSeconds(30))
  *             .build());
- * EchoSettings echoSettings = echoSettingsBuilder.build();
+ * EchoStubSettings echoSettings = echoSettingsBuilder.build();
  * }
*/ @BetaApi @Generated("by gapic-generator-java") -public class EchoSettings extends ClientSettings { +public class EchoStubSettings extends StubSettings { + /** The default scopes of the service. */ + private static final ImmutableList DEFAULT_SERVICE_SCOPES = + ImmutableList.builder().add("https://www.googleapis.com/auth/cloud-platform").build(); + + private final UnaryCallSettings echoSettings; + private final ServerStreamingCallSettings expandSettings; + private final PagedCallSettings + pagedExpandSettings; + private final PagedCallSettings< + PagedExpandRequest, PagedExpandResponse, SimplePagedExpandPagedResponse> + simplePagedExpandSettings; + private final UnaryCallSettings waitSettings; + private final OperationCallSettings + waitOperationSettings; + private final UnaryCallSettings blockSettings; + private final UnaryCallSettings collideNameSettings; + private final UnaryCallSettings nestedBindingSettings; + private final StreamingCallSettings chatSettings; + private final UnaryCallSettings noBindingSettings; + + private static final PagedListDescriptor + PAGED_EXPAND_PAGE_STR_DESC = + new PagedListDescriptor() { + @Override + public String emptyToken() { + return ""; + } + + @Override + public PagedExpandRequest injectToken(PagedExpandRequest payload, String token) { + return PagedExpandRequest.newBuilder(payload).setPageToken(token).build(); + } + + @Override + public PagedExpandRequest injectPageSize(PagedExpandRequest payload, int pageSize) { + return PagedExpandRequest.newBuilder(payload).setPageSize(pageSize).build(); + } + + @Override + public Integer extractPageSize(PagedExpandRequest payload) { + return payload.getPageSize(); + } + + @Override + public String extractNextToken(PagedExpandResponse payload) { + return payload.getNextPageToken(); + } + + @Override + public Iterable extractResources(PagedExpandResponse payload) { + return payload.getResponsesList() == null + ? ImmutableList.of() + : payload.getResponsesList(); + } + }; + + private static final PagedListDescriptor + SIMPLE_PAGED_EXPAND_PAGE_STR_DESC = + new PagedListDescriptor() { + @Override + public String emptyToken() { + return ""; + } + + @Override + public PagedExpandRequest injectToken(PagedExpandRequest payload, String token) { + return PagedExpandRequest.newBuilder(payload).setPageToken(token).build(); + } + + @Override + public PagedExpandRequest injectPageSize(PagedExpandRequest payload, int pageSize) { + return PagedExpandRequest.newBuilder(payload).setPageSize(pageSize).build(); + } + + @Override + public Integer extractPageSize(PagedExpandRequest payload) { + return payload.getPageSize(); + } + + @Override + public String extractNextToken(PagedExpandResponse payload) { + return payload.getNextPageToken(); + } + + @Override + public Iterable extractResources(PagedExpandResponse payload) { + return payload.getResponsesList() == null + ? ImmutableList.of() + : payload.getResponsesList(); + } + }; + + private static final PagedListResponseFactory< + PagedExpandRequest, PagedExpandResponse, PagedExpandPagedResponse> + PAGED_EXPAND_PAGE_STR_FACT = + new PagedListResponseFactory< + PagedExpandRequest, PagedExpandResponse, PagedExpandPagedResponse>() { + @Override + public ApiFuture getFuturePagedResponse( + UnaryCallable callable, + PagedExpandRequest request, + ApiCallContext context, + ApiFuture futureResponse) { + PageContext pageContext = + PageContext.create(callable, PAGED_EXPAND_PAGE_STR_DESC, request, context); + return PagedExpandPagedResponse.createAsync(pageContext, futureResponse); + } + }; + + private static final PagedListResponseFactory< + PagedExpandRequest, PagedExpandResponse, SimplePagedExpandPagedResponse> + SIMPLE_PAGED_EXPAND_PAGE_STR_FACT = + new PagedListResponseFactory< + PagedExpandRequest, PagedExpandResponse, SimplePagedExpandPagedResponse>() { + @Override + public ApiFuture getFuturePagedResponse( + UnaryCallable callable, + PagedExpandRequest request, + ApiCallContext context, + ApiFuture futureResponse) { + PageContext pageContext = + PageContext.create(callable, SIMPLE_PAGED_EXPAND_PAGE_STR_DESC, request, context); + return SimplePagedExpandPagedResponse.createAsync(pageContext, futureResponse); + } + }; /** Returns the object with the settings used for calls to echo. */ public UnaryCallSettings echoSettings() { - return ((EchoStubSettings) getStubSettings()).echoSettings(); + return echoSettings; } /** Returns the object with the settings used for calls to expand. */ public ServerStreamingCallSettings expandSettings() { - return ((EchoStubSettings) getStubSettings()).expandSettings(); + return expandSettings; } /** Returns the object with the settings used for calls to pagedExpand. */ public PagedCallSettings pagedExpandSettings() { - return ((EchoStubSettings) getStubSettings()).pagedExpandSettings(); + return pagedExpandSettings; } /** Returns the object with the settings used for calls to simplePagedExpand. */ public PagedCallSettings simplePagedExpandSettings() { - return ((EchoStubSettings) getStubSettings()).simplePagedExpandSettings(); + return simplePagedExpandSettings; } /** Returns the object with the settings used for calls to wait. */ public UnaryCallSettings waitSettings() { - return ((EchoStubSettings) getStubSettings()).waitSettings(); + return waitSettings; } /** Returns the object with the settings used for calls to wait. */ public OperationCallSettings waitOperationSettings() { - return ((EchoStubSettings) getStubSettings()).waitOperationSettings(); + return waitOperationSettings; } /** Returns the object with the settings used for calls to block. */ public UnaryCallSettings blockSettings() { - return ((EchoStubSettings) getStubSettings()).blockSettings(); + return blockSettings; } /** Returns the object with the settings used for calls to collideName. */ public UnaryCallSettings collideNameSettings() { - return ((EchoStubSettings) getStubSettings()).collideNameSettings(); + return collideNameSettings; } /** Returns the object with the settings used for calls to nestedBinding. */ public UnaryCallSettings nestedBindingSettings() { - return ((EchoStubSettings) getStubSettings()).nestedBindingSettings(); + return nestedBindingSettings; } - public static final EchoSettings create(EchoStubSettings stub) throws IOException { - return new EchoSettings.Builder(stub.toBuilder()).build(); + /** Returns the object with the settings used for calls to chat. */ + public StreamingCallSettings chatSettings() { + return chatSettings; + } + + /** Returns the object with the settings used for calls to noBinding. */ + public UnaryCallSettings noBindingSettings() { + return noBindingSettings; + } + + public EchoStub createStub() throws IOException { + if (getTransportChannelProvider() + .getTransportName() + .equals(GrpcTransportChannel.getGrpcTransportName())) { + return GrpcEchoStub.create(this); + } + if (getTransportChannelProvider() + .getTransportName() + .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) { + return HttpJsonEchoStub.create(this); + } + throw new UnsupportedOperationException( + String.format( + "Transport not supported: %s", getTransportChannelProvider().getTransportName())); } /** Returns a builder for the default ExecutorProvider for this service. */ public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { - return EchoStubSettings.defaultExecutorProviderBuilder(); + return InstantiatingExecutorProvider.newBuilder(); } /** Returns the default service endpoint. */ public static String getDefaultEndpoint() { - return EchoStubSettings.getDefaultEndpoint(); + return "localhost:7469"; + } + + /** Returns the default mTLS service endpoint. */ + public static String getDefaultMtlsEndpoint() { + return "localhost:7469"; } /** Returns the default service scopes. */ public static List getDefaultServiceScopes() { - return EchoStubSettings.getDefaultServiceScopes(); + return DEFAULT_SERVICE_SCOPES; } /** Returns a builder for the default credentials for this service. */ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { - return EchoStubSettings.defaultCredentialsProviderBuilder(); + return GoogleCredentialsProvider.newBuilder() + .setScopesToApply(DEFAULT_SERVICE_SCOPES) + .setUseJwtAccessWithScope(true); } /** Returns a builder for the default gRPC ChannelProvider for this service. */ public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { - return EchoStubSettings.defaultGrpcTransportProviderBuilder(); + return InstantiatingGrpcChannelProvider.newBuilder() + .setMaxInboundMessageSize(Integer.MAX_VALUE); } /** Returns a builder for the default REST ChannelProvider for this service. */ @BetaApi public static InstantiatingHttpJsonChannelProvider.Builder defaultHttpJsonTransportProviderBuilder() { - return EchoStubSettings.defaultHttpJsonTransportProviderBuilder(); + return InstantiatingHttpJsonChannelProvider.newBuilder(); } public static TransportChannelProvider defaultTransportChannelProvider() { - return EchoStubSettings.defaultTransportChannelProvider(); + return defaultGrpcTransportProviderBuilder().build(); } @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") + public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() { + return ApiClientHeaderProvider.newBuilder() + .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(EchoStubSettings.class)) + .setTransportToken( + GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); + } + + @BetaApi("The surface for customizing headers is not stable yet and may change in the future.") + public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() { + return ApiClientHeaderProvider.newBuilder() + .setGeneratedLibToken("gapic", GaxProperties.getLibraryVersion(EchoStubSettings.class)) + .setTransportToken( + GaxHttpJsonProperties.getHttpJsonTokenName(), + GaxHttpJsonProperties.getHttpJsonVersion()); + } + public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { - return EchoStubSettings.defaultApiClientHeaderProviderBuilder(); + return EchoStubSettings.defaultGrpcApiClientHeaderProviderBuilder(); } /** Returns a new gRPC builder for this class. */ @@ -159,7 +361,6 @@ public class EchoSettings extends ClientSettings { } /** Returns a new REST builder for this class. */ - @BetaApi public static Builder newHttpJsonBuilder() { return Builder.createHttpJsonDefault(); } @@ -174,40 +375,216 @@ public class EchoSettings extends ClientSettings { return new Builder(this); } - protected EchoSettings(Builder settingsBuilder) throws IOException { + protected EchoStubSettings(Builder settingsBuilder) throws IOException { super(settingsBuilder); + + echoSettings = settingsBuilder.echoSettings().build(); + expandSettings = settingsBuilder.expandSettings().build(); + pagedExpandSettings = settingsBuilder.pagedExpandSettings().build(); + simplePagedExpandSettings = settingsBuilder.simplePagedExpandSettings().build(); + waitSettings = settingsBuilder.waitSettings().build(); + waitOperationSettings = settingsBuilder.waitOperationSettings().build(); + blockSettings = settingsBuilder.blockSettings().build(); + collideNameSettings = settingsBuilder.collideNameSettings().build(); + nestedBindingSettings = settingsBuilder.nestedBindingSettings().build(); + chatSettings = settingsBuilder.chatSettings().build(); + noBindingSettings = settingsBuilder.noBindingSettings().build(); } - /** Builder for EchoSettings. */ - public static class Builder extends ClientSettings.Builder { + /** Builder for EchoStubSettings. */ + public static class Builder extends StubSettings.Builder { + private final ImmutableList> unaryMethodSettingsBuilders; + private final UnaryCallSettings.Builder echoSettings; + private final ServerStreamingCallSettings.Builder expandSettings; + private final PagedCallSettings.Builder< + PagedExpandRequest, PagedExpandResponse, PagedExpandPagedResponse> + pagedExpandSettings; + private final PagedCallSettings.Builder< + PagedExpandRequest, PagedExpandResponse, SimplePagedExpandPagedResponse> + simplePagedExpandSettings; + private final UnaryCallSettings.Builder waitSettings; + private final OperationCallSettings.Builder + waitOperationSettings; + private final UnaryCallSettings.Builder blockSettings; + private final UnaryCallSettings.Builder collideNameSettings; + private final UnaryCallSettings.Builder nestedBindingSettings; + private final StreamingCallSettings.Builder chatSettings; + private final UnaryCallSettings.Builder noBindingSettings; + private static final ImmutableMap> + RETRYABLE_CODE_DEFINITIONS; + + static { + ImmutableMap.Builder> definitions = + ImmutableMap.builder(); + definitions.put("no_retry_codes", ImmutableSet.copyOf(Lists.newArrayList())); + RETRYABLE_CODE_DEFINITIONS = definitions.build(); + } - protected Builder() throws IOException { - this(((ClientContext) null)); + private static final ImmutableMap RETRY_PARAM_DEFINITIONS; + + static { + ImmutableMap.Builder definitions = ImmutableMap.builder(); + RetrySettings settings = null; + settings = RetrySettings.newBuilder().setRpcTimeoutMultiplier(1.0).build(); + definitions.put("no_retry_params", settings); + RETRY_PARAM_DEFINITIONS = definitions.build(); } - protected Builder(ClientContext clientContext) { - super(EchoStubSettings.newBuilder(clientContext)); + protected Builder() { + this(((ClientContext) null)); } - protected Builder(EchoSettings settings) { - super(settings.getStubSettings().toBuilder()); + protected Builder(ClientContext clientContext) { + super(clientContext); + + echoSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + expandSettings = ServerStreamingCallSettings.newBuilder(); + pagedExpandSettings = PagedCallSettings.newBuilder(PAGED_EXPAND_PAGE_STR_FACT); + simplePagedExpandSettings = PagedCallSettings.newBuilder(SIMPLE_PAGED_EXPAND_PAGE_STR_FACT); + waitSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + waitOperationSettings = OperationCallSettings.newBuilder(); + blockSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + collideNameSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + nestedBindingSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + chatSettings = StreamingCallSettings.newBuilder(); + noBindingSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + + unaryMethodSettingsBuilders = + ImmutableList.>of( + echoSettings, + pagedExpandSettings, + simplePagedExpandSettings, + waitSettings, + blockSettings, + collideNameSettings, + nestedBindingSettings, + noBindingSettings); + initDefaults(this); } - protected Builder(EchoStubSettings.Builder stubSettings) { - super(stubSettings); + protected Builder(EchoStubSettings settings) { + super(settings); + + echoSettings = settings.echoSettings.toBuilder(); + expandSettings = settings.expandSettings.toBuilder(); + pagedExpandSettings = settings.pagedExpandSettings.toBuilder(); + simplePagedExpandSettings = settings.simplePagedExpandSettings.toBuilder(); + waitSettings = settings.waitSettings.toBuilder(); + waitOperationSettings = settings.waitOperationSettings.toBuilder(); + blockSettings = settings.blockSettings.toBuilder(); + collideNameSettings = settings.collideNameSettings.toBuilder(); + nestedBindingSettings = settings.nestedBindingSettings.toBuilder(); + chatSettings = settings.chatSettings.toBuilder(); + noBindingSettings = settings.noBindingSettings.toBuilder(); + + unaryMethodSettingsBuilders = + ImmutableList.>of( + echoSettings, + pagedExpandSettings, + simplePagedExpandSettings, + waitSettings, + blockSettings, + collideNameSettings, + nestedBindingSettings, + noBindingSettings); } private static Builder createDefault() { - return new Builder(EchoStubSettings.newBuilder()); + Builder builder = new Builder(((ClientContext) null)); + + builder.setTransportChannelProvider(defaultTransportChannelProvider()); + builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); + builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build()); + builder.setEndpoint(getDefaultEndpoint()); + builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); + builder.setSwitchToMtlsEndpointAllowed(true); + + return initDefaults(builder); } - @BetaApi private static Builder createHttpJsonDefault() { - return new Builder(EchoStubSettings.newHttpJsonBuilder()); + Builder builder = new Builder(((ClientContext) null)); + + builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build()); + builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build()); + builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build()); + builder.setEndpoint(getDefaultEndpoint()); + builder.setMtlsEndpoint(getDefaultMtlsEndpoint()); + builder.setSwitchToMtlsEndpointAllowed(true); + + return initDefaults(builder); } - public EchoStubSettings.Builder getStubSettingsBuilder() { - return ((EchoStubSettings.Builder) getStubSettings()); + private static Builder initDefaults(Builder builder) { + builder + .echoSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .expandSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .pagedExpandSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .simplePagedExpandSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .waitSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .blockSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .collideNameSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .nestedBindingSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .noBindingSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .waitOperationSettings() + .setInitialCallSettings( + UnaryCallSettings.newUnaryCallSettingsBuilder() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")) + .build()) + .setResponseTransformer( + ProtoOperationTransformers.ResponseTransformer.create(WaitResponse.class)) + .setMetadataTransformer( + ProtoOperationTransformers.MetadataTransformer.create(WaitMetadata.class)) + .setPollingAlgorithm( + OperationTimedPollAlgorithm.create( + RetrySettings.newBuilder() + .setInitialRetryDelay(Duration.ofMillis(5000L)) + .setRetryDelayMultiplier(1.5) + .setMaxRetryDelay(Duration.ofMillis(45000L)) + .setInitialRpcTimeout(Duration.ZERO) + .setRpcTimeoutMultiplier(1.0) + .setMaxRpcTimeout(Duration.ZERO) + .setTotalTimeout(Duration.ofMillis(300000L)) + .build())); + + return builder; } /** @@ -217,64 +594,79 @@ public class EchoSettings extends ClientSettings { */ public Builder applyToAllUnaryMethods( ApiFunction, Void> settingsUpdater) { - super.applyToAllUnaryMethods( - getStubSettingsBuilder().unaryMethodSettingsBuilders(), settingsUpdater); + super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater); return this; } + public ImmutableList> unaryMethodSettingsBuilders() { + return unaryMethodSettingsBuilders; + } + /** Returns the builder for the settings used for calls to echo. */ public UnaryCallSettings.Builder echoSettings() { - return getStubSettingsBuilder().echoSettings(); + return echoSettings; } /** Returns the builder for the settings used for calls to expand. */ public ServerStreamingCallSettings.Builder expandSettings() { - return getStubSettingsBuilder().expandSettings(); + return expandSettings; } /** Returns the builder for the settings used for calls to pagedExpand. */ public PagedCallSettings.Builder< PagedExpandRequest, PagedExpandResponse, PagedExpandPagedResponse> pagedExpandSettings() { - return getStubSettingsBuilder().pagedExpandSettings(); + return pagedExpandSettings; } /** Returns the builder for the settings used for calls to simplePagedExpand. */ public PagedCallSettings.Builder< PagedExpandRequest, PagedExpandResponse, SimplePagedExpandPagedResponse> simplePagedExpandSettings() { - return getStubSettingsBuilder().simplePagedExpandSettings(); + return simplePagedExpandSettings; } /** Returns the builder for the settings used for calls to wait. */ public UnaryCallSettings.Builder waitSettings() { - return getStubSettingsBuilder().waitSettings(); + return waitSettings; } /** Returns the builder for the settings used for calls to wait. */ + @BetaApi( + "The surface for use by generated code is not stable yet and may change in the future.") public OperationCallSettings.Builder waitOperationSettings() { - return getStubSettingsBuilder().waitOperationSettings(); + return waitOperationSettings; } /** Returns the builder for the settings used for calls to block. */ public UnaryCallSettings.Builder blockSettings() { - return getStubSettingsBuilder().blockSettings(); + return blockSettings; } /** Returns the builder for the settings used for calls to collideName. */ public UnaryCallSettings.Builder collideNameSettings() { - return getStubSettingsBuilder().collideNameSettings(); + return collideNameSettings; } /** Returns the builder for the settings used for calls to nestedBinding. */ public UnaryCallSettings.Builder nestedBindingSettings() { - return getStubSettingsBuilder().nestedBindingSettings(); + return nestedBindingSettings; + } + + /** Returns the builder for the settings used for calls to chat. */ + public StreamingCallSettings.Builder chatSettings() { + return chatSettings; + } + + /** Returns the builder for the settings used for calls to noBinding. */ + public UnaryCallSettings.Builder noBindingSettings() { + return noBindingSettings; } @Override - public EchoSettings build() throws IOException { - return new EchoSettings(this); + public EchoStubSettings build() throws IOException { + return new EchoStubSettings(this); } } } diff --git a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/GrpcEchoStub.golden b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/GrpcEchoStub.golden index 959f48d7a2..8cf20fee1f 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/GrpcEchoStub.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/grpcrest/goldens/GrpcEchoStub.golden @@ -8,6 +8,7 @@ import com.google.api.gax.core.BackgroundResource; import com.google.api.gax.core.BackgroundResourceAggregation; import com.google.api.gax.grpc.GrpcCallSettings; import com.google.api.gax.grpc.GrpcStubCallableFactory; +import com.google.api.gax.rpc.BidiStreamingCallable; import com.google.api.gax.rpc.ClientContext; import com.google.api.gax.rpc.OperationCallable; import com.google.api.gax.rpc.ServerStreamingCallable; @@ -110,6 +111,22 @@ public class GrpcEchoStub extends EchoStub { .setResponseMarshaller(ProtoUtils.marshaller(Object.getDefaultInstance())) .build(); + private static final MethodDescriptor chatMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.BIDI_STREAMING) + .setFullMethodName("google.showcase.grpcrest.v1beta1.Echo/Chat") + .setRequestMarshaller(ProtoUtils.marshaller(EchoRequest.getDefaultInstance())) + .setResponseMarshaller(ProtoUtils.marshaller(EchoResponse.getDefaultInstance())) + .build(); + + private static final MethodDescriptor noBindingMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName("google.showcase.grpcrest.v1beta1.Echo/NoBinding") + .setRequestMarshaller(ProtoUtils.marshaller(EchoRequest.getDefaultInstance())) + .setResponseMarshaller(ProtoUtils.marshaller(EchoResponse.getDefaultInstance())) + .build(); + private final UnaryCallable echoCallable; private final ServerStreamingCallable expandCallable; private final UnaryCallable pagedExpandCallable; @@ -123,6 +140,8 @@ public class GrpcEchoStub extends EchoStub { private final UnaryCallable blockCallable; private final UnaryCallable collideNameCallable; private final UnaryCallable nestedBindingCallable; + private final BidiStreamingCallable chatCallable; + private final UnaryCallable noBindingCallable; private final BackgroundResource backgroundResources; private final GrpcOperationsStub operationsStub; @@ -200,6 +219,14 @@ public class GrpcEchoStub extends EchoStub { return params.build(); }) .build(); + GrpcCallSettings chatTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(chatMethodDescriptor) + .build(); + GrpcCallSettings noBindingTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(noBindingMethodDescriptor) + .build(); this.echoCallable = callableFactory.createUnaryCallable( @@ -238,6 +265,12 @@ public class GrpcEchoStub extends EchoStub { this.nestedBindingCallable = callableFactory.createUnaryCallable( nestedBindingTransportSettings, settings.nestedBindingSettings(), clientContext); + this.chatCallable = + callableFactory.createBidiStreamingCallable( + chatTransportSettings, settings.chatSettings(), clientContext); + this.noBindingCallable = + callableFactory.createUnaryCallable( + noBindingTransportSettings, settings.noBindingSettings(), clientContext); this.backgroundResources = new BackgroundResourceAggregation(clientContext.getBackgroundResources()); @@ -303,6 +336,16 @@ public class GrpcEchoStub extends EchoStub { return nestedBindingCallable; } + @Override + public BidiStreamingCallable chatCallable() { + return chatCallable; + } + + @Override + public UnaryCallable noBindingCallable() { + return noBindingCallable; + } + @Override public final void close() { try { diff --git a/src/test/java/com/google/api/generator/gapic/model/ResourceNameTest.java b/src/test/java/com/google/api/generator/gapic/model/ResourceNameTest.java new file mode 100644 index 0000000000..0cd6620c51 --- /dev/null +++ b/src/test/java/com/google/api/generator/gapic/model/ResourceNameTest.java @@ -0,0 +1,74 @@ +// Copyright 2022 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.api.generator.gapic.model; + +import com.google.api.generator.gapic.model.HttpBindings.HttpVerb; +import com.google.common.truth.Truth; +import java.util.Arrays; +import java.util.Collections; +import org.junit.Test; + +public class ResourceNameTest { + private final ResourceName resName = + ResourceName.builder() + .setVariableName("topic") + .setPakkage("com.google.pubsub.v1") + .setResourceTypeString("pubsub.googleapis.com/Topic") + .setPatterns(Arrays.asList("_deleted-topic_", "projects/{project}/topics/{topic}")) + .setParentMessageName("com.google.pubsub.v1.Topic") + .build(); + + @Test + public void getMatchingPattern() { + HttpBindings bindings = + HttpBindings.builder() + .setHttpVerb(HttpVerb.PUT) + .setPattern("/v1/{name=projects/*/topics/*}") + .setAdditionalPatterns(Collections.emptyList()) + .setIsAsteriskBody(true) + .build(); + + String matchingPattern = resName.getMatchingPattern(bindings); + Truth.assertThat(matchingPattern).isEqualTo("projects/{project}/topics/{topic}"); + } + + @Test + public void getMatchingPatternFromAdditionalPattern() { + HttpBindings bindings = + HttpBindings.builder() + .setHttpVerb(HttpVerb.PUT) + .setPattern("/v1/{name=projects/*/subscriptions/*}") + .setAdditionalPatterns(Collections.singletonList("/v1/{name=projects/*/topics/*}")) + .setIsAsteriskBody(true) + .build(); + + String matchingPattern = resName.getMatchingPattern(bindings); + Truth.assertThat(matchingPattern).isEqualTo("projects/{project}/topics/{topic}"); + } + + @Test + public void getMatchingPatternNoMatch() { + HttpBindings bindings = + HttpBindings.builder() + .setHttpVerb(HttpVerb.PUT) + .setPattern("/v1/{name=projects/*/subscriptions/*}") + .setAdditionalPatterns(Collections.singletonList("/v1/{name=projects/*/stuff/*}")) + .setIsAsteriskBody(true) + .build(); + + String matchingPattern = resName.getMatchingPattern(bindings); + Truth.assertThat(matchingPattern).isNull(); + } +} diff --git a/src/test/proto/echo_grpcrest.proto b/src/test/proto/echo_grpcrest.proto index 92389232e7..4b56bca9e3 100644 --- a/src/test/proto/echo_grpcrest.proto +++ b/src/test/proto/echo_grpcrest.proto @@ -135,6 +135,15 @@ service Echo { } }; } + + rpc Chat(stream EchoRequest) returns (stream EchoResponse) { + option (google.api.http) = { + post: "/v1beta1/chat:chat" + body: "error" + }; + } + + rpc NoBinding(EchoRequest) returns (EchoResponse); } // Generator should not fail when encounter a service without methods diff --git a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/batchgetassetshistory/AsyncBatchGetAssetsHistory.java b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/batchgetassetshistory/AsyncBatchGetAssetsHistory.java index 2686566215..9ce64bda8f 100644 --- a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/batchgetassetshistory/AsyncBatchGetAssetsHistory.java +++ b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/batchgetassetshistory/AsyncBatchGetAssetsHistory.java @@ -22,7 +22,6 @@ import com.google.cloud.asset.v1.BatchGetAssetsHistoryRequest; import com.google.cloud.asset.v1.BatchGetAssetsHistoryResponse; import com.google.cloud.asset.v1.ContentType; -import com.google.cloud.asset.v1.FeedName; import com.google.cloud.asset.v1.TimeWindow; import java.util.ArrayList; @@ -38,7 +37,7 @@ public static void asyncBatchGetAssetsHistory() throws Exception { try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { BatchGetAssetsHistoryRequest request = BatchGetAssetsHistoryRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("BatchGetAssetsHistoryRequest1575208378".toString()) .addAllAssetNames(new ArrayList()) .setContentType(ContentType.forNumber(0)) .setReadTimeWindow(TimeWindow.newBuilder().build()) diff --git a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/batchgetassetshistory/SyncBatchGetAssetsHistory.java b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/batchgetassetshistory/SyncBatchGetAssetsHistory.java index 95939b8ef9..1f2546c781 100644 --- a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/batchgetassetshistory/SyncBatchGetAssetsHistory.java +++ b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/batchgetassetshistory/SyncBatchGetAssetsHistory.java @@ -21,7 +21,6 @@ import com.google.cloud.asset.v1.BatchGetAssetsHistoryRequest; import com.google.cloud.asset.v1.BatchGetAssetsHistoryResponse; import com.google.cloud.asset.v1.ContentType; -import com.google.cloud.asset.v1.FeedName; import com.google.cloud.asset.v1.TimeWindow; import java.util.ArrayList; @@ -37,7 +36,7 @@ public static void syncBatchGetAssetsHistory() throws Exception { try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { BatchGetAssetsHistoryRequest request = BatchGetAssetsHistoryRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("BatchGetAssetsHistoryRequest1575208378".toString()) .addAllAssetNames(new ArrayList()) .setContentType(ContentType.forNumber(0)) .setReadTimeWindow(TimeWindow.newBuilder().build()) diff --git a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/AsyncExportAssets.java b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/AsyncExportAssets.java index 1e360ad76e..5db1eb8fe5 100644 --- a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/AsyncExportAssets.java +++ b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/AsyncExportAssets.java @@ -21,7 +21,6 @@ import com.google.cloud.asset.v1.AssetServiceClient; import com.google.cloud.asset.v1.ContentType; import com.google.cloud.asset.v1.ExportAssetsRequest; -import com.google.cloud.asset.v1.FeedName; import com.google.cloud.asset.v1.OutputConfig; import com.google.longrunning.Operation; import com.google.protobuf.Timestamp; @@ -39,7 +38,7 @@ public static void asyncExportAssets() throws Exception { try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { ExportAssetsRequest request = ExportAssetsRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("ExportAssetsRequest-846449128".toString()) .setReadTime(Timestamp.newBuilder().build()) .addAllAssetTypes(new ArrayList()) .setContentType(ContentType.forNumber(0)) diff --git a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/AsyncExportAssetsLRO.java b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/AsyncExportAssetsLRO.java index 8c61111f0e..bb0e40bb9a 100644 --- a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/AsyncExportAssetsLRO.java +++ b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/AsyncExportAssetsLRO.java @@ -22,7 +22,6 @@ import com.google.cloud.asset.v1.ContentType; import com.google.cloud.asset.v1.ExportAssetsRequest; import com.google.cloud.asset.v1.ExportAssetsResponse; -import com.google.cloud.asset.v1.FeedName; import com.google.cloud.asset.v1.OutputConfig; import com.google.protobuf.Timestamp; import java.util.ArrayList; @@ -39,7 +38,7 @@ public static void asyncExportAssetsLRO() throws Exception { try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { ExportAssetsRequest request = ExportAssetsRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("ExportAssetsRequest-846449128".toString()) .setReadTime(Timestamp.newBuilder().build()) .addAllAssetTypes(new ArrayList()) .setContentType(ContentType.forNumber(0)) diff --git a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/SyncExportAssets.java b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/SyncExportAssets.java index 9e6a761656..2f5a8d6228 100644 --- a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/SyncExportAssets.java +++ b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/exportassets/SyncExportAssets.java @@ -21,7 +21,6 @@ import com.google.cloud.asset.v1.ContentType; import com.google.cloud.asset.v1.ExportAssetsRequest; import com.google.cloud.asset.v1.ExportAssetsResponse; -import com.google.cloud.asset.v1.FeedName; import com.google.cloud.asset.v1.OutputConfig; import com.google.protobuf.Timestamp; import java.util.ArrayList; @@ -38,7 +37,7 @@ public static void syncExportAssets() throws Exception { try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { ExportAssetsRequest request = ExportAssetsRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("ExportAssetsRequest-846449128".toString()) .setReadTime(Timestamp.newBuilder().build()) .addAllAssetTypes(new ArrayList()) .setContentType(ContentType.forNumber(0)) diff --git a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/AsyncListAssets.java b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/AsyncListAssets.java index fd9e49d725..8ffa2f0d29 100644 --- a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/AsyncListAssets.java +++ b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/AsyncListAssets.java @@ -21,7 +21,6 @@ import com.google.cloud.asset.v1.Asset; import com.google.cloud.asset.v1.AssetServiceClient; import com.google.cloud.asset.v1.ContentType; -import com.google.cloud.asset.v1.FeedName; import com.google.cloud.asset.v1.ListAssetsRequest; import com.google.protobuf.Timestamp; import java.util.ArrayList; @@ -38,7 +37,7 @@ public static void asyncListAssets() throws Exception { try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { ListAssetsRequest request = ListAssetsRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("ListAssetsRequest-221586066".toString()) .setReadTime(Timestamp.newBuilder().build()) .addAllAssetTypes(new ArrayList()) .setContentType(ContentType.forNumber(0)) diff --git a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/AsyncListAssetsPaged.java b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/AsyncListAssetsPaged.java index 45b9ec9187..664d86826a 100644 --- a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/AsyncListAssetsPaged.java +++ b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/AsyncListAssetsPaged.java @@ -20,7 +20,6 @@ import com.google.cloud.asset.v1.Asset; import com.google.cloud.asset.v1.AssetServiceClient; import com.google.cloud.asset.v1.ContentType; -import com.google.cloud.asset.v1.FeedName; import com.google.cloud.asset.v1.ListAssetsRequest; import com.google.cloud.asset.v1.ListAssetsResponse; import com.google.common.base.Strings; @@ -39,7 +38,7 @@ public static void asyncListAssetsPaged() throws Exception { try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { ListAssetsRequest request = ListAssetsRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("ListAssetsRequest-221586066".toString()) .setReadTime(Timestamp.newBuilder().build()) .addAllAssetTypes(new ArrayList()) .setContentType(ContentType.forNumber(0)) diff --git a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/SyncListAssets.java b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/SyncListAssets.java index 32b5dbbe32..ae28e2b1d7 100644 --- a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/SyncListAssets.java +++ b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/SyncListAssets.java @@ -20,7 +20,6 @@ import com.google.cloud.asset.v1.Asset; import com.google.cloud.asset.v1.AssetServiceClient; import com.google.cloud.asset.v1.ContentType; -import com.google.cloud.asset.v1.FeedName; import com.google.cloud.asset.v1.ListAssetsRequest; import com.google.protobuf.Timestamp; import java.util.ArrayList; @@ -37,7 +36,7 @@ public static void syncListAssets() throws Exception { try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { ListAssetsRequest request = ListAssetsRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("ListAssetsRequest-221586066".toString()) .setReadTime(Timestamp.newBuilder().build()) .addAllAssetTypes(new ArrayList()) .setContentType(ContentType.forNumber(0)) diff --git a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/SyncListAssetsResourcename.java b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/SyncListAssetsResourcename.java index 49a04678a1..4f7f81821d 100644 --- a/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/SyncListAssetsResourcename.java +++ b/test/integration/goldens/asset/samples/snippets/generated/main/java/com/google/cloud/asset/v1/assetserviceclient/listassets/SyncListAssetsResourcename.java @@ -20,7 +20,8 @@ import com.google.api.resourcenames.ResourceName; import com.google.cloud.asset.v1.Asset; import com.google.cloud.asset.v1.AssetServiceClient; -import com.google.cloud.asset.v1.FeedName; +import java.util.HashMap; +import java.util.Map; public class SyncListAssetsResourcename { @@ -32,7 +33,25 @@ public static void syncListAssetsResourcename() throws Exception { // This snippet has been automatically generated for illustrative purposes only. // It may require modifications to work in your environment. try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { - ResourceName parent = FeedName.ofProjectFeedName("[PROJECT]", "[FEED]"); + ResourceName parent = + new ResourceName() { + @Override + public Map getFieldValuesMap() { + Map fieldValuesMap = new HashMap<>(); + fieldValuesMap.put("parent", "parent-4715/parent-4715"); + return fieldValuesMap; + } + + @Override + public String getFieldValue(String fieldName) { + return getFieldValuesMap().get(fieldName); + } + + @Override + public String toString() { + return "parent-4715/parent-4715"; + } + }; for (Asset element : assetServiceClient.listAssets(parent).iterateAll()) { // doThingsWith(element); } diff --git a/test/integration/goldens/asset/src/com/google/cloud/asset/v1/AssetServiceClient.java b/test/integration/goldens/asset/src/com/google/cloud/asset/v1/AssetServiceClient.java index 6277dc6f88..4654d5d26a 100644 --- a/test/integration/goldens/asset/src/com/google/cloud/asset/v1/AssetServiceClient.java +++ b/test/integration/goldens/asset/src/com/google/cloud/asset/v1/AssetServiceClient.java @@ -51,7 +51,7 @@ * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { * BatchGetAssetsHistoryRequest request = * BatchGetAssetsHistoryRequest.newBuilder() - * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + * .setParent("BatchGetAssetsHistoryRequest1575208378".toString()) * .addAllAssetNames(new ArrayList()) * .setContentType(ContentType.forNumber(0)) * .setReadTimeWindow(TimeWindow.newBuilder().build()) @@ -190,7 +190,7 @@ public final OperationsClient getOperationsClient() { * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { * ExportAssetsRequest request = * ExportAssetsRequest.newBuilder() - * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + * .setParent("ExportAssetsRequest-846449128".toString()) * .setReadTime(Timestamp.newBuilder().build()) * .addAllAssetTypes(new ArrayList()) * .setContentType(ContentType.forNumber(0)) @@ -228,7 +228,7 @@ public final OperationFuture exportAs * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { * ExportAssetsRequest request = * ExportAssetsRequest.newBuilder() - * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + * .setParent("ExportAssetsRequest-846449128".toString()) * .setReadTime(Timestamp.newBuilder().build()) * .addAllAssetTypes(new ArrayList()) * .setContentType(ContentType.forNumber(0)) @@ -266,7 +266,7 @@ public final OperationFuture exportAs * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { * ExportAssetsRequest request = * ExportAssetsRequest.newBuilder() - * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + * .setParent("ExportAssetsRequest-846449128".toString()) * .setReadTime(Timestamp.newBuilder().build()) * .addAllAssetTypes(new ArrayList()) * .setContentType(ContentType.forNumber(0)) @@ -293,7 +293,25 @@ public final UnaryCallable exportAssetsCallable( * // This snippet has been automatically generated for illustrative purposes only. * // It may require modifications to work in your environment. * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { - * ResourceName parent = FeedName.ofProjectFeedName("[PROJECT]", "[FEED]"); + * ResourceName parent = + * new ResourceName() { + * {@literal @}Override + * public Map getFieldValuesMap() { + * Map fieldValuesMap = new HashMap<>(); + * fieldValuesMap.put("parent", "parent-4715/parent-4715"); + * return fieldValuesMap; + * } + * + * {@literal @}Override + * public String getFieldValue(String fieldName) { + * return getFieldValuesMap().get(fieldName); + * } + * + * {@literal @}Override + * public String toString() { + * return "parent-4715/parent-4715"; + * } + * }; * for (Asset element : assetServiceClient.listAssets(parent).iterateAll()) { * // doThingsWith(element); * } @@ -352,7 +370,7 @@ public final ListAssetsPagedResponse listAssets(String parent) { * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { * ListAssetsRequest request = * ListAssetsRequest.newBuilder() - * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + * .setParent("ListAssetsRequest-221586066".toString()) * .setReadTime(Timestamp.newBuilder().build()) * .addAllAssetTypes(new ArrayList()) * .setContentType(ContentType.forNumber(0)) @@ -385,7 +403,7 @@ public final ListAssetsPagedResponse listAssets(ListAssetsRequest request) { * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { * ListAssetsRequest request = * ListAssetsRequest.newBuilder() - * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + * .setParent("ListAssetsRequest-221586066".toString()) * .setReadTime(Timestamp.newBuilder().build()) * .addAllAssetTypes(new ArrayList()) * .setContentType(ContentType.forNumber(0)) @@ -417,7 +435,7 @@ public final UnaryCallable listAsset * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { * ListAssetsRequest request = * ListAssetsRequest.newBuilder() - * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + * .setParent("ListAssetsRequest-221586066".toString()) * .setReadTime(Timestamp.newBuilder().build()) * .addAllAssetTypes(new ArrayList()) * .setContentType(ContentType.forNumber(0)) @@ -460,7 +478,7 @@ public final UnaryCallable listAssetsCall * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { * BatchGetAssetsHistoryRequest request = * BatchGetAssetsHistoryRequest.newBuilder() - * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + * .setParent("BatchGetAssetsHistoryRequest1575208378".toString()) * .addAllAssetNames(new ArrayList()) * .setContentType(ContentType.forNumber(0)) * .setReadTimeWindow(TimeWindow.newBuilder().build()) @@ -494,7 +512,7 @@ public final BatchGetAssetsHistoryResponse batchGetAssetsHistory( * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { * BatchGetAssetsHistoryRequest request = * BatchGetAssetsHistoryRequest.newBuilder() - * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + * .setParent("BatchGetAssetsHistoryRequest1575208378".toString()) * .addAllAssetNames(new ArrayList()) * .setContentType(ContentType.forNumber(0)) * .setReadTimeWindow(TimeWindow.newBuilder().build()) diff --git a/test/integration/goldens/asset/src/com/google/cloud/asset/v1/AssetServiceClientTest.java b/test/integration/goldens/asset/src/com/google/cloud/asset/v1/AssetServiceClientTest.java index 337c794761..2abc938bc1 100644 --- a/test/integration/goldens/asset/src/com/google/cloud/asset/v1/AssetServiceClientTest.java +++ b/test/integration/goldens/asset/src/com/google/cloud/asset/v1/AssetServiceClientTest.java @@ -41,7 +41,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.UUID; import java.util.concurrent.ExecutionException; import javax.annotation.Generated; @@ -108,7 +110,7 @@ public void exportAssetsTest() throws Exception { ExportAssetsRequest request = ExportAssetsRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("ExportAssetsRequest-846449128".toString()) .setReadTime(Timestamp.newBuilder().build()) .addAllAssetTypes(new ArrayList()) .setContentType(ContentType.forNumber(0)) @@ -144,7 +146,7 @@ public void exportAssetsExceptionTest() throws Exception { try { ExportAssetsRequest request = ExportAssetsRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("ExportAssetsRequest-846449128".toString()) .setReadTime(Timestamp.newBuilder().build()) .addAllAssetTypes(new ArrayList()) .setContentType(ContentType.forNumber(0)) @@ -170,7 +172,25 @@ public void listAssetsTest() throws Exception { .build(); mockAssetService.addResponse(expectedResponse); - ResourceName parent = FeedName.ofProjectFeedName("[PROJECT]", "[FEED]"); + ResourceName parent = + new ResourceName() { + @Override + public Map getFieldValuesMap() { + Map fieldValuesMap = new HashMap<>(); + fieldValuesMap.put("parent", "parent-4715/parent-4715"); + return fieldValuesMap; + } + + @Override + public String getFieldValue(String fieldName) { + return getFieldValuesMap().get(fieldName); + } + + @Override + public String toString() { + return "parent-4715/parent-4715"; + } + }; ListAssetsPagedResponse pagedListResponse = client.listAssets(parent); @@ -196,7 +216,25 @@ public void listAssetsExceptionTest() throws Exception { mockAssetService.addException(exception); try { - ResourceName parent = FeedName.ofProjectFeedName("[PROJECT]", "[FEED]"); + ResourceName parent = + new ResourceName() { + @Override + public Map getFieldValuesMap() { + Map fieldValuesMap = new HashMap<>(); + fieldValuesMap.put("parent", "parent-4715/parent-4715"); + return fieldValuesMap; + } + + @Override + public String getFieldValue(String fieldName) { + return getFieldValuesMap().get(fieldName); + } + + @Override + public String toString() { + return "parent-4715/parent-4715"; + } + }; client.listAssets(parent); Assert.fail("No exception raised"); } catch (InvalidArgumentException e) { @@ -258,7 +296,7 @@ public void batchGetAssetsHistoryTest() throws Exception { BatchGetAssetsHistoryRequest request = BatchGetAssetsHistoryRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("BatchGetAssetsHistoryRequest1575208378".toString()) .addAllAssetNames(new ArrayList()) .setContentType(ContentType.forNumber(0)) .setReadTimeWindow(TimeWindow.newBuilder().build()) @@ -293,7 +331,7 @@ public void batchGetAssetsHistoryExceptionTest() throws Exception { try { BatchGetAssetsHistoryRequest request = BatchGetAssetsHistoryRequest.newBuilder() - .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + .setParent("BatchGetAssetsHistoryRequest1575208378".toString()) .addAllAssetNames(new ArrayList()) .setContentType(ContentType.forNumber(0)) .setReadTimeWindow(TimeWindow.newBuilder().build()) diff --git a/test/integration/goldens/asset/src/com/google/cloud/asset/v1/package-info.java b/test/integration/goldens/asset/src/com/google/cloud/asset/v1/package-info.java index e98658c5b0..0eb5fe6c9d 100644 --- a/test/integration/goldens/asset/src/com/google/cloud/asset/v1/package-info.java +++ b/test/integration/goldens/asset/src/com/google/cloud/asset/v1/package-info.java @@ -29,7 +29,7 @@ * try (AssetServiceClient assetServiceClient = AssetServiceClient.create()) { * BatchGetAssetsHistoryRequest request = * BatchGetAssetsHistoryRequest.newBuilder() - * .setParent(FeedName.ofProjectFeedName("[PROJECT]", "[FEED]").toString()) + * .setParent(BillingAccountName.of("[BILLING_ACCOUNT]").toString()) * .addAllAssetNames(new ArrayList()) * .setContentType(ContentType.forNumber(0)) * .setReadTimeWindow(TimeWindow.newBuilder().build()) diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/getiampolicy/AsyncGetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/getiampolicy/AsyncGetIamPolicy.java index 9da237388c..7c87a8c098 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/getiampolicy/AsyncGetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/getiampolicy/AsyncGetIamPolicy.java @@ -22,7 +22,7 @@ import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.GetPolicyOptions; import com.google.iam.v1.Policy; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class AsyncGetIamPolicy { @@ -36,7 +36,7 @@ public static void asyncGetIamPolicy() throws Exception { try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); ApiFuture future = schemaServiceClient.getIamPolicyCallable().futureCall(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/getiampolicy/SyncGetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/getiampolicy/SyncGetIamPolicy.java index f7c1333a26..95ab749d9a 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/getiampolicy/SyncGetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/getiampolicy/SyncGetIamPolicy.java @@ -21,7 +21,7 @@ import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.GetPolicyOptions; import com.google.iam.v1.Policy; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class SyncGetIamPolicy { @@ -35,7 +35,7 @@ public static void syncGetIamPolicy() throws Exception { try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); Policy response = schemaServiceClient.getIamPolicy(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/setiampolicy/AsyncSetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/setiampolicy/AsyncSetIamPolicy.java index 21a968ee0e..5d5981bc34 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/setiampolicy/AsyncSetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/setiampolicy/AsyncSetIamPolicy.java @@ -21,7 +21,7 @@ import com.google.cloud.pubsub.v1.SchemaServiceClient; import com.google.iam.v1.Policy; import com.google.iam.v1.SetIamPolicyRequest; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class AsyncSetIamPolicy { @@ -35,7 +35,7 @@ public static void asyncSetIamPolicy() throws Exception { try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); ApiFuture future = schemaServiceClient.setIamPolicyCallable().futureCall(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/setiampolicy/SyncSetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/setiampolicy/SyncSetIamPolicy.java index 0a729de1c7..cc81608cd7 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/setiampolicy/SyncSetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/setiampolicy/SyncSetIamPolicy.java @@ -20,7 +20,7 @@ import com.google.cloud.pubsub.v1.SchemaServiceClient; import com.google.iam.v1.Policy; import com.google.iam.v1.SetIamPolicyRequest; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class SyncSetIamPolicy { @@ -34,7 +34,7 @@ public static void syncSetIamPolicy() throws Exception { try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); Policy response = schemaServiceClient.setIamPolicy(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/testiampermissions/AsyncTestIamPermissions.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/testiampermissions/AsyncTestIamPermissions.java index 460a418bd9..3bf3eedf7a 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/testiampermissions/AsyncTestIamPermissions.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/testiampermissions/AsyncTestIamPermissions.java @@ -21,7 +21,7 @@ import com.google.cloud.pubsub.v1.SchemaServiceClient; import com.google.iam.v1.TestIamPermissionsRequest; import com.google.iam.v1.TestIamPermissionsResponse; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; import java.util.ArrayList; public class AsyncTestIamPermissions { @@ -36,7 +36,7 @@ public static void asyncTestIamPermissions() throws Exception { try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); ApiFuture future = diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/testiampermissions/SyncTestIamPermissions.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/testiampermissions/SyncTestIamPermissions.java index 8243336958..0e9ac4f3dd 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/testiampermissions/SyncTestIamPermissions.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/schemaserviceclient/testiampermissions/SyncTestIamPermissions.java @@ -20,7 +20,7 @@ import com.google.cloud.pubsub.v1.SchemaServiceClient; import com.google.iam.v1.TestIamPermissionsRequest; import com.google.iam.v1.TestIamPermissionsResponse; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; import java.util.ArrayList; public class SyncTestIamPermissions { @@ -35,7 +35,7 @@ public static void syncTestIamPermissions() throws Exception { try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); TestIamPermissionsResponse response = schemaServiceClient.testIamPermissions(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/getiampolicy/AsyncGetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/getiampolicy/AsyncGetIamPolicy.java index 08b3a437a3..7248010b1e 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/getiampolicy/AsyncGetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/getiampolicy/AsyncGetIamPolicy.java @@ -22,7 +22,7 @@ import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.GetPolicyOptions; import com.google.iam.v1.Policy; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class AsyncGetIamPolicy { @@ -36,7 +36,7 @@ public static void asyncGetIamPolicy() throws Exception { try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); ApiFuture future = subscriptionAdminClient.getIamPolicyCallable().futureCall(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/getiampolicy/SyncGetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/getiampolicy/SyncGetIamPolicy.java index 6a0c4322fb..35b85d038a 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/getiampolicy/SyncGetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/getiampolicy/SyncGetIamPolicy.java @@ -21,7 +21,7 @@ import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.GetPolicyOptions; import com.google.iam.v1.Policy; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class SyncGetIamPolicy { @@ -35,7 +35,7 @@ public static void syncGetIamPolicy() throws Exception { try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); Policy response = subscriptionAdminClient.getIamPolicy(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/setiampolicy/AsyncSetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/setiampolicy/AsyncSetIamPolicy.java index 2391c2254d..f58ab1a132 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/setiampolicy/AsyncSetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/setiampolicy/AsyncSetIamPolicy.java @@ -21,7 +21,7 @@ import com.google.cloud.pubsub.v1.SubscriptionAdminClient; import com.google.iam.v1.Policy; import com.google.iam.v1.SetIamPolicyRequest; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class AsyncSetIamPolicy { @@ -35,7 +35,7 @@ public static void asyncSetIamPolicy() throws Exception { try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); ApiFuture future = subscriptionAdminClient.setIamPolicyCallable().futureCall(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/setiampolicy/SyncSetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/setiampolicy/SyncSetIamPolicy.java index f58ff8467d..0b8e4a21ec 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/setiampolicy/SyncSetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/setiampolicy/SyncSetIamPolicy.java @@ -20,7 +20,7 @@ import com.google.cloud.pubsub.v1.SubscriptionAdminClient; import com.google.iam.v1.Policy; import com.google.iam.v1.SetIamPolicyRequest; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class SyncSetIamPolicy { @@ -34,7 +34,7 @@ public static void syncSetIamPolicy() throws Exception { try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); Policy response = subscriptionAdminClient.setIamPolicy(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/testiampermissions/AsyncTestIamPermissions.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/testiampermissions/AsyncTestIamPermissions.java index 73da08f3c6..fe69cc13c1 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/testiampermissions/AsyncTestIamPermissions.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/testiampermissions/AsyncTestIamPermissions.java @@ -21,7 +21,7 @@ import com.google.cloud.pubsub.v1.SubscriptionAdminClient; import com.google.iam.v1.TestIamPermissionsRequest; import com.google.iam.v1.TestIamPermissionsResponse; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; import java.util.ArrayList; public class AsyncTestIamPermissions { @@ -36,7 +36,7 @@ public static void asyncTestIamPermissions() throws Exception { try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); ApiFuture future = diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/testiampermissions/SyncTestIamPermissions.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/testiampermissions/SyncTestIamPermissions.java index b40e380872..aed15af512 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/testiampermissions/SyncTestIamPermissions.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/subscriptionadminclient/testiampermissions/SyncTestIamPermissions.java @@ -20,7 +20,7 @@ import com.google.cloud.pubsub.v1.SubscriptionAdminClient; import com.google.iam.v1.TestIamPermissionsRequest; import com.google.iam.v1.TestIamPermissionsResponse; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; import java.util.ArrayList; public class SyncTestIamPermissions { @@ -35,7 +35,7 @@ public static void syncTestIamPermissions() throws Exception { try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); TestIamPermissionsResponse response = subscriptionAdminClient.testIamPermissions(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/getiampolicy/AsyncGetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/getiampolicy/AsyncGetIamPolicy.java index e751df5487..03efcd6925 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/getiampolicy/AsyncGetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/getiampolicy/AsyncGetIamPolicy.java @@ -22,7 +22,7 @@ import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.GetPolicyOptions; import com.google.iam.v1.Policy; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class AsyncGetIamPolicy { @@ -36,7 +36,7 @@ public static void asyncGetIamPolicy() throws Exception { try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); ApiFuture future = topicAdminClient.getIamPolicyCallable().futureCall(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/getiampolicy/SyncGetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/getiampolicy/SyncGetIamPolicy.java index d44235c6d0..a1ab357e19 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/getiampolicy/SyncGetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/getiampolicy/SyncGetIamPolicy.java @@ -21,7 +21,7 @@ import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.GetPolicyOptions; import com.google.iam.v1.Policy; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class SyncGetIamPolicy { @@ -35,7 +35,7 @@ public static void syncGetIamPolicy() throws Exception { try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); Policy response = topicAdminClient.getIamPolicy(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/setiampolicy/AsyncSetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/setiampolicy/AsyncSetIamPolicy.java index 943213ce6a..525a74b780 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/setiampolicy/AsyncSetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/setiampolicy/AsyncSetIamPolicy.java @@ -21,7 +21,7 @@ import com.google.cloud.pubsub.v1.TopicAdminClient; import com.google.iam.v1.Policy; import com.google.iam.v1.SetIamPolicyRequest; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class AsyncSetIamPolicy { @@ -35,7 +35,7 @@ public static void asyncSetIamPolicy() throws Exception { try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); ApiFuture future = topicAdminClient.setIamPolicyCallable().futureCall(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/setiampolicy/SyncSetIamPolicy.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/setiampolicy/SyncSetIamPolicy.java index 52f912fdaf..df7888a048 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/setiampolicy/SyncSetIamPolicy.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/setiampolicy/SyncSetIamPolicy.java @@ -20,7 +20,7 @@ import com.google.cloud.pubsub.v1.TopicAdminClient; import com.google.iam.v1.Policy; import com.google.iam.v1.SetIamPolicyRequest; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; public class SyncSetIamPolicy { @@ -34,7 +34,7 @@ public static void syncSetIamPolicy() throws Exception { try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); Policy response = topicAdminClient.setIamPolicy(request); diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/testiampermissions/AsyncTestIamPermissions.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/testiampermissions/AsyncTestIamPermissions.java index d1c2ce8934..75094a6d92 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/testiampermissions/AsyncTestIamPermissions.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/testiampermissions/AsyncTestIamPermissions.java @@ -21,7 +21,7 @@ import com.google.cloud.pubsub.v1.TopicAdminClient; import com.google.iam.v1.TestIamPermissionsRequest; import com.google.iam.v1.TestIamPermissionsResponse; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; import java.util.ArrayList; public class AsyncTestIamPermissions { @@ -36,7 +36,7 @@ public static void asyncTestIamPermissions() throws Exception { try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); ApiFuture future = diff --git a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/testiampermissions/SyncTestIamPermissions.java b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/testiampermissions/SyncTestIamPermissions.java index 2de0c18bbe..bc06d8369b 100644 --- a/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/testiampermissions/SyncTestIamPermissions.java +++ b/test/integration/goldens/pubsub/samples/snippets/generated/main/java/com/google/cloud/pubsub/v1/topicadminclient/testiampermissions/SyncTestIamPermissions.java @@ -20,7 +20,7 @@ import com.google.cloud.pubsub.v1.TopicAdminClient; import com.google.iam.v1.TestIamPermissionsRequest; import com.google.iam.v1.TestIamPermissionsResponse; -import com.google.pubsub.v1.ProjectName; +import com.google.pubsub.v1.SnapshotName; import java.util.ArrayList; public class SyncTestIamPermissions { @@ -35,7 +35,7 @@ public static void syncTestIamPermissions() throws Exception { try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); TestIamPermissionsResponse response = topicAdminClient.testIamPermissions(request); diff --git a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SchemaServiceClient.java b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SchemaServiceClient.java index b6783f5367..ae3d67a80a 100644 --- a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SchemaServiceClient.java +++ b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SchemaServiceClient.java @@ -825,7 +825,7 @@ public final ValidateMessageResponse validateMessage(ValidateMessageRequest requ * try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { * SetIamPolicyRequest request = * SetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setPolicy(Policy.newBuilder().build()) * .build(); * Policy response = schemaServiceClient.setIamPolicy(request); @@ -853,7 +853,7 @@ public final Policy setIamPolicy(SetIamPolicyRequest request) { * try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { * SetIamPolicyRequest request = * SetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setPolicy(Policy.newBuilder().build()) * .build(); * ApiFuture future = schemaServiceClient.setIamPolicyCallable().futureCall(request); @@ -879,7 +879,7 @@ public final UnaryCallable setIamPolicyCallable() { * try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { * GetIamPolicyRequest request = * GetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setOptions(GetPolicyOptions.newBuilder().build()) * .build(); * Policy response = schemaServiceClient.getIamPolicy(request); @@ -906,7 +906,7 @@ public final Policy getIamPolicy(GetIamPolicyRequest request) { * try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { * GetIamPolicyRequest request = * GetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setOptions(GetPolicyOptions.newBuilder().build()) * .build(); * ApiFuture future = schemaServiceClient.getIamPolicyCallable().futureCall(request); @@ -936,7 +936,7 @@ public final UnaryCallable getIamPolicyCallable() { * try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { * TestIamPermissionsRequest request = * TestIamPermissionsRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .addAllPermissions(new ArrayList()) * .build(); * TestIamPermissionsResponse response = schemaServiceClient.testIamPermissions(request); @@ -967,7 +967,7 @@ public final TestIamPermissionsResponse testIamPermissions(TestIamPermissionsReq * try (SchemaServiceClient schemaServiceClient = SchemaServiceClient.create()) { * TestIamPermissionsRequest request = * TestIamPermissionsRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .addAllPermissions(new ArrayList()) * .build(); * ApiFuture future = diff --git a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SchemaServiceClientTest.java b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SchemaServiceClientTest.java index 75d5e65ea1..fbd7388094 100644 --- a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SchemaServiceClientTest.java +++ b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SchemaServiceClientTest.java @@ -45,6 +45,7 @@ import com.google.pubsub.v1.ProjectName; import com.google.pubsub.v1.Schema; import com.google.pubsub.v1.SchemaName; +import com.google.pubsub.v1.SnapshotName; import com.google.pubsub.v1.ValidateMessageRequest; import com.google.pubsub.v1.ValidateMessageResponse; import com.google.pubsub.v1.ValidateSchemaRequest; @@ -565,7 +566,7 @@ public void setIamPolicyTest() throws Exception { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); @@ -592,7 +593,7 @@ public void setIamPolicyExceptionTest() throws Exception { try { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); client.setIamPolicy(request); @@ -614,7 +615,7 @@ public void getIamPolicyTest() throws Exception { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); @@ -641,7 +642,7 @@ public void getIamPolicyExceptionTest() throws Exception { try { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); client.getIamPolicy(request); @@ -659,7 +660,7 @@ public void testIamPermissionsTest() throws Exception { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); @@ -686,7 +687,7 @@ public void testIamPermissionsExceptionTest() throws Exception { try { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); client.testIamPermissions(request); diff --git a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SubscriptionAdminClient.java b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SubscriptionAdminClient.java index 6ce8f4a349..f0695dcd08 100644 --- a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SubscriptionAdminClient.java +++ b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SubscriptionAdminClient.java @@ -2438,7 +2438,7 @@ public final UnaryCallable seekCallable() { * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * SetIamPolicyRequest request = * SetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setPolicy(Policy.newBuilder().build()) * .build(); * Policy response = subscriptionAdminClient.setIamPolicy(request); @@ -2466,7 +2466,7 @@ public final Policy setIamPolicy(SetIamPolicyRequest request) { * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * SetIamPolicyRequest request = * SetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setPolicy(Policy.newBuilder().build()) * .build(); * ApiFuture future = subscriptionAdminClient.setIamPolicyCallable().futureCall(request); @@ -2492,7 +2492,7 @@ public final UnaryCallable setIamPolicyCallable() { * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * GetIamPolicyRequest request = * GetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setOptions(GetPolicyOptions.newBuilder().build()) * .build(); * Policy response = subscriptionAdminClient.getIamPolicy(request); @@ -2519,7 +2519,7 @@ public final Policy getIamPolicy(GetIamPolicyRequest request) { * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * GetIamPolicyRequest request = * GetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setOptions(GetPolicyOptions.newBuilder().build()) * .build(); * ApiFuture future = subscriptionAdminClient.getIamPolicyCallable().futureCall(request); @@ -2549,7 +2549,7 @@ public final UnaryCallable getIamPolicyCallable() { * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * TestIamPermissionsRequest request = * TestIamPermissionsRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .addAllPermissions(new ArrayList()) * .build(); * TestIamPermissionsResponse response = subscriptionAdminClient.testIamPermissions(request); @@ -2580,7 +2580,7 @@ public final TestIamPermissionsResponse testIamPermissions(TestIamPermissionsReq * try (SubscriptionAdminClient subscriptionAdminClient = SubscriptionAdminClient.create()) { * TestIamPermissionsRequest request = * TestIamPermissionsRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .addAllPermissions(new ArrayList()) * .build(); * ApiFuture future = diff --git a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SubscriptionAdminClientTest.java b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SubscriptionAdminClientTest.java index 0371ccb62d..9138fddb6d 100644 --- a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SubscriptionAdminClientTest.java +++ b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/SubscriptionAdminClientTest.java @@ -1685,7 +1685,7 @@ public void setIamPolicyTest() throws Exception { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); @@ -1712,7 +1712,7 @@ public void setIamPolicyExceptionTest() throws Exception { try { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); client.setIamPolicy(request); @@ -1734,7 +1734,7 @@ public void getIamPolicyTest() throws Exception { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); @@ -1761,7 +1761,7 @@ public void getIamPolicyExceptionTest() throws Exception { try { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); client.getIamPolicy(request); @@ -1779,7 +1779,7 @@ public void testIamPermissionsTest() throws Exception { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); @@ -1806,7 +1806,7 @@ public void testIamPermissionsExceptionTest() throws Exception { try { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); client.testIamPermissions(request); diff --git a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/TopicAdminClient.java b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/TopicAdminClient.java index 30a8a62940..d50e696f2d 100644 --- a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/TopicAdminClient.java +++ b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/TopicAdminClient.java @@ -1193,7 +1193,7 @@ public final DetachSubscriptionResponse detachSubscription(DetachSubscriptionReq * try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { * SetIamPolicyRequest request = * SetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setPolicy(Policy.newBuilder().build()) * .build(); * Policy response = topicAdminClient.setIamPolicy(request); @@ -1221,7 +1221,7 @@ public final Policy setIamPolicy(SetIamPolicyRequest request) { * try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { * SetIamPolicyRequest request = * SetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setPolicy(Policy.newBuilder().build()) * .build(); * ApiFuture future = topicAdminClient.setIamPolicyCallable().futureCall(request); @@ -1247,7 +1247,7 @@ public final UnaryCallable setIamPolicyCallable() { * try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { * GetIamPolicyRequest request = * GetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setOptions(GetPolicyOptions.newBuilder().build()) * .build(); * Policy response = topicAdminClient.getIamPolicy(request); @@ -1274,7 +1274,7 @@ public final Policy getIamPolicy(GetIamPolicyRequest request) { * try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { * GetIamPolicyRequest request = * GetIamPolicyRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .setOptions(GetPolicyOptions.newBuilder().build()) * .build(); * ApiFuture future = topicAdminClient.getIamPolicyCallable().futureCall(request); @@ -1304,7 +1304,7 @@ public final UnaryCallable getIamPolicyCallable() { * try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { * TestIamPermissionsRequest request = * TestIamPermissionsRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .addAllPermissions(new ArrayList()) * .build(); * TestIamPermissionsResponse response = topicAdminClient.testIamPermissions(request); @@ -1335,7 +1335,7 @@ public final TestIamPermissionsResponse testIamPermissions(TestIamPermissionsReq * try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { * TestIamPermissionsRequest request = * TestIamPermissionsRequest.newBuilder() - * .setResource(ProjectName.of("[PROJECT]").toString()) + * .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) * .addAllPermissions(new ArrayList()) * .build(); * ApiFuture future = diff --git a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/TopicAdminClientTest.java b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/TopicAdminClientTest.java index 1d002ddf5a..f6d60d9032 100644 --- a/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/TopicAdminClientTest.java +++ b/test/integration/goldens/pubsub/src/com/google/cloud/pubsub/v1/TopicAdminClientTest.java @@ -56,6 +56,7 @@ import com.google.pubsub.v1.PublishResponse; import com.google.pubsub.v1.PubsubMessage; import com.google.pubsub.v1.SchemaSettings; +import com.google.pubsub.v1.SnapshotName; import com.google.pubsub.v1.SubscriptionName; import com.google.pubsub.v1.Topic; import com.google.pubsub.v1.TopicName; @@ -810,7 +811,7 @@ public void setIamPolicyTest() throws Exception { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); @@ -837,7 +838,7 @@ public void setIamPolicyExceptionTest() throws Exception { try { SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setPolicy(Policy.newBuilder().build()) .build(); client.setIamPolicy(request); @@ -859,7 +860,7 @@ public void getIamPolicyTest() throws Exception { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); @@ -886,7 +887,7 @@ public void getIamPolicyExceptionTest() throws Exception { try { GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .setOptions(GetPolicyOptions.newBuilder().build()) .build(); client.getIamPolicy(request); @@ -904,7 +905,7 @@ public void testIamPermissionsTest() throws Exception { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); @@ -931,7 +932,7 @@ public void testIamPermissionsExceptionTest() throws Exception { try { TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder() - .setResource(ProjectName.of("[PROJECT]").toString()) + .setResource(SnapshotName.of("[PROJECT]", "[SNAPSHOT]").toString()) .addAllPermissions(new ArrayList()) .build(); client.testIamPermissions(request);