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