Skip to content

Commit a59fb41

Browse files
Adds dualstack support for Amazon Elastic Container Registry Public (Amazon ECR Public).
1 parent 1207f96 commit a59fb41

File tree

4 files changed

+87
-30
lines changed

4 files changed

+87
-30
lines changed

generator/ServiceModels/ecr-public/ecr-public-2020-10-30.endpoint-rule-set.json

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,31 @@
270270
}
271271
],
272272
"rules": [
273+
{
274+
"conditions": [
275+
{
276+
"fn": "stringEquals",
277+
"argv": [
278+
"aws",
279+
{
280+
"fn": "getAttr",
281+
"argv": [
282+
{
283+
"ref": "PartitionResult"
284+
},
285+
"name"
286+
]
287+
}
288+
]
289+
}
290+
],
291+
"endpoint": {
292+
"url": "https://ecr-public.{Region}.api.aws",
293+
"properties": {},
294+
"headers": {}
295+
},
296+
"type": "endpoint"
297+
},
273298
{
274299
"conditions": [],
275300
"endpoint": {

generator/ServiceModels/ecr-public/ecr-public-2020-10-30.endpoint-tests.json

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,67 @@
11
{
22
"testCases": [
33
{
4-
"documentation": "For region us-east-1 with FIPS enabled and DualStack enabled",
4+
"documentation": "For region us-east-1 with FIPS disabled and DualStack disabled",
55
"expect": {
66
"endpoint": {
7-
"url": "https://api.ecr-public-fips.us-east-1.api.aws"
7+
"url": "https://api.ecr-public.us-east-1.amazonaws.com"
88
}
99
},
1010
"params": {
1111
"Region": "us-east-1",
12-
"UseFIPS": true,
13-
"UseDualStack": true
12+
"UseFIPS": false,
13+
"UseDualStack": false
1414
}
1515
},
1616
{
17-
"documentation": "For region us-east-1 with FIPS enabled and DualStack disabled",
17+
"documentation": "For region us-east-1 with FIPS disabled and DualStack enabled",
1818
"expect": {
1919
"endpoint": {
20-
"url": "https://api.ecr-public-fips.us-east-1.amazonaws.com"
20+
"url": "https://ecr-public.us-east-1.api.aws"
2121
}
2222
},
2323
"params": {
2424
"Region": "us-east-1",
25-
"UseFIPS": true,
25+
"UseFIPS": false,
26+
"UseDualStack": true
27+
}
28+
},
29+
{
30+
"documentation": "For region us-west-2 with FIPS disabled and DualStack disabled",
31+
"expect": {
32+
"endpoint": {
33+
"url": "https://api.ecr-public.us-west-2.amazonaws.com"
34+
}
35+
},
36+
"params": {
37+
"Region": "us-west-2",
38+
"UseFIPS": false,
2639
"UseDualStack": false
2740
}
2841
},
2942
{
30-
"documentation": "For region us-east-1 with FIPS disabled and DualStack enabled",
43+
"documentation": "For region us-east-1 with FIPS enabled and DualStack enabled",
3144
"expect": {
3245
"endpoint": {
33-
"url": "https://api.ecr-public.us-east-1.api.aws"
46+
"url": "https://api.ecr-public-fips.us-east-1.api.aws"
3447
}
3548
},
3649
"params": {
3750
"Region": "us-east-1",
38-
"UseFIPS": false,
51+
"UseFIPS": true,
3952
"UseDualStack": true
4053
}
4154
},
4255
{
43-
"documentation": "For region us-east-1 with FIPS disabled and DualStack disabled",
56+
"documentation": "For region us-east-1 with FIPS enabled and DualStack disabled",
4457
"expect": {
4558
"endpoint": {
46-
"url": "https://api.ecr-public.us-east-1.amazonaws.com"
59+
"url": "https://api.ecr-public-fips.us-east-1.amazonaws.com"
4760
}
4861
},
4962
"params": {
5063
"Region": "us-east-1",
51-
"UseFIPS": false,
64+
"UseFIPS": true,
5265
"UseDualStack": false
5366
}
5467
},

sdk/src/Services/ECRPublic/Generated/Internal/AmazonECRPublicEndpointProvider.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ public Endpoint ResolveEndpoint(EndpointParameters parameters)
8888
{
8989
if (Equals(true, GetAttr(refs["PartitionResult"], "supportsDualStack")))
9090
{
91+
if (Equals("aws", GetAttr(refs["PartitionResult"], "name")))
92+
{
93+
return new Endpoint(Interpolate(@"https://ecr-public.{Region}.api.aws", refs), InterpolateJson(@"", refs), InterpolateJson(@"", refs));
94+
}
9195
return new Endpoint(Interpolate(@"https://api.ecr-public.{Region}.{PartitionResult#dualStackDnsSuffix}", refs), InterpolateJson(@"", refs), InterpolateJson(@"", refs));
9296
}
9397
throw new AmazonClientException("DualStack is enabled but this partition does not support DualStack");

sdk/test/Services/ECRPublic/UnitTests/Generated/Endpoints/ECRPublicEndpointProviderTests.cs

Lines changed: 32 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -32,60 +32,75 @@ public partial class ECRPublicEndpointsTests
3232
[TestCategory("UnitTest")]
3333
[TestCategory("Endpoints")]
3434
[TestCategory("ECRPublic")]
35-
[Description("For region us-east-1 with FIPS enabled and DualStack enabled")]
36-
public void For_region_useast1_with_FIPS_enabled_and_DualStack_enabled_Test()
35+
[Description("For region us-east-1 with FIPS disabled and DualStack disabled")]
36+
public void For_region_useast1_with_FIPS_disabled_and_DualStack_disabled_Test()
3737
{
3838
var parameters = new ECRPublicEndpointParameters();
3939
parameters["Region"] = "us-east-1";
40-
parameters["UseFIPS"] = true;
41-
parameters["UseDualStack"] = true;
40+
parameters["UseFIPS"] = false;
41+
parameters["UseDualStack"] = false;
4242
var endpoint = new AmazonECRPublicEndpointProvider().ResolveEndpoint(parameters);
43-
Assert.AreEqual("https://api.ecr-public-fips.us-east-1.api.aws", endpoint.URL);
43+
Assert.AreEqual("https://api.ecr-public.us-east-1.amazonaws.com", endpoint.URL);
4444
}
4545

4646
[TestMethod]
4747
[TestCategory("UnitTest")]
4848
[TestCategory("Endpoints")]
4949
[TestCategory("ECRPublic")]
50-
[Description("For region us-east-1 with FIPS enabled and DualStack disabled")]
51-
public void For_region_useast1_with_FIPS_enabled_and_DualStack_disabled_Test()
50+
[Description("For region us-east-1 with FIPS disabled and DualStack enabled")]
51+
public void For_region_useast1_with_FIPS_disabled_and_DualStack_enabled_Test()
5252
{
5353
var parameters = new ECRPublicEndpointParameters();
5454
parameters["Region"] = "us-east-1";
55-
parameters["UseFIPS"] = true;
55+
parameters["UseFIPS"] = false;
56+
parameters["UseDualStack"] = true;
57+
var endpoint = new AmazonECRPublicEndpointProvider().ResolveEndpoint(parameters);
58+
Assert.AreEqual("https://ecr-public.us-east-1.api.aws", endpoint.URL);
59+
}
60+
61+
[TestMethod]
62+
[TestCategory("UnitTest")]
63+
[TestCategory("Endpoints")]
64+
[TestCategory("ECRPublic")]
65+
[Description("For region us-west-2 with FIPS disabled and DualStack disabled")]
66+
public void For_region_uswest2_with_FIPS_disabled_and_DualStack_disabled_Test()
67+
{
68+
var parameters = new ECRPublicEndpointParameters();
69+
parameters["Region"] = "us-west-2";
70+
parameters["UseFIPS"] = false;
5671
parameters["UseDualStack"] = false;
5772
var endpoint = new AmazonECRPublicEndpointProvider().ResolveEndpoint(parameters);
58-
Assert.AreEqual("https://api.ecr-public-fips.us-east-1.amazonaws.com", endpoint.URL);
73+
Assert.AreEqual("https://api.ecr-public.us-west-2.amazonaws.com", endpoint.URL);
5974
}
6075

6176
[TestMethod]
6277
[TestCategory("UnitTest")]
6378
[TestCategory("Endpoints")]
6479
[TestCategory("ECRPublic")]
65-
[Description("For region us-east-1 with FIPS disabled and DualStack enabled")]
66-
public void For_region_useast1_with_FIPS_disabled_and_DualStack_enabled_Test()
80+
[Description("For region us-east-1 with FIPS enabled and DualStack enabled")]
81+
public void For_region_useast1_with_FIPS_enabled_and_DualStack_enabled_Test()
6782
{
6883
var parameters = new ECRPublicEndpointParameters();
6984
parameters["Region"] = "us-east-1";
70-
parameters["UseFIPS"] = false;
85+
parameters["UseFIPS"] = true;
7186
parameters["UseDualStack"] = true;
7287
var endpoint = new AmazonECRPublicEndpointProvider().ResolveEndpoint(parameters);
73-
Assert.AreEqual("https://api.ecr-public.us-east-1.api.aws", endpoint.URL);
88+
Assert.AreEqual("https://api.ecr-public-fips.us-east-1.api.aws", endpoint.URL);
7489
}
7590

7691
[TestMethod]
7792
[TestCategory("UnitTest")]
7893
[TestCategory("Endpoints")]
7994
[TestCategory("ECRPublic")]
80-
[Description("For region us-east-1 with FIPS disabled and DualStack disabled")]
81-
public void For_region_useast1_with_FIPS_disabled_and_DualStack_disabled_Test()
95+
[Description("For region us-east-1 with FIPS enabled and DualStack disabled")]
96+
public void For_region_useast1_with_FIPS_enabled_and_DualStack_disabled_Test()
8297
{
8398
var parameters = new ECRPublicEndpointParameters();
8499
parameters["Region"] = "us-east-1";
85-
parameters["UseFIPS"] = false;
100+
parameters["UseFIPS"] = true;
86101
parameters["UseDualStack"] = false;
87102
var endpoint = new AmazonECRPublicEndpointProvider().ResolveEndpoint(parameters);
88-
Assert.AreEqual("https://api.ecr-public.us-east-1.amazonaws.com", endpoint.URL);
103+
Assert.AreEqual("https://api.ecr-public-fips.us-east-1.amazonaws.com", endpoint.URL);
89104
}
90105

91106
[TestMethod]

0 commit comments

Comments
 (0)