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::EndpointFuture;
3pub use ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver;
4pub use ::aws_smithy_types::endpoint::Endpoint;
5
6#[cfg(test)]
7mod test {
8
9    /// For region af-south-1 with FIPS disabled and DualStack disabled
10    #[test]
11    fn test_1() {
12        let params = crate::config::endpoint::Params::builder()
13            .region("af-south-1".to_string())
14            .use_fips(false)
15            .use_dual_stack(false)
16            .build()
17            .expect("invalid params");
18        let resolver = crate::config::endpoint::DefaultResolver::new();
19        let endpoint = resolver.resolve_endpoint(&params);
20        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.af-south-1.amazonaws.com");
21        assert_eq!(
22            endpoint,
23            ::aws_smithy_types::endpoint::Endpoint::builder()
24                .url("https://sts.af-south-1.amazonaws.com")
25                .build()
26        );
27    }
28
29    /// For region ap-east-1 with FIPS disabled and DualStack disabled
30    #[test]
31    fn test_2() {
32        let params = crate::config::endpoint::Params::builder()
33            .region("ap-east-1".to_string())
34            .use_fips(false)
35            .use_dual_stack(false)
36            .build()
37            .expect("invalid params");
38        let resolver = crate::config::endpoint::DefaultResolver::new();
39        let endpoint = resolver.resolve_endpoint(&params);
40        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-east-1.amazonaws.com");
41        assert_eq!(
42            endpoint,
43            ::aws_smithy_types::endpoint::Endpoint::builder()
44                .url("https://sts.ap-east-1.amazonaws.com")
45                .build()
46        );
47    }
48
49    /// For region ap-northeast-1 with FIPS disabled and DualStack disabled
50    #[test]
51    fn test_3() {
52        let params = crate::config::endpoint::Params::builder()
53            .region("ap-northeast-1".to_string())
54            .use_fips(false)
55            .use_dual_stack(false)
56            .build()
57            .expect("invalid params");
58        let resolver = crate::config::endpoint::DefaultResolver::new();
59        let endpoint = resolver.resolve_endpoint(&params);
60        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-northeast-1.amazonaws.com");
61        assert_eq!(
62            endpoint,
63            ::aws_smithy_types::endpoint::Endpoint::builder()
64                .url("https://sts.ap-northeast-1.amazonaws.com")
65                .build()
66        );
67    }
68
69    /// For region ap-northeast-2 with FIPS disabled and DualStack disabled
70    #[test]
71    fn test_4() {
72        let params = crate::config::endpoint::Params::builder()
73            .region("ap-northeast-2".to_string())
74            .use_fips(false)
75            .use_dual_stack(false)
76            .build()
77            .expect("invalid params");
78        let resolver = crate::config::endpoint::DefaultResolver::new();
79        let endpoint = resolver.resolve_endpoint(&params);
80        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-northeast-2.amazonaws.com");
81        assert_eq!(
82            endpoint,
83            ::aws_smithy_types::endpoint::Endpoint::builder()
84                .url("https://sts.ap-northeast-2.amazonaws.com")
85                .build()
86        );
87    }
88
89    /// For region ap-northeast-3 with FIPS disabled and DualStack disabled
90    #[test]
91    fn test_5() {
92        let params = crate::config::endpoint::Params::builder()
93            .region("ap-northeast-3".to_string())
94            .use_fips(false)
95            .use_dual_stack(false)
96            .build()
97            .expect("invalid params");
98        let resolver = crate::config::endpoint::DefaultResolver::new();
99        let endpoint = resolver.resolve_endpoint(&params);
100        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-northeast-3.amazonaws.com");
101        assert_eq!(
102            endpoint,
103            ::aws_smithy_types::endpoint::Endpoint::builder()
104                .url("https://sts.ap-northeast-3.amazonaws.com")
105                .build()
106        );
107    }
108
109    /// For region ap-south-1 with FIPS disabled and DualStack disabled
110    #[test]
111    fn test_6() {
112        let params = crate::config::endpoint::Params::builder()
113            .region("ap-south-1".to_string())
114            .use_fips(false)
115            .use_dual_stack(false)
116            .build()
117            .expect("invalid params");
118        let resolver = crate::config::endpoint::DefaultResolver::new();
119        let endpoint = resolver.resolve_endpoint(&params);
120        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-south-1.amazonaws.com");
121        assert_eq!(
122            endpoint,
123            ::aws_smithy_types::endpoint::Endpoint::builder()
124                .url("https://sts.ap-south-1.amazonaws.com")
125                .build()
126        );
127    }
128
129    /// For region ap-southeast-1 with FIPS disabled and DualStack disabled
130    #[test]
131    fn test_7() {
132        let params = crate::config::endpoint::Params::builder()
133            .region("ap-southeast-1".to_string())
134            .use_fips(false)
135            .use_dual_stack(false)
136            .build()
137            .expect("invalid params");
138        let resolver = crate::config::endpoint::DefaultResolver::new();
139        let endpoint = resolver.resolve_endpoint(&params);
140        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-southeast-1.amazonaws.com");
141        assert_eq!(
142            endpoint,
143            ::aws_smithy_types::endpoint::Endpoint::builder()
144                .url("https://sts.ap-southeast-1.amazonaws.com")
145                .build()
146        );
147    }
148
149    /// For region ap-southeast-2 with FIPS disabled and DualStack disabled
150    #[test]
151    fn test_8() {
152        let params = crate::config::endpoint::Params::builder()
153            .region("ap-southeast-2".to_string())
154            .use_fips(false)
155            .use_dual_stack(false)
156            .build()
157            .expect("invalid params");
158        let resolver = crate::config::endpoint::DefaultResolver::new();
159        let endpoint = resolver.resolve_endpoint(&params);
160        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-southeast-2.amazonaws.com");
161        assert_eq!(
162            endpoint,
163            ::aws_smithy_types::endpoint::Endpoint::builder()
164                .url("https://sts.ap-southeast-2.amazonaws.com")
165                .build()
166        );
167    }
168
169    /// For region ap-southeast-3 with FIPS disabled and DualStack disabled
170    #[test]
171    fn test_9() {
172        let params = crate::config::endpoint::Params::builder()
173            .region("ap-southeast-3".to_string())
174            .use_fips(false)
175            .use_dual_stack(false)
176            .build()
177            .expect("invalid params");
178        let resolver = crate::config::endpoint::DefaultResolver::new();
179        let endpoint = resolver.resolve_endpoint(&params);
180        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ap-southeast-3.amazonaws.com");
181        assert_eq!(
182            endpoint,
183            ::aws_smithy_types::endpoint::Endpoint::builder()
184                .url("https://sts.ap-southeast-3.amazonaws.com")
185                .build()
186        );
187    }
188
189    /// For region aws-global with FIPS disabled and DualStack disabled
190    #[test]
191    fn test_10() {
192        let params = crate::config::endpoint::Params::builder()
193            .region("aws-global".to_string())
194            .use_fips(false)
195            .use_dual_stack(false)
196            .build()
197            .expect("invalid params");
198        let resolver = crate::config::endpoint::DefaultResolver::new();
199        let endpoint = resolver.resolve_endpoint(&params);
200        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
201        assert_eq!(
202            endpoint,
203            ::aws_smithy_types::endpoint::Endpoint::builder()
204                .url("https://sts.amazonaws.com")
205                .property(
206                    "authSchemes",
207                    vec![::aws_smithy_types::Document::from({
208                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
209                        out.insert("name".to_string(), "sigv4".to_string().into());
210                        out.insert("signingName".to_string(), "sts".to_string().into());
211                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
212                        out
213                    })]
214                )
215                .build()
216        );
217    }
218
219    /// For region ca-central-1 with FIPS disabled and DualStack disabled
220    #[test]
221    fn test_11() {
222        let params = crate::config::endpoint::Params::builder()
223            .region("ca-central-1".to_string())
224            .use_fips(false)
225            .use_dual_stack(false)
226            .build()
227            .expect("invalid params");
228        let resolver = crate::config::endpoint::DefaultResolver::new();
229        let endpoint = resolver.resolve_endpoint(&params);
230        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.ca-central-1.amazonaws.com");
231        assert_eq!(
232            endpoint,
233            ::aws_smithy_types::endpoint::Endpoint::builder()
234                .url("https://sts.ca-central-1.amazonaws.com")
235                .build()
236        );
237    }
238
239    /// For region eu-central-1 with FIPS disabled and DualStack disabled
240    #[test]
241    fn test_12() {
242        let params = crate::config::endpoint::Params::builder()
243            .region("eu-central-1".to_string())
244            .use_fips(false)
245            .use_dual_stack(false)
246            .build()
247            .expect("invalid params");
248        let resolver = crate::config::endpoint::DefaultResolver::new();
249        let endpoint = resolver.resolve_endpoint(&params);
250        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.eu-central-1.amazonaws.com");
251        assert_eq!(
252            endpoint,
253            ::aws_smithy_types::endpoint::Endpoint::builder()
254                .url("https://sts.eu-central-1.amazonaws.com")
255                .build()
256        );
257    }
258
259    /// For region eu-north-1 with FIPS disabled and DualStack disabled
260    #[test]
261    fn test_13() {
262        let params = crate::config::endpoint::Params::builder()
263            .region("eu-north-1".to_string())
264            .use_fips(false)
265            .use_dual_stack(false)
266            .build()
267            .expect("invalid params");
268        let resolver = crate::config::endpoint::DefaultResolver::new();
269        let endpoint = resolver.resolve_endpoint(&params);
270        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.eu-north-1.amazonaws.com");
271        assert_eq!(
272            endpoint,
273            ::aws_smithy_types::endpoint::Endpoint::builder()
274                .url("https://sts.eu-north-1.amazonaws.com")
275                .build()
276        );
277    }
278
279    /// For region eu-south-1 with FIPS disabled and DualStack disabled
280    #[test]
281    fn test_14() {
282        let params = crate::config::endpoint::Params::builder()
283            .region("eu-south-1".to_string())
284            .use_fips(false)
285            .use_dual_stack(false)
286            .build()
287            .expect("invalid params");
288        let resolver = crate::config::endpoint::DefaultResolver::new();
289        let endpoint = resolver.resolve_endpoint(&params);
290        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.eu-south-1.amazonaws.com");
291        assert_eq!(
292            endpoint,
293            ::aws_smithy_types::endpoint::Endpoint::builder()
294                .url("https://sts.eu-south-1.amazonaws.com")
295                .build()
296        );
297    }
298
299    /// For region eu-west-1 with FIPS disabled and DualStack disabled
300    #[test]
301    fn test_15() {
302        let params = crate::config::endpoint::Params::builder()
303            .region("eu-west-1".to_string())
304            .use_fips(false)
305            .use_dual_stack(false)
306            .build()
307            .expect("invalid params");
308        let resolver = crate::config::endpoint::DefaultResolver::new();
309        let endpoint = resolver.resolve_endpoint(&params);
310        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.eu-west-1.amazonaws.com");
311        assert_eq!(
312            endpoint,
313            ::aws_smithy_types::endpoint::Endpoint::builder()
314                .url("https://sts.eu-west-1.amazonaws.com")
315                .build()
316        );
317    }
318
319    /// For region eu-west-2 with FIPS disabled and DualStack disabled
320    #[test]
321    fn test_16() {
322        let params = crate::config::endpoint::Params::builder()
323            .region("eu-west-2".to_string())
324            .use_fips(false)
325            .use_dual_stack(false)
326            .build()
327            .expect("invalid params");
328        let resolver = crate::config::endpoint::DefaultResolver::new();
329        let endpoint = resolver.resolve_endpoint(&params);
330        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.eu-west-2.amazonaws.com");
331        assert_eq!(
332            endpoint,
333            ::aws_smithy_types::endpoint::Endpoint::builder()
334                .url("https://sts.eu-west-2.amazonaws.com")
335                .build()
336        );
337    }
338
339    /// For region eu-west-3 with FIPS disabled and DualStack disabled
340    #[test]
341    fn test_17() {
342        let params = crate::config::endpoint::Params::builder()
343            .region("eu-west-3".to_string())
344            .use_fips(false)
345            .use_dual_stack(false)
346            .build()
347            .expect("invalid params");
348        let resolver = crate::config::endpoint::DefaultResolver::new();
349        let endpoint = resolver.resolve_endpoint(&params);
350        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.eu-west-3.amazonaws.com");
351        assert_eq!(
352            endpoint,
353            ::aws_smithy_types::endpoint::Endpoint::builder()
354                .url("https://sts.eu-west-3.amazonaws.com")
355                .build()
356        );
357    }
358
359    /// For region me-south-1 with FIPS disabled and DualStack disabled
360    #[test]
361    fn test_18() {
362        let params = crate::config::endpoint::Params::builder()
363            .region("me-south-1".to_string())
364            .use_fips(false)
365            .use_dual_stack(false)
366            .build()
367            .expect("invalid params");
368        let resolver = crate::config::endpoint::DefaultResolver::new();
369        let endpoint = resolver.resolve_endpoint(&params);
370        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.me-south-1.amazonaws.com");
371        assert_eq!(
372            endpoint,
373            ::aws_smithy_types::endpoint::Endpoint::builder()
374                .url("https://sts.me-south-1.amazonaws.com")
375                .build()
376        );
377    }
378
379    /// For region sa-east-1 with FIPS disabled and DualStack disabled
380    #[test]
381    fn test_19() {
382        let params = crate::config::endpoint::Params::builder()
383            .region("sa-east-1".to_string())
384            .use_fips(false)
385            .use_dual_stack(false)
386            .build()
387            .expect("invalid params");
388        let resolver = crate::config::endpoint::DefaultResolver::new();
389        let endpoint = resolver.resolve_endpoint(&params);
390        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.sa-east-1.amazonaws.com");
391        assert_eq!(
392            endpoint,
393            ::aws_smithy_types::endpoint::Endpoint::builder()
394                .url("https://sts.sa-east-1.amazonaws.com")
395                .build()
396        );
397    }
398
399    /// For region us-east-1 with FIPS disabled and DualStack disabled
400    #[test]
401    fn test_20() {
402        let params = crate::config::endpoint::Params::builder()
403            .region("us-east-1".to_string())
404            .use_fips(false)
405            .use_dual_stack(false)
406            .build()
407            .expect("invalid params");
408        let resolver = crate::config::endpoint::DefaultResolver::new();
409        let endpoint = resolver.resolve_endpoint(&params);
410        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-east-1.amazonaws.com");
411        assert_eq!(
412            endpoint,
413            ::aws_smithy_types::endpoint::Endpoint::builder()
414                .url("https://sts.us-east-1.amazonaws.com")
415                .build()
416        );
417    }
418
419    /// For region us-east-1 with FIPS enabled and DualStack disabled
420    #[test]
421    fn test_21() {
422        let params = crate::config::endpoint::Params::builder()
423            .region("us-east-1".to_string())
424            .use_fips(true)
425            .use_dual_stack(false)
426            .build()
427            .expect("invalid params");
428        let resolver = crate::config::endpoint::DefaultResolver::new();
429        let endpoint = resolver.resolve_endpoint(&params);
430        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.us-east-1.amazonaws.com");
431        assert_eq!(
432            endpoint,
433            ::aws_smithy_types::endpoint::Endpoint::builder()
434                .url("https://sts-fips.us-east-1.amazonaws.com")
435                .build()
436        );
437    }
438
439    /// For region us-east-2 with FIPS disabled and DualStack disabled
440    #[test]
441    fn test_22() {
442        let params = crate::config::endpoint::Params::builder()
443            .region("us-east-2".to_string())
444            .use_fips(false)
445            .use_dual_stack(false)
446            .build()
447            .expect("invalid params");
448        let resolver = crate::config::endpoint::DefaultResolver::new();
449        let endpoint = resolver.resolve_endpoint(&params);
450        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-east-2.amazonaws.com");
451        assert_eq!(
452            endpoint,
453            ::aws_smithy_types::endpoint::Endpoint::builder()
454                .url("https://sts.us-east-2.amazonaws.com")
455                .build()
456        );
457    }
458
459    /// For region us-east-2 with FIPS enabled and DualStack disabled
460    #[test]
461    fn test_23() {
462        let params = crate::config::endpoint::Params::builder()
463            .region("us-east-2".to_string())
464            .use_fips(true)
465            .use_dual_stack(false)
466            .build()
467            .expect("invalid params");
468        let resolver = crate::config::endpoint::DefaultResolver::new();
469        let endpoint = resolver.resolve_endpoint(&params);
470        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.us-east-2.amazonaws.com");
471        assert_eq!(
472            endpoint,
473            ::aws_smithy_types::endpoint::Endpoint::builder()
474                .url("https://sts-fips.us-east-2.amazonaws.com")
475                .build()
476        );
477    }
478
479    /// For region us-west-1 with FIPS disabled and DualStack disabled
480    #[test]
481    fn test_24() {
482        let params = crate::config::endpoint::Params::builder()
483            .region("us-west-1".to_string())
484            .use_fips(false)
485            .use_dual_stack(false)
486            .build()
487            .expect("invalid params");
488        let resolver = crate::config::endpoint::DefaultResolver::new();
489        let endpoint = resolver.resolve_endpoint(&params);
490        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-west-1.amazonaws.com");
491        assert_eq!(
492            endpoint,
493            ::aws_smithy_types::endpoint::Endpoint::builder()
494                .url("https://sts.us-west-1.amazonaws.com")
495                .build()
496        );
497    }
498
499    /// For region us-west-1 with FIPS enabled and DualStack disabled
500    #[test]
501    fn test_25() {
502        let params = crate::config::endpoint::Params::builder()
503            .region("us-west-1".to_string())
504            .use_fips(true)
505            .use_dual_stack(false)
506            .build()
507            .expect("invalid params");
508        let resolver = crate::config::endpoint::DefaultResolver::new();
509        let endpoint = resolver.resolve_endpoint(&params);
510        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.us-west-1.amazonaws.com");
511        assert_eq!(
512            endpoint,
513            ::aws_smithy_types::endpoint::Endpoint::builder()
514                .url("https://sts-fips.us-west-1.amazonaws.com")
515                .build()
516        );
517    }
518
519    /// For region us-west-2 with FIPS disabled and DualStack disabled
520    #[test]
521    fn test_26() {
522        let params = crate::config::endpoint::Params::builder()
523            .region("us-west-2".to_string())
524            .use_fips(false)
525            .use_dual_stack(false)
526            .build()
527            .expect("invalid params");
528        let resolver = crate::config::endpoint::DefaultResolver::new();
529        let endpoint = resolver.resolve_endpoint(&params);
530        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-west-2.amazonaws.com");
531        assert_eq!(
532            endpoint,
533            ::aws_smithy_types::endpoint::Endpoint::builder()
534                .url("https://sts.us-west-2.amazonaws.com")
535                .build()
536        );
537    }
538
539    /// For region us-west-2 with FIPS enabled and DualStack disabled
540    #[test]
541    fn test_27() {
542        let params = crate::config::endpoint::Params::builder()
543            .region("us-west-2".to_string())
544            .use_fips(true)
545            .use_dual_stack(false)
546            .build()
547            .expect("invalid params");
548        let resolver = crate::config::endpoint::DefaultResolver::new();
549        let endpoint = resolver.resolve_endpoint(&params);
550        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.us-west-2.amazonaws.com");
551        assert_eq!(
552            endpoint,
553            ::aws_smithy_types::endpoint::Endpoint::builder()
554                .url("https://sts-fips.us-west-2.amazonaws.com")
555                .build()
556        );
557    }
558
559    /// For region us-east-1 with FIPS enabled and DualStack enabled
560    #[test]
561    fn test_28() {
562        let params = crate::config::endpoint::Params::builder()
563            .region("us-east-1".to_string())
564            .use_fips(true)
565            .use_dual_stack(true)
566            .build()
567            .expect("invalid params");
568        let resolver = crate::config::endpoint::DefaultResolver::new();
569        let endpoint = resolver.resolve_endpoint(&params);
570        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.us-east-1.api.aws");
571        assert_eq!(
572            endpoint,
573            ::aws_smithy_types::endpoint::Endpoint::builder()
574                .url("https://sts-fips.us-east-1.api.aws")
575                .build()
576        );
577    }
578
579    /// For region us-east-1 with FIPS disabled and DualStack enabled
580    #[test]
581    fn test_29() {
582        let params = crate::config::endpoint::Params::builder()
583            .region("us-east-1".to_string())
584            .use_fips(false)
585            .use_dual_stack(true)
586            .build()
587            .expect("invalid params");
588        let resolver = crate::config::endpoint::DefaultResolver::new();
589        let endpoint = resolver.resolve_endpoint(&params);
590        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-east-1.api.aws");
591        assert_eq!(
592            endpoint,
593            ::aws_smithy_types::endpoint::Endpoint::builder()
594                .url("https://sts.us-east-1.api.aws")
595                .build()
596        );
597    }
598
599    /// For region cn-north-1 with FIPS disabled and DualStack disabled
600    #[test]
601    fn test_30() {
602        let params = crate::config::endpoint::Params::builder()
603            .region("cn-north-1".to_string())
604            .use_fips(false)
605            .use_dual_stack(false)
606            .build()
607            .expect("invalid params");
608        let resolver = crate::config::endpoint::DefaultResolver::new();
609        let endpoint = resolver.resolve_endpoint(&params);
610        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.cn-north-1.amazonaws.com.cn");
611        assert_eq!(
612            endpoint,
613            ::aws_smithy_types::endpoint::Endpoint::builder()
614                .url("https://sts.cn-north-1.amazonaws.com.cn")
615                .build()
616        );
617    }
618
619    /// For region cn-northwest-1 with FIPS disabled and DualStack disabled
620    #[test]
621    fn test_31() {
622        let params = crate::config::endpoint::Params::builder()
623            .region("cn-northwest-1".to_string())
624            .use_fips(false)
625            .use_dual_stack(false)
626            .build()
627            .expect("invalid params");
628        let resolver = crate::config::endpoint::DefaultResolver::new();
629        let endpoint = resolver.resolve_endpoint(&params);
630        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.cn-northwest-1.amazonaws.com.cn");
631        assert_eq!(
632            endpoint,
633            ::aws_smithy_types::endpoint::Endpoint::builder()
634                .url("https://sts.cn-northwest-1.amazonaws.com.cn")
635                .build()
636        );
637    }
638
639    /// For region cn-north-1 with FIPS enabled and DualStack enabled
640    #[test]
641    fn test_32() {
642        let params = crate::config::endpoint::Params::builder()
643            .region("cn-north-1".to_string())
644            .use_fips(true)
645            .use_dual_stack(true)
646            .build()
647            .expect("invalid params");
648        let resolver = crate::config::endpoint::DefaultResolver::new();
649        let endpoint = resolver.resolve_endpoint(&params);
650        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.cn-north-1.api.amazonwebservices.com.cn");
651        assert_eq!(
652            endpoint,
653            ::aws_smithy_types::endpoint::Endpoint::builder()
654                .url("https://sts-fips.cn-north-1.api.amazonwebservices.com.cn")
655                .build()
656        );
657    }
658
659    /// For region cn-north-1 with FIPS enabled and DualStack disabled
660    #[test]
661    fn test_33() {
662        let params = crate::config::endpoint::Params::builder()
663            .region("cn-north-1".to_string())
664            .use_fips(true)
665            .use_dual_stack(false)
666            .build()
667            .expect("invalid params");
668        let resolver = crate::config::endpoint::DefaultResolver::new();
669        let endpoint = resolver.resolve_endpoint(&params);
670        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.cn-north-1.amazonaws.com.cn");
671        assert_eq!(
672            endpoint,
673            ::aws_smithy_types::endpoint::Endpoint::builder()
674                .url("https://sts-fips.cn-north-1.amazonaws.com.cn")
675                .build()
676        );
677    }
678
679    /// For region cn-north-1 with FIPS disabled and DualStack enabled
680    #[test]
681    fn test_34() {
682        let params = crate::config::endpoint::Params::builder()
683            .region("cn-north-1".to_string())
684            .use_fips(false)
685            .use_dual_stack(true)
686            .build()
687            .expect("invalid params");
688        let resolver = crate::config::endpoint::DefaultResolver::new();
689        let endpoint = resolver.resolve_endpoint(&params);
690        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.cn-north-1.api.amazonwebservices.com.cn");
691        assert_eq!(
692            endpoint,
693            ::aws_smithy_types::endpoint::Endpoint::builder()
694                .url("https://sts.cn-north-1.api.amazonwebservices.com.cn")
695                .build()
696        );
697    }
698
699    /// For region us-gov-east-1 with FIPS disabled and DualStack disabled
700    #[test]
701    fn test_35() {
702        let params = crate::config::endpoint::Params::builder()
703            .region("us-gov-east-1".to_string())
704            .use_fips(false)
705            .use_dual_stack(false)
706            .build()
707            .expect("invalid params");
708        let resolver = crate::config::endpoint::DefaultResolver::new();
709        let endpoint = resolver.resolve_endpoint(&params);
710        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-gov-east-1.amazonaws.com");
711        assert_eq!(
712            endpoint,
713            ::aws_smithy_types::endpoint::Endpoint::builder()
714                .url("https://sts.us-gov-east-1.amazonaws.com")
715                .build()
716        );
717    }
718
719    /// For region us-gov-east-1 with FIPS enabled and DualStack disabled
720    #[test]
721    fn test_36() {
722        let params = crate::config::endpoint::Params::builder()
723            .region("us-gov-east-1".to_string())
724            .use_fips(true)
725            .use_dual_stack(false)
726            .build()
727            .expect("invalid params");
728        let resolver = crate::config::endpoint::DefaultResolver::new();
729        let endpoint = resolver.resolve_endpoint(&params);
730        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-gov-east-1.amazonaws.com");
731        assert_eq!(
732            endpoint,
733            ::aws_smithy_types::endpoint::Endpoint::builder()
734                .url("https://sts.us-gov-east-1.amazonaws.com")
735                .build()
736        );
737    }
738
739    /// For region us-gov-west-1 with FIPS disabled and DualStack disabled
740    #[test]
741    fn test_37() {
742        let params = crate::config::endpoint::Params::builder()
743            .region("us-gov-west-1".to_string())
744            .use_fips(false)
745            .use_dual_stack(false)
746            .build()
747            .expect("invalid params");
748        let resolver = crate::config::endpoint::DefaultResolver::new();
749        let endpoint = resolver.resolve_endpoint(&params);
750        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-gov-west-1.amazonaws.com");
751        assert_eq!(
752            endpoint,
753            ::aws_smithy_types::endpoint::Endpoint::builder()
754                .url("https://sts.us-gov-west-1.amazonaws.com")
755                .build()
756        );
757    }
758
759    /// For region us-gov-west-1 with FIPS enabled and DualStack disabled
760    #[test]
761    fn test_38() {
762        let params = crate::config::endpoint::Params::builder()
763            .region("us-gov-west-1".to_string())
764            .use_fips(true)
765            .use_dual_stack(false)
766            .build()
767            .expect("invalid params");
768        let resolver = crate::config::endpoint::DefaultResolver::new();
769        let endpoint = resolver.resolve_endpoint(&params);
770        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-gov-west-1.amazonaws.com");
771        assert_eq!(
772            endpoint,
773            ::aws_smithy_types::endpoint::Endpoint::builder()
774                .url("https://sts.us-gov-west-1.amazonaws.com")
775                .build()
776        );
777    }
778
779    /// For region us-gov-east-1 with FIPS enabled and DualStack enabled
780    #[test]
781    fn test_39() {
782        let params = crate::config::endpoint::Params::builder()
783            .region("us-gov-east-1".to_string())
784            .use_fips(true)
785            .use_dual_stack(true)
786            .build()
787            .expect("invalid params");
788        let resolver = crate::config::endpoint::DefaultResolver::new();
789        let endpoint = resolver.resolve_endpoint(&params);
790        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.us-gov-east-1.api.aws");
791        assert_eq!(
792            endpoint,
793            ::aws_smithy_types::endpoint::Endpoint::builder()
794                .url("https://sts-fips.us-gov-east-1.api.aws")
795                .build()
796        );
797    }
798
799    /// For region us-gov-east-1 with FIPS disabled and DualStack enabled
800    #[test]
801    fn test_40() {
802        let params = crate::config::endpoint::Params::builder()
803            .region("us-gov-east-1".to_string())
804            .use_fips(false)
805            .use_dual_stack(true)
806            .build()
807            .expect("invalid params");
808        let resolver = crate::config::endpoint::DefaultResolver::new();
809        let endpoint = resolver.resolve_endpoint(&params);
810        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-gov-east-1.api.aws");
811        assert_eq!(
812            endpoint,
813            ::aws_smithy_types::endpoint::Endpoint::builder()
814                .url("https://sts.us-gov-east-1.api.aws")
815                .build()
816        );
817    }
818
819    /// For region us-iso-east-1 with FIPS disabled and DualStack disabled
820    #[test]
821    fn test_41() {
822        let params = crate::config::endpoint::Params::builder()
823            .region("us-iso-east-1".to_string())
824            .use_fips(false)
825            .use_dual_stack(false)
826            .build()
827            .expect("invalid params");
828        let resolver = crate::config::endpoint::DefaultResolver::new();
829        let endpoint = resolver.resolve_endpoint(&params);
830        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-iso-east-1.c2s.ic.gov");
831        assert_eq!(
832            endpoint,
833            ::aws_smithy_types::endpoint::Endpoint::builder()
834                .url("https://sts.us-iso-east-1.c2s.ic.gov")
835                .build()
836        );
837    }
838
839    /// For region us-iso-west-1 with FIPS disabled and DualStack disabled
840    #[test]
841    fn test_42() {
842        let params = crate::config::endpoint::Params::builder()
843            .region("us-iso-west-1".to_string())
844            .use_fips(false)
845            .use_dual_stack(false)
846            .build()
847            .expect("invalid params");
848        let resolver = crate::config::endpoint::DefaultResolver::new();
849        let endpoint = resolver.resolve_endpoint(&params);
850        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-iso-west-1.c2s.ic.gov");
851        assert_eq!(
852            endpoint,
853            ::aws_smithy_types::endpoint::Endpoint::builder()
854                .url("https://sts.us-iso-west-1.c2s.ic.gov")
855                .build()
856        );
857    }
858
859    /// For region us-iso-east-1 with FIPS enabled and DualStack enabled
860    #[test]
861    fn test_43() {
862        let params = crate::config::endpoint::Params::builder()
863            .region("us-iso-east-1".to_string())
864            .use_fips(true)
865            .use_dual_stack(true)
866            .build()
867            .expect("invalid params");
868        let resolver = crate::config::endpoint::DefaultResolver::new();
869        let endpoint = resolver.resolve_endpoint(&params);
870        let error = endpoint.expect_err("expected error: FIPS and DualStack are enabled, but this partition does not support one or both [For region us-iso-east-1 with FIPS enabled and DualStack enabled]");
871        assert_eq!(
872            format!("{}", error),
873            "FIPS and DualStack are enabled, but this partition does not support one or both"
874        )
875    }
876
877    /// For region us-iso-east-1 with FIPS enabled and DualStack disabled
878    #[test]
879    fn test_44() {
880        let params = crate::config::endpoint::Params::builder()
881            .region("us-iso-east-1".to_string())
882            .use_fips(true)
883            .use_dual_stack(false)
884            .build()
885            .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-fips.us-iso-east-1.c2s.ic.gov");
889        assert_eq!(
890            endpoint,
891            ::aws_smithy_types::endpoint::Endpoint::builder()
892                .url("https://sts-fips.us-iso-east-1.c2s.ic.gov")
893                .build()
894        );
895    }
896
897    /// For region us-iso-east-1 with FIPS disabled and DualStack enabled
898    #[test]
899    fn test_45() {
900        let params = crate::config::endpoint::Params::builder()
901            .region("us-iso-east-1".to_string())
902            .use_fips(false)
903            .use_dual_stack(true)
904            .build()
905            .expect("invalid params");
906        let resolver = crate::config::endpoint::DefaultResolver::new();
907        let endpoint = resolver.resolve_endpoint(&params);
908        let error = endpoint.expect_err("expected error: DualStack is enabled but this partition does not support DualStack [For region us-iso-east-1 with FIPS disabled and DualStack enabled]");
909        assert_eq!(format!("{}", error), "DualStack is enabled but this partition does not support DualStack")
910    }
911
912    /// For region us-isob-east-1 with FIPS disabled and DualStack disabled
913    #[test]
914    fn test_46() {
915        let params = crate::config::endpoint::Params::builder()
916            .region("us-isob-east-1".to_string())
917            .use_fips(false)
918            .use_dual_stack(false)
919            .build()
920            .expect("invalid params");
921        let resolver = crate::config::endpoint::DefaultResolver::new();
922        let endpoint = resolver.resolve_endpoint(&params);
923        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-isob-east-1.sc2s.sgov.gov");
924        assert_eq!(
925            endpoint,
926            ::aws_smithy_types::endpoint::Endpoint::builder()
927                .url("https://sts.us-isob-east-1.sc2s.sgov.gov")
928                .build()
929        );
930    }
931
932    /// For region us-isob-east-1 with FIPS enabled and DualStack enabled
933    #[test]
934    fn test_47() {
935        let params = crate::config::endpoint::Params::builder()
936            .region("us-isob-east-1".to_string())
937            .use_fips(true)
938            .use_dual_stack(true)
939            .build()
940            .expect("invalid params");
941        let resolver = crate::config::endpoint::DefaultResolver::new();
942        let endpoint = resolver.resolve_endpoint(&params);
943        let error = endpoint.expect_err("expected error: FIPS and DualStack are enabled, but this partition does not support one or both [For region us-isob-east-1 with FIPS enabled and DualStack enabled]");
944        assert_eq!(
945            format!("{}", error),
946            "FIPS and DualStack are enabled, but this partition does not support one or both"
947        )
948    }
949
950    /// For region us-isob-east-1 with FIPS enabled and DualStack disabled
951    #[test]
952    fn test_48() {
953        let params = crate::config::endpoint::Params::builder()
954            .region("us-isob-east-1".to_string())
955            .use_fips(true)
956            .use_dual_stack(false)
957            .build()
958            .expect("invalid params");
959        let resolver = crate::config::endpoint::DefaultResolver::new();
960        let endpoint = resolver.resolve_endpoint(&params);
961        let endpoint = endpoint.expect("Expected valid endpoint: https://sts-fips.us-isob-east-1.sc2s.sgov.gov");
962        assert_eq!(
963            endpoint,
964            ::aws_smithy_types::endpoint::Endpoint::builder()
965                .url("https://sts-fips.us-isob-east-1.sc2s.sgov.gov")
966                .build()
967        );
968    }
969
970    /// For region us-isob-east-1 with FIPS disabled and DualStack enabled
971    #[test]
972    fn test_49() {
973        let params = crate::config::endpoint::Params::builder()
974            .region("us-isob-east-1".to_string())
975            .use_fips(false)
976            .use_dual_stack(true)
977            .build()
978            .expect("invalid params");
979        let resolver = crate::config::endpoint::DefaultResolver::new();
980        let endpoint = resolver.resolve_endpoint(&params);
981        let error = endpoint.expect_err("expected error: DualStack is enabled but this partition does not support DualStack [For region us-isob-east-1 with FIPS disabled and DualStack enabled]");
982        assert_eq!(format!("{}", error), "DualStack is enabled but this partition does not support DualStack")
983    }
984
985    /// For custom endpoint with region set and fips disabled and dualstack disabled
986    #[test]
987    fn test_50() {
988        let params = crate::config::endpoint::Params::builder()
989            .region("us-east-1".to_string())
990            .use_fips(false)
991            .use_dual_stack(false)
992            .endpoint("https://example.com".to_string())
993            .build()
994            .expect("invalid params");
995        let resolver = crate::config::endpoint::DefaultResolver::new();
996        let endpoint = resolver.resolve_endpoint(&params);
997        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
998        assert_eq!(
999            endpoint,
1000            ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com").build()
1001        );
1002    }
1003
1004    /// For custom endpoint with region not set and fips disabled and dualstack disabled
1005    #[test]
1006    fn test_51() {
1007        let params = crate::config::endpoint::Params::builder()
1008            .use_fips(false)
1009            .use_dual_stack(false)
1010            .endpoint("https://example.com".to_string())
1011            .build()
1012            .expect("invalid params");
1013        let resolver = crate::config::endpoint::DefaultResolver::new();
1014        let endpoint = resolver.resolve_endpoint(&params);
1015        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
1016        assert_eq!(
1017            endpoint,
1018            ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com").build()
1019        );
1020    }
1021
1022    /// For custom endpoint with fips enabled and dualstack disabled
1023    #[test]
1024    fn test_52() {
1025        let params = crate::config::endpoint::Params::builder()
1026            .region("us-east-1".to_string())
1027            .use_fips(true)
1028            .use_dual_stack(false)
1029            .endpoint("https://example.com".to_string())
1030            .build()
1031            .expect("invalid params");
1032        let resolver = crate::config::endpoint::DefaultResolver::new();
1033        let endpoint = resolver.resolve_endpoint(&params);
1034        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]");
1035        assert_eq!(format!("{}", error), "Invalid Configuration: FIPS and custom endpoint are not supported")
1036    }
1037
1038    /// For custom endpoint with fips disabled and dualstack enabled
1039    #[test]
1040    fn test_53() {
1041        let params = crate::config::endpoint::Params::builder()
1042            .region("us-east-1".to_string())
1043            .use_fips(false)
1044            .use_dual_stack(true)
1045            .endpoint("https://example.com".to_string())
1046            .build()
1047            .expect("invalid params");
1048        let resolver = crate::config::endpoint::DefaultResolver::new();
1049        let endpoint = resolver.resolve_endpoint(&params);
1050        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]");
1051        assert_eq!(
1052            format!("{}", error),
1053            "Invalid Configuration: Dualstack and custom endpoint are not supported"
1054        )
1055    }
1056
1057    /// Missing region
1058    #[test]
1059    fn test_54() {
1060        let params = crate::config::endpoint::Params::builder().build().expect("invalid params");
1061        let resolver = crate::config::endpoint::DefaultResolver::new();
1062        let endpoint = resolver.resolve_endpoint(&params);
1063        let error = endpoint.expect_err("expected error: Invalid Configuration: Missing Region [Missing region]");
1064        assert_eq!(format!("{}", error), "Invalid Configuration: Missing Region")
1065    }
1066
1067    /// UseGlobalEndpoint with legacy region `ap-northeast-1`
1068    #[test]
1069    fn test_55() {
1070        let params = crate::config::endpoint::Params::builder()
1071            .region("ap-northeast-1".to_string())
1072            .use_fips(false)
1073            .use_dual_stack(false)
1074            .use_global_endpoint(true)
1075            .build()
1076            .expect("invalid params");
1077        let resolver = crate::config::endpoint::DefaultResolver::new();
1078        let endpoint = resolver.resolve_endpoint(&params);
1079        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1080        assert_eq!(
1081            endpoint,
1082            ::aws_smithy_types::endpoint::Endpoint::builder()
1083                .url("https://sts.amazonaws.com")
1084                .property(
1085                    "authSchemes",
1086                    vec![::aws_smithy_types::Document::from({
1087                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1088                        out.insert("name".to_string(), "sigv4".to_string().into());
1089                        out.insert("signingName".to_string(), "sts".to_string().into());
1090                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1091                        out
1092                    })]
1093                )
1094                .build()
1095        );
1096    }
1097
1098    /// UseGlobalEndpoint with legacy region `ap-south-1`
1099    #[test]
1100    fn test_56() {
1101        let params = crate::config::endpoint::Params::builder()
1102            .region("ap-south-1".to_string())
1103            .use_fips(false)
1104            .use_dual_stack(false)
1105            .use_global_endpoint(true)
1106            .build()
1107            .expect("invalid params");
1108        let resolver = crate::config::endpoint::DefaultResolver::new();
1109        let endpoint = resolver.resolve_endpoint(&params);
1110        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1111        assert_eq!(
1112            endpoint,
1113            ::aws_smithy_types::endpoint::Endpoint::builder()
1114                .url("https://sts.amazonaws.com")
1115                .property(
1116                    "authSchemes",
1117                    vec![::aws_smithy_types::Document::from({
1118                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1119                        out.insert("name".to_string(), "sigv4".to_string().into());
1120                        out.insert("signingName".to_string(), "sts".to_string().into());
1121                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1122                        out
1123                    })]
1124                )
1125                .build()
1126        );
1127    }
1128
1129    /// UseGlobalEndpoint with legacy region `ap-southeast-1`
1130    #[test]
1131    fn test_57() {
1132        let params = crate::config::endpoint::Params::builder()
1133            .region("ap-southeast-1".to_string())
1134            .use_fips(false)
1135            .use_dual_stack(false)
1136            .use_global_endpoint(true)
1137            .build()
1138            .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!(
1143            endpoint,
1144            ::aws_smithy_types::endpoint::Endpoint::builder()
1145                .url("https://sts.amazonaws.com")
1146                .property(
1147                    "authSchemes",
1148                    vec![::aws_smithy_types::Document::from({
1149                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1150                        out.insert("name".to_string(), "sigv4".to_string().into());
1151                        out.insert("signingName".to_string(), "sts".to_string().into());
1152                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1153                        out
1154                    })]
1155                )
1156                .build()
1157        );
1158    }
1159
1160    /// UseGlobalEndpoint with legacy region `ap-southeast-2`
1161    #[test]
1162    fn test_58() {
1163        let params = crate::config::endpoint::Params::builder()
1164            .region("ap-southeast-2".to_string())
1165            .use_fips(false)
1166            .use_dual_stack(false)
1167            .use_global_endpoint(true)
1168            .build()
1169            .expect("invalid params");
1170        let resolver = crate::config::endpoint::DefaultResolver::new();
1171        let endpoint = resolver.resolve_endpoint(&params);
1172        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1173        assert_eq!(
1174            endpoint,
1175            ::aws_smithy_types::endpoint::Endpoint::builder()
1176                .url("https://sts.amazonaws.com")
1177                .property(
1178                    "authSchemes",
1179                    vec![::aws_smithy_types::Document::from({
1180                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1181                        out.insert("name".to_string(), "sigv4".to_string().into());
1182                        out.insert("signingName".to_string(), "sts".to_string().into());
1183                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1184                        out
1185                    })]
1186                )
1187                .build()
1188        );
1189    }
1190
1191    /// UseGlobalEndpoint with legacy region `aws-global`
1192    #[test]
1193    fn test_59() {
1194        let params = crate::config::endpoint::Params::builder()
1195            .region("aws-global".to_string())
1196            .use_fips(false)
1197            .use_dual_stack(false)
1198            .use_global_endpoint(true)
1199            .build()
1200            .expect("invalid params");
1201        let resolver = crate::config::endpoint::DefaultResolver::new();
1202        let endpoint = resolver.resolve_endpoint(&params);
1203        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1204        assert_eq!(
1205            endpoint,
1206            ::aws_smithy_types::endpoint::Endpoint::builder()
1207                .url("https://sts.amazonaws.com")
1208                .property(
1209                    "authSchemes",
1210                    vec![::aws_smithy_types::Document::from({
1211                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1212                        out.insert("name".to_string(), "sigv4".to_string().into());
1213                        out.insert("signingName".to_string(), "sts".to_string().into());
1214                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1215                        out
1216                    })]
1217                )
1218                .build()
1219        );
1220    }
1221
1222    /// UseGlobalEndpoint with legacy region `ca-central-1`
1223    #[test]
1224    fn test_60() {
1225        let params = crate::config::endpoint::Params::builder()
1226            .region("ca-central-1".to_string())
1227            .use_fips(false)
1228            .use_dual_stack(false)
1229            .use_global_endpoint(true)
1230            .build()
1231            .expect("invalid params");
1232        let resolver = crate::config::endpoint::DefaultResolver::new();
1233        let endpoint = resolver.resolve_endpoint(&params);
1234        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1235        assert_eq!(
1236            endpoint,
1237            ::aws_smithy_types::endpoint::Endpoint::builder()
1238                .url("https://sts.amazonaws.com")
1239                .property(
1240                    "authSchemes",
1241                    vec![::aws_smithy_types::Document::from({
1242                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1243                        out.insert("name".to_string(), "sigv4".to_string().into());
1244                        out.insert("signingName".to_string(), "sts".to_string().into());
1245                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1246                        out
1247                    })]
1248                )
1249                .build()
1250        );
1251    }
1252
1253    /// UseGlobalEndpoint with legacy region `eu-central-1`
1254    #[test]
1255    fn test_61() {
1256        let params = crate::config::endpoint::Params::builder()
1257            .region("eu-central-1".to_string())
1258            .use_fips(false)
1259            .use_dual_stack(false)
1260            .use_global_endpoint(true)
1261            .build()
1262            .expect("invalid params");
1263        let resolver = crate::config::endpoint::DefaultResolver::new();
1264        let endpoint = resolver.resolve_endpoint(&params);
1265        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1266        assert_eq!(
1267            endpoint,
1268            ::aws_smithy_types::endpoint::Endpoint::builder()
1269                .url("https://sts.amazonaws.com")
1270                .property(
1271                    "authSchemes",
1272                    vec![::aws_smithy_types::Document::from({
1273                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1274                        out.insert("name".to_string(), "sigv4".to_string().into());
1275                        out.insert("signingName".to_string(), "sts".to_string().into());
1276                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1277                        out
1278                    })]
1279                )
1280                .build()
1281        );
1282    }
1283
1284    /// UseGlobalEndpoint with legacy region `eu-north-1`
1285    #[test]
1286    fn test_62() {
1287        let params = crate::config::endpoint::Params::builder()
1288            .region("eu-north-1".to_string())
1289            .use_fips(false)
1290            .use_dual_stack(false)
1291            .use_global_endpoint(true)
1292            .build()
1293            .expect("invalid params");
1294        let resolver = crate::config::endpoint::DefaultResolver::new();
1295        let endpoint = resolver.resolve_endpoint(&params);
1296        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1297        assert_eq!(
1298            endpoint,
1299            ::aws_smithy_types::endpoint::Endpoint::builder()
1300                .url("https://sts.amazonaws.com")
1301                .property(
1302                    "authSchemes",
1303                    vec![::aws_smithy_types::Document::from({
1304                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1305                        out.insert("name".to_string(), "sigv4".to_string().into());
1306                        out.insert("signingName".to_string(), "sts".to_string().into());
1307                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1308                        out
1309                    })]
1310                )
1311                .build()
1312        );
1313    }
1314
1315    /// UseGlobalEndpoint with legacy region `eu-west-1`
1316    #[test]
1317    fn test_63() {
1318        let params = crate::config::endpoint::Params::builder()
1319            .region("eu-west-1".to_string())
1320            .use_fips(false)
1321            .use_dual_stack(false)
1322            .use_global_endpoint(true)
1323            .build()
1324            .expect("invalid params");
1325        let resolver = crate::config::endpoint::DefaultResolver::new();
1326        let endpoint = resolver.resolve_endpoint(&params);
1327        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1328        assert_eq!(
1329            endpoint,
1330            ::aws_smithy_types::endpoint::Endpoint::builder()
1331                .url("https://sts.amazonaws.com")
1332                .property(
1333                    "authSchemes",
1334                    vec![::aws_smithy_types::Document::from({
1335                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1336                        out.insert("name".to_string(), "sigv4".to_string().into());
1337                        out.insert("signingName".to_string(), "sts".to_string().into());
1338                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1339                        out
1340                    })]
1341                )
1342                .build()
1343        );
1344    }
1345
1346    /// UseGlobalEndpoint with legacy region `eu-west-2`
1347    #[test]
1348    fn test_64() {
1349        let params = crate::config::endpoint::Params::builder()
1350            .region("eu-west-2".to_string())
1351            .use_fips(false)
1352            .use_dual_stack(false)
1353            .use_global_endpoint(true)
1354            .build()
1355            .expect("invalid params");
1356        let resolver = crate::config::endpoint::DefaultResolver::new();
1357        let endpoint = resolver.resolve_endpoint(&params);
1358        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1359        assert_eq!(
1360            endpoint,
1361            ::aws_smithy_types::endpoint::Endpoint::builder()
1362                .url("https://sts.amazonaws.com")
1363                .property(
1364                    "authSchemes",
1365                    vec![::aws_smithy_types::Document::from({
1366                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1367                        out.insert("name".to_string(), "sigv4".to_string().into());
1368                        out.insert("signingName".to_string(), "sts".to_string().into());
1369                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1370                        out
1371                    })]
1372                )
1373                .build()
1374        );
1375    }
1376
1377    /// UseGlobalEndpoint with legacy region `eu-west-3`
1378    #[test]
1379    fn test_65() {
1380        let params = crate::config::endpoint::Params::builder()
1381            .region("eu-west-3".to_string())
1382            .use_fips(false)
1383            .use_dual_stack(false)
1384            .use_global_endpoint(true)
1385            .build()
1386            .expect("invalid params");
1387        let resolver = crate::config::endpoint::DefaultResolver::new();
1388        let endpoint = resolver.resolve_endpoint(&params);
1389        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1390        assert_eq!(
1391            endpoint,
1392            ::aws_smithy_types::endpoint::Endpoint::builder()
1393                .url("https://sts.amazonaws.com")
1394                .property(
1395                    "authSchemes",
1396                    vec![::aws_smithy_types::Document::from({
1397                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1398                        out.insert("name".to_string(), "sigv4".to_string().into());
1399                        out.insert("signingName".to_string(), "sts".to_string().into());
1400                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1401                        out
1402                    })]
1403                )
1404                .build()
1405        );
1406    }
1407
1408    /// UseGlobalEndpoint with legacy region `sa-east-1`
1409    #[test]
1410    fn test_66() {
1411        let params = crate::config::endpoint::Params::builder()
1412            .region("sa-east-1".to_string())
1413            .use_fips(false)
1414            .use_dual_stack(false)
1415            .use_global_endpoint(true)
1416            .build()
1417            .expect("invalid params");
1418        let resolver = crate::config::endpoint::DefaultResolver::new();
1419        let endpoint = resolver.resolve_endpoint(&params);
1420        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1421        assert_eq!(
1422            endpoint,
1423            ::aws_smithy_types::endpoint::Endpoint::builder()
1424                .url("https://sts.amazonaws.com")
1425                .property(
1426                    "authSchemes",
1427                    vec![::aws_smithy_types::Document::from({
1428                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1429                        out.insert("name".to_string(), "sigv4".to_string().into());
1430                        out.insert("signingName".to_string(), "sts".to_string().into());
1431                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1432                        out
1433                    })]
1434                )
1435                .build()
1436        );
1437    }
1438
1439    /// UseGlobalEndpoint with legacy region `us-east-1`
1440    #[test]
1441    fn test_67() {
1442        let params = crate::config::endpoint::Params::builder()
1443            .region("us-east-1".to_string())
1444            .use_fips(false)
1445            .use_dual_stack(false)
1446            .use_global_endpoint(true)
1447            .build()
1448            .expect("invalid params");
1449        let resolver = crate::config::endpoint::DefaultResolver::new();
1450        let endpoint = resolver.resolve_endpoint(&params);
1451        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1452        assert_eq!(
1453            endpoint,
1454            ::aws_smithy_types::endpoint::Endpoint::builder()
1455                .url("https://sts.amazonaws.com")
1456                .property(
1457                    "authSchemes",
1458                    vec![::aws_smithy_types::Document::from({
1459                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1460                        out.insert("name".to_string(), "sigv4".to_string().into());
1461                        out.insert("signingName".to_string(), "sts".to_string().into());
1462                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1463                        out
1464                    })]
1465                )
1466                .build()
1467        );
1468    }
1469
1470    /// UseGlobalEndpoint with legacy region `us-east-2`
1471    #[test]
1472    fn test_68() {
1473        let params = crate::config::endpoint::Params::builder()
1474            .region("us-east-2".to_string())
1475            .use_fips(false)
1476            .use_dual_stack(false)
1477            .use_global_endpoint(true)
1478            .build()
1479            .expect("invalid params");
1480        let resolver = crate::config::endpoint::DefaultResolver::new();
1481        let endpoint = resolver.resolve_endpoint(&params);
1482        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1483        assert_eq!(
1484            endpoint,
1485            ::aws_smithy_types::endpoint::Endpoint::builder()
1486                .url("https://sts.amazonaws.com")
1487                .property(
1488                    "authSchemes",
1489                    vec![::aws_smithy_types::Document::from({
1490                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1491                        out.insert("name".to_string(), "sigv4".to_string().into());
1492                        out.insert("signingName".to_string(), "sts".to_string().into());
1493                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1494                        out
1495                    })]
1496                )
1497                .build()
1498        );
1499    }
1500
1501    /// UseGlobalEndpoint with legacy region `us-west-1`
1502    #[test]
1503    fn test_69() {
1504        let params = crate::config::endpoint::Params::builder()
1505            .region("us-west-1".to_string())
1506            .use_fips(false)
1507            .use_dual_stack(false)
1508            .use_global_endpoint(true)
1509            .build()
1510            .expect("invalid params");
1511        let resolver = crate::config::endpoint::DefaultResolver::new();
1512        let endpoint = resolver.resolve_endpoint(&params);
1513        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1514        assert_eq!(
1515            endpoint,
1516            ::aws_smithy_types::endpoint::Endpoint::builder()
1517                .url("https://sts.amazonaws.com")
1518                .property(
1519                    "authSchemes",
1520                    vec![::aws_smithy_types::Document::from({
1521                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1522                        out.insert("name".to_string(), "sigv4".to_string().into());
1523                        out.insert("signingName".to_string(), "sts".to_string().into());
1524                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1525                        out
1526                    })]
1527                )
1528                .build()
1529        );
1530    }
1531
1532    /// UseGlobalEndpoint with legacy region `us-west-2`
1533    #[test]
1534    fn test_70() {
1535        let params = crate::config::endpoint::Params::builder()
1536            .region("us-west-2".to_string())
1537            .use_fips(false)
1538            .use_dual_stack(false)
1539            .use_global_endpoint(true)
1540            .build()
1541            .expect("invalid params");
1542        let resolver = crate::config::endpoint::DefaultResolver::new();
1543        let endpoint = resolver.resolve_endpoint(&params);
1544        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.amazonaws.com");
1545        assert_eq!(
1546            endpoint,
1547            ::aws_smithy_types::endpoint::Endpoint::builder()
1548                .url("https://sts.amazonaws.com")
1549                .property(
1550                    "authSchemes",
1551                    vec![::aws_smithy_types::Document::from({
1552                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1553                        out.insert("name".to_string(), "sigv4".to_string().into());
1554                        out.insert("signingName".to_string(), "sts".to_string().into());
1555                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1556                        out
1557                    })]
1558                )
1559                .build()
1560        );
1561    }
1562
1563    /// UseGlobalEndpoint with Non-legacy region `us-east-3`
1564    #[test]
1565    fn test_71() {
1566        let params = crate::config::endpoint::Params::builder()
1567            .region("us-east-3".to_string())
1568            .use_fips(false)
1569            .use_dual_stack(false)
1570            .use_global_endpoint(true)
1571            .build()
1572            .expect("invalid params");
1573        let resolver = crate::config::endpoint::DefaultResolver::new();
1574        let endpoint = resolver.resolve_endpoint(&params);
1575        let endpoint = endpoint.expect("Expected valid endpoint: https://sts.us-east-3.amazonaws.com");
1576        assert_eq!(
1577            endpoint,
1578            ::aws_smithy_types::endpoint::Endpoint::builder()
1579                .url("https://sts.us-east-3.amazonaws.com")
1580                .property(
1581                    "authSchemes",
1582                    vec![::aws_smithy_types::Document::from({
1583                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1584                        out.insert("name".to_string(), "sigv4".to_string().into());
1585                        out.insert("signingName".to_string(), "sts".to_string().into());
1586                        out.insert("signingRegion".to_string(), "us-east-3".to_string().into());
1587                        out
1588                    })]
1589                )
1590                .build()
1591        );
1592    }
1593
1594    /// UseGlobalEndpoint with legacy region and custom endpoint
1595    #[test]
1596    fn test_72() {
1597        let params = crate::config::endpoint::Params::builder()
1598            .region("us-west-1".to_string())
1599            .use_fips(false)
1600            .use_dual_stack(false)
1601            .use_global_endpoint(true)
1602            .endpoint("https://example.com".to_string())
1603            .build()
1604            .expect("invalid params");
1605        let resolver = crate::config::endpoint::DefaultResolver::new();
1606        let endpoint = resolver.resolve_endpoint(&params);
1607        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
1608        assert_eq!(
1609            endpoint,
1610            ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com").build()
1611        );
1612    }
1613
1614    /// UseGlobalEndpoint with unset region and custom endpoint
1615    #[test]
1616    fn test_73() {
1617        let params = crate::config::endpoint::Params::builder()
1618            .use_fips(false)
1619            .use_dual_stack(false)
1620            .use_global_endpoint(false)
1621            .endpoint("https://example.com".to_string())
1622            .build()
1623            .expect("invalid params");
1624        let resolver = crate::config::endpoint::DefaultResolver::new();
1625        let endpoint = resolver.resolve_endpoint(&params);
1626        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
1627        assert_eq!(
1628            endpoint,
1629            ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com").build()
1630        );
1631    }
1632}
1633
1634/// Endpoint resolver trait specific to AWS Security Token Service
1635pub trait ResolveEndpoint: ::std::marker::Send + ::std::marker::Sync + ::std::fmt::Debug {
1636    /// Resolve an endpoint with the given parameters
1637    fn resolve_endpoint<'a>(&'a self, params: &'a crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a>;
1638
1639    /// Convert this service-specific resolver into a `SharedEndpointResolver`
1640    ///
1641    /// The resulting resolver will downcast `EndpointResolverParams` into `crate::config::endpoint::Params`.
1642    fn into_shared_resolver(self) -> ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver
1643    where
1644        Self: Sized + 'static,
1645    {
1646        ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver::new(DowncastParams(self))
1647    }
1648}
1649
1650#[derive(Debug)]
1651struct DowncastParams<T>(T);
1652impl<T> ::aws_smithy_runtime_api::client::endpoint::ResolveEndpoint for DowncastParams<T>
1653where
1654    T: ResolveEndpoint,
1655{
1656    fn resolve_endpoint<'a>(
1657        &'a self,
1658        params: &'a ::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams,
1659    ) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a> {
1660        let ep = match params.get::<crate::config::endpoint::Params>() {
1661            Some(params) => self.0.resolve_endpoint(params),
1662            None => ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(Err("params of expected type was not present".into())),
1663        };
1664        ep
1665    }
1666}
1667
1668/// The default endpoint resolver
1669#[derive(Debug, Default)]
1670pub struct DefaultResolver {
1671    partition_resolver: crate::endpoint_lib::partition::PartitionResolver,
1672}
1673
1674impl DefaultResolver {
1675    /// Create a new endpoint resolver with default settings
1676    pub fn new() -> Self {
1677        Self {
1678            partition_resolver: crate::endpoint_lib::DEFAULT_PARTITION_RESOLVER.clone(),
1679        }
1680    }
1681
1682    fn resolve_endpoint(
1683        &self,
1684        params: &crate::config::endpoint::Params,
1685    ) -> Result<::aws_smithy_types::endpoint::Endpoint, ::aws_smithy_runtime_api::box_error::BoxError> {
1686        let mut diagnostic_collector = crate::endpoint_lib::diagnostic::DiagnosticCollector::new();
1687        Ok(
1688            crate::config::endpoint::internals::resolve_endpoint(params, &mut diagnostic_collector, &self.partition_resolver)
1689                .map_err(|err| err.with_source(diagnostic_collector.take_last_error()))?,
1690        )
1691    }
1692}
1693
1694impl crate::config::endpoint::ResolveEndpoint for DefaultResolver {
1695    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture {
1696        ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(self.resolve_endpoint(params))
1697    }
1698}
1699
1700#[non_exhaustive]
1701#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
1702/// Configuration parameters for resolving the correct endpoint
1703pub struct Params {
1704    /// The AWS region used to dispatch the request.
1705    pub(crate) region: ::std::option::Option<::std::string::String>,
1706    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
1707    pub(crate) use_dual_stack: bool,
1708    /// 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.
1709    pub(crate) use_fips: bool,
1710    /// Override the endpoint used to send this request
1711    pub(crate) endpoint: ::std::option::Option<::std::string::String>,
1712    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
1713    pub(crate) use_global_endpoint: bool,
1714}
1715impl Params {
1716    /// Create a builder for [`Params`]
1717    pub fn builder() -> crate::config::endpoint::ParamsBuilder {
1718        crate::config::endpoint::ParamsBuilder::default()
1719    }
1720    /// The AWS region used to dispatch the request.
1721    pub fn region(&self) -> ::std::option::Option<&str> {
1722        self.region.as_deref()
1723    }
1724    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
1725    pub fn use_dual_stack(&self) -> ::std::option::Option<bool> {
1726        Some(self.use_dual_stack)
1727    }
1728    /// 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.
1729    pub fn use_fips(&self) -> ::std::option::Option<bool> {
1730        Some(self.use_fips)
1731    }
1732    /// Override the endpoint used to send this request
1733    pub fn endpoint(&self) -> ::std::option::Option<&str> {
1734        self.endpoint.as_deref()
1735    }
1736    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
1737    pub fn use_global_endpoint(&self) -> ::std::option::Option<bool> {
1738        Some(self.use_global_endpoint)
1739    }
1740}
1741
1742/// Builder for [`Params`]
1743#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
1744pub struct ParamsBuilder {
1745    region: ::std::option::Option<::std::string::String>,
1746    use_dual_stack: ::std::option::Option<bool>,
1747    use_fips: ::std::option::Option<bool>,
1748    endpoint: ::std::option::Option<::std::string::String>,
1749    use_global_endpoint: ::std::option::Option<bool>,
1750}
1751impl ParamsBuilder {
1752    /// Consume this builder, creating [`Params`].
1753    pub fn build(self) -> ::std::result::Result<crate::config::endpoint::Params, crate::config::endpoint::InvalidParams> {
1754        Ok(
1755            #[allow(clippy::unnecessary_lazy_evaluations)]
1756            crate::config::endpoint::Params {
1757                region: self.region,
1758                use_dual_stack: self
1759                    .use_dual_stack
1760                    .or_else(|| Some(false))
1761                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("use_dual_stack"))?,
1762                use_fips: self
1763                    .use_fips
1764                    .or_else(|| Some(false))
1765                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("use_fips"))?,
1766                endpoint: self.endpoint,
1767                use_global_endpoint: self
1768                    .use_global_endpoint
1769                    .or_else(|| Some(false))
1770                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("use_global_endpoint"))?,
1771            },
1772        )
1773    }
1774    /// Sets the value for region
1775    ///
1776    /// The AWS region used to dispatch the request.
1777    pub fn region(mut self, value: impl Into<::std::string::String>) -> Self {
1778        self.region = Some(value.into());
1779        self
1780    }
1781
1782    /// Sets the value for region
1783    ///
1784    /// The AWS region used to dispatch the request.
1785    pub fn set_region(mut self, param: Option<::std::string::String>) -> Self {
1786        self.region = param;
1787        self
1788    }
1789    /// Sets the value for use_dual_stack
1790    ///
1791    /// When unset, this parameter has a default value of `false`.
1792    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
1793    pub fn use_dual_stack(mut self, value: impl Into<bool>) -> Self {
1794        self.use_dual_stack = Some(value.into());
1795        self
1796    }
1797
1798    /// Sets the value for use_dual_stack
1799    ///
1800    /// When unset, this parameter has a default value of `false`.
1801    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
1802    pub fn set_use_dual_stack(mut self, param: Option<bool>) -> Self {
1803        self.use_dual_stack = param;
1804        self
1805    }
1806    /// Sets the value for use_fips
1807    ///
1808    /// When unset, this parameter has a default value of `false`.
1809    /// 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.
1810    pub fn use_fips(mut self, value: impl Into<bool>) -> Self {
1811        self.use_fips = Some(value.into());
1812        self
1813    }
1814
1815    /// Sets the value for use_fips
1816    ///
1817    /// When unset, this parameter has a default value of `false`.
1818    /// 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.
1819    pub fn set_use_fips(mut self, param: Option<bool>) -> Self {
1820        self.use_fips = param;
1821        self
1822    }
1823    /// Sets the value for endpoint
1824    ///
1825    /// Override the endpoint used to send this request
1826    pub fn endpoint(mut self, value: impl Into<::std::string::String>) -> Self {
1827        self.endpoint = Some(value.into());
1828        self
1829    }
1830
1831    /// Sets the value for endpoint
1832    ///
1833    /// Override the endpoint used to send this request
1834    pub fn set_endpoint(mut self, param: Option<::std::string::String>) -> Self {
1835        self.endpoint = param;
1836        self
1837    }
1838    /// Sets the value for use_global_endpoint
1839    ///
1840    /// When unset, this parameter has a default value of `false`.
1841    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
1842    pub fn use_global_endpoint(mut self, value: impl Into<bool>) -> Self {
1843        self.use_global_endpoint = Some(value.into());
1844        self
1845    }
1846
1847    /// Sets the value for use_global_endpoint
1848    ///
1849    /// When unset, this parameter has a default value of `false`.
1850    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
1851    pub fn set_use_global_endpoint(mut self, param: Option<bool>) -> Self {
1852        self.use_global_endpoint = param;
1853        self
1854    }
1855}
1856
1857/// An error that occurred during endpoint resolution
1858#[derive(Debug)]
1859pub struct InvalidParams {
1860    field: std::borrow::Cow<'static, str>,
1861}
1862
1863impl InvalidParams {
1864    #[allow(dead_code)]
1865    fn missing(field: &'static str) -> Self {
1866        Self { field: field.into() }
1867    }
1868}
1869
1870impl std::fmt::Display for InvalidParams {
1871    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
1872        write!(f, "a required field was missing: `{}`", self.field)
1873    }
1874}
1875
1876impl std::error::Error for InvalidParams {}
1877
1878mod internals;