Skip to content

Commit 82bdb1c

Browse files
author
awstools
committed
feat(client-detective): Add support for Detective DualStack endpoints
1 parent a0329ca commit 82bdb1c

File tree

3 files changed

+502
-527
lines changed

3 files changed

+502
-527
lines changed

clients/client-detective/src/endpoint/EndpointParameters.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import { Endpoint, EndpointParameters as __EndpointParameters, EndpointV2, Provi
55
* @public
66
*/
77
export interface ClientInputEndpointParameters {
8-
region?: string | Provider<string>;
98
useDualstackEndpoint?: boolean | Provider<boolean>;
109
useFipsEndpoint?: boolean | Provider<boolean>;
1110
endpoint?: string | Provider<string> | Endpoint | Provider<Endpoint> | EndpointV2 | Provider<EndpointV2>;
11+
region?: string | Provider<string>;
1212
}
1313

1414
export type ClientResolvedEndpointParameters = ClientInputEndpointParameters & {
@@ -33,8 +33,8 @@ export const commonParams = {
3333
} as const;
3434

3535
export interface EndpointParameters extends __EndpointParameters {
36-
Region?: string;
3736
UseDualStack?: boolean;
3837
UseFIPS?: boolean;
3938
Endpoint?: string;
39+
Region?: string;
4040
}

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

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,34 @@ import { RuleSetObject } from "@smithy/types";
66
or see "smithy.rules#endpointRuleSet"
77
in codegen/sdk-codegen/aws-models/detective.json */
88

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

0 commit comments

Comments
 (0)