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