Skip to content

Commit e60a6b2

Browse files
shwdeanDean Shaw
andauthored
Allow .api.aws endpoints (#758)
* Allow .api.aws endpoints * Change common api prefixes to function calls * Address comments --------- Co-authored-by: Dean Shaw <shwdean@amazon.com>
1 parent e61eabf commit e60a6b2

3 files changed

Lines changed: 21 additions & 8 deletions

File tree

aws/aws-service-bundler/src/main/java/software/amazon/smithy/java/aws/servicebundle/bundler/ApiStandardTerminology.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
package software.amazon.smithy.java.aws.servicebundle.bundler;
77

8+
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
89
import java.util.Collection;
910
import java.util.Collections;
1011
import java.util.HashSet;
@@ -40,8 +41,18 @@ final class ApiStandardTerminology {
4041
"Untag",
4142
"Update");
4243

43-
static final Set<String> READ_ONLY_API_PREFIXES = withCommonsPrefixes(READ_ONLY_TERMS);
44-
static final Set<String> WRITE_API_PREFIXES = withCommonsPrefixes(WRITE_TERMS);
44+
private static final Set<String> READ_ONLY_API_PREFIXES = withCommonsPrefixes(READ_ONLY_TERMS);
45+
private static final Set<String> WRITE_API_PREFIXES = withCommonsPrefixes(WRITE_TERMS);
46+
47+
@SuppressFBWarnings(value = "MS", justification = "Internal representation already immutable")
48+
public static Set<String> getReadOnlyApiPrefixes() {
49+
return READ_ONLY_API_PREFIXES;
50+
}
51+
52+
@SuppressFBWarnings(value = "MS", justification = "Internal representation already immutable")
53+
public static Set<String> getWriteApiPrefixes() {
54+
return WRITE_API_PREFIXES;
55+
}
4556

4657
private ApiStandardTerminology() {}
4758

aws/aws-service-bundler/src/main/java/software/amazon/smithy/java/aws/servicebundle/bundler/AwsServiceBundler.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ public Builder blockedOperations(Set<String> blockedOperations) {
109109
}
110110

111111
public Builder readOnlyOperations() {
112-
this.allowedPrefixes(ApiStandardTerminology.READ_ONLY_API_PREFIXES);
113-
this.blockedPrefixes(ApiStandardTerminology.WRITE_API_PREFIXES);
112+
this.allowedPrefixes(ApiStandardTerminology.getReadOnlyApiPrefixes());
113+
this.blockedPrefixes(ApiStandardTerminology.getWriteApiPrefixes());
114114
return this;
115115
}
116116

@@ -239,8 +239,10 @@ Map<String, String> parseEndpoints(ObjectNode endpointTests) {
239239
continue;
240240
}
241241

242-
if (endpoint.startsWith("https://") && endpoint.endsWith(region + ".amazonaws.com")) {
243-
if (endpoint.endsWith(region + ".amazonaws.com") || endpoint.contains(region + ".amazonaws.com.")) {
242+
if (endpoint.startsWith("https://")) {
243+
if (endpoint.endsWith(region + ".amazonaws.com")
244+
|| endpoint.contains(region + ".amazonaws.com.")
245+
|| endpoint.endsWith(region + ".api.aws")) {
244246
var prev = endpoints.put(region, endpoint);
245247
if (prev != null && !endpoint.equals(prev)) {
246248
throw new RuntimeException(

aws/aws-service-bundler/src/test/java/software/amazon/smithy/java/aws/servicebundle/bundler/AwsServiceBundlerTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ public void testReadAndWritePrefixes() {
6464
var bundler = AwsServiceBundler.builder()
6565
.serviceName("dynamodb")
6666
.resolver(serviceName -> getModel("dynamodb-2012-08-10.json"))
67-
.allowedPrefixes(ApiStandardTerminology.READ_ONLY_API_PREFIXES)
68-
.blockedPrefixes(ApiStandardTerminology.WRITE_API_PREFIXES)
67+
.allowedPrefixes(ApiStandardTerminology.getReadOnlyApiPrefixes())
68+
.blockedPrefixes(ApiStandardTerminology.getWriteApiPrefixes())
6969
.build();
7070
var bundle = bundler.bundle();
7171
var bundleModel = new ModelAssembler().addUnparsedModel("model.json", bundle.getModel())

0 commit comments

Comments
 (0)