1{
2    "testCases": [
3        {
4            "documentation": "For region aws-global with FIPS disabled and DualStack disabled",
5            "expect": {
6                "endpoint": {
7                    "properties": {
8                        "authSchemes": [
9                            {
10                                "name": "sigv4",
11                                "signingName": "savingsplans",
12                                "signingRegion": "us-east-1"
13                            }
14                        ]
15                    },
16                    "url": "https://savingsplans.amazonaws.com"
17                }
18            },
19            "params": {
20                "Region": "aws-global",
21                "UseFIPS": false,
22                "UseDualStack": false
23            }
24        },
25        {
26            "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled",
27            "expect": {
28                "endpoint": {
29                    "url": "https://savingsplans-fips.us-east-1.api.aws"
30                }
31            },
32            "params": {
33                "Region": "us-east-1",
34                "UseFIPS": true,
35                "UseDualStack": true
36            }
37        },
38        {
39            "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled",
40            "expect": {
41                "endpoint": {
42                    "url": "https://savingsplans-fips.us-east-1.amazonaws.com"
43                }
44            },
45            "params": {
46                "Region": "us-east-1",
47                "UseFIPS": true,
48                "UseDualStack": false
49            }
50        },
51        {
52            "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled",
53            "expect": {
54                "endpoint": {
55                    "url": "https://savingsplans.us-east-1.api.aws"
56                }
57            },
58            "params": {
59                "Region": "us-east-1",
60                "UseFIPS": false,
61                "UseDualStack": true
62            }
63        },
64        {
65            "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled",
66            "expect": {
67                "endpoint": {
68                    "properties": {
69                        "authSchemes": [
70                            {
71                                "name": "sigv4",
72                                "signingName": "savingsplans",
73                                "signingRegion": "us-east-1"
74                            }
75                        ]
76                    },
77                    "url": "https://savingsplans.amazonaws.com"
78                }
79            },
80            "params": {
81                "Region": "us-east-1",
82                "UseFIPS": false,
83                "UseDualStack": false
84            }
85        },
86        {
87            "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled",
88            "expect": {
89                "endpoint": {
90                    "url": "https://savingsplans-fips.cn-north-1.api.amazonwebservices.com.cn"
91                }
92            },
93            "params": {
94                "Region": "cn-north-1",
95                "UseFIPS": true,
96                "UseDualStack": true
97            }
98        },
99        {
100            "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled",
101            "expect": {
102                "endpoint": {
103                    "url": "https://savingsplans-fips.cn-north-1.amazonaws.com.cn"
104                }
105            },
106            "params": {
107                "Region": "cn-north-1",
108                "UseFIPS": true,
109                "UseDualStack": false
110            }
111        },
112        {
113            "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled",
114            "expect": {
115                "endpoint": {
116                    "url": "https://savingsplans.cn-north-1.api.amazonwebservices.com.cn"
117                }
118            },
119            "params": {
120                "Region": "cn-north-1",
121                "UseFIPS": false,
122                "UseDualStack": true
123            }
124        },
125        {
126            "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled",
127            "expect": {
128                "endpoint": {
129                    "url": "https://savingsplans.cn-north-1.amazonaws.com.cn"
130                }
131            },
132            "params": {
133                "Region": "cn-north-1",
134                "UseFIPS": false,
135                "UseDualStack": false
136            }
137        },
138        {
139            "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled",
140            "expect": {
141                "endpoint": {
142                    "url": "https://savingsplans-fips.us-gov-east-1.api.aws"
143                }
144            },
145            "params": {
146                "Region": "us-gov-east-1",
147                "UseFIPS": true,
148                "UseDualStack": true
149            }
150        },
151        {
152            "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled",
153            "expect": {
154                "endpoint": {
155                    "url": "https://savingsplans-fips.us-gov-east-1.amazonaws.com"
156                }
157            },
158            "params": {
159                "Region": "us-gov-east-1",
160                "UseFIPS": true,
161                "UseDualStack": false
162            }
163        },
164        {
165            "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled",
166            "expect": {
167                "endpoint": {
168                    "url": "https://savingsplans.us-gov-east-1.api.aws"
169                }
170            },
171            "params": {
172                "Region": "us-gov-east-1",
173                "UseFIPS": false,
174                "UseDualStack": true
175            }
176        },
177        {
178            "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled",
179            "expect": {
180                "endpoint": {
181                    "url": "https://savingsplans.us-gov-east-1.amazonaws.com"
182                }
183            },
184            "params": {
185                "Region": "us-gov-east-1",
186                "UseFIPS": false,
187                "UseDualStack": false
188            }
189        },
190        {
191            "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled",
192            "expect": {
193                "error": "FIPS and DualStack are enabled, but this partition does not support one or both"
194            },
195            "params": {
196                "Region": "us-iso-east-1",
197                "UseFIPS": true,
198                "UseDualStack": true
199            }
200        },
201        {
202            "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled",
203            "expect": {
204                "endpoint": {
205                    "url": "https://savingsplans-fips.us-iso-east-1.c2s.ic.gov"
206                }
207            },
208            "params": {
209                "Region": "us-iso-east-1",
210                "UseFIPS": true,
211                "UseDualStack": false
212            }
213        },
214        {
215            "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled",
216            "expect": {
217                "error": "DualStack is enabled but this partition does not support DualStack"
218            },
219            "params": {
220                "Region": "us-iso-east-1",
221                "UseFIPS": false,
222                "UseDualStack": true
223            }
224        },
225        {
226            "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled",
227            "expect": {
228                "endpoint": {
229                    "url": "https://savingsplans.us-iso-east-1.c2s.ic.gov"
230                }
231            },
232            "params": {
233                "Region": "us-iso-east-1",
234                "UseFIPS": false,
235                "UseDualStack": false
236            }
237        },
238        {
239            "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled",
240            "expect": {
241                "error": "FIPS and DualStack are enabled, but this partition does not support one or both"
242            },
243            "params": {
244                "Region": "us-isob-east-1",
245                "UseFIPS": true,
246                "UseDualStack": true
247            }
248        },
249        {
250            "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled",
251            "expect": {
252                "endpoint": {
253                    "url": "https://savingsplans-fips.us-isob-east-1.sc2s.sgov.gov"
254                }
255            },
256            "params": {
257                "Region": "us-isob-east-1",
258                "UseFIPS": true,
259                "UseDualStack": false
260            }
261        },
262        {
263            "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled",
264            "expect": {
265                "error": "DualStack is enabled but this partition does not support DualStack"
266            },
267            "params": {
268                "Region": "us-isob-east-1",
269                "UseFIPS": false,
270                "UseDualStack": true
271            }
272        },
273        {
274            "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled",
275            "expect": {
276                "endpoint": {
277                    "url": "https://savingsplans.us-isob-east-1.sc2s.sgov.gov"
278                }
279            },
280            "params": {
281                "Region": "us-isob-east-1",
282                "UseFIPS": false,
283                "UseDualStack": false
284            }
285        },
286        {
287            "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled",
288            "expect": {
289                "endpoint": {
290                    "url": "https://example.com"
291                }
292            },
293            "params": {
294                "Region": "us-east-1",
295                "UseFIPS": false,
296                "UseDualStack": false,
297                "Endpoint": "https://example.com"
298            }
299        },
300        {
301            "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled",
302            "expect": {
303                "endpoint": {
304                    "url": "https://example.com"
305                }
306            },
307            "params": {
308                "UseFIPS": false,
309                "UseDualStack": false,
310                "Endpoint": "https://example.com"
311            }
312        },
313        {
314            "documentation": "For custom endpoint with fips enabled and dualstack disabled",
315            "expect": {
316                "error": "Invalid Configuration: FIPS and custom endpoint are not supported"
317            },
318            "params": {
319                "Region": "us-east-1",
320                "UseFIPS": true,
321                "UseDualStack": false,
322                "Endpoint": "https://example.com"
323            }
324        },
325        {
326            "documentation": "For custom endpoint with fips disabled and dualstack enabled",
327            "expect": {
328                "error": "Invalid Configuration: Dualstack and custom endpoint are not supported"
329            },
330            "params": {
331                "Region": "us-east-1",
332                "UseFIPS": false,
333                "UseDualStack": true,
334                "Endpoint": "https://example.com"
335            }
336        },
337        {
338            "documentation": "Missing region",
339            "expect": {
340                "error": "Invalid Configuration: Missing Region"
341            }
342        }
343    ],
344    "version": "1.0"
345}