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