diff --git a/.changelog/bugfix-qualify-request-type-name-clash.json b/.changelog/bugfix-qualify-request-type-name-clash.json new file mode 100644 index 00000000000..4b62af9a05f --- /dev/null +++ b/.changelog/bugfix-qualify-request-type-name-clash.json @@ -0,0 +1,6 @@ +{ + "type": "bugfix", + "category": "tools", + "contributor": "sbiscigl", + "description": "Qualify request types that clash with an operation name" +} diff --git a/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/cpp/CppViewHelper.java b/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/cpp/CppViewHelper.java index 5ab08dd5e6c..55456ed1299 100644 --- a/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/cpp/CppViewHelper.java +++ b/tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/domainmodels/codegeneration/cpp/CppViewHelper.java @@ -648,6 +648,11 @@ public static String checkForCollision( .orElse(functionName); } + public static String getRequestTypeName(final ServiceModel serviceModel, final Operation operation) { + final String requestName = operation.getRequest().getShape().getName(); + return serviceModel.getOperations().containsKey(requestName) ? "Model::" + requestName : requestName; + } + public static boolean hasListMemberUsedForHeader(final Shape shape) { return shape.getMembers().values().stream() .anyMatch(shapeMember -> shapeMember.getShape().isList() && shapeMember.isUsedForHeader()); diff --git a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/json/serviceoperations/withrequest/OperationOutcome.vm b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/json/serviceoperations/withrequest/OperationOutcome.vm index 93c8b461662..cf02a5e206b 100644 --- a/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/json/serviceoperations/withrequest/OperationOutcome.vm +++ b/tools/code-generation/generator/src/main/resources/com/amazonaws/util/awsclientgenerator/velocity/cpp/json/serviceoperations/withrequest/OperationOutcome.vm @@ -1,4 +1,4 @@ -${operation.name}Outcome ${className}::${operation.name}(${constText}${operation.request.shape.name}& request) const +${operation.name}Outcome ${className}::${operation.name}(${constText}${CppViewHelper.getRequestTypeName($serviceModel, $operation)}& request) const { #if(!$operation.result.shape.hasEventStreamMembers() && !$operation.result.shape.hasStreamMembers()) #parse("com/amazonaws/util/awsclientgenerator/velocity/cpp/common/ServiceInvokeOperationMethod.vm")