Skip to content

Commit d72b72a

Browse files
authored
fix(codegen): skip variants which only contains tags (#3172)
1 parent 0f0e77e commit d72b72a

File tree

1 file changed

+29
-6
lines changed
  • codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen

1 file changed

+29
-6
lines changed

Diff for: codegen/smithy-aws-typescript-codegen/src/main/java/software/amazon/smithy/aws/typescript/codegen/EndpointGenerator.java

+29-6
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,15 @@ private void loadServiceEndpoints() {
9696
&& (config.containsMember("hostname") || config.containsMember("variants"))) {
9797
String region = entry.getKey();
9898
String hostname = config.getStringMemberOrDefault("hostname", partition.hostnameTemplate);
99-
String resolvedHostname = getResolvedHostnameWithDnsSuffix(
100-
getResolvedHostname(hostname, endpointPrefix, region),
101-
dnsSuffix
102-
);
99+
String resolvedHostname = getResolvedHostname(hostname, endpointPrefix, region);
103100

104-
ArrayNode variants = config.getArrayMember("variants").orElse(ArrayNode.fromNodes());
105-
ArrayNode defaultVariant = ArrayNode.fromNodes(getDefaultVariant(resolvedHostname));
101+
ArrayNode variants = getServiceVariants(
102+
config.getArrayMember("variants").orElse(ArrayNode.fromNodes()),
103+
resolvedHostname,
104+
dnsSuffix);
105+
106+
String defaultHostname = getResolvedHostnameWithDnsSuffix(resolvedHostname, dnsSuffix);
107+
ArrayNode defaultVariant = ArrayNode.fromNodes(getDefaultVariant(defaultHostname));
106108

107109
endpoints.put(region,
108110
config
@@ -113,6 +115,27 @@ private void loadServiceEndpoints() {
113115
}
114116
}
115117

118+
private ArrayNode getServiceVariants(ArrayNode variants, String defaultHostname, String defaultDnsSuffix) {
119+
List<Node> serviceVariants = new ArrayList<Node>();
120+
121+
variants.forEach(variant -> {
122+
ObjectNode variantNode = variant.expectObjectNode();
123+
if (!variantNode.containsMember("hostname") && !variantNode.containsMember("dnsSuffix")) {
124+
// Skip the empty variant which just contains tags.
125+
return;
126+
}
127+
String hostname = variantNode.getStringMemberOrDefault("hostname", defaultHostname);
128+
String dnsSuffix = variantNode.getStringMemberOrDefault("dnsSuffix", defaultDnsSuffix);
129+
String resolvedHostname = getResolvedHostnameWithDnsSuffix(
130+
getResolvedHostname(hostname, endpointPrefix),
131+
dnsSuffix
132+
);
133+
serviceVariants.add(variantNode.withMember("hostname", resolvedHostname).withoutMember("dnsSuffix"));
134+
});
135+
136+
return ArrayNode.fromNodes(serviceVariants);
137+
}
138+
116139
@Override
117140
public void run() {
118141
writeRegionHash();

0 commit comments

Comments
 (0)