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