aws_sdk_sts/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/// Interceptor that tracks endpoint override business metric.
7                #[derive(Debug, Default)]
8                pub(crate) struct EndpointOverrideFeatureTrackerInterceptor;
9
10                #[::aws_smithy_runtime_api::client::interceptors::dyn_dispatch_hint]
11                impl ::aws_smithy_runtime_api::client::interceptors::Intercept for EndpointOverrideFeatureTrackerInterceptor {
12                    fn name(&self) -> &'static str {
13                        "EndpointOverrideFeatureTrackerInterceptor"
14                    }
15
16                    fn read_before_execution(
17                        &self,
18                        _context: &::aws_smithy_runtime_api::client::interceptors::context::BeforeSerializationInterceptorContextRef<'_>,
19                        cfg: &mut ::aws_smithy_types::config_bag::ConfigBag,
20                    ) -> ::std::result::Result<(), ::aws_smithy_runtime_api::box_error::BoxError> {
21                        if cfg.load::<::aws_types::endpoint_config::EndpointUrl>().is_some() {
22                            cfg.interceptor_state()
23                                .store_append(::aws_runtime::sdk_feature::AwsSdkFeature::EndpointOverride);
24                        }
25                        ::std::result::Result::Ok(())
26                    }
27                }
28
29#[cfg(test)]
30mod test {
31    
32    /// For region af-south-1 with FIPS disabled and DualStack disabled
33                    #[test]
34                    fn test_1() {
35                        let params = crate::config::endpoint::Params::builder()
36    .region("af-south-1".to_string())
37    .use_fips(false)
38    .use_dual_stack(false)
39    .build().expect("invalid params");
40                        let resolver = crate::config::endpoint::DefaultResolver::new();
41                        let endpoint = resolver.resolve_endpoint(&params);
42                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.af-south-1.amazonaws.com");
43                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.af-south-1.amazonaws.com")
44    .build());
45                    }
46    
47    /// For region ap-east-1 with FIPS disabled and DualStack disabled
48                    #[test]
49                    fn test_2() {
50                        let params = crate::config::endpoint::Params::builder()
51    .region("ap-east-1".to_string())
52    .use_fips(false)
53    .use_dual_stack(false)
54    .build().expect("invalid params");
55                        let resolver = crate::config::endpoint::DefaultResolver::new();
56                        let endpoint = resolver.resolve_endpoint(&params);
57                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-east-1.amazonaws.com");
58                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.ap-east-1.amazonaws.com")
59    .build());
60                    }
61    
62    /// For region ap-northeast-1 with FIPS disabled and DualStack disabled
63                    #[test]
64                    fn test_3() {
65                        let params = crate::config::endpoint::Params::builder()
66    .region("ap-northeast-1".to_string())
67    .use_fips(false)
68    .use_dual_stack(false)
69    .build().expect("invalid params");
70                        let resolver = crate::config::endpoint::DefaultResolver::new();
71                        let endpoint = resolver.resolve_endpoint(&params);
72                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-northeast-1.amazonaws.com");
73                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.ap-northeast-1.amazonaws.com")
74    .build());
75                    }
76    
77    /// For region ap-northeast-2 with FIPS disabled and DualStack disabled
78                    #[test]
79                    fn test_4() {
80                        let params = crate::config::endpoint::Params::builder()
81    .region("ap-northeast-2".to_string())
82    .use_fips(false)
83    .use_dual_stack(false)
84    .build().expect("invalid params");
85                        let resolver = crate::config::endpoint::DefaultResolver::new();
86                        let endpoint = resolver.resolve_endpoint(&params);
87                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-northeast-2.amazonaws.com");
88                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.ap-northeast-2.amazonaws.com")
89    .build());
90                    }
91    
92    /// For region ap-northeast-3 with FIPS disabled and DualStack disabled
93                    #[test]
94                    fn test_5() {
95                        let params = crate::config::endpoint::Params::builder()
96    .region("ap-northeast-3".to_string())
97    .use_fips(false)
98    .use_dual_stack(false)
99    .build().expect("invalid params");
100                        let resolver = crate::config::endpoint::DefaultResolver::new();
101                        let endpoint = resolver.resolve_endpoint(&params);
102                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-northeast-3.amazonaws.com");
103                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.ap-northeast-3.amazonaws.com")
104    .build());
105                    }
106    
107    /// For region ap-south-1 with FIPS disabled and DualStack disabled
108                    #[test]
109                    fn test_6() {
110                        let params = crate::config::endpoint::Params::builder()
111    .region("ap-south-1".to_string())
112    .use_fips(false)
113    .use_dual_stack(false)
114    .build().expect("invalid params");
115                        let resolver = crate::config::endpoint::DefaultResolver::new();
116                        let endpoint = resolver.resolve_endpoint(&params);
117                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-south-1.amazonaws.com");
118                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.ap-south-1.amazonaws.com")
119    .build());
120                    }
121    
122    /// For region ap-southeast-1 with FIPS disabled and DualStack disabled
123                    #[test]
124                    fn test_7() {
125                        let params = crate::config::endpoint::Params::builder()
126    .region("ap-southeast-1".to_string())
127    .use_fips(false)
128    .use_dual_stack(false)
129    .build().expect("invalid params");
130                        let resolver = crate::config::endpoint::DefaultResolver::new();
131                        let endpoint = resolver.resolve_endpoint(&params);
132                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-southeast-1.amazonaws.com");
133                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.ap-southeast-1.amazonaws.com")
134    .build());
135                    }
136    
137    /// For region ap-southeast-2 with FIPS disabled and DualStack disabled
138                    #[test]
139                    fn test_8() {
140                        let params = crate::config::endpoint::Params::builder()
141    .region("ap-southeast-2".to_string())
142    .use_fips(false)
143    .use_dual_stack(false)
144    .build().expect("invalid params");
145                        let resolver = crate::config::endpoint::DefaultResolver::new();
146                        let endpoint = resolver.resolve_endpoint(&params);
147                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-southeast-2.amazonaws.com");
148                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.ap-southeast-2.amazonaws.com")
149    .build());
150                    }
151    
152    /// For region ap-southeast-3 with FIPS disabled and DualStack disabled
153                    #[test]
154                    fn test_9() {
155                        let params = crate::config::endpoint::Params::builder()
156    .region("ap-southeast-3".to_string())
157    .use_fips(false)
158    .use_dual_stack(false)
159    .build().expect("invalid params");
160                        let resolver = crate::config::endpoint::DefaultResolver::new();
161                        let endpoint = resolver.resolve_endpoint(&params);
162                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-southeast-3.amazonaws.com");
163                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.ap-southeast-3.amazonaws.com")
164    .build());
165                    }
166    
167    /// For region aws-global with FIPS disabled and DualStack disabled
168                    #[test]
169                    fn test_10() {
170                        let params = crate::config::endpoint::Params::builder()
171    .region("aws-global".to_string())
172    .use_fips(false)
173    .use_dual_stack(false)
174    .build().expect("invalid params");
175                        let resolver = crate::config::endpoint::DefaultResolver::new();
176                        let endpoint = resolver.resolve_endpoint(&params);
177                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
178                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
179    .property("authSchemes", vec![ {
180        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
181        out.insert("name".to_string(), "sigv4".to_string().into());
182        out.insert("signingName".to_string(), "sts".to_string().into());
183        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
184        out
185    }.into()])
186    .build());
187                    }
188    
189    /// For region ca-central-1 with FIPS disabled and DualStack disabled
190                    #[test]
191                    fn test_11() {
192                        let params = crate::config::endpoint::Params::builder()
193    .region("ca-central-1".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://sts.ca-central-1.amazonaws.com");
200                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.ca-central-1.amazonaws.com")
201    .build());
202                    }
203    
204    /// For region eu-central-1 with FIPS disabled and DualStack disabled
205                    #[test]
206                    fn test_12() {
207                        let params = crate::config::endpoint::Params::builder()
208    .region("eu-central-1".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://sts.eu-central-1.amazonaws.com");
215                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.eu-central-1.amazonaws.com")
216    .build());
217                    }
218    
219    /// For region eu-north-1 with FIPS disabled and DualStack disabled
220                    #[test]
221                    fn test_13() {
222                        let params = crate::config::endpoint::Params::builder()
223    .region("eu-north-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://sts.eu-north-1.amazonaws.com");
230                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.eu-north-1.amazonaws.com")
231    .build());
232                    }
233    
234    /// For region eu-south-1 with FIPS disabled and DualStack disabled
235                    #[test]
236                    fn test_14() {
237                        let params = crate::config::endpoint::Params::builder()
238    .region("eu-south-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://sts.eu-south-1.amazonaws.com");
245                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.eu-south-1.amazonaws.com")
246    .build());
247                    }
248    
249    /// For region eu-west-1 with FIPS disabled and DualStack disabled
250                    #[test]
251                    fn test_15() {
252                        let params = crate::config::endpoint::Params::builder()
253    .region("eu-west-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://sts.eu-west-1.amazonaws.com");
260                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.eu-west-1.amazonaws.com")
261    .build());
262                    }
263    
264    /// For region eu-west-2 with FIPS disabled and DualStack disabled
265                    #[test]
266                    fn test_16() {
267                        let params = crate::config::endpoint::Params::builder()
268    .region("eu-west-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://sts.eu-west-2.amazonaws.com");
275                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.eu-west-2.amazonaws.com")
276    .build());
277                    }
278    
279    /// For region eu-west-3 with FIPS disabled and DualStack disabled
280                    #[test]
281                    fn test_17() {
282                        let params = crate::config::endpoint::Params::builder()
283    .region("eu-west-3".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://sts.eu-west-3.amazonaws.com");
290                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.eu-west-3.amazonaws.com")
291    .build());
292                    }
293    
294    /// For region me-south-1 with FIPS disabled and DualStack disabled
295                    #[test]
296                    fn test_18() {
297                        let params = crate::config::endpoint::Params::builder()
298    .region("me-south-1".to_string())
299    .use_fips(false)
300    .use_dual_stack(false)
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://sts.me-south-1.amazonaws.com");
305                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.me-south-1.amazonaws.com")
306    .build());
307                    }
308    
309    /// For region sa-east-1 with FIPS disabled and DualStack disabled
310                    #[test]
311                    fn test_19() {
312                        let params = crate::config::endpoint::Params::builder()
313    .region("sa-east-1".to_string())
314    .use_fips(false)
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://sts.sa-east-1.amazonaws.com");
320                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.sa-east-1.amazonaws.com")
321    .build());
322                    }
323    
324    /// For region us-east-1 with FIPS disabled and DualStack disabled
325                    #[test]
326                    fn test_20() {
327                        let params = crate::config::endpoint::Params::builder()
328    .region("us-east-1".to_string())
329    .use_fips(false)
330    .use_dual_stack(false)
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://sts.us-east-1.amazonaws.com");
335                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-east-1.amazonaws.com")
336    .build());
337                    }
338    
339    /// For region us-east-1 with FIPS enabled and DualStack disabled
340                    #[test]
341                    fn test_21() {
342                        let params = crate::config::endpoint::Params::builder()
343    .region("us-east-1".to_string())
344    .use_fips(true)
345    .use_dual_stack(false)
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://sts-fips.us-east-1.amazonaws.com");
350                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts-fips.us-east-1.amazonaws.com")
351    .build());
352                    }
353    
354    /// For region us-east-2 with FIPS disabled and DualStack disabled
355                    #[test]
356                    fn test_22() {
357                        let params = crate::config::endpoint::Params::builder()
358    .region("us-east-2".to_string())
359    .use_fips(false)
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://sts.us-east-2.amazonaws.com");
365                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-east-2.amazonaws.com")
366    .build());
367                    }
368    
369    /// For region us-east-2 with FIPS enabled and DualStack disabled
370                    #[test]
371                    fn test_23() {
372                        let params = crate::config::endpoint::Params::builder()
373    .region("us-east-2".to_string())
374    .use_fips(true)
375    .use_dual_stack(false)
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://sts-fips.us-east-2.amazonaws.com");
380                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts-fips.us-east-2.amazonaws.com")
381    .build());
382                    }
383    
384    /// For region us-west-1 with FIPS disabled and DualStack disabled
385                    #[test]
386                    fn test_24() {
387                        let params = crate::config::endpoint::Params::builder()
388    .region("us-west-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://sts.us-west-1.amazonaws.com");
395                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-west-1.amazonaws.com")
396    .build());
397                    }
398    
399    /// For region us-west-1 with FIPS enabled and DualStack disabled
400                    #[test]
401                    fn test_25() {
402                        let params = crate::config::endpoint::Params::builder()
403    .region("us-west-1".to_string())
404    .use_fips(true)
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://sts-fips.us-west-1.amazonaws.com");
410                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts-fips.us-west-1.amazonaws.com")
411    .build());
412                    }
413    
414    /// For region us-west-2 with FIPS disabled and DualStack disabled
415                    #[test]
416                    fn test_26() {
417                        let params = crate::config::endpoint::Params::builder()
418    .region("us-west-2".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://sts.us-west-2.amazonaws.com");
425                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-west-2.amazonaws.com")
426    .build());
427                    }
428    
429    /// For region us-west-2 with FIPS enabled and DualStack disabled
430                    #[test]
431                    fn test_27() {
432                        let params = crate::config::endpoint::Params::builder()
433    .region("us-west-2".to_string())
434    .use_fips(true)
435    .use_dual_stack(false)
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://sts-fips.us-west-2.amazonaws.com");
440                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts-fips.us-west-2.amazonaws.com")
441    .build());
442                    }
443    
444    /// For region us-east-1 with FIPS enabled and DualStack enabled
445                    #[test]
446                    fn test_28() {
447                        let params = crate::config::endpoint::Params::builder()
448    .region("us-east-1".to_string())
449    .use_fips(true)
450    .use_dual_stack(true)
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://sts-fips.us-east-1.api.aws");
455                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts-fips.us-east-1.api.aws")
456    .build());
457                    }
458    
459    /// For region us-east-1 with FIPS disabled and DualStack enabled
460                    #[test]
461                    fn test_29() {
462                        let params = crate::config::endpoint::Params::builder()
463    .region("us-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://sts.us-east-1.api.aws");
470                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-east-1.api.aws")
471    .build());
472                    }
473    
474    /// For region cn-north-1 with FIPS disabled and DualStack disabled
475                    #[test]
476                    fn test_30() {
477                        let params = crate::config::endpoint::Params::builder()
478    .region("cn-north-1".to_string())
479    .use_fips(false)
480    .use_dual_stack(false)
481    .build().expect("invalid params");
482                        let resolver = crate::config::endpoint::DefaultResolver::new();
483                        let endpoint = resolver.resolve_endpoint(&params);
484                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.cn-north-1.amazonaws.com.cn");
485                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.cn-north-1.amazonaws.com.cn")
486    .build());
487                    }
488    
489    /// For region cn-northwest-1 with FIPS disabled and DualStack disabled
490                    #[test]
491                    fn test_31() {
492                        let params = crate::config::endpoint::Params::builder()
493    .region("cn-northwest-1".to_string())
494    .use_fips(false)
495    .use_dual_stack(false)
496    .build().expect("invalid params");
497                        let resolver = crate::config::endpoint::DefaultResolver::new();
498                        let endpoint = resolver.resolve_endpoint(&params);
499                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.cn-northwest-1.amazonaws.com.cn");
500                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.cn-northwest-1.amazonaws.com.cn")
501    .build());
502                    }
503    
504    /// For region cn-north-1 with FIPS enabled and DualStack enabled
505                    #[test]
506                    fn test_32() {
507                        let params = crate::config::endpoint::Params::builder()
508    .region("cn-north-1".to_string())
509    .use_fips(true)
510    .use_dual_stack(true)
511    .build().expect("invalid params");
512                        let resolver = crate::config::endpoint::DefaultResolver::new();
513                        let endpoint = resolver.resolve_endpoint(&params);
514                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.cn-north-1.api.amazonwebservices.com.cn");
515                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts-fips.cn-north-1.api.amazonwebservices.com.cn")
516    .build());
517                    }
518    
519    /// For region cn-north-1 with FIPS enabled and DualStack disabled
520                    #[test]
521                    fn test_33() {
522                        let params = crate::config::endpoint::Params::builder()
523    .region("cn-north-1".to_string())
524    .use_fips(true)
525    .use_dual_stack(false)
526    .build().expect("invalid params");
527                        let resolver = crate::config::endpoint::DefaultResolver::new();
528                        let endpoint = resolver.resolve_endpoint(&params);
529                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.cn-north-1.amazonaws.com.cn");
530                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts-fips.cn-north-1.amazonaws.com.cn")
531    .build());
532                    }
533    
534    /// For region cn-north-1 with FIPS disabled and DualStack enabled
535                    #[test]
536                    fn test_34() {
537                        let params = crate::config::endpoint::Params::builder()
538    .region("cn-north-1".to_string())
539    .use_fips(false)
540    .use_dual_stack(true)
541    .build().expect("invalid params");
542                        let resolver = crate::config::endpoint::DefaultResolver::new();
543                        let endpoint = resolver.resolve_endpoint(&params);
544                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.cn-north-1.api.amazonwebservices.com.cn");
545                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.cn-north-1.api.amazonwebservices.com.cn")
546    .build());
547                    }
548    
549    /// For region us-gov-east-1 with FIPS disabled and DualStack disabled
550                    #[test]
551                    fn test_35() {
552                        let params = crate::config::endpoint::Params::builder()
553    .region("us-gov-east-1".to_string())
554    .use_fips(false)
555    .use_dual_stack(false)
556    .build().expect("invalid params");
557                        let resolver = crate::config::endpoint::DefaultResolver::new();
558                        let endpoint = resolver.resolve_endpoint(&params);
559                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-gov-east-1.amazonaws.com");
560                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-gov-east-1.amazonaws.com")
561    .build());
562                    }
563    
564    /// For region us-gov-east-1 with FIPS enabled and DualStack disabled
565                    #[test]
566                    fn test_36() {
567                        let params = crate::config::endpoint::Params::builder()
568    .region("us-gov-east-1".to_string())
569    .use_fips(true)
570    .use_dual_stack(false)
571    .build().expect("invalid params");
572                        let resolver = crate::config::endpoint::DefaultResolver::new();
573                        let endpoint = resolver.resolve_endpoint(&params);
574                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-gov-east-1.amazonaws.com");
575                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-gov-east-1.amazonaws.com")
576    .build());
577                    }
578    
579    /// For region us-gov-west-1 with FIPS disabled and DualStack disabled
580                    #[test]
581                    fn test_37() {
582                        let params = crate::config::endpoint::Params::builder()
583    .region("us-gov-west-1".to_string())
584    .use_fips(false)
585    .use_dual_stack(false)
586    .build().expect("invalid params");
587                        let resolver = crate::config::endpoint::DefaultResolver::new();
588                        let endpoint = resolver.resolve_endpoint(&params);
589                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-gov-west-1.amazonaws.com");
590                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-gov-west-1.amazonaws.com")
591    .build());
592                    }
593    
594    /// For region us-gov-west-1 with FIPS enabled and DualStack disabled
595                    #[test]
596                    fn test_38() {
597                        let params = crate::config::endpoint::Params::builder()
598    .region("us-gov-west-1".to_string())
599    .use_fips(true)
600    .use_dual_stack(false)
601    .build().expect("invalid params");
602                        let resolver = crate::config::endpoint::DefaultResolver::new();
603                        let endpoint = resolver.resolve_endpoint(&params);
604                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-gov-west-1.amazonaws.com");
605                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-gov-west-1.amazonaws.com")
606    .build());
607                    }
608    
609    /// For region us-gov-east-1 with FIPS enabled and DualStack enabled
610                    #[test]
611                    fn test_39() {
612                        let params = crate::config::endpoint::Params::builder()
613    .region("us-gov-east-1".to_string())
614    .use_fips(true)
615    .use_dual_stack(true)
616    .build().expect("invalid params");
617                        let resolver = crate::config::endpoint::DefaultResolver::new();
618                        let endpoint = resolver.resolve_endpoint(&params);
619                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.us-gov-east-1.api.aws");
620                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts-fips.us-gov-east-1.api.aws")
621    .build());
622                    }
623    
624    /// For region us-gov-east-1 with FIPS disabled and DualStack enabled
625                    #[test]
626                    fn test_40() {
627                        let params = crate::config::endpoint::Params::builder()
628    .region("us-gov-east-1".to_string())
629    .use_fips(false)
630    .use_dual_stack(true)
631    .build().expect("invalid params");
632                        let resolver = crate::config::endpoint::DefaultResolver::new();
633                        let endpoint = resolver.resolve_endpoint(&params);
634                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-gov-east-1.api.aws");
635                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-gov-east-1.api.aws")
636    .build());
637                    }
638    
639    /// For region us-iso-east-1 with FIPS disabled and DualStack disabled
640                    #[test]
641                    fn test_41() {
642                        let params = crate::config::endpoint::Params::builder()
643    .region("us-iso-east-1".to_string())
644    .use_fips(false)
645    .use_dual_stack(false)
646    .build().expect("invalid params");
647                        let resolver = crate::config::endpoint::DefaultResolver::new();
648                        let endpoint = resolver.resolve_endpoint(&params);
649                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-iso-east-1.c2s.ic.gov");
650                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-iso-east-1.c2s.ic.gov")
651    .build());
652                    }
653    
654    /// For region us-iso-west-1 with FIPS disabled and DualStack disabled
655                    #[test]
656                    fn test_42() {
657                        let params = crate::config::endpoint::Params::builder()
658    .region("us-iso-west-1".to_string())
659    .use_fips(false)
660    .use_dual_stack(false)
661    .build().expect("invalid params");
662                        let resolver = crate::config::endpoint::DefaultResolver::new();
663                        let endpoint = resolver.resolve_endpoint(&params);
664                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-iso-west-1.c2s.ic.gov");
665                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-iso-west-1.c2s.ic.gov")
666    .build());
667                    }
668    
669    /// For region us-iso-east-1 with FIPS enabled and DualStack disabled
670                    #[test]
671                    fn test_43() {
672                        let params = crate::config::endpoint::Params::builder()
673    .region("us-iso-east-1".to_string())
674    .use_fips(true)
675    .use_dual_stack(false)
676    .build().expect("invalid params");
677                        let resolver = crate::config::endpoint::DefaultResolver::new();
678                        let endpoint = resolver.resolve_endpoint(&params);
679                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.us-iso-east-1.c2s.ic.gov");
680                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts-fips.us-iso-east-1.c2s.ic.gov")
681    .build());
682                    }
683    
684    /// For region us-isob-east-1 with FIPS disabled and DualStack disabled
685                    #[test]
686                    fn test_44() {
687                        let params = crate::config::endpoint::Params::builder()
688    .region("us-isob-east-1".to_string())
689    .use_fips(false)
690    .use_dual_stack(false)
691    .build().expect("invalid params");
692                        let resolver = crate::config::endpoint::DefaultResolver::new();
693                        let endpoint = resolver.resolve_endpoint(&params);
694                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-isob-east-1.sc2s.sgov.gov");
695                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-isob-east-1.sc2s.sgov.gov")
696    .build());
697                    }
698    
699    /// For region us-isob-east-1 with FIPS enabled and DualStack disabled
700                    #[test]
701                    fn test_45() {
702                        let params = crate::config::endpoint::Params::builder()
703    .region("us-isob-east-1".to_string())
704    .use_fips(true)
705    .use_dual_stack(false)
706    .build().expect("invalid params");
707                        let resolver = crate::config::endpoint::DefaultResolver::new();
708                        let endpoint = resolver.resolve_endpoint(&params);
709                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.us-isob-east-1.sc2s.sgov.gov");
710                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts-fips.us-isob-east-1.sc2s.sgov.gov")
711    .build());
712                    }
713    
714    /// For custom endpoint with region set and fips disabled and dualstack disabled
715                    #[test]
716                    fn test_46() {
717                        let params = crate::config::endpoint::Params::builder()
718    .region("us-east-1".to_string())
719    .use_fips(false)
720    .use_dual_stack(false)
721    .endpoint("https://example.com".to_string())
722    .build().expect("invalid params");
723                        let resolver = crate::config::endpoint::DefaultResolver::new();
724                        let endpoint = resolver.resolve_endpoint(&params);
725                        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
726                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com")
727    .build());
728                    }
729    
730    /// For custom endpoint with region not set and fips disabled and dualstack disabled
731                    #[test]
732                    fn test_47() {
733                        let params = crate::config::endpoint::Params::builder()
734    .use_fips(false)
735    .use_dual_stack(false)
736    .endpoint("https://example.com".to_string())
737    .build().expect("invalid params");
738                        let resolver = crate::config::endpoint::DefaultResolver::new();
739                        let endpoint = resolver.resolve_endpoint(&params);
740                        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
741                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com")
742    .build());
743                    }
744    
745    /// For custom endpoint with fips enabled and dualstack disabled
746                    #[test]
747                    fn test_48() {
748                        let params = crate::config::endpoint::Params::builder()
749    .region("us-east-1".to_string())
750    .use_fips(true)
751    .use_dual_stack(false)
752    .endpoint("https://example.com".to_string())
753    .build().expect("invalid params");
754                        let resolver = crate::config::endpoint::DefaultResolver::new();
755                        let endpoint = resolver.resolve_endpoint(&params);
756                        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]");
757                                    assert_eq!(format!("{}", error), "Invalid Configuration: FIPS and custom endpoint are not supported")
758                    }
759    
760    /// For custom endpoint with fips disabled and dualstack enabled
761                    #[test]
762                    fn test_49() {
763                        let params = crate::config::endpoint::Params::builder()
764    .region("us-east-1".to_string())
765    .use_fips(false)
766    .use_dual_stack(true)
767    .endpoint("https://example.com".to_string())
768    .build().expect("invalid params");
769                        let resolver = crate::config::endpoint::DefaultResolver::new();
770                        let endpoint = resolver.resolve_endpoint(&params);
771                        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]");
772                                    assert_eq!(format!("{}", error), "Invalid Configuration: Dualstack and custom endpoint are not supported")
773                    }
774    
775    /// Missing region
776                    #[test]
777                    fn test_50() {
778                        let params = crate::config::endpoint::Params::builder()
779    .build().expect("invalid params");
780                        let resolver = crate::config::endpoint::DefaultResolver::new();
781                        let endpoint = resolver.resolve_endpoint(&params);
782                        let error = endpoint.expect_err("expected error: Invalid Configuration: Missing Region [Missing region]");
783                                    assert_eq!(format!("{}", error), "Invalid Configuration: Missing Region")
784                    }
785    
786    /// UseGlobalEndpoint with legacy region `ap-northeast-1`
787                    #[test]
788                    fn test_51() {
789                        let params = crate::config::endpoint::Params::builder()
790    .region("ap-northeast-1".to_string())
791    .use_fips(false)
792    .use_dual_stack(false)
793    .use_global_endpoint(true)
794    .build().expect("invalid params");
795                        let resolver = crate::config::endpoint::DefaultResolver::new();
796                        let endpoint = resolver.resolve_endpoint(&params);
797                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
798                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
799    .property("authSchemes", vec![ {
800        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
801        out.insert("name".to_string(), "sigv4".to_string().into());
802        out.insert("signingName".to_string(), "sts".to_string().into());
803        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
804        out
805    }.into()])
806    .build());
807                    }
808    
809    /// UseGlobalEndpoint with legacy region `ap-south-1`
810                    #[test]
811                    fn test_52() {
812                        let params = crate::config::endpoint::Params::builder()
813    .region("ap-south-1".to_string())
814    .use_fips(false)
815    .use_dual_stack(false)
816    .use_global_endpoint(true)
817    .build().expect("invalid params");
818                        let resolver = crate::config::endpoint::DefaultResolver::new();
819                        let endpoint = resolver.resolve_endpoint(&params);
820                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
821                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
822    .property("authSchemes", vec![ {
823        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
824        out.insert("name".to_string(), "sigv4".to_string().into());
825        out.insert("signingName".to_string(), "sts".to_string().into());
826        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
827        out
828    }.into()])
829    .build());
830                    }
831    
832    /// UseGlobalEndpoint with legacy region `ap-southeast-1`
833                    #[test]
834                    fn test_53() {
835                        let params = crate::config::endpoint::Params::builder()
836    .region("ap-southeast-1".to_string())
837    .use_fips(false)
838    .use_dual_stack(false)
839    .use_global_endpoint(true)
840    .build().expect("invalid params");
841                        let resolver = crate::config::endpoint::DefaultResolver::new();
842                        let endpoint = resolver.resolve_endpoint(&params);
843                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
844                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
845    .property("authSchemes", vec![ {
846        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
847        out.insert("name".to_string(), "sigv4".to_string().into());
848        out.insert("signingName".to_string(), "sts".to_string().into());
849        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
850        out
851    }.into()])
852    .build());
853                    }
854    
855    /// UseGlobalEndpoint with legacy region `ap-southeast-2`
856                    #[test]
857                    fn test_54() {
858                        let params = crate::config::endpoint::Params::builder()
859    .region("ap-southeast-2".to_string())
860    .use_fips(false)
861    .use_dual_stack(false)
862    .use_global_endpoint(true)
863    .build().expect("invalid params");
864                        let resolver = crate::config::endpoint::DefaultResolver::new();
865                        let endpoint = resolver.resolve_endpoint(&params);
866                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
867                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
868    .property("authSchemes", vec![ {
869        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
870        out.insert("name".to_string(), "sigv4".to_string().into());
871        out.insert("signingName".to_string(), "sts".to_string().into());
872        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
873        out
874    }.into()])
875    .build());
876                    }
877    
878    /// UseGlobalEndpoint with legacy region `aws-global`
879                    #[test]
880                    fn test_55() {
881                        let params = crate::config::endpoint::Params::builder()
882    .region("aws-global".to_string())
883    .use_fips(false)
884    .use_dual_stack(false)
885    .use_global_endpoint(true)
886    .build().expect("invalid params");
887                        let resolver = crate::config::endpoint::DefaultResolver::new();
888                        let endpoint = resolver.resolve_endpoint(&params);
889                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
890                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
891    .property("authSchemes", vec![ {
892        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
893        out.insert("name".to_string(), "sigv4".to_string().into());
894        out.insert("signingName".to_string(), "sts".to_string().into());
895        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
896        out
897    }.into()])
898    .build());
899                    }
900    
901    /// UseGlobalEndpoint with legacy region `ca-central-1`
902                    #[test]
903                    fn test_56() {
904                        let params = crate::config::endpoint::Params::builder()
905    .region("ca-central-1".to_string())
906    .use_fips(false)
907    .use_dual_stack(false)
908    .use_global_endpoint(true)
909    .build().expect("invalid params");
910                        let resolver = crate::config::endpoint::DefaultResolver::new();
911                        let endpoint = resolver.resolve_endpoint(&params);
912                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
913                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
914    .property("authSchemes", vec![ {
915        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
916        out.insert("name".to_string(), "sigv4".to_string().into());
917        out.insert("signingName".to_string(), "sts".to_string().into());
918        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
919        out
920    }.into()])
921    .build());
922                    }
923    
924    /// UseGlobalEndpoint with legacy region `eu-central-1`
925                    #[test]
926                    fn test_57() {
927                        let params = crate::config::endpoint::Params::builder()
928    .region("eu-central-1".to_string())
929    .use_fips(false)
930    .use_dual_stack(false)
931    .use_global_endpoint(true)
932    .build().expect("invalid params");
933                        let resolver = crate::config::endpoint::DefaultResolver::new();
934                        let endpoint = resolver.resolve_endpoint(&params);
935                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
936                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
937    .property("authSchemes", vec![ {
938        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
939        out.insert("name".to_string(), "sigv4".to_string().into());
940        out.insert("signingName".to_string(), "sts".to_string().into());
941        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
942        out
943    }.into()])
944    .build());
945                    }
946    
947    /// UseGlobalEndpoint with legacy region `eu-north-1`
948                    #[test]
949                    fn test_58() {
950                        let params = crate::config::endpoint::Params::builder()
951    .region("eu-north-1".to_string())
952    .use_fips(false)
953    .use_dual_stack(false)
954    .use_global_endpoint(true)
955    .build().expect("invalid params");
956                        let resolver = crate::config::endpoint::DefaultResolver::new();
957                        let endpoint = resolver.resolve_endpoint(&params);
958                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
959                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
960    .property("authSchemes", vec![ {
961        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
962        out.insert("name".to_string(), "sigv4".to_string().into());
963        out.insert("signingName".to_string(), "sts".to_string().into());
964        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
965        out
966    }.into()])
967    .build());
968                    }
969    
970    /// UseGlobalEndpoint with legacy region `eu-west-1`
971                    #[test]
972                    fn test_59() {
973                        let params = crate::config::endpoint::Params::builder()
974    .region("eu-west-1".to_string())
975    .use_fips(false)
976    .use_dual_stack(false)
977    .use_global_endpoint(true)
978    .build().expect("invalid params");
979                        let resolver = crate::config::endpoint::DefaultResolver::new();
980                        let endpoint = resolver.resolve_endpoint(&params);
981                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
982                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
983    .property("authSchemes", vec![ {
984        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
985        out.insert("name".to_string(), "sigv4".to_string().into());
986        out.insert("signingName".to_string(), "sts".to_string().into());
987        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
988        out
989    }.into()])
990    .build());
991                    }
992    
993    /// UseGlobalEndpoint with legacy region `eu-west-2`
994                    #[test]
995                    fn test_60() {
996                        let params = crate::config::endpoint::Params::builder()
997    .region("eu-west-2".to_string())
998    .use_fips(false)
999    .use_dual_stack(false)
1000    .use_global_endpoint(true)
1001    .build().expect("invalid params");
1002                        let resolver = crate::config::endpoint::DefaultResolver::new();
1003                        let endpoint = resolver.resolve_endpoint(&params);
1004                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1005                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
1006    .property("authSchemes", vec![ {
1007        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1008        out.insert("name".to_string(), "sigv4".to_string().into());
1009        out.insert("signingName".to_string(), "sts".to_string().into());
1010        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1011        out
1012    }.into()])
1013    .build());
1014                    }
1015    
1016    /// UseGlobalEndpoint with legacy region `eu-west-3`
1017                    #[test]
1018                    fn test_61() {
1019                        let params = crate::config::endpoint::Params::builder()
1020    .region("eu-west-3".to_string())
1021    .use_fips(false)
1022    .use_dual_stack(false)
1023    .use_global_endpoint(true)
1024    .build().expect("invalid params");
1025                        let resolver = crate::config::endpoint::DefaultResolver::new();
1026                        let endpoint = resolver.resolve_endpoint(&params);
1027                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1028                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
1029    .property("authSchemes", vec![ {
1030        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1031        out.insert("name".to_string(), "sigv4".to_string().into());
1032        out.insert("signingName".to_string(), "sts".to_string().into());
1033        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1034        out
1035    }.into()])
1036    .build());
1037                    }
1038    
1039    /// UseGlobalEndpoint with legacy region `sa-east-1`
1040                    #[test]
1041                    fn test_62() {
1042                        let params = crate::config::endpoint::Params::builder()
1043    .region("sa-east-1".to_string())
1044    .use_fips(false)
1045    .use_dual_stack(false)
1046    .use_global_endpoint(true)
1047    .build().expect("invalid params");
1048                        let resolver = crate::config::endpoint::DefaultResolver::new();
1049                        let endpoint = resolver.resolve_endpoint(&params);
1050                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1051                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
1052    .property("authSchemes", vec![ {
1053        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1054        out.insert("name".to_string(), "sigv4".to_string().into());
1055        out.insert("signingName".to_string(), "sts".to_string().into());
1056        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1057        out
1058    }.into()])
1059    .build());
1060                    }
1061    
1062    /// UseGlobalEndpoint with legacy region `us-east-1`
1063                    #[test]
1064                    fn test_63() {
1065                        let params = crate::config::endpoint::Params::builder()
1066    .region("us-east-1".to_string())
1067    .use_fips(false)
1068    .use_dual_stack(false)
1069    .use_global_endpoint(true)
1070    .build().expect("invalid params");
1071                        let resolver = crate::config::endpoint::DefaultResolver::new();
1072                        let endpoint = resolver.resolve_endpoint(&params);
1073                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1074                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
1075    .property("authSchemes", vec![ {
1076        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1077        out.insert("name".to_string(), "sigv4".to_string().into());
1078        out.insert("signingName".to_string(), "sts".to_string().into());
1079        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1080        out
1081    }.into()])
1082    .build());
1083                    }
1084    
1085    /// UseGlobalEndpoint with legacy region `us-east-2`
1086                    #[test]
1087                    fn test_64() {
1088                        let params = crate::config::endpoint::Params::builder()
1089    .region("us-east-2".to_string())
1090    .use_fips(false)
1091    .use_dual_stack(false)
1092    .use_global_endpoint(true)
1093    .build().expect("invalid params");
1094                        let resolver = crate::config::endpoint::DefaultResolver::new();
1095                        let endpoint = resolver.resolve_endpoint(&params);
1096                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1097                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
1098    .property("authSchemes", vec![ {
1099        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1100        out.insert("name".to_string(), "sigv4".to_string().into());
1101        out.insert("signingName".to_string(), "sts".to_string().into());
1102        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1103        out
1104    }.into()])
1105    .build());
1106                    }
1107    
1108    /// UseGlobalEndpoint with legacy region `us-west-1`
1109                    #[test]
1110                    fn test_65() {
1111                        let params = crate::config::endpoint::Params::builder()
1112    .region("us-west-1".to_string())
1113    .use_fips(false)
1114    .use_dual_stack(false)
1115    .use_global_endpoint(true)
1116    .build().expect("invalid params");
1117                        let resolver = crate::config::endpoint::DefaultResolver::new();
1118                        let endpoint = resolver.resolve_endpoint(&params);
1119                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1120                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
1121    .property("authSchemes", vec![ {
1122        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1123        out.insert("name".to_string(), "sigv4".to_string().into());
1124        out.insert("signingName".to_string(), "sts".to_string().into());
1125        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1126        out
1127    }.into()])
1128    .build());
1129                    }
1130    
1131    /// UseGlobalEndpoint with legacy region `us-west-2`
1132                    #[test]
1133                    fn test_66() {
1134                        let params = crate::config::endpoint::Params::builder()
1135    .region("us-west-2".to_string())
1136    .use_fips(false)
1137    .use_dual_stack(false)
1138    .use_global_endpoint(true)
1139    .build().expect("invalid params");
1140                        let resolver = crate::config::endpoint::DefaultResolver::new();
1141                        let endpoint = resolver.resolve_endpoint(&params);
1142                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1143                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.amazonaws.com")
1144    .property("authSchemes", vec![ {
1145        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1146        out.insert("name".to_string(), "sigv4".to_string().into());
1147        out.insert("signingName".to_string(), "sts".to_string().into());
1148        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1149        out
1150    }.into()])
1151    .build());
1152                    }
1153    
1154    /// UseGlobalEndpoint with Non-legacy region `us-east-3`
1155                    #[test]
1156                    fn test_67() {
1157                        let params = crate::config::endpoint::Params::builder()
1158    .region("us-east-3".to_string())
1159    .use_fips(false)
1160    .use_dual_stack(false)
1161    .use_global_endpoint(true)
1162    .build().expect("invalid params");
1163                        let resolver = crate::config::endpoint::DefaultResolver::new();
1164                        let endpoint = resolver.resolve_endpoint(&params);
1165                        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-east-3.amazonaws.com");
1166                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://sts.us-east-3.amazonaws.com")
1167    .property("authSchemes", vec![ {
1168        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1169        out.insert("name".to_string(), "sigv4".to_string().into());
1170        out.insert("signingName".to_string(), "sts".to_string().into());
1171        out.insert("signingRegion".to_string(), "us-east-3".to_string().into());
1172        out
1173    }.into()])
1174    .build());
1175                    }
1176    
1177    /// UseGlobalEndpoint with legacy region and custom endpoint
1178                    #[test]
1179                    fn test_68() {
1180                        let params = crate::config::endpoint::Params::builder()
1181    .region("us-west-1".to_string())
1182    .use_fips(false)
1183    .use_dual_stack(false)
1184    .use_global_endpoint(true)
1185    .endpoint("https://example.com".to_string())
1186    .build().expect("invalid params");
1187                        let resolver = crate::config::endpoint::DefaultResolver::new();
1188                        let endpoint = resolver.resolve_endpoint(&params);
1189                        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
1190                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com")
1191    .build());
1192                    }
1193    
1194    /// UseGlobalEndpoint with unset region and custom endpoint
1195                    #[test]
1196                    fn test_69() {
1197                        let params = crate::config::endpoint::Params::builder()
1198    .use_fips(false)
1199    .use_dual_stack(false)
1200    .use_global_endpoint(false)
1201    .endpoint("https://example.com".to_string())
1202    .build().expect("invalid params");
1203                        let resolver = crate::config::endpoint::DefaultResolver::new();
1204                        let endpoint = resolver.resolve_endpoint(&params);
1205                        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
1206                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com")
1207    .build());
1208                    }
1209    
1210    
1211}
1212
1213/// Endpoint resolver trait specific to AWS Security Token Service
1214            pub trait ResolveEndpoint: ::std::marker::Send + ::std::marker::Sync + ::std::fmt::Debug {
1215                /// Resolve an endpoint with the given parameters
1216                fn resolve_endpoint<'a>(&'a self, params: &'a crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a>;
1217
1218                /// Convert this service-specific resolver into a `SharedEndpointResolver`
1219                ///
1220                /// The resulting resolver will downcast `EndpointResolverParams` into `crate::config::endpoint::Params`.
1221                fn into_shared_resolver(self) -> ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver
1222                where
1223                    Self: Sized + 'static,
1224                {
1225                    ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver::new(DowncastParams(self))
1226                }
1227            }
1228
1229            #[derive(Debug)]
1230            struct DowncastParams<T>(T);
1231            impl<T> ::aws_smithy_runtime_api::client::endpoint::ResolveEndpoint for DowncastParams<T>
1232            where
1233                T: ResolveEndpoint,
1234            {
1235                fn resolve_endpoint<'a>(&'a self, params: &'a ::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a> {
1236                    let ep = match params.get::<crate::config::endpoint::Params>() {
1237                        Some(params) => self.0.resolve_endpoint(params),
1238                        None => ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(Err("params of expected type was not present".into())),
1239                    };
1240                    ep
1241                }
1242                
1243            }
1244
1245/// The default endpoint resolver
1246                #[derive(Debug, Default)]
1247                pub struct DefaultResolver {
1248                    partition_resolver: crate::endpoint_lib::partition::PartitionResolver
1249                }
1250
1251                impl DefaultResolver {
1252                    /// Create a new endpoint resolver with default settings
1253                    pub fn new() -> Self {
1254                        Self { partition_resolver: crate::endpoint_lib::DEFAULT_PARTITION_RESOLVER.clone() }
1255                    }
1256
1257                    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::std::result::Result<::aws_smithy_types::endpoint::Endpoint, ::aws_smithy_runtime_api::box_error::BoxError> {
1258                        let mut diagnostic_collector = crate::endpoint_lib::diagnostic::DiagnosticCollector::new();
1259                        Ok(crate::config::endpoint::internals::resolve_endpoint(params, &mut diagnostic_collector, &self.partition_resolver)
1260                            .map_err(|err|err.with_source(diagnostic_collector.take_last_error()))?)
1261                    }
1262                }
1263
1264                impl crate::config::endpoint::ResolveEndpoint for DefaultResolver {
1265                    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'_> {
1266                        ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(self.resolve_endpoint(params))
1267                    }
1268                }
1269
1270#[non_exhaustive]
1271#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
1272/// Configuration parameters for resolving the correct endpoint
1273pub struct Params {
1274    /// The AWS region used to dispatch the request.
1275    pub(crate) region: ::std::option::Option<::std::string::String>,
1276    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
1277    pub(crate) use_dual_stack: bool,
1278    /// 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.
1279    pub(crate) use_fips: bool,
1280    /// Override the endpoint used to send this request
1281    pub(crate) endpoint: ::std::option::Option<::std::string::String>,
1282    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
1283    pub(crate) use_global_endpoint: bool,
1284}
1285impl Params {
1286    /// Create a builder for [`Params`]
1287                    pub fn builder() -> crate::config::endpoint::ParamsBuilder {
1288                        crate::config::endpoint::ParamsBuilder::default()
1289                    }
1290    /// The AWS region used to dispatch the request.
1291    pub fn region(&self) -> ::std::option::Option<&str> {
1292                            self.region.as_deref()
1293                        }
1294    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
1295    pub fn use_dual_stack(&self) -> ::std::option::Option<bool> {
1296                            Some(self.use_dual_stack)
1297                        }
1298    /// 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.
1299    pub fn use_fips(&self) -> ::std::option::Option<bool> {
1300                            Some(self.use_fips)
1301                        }
1302    /// Override the endpoint used to send this request
1303    pub fn endpoint(&self) -> ::std::option::Option<&str> {
1304                            self.endpoint.as_deref()
1305                        }
1306    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
1307    pub fn use_global_endpoint(&self) -> ::std::option::Option<bool> {
1308                            Some(self.use_global_endpoint)
1309                        }
1310}
1311
1312/// Builder for [`Params`]
1313#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
1314pub struct ParamsBuilder {
1315    region: ::std::option::Option<::std::string::String>,
1316    use_dual_stack: ::std::option::Option<bool>,
1317    use_fips: ::std::option::Option<bool>,
1318    endpoint: ::std::option::Option<::std::string::String>,
1319    use_global_endpoint: ::std::option::Option<bool>,
1320}
1321impl ParamsBuilder {
1322    /// Consume this builder, creating [`Params`].
1323    pub fn build(self) -> ::std::result::Result<crate::config::endpoint::Params, crate::config::endpoint::InvalidParams> {
1324        if let Some(region) = &self.region {
1325                                                if !crate::endpoint_lib::host::is_valid_host_label(region.as_ref() as &str, true, &mut crate::endpoint_lib::diagnostic::DiagnosticCollector::new()) {
1326                                                    return Err(crate::config::endpoint::InvalidParams::invalid_value("region", "must be a valid host label"))
1327                                                }
1328                                            };
1329        Ok(#[allow(clippy::unnecessary_lazy_evaluations)]
1330        crate::config::endpoint::Params {
1331            region: self.region
1332            ,
1333            use_dual_stack: self.use_dual_stack
1334            .or_else(||Some(false))
1335            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_dual_stack"))?
1336            ,
1337            use_fips: self.use_fips
1338            .or_else(||Some(false))
1339            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_fips"))?
1340            ,
1341            endpoint: self.endpoint
1342            ,
1343            use_global_endpoint: self.use_global_endpoint
1344            .or_else(||Some(false))
1345            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_global_endpoint"))?
1346            ,
1347        })
1348    }
1349    /// Sets the value for region 
1350    /// 
1351    /// The AWS region used to dispatch the request.
1352                        pub fn region(mut self, value: impl Into<::std::string::String>) -> Self {
1353                            self.region = Some(value.into());
1354                            self
1355                        }
1356    
1357                        /// Sets the value for region 
1358    /// 
1359    /// The AWS region used to dispatch the request.
1360                        pub fn set_region(mut self, param: Option<::std::string::String>) -> Self {
1361                            self.region = param;
1362                            self
1363                        }
1364    /// Sets the value for use_dual_stack 
1365    /// 
1366    /// When unset, this parameter has a default value of `false`.
1367    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
1368                        pub fn use_dual_stack(mut self, value: impl Into<bool>) -> Self {
1369                            self.use_dual_stack = Some(value.into());
1370                            self
1371                        }
1372    
1373                        /// Sets the value for use_dual_stack 
1374    /// 
1375    /// When unset, this parameter has a default value of `false`.
1376    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
1377                        pub fn set_use_dual_stack(mut self, param: Option<bool>) -> Self {
1378                            self.use_dual_stack = param;
1379                            self
1380                        }
1381    /// Sets the value for use_fips 
1382    /// 
1383    /// When unset, this parameter has a default value of `false`.
1384    /// 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.
1385                        pub fn use_fips(mut self, value: impl Into<bool>) -> Self {
1386                            self.use_fips = Some(value.into());
1387                            self
1388                        }
1389    
1390                        /// Sets the value for use_fips 
1391    /// 
1392    /// When unset, this parameter has a default value of `false`.
1393    /// 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.
1394                        pub fn set_use_fips(mut self, param: Option<bool>) -> Self {
1395                            self.use_fips = param;
1396                            self
1397                        }
1398    /// Sets the value for endpoint 
1399    /// 
1400    /// Override the endpoint used to send this request
1401                        pub fn endpoint(mut self, value: impl Into<::std::string::String>) -> Self {
1402                            self.endpoint = Some(value.into());
1403                            self
1404                        }
1405    
1406                        /// Sets the value for endpoint 
1407    /// 
1408    /// Override the endpoint used to send this request
1409                        pub fn set_endpoint(mut self, param: Option<::std::string::String>) -> Self {
1410                            self.endpoint = param;
1411                            self
1412                        }
1413    /// Sets the value for use_global_endpoint 
1414    /// 
1415    /// When unset, this parameter has a default value of `false`.
1416    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
1417                        pub fn use_global_endpoint(mut self, value: impl Into<bool>) -> Self {
1418                            self.use_global_endpoint = Some(value.into());
1419                            self
1420                        }
1421    
1422                        /// Sets the value for use_global_endpoint 
1423    /// 
1424    /// When unset, this parameter has a default value of `false`.
1425    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
1426                        pub fn set_use_global_endpoint(mut self, param: Option<bool>) -> Self {
1427                            self.use_global_endpoint = param;
1428                            self
1429                        }
1430}
1431
1432/// An error that occurred during endpoint resolution
1433                    #[derive(Debug)]
1434                    pub struct InvalidParams {
1435                        field: std::borrow::Cow<'static, str>,
1436                        kind: InvalidParamsErrorKind,
1437                    }
1438
1439                    /// The kind of invalid parameter error
1440                    #[derive(Debug)]
1441                    enum InvalidParamsErrorKind {
1442                        MissingField,
1443                        InvalidValue {
1444                            message: &'static str,
1445                        }
1446                    }
1447
1448                    impl InvalidParams {
1449                        #[allow(dead_code)]
1450                        fn missing(field: &'static str) -> Self {
1451                            Self { field: field.into(), kind: InvalidParamsErrorKind::MissingField }
1452                        }
1453
1454                        #[allow(dead_code)]
1455                        fn invalid_value(field: &'static str, message: &'static str) -> Self {
1456                            Self { field: field.into(), kind: InvalidParamsErrorKind::InvalidValue { message }}
1457                        }
1458                    }
1459
1460                    impl std::fmt::Display for InvalidParams {
1461                        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1462                            match self.kind {
1463                                InvalidParamsErrorKind::MissingField => write!(f, "a required field was missing: `{}`", self.field),
1464                                InvalidParamsErrorKind::InvalidValue { message} => write!(f, "invalid value for field: `{}` - {}", self.field, message),
1465                            }
1466                        }
1467                    }
1468
1469                    impl std::error::Error for InvalidParams { }
1470
1471mod internals;
1472