From 4fd9154f86701d697efd57d50cb017c1882d6c7a Mon Sep 17 00:00:00 2001 From: Saranya Somepalli Date: Tue, 20 May 2025 09:11:37 -0700 Subject: [PATCH 1/4] Use partitions.json to generate Region class --- .../feature-AWSSDKforJavav2-7e045dc.json | 6 + .../maven/plugin/RegionGenerationMojo.java | 11 +- .../codegen/lite/regions/RegionGenerator.java | 32 +-- .../codegen/lite/regions/model/Partition.java | 122 ++++++++- .../internal/region/partitions.json.resource | 255 ++++++++++++++++++ .../amazon/awssdk/regions/RegionTest.java | 29 ++ test/region-testing/pom.xml | 1 + .../variants-test-partitions.json.resource | 255 ++++++++++++++++++ 8 files changed, 676 insertions(+), 35 deletions(-) create mode 100644 .changes/next-release/feature-AWSSDKforJavav2-7e045dc.json create mode 100644 core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/partitions.json.resource create mode 100644 test/region-testing/src/test/resources/variants-test-partitions.json.resource diff --git a/.changes/next-release/feature-AWSSDKforJavav2-7e045dc.json b/.changes/next-release/feature-AWSSDKforJavav2-7e045dc.json new file mode 100644 index 000000000000..ab97542dae5a --- /dev/null +++ b/.changes/next-release/feature-AWSSDKforJavav2-7e045dc.json @@ -0,0 +1,6 @@ +{ + "type": "feature", + "category": "AWS SDK for Java v2", + "contributor": "", + "description": "Updated Region class generation to use Partitions.json instead of the Endpoints.json and removed the hardcoded global regions." +} diff --git a/codegen-lite-maven-plugin/src/main/java/software/amazon/awssdk/codegen/lite/maven/plugin/RegionGenerationMojo.java b/codegen-lite-maven-plugin/src/main/java/software/amazon/awssdk/codegen/lite/maven/plugin/RegionGenerationMojo.java index e02358f3a67c..743e9bd33864 100644 --- a/codegen-lite-maven-plugin/src/main/java/software/amazon/awssdk/codegen/lite/maven/plugin/RegionGenerationMojo.java +++ b/codegen-lite-maven-plugin/src/main/java/software/amazon/awssdk/codegen/lite/maven/plugin/RegionGenerationMojo.java @@ -59,19 +59,24 @@ public class RegionGenerationMojo extends AbstractMojo { "${basedir}/src/main/resources/software/amazon/awssdk/regions/internal/region/endpoints.json") private File endpoints; + @Parameter(property = "partitionsjson", defaultValue = + "${basedir}/src/main/resources/software/amazon/awssdk/regions/internal/region/partitions.json.resource") + private File partitionsjson; + @Override public void execute() throws MojoExecutionException { Path baseSourcesDirectory = Paths.get(outputDirectory).resolve("generated-sources").resolve("sdk"); Path testsDirectory = Paths.get(outputDirectory).resolve("generated-test-sources").resolve("sdk-tests"); Partitions partitions = RegionMetadataLoader.build(endpoints); + Partitions regionpartitions = RegionMetadataLoader.build(partitionsjson); generatePartitionMetadataClass(baseSourcesDirectory, partitions); - generateRegionClass(baseSourcesDirectory, partitions); + generateRegionClass(baseSourcesDirectory, regionpartitions); generateServiceMetadata(baseSourcesDirectory, partitions); - generateRegions(baseSourcesDirectory, partitions); + generateRegions(baseSourcesDirectory, regionpartitions); generatePartitionProvider(baseSourcesDirectory, partitions); - generateRegionProvider(baseSourcesDirectory, partitions); + generateRegionProvider(baseSourcesDirectory, regionpartitions); generateServiceProvider(baseSourcesDirectory, partitions); generateEndpointTags(baseSourcesDirectory, partitions); diff --git a/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java b/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java index fa5467bc847f..5d6ecc6e697b 100644 --- a/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java +++ b/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java @@ -107,14 +107,7 @@ private void regions(TypeSpec.Builder builder) { return regionName(r); }).collect(Collectors.joining(", ")); - addGlobalRegions(builder); - - regionsArray.add(regionsCodeBlock + ", ") - .add("AWS_GLOBAL, ") - .add("AWS_CN_GLOBAL, ") - .add("AWS_US_GOV_GLOBAL, ") - .add("AWS_ISO_GLOBAL, ") - .add("AWS_ISO_B_GLOBAL"); + regionsArray.add(regionsCodeBlock); regionsArray.add("))"); TypeName listOfRegions = ParameterizedTypeName.get(ClassName.get(List.class), className()); @@ -123,29 +116,6 @@ private void regions(TypeSpec.Builder builder) { .initializer(regionsArray.build()).build()); } - private void addGlobalRegions(TypeSpec.Builder builder) { - builder.addField(FieldSpec.builder(className(), "AWS_GLOBAL") - .addModifiers(PUBLIC, STATIC, FINAL) - .initializer("$T.of($S, true)", className(), "aws-global") - .build()) - .addField(FieldSpec.builder(className(), "AWS_CN_GLOBAL") - .addModifiers(PUBLIC, STATIC, FINAL) - .initializer("$T.of($S, true)", className(), "aws-cn-global") - .build()) - .addField(FieldSpec.builder(className(), "AWS_US_GOV_GLOBAL") - .addModifiers(PUBLIC, STATIC, FINAL) - .initializer("$T.of($S, true)", className(), "aws-us-gov-global") - .build()) - .addField(FieldSpec.builder(className(), "AWS_ISO_GLOBAL") - .addModifiers(PUBLIC, STATIC, FINAL) - .initializer("$T.of($S, true)", className(), "aws-iso-global") - .build()) - .addField(FieldSpec.builder(className(), "AWS_ISO_B_GLOBAL") - .addModifiers(PUBLIC, STATIC, FINAL) - .initializer("$T.of($S, true)", className(), "aws-iso-b-global") - .build()); - } - private String regionName(String region) { return region.replace("-", "_").toUpperCase(Locale.US); } diff --git a/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/model/Partition.java b/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/model/Partition.java index e225d47bfd82..3f6cd8a288c4 100644 --- a/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/model/Partition.java +++ b/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/model/Partition.java @@ -62,6 +62,16 @@ public final class Partition { */ private Endpoint defaults; + /** + * The partition id. + */ + private String id; + + /** + * Configuration outputs for the partition. + */ + private PartitionOutputs outputs; + public Partition() { } @@ -69,10 +79,44 @@ public Partition(@JsonProperty(value = "partition") String partition, @JsonProperty(value = "regions") Map regions, @JsonProperty(value = "services") Map services) { + Service> services, + @JsonProperty(value = "id") String id, + @JsonProperty(value = "outputs") PartitionOutputs outputs, + @JsonProperty(value = "regionRegex") String regionRegex) { this.partition = Validate.paramNotNull(partition, "Partition"); this.regions = regions; this.services = services; + this.id = id; + this.outputs = outputs; + this.regionRegex = regionRegex; + } + + /** + * Returns the partition ID. + */ + public String getId() { + return id; + } + + /** + * Sets the partition id. + */ + public void setId(String id) { + this.id = id; + } + + /** + * Returns the configuration outputs for the partition. + */ + public PartitionOutputs getOutputs() { + return outputs; + } + + /** + * Sets the configuration outputs for the partition. + */ + public void setOutputs(PartitionOutputs outputs) { + this.outputs = outputs; } /** @@ -177,6 +221,82 @@ private boolean matchesRegionRegex(String region) { return p.matcher(region).matches(); } + public static class PartitionOutputs { + private String dnsSuffix; + private String dualStackDnsSuffix; + private String implicitGlobalRegion; + private String name; + private boolean supportsDualStack; + private boolean supportsFIPS; + + @JsonProperty("dnsSuffix") + public String getDnsSuffix() { + return dnsSuffix; + } + + public void setDnsSuffix(String dnsSuffix) { + this.dnsSuffix = dnsSuffix; + } + + @JsonProperty("dualStackDnsSuffix") + public String getDualStackDnsSuffix() { + return dualStackDnsSuffix; + } + + public void setDualStackDnsSuffix(String dualStackDnsSuffix) { + this.dualStackDnsSuffix = dualStackDnsSuffix; + } + + @JsonProperty("implicitGlobalRegion") + public String getImplicitGlobalRegion() { + return implicitGlobalRegion; + } + + public void setImplicitGlobalRegion(String implicitGlobalRegion) { + this.implicitGlobalRegion = implicitGlobalRegion; + } + + @JsonProperty("name") + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @JsonProperty("supportsDualStack") + public boolean getSupportsDualStack() { + return supportsDualStack; + } + + public void setSupportsDualStack(boolean supportsDualStack) { + this.supportsDualStack = supportsDualStack; + } + + @JsonProperty("supportsFIPS") + public boolean getSupportsFIPS() { + return supportsFIPS; + } + + public void setSupportsFIPS(boolean supportsFIPS) { + this.supportsFIPS = supportsFIPS; + } + } + + public static class Region { + private String description; + + @JsonProperty("description") + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + } + @Deprecated private boolean hasServiceEndpoint(String endpoint) { for (Service s : services.values()) { diff --git a/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/partitions.json.resource b/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/partitions.json.resource new file mode 100644 index 000000000000..3d7e9530924e --- /dev/null +++ b/core/regions/src/main/resources/software/amazon/awssdk/regions/internal/region/partitions.json.resource @@ -0,0 +1,255 @@ +{ + "partitions" : [ { + "id" : "aws", + "outputs" : { + "dnsSuffix" : "amazonaws.com", + "dualStackDnsSuffix" : "api.aws", + "implicitGlobalRegion" : "us-east-1", + "name" : "aws", + "supportsDualStack" : true, + "supportsFIPS" : true + }, + "regionRegex" : "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$", + "regions" : { + "af-south-1" : { + "description" : "Africa (Cape Town)" + }, + "ap-east-1" : { + "description" : "Asia Pacific (Hong Kong)" + }, + "ap-northeast-1" : { + "description" : "Asia Pacific (Tokyo)" + }, + "ap-northeast-2" : { + "description" : "Asia Pacific (Seoul)" + }, + "ap-northeast-3" : { + "description" : "Asia Pacific (Osaka)" + }, + "ap-south-1" : { + "description" : "Asia Pacific (Mumbai)" + }, + "ap-south-2" : { + "description" : "Asia Pacific (Hyderabad)" + }, + "ap-southeast-1" : { + "description" : "Asia Pacific (Singapore)" + }, + "ap-southeast-2" : { + "description" : "Asia Pacific (Sydney)" + }, + "ap-southeast-3" : { + "description" : "Asia Pacific (Jakarta)" + }, + "ap-southeast-4" : { + "description" : "Asia Pacific (Melbourne)" + }, + "ap-southeast-5" : { + "description" : "Asia Pacific (Malaysia)" + }, + "ap-southeast-7" : { + "description" : "Asia Pacific (Thailand)" + }, + "aws-global" : { + "description" : "AWS Standard global region" + }, + "ca-central-1" : { + "description" : "Canada (Central)" + }, + "ca-west-1" : { + "description" : "Canada West (Calgary)" + }, + "eu-central-1" : { + "description" : "Europe (Frankfurt)" + }, + "eu-central-2" : { + "description" : "Europe (Zurich)" + }, + "eu-north-1" : { + "description" : "Europe (Stockholm)" + }, + "eu-south-1" : { + "description" : "Europe (Milan)" + }, + "eu-south-2" : { + "description" : "Europe (Spain)" + }, + "eu-west-1" : { + "description" : "Europe (Ireland)" + }, + "eu-west-2" : { + "description" : "Europe (London)" + }, + "eu-west-3" : { + "description" : "Europe (Paris)" + }, + "il-central-1" : { + "description" : "Israel (Tel Aviv)" + }, + "me-central-1" : { + "description" : "Middle East (UAE)" + }, + "me-south-1" : { + "description" : "Middle East (Bahrain)" + }, + "mx-central-1" : { + "description" : "Mexico (Central)" + }, + "sa-east-1" : { + "description" : "South America (Sao Paulo)" + }, + "us-east-1" : { + "description" : "US East (N. Virginia)" + }, + "us-east-2" : { + "description" : "US East (Ohio)" + }, + "us-west-1" : { + "description" : "US West (N. California)" + }, + "us-west-2" : { + "description" : "US West (Oregon)" + } + } + }, { + "id" : "aws-cn", + "outputs" : { + "dnsSuffix" : "amazonaws.com.cn", + "dualStackDnsSuffix" : "api.amazonwebservices.com.cn", + "implicitGlobalRegion" : "cn-northwest-1", + "name" : "aws-cn", + "supportsDualStack" : true, + "supportsFIPS" : true + }, + "regionRegex" : "^cn\\-\\w+\\-\\d+$", + "regions" : { + "aws-cn-global" : { + "description" : "AWS China global region" + }, + "cn-north-1" : { + "description" : "China (Beijing)" + }, + "cn-northwest-1" : { + "description" : "China (Ningxia)" + } + } + }, { + "id" : "aws-us-gov", + "outputs" : { + "dnsSuffix" : "amazonaws.com", + "dualStackDnsSuffix" : "api.aws", + "implicitGlobalRegion" : "us-gov-west-1", + "name" : "aws-us-gov", + "supportsDualStack" : true, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-gov\\-\\w+\\-\\d+$", + "regions" : { + "aws-us-gov-global" : { + "description" : "AWS GovCloud (US) global region" + }, + "us-gov-east-1" : { + "description" : "AWS GovCloud (US-East)" + }, + "us-gov-west-1" : { + "description" : "AWS GovCloud (US-West)" + } + } + }, { + "id" : "aws-iso", + "outputs" : { + "dnsSuffix" : "c2s.ic.gov", + "dualStackDnsSuffix" : "c2s.ic.gov", + "implicitGlobalRegion" : "us-iso-east-1", + "name" : "aws-iso", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-iso\\-\\w+\\-\\d+$", + "regions" : { + "aws-iso-global" : { + "description" : "AWS ISO (US) global region" + }, + "us-iso-east-1" : { + "description" : "US ISO East" + }, + "us-iso-west-1" : { + "description" : "US ISO WEST" + } + } + }, { + "id" : "aws-iso-b", + "outputs" : { + "dnsSuffix" : "sc2s.sgov.gov", + "dualStackDnsSuffix" : "sc2s.sgov.gov", + "implicitGlobalRegion" : "us-isob-east-1", + "name" : "aws-iso-b", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-isob\\-\\w+\\-\\d+$", + "regions" : { + "aws-iso-b-global" : { + "description" : "AWS ISOB (US) global region" + }, + "us-isob-east-1" : { + "description" : "US ISOB East (Ohio)" + } + } + }, { + "id" : "aws-iso-e", + "outputs" : { + "dnsSuffix" : "cloud.adc-e.uk", + "dualStackDnsSuffix" : "cloud.adc-e.uk", + "implicitGlobalRegion" : "eu-isoe-west-1", + "name" : "aws-iso-e", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^eu\\-isoe\\-\\w+\\-\\d+$", + "regions" : { + "eu-isoe-west-1" : { + "description" : "EU ISOE West" + } + } + }, { + "id" : "aws-iso-f", + "outputs" : { + "dnsSuffix" : "csp.hci.ic.gov", + "dualStackDnsSuffix" : "csp.hci.ic.gov", + "implicitGlobalRegion" : "us-isof-south-1", + "name" : "aws-iso-f", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-isof\\-\\w+\\-\\d+$", + "regions" : { + "aws-iso-f-global" : { + "description" : "AWS ISOF global region" + }, + "us-isof-east-1" : { + "description" : "US ISOF EAST" + }, + "us-isof-south-1" : { + "description" : "US ISOF SOUTH" + } + } + }, { + "id" : "aws-eusc", + "outputs" : { + "dnsSuffix" : "amazonaws.eu", + "dualStackDnsSuffix" : "amazonaws.eu", + "implicitGlobalRegion" : "eusc-de-east-1", + "name" : "aws-eusc", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^eusc\\-(de)\\-\\w+\\-\\d+$", + "regions" : { + "eusc-de-east-1" : { + "description" : "EU (Germany)" + } + } + } ], + "version" : "1.1" +} \ No newline at end of file diff --git a/core/regions/src/test/java/software/amazon/awssdk/regions/RegionTest.java b/core/regions/src/test/java/software/amazon/awssdk/regions/RegionTest.java index 49f057b746c2..d6d5a94deb97 100644 --- a/core/regions/src/test/java/software/amazon/awssdk/regions/RegionTest.java +++ b/core/regions/src/test/java/software/amazon/awssdk/regions/RegionTest.java @@ -66,4 +66,33 @@ public void idIsUrlEncoded() { Region region = Region.of("http://my-host.com/?"); assertThat(region.id()).isEqualTo("http%3A%2F%2Fmy-host.com%2F%3F"); } + + @Test + public void globalRegionIsRecognized() { + Region globalRegion = Region.of("aws-global"); + assertThat(globalRegion.id()).isEqualTo("aws-global"); + assertSame(Region.AWS_GLOBAL, globalRegion); + } + + @Test + public void multipleGlobalRegionsAreSupported() { + Region awsGlobal = Region.of("aws-global"); + Region s3Global = Region.of("s3-global"); + + assertThat(awsGlobal.id()).isEqualTo("aws-global"); + assertThat(s3Global.id()).isEqualTo("s3-global"); + + assertSame(Region.of("aws-global"), awsGlobal); + assertSame(Region.of("s3-global"), s3Global); + } + + @Test + public void allPartitionGlobalRegionsAreRecognized() { + assertThat(Region.of("aws-global").id()).isEqualTo("aws-global"); + assertThat(Region.of("aws-cn-global").id()).isEqualTo("aws-cn-global"); + assertThat(Region.of("aws-us-gov-global").id()).isEqualTo("aws-us-gov-global"); + assertThat(Region.of("aws-iso-global").id()).isEqualTo("aws-iso-global"); + assertThat(Region.of("aws-iso-b-global").id()).isEqualTo("aws-iso-b-global"); + assertThat(Region.of("aws-iso-f-global").id()).isEqualTo("aws-iso-f-global"); + } } diff --git a/test/region-testing/pom.xml b/test/region-testing/pom.xml index 1938f51ca2ed..2f924b4d3bb4 100644 --- a/test/region-testing/pom.xml +++ b/test/region-testing/pom.xml @@ -102,6 +102,7 @@ ${basedir}/src/test/resources/variants-test-endpoints.json + ${basedir}/src/test/resources/variants-test-partitions.json.resource diff --git a/test/region-testing/src/test/resources/variants-test-partitions.json.resource b/test/region-testing/src/test/resources/variants-test-partitions.json.resource new file mode 100644 index 000000000000..3d7e9530924e --- /dev/null +++ b/test/region-testing/src/test/resources/variants-test-partitions.json.resource @@ -0,0 +1,255 @@ +{ + "partitions" : [ { + "id" : "aws", + "outputs" : { + "dnsSuffix" : "amazonaws.com", + "dualStackDnsSuffix" : "api.aws", + "implicitGlobalRegion" : "us-east-1", + "name" : "aws", + "supportsDualStack" : true, + "supportsFIPS" : true + }, + "regionRegex" : "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$", + "regions" : { + "af-south-1" : { + "description" : "Africa (Cape Town)" + }, + "ap-east-1" : { + "description" : "Asia Pacific (Hong Kong)" + }, + "ap-northeast-1" : { + "description" : "Asia Pacific (Tokyo)" + }, + "ap-northeast-2" : { + "description" : "Asia Pacific (Seoul)" + }, + "ap-northeast-3" : { + "description" : "Asia Pacific (Osaka)" + }, + "ap-south-1" : { + "description" : "Asia Pacific (Mumbai)" + }, + "ap-south-2" : { + "description" : "Asia Pacific (Hyderabad)" + }, + "ap-southeast-1" : { + "description" : "Asia Pacific (Singapore)" + }, + "ap-southeast-2" : { + "description" : "Asia Pacific (Sydney)" + }, + "ap-southeast-3" : { + "description" : "Asia Pacific (Jakarta)" + }, + "ap-southeast-4" : { + "description" : "Asia Pacific (Melbourne)" + }, + "ap-southeast-5" : { + "description" : "Asia Pacific (Malaysia)" + }, + "ap-southeast-7" : { + "description" : "Asia Pacific (Thailand)" + }, + "aws-global" : { + "description" : "AWS Standard global region" + }, + "ca-central-1" : { + "description" : "Canada (Central)" + }, + "ca-west-1" : { + "description" : "Canada West (Calgary)" + }, + "eu-central-1" : { + "description" : "Europe (Frankfurt)" + }, + "eu-central-2" : { + "description" : "Europe (Zurich)" + }, + "eu-north-1" : { + "description" : "Europe (Stockholm)" + }, + "eu-south-1" : { + "description" : "Europe (Milan)" + }, + "eu-south-2" : { + "description" : "Europe (Spain)" + }, + "eu-west-1" : { + "description" : "Europe (Ireland)" + }, + "eu-west-2" : { + "description" : "Europe (London)" + }, + "eu-west-3" : { + "description" : "Europe (Paris)" + }, + "il-central-1" : { + "description" : "Israel (Tel Aviv)" + }, + "me-central-1" : { + "description" : "Middle East (UAE)" + }, + "me-south-1" : { + "description" : "Middle East (Bahrain)" + }, + "mx-central-1" : { + "description" : "Mexico (Central)" + }, + "sa-east-1" : { + "description" : "South America (Sao Paulo)" + }, + "us-east-1" : { + "description" : "US East (N. Virginia)" + }, + "us-east-2" : { + "description" : "US East (Ohio)" + }, + "us-west-1" : { + "description" : "US West (N. California)" + }, + "us-west-2" : { + "description" : "US West (Oregon)" + } + } + }, { + "id" : "aws-cn", + "outputs" : { + "dnsSuffix" : "amazonaws.com.cn", + "dualStackDnsSuffix" : "api.amazonwebservices.com.cn", + "implicitGlobalRegion" : "cn-northwest-1", + "name" : "aws-cn", + "supportsDualStack" : true, + "supportsFIPS" : true + }, + "regionRegex" : "^cn\\-\\w+\\-\\d+$", + "regions" : { + "aws-cn-global" : { + "description" : "AWS China global region" + }, + "cn-north-1" : { + "description" : "China (Beijing)" + }, + "cn-northwest-1" : { + "description" : "China (Ningxia)" + } + } + }, { + "id" : "aws-us-gov", + "outputs" : { + "dnsSuffix" : "amazonaws.com", + "dualStackDnsSuffix" : "api.aws", + "implicitGlobalRegion" : "us-gov-west-1", + "name" : "aws-us-gov", + "supportsDualStack" : true, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-gov\\-\\w+\\-\\d+$", + "regions" : { + "aws-us-gov-global" : { + "description" : "AWS GovCloud (US) global region" + }, + "us-gov-east-1" : { + "description" : "AWS GovCloud (US-East)" + }, + "us-gov-west-1" : { + "description" : "AWS GovCloud (US-West)" + } + } + }, { + "id" : "aws-iso", + "outputs" : { + "dnsSuffix" : "c2s.ic.gov", + "dualStackDnsSuffix" : "c2s.ic.gov", + "implicitGlobalRegion" : "us-iso-east-1", + "name" : "aws-iso", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-iso\\-\\w+\\-\\d+$", + "regions" : { + "aws-iso-global" : { + "description" : "AWS ISO (US) global region" + }, + "us-iso-east-1" : { + "description" : "US ISO East" + }, + "us-iso-west-1" : { + "description" : "US ISO WEST" + } + } + }, { + "id" : "aws-iso-b", + "outputs" : { + "dnsSuffix" : "sc2s.sgov.gov", + "dualStackDnsSuffix" : "sc2s.sgov.gov", + "implicitGlobalRegion" : "us-isob-east-1", + "name" : "aws-iso-b", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-isob\\-\\w+\\-\\d+$", + "regions" : { + "aws-iso-b-global" : { + "description" : "AWS ISOB (US) global region" + }, + "us-isob-east-1" : { + "description" : "US ISOB East (Ohio)" + } + } + }, { + "id" : "aws-iso-e", + "outputs" : { + "dnsSuffix" : "cloud.adc-e.uk", + "dualStackDnsSuffix" : "cloud.adc-e.uk", + "implicitGlobalRegion" : "eu-isoe-west-1", + "name" : "aws-iso-e", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^eu\\-isoe\\-\\w+\\-\\d+$", + "regions" : { + "eu-isoe-west-1" : { + "description" : "EU ISOE West" + } + } + }, { + "id" : "aws-iso-f", + "outputs" : { + "dnsSuffix" : "csp.hci.ic.gov", + "dualStackDnsSuffix" : "csp.hci.ic.gov", + "implicitGlobalRegion" : "us-isof-south-1", + "name" : "aws-iso-f", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-isof\\-\\w+\\-\\d+$", + "regions" : { + "aws-iso-f-global" : { + "description" : "AWS ISOF global region" + }, + "us-isof-east-1" : { + "description" : "US ISOF EAST" + }, + "us-isof-south-1" : { + "description" : "US ISOF SOUTH" + } + } + }, { + "id" : "aws-eusc", + "outputs" : { + "dnsSuffix" : "amazonaws.eu", + "dualStackDnsSuffix" : "amazonaws.eu", + "implicitGlobalRegion" : "eusc-de-east-1", + "name" : "aws-eusc", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^eusc\\-(de)\\-\\w+\\-\\d+$", + "regions" : { + "eusc-de-east-1" : { + "description" : "EU (Germany)" + } + } + } ], + "version" : "1.1" +} \ No newline at end of file From 1d30afa190ce29f0688f38dc9e8b3493dab436aa Mon Sep 17 00:00:00 2001 From: Saranya Somepalli Date: Tue, 20 May 2025 15:39:04 -0700 Subject: [PATCH 2/4] Updating the test files --- .../codegen/lite/regions/RegionGenerator.java | 3 +- .../lite/regions/RegionGenerationTest.java | 8 +- .../awssdk/codegen/lite/regions/regions.java | 94 ++++--- .../lite/test-partitions.json.resource | 255 ++++++++++++++++++ 4 files changed, 328 insertions(+), 32 deletions(-) create mode 100644 codegen-lite/src/test/resources/software/amazon/awssdk/codegen/lite/test-partitions.json.resource diff --git a/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java b/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java index 5d6ecc6e697b..9ec7f874abf7 100644 --- a/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java +++ b/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java @@ -100,9 +100,10 @@ private void regions(TypeSpec.Builder builder) { .add("$T.unmodifiableList($T.asList(", Collections.class, Arrays.class); String regionsCodeBlock = regions.stream().map(r -> { + boolean isGlobal = r.toLowerCase().contains("global"); builder.addField(FieldSpec.builder(className(), regionName(r)) .addModifiers(PUBLIC, STATIC, FINAL) - .initializer("$T.of($S)", className(), r) + .initializer(isGlobal ? "$T.of($S, true)" : "$T.of($S)", className(), r) .build()); return regionName(r); }).collect(Collectors.joining(", ")); diff --git a/codegen-lite/src/test/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerationTest.java b/codegen-lite/src/test/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerationTest.java index 0240958a17d9..d00565f6372f 100644 --- a/codegen-lite/src/test/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerationTest.java +++ b/codegen-lite/src/test/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerationTest.java @@ -27,23 +27,29 @@ public class RegionGenerationTest { private static final String ENDPOINTS = "/software/amazon/awssdk/codegen/lite/test-endpoints.json"; + private static final String PARTITIONS = "/software/amazon/awssdk/codegen/lite/test-partitions.json.resource"; private static final String SERVICE_METADATA_BASE = "software.amazon.awssdk.regions.servicemetadata"; private static final String REGION_METADATA_BASE = "software.amazon.awssdk.regions.regionmetadata"; private static final String PARTITION_METADATA_BASE = "software.amazon.awssdk.regions.partitionmetadata"; private static final String REGION_BASE = "software.amazon.awssdk.regions"; private File endpoints; + private File partitionsFile; private Partitions partitions; + private Partitions partitionsRegions; + @BeforeEach public void before() throws Exception { this.endpoints = Paths.get(getClass().getResource(ENDPOINTS).toURI()).toFile(); + this.partitionsFile = Paths.get(getClass().getResource(PARTITIONS).toURI()).toFile(); this.partitions = RegionMetadataLoader.build(endpoints); + this.partitionsRegions = RegionMetadataLoader.build(partitionsFile); } @Test public void regionClass() { - RegionGenerator regions = new RegionGenerator(partitions, REGION_BASE); + RegionGenerator regions = new RegionGenerator(partitionsRegions, REGION_BASE); assertThat(regions, generatesTo("regions.java")); } diff --git a/codegen-lite/src/test/resources/software/amazon/awssdk/codegen/lite/regions/regions.java b/codegen-lite/src/test/resources/software/amazon/awssdk/codegen/lite/regions/regions.java index e007c4fbaf79..9935ffd3f4d9 100644 --- a/codegen-lite/src/test/resources/software/amazon/awssdk/codegen/lite/regions/regions.java +++ b/codegen-lite/src/test/resources/software/amazon/awssdk/codegen/lite/regions/regions.java @@ -36,17 +36,11 @@ @SdkPublicApi @Generated("software.amazon.awssdk:codegen") public final class Region { - public static final Region AP_SOUTH_1 = Region.of("ap-south-1"); - - public static final Region EU_SOUTH_1 = Region.of("eu-south-1"); - - public static final Region US_GOV_EAST_1 = Region.of("us-gov-east-1"); + public static final Region ME_CENTRAL_1 = Region.of("me-central-1"); - public static final Region CA_CENTRAL_1 = Region.of("ca-central-1"); + public static final Region AWS_CN_GLOBAL = Region.of("aws-cn-global", true); - public static final Region EU_CENTRAL_1 = Region.of("eu-central-1"); - - public static final Region US_ISO_WEST_1 = Region.of("us-iso-west-1"); + public static final Region US_ISOF_SOUTH_1 = Region.of("us-isof-south-1"); public static final Region US_WEST_1 = Region.of("us-west-1"); @@ -54,14 +48,6 @@ public final class Region { public static final Region AF_SOUTH_1 = Region.of("af-south-1"); - public static final Region EU_NORTH_1 = Region.of("eu-north-1"); - - public static final Region EU_WEST_3 = Region.of("eu-west-3"); - - public static final Region EU_WEST_2 = Region.of("eu-west-2"); - - public static final Region EU_WEST_1 = Region.of("eu-west-1"); - public static final Region AP_NORTHEAST_3 = Region.of("ap-northeast-3"); public static final Region AP_NORTHEAST_2 = Region.of("ap-northeast-2"); @@ -72,41 +58,89 @@ public final class Region { public static final Region SA_EAST_1 = Region.of("sa-east-1"); - public static final Region AP_EAST_1 = Region.of("ap-east-1"); - public static final Region CN_NORTH_1 = Region.of("cn-north-1"); - public static final Region US_GOV_WEST_1 = Region.of("us-gov-west-1"); - public static final Region AP_SOUTHEAST_1 = Region.of("ap-southeast-1"); public static final Region AP_SOUTHEAST_2 = Region.of("ap-southeast-2"); - public static final Region US_ISO_EAST_1 = Region.of("us-iso-east-1"); + public static final Region AP_SOUTHEAST_3 = Region.of("ap-southeast-3"); + + public static final Region AP_SOUTHEAST_4 = Region.of("ap-southeast-4"); + + public static final Region AP_SOUTHEAST_5 = Region.of("ap-southeast-5"); public static final Region US_EAST_1 = Region.of("us-east-1"); public static final Region US_EAST_2 = Region.of("us-east-2"); + public static final Region AP_SOUTHEAST_7 = Region.of("ap-southeast-7"); + public static final Region CN_NORTHWEST_1 = Region.of("cn-northwest-1"); - public static final Region US_ISOB_EAST_1 = Region.of("us-isob-east-1"); + public static final Region AP_SOUTH_2 = Region.of("ap-south-2"); + + public static final Region AP_SOUTH_1 = Region.of("ap-south-1"); + + public static final Region EU_SOUTH_1 = Region.of("eu-south-1"); + + public static final Region EU_SOUTH_2 = Region.of("eu-south-2"); + + public static final Region US_GOV_EAST_1 = Region.of("us-gov-east-1"); + + public static final Region IL_CENTRAL_1 = Region.of("il-central-1"); + + public static final Region CA_CENTRAL_1 = Region.of("ca-central-1"); + + public static final Region MX_CENTRAL_1 = Region.of("mx-central-1"); + + public static final Region EU_CENTRAL_1 = Region.of("eu-central-1"); + + public static final Region US_ISO_WEST_1 = Region.of("us-iso-west-1"); + + public static final Region EUSC_DE_EAST_1 = Region.of("eusc-de-east-1"); + + public static final Region EU_CENTRAL_2 = Region.of("eu-central-2"); + + public static final Region EU_ISOE_WEST_1 = Region.of("eu-isoe-west-1"); public static final Region AWS_GLOBAL = Region.of("aws-global", true); - public static final Region AWS_CN_GLOBAL = Region.of("aws-cn-global", true); + public static final Region EU_NORTH_1 = Region.of("eu-north-1"); - public static final Region AWS_US_GOV_GLOBAL = Region.of("aws-us-gov-global", true); + public static final Region EU_WEST_3 = Region.of("eu-west-3"); + + public static final Region EU_WEST_2 = Region.of("eu-west-2"); + + public static final Region EU_WEST_1 = Region.of("eu-west-1"); public static final Region AWS_ISO_GLOBAL = Region.of("aws-iso-global", true); + public static final Region AP_EAST_1 = Region.of("ap-east-1"); + + public static final Region CA_WEST_1 = Region.of("ca-west-1"); + + public static final Region US_GOV_WEST_1 = Region.of("us-gov-west-1"); + + public static final Region US_ISO_EAST_1 = Region.of("us-iso-east-1"); + public static final Region AWS_ISO_B_GLOBAL = Region.of("aws-iso-b-global", true); - private static final List REGIONS = Collections.unmodifiableList(Arrays.asList(AP_SOUTH_1, EU_SOUTH_1, US_GOV_EAST_1, - CA_CENTRAL_1, EU_CENTRAL_1, US_ISO_WEST_1, US_WEST_1, US_WEST_2, AF_SOUTH_1, EU_NORTH_1, EU_WEST_3, EU_WEST_2, - EU_WEST_1, AP_NORTHEAST_3, AP_NORTHEAST_2, AP_NORTHEAST_1, ME_SOUTH_1, SA_EAST_1, AP_EAST_1, CN_NORTH_1, - US_GOV_WEST_1, AP_SOUTHEAST_1, AP_SOUTHEAST_2, US_ISO_EAST_1, US_EAST_1, US_EAST_2, CN_NORTHWEST_1, US_ISOB_EAST_1, - AWS_GLOBAL, AWS_CN_GLOBAL, AWS_US_GOV_GLOBAL, AWS_ISO_GLOBAL, AWS_ISO_B_GLOBAL)); + public static final Region AWS_ISO_F_GLOBAL = Region.of("aws-iso-f-global", true); + + public static final Region AWS_US_GOV_GLOBAL = Region.of("aws-us-gov-global", true); + + public static final Region US_ISOB_EAST_1 = Region.of("us-isob-east-1"); + + public static final Region US_ISOF_EAST_1 = Region.of("us-isof-east-1"); + + private static final List REGIONS = Collections.unmodifiableList(Arrays.asList(ME_CENTRAL_1, AWS_CN_GLOBAL, + US_ISOF_SOUTH_1, US_WEST_1, US_WEST_2, AF_SOUTH_1, AP_NORTHEAST_3, AP_NORTHEAST_2, AP_NORTHEAST_1, ME_SOUTH_1, + SA_EAST_1, CN_NORTH_1, AP_SOUTHEAST_1, AP_SOUTHEAST_2, AP_SOUTHEAST_3, AP_SOUTHEAST_4, AP_SOUTHEAST_5, US_EAST_1, + US_EAST_2, AP_SOUTHEAST_7, CN_NORTHWEST_1, AP_SOUTH_2, AP_SOUTH_1, EU_SOUTH_1, EU_SOUTH_2, US_GOV_EAST_1, + IL_CENTRAL_1, CA_CENTRAL_1, MX_CENTRAL_1, EU_CENTRAL_1, US_ISO_WEST_1, EUSC_DE_EAST_1, EU_CENTRAL_2, EU_ISOE_WEST_1, + AWS_GLOBAL, EU_NORTH_1, EU_WEST_3, EU_WEST_2, EU_WEST_1, AWS_ISO_GLOBAL, AP_EAST_1, CA_WEST_1, US_GOV_WEST_1, + US_ISO_EAST_1, AWS_ISO_B_GLOBAL, AWS_ISO_F_GLOBAL, AWS_US_GOV_GLOBAL, US_ISOB_EAST_1, US_ISOF_EAST_1)); private final boolean isGlobalRegion; diff --git a/codegen-lite/src/test/resources/software/amazon/awssdk/codegen/lite/test-partitions.json.resource b/codegen-lite/src/test/resources/software/amazon/awssdk/codegen/lite/test-partitions.json.resource new file mode 100644 index 000000000000..3d7e9530924e --- /dev/null +++ b/codegen-lite/src/test/resources/software/amazon/awssdk/codegen/lite/test-partitions.json.resource @@ -0,0 +1,255 @@ +{ + "partitions" : [ { + "id" : "aws", + "outputs" : { + "dnsSuffix" : "amazonaws.com", + "dualStackDnsSuffix" : "api.aws", + "implicitGlobalRegion" : "us-east-1", + "name" : "aws", + "supportsDualStack" : true, + "supportsFIPS" : true + }, + "regionRegex" : "^(us|eu|ap|sa|ca|me|af|il|mx)\\-\\w+\\-\\d+$", + "regions" : { + "af-south-1" : { + "description" : "Africa (Cape Town)" + }, + "ap-east-1" : { + "description" : "Asia Pacific (Hong Kong)" + }, + "ap-northeast-1" : { + "description" : "Asia Pacific (Tokyo)" + }, + "ap-northeast-2" : { + "description" : "Asia Pacific (Seoul)" + }, + "ap-northeast-3" : { + "description" : "Asia Pacific (Osaka)" + }, + "ap-south-1" : { + "description" : "Asia Pacific (Mumbai)" + }, + "ap-south-2" : { + "description" : "Asia Pacific (Hyderabad)" + }, + "ap-southeast-1" : { + "description" : "Asia Pacific (Singapore)" + }, + "ap-southeast-2" : { + "description" : "Asia Pacific (Sydney)" + }, + "ap-southeast-3" : { + "description" : "Asia Pacific (Jakarta)" + }, + "ap-southeast-4" : { + "description" : "Asia Pacific (Melbourne)" + }, + "ap-southeast-5" : { + "description" : "Asia Pacific (Malaysia)" + }, + "ap-southeast-7" : { + "description" : "Asia Pacific (Thailand)" + }, + "aws-global" : { + "description" : "AWS Standard global region" + }, + "ca-central-1" : { + "description" : "Canada (Central)" + }, + "ca-west-1" : { + "description" : "Canada West (Calgary)" + }, + "eu-central-1" : { + "description" : "Europe (Frankfurt)" + }, + "eu-central-2" : { + "description" : "Europe (Zurich)" + }, + "eu-north-1" : { + "description" : "Europe (Stockholm)" + }, + "eu-south-1" : { + "description" : "Europe (Milan)" + }, + "eu-south-2" : { + "description" : "Europe (Spain)" + }, + "eu-west-1" : { + "description" : "Europe (Ireland)" + }, + "eu-west-2" : { + "description" : "Europe (London)" + }, + "eu-west-3" : { + "description" : "Europe (Paris)" + }, + "il-central-1" : { + "description" : "Israel (Tel Aviv)" + }, + "me-central-1" : { + "description" : "Middle East (UAE)" + }, + "me-south-1" : { + "description" : "Middle East (Bahrain)" + }, + "mx-central-1" : { + "description" : "Mexico (Central)" + }, + "sa-east-1" : { + "description" : "South America (Sao Paulo)" + }, + "us-east-1" : { + "description" : "US East (N. Virginia)" + }, + "us-east-2" : { + "description" : "US East (Ohio)" + }, + "us-west-1" : { + "description" : "US West (N. California)" + }, + "us-west-2" : { + "description" : "US West (Oregon)" + } + } + }, { + "id" : "aws-cn", + "outputs" : { + "dnsSuffix" : "amazonaws.com.cn", + "dualStackDnsSuffix" : "api.amazonwebservices.com.cn", + "implicitGlobalRegion" : "cn-northwest-1", + "name" : "aws-cn", + "supportsDualStack" : true, + "supportsFIPS" : true + }, + "regionRegex" : "^cn\\-\\w+\\-\\d+$", + "regions" : { + "aws-cn-global" : { + "description" : "AWS China global region" + }, + "cn-north-1" : { + "description" : "China (Beijing)" + }, + "cn-northwest-1" : { + "description" : "China (Ningxia)" + } + } + }, { + "id" : "aws-us-gov", + "outputs" : { + "dnsSuffix" : "amazonaws.com", + "dualStackDnsSuffix" : "api.aws", + "implicitGlobalRegion" : "us-gov-west-1", + "name" : "aws-us-gov", + "supportsDualStack" : true, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-gov\\-\\w+\\-\\d+$", + "regions" : { + "aws-us-gov-global" : { + "description" : "AWS GovCloud (US) global region" + }, + "us-gov-east-1" : { + "description" : "AWS GovCloud (US-East)" + }, + "us-gov-west-1" : { + "description" : "AWS GovCloud (US-West)" + } + } + }, { + "id" : "aws-iso", + "outputs" : { + "dnsSuffix" : "c2s.ic.gov", + "dualStackDnsSuffix" : "c2s.ic.gov", + "implicitGlobalRegion" : "us-iso-east-1", + "name" : "aws-iso", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-iso\\-\\w+\\-\\d+$", + "regions" : { + "aws-iso-global" : { + "description" : "AWS ISO (US) global region" + }, + "us-iso-east-1" : { + "description" : "US ISO East" + }, + "us-iso-west-1" : { + "description" : "US ISO WEST" + } + } + }, { + "id" : "aws-iso-b", + "outputs" : { + "dnsSuffix" : "sc2s.sgov.gov", + "dualStackDnsSuffix" : "sc2s.sgov.gov", + "implicitGlobalRegion" : "us-isob-east-1", + "name" : "aws-iso-b", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-isob\\-\\w+\\-\\d+$", + "regions" : { + "aws-iso-b-global" : { + "description" : "AWS ISOB (US) global region" + }, + "us-isob-east-1" : { + "description" : "US ISOB East (Ohio)" + } + } + }, { + "id" : "aws-iso-e", + "outputs" : { + "dnsSuffix" : "cloud.adc-e.uk", + "dualStackDnsSuffix" : "cloud.adc-e.uk", + "implicitGlobalRegion" : "eu-isoe-west-1", + "name" : "aws-iso-e", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^eu\\-isoe\\-\\w+\\-\\d+$", + "regions" : { + "eu-isoe-west-1" : { + "description" : "EU ISOE West" + } + } + }, { + "id" : "aws-iso-f", + "outputs" : { + "dnsSuffix" : "csp.hci.ic.gov", + "dualStackDnsSuffix" : "csp.hci.ic.gov", + "implicitGlobalRegion" : "us-isof-south-1", + "name" : "aws-iso-f", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^us\\-isof\\-\\w+\\-\\d+$", + "regions" : { + "aws-iso-f-global" : { + "description" : "AWS ISOF global region" + }, + "us-isof-east-1" : { + "description" : "US ISOF EAST" + }, + "us-isof-south-1" : { + "description" : "US ISOF SOUTH" + } + } + }, { + "id" : "aws-eusc", + "outputs" : { + "dnsSuffix" : "amazonaws.eu", + "dualStackDnsSuffix" : "amazonaws.eu", + "implicitGlobalRegion" : "eusc-de-east-1", + "name" : "aws-eusc", + "supportsDualStack" : false, + "supportsFIPS" : true + }, + "regionRegex" : "^eusc\\-(de)\\-\\w+\\-\\d+$", + "regions" : { + "eusc-de-east-1" : { + "description" : "EU (Germany)" + } + } + } ], + "version" : "1.1" +} \ No newline at end of file From d6a6fe4bb0469df8c4804c02f785a6b03480d74e Mon Sep 17 00:00:00 2001 From: Saranya Somepalli Date: Tue, 20 May 2025 16:06:00 -0700 Subject: [PATCH 3/4] Fixing errors --- .../amazon/awssdk/codegen/lite/regions/RegionGenerator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java b/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java index 9ec7f874abf7..63ebd9d8fe4c 100644 --- a/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java +++ b/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerator.java @@ -100,7 +100,7 @@ private void regions(TypeSpec.Builder builder) { .add("$T.unmodifiableList($T.asList(", Collections.class, Arrays.class); String regionsCodeBlock = regions.stream().map(r -> { - boolean isGlobal = r.toLowerCase().contains("global"); + boolean isGlobal = r.contains("global"); builder.addField(FieldSpec.builder(className(), regionName(r)) .addModifiers(PUBLIC, STATIC, FINAL) .initializer(isGlobal ? "$T.of($S, true)" : "$T.of($S)", className(), r) From 6f689ad4a8aabd534e22aebd5780621985bf457e Mon Sep 17 00:00:00 2001 From: Saranya Somepalli Date: Wed, 21 May 2025 08:20:18 -0700 Subject: [PATCH 4/4] Fixing test failures --- .../awssdk/codegen/lite/regions/RegionMetadataGenerator.java | 4 ++-- .../awssdk/codegen/lite/regions/RegionGenerationTest.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionMetadataGenerator.java b/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionMetadataGenerator.java index 92011139d2c6..b5fa142963b0 100644 --- a/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionMetadataGenerator.java +++ b/codegen-lite/src/main/java/software/amazon/awssdk/codegen/lite/regions/RegionMetadataGenerator.java @@ -65,9 +65,9 @@ public TypeSpec poetClass() { .addModifiers(FINAL) .addSuperinterface(ClassName.get(regionBasePackage, "RegionMetadata")) .addField(staticFinalField("ID", region)) - .addField(staticFinalField("DOMAIN", partition.getDnsSuffix())) + .addField(staticFinalField("DOMAIN", partition.getOutputs().getDnsSuffix())) .addField(staticFinalField("DESCRIPTION", regionDescription)) - .addField(staticFinalField("PARTITION_ID", partition.getPartition())) + .addField(staticFinalField("PARTITION_ID", partition.getId())) .addMethod(getter("id", "ID")) .addMethod(getter("domain", "DOMAIN")) .addMethod(getter("description", "DESCRIPTION")) diff --git a/codegen-lite/src/test/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerationTest.java b/codegen-lite/src/test/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerationTest.java index d00565f6372f..bfcf382701a1 100644 --- a/codegen-lite/src/test/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerationTest.java +++ b/codegen-lite/src/test/java/software/amazon/awssdk/codegen/lite/regions/RegionGenerationTest.java @@ -55,7 +55,7 @@ public void regionClass() { @Test public void regionMetadataClass() { - Partition partition = partitions.getPartitions().get(0); + Partition partition = partitionsRegions.getPartitions().get(0); RegionMetadataGenerator metadataGenerator = new RegionMetadataGenerator(partition, "us-east-1", "US East (N. Virginia)",