aws_sdk_ssooidc/config/
endpoint.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver;
3                pub use ::aws_smithy_runtime_api::client::endpoint::EndpointFuture;
4                pub use ::aws_smithy_types::endpoint::Endpoint;
5
6#[cfg(test)]
7mod test {
8    
9    /// For region ap-east-1 with FIPS disabled and DualStack disabled
10                    #[test]
11                    fn test_1() {
12                        let params = crate::config::endpoint::Params::builder()
13    .region("ap-east-1".to_string())
14    .use_fips(false)
15    .use_dual_stack(false)
16    .build().expect("invalid params");
17                        let resolver = crate::config::endpoint::DefaultResolver::new();
18                        let endpoint = resolver.resolve_endpoint(&params);
19                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.ap-east-1.amazonaws.com");
20                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.ap-east-1.amazonaws.com")
21    .build());
22                    }
23    
24    /// For region ap-northeast-1 with FIPS disabled and DualStack disabled
25                    #[test]
26                    fn test_2() {
27                        let params = crate::config::endpoint::Params::builder()
28    .region("ap-northeast-1".to_string())
29    .use_fips(false)
30    .use_dual_stack(false)
31    .build().expect("invalid params");
32                        let resolver = crate::config::endpoint::DefaultResolver::new();
33                        let endpoint = resolver.resolve_endpoint(&params);
34                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.ap-northeast-1.amazonaws.com");
35                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.ap-northeast-1.amazonaws.com")
36    .build());
37                    }
38    
39    /// For region ap-northeast-2 with FIPS disabled and DualStack disabled
40                    #[test]
41                    fn test_3() {
42                        let params = crate::config::endpoint::Params::builder()
43    .region("ap-northeast-2".to_string())
44    .use_fips(false)
45    .use_dual_stack(false)
46    .build().expect("invalid params");
47                        let resolver = crate::config::endpoint::DefaultResolver::new();
48                        let endpoint = resolver.resolve_endpoint(&params);
49                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.ap-northeast-2.amazonaws.com");
50                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.ap-northeast-2.amazonaws.com")
51    .build());
52                    }
53    
54    /// For region ap-northeast-3 with FIPS disabled and DualStack disabled
55                    #[test]
56                    fn test_4() {
57                        let params = crate::config::endpoint::Params::builder()
58    .region("ap-northeast-3".to_string())
59    .use_fips(false)
60    .use_dual_stack(false)
61    .build().expect("invalid params");
62                        let resolver = crate::config::endpoint::DefaultResolver::new();
63                        let endpoint = resolver.resolve_endpoint(&params);
64                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.ap-northeast-3.amazonaws.com");
65                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.ap-northeast-3.amazonaws.com")
66    .build());
67                    }
68    
69    /// For region ap-south-1 with FIPS disabled and DualStack disabled
70                    #[test]
71                    fn test_5() {
72                        let params = crate::config::endpoint::Params::builder()
73    .region("ap-south-1".to_string())
74    .use_fips(false)
75    .use_dual_stack(false)
76    .build().expect("invalid params");
77                        let resolver = crate::config::endpoint::DefaultResolver::new();
78                        let endpoint = resolver.resolve_endpoint(&params);
79                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.ap-south-1.amazonaws.com");
80                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.ap-south-1.amazonaws.com")
81    .build());
82                    }
83    
84    /// For region ap-southeast-1 with FIPS disabled and DualStack disabled
85                    #[test]
86                    fn test_6() {
87                        let params = crate::config::endpoint::Params::builder()
88    .region("ap-southeast-1".to_string())
89    .use_fips(false)
90    .use_dual_stack(false)
91    .build().expect("invalid params");
92                        let resolver = crate::config::endpoint::DefaultResolver::new();
93                        let endpoint = resolver.resolve_endpoint(&params);
94                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.ap-southeast-1.amazonaws.com");
95                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.ap-southeast-1.amazonaws.com")
96    .build());
97                    }
98    
99    /// For region ap-southeast-2 with FIPS disabled and DualStack disabled
100                    #[test]
101                    fn test_7() {
102                        let params = crate::config::endpoint::Params::builder()
103    .region("ap-southeast-2".to_string())
104    .use_fips(false)
105    .use_dual_stack(false)
106    .build().expect("invalid params");
107                        let resolver = crate::config::endpoint::DefaultResolver::new();
108                        let endpoint = resolver.resolve_endpoint(&params);
109                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.ap-southeast-2.amazonaws.com");
110                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.ap-southeast-2.amazonaws.com")
111    .build());
112                    }
113    
114    /// For region ca-central-1 with FIPS disabled and DualStack disabled
115                    #[test]
116                    fn test_8() {
117                        let params = crate::config::endpoint::Params::builder()
118    .region("ca-central-1".to_string())
119    .use_fips(false)
120    .use_dual_stack(false)
121    .build().expect("invalid params");
122                        let resolver = crate::config::endpoint::DefaultResolver::new();
123                        let endpoint = resolver.resolve_endpoint(&params);
124                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.ca-central-1.amazonaws.com");
125                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.ca-central-1.amazonaws.com")
126    .build());
127                    }
128    
129    /// For region eu-central-1 with FIPS disabled and DualStack disabled
130                    #[test]
131                    fn test_9() {
132                        let params = crate::config::endpoint::Params::builder()
133    .region("eu-central-1".to_string())
134    .use_fips(false)
135    .use_dual_stack(false)
136    .build().expect("invalid params");
137                        let resolver = crate::config::endpoint::DefaultResolver::new();
138                        let endpoint = resolver.resolve_endpoint(&params);
139                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.eu-central-1.amazonaws.com");
140                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.eu-central-1.amazonaws.com")
141    .build());
142                    }
143    
144    /// For region eu-north-1 with FIPS disabled and DualStack disabled
145                    #[test]
146                    fn test_10() {
147                        let params = crate::config::endpoint::Params::builder()
148    .region("eu-north-1".to_string())
149    .use_fips(false)
150    .use_dual_stack(false)
151    .build().expect("invalid params");
152                        let resolver = crate::config::endpoint::DefaultResolver::new();
153                        let endpoint = resolver.resolve_endpoint(&params);
154                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.eu-north-1.amazonaws.com");
155                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.eu-north-1.amazonaws.com")
156    .build());
157                    }
158    
159    /// For region eu-south-1 with FIPS disabled and DualStack disabled
160                    #[test]
161                    fn test_11() {
162                        let params = crate::config::endpoint::Params::builder()
163    .region("eu-south-1".to_string())
164    .use_fips(false)
165    .use_dual_stack(false)
166    .build().expect("invalid params");
167                        let resolver = crate::config::endpoint::DefaultResolver::new();
168                        let endpoint = resolver.resolve_endpoint(&params);
169                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.eu-south-1.amazonaws.com");
170                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.eu-south-1.amazonaws.com")
171    .build());
172                    }
173    
174    /// For region eu-west-1 with FIPS disabled and DualStack disabled
175                    #[test]
176                    fn test_12() {
177                        let params = crate::config::endpoint::Params::builder()
178    .region("eu-west-1".to_string())
179    .use_fips(false)
180    .use_dual_stack(false)
181    .build().expect("invalid params");
182                        let resolver = crate::config::endpoint::DefaultResolver::new();
183                        let endpoint = resolver.resolve_endpoint(&params);
184                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.eu-west-1.amazonaws.com");
185                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.eu-west-1.amazonaws.com")
186    .build());
187                    }
188    
189    /// For region eu-west-2 with FIPS disabled and DualStack disabled
190                    #[test]
191                    fn test_13() {
192                        let params = crate::config::endpoint::Params::builder()
193    .region("eu-west-2".to_string())
194    .use_fips(false)
195    .use_dual_stack(false)
196    .build().expect("invalid params");
197                        let resolver = crate::config::endpoint::DefaultResolver::new();
198                        let endpoint = resolver.resolve_endpoint(&params);
199                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.eu-west-2.amazonaws.com");
200                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.eu-west-2.amazonaws.com")
201    .build());
202                    }
203    
204    /// For region eu-west-3 with FIPS disabled and DualStack disabled
205                    #[test]
206                    fn test_14() {
207                        let params = crate::config::endpoint::Params::builder()
208    .region("eu-west-3".to_string())
209    .use_fips(false)
210    .use_dual_stack(false)
211    .build().expect("invalid params");
212                        let resolver = crate::config::endpoint::DefaultResolver::new();
213                        let endpoint = resolver.resolve_endpoint(&params);
214                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.eu-west-3.amazonaws.com");
215                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.eu-west-3.amazonaws.com")
216    .build());
217                    }
218    
219    /// For region me-south-1 with FIPS disabled and DualStack disabled
220                    #[test]
221                    fn test_15() {
222                        let params = crate::config::endpoint::Params::builder()
223    .region("me-south-1".to_string())
224    .use_fips(false)
225    .use_dual_stack(false)
226    .build().expect("invalid params");
227                        let resolver = crate::config::endpoint::DefaultResolver::new();
228                        let endpoint = resolver.resolve_endpoint(&params);
229                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.me-south-1.amazonaws.com");
230                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.me-south-1.amazonaws.com")
231    .build());
232                    }
233    
234    /// For region sa-east-1 with FIPS disabled and DualStack disabled
235                    #[test]
236                    fn test_16() {
237                        let params = crate::config::endpoint::Params::builder()
238    .region("sa-east-1".to_string())
239    .use_fips(false)
240    .use_dual_stack(false)
241    .build().expect("invalid params");
242                        let resolver = crate::config::endpoint::DefaultResolver::new();
243                        let endpoint = resolver.resolve_endpoint(&params);
244                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.sa-east-1.amazonaws.com");
245                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.sa-east-1.amazonaws.com")
246    .build());
247                    }
248    
249    /// For region us-east-1 with FIPS disabled and DualStack disabled
250                    #[test]
251                    fn test_17() {
252                        let params = crate::config::endpoint::Params::builder()
253    .region("us-east-1".to_string())
254    .use_fips(false)
255    .use_dual_stack(false)
256    .build().expect("invalid params");
257                        let resolver = crate::config::endpoint::DefaultResolver::new();
258                        let endpoint = resolver.resolve_endpoint(&params);
259                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.us-east-1.amazonaws.com");
260                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.us-east-1.amazonaws.com")
261    .build());
262                    }
263    
264    /// For region us-east-2 with FIPS disabled and DualStack disabled
265                    #[test]
266                    fn test_18() {
267                        let params = crate::config::endpoint::Params::builder()
268    .region("us-east-2".to_string())
269    .use_fips(false)
270    .use_dual_stack(false)
271    .build().expect("invalid params");
272                        let resolver = crate::config::endpoint::DefaultResolver::new();
273                        let endpoint = resolver.resolve_endpoint(&params);
274                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.us-east-2.amazonaws.com");
275                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.us-east-2.amazonaws.com")
276    .build());
277                    }
278    
279    /// For region us-west-2 with FIPS disabled and DualStack disabled
280                    #[test]
281                    fn test_19() {
282                        let params = crate::config::endpoint::Params::builder()
283    .region("us-west-2".to_string())
284    .use_fips(false)
285    .use_dual_stack(false)
286    .build().expect("invalid params");
287                        let resolver = crate::config::endpoint::DefaultResolver::new();
288                        let endpoint = resolver.resolve_endpoint(&params);
289                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.us-west-2.amazonaws.com");
290                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.us-west-2.amazonaws.com")
291    .build());
292                    }
293    
294    /// For region us-east-1 with FIPS enabled and DualStack enabled
295                    #[test]
296                    fn test_20() {
297                        let params = crate::config::endpoint::Params::builder()
298    .region("us-east-1".to_string())
299    .use_fips(true)
300    .use_dual_stack(true)
301    .build().expect("invalid params");
302                        let resolver = crate::config::endpoint::DefaultResolver::new();
303                        let endpoint = resolver.resolve_endpoint(&params);
304                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc-fips.us-east-1.api.aws");
305                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc-fips.us-east-1.api.aws")
306    .build());
307                    }
308    
309    /// For region us-east-1 with FIPS enabled and DualStack disabled
310                    #[test]
311                    fn test_21() {
312                        let params = crate::config::endpoint::Params::builder()
313    .region("us-east-1".to_string())
314    .use_fips(true)
315    .use_dual_stack(false)
316    .build().expect("invalid params");
317                        let resolver = crate::config::endpoint::DefaultResolver::new();
318                        let endpoint = resolver.resolve_endpoint(&params);
319                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc-fips.us-east-1.amazonaws.com");
320                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc-fips.us-east-1.amazonaws.com")
321    .build());
322                    }
323    
324    /// For region us-east-1 with FIPS disabled and DualStack enabled
325                    #[test]
326                    fn test_22() {
327                        let params = crate::config::endpoint::Params::builder()
328    .region("us-east-1".to_string())
329    .use_fips(false)
330    .use_dual_stack(true)
331    .build().expect("invalid params");
332                        let resolver = crate::config::endpoint::DefaultResolver::new();
333                        let endpoint = resolver.resolve_endpoint(&params);
334                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.us-east-1.api.aws");
335                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.us-east-1.api.aws")
336    .build());
337                    }
338    
339    /// For region cn-north-1 with FIPS enabled and DualStack enabled
340                    #[test]
341                    fn test_23() {
342                        let params = crate::config::endpoint::Params::builder()
343    .region("cn-north-1".to_string())
344    .use_fips(true)
345    .use_dual_stack(true)
346    .build().expect("invalid params");
347                        let resolver = crate::config::endpoint::DefaultResolver::new();
348                        let endpoint = resolver.resolve_endpoint(&params);
349                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc-fips.cn-north-1.api.amazonwebservices.com.cn");
350                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc-fips.cn-north-1.api.amazonwebservices.com.cn")
351    .build());
352                    }
353    
354    /// For region cn-north-1 with FIPS enabled and DualStack disabled
355                    #[test]
356                    fn test_24() {
357                        let params = crate::config::endpoint::Params::builder()
358    .region("cn-north-1".to_string())
359    .use_fips(true)
360    .use_dual_stack(false)
361    .build().expect("invalid params");
362                        let resolver = crate::config::endpoint::DefaultResolver::new();
363                        let endpoint = resolver.resolve_endpoint(&params);
364                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc-fips.cn-north-1.amazonaws.com.cn");
365                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc-fips.cn-north-1.amazonaws.com.cn")
366    .build());
367                    }
368    
369    /// For region cn-north-1 with FIPS disabled and DualStack enabled
370                    #[test]
371                    fn test_25() {
372                        let params = crate::config::endpoint::Params::builder()
373    .region("cn-north-1".to_string())
374    .use_fips(false)
375    .use_dual_stack(true)
376    .build().expect("invalid params");
377                        let resolver = crate::config::endpoint::DefaultResolver::new();
378                        let endpoint = resolver.resolve_endpoint(&params);
379                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.cn-north-1.api.amazonwebservices.com.cn");
380                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.cn-north-1.api.amazonwebservices.com.cn")
381    .build());
382                    }
383    
384    /// For region cn-north-1 with FIPS disabled and DualStack disabled
385                    #[test]
386                    fn test_26() {
387                        let params = crate::config::endpoint::Params::builder()
388    .region("cn-north-1".to_string())
389    .use_fips(false)
390    .use_dual_stack(false)
391    .build().expect("invalid params");
392                        let resolver = crate::config::endpoint::DefaultResolver::new();
393                        let endpoint = resolver.resolve_endpoint(&params);
394                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.cn-north-1.amazonaws.com.cn");
395                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.cn-north-1.amazonaws.com.cn")
396    .build());
397                    }
398    
399    /// For region us-gov-east-1 with FIPS disabled and DualStack disabled
400                    #[test]
401                    fn test_27() {
402                        let params = crate::config::endpoint::Params::builder()
403    .region("us-gov-east-1".to_string())
404    .use_fips(false)
405    .use_dual_stack(false)
406    .build().expect("invalid params");
407                        let resolver = crate::config::endpoint::DefaultResolver::new();
408                        let endpoint = resolver.resolve_endpoint(&params);
409                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.us-gov-east-1.amazonaws.com");
410                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.us-gov-east-1.amazonaws.com")
411    .build());
412                    }
413    
414    /// For region us-gov-west-1 with FIPS disabled and DualStack disabled
415                    #[test]
416                    fn test_28() {
417                        let params = crate::config::endpoint::Params::builder()
418    .region("us-gov-west-1".to_string())
419    .use_fips(false)
420    .use_dual_stack(false)
421    .build().expect("invalid params");
422                        let resolver = crate::config::endpoint::DefaultResolver::new();
423                        let endpoint = resolver.resolve_endpoint(&params);
424                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.us-gov-west-1.amazonaws.com");
425                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.us-gov-west-1.amazonaws.com")
426    .build());
427                    }
428    
429    /// For region us-gov-east-1 with FIPS enabled and DualStack enabled
430                    #[test]
431                    fn test_29() {
432                        let params = crate::config::endpoint::Params::builder()
433    .region("us-gov-east-1".to_string())
434    .use_fips(true)
435    .use_dual_stack(true)
436    .build().expect("invalid params");
437                        let resolver = crate::config::endpoint::DefaultResolver::new();
438                        let endpoint = resolver.resolve_endpoint(&params);
439                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc-fips.us-gov-east-1.api.aws");
440                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc-fips.us-gov-east-1.api.aws")
441    .build());
442                    }
443    
444    /// For region us-gov-east-1 with FIPS enabled and DualStack disabled
445                    #[test]
446                    fn test_30() {
447                        let params = crate::config::endpoint::Params::builder()
448    .region("us-gov-east-1".to_string())
449    .use_fips(true)
450    .use_dual_stack(false)
451    .build().expect("invalid params");
452                        let resolver = crate::config::endpoint::DefaultResolver::new();
453                        let endpoint = resolver.resolve_endpoint(&params);
454                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.us-gov-east-1.amazonaws.com");
455                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.us-gov-east-1.amazonaws.com")
456    .build());
457                    }
458    
459    /// For region us-gov-east-1 with FIPS disabled and DualStack enabled
460                    #[test]
461                    fn test_31() {
462                        let params = crate::config::endpoint::Params::builder()
463    .region("us-gov-east-1".to_string())
464    .use_fips(false)
465    .use_dual_stack(true)
466    .build().expect("invalid params");
467                        let resolver = crate::config::endpoint::DefaultResolver::new();
468                        let endpoint = resolver.resolve_endpoint(&params);
469                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.us-gov-east-1.api.aws");
470                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.us-gov-east-1.api.aws")
471    .build());
472                    }
473    
474    /// For region us-iso-east-1 with FIPS enabled and DualStack enabled
475                    #[test]
476                    fn test_32() {
477                        let params = crate::config::endpoint::Params::builder()
478    .region("us-iso-east-1".to_string())
479    .use_fips(true)
480    .use_dual_stack(true)
481    .build().expect("invalid params");
482                        let resolver = crate::config::endpoint::DefaultResolver::new();
483                        let endpoint = resolver.resolve_endpoint(&params);
484                        let error = endpoint.expect_err("expected error: FIPS and DualStack are enabled, but this partition does not support one or both [For region us-iso-east-1 with FIPS enabled and DualStack enabled]");
485                                    assert_eq!(format!("{}", error), "FIPS and DualStack are enabled, but this partition does not support one or both")
486                    }
487    
488    /// For region us-iso-east-1 with FIPS enabled and DualStack disabled
489                    #[test]
490                    fn test_33() {
491                        let params = crate::config::endpoint::Params::builder()
492    .region("us-iso-east-1".to_string())
493    .use_fips(true)
494    .use_dual_stack(false)
495    .build().expect("invalid params");
496                        let resolver = crate::config::endpoint::DefaultResolver::new();
497                        let endpoint = resolver.resolve_endpoint(&params);
498                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc-fips.us-iso-east-1.c2s.ic.gov");
499                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc-fips.us-iso-east-1.c2s.ic.gov")
500    .build());
501                    }
502    
503    /// For region us-iso-east-1 with FIPS disabled and DualStack enabled
504                    #[test]
505                    fn test_34() {
506                        let params = crate::config::endpoint::Params::builder()
507    .region("us-iso-east-1".to_string())
508    .use_fips(false)
509    .use_dual_stack(true)
510    .build().expect("invalid params");
511                        let resolver = crate::config::endpoint::DefaultResolver::new();
512                        let endpoint = resolver.resolve_endpoint(&params);
513                        let error = endpoint.expect_err("expected error: DualStack is enabled but this partition does not support DualStack [For region us-iso-east-1 with FIPS disabled and DualStack enabled]");
514                                    assert_eq!(format!("{}", error), "DualStack is enabled but this partition does not support DualStack")
515                    }
516    
517    /// For region us-iso-east-1 with FIPS disabled and DualStack disabled
518                    #[test]
519                    fn test_35() {
520                        let params = crate::config::endpoint::Params::builder()
521    .region("us-iso-east-1".to_string())
522    .use_fips(false)
523    .use_dual_stack(false)
524    .build().expect("invalid params");
525                        let resolver = crate::config::endpoint::DefaultResolver::new();
526                        let endpoint = resolver.resolve_endpoint(&params);
527                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.us-iso-east-1.c2s.ic.gov");
528                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.us-iso-east-1.c2s.ic.gov")
529    .build());
530                    }
531    
532    /// For region us-isob-east-1 with FIPS enabled and DualStack enabled
533                    #[test]
534                    fn test_36() {
535                        let params = crate::config::endpoint::Params::builder()
536    .region("us-isob-east-1".to_string())
537    .use_fips(true)
538    .use_dual_stack(true)
539    .build().expect("invalid params");
540                        let resolver = crate::config::endpoint::DefaultResolver::new();
541                        let endpoint = resolver.resolve_endpoint(&params);
542                        let error = endpoint.expect_err("expected error: FIPS and DualStack are enabled, but this partition does not support one or both [For region us-isob-east-1 with FIPS enabled and DualStack enabled]");
543                                    assert_eq!(format!("{}", error), "FIPS and DualStack are enabled, but this partition does not support one or both")
544                    }
545    
546    /// For region us-isob-east-1 with FIPS enabled and DualStack disabled
547                    #[test]
548                    fn test_37() {
549                        let params = crate::config::endpoint::Params::builder()
550    .region("us-isob-east-1".to_string())
551    .use_fips(true)
552    .use_dual_stack(false)
553    .build().expect("invalid params");
554                        let resolver = crate::config::endpoint::DefaultResolver::new();
555                        let endpoint = resolver.resolve_endpoint(&params);
556                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc-fips.us-isob-east-1.sc2s.sgov.gov");
557                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc-fips.us-isob-east-1.sc2s.sgov.gov")
558    .build());
559                    }
560    
561    /// For region us-isob-east-1 with FIPS disabled and DualStack enabled
562                    #[test]
563                    fn test_38() {
564                        let params = crate::config::endpoint::Params::builder()
565    .region("us-isob-east-1".to_string())
566    .use_fips(false)
567    .use_dual_stack(true)
568    .build().expect("invalid params");
569                        let resolver = crate::config::endpoint::DefaultResolver::new();
570                        let endpoint = resolver.resolve_endpoint(&params);
571                        let error = endpoint.expect_err("expected error: DualStack is enabled but this partition does not support DualStack [For region us-isob-east-1 with FIPS disabled and DualStack enabled]");
572                                    assert_eq!(format!("{}", error), "DualStack is enabled but this partition does not support DualStack")
573                    }
574    
575    /// For region us-isob-east-1 with FIPS disabled and DualStack disabled
576                    #[test]
577                    fn test_39() {
578                        let params = crate::config::endpoint::Params::builder()
579    .region("us-isob-east-1".to_string())
580    .use_fips(false)
581    .use_dual_stack(false)
582    .build().expect("invalid params");
583                        let resolver = crate::config::endpoint::DefaultResolver::new();
584                        let endpoint = resolver.resolve_endpoint(&params);
585                        let endpoint = endpoint.expect("Expected valid endpoint: https://oidc.us-isob-east-1.sc2s.sgov.gov");
586                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://oidc.us-isob-east-1.sc2s.sgov.gov")
587    .build());
588                    }
589    
590    /// For custom endpoint with region set and fips disabled and dualstack disabled
591                    #[test]
592                    fn test_40() {
593                        let params = crate::config::endpoint::Params::builder()
594    .region("us-east-1".to_string())
595    .use_fips(false)
596    .use_dual_stack(false)
597    .endpoint("https://example.com".to_string())
598    .build().expect("invalid params");
599                        let resolver = crate::config::endpoint::DefaultResolver::new();
600                        let endpoint = resolver.resolve_endpoint(&params);
601                        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
602                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com")
603    .build());
604                    }
605    
606    /// For custom endpoint with region not set and fips disabled and dualstack disabled
607                    #[test]
608                    fn test_41() {
609                        let params = crate::config::endpoint::Params::builder()
610    .use_fips(false)
611    .use_dual_stack(false)
612    .endpoint("https://example.com".to_string())
613    .build().expect("invalid params");
614                        let resolver = crate::config::endpoint::DefaultResolver::new();
615                        let endpoint = resolver.resolve_endpoint(&params);
616                        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
617                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com")
618    .build());
619                    }
620    
621    /// For custom endpoint with fips enabled and dualstack disabled
622                    #[test]
623                    fn test_42() {
624                        let params = crate::config::endpoint::Params::builder()
625    .region("us-east-1".to_string())
626    .use_fips(true)
627    .use_dual_stack(false)
628    .endpoint("https://example.com".to_string())
629    .build().expect("invalid params");
630                        let resolver = crate::config::endpoint::DefaultResolver::new();
631                        let endpoint = resolver.resolve_endpoint(&params);
632                        let error = endpoint.expect_err("expected error: Invalid Configuration: FIPS and custom endpoint are not supported [For custom endpoint with fips enabled and dualstack disabled]");
633                                    assert_eq!(format!("{}", error), "Invalid Configuration: FIPS and custom endpoint are not supported")
634                    }
635    
636    /// For custom endpoint with fips disabled and dualstack enabled
637                    #[test]
638                    fn test_43() {
639                        let params = crate::config::endpoint::Params::builder()
640    .region("us-east-1".to_string())
641    .use_fips(false)
642    .use_dual_stack(true)
643    .endpoint("https://example.com".to_string())
644    .build().expect("invalid params");
645                        let resolver = crate::config::endpoint::DefaultResolver::new();
646                        let endpoint = resolver.resolve_endpoint(&params);
647                        let error = endpoint.expect_err("expected error: Invalid Configuration: Dualstack and custom endpoint are not supported [For custom endpoint with fips disabled and dualstack enabled]");
648                                    assert_eq!(format!("{}", error), "Invalid Configuration: Dualstack and custom endpoint are not supported")
649                    }
650    
651    /// Missing region
652                    #[test]
653                    fn test_44() {
654                        let params = crate::config::endpoint::Params::builder()
655    .build().expect("invalid params");
656                        let resolver = crate::config::endpoint::DefaultResolver::new();
657                        let endpoint = resolver.resolve_endpoint(&params);
658                        let error = endpoint.expect_err("expected error: Invalid Configuration: Missing Region [Missing region]");
659                                    assert_eq!(format!("{}", error), "Invalid Configuration: Missing Region")
660                    }
661    
662    
663}
664
665/// Endpoint resolver trait specific to AWS SSO OIDC
666            pub trait ResolveEndpoint: ::std::marker::Send + ::std::marker::Sync + ::std::fmt::Debug {
667                /// Resolve an endpoint with the given parameters
668                fn resolve_endpoint<'a>(&'a self, params: &'a crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a>;
669
670                /// Convert this service-specific resolver into a `SharedEndpointResolver`
671                ///
672                /// The resulting resolver will downcast `EndpointResolverParams` into `crate::config::endpoint::Params`.
673                fn into_shared_resolver(self) -> ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver
674                where
675                    Self: Sized + 'static,
676                {
677                    ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver::new(DowncastParams(self))
678                }
679            }
680
681            #[derive(Debug)]
682            struct DowncastParams<T>(T);
683            impl<T> ::aws_smithy_runtime_api::client::endpoint::ResolveEndpoint for DowncastParams<T>
684            where
685                T: ResolveEndpoint,
686            {
687                fn resolve_endpoint<'a>(&'a self, params: &'a ::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a> {
688                    let ep = match params.get::<crate::config::endpoint::Params>() {
689                        Some(params) => self.0.resolve_endpoint(params),
690                        None => ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(Err("params of expected type was not present".into())),
691                    };
692                    ep
693                }
694                
695            }
696
697/// The default endpoint resolver
698                #[derive(Debug, Default)]
699                pub struct DefaultResolver {
700                    partition_resolver: crate::endpoint_lib::partition::PartitionResolver
701                }
702
703                impl DefaultResolver {
704                    /// Create a new endpoint resolver with default settings
705                    pub fn new() -> Self {
706                        Self { partition_resolver: crate::endpoint_lib::DEFAULT_PARTITION_RESOLVER.clone() }
707                    }
708
709                    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::std::result::Result<::aws_smithy_types::endpoint::Endpoint, ::aws_smithy_runtime_api::box_error::BoxError> {
710                        let mut diagnostic_collector = crate::endpoint_lib::diagnostic::DiagnosticCollector::new();
711                        Ok(crate::config::endpoint::internals::resolve_endpoint(params, &mut diagnostic_collector, &self.partition_resolver)
712                            .map_err(|err|err.with_source(diagnostic_collector.take_last_error()))?)
713                    }
714                }
715
716                impl crate::config::endpoint::ResolveEndpoint for DefaultResolver {
717                    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture {
718                        ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(self.resolve_endpoint(params))
719                    }
720                }
721
722#[non_exhaustive]
723#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
724/// Configuration parameters for resolving the correct endpoint
725pub struct Params {
726    /// The AWS region used to dispatch the request.
727    pub(crate) region: ::std::option::Option<::std::string::String>,
728    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
729    pub(crate) use_dual_stack: bool,
730    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
731    pub(crate) use_fips: bool,
732    /// Override the endpoint used to send this request
733    pub(crate) endpoint: ::std::option::Option<::std::string::String>,
734}
735impl Params {
736    /// Create a builder for [`Params`]
737                    pub fn builder() -> crate::config::endpoint::ParamsBuilder {
738                        crate::config::endpoint::ParamsBuilder::default()
739                    }
740    /// The AWS region used to dispatch the request.
741    pub fn region(&self) -> ::std::option::Option<&str> {
742                            self.region.as_deref()
743                        }
744    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
745    pub fn use_dual_stack(&self) -> ::std::option::Option<bool> {
746                            Some(self.use_dual_stack)
747                        }
748    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
749    pub fn use_fips(&self) -> ::std::option::Option<bool> {
750                            Some(self.use_fips)
751                        }
752    /// Override the endpoint used to send this request
753    pub fn endpoint(&self) -> ::std::option::Option<&str> {
754                            self.endpoint.as_deref()
755                        }
756}
757
758/// Builder for [`Params`]
759#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
760pub struct ParamsBuilder {
761    region: ::std::option::Option<::std::string::String>,
762    use_dual_stack: ::std::option::Option<bool>,
763    use_fips: ::std::option::Option<bool>,
764    endpoint: ::std::option::Option<::std::string::String>,
765}
766impl ParamsBuilder {
767    /// Consume this builder, creating [`Params`].
768    pub fn build(self) -> ::std::result::Result<crate::config::endpoint::Params, crate::config::endpoint::InvalidParams> {
769        Ok(#[allow(clippy::unnecessary_lazy_evaluations)]
770        crate::config::endpoint::Params {
771            region: self.region
772            ,
773            use_dual_stack: self.use_dual_stack
774            .or_else(||Some(false))
775            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_dual_stack"))?
776            ,
777            use_fips: self.use_fips
778            .or_else(||Some(false))
779            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_fips"))?
780            ,
781            endpoint: self.endpoint
782            ,
783        })
784    }
785    /// Sets the value for region 
786    /// 
787    /// The AWS region used to dispatch the request.
788                        pub fn region(mut self, value: impl Into<::std::string::String>) -> Self {
789                            self.region = Some(value.into());
790                            self
791                        }
792    
793                        /// Sets the value for region 
794    /// 
795    /// The AWS region used to dispatch the request.
796                        pub fn set_region(mut self, param: Option<::std::string::String>) -> Self {
797                            self.region = param;
798                            self
799                        }
800    /// Sets the value for use_dual_stack 
801    /// 
802    /// When unset, this parameter has a default value of `false`.
803    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
804                        pub fn use_dual_stack(mut self, value: impl Into<bool>) -> Self {
805                            self.use_dual_stack = Some(value.into());
806                            self
807                        }
808    
809                        /// Sets the value for use_dual_stack 
810    /// 
811    /// When unset, this parameter has a default value of `false`.
812    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
813                        pub fn set_use_dual_stack(mut self, param: Option<bool>) -> Self {
814                            self.use_dual_stack = param;
815                            self
816                        }
817    /// Sets the value for use_fips 
818    /// 
819    /// When unset, this parameter has a default value of `false`.
820    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
821                        pub fn use_fips(mut self, value: impl Into<bool>) -> Self {
822                            self.use_fips = Some(value.into());
823                            self
824                        }
825    
826                        /// Sets the value for use_fips 
827    /// 
828    /// When unset, this parameter has a default value of `false`.
829    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
830                        pub fn set_use_fips(mut self, param: Option<bool>) -> Self {
831                            self.use_fips = param;
832                            self
833                        }
834    /// Sets the value for endpoint 
835    /// 
836    /// Override the endpoint used to send this request
837                        pub fn endpoint(mut self, value: impl Into<::std::string::String>) -> Self {
838                            self.endpoint = Some(value.into());
839                            self
840                        }
841    
842                        /// Sets the value for endpoint 
843    /// 
844    /// Override the endpoint used to send this request
845                        pub fn set_endpoint(mut self, param: Option<::std::string::String>) -> Self {
846                            self.endpoint = param;
847                            self
848                        }
849}
850
851/// An error that occurred during endpoint resolution
852                #[derive(Debug)]
853                pub struct InvalidParams {
854                    field: std::borrow::Cow<'static, str>
855                }
856
857                impl InvalidParams {
858                    #[allow(dead_code)]
859                    fn missing(field: &'static str) -> Self {
860                        Self { field: field.into() }
861                    }
862                }
863
864                impl std::fmt::Display for InvalidParams {
865                    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
866                        write!(f, "a required field was missing: `{}`", self.field)
867                    }
868                }
869
870                impl std::error::Error for InvalidParams { }
871
872mod internals;
873