Skip to content

Commit aac320c

Browse files
author
awstools
committed
feat(client-ecr): Add support for Dualstack Endpoints
1 parent 97570d2 commit aac320c

File tree

4 files changed

+181
-897
lines changed

4 files changed

+181
-897
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
// smithy-typescript generated code
2-
import { Endpoint, EndpointParameters as __EndpointParameters, EndpointV2, Provider } from "@smithy/types";
2+
import { EndpointParameters as __EndpointParameters, Provider } from "@smithy/types";
33

44
/**
55
* @public
66
*/
77
export interface ClientInputEndpointParameters {
88
region?: string | Provider<string>;
9-
useDualstackEndpoint?: boolean | Provider<boolean>;
109
useFipsEndpoint?: boolean | Provider<boolean>;
11-
endpoint?: string | Provider<string> | Endpoint | Provider<Endpoint> | EndpointV2 | Provider<EndpointV2>;
10+
useDualstackEndpoint?: boolean | Provider<boolean>;
1211
}
1312

1413
export type ClientResolvedEndpointParameters = ClientInputEndpointParameters & {
@@ -20,22 +19,20 @@ export const resolveClientEndpointParameters = <T>(
2019
): T & ClientResolvedEndpointParameters => {
2120
return {
2221
...options,
23-
useDualstackEndpoint: options.useDualstackEndpoint ?? false,
2422
useFipsEndpoint: options.useFipsEndpoint ?? false,
23+
useDualstackEndpoint: options.useDualstackEndpoint ?? false,
2524
defaultSigningName: "ecr",
2625
};
2726
};
2827

2928
export const commonParams = {
3029
UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
31-
Endpoint: { type: "builtInParams", name: "endpoint" },
3230
Region: { type: "builtInParams", name: "region" },
3331
UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
3432
} as const;
3533

3634
export interface EndpointParameters extends __EndpointParameters {
3735
Region?: string;
38-
UseDualStack?: boolean;
3936
UseFIPS?: boolean;
40-
Endpoint?: string;
37+
UseDualStack?: boolean;
4138
}

clients/client-ecr/src/endpoint/endpointResolver.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { ruleSet } from "./ruleset";
88

99
const cache = new EndpointCache({
1010
size: 50,
11-
params: ["Endpoint", "Region", "UseDualStack", "UseFIPS"],
11+
params: ["Region", "UseDualStack", "UseFIPS"],
1212
});
1313

1414
export const defaultEndpointResolver = (

clients/client-ecr/src/endpoint/ruleset.ts

+16-26
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,20 @@ import { RuleSetObject } from "@smithy/types";
66
or see "smithy.rules#endpointRuleSet"
77
in codegen/sdk-codegen/aws-models/ecr.json */
88

9-
const v="required",
10-
w="fn",
11-
x="argv",
12-
y="ref";
13-
const a=true,
14-
b="isSet",
15-
c="booleanEquals",
16-
d="error",
17-
e="endpoint",
18-
f="tree",
19-
g="PartitionResult",
20-
h="stringEquals",
21-
i={[v]:false,"type":"String"},
22-
j={[v]:true,"default":false,"type":"Boolean"},
23-
k={[y]:"Endpoint"},
24-
l={[w]:c,[x]:[{[y]:"UseFIPS"},true]},
25-
m={[w]:c,[x]:[{[y]:"UseDualStack"},true]},
26-
n={},
27-
o={[w]:"getAttr",[x]:[{[y]:g},"supportsFIPS"]},
28-
p={[w]:c,[x]:[true,{[w]:"getAttr",[x]:[{[y]:g},"supportsDualStack"]}]},
29-
q={[w]:"getAttr",[x]:[{[y]:g},"name"]},
30-
r={"url":"https://ecr-fips.{Region}.amazonaws.com","properties":{},"headers":{}},
31-
s=[l],
32-
t=[m],
33-
u=[{[y]:"Region"}];
34-
const _data={version:"1.0",parameters:{Region:i,UseDualStack:j,UseFIPS:j,Endpoint:i},rules:[{conditions:[{[w]:b,[x]:[k]}],rules:[{conditions:s,error:"Invalid Configuration: FIPS and custom endpoint are not supported",type:d},{conditions:t,error:"Invalid Configuration: Dualstack and custom endpoint are not supported",type:d},{endpoint:{url:k,properties:n,headers:n},type:e}],type:f},{conditions:[{[w]:b,[x]:u}],rules:[{conditions:[{[w]:"aws.partition",[x]:u,assign:g}],rules:[{conditions:[l,m],rules:[{conditions:[{[w]:c,[x]:[a,o]},p],rules:[{endpoint:{url:"https://api.ecr-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:n,headers:n},type:e}],type:f},{error:"FIPS and DualStack are enabled, but this partition does not support one or both",type:d}],type:f},{conditions:s,rules:[{conditions:[{[w]:c,[x]:[o,a]}],rules:[{conditions:[{[w]:h,[x]:[q,"aws"]}],endpoint:r,type:e},{conditions:[{[w]:h,[x]:[q,"aws-us-gov"]}],endpoint:r,type:e},{endpoint:{url:"https://api.ecr-fips.{Region}.{PartitionResult#dnsSuffix}",properties:n,headers:n},type:e}],type:f},{error:"FIPS is enabled but this partition does not support FIPS",type:d}],type:f},{conditions:t,rules:[{conditions:[p],rules:[{endpoint:{url:"https://api.ecr.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:n,headers:n},type:e}],type:f},{error:"DualStack is enabled but this partition does not support DualStack",type:d}],type:f},{endpoint:{url:"https://api.ecr.{Region}.{PartitionResult#dnsSuffix}",properties:n,headers:n},type:e}],type:f}],type:f},{error:"Invalid Configuration: Missing Region",type:d}]};
9+
const m="fn",
10+
n="argv",
11+
o="ref";
12+
const a=false,
13+
b="PartitionResult",
14+
c="endpoint",
15+
d="tree",
16+
e="error",
17+
f={"required":true,"default":false,"type":"Boolean"},
18+
g={[m]:"booleanEquals",[n]:[{[o]:"UseFIPS"},true]},
19+
h={[m]:"booleanEquals",[n]:[{[o]:"UseDualStack"},true]},
20+
i={[m]:"booleanEquals",[n]:[true,{[m]:"getAttr",[n]:[{[o]:b},"supportsFIPS"]}]},
21+
j={[m]:"booleanEquals",[n]:[true,{[m]:"getAttr",[n]:[{[o]:b},"supportsDualStack"]}]},
22+
k={},
23+
l=[{[o]:"Region"}];
24+
const _data={version:"1.0",parameters:{Region:{required:a,type:"String"},UseFIPS:f,UseDualStack:f},rules:[{conditions:[{[m]:"isSet",[n]:l},{[m]:"aws.partition",[n]:l,assign:b}],rules:[{conditions:[g,h],rules:[{conditions:[i,j],rules:[{endpoint:{url:"https://ecr-fips.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:k,headers:k},type:c}],type:d},{error:"FIPS and dualstack are enabled, but this partition does not support one or both",type:e}],type:d},{conditions:[h],rules:[{conditions:[j],rules:[{endpoint:{url:"https://ecr.{Region}.{PartitionResult#dualStackDnsSuffix}",properties:k,headers:k},type:c}],type:d},{error:"Dualstack is enabled but this partition does not support dualstack",type:e}],type:d},{conditions:[g],rules:[{conditions:[i],rules:[{endpoint:{url:"https://ecr-fips.{Region}.{PartitionResult#dnsSuffix}",properties:k,headers:k},type:c}],type:d},{error:"FIPS is enabled but this partition does not support FIPS",type:e}],type:d},{endpoint:{url:"https://api.ecr.{Region}.{PartitionResult#dnsSuffix}",properties:k,headers:k},type:c}],type:d}]};
3525
export const ruleSet: RuleSetObject = _data;

0 commit comments

Comments
 (0)