Skip to content

Commit c4089ca

Browse files
authored
Add implicitGlobalRegion to internal endpoint resolution metadata (#5362)
* Add implicit global region to internal endpoint resolution metadata * Correct formatting * Refactor if condition
1 parent 9400231 commit c4089ca

File tree

6 files changed

+76
-3
lines changed

6 files changed

+76
-3
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"category": "AWS SDK for Java v2",
3+
"contributor": "",
4+
"type": "feature",
5+
"description": "Add implicit global region to internal endpoint resolution metadata"
6+
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/rules/DefaultPartitionDataProviderSpec.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public class DefaultPartitionDataProviderSpec implements ClassSpec {
4747
private static final String DUAL_STACK_DNS_SUFFIX = "dualStackDnsSuffix";
4848
private static final String SUPPORTS_FIPS = "supportsFIPS";
4949
private static final String SUPPORTS_DUAL_STACK = "supportsDualStack";
50+
private static final String IMPLICIT_GLOBAL_REGION = "implicitGlobalRegion";
5051

5152
private final IntermediateModel model;
5253
private final EndpointRulesSpecUtils endpointRulesSpecUtils;
@@ -225,6 +226,13 @@ private void codegenOutputs(CodeBlock.Builder builder, JsonNode node) {
225226
builder.add("$L", supportsDualStack.asBoolean());
226227
builder.add(")");
227228
}
229+
230+
JsonNode implicitGlobalRegion = objNode.get(IMPLICIT_GLOBAL_REGION);
231+
if (implicitGlobalRegion != null) {
232+
builder.add(".implicitGlobalRegion(");
233+
builder.add("$S", implicitGlobalRegion.asString());
234+
builder.add(")");
235+
}
228236
builder.add(".build()");
229237
}
230238
}

codegen/src/main/resources/software/amazon/awssdk/codegen/rules/Outputs.java.resource

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,20 @@ public class Outputs {
88
private static final String DUAL_STACK_DNS_SUFFIX = "dualStackDnsSuffix";
99
private static final String SUPPORTS_FIPS = "supportsFIPS";
1010
private static final String SUPPORTS_DUAL_STACK = "supportsDualStack";
11+
private static final String IMPLICIT_GLOBAL_REGION = "implicitGlobalRegion";
1112

1213
private final String dnsSuffix;
1314
private final String dualStackDnsSuffix;
1415
private final boolean supportsFips;
1516
private final boolean supportsDualStack;
17+
private final String implicitGlobalRegion;
1618

1719
private Outputs(Builder builder) {
1820
this.dnsSuffix = builder.dnsSuffix;
1921
this.dualStackDnsSuffix = builder.dualStackDnsSuffix;
2022
this.supportsFips = builder.supportsFips;
2123
this.supportsDualStack = builder.supportsDualStack;
24+
this.implicitGlobalRegion = builder.implicitGlobalRegion;
2225
}
2326

2427
public String dnsSuffix() {
@@ -37,6 +40,10 @@ public class Outputs {
3740
return supportsDualStack;
3841
}
3942

43+
public String implicitGlobalRegion() {
44+
return implicitGlobalRegion;
45+
}
46+
4047
@Override
4148
public boolean equals(Object o) {
4249
if (this == o) {
@@ -54,7 +61,12 @@ public class Outputs {
5461
if (supportsDualStack != outputs.supportsDualStack) {
5562
return false;
5663
}
57-
if (dnsSuffix != null ? !dnsSuffix.equals(outputs.dnsSuffix) : outputs.dnsSuffix != null) {
64+
if ((dnsSuffix != null && !dnsSuffix.equals(outputs.dnsSuffix)) ||
65+
(dnsSuffix == null && outputs.dnsSuffix != null)) {
66+
return false;
67+
}
68+
if ((implicitGlobalRegion != null && !implicitGlobalRegion.equals(outputs.implicitGlobalRegion)) ||
69+
(implicitGlobalRegion == null && outputs.implicitGlobalRegion != null)) {
5870
return false;
5971
}
6072
return dualStackDnsSuffix != null ? dualStackDnsSuffix.equals(outputs.dualStackDnsSuffix)
@@ -67,6 +79,7 @@ public class Outputs {
6779
result = 31 * result + (dualStackDnsSuffix != null ? dualStackDnsSuffix.hashCode() : 0);
6880
result = 31 * result + (supportsFips ? 1 : 0);
6981
result = 31 * result + (supportsDualStack ? 1 : 0);
82+
result = 31 * result + (implicitGlobalRegion != null ? implicitGlobalRegion.hashCode() : 0);
7083
return result;
7184
}
7285

@@ -77,6 +90,7 @@ public class Outputs {
7790
", dualStackDnsSuffix='" + dualStackDnsSuffix + '\'' +
7891
", supportsFips=" + supportsFips +
7992
", supportsDualStack=" + supportsDualStack +
93+
", implicitGlobalRegion=" + implicitGlobalRegion +
8094
'}';
8195
}
8296

@@ -109,6 +123,11 @@ public class Outputs {
109123
b.supportsDualStack(supportsDualStack.asBoolean());
110124
}
111125

126+
JsonNode implicitGlobalRegion = objNode.get(IMPLICIT_GLOBAL_REGION);
127+
if (implicitGlobalRegion != null) {
128+
b.implicitGlobalRegion(implicitGlobalRegion.asString());
129+
}
130+
112131
return b.build();
113132
}
114133

@@ -117,6 +136,7 @@ public class Outputs {
117136
private String dualStackDnsSuffix;
118137
private boolean supportsFips;
119138
private boolean supportsDualStack;
139+
private String implicitGlobalRegion;
120140

121141
public Builder dnsSuffix(String dnsSuffix) {
122142
this.dnsSuffix = dnsSuffix;
@@ -138,6 +158,11 @@ public class Outputs {
138158
return this;
139159
}
140160

161+
public Builder implicitGlobalRegion(String implicitGlobalRegion) {
162+
this.implicitGlobalRegion = implicitGlobalRegion;
163+
return this;
164+
}
165+
141166
public Outputs build() {
142167
return new Outputs(this);
143168
}

codegen/src/main/resources/software/amazon/awssdk/codegen/rules/PartitionFn.java.resource

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ public class PartitionFn extends SingleArgFn {
1616
public static final Identifier DUAL_STACK_DNS_SUFFIX = Identifier.of("dualStackDnsSuffix");
1717
public static final Identifier SUPPORTS_FIPS = Identifier.of("supportsFIPS");
1818
public static final Identifier SUPPORTS_DUAL_STACK = Identifier.of("supportsDualStack");
19+
public static final Identifier IMPLICIT_GLOBAL_REGION = Identifier.of("implicitGlobalRegion");
1920
public static final Identifier INFERRED = Identifier.of("inferred");
2021

2122
private final LazyValue<PartitionData> partitionData = LazyValue.<PartitionData>builder()
@@ -78,6 +79,7 @@ public class PartitionFn extends SingleArgFn {
7879
DUAL_STACK_DNS_SUFFIX, Value.fromStr(matchedOutputs.dualStackDnsSuffix()),
7980
SUPPORTS_FIPS, Value.fromBool(matchedOutputs.supportsFips()),
8081
SUPPORTS_DUAL_STACK, Value.fromBool(matchedOutputs.supportsDualStack()),
82+
IMPLICIT_GLOBAL_REGION, Value.fromStr(matchedOutputs.implicitGlobalRegion()),
8183
INFERRED, Value.fromBool(inferred)));
8284
}
8385

codegen/src/main/resources/software/amazon/awssdk/codegen/rules2/RulePartition.java.resource

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,22 @@ public class RulePartition {
99
private static final String DUAL_STACK_DNS_SUFFIX = "dualStackDnsSuffix";
1010
private static final String SUPPORTS_FIPS = "supportsFIPS";
1111
private static final String SUPPORTS_DUAL_STACK = "supportsDualStack";
12+
private static final String IMPLICIT_GLOBAL_REGION = "implicitGlobalRegion";
1213

1314
private final String name;
1415
private final String dnsSuffix;
1516
private final String dualStackDnsSuffix;
1617
private final boolean supportsFips;
1718
private final boolean supportsDualStack;
19+
private final String implicitGlobalRegion;
1820

1921
private RulePartition(Builder builder) {
2022
this.name = builder.name;
2123
this.dnsSuffix = builder.dnsSuffix;
2224
this.dualStackDnsSuffix = builder.dualStackDnsSuffix;
2325
this.supportsFips = builder.supportsFips;
2426
this.supportsDualStack = builder.supportsDualStack;
27+
this.implicitGlobalRegion = builder.implicitGlobalRegion;
2528
}
2629

2730
public String name() {
@@ -48,6 +51,10 @@ public class RulePartition {
4851
return supportsDualStack;
4952
}
5053

54+
public String implicitGlobalRegion() {
55+
return implicitGlobalRegion;
56+
}
57+
5158
@Override
5259
public boolean equals(Object o) {
5360
if (this == o) {
@@ -59,12 +66,13 @@ public class RulePartition {
5966
RulePartition that = (RulePartition) o;
6067
return supportsFips == that.supportsFips && supportsDualStack == that.supportsDualStack
6168
&& Objects.equals(name, that.name) && Objects.equals(dnsSuffix, that.dnsSuffix)
62-
&& Objects.equals(dualStackDnsSuffix, that.dualStackDnsSuffix);
69+
&& Objects.equals(dualStackDnsSuffix, that.dualStackDnsSuffix)
70+
&& Objects.equals(implicitGlobalRegion, that.implicitGlobalRegion);
6371
}
6472

6573
@Override
6674
public int hashCode() {
67-
return Objects.hash(name, dnsSuffix, dualStackDnsSuffix, supportsFips, supportsDualStack);
75+
return Objects.hash(name, dnsSuffix, dualStackDnsSuffix, supportsFips, supportsDualStack, implicitGlobalRegion);
6876
}
6977

7078
public static Builder builder() {
@@ -79,6 +87,7 @@ public class RulePartition {
7987
.dualStackDnsSuffix(outputs.dualStackDnsSuffix())
8088
.supportsFips(outputs.supportsFips())
8189
.supportsDualStack(outputs.supportsDualStack())
90+
.implicitGlobalRegion(outputs.implicitGlobalRegion())
8291
.build();
8392
}
8493

@@ -107,6 +116,11 @@ public class RulePartition {
107116
b.supportsDualStack(supportsDualStack.asBoolean());
108117
}
109118

119+
JsonNode implicitGlobalRegion = objNode.get(IMPLICIT_GLOBAL_REGION);
120+
if (implicitGlobalRegion != null) {
121+
b.implicitGlobalRegion(implicitGlobalRegion.asString());
122+
}
123+
110124
return b.build();
111125
}
112126

@@ -116,6 +130,7 @@ public class RulePartition {
116130
private String dualStackDnsSuffix;
117131
private boolean supportsFips;
118132
private boolean supportsDualStack;
133+
private String implicitGlobalRegion;
119134

120135
public Builder name(String name) {
121136
this.name = name;
@@ -142,6 +157,11 @@ public class RulePartition {
142157
return this;
143158
}
144159

160+
public Builder implicitGlobalRegion(String implicitGlobalRegion) {
161+
this.implicitGlobalRegion = implicitGlobalRegion;
162+
return this;
163+
}
164+
145165
public RulePartition build() {
146166
return new RulePartition(this);
147167
}

utils/src/main/java/software/amazon/awssdk/utils/MapUtils.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,16 @@ public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4
7474
m.put(k6, v6);
7575
return m;
7676
}
77+
78+
public static <K, V> Map<K, V> of(K k1, V v1, K k2, V v2, K k3, V v3, K k4, V v4, K k5, V v5, K k6, V v6, K k7, V v7) {
79+
Map<K, V> m = new HashMap<>();
80+
m.put(k1, v1);
81+
m.put(k2, v2);
82+
m.put(k3, v3);
83+
m.put(k4, v4);
84+
m.put(k5, v5);
85+
m.put(k6, v6);
86+
m.put(k7, v7);
87+
return m;
88+
}
7789
}

0 commit comments

Comments
 (0)