aws_sdk_transcribestreaming/config/
endpoint.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver;
3                pub use ::aws_smithy_runtime_api::client::endpoint::EndpointFuture;
4                pub use ::aws_smithy_types::endpoint::Endpoint;
5
6/// Interceptor that tracks endpoint override business metric.
7                #[derive(Debug, Default)]
8                pub(crate) struct EndpointOverrideFeatureTrackerInterceptor;
9
10                #[::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    /// For region ap-northeast-1 with FIPS disabled and DualStack disabled
33                    #[test]
34                    fn test_1() {
35                        let params = crate::config::endpoint::Params::builder()
36    .region("ap-northeast-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(&params);
42                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.ap-northeast-1.amazonaws.com");
43                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.ap-northeast-1.amazonaws.com")
44    .build());
45                    }
46    
47    /// For region ap-northeast-2 with FIPS disabled and DualStack disabled
48                    #[test]
49                    fn test_2() {
50                        let params = crate::config::endpoint::Params::builder()
51    .region("ap-northeast-2".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(&params);
57                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.ap-northeast-2.amazonaws.com");
58                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.ap-northeast-2.amazonaws.com")
59    .build());
60                    }
61    
62    /// For region ap-southeast-2 with FIPS disabled and DualStack disabled
63                    #[test]
64                    fn test_3() {
65                        let params = crate::config::endpoint::Params::builder()
66    .region("ap-southeast-2".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(&params);
72                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.ap-southeast-2.amazonaws.com");
73                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.ap-southeast-2.amazonaws.com")
74    .build());
75                    }
76    
77    /// For region ca-central-1 with FIPS disabled and DualStack disabled
78                    #[test]
79                    fn test_4() {
80                        let params = crate::config::endpoint::Params::builder()
81    .region("ca-central-1".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(&params);
87                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.ca-central-1.amazonaws.com");
88                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.ca-central-1.amazonaws.com")
89    .build());
90                    }
91    
92    /// For region eu-central-1 with FIPS disabled and DualStack disabled
93                    #[test]
94                    fn test_5() {
95                        let params = crate::config::endpoint::Params::builder()
96    .region("eu-central-1".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(&params);
102                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.eu-central-1.amazonaws.com");
103                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.eu-central-1.amazonaws.com")
104    .build());
105                    }
106    
107    /// For region eu-west-1 with FIPS disabled and DualStack disabled
108                    #[test]
109                    fn test_6() {
110                        let params = crate::config::endpoint::Params::builder()
111    .region("eu-west-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(&params);
117                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.eu-west-1.amazonaws.com");
118                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.eu-west-1.amazonaws.com")
119    .build());
120                    }
121    
122    /// For region eu-west-2 with FIPS disabled and DualStack disabled
123                    #[test]
124                    fn test_7() {
125                        let params = crate::config::endpoint::Params::builder()
126    .region("eu-west-2".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(&params);
132                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.eu-west-2.amazonaws.com");
133                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.eu-west-2.amazonaws.com")
134    .build());
135                    }
136    
137    /// For region sa-east-1 with FIPS disabled and DualStack disabled
138                    #[test]
139                    fn test_8() {
140                        let params = crate::config::endpoint::Params::builder()
141    .region("sa-east-1".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(&params);
147                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.sa-east-1.amazonaws.com");
148                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.sa-east-1.amazonaws.com")
149    .build());
150                    }
151    
152    /// For region us-east-1 with FIPS disabled and DualStack disabled
153                    #[test]
154                    fn test_9() {
155                        let params = crate::config::endpoint::Params::builder()
156    .region("us-east-1".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(&params);
162                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-east-1.amazonaws.com");
163                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-east-1.amazonaws.com")
164    .build());
165                    }
166    
167    /// For region us-east-2 with FIPS disabled and DualStack disabled
168                    #[test]
169                    fn test_10() {
170                        let params = crate::config::endpoint::Params::builder()
171    .region("us-east-2".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(&params);
177                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-east-2.amazonaws.com");
178                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-east-2.amazonaws.com")
179    .build());
180                    }
181    
182    /// For region us-west-2 with FIPS disabled and DualStack disabled
183                    #[test]
184                    fn test_11() {
185                        let params = crate::config::endpoint::Params::builder()
186    .region("us-west-2".to_string())
187    .use_fips(false)
188    .use_dual_stack(false)
189    .build().expect("invalid params");
190                        let resolver = crate::config::endpoint::DefaultResolver::new();
191                        let endpoint = resolver.resolve_endpoint(&params);
192                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-west-2.amazonaws.com");
193                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-west-2.amazonaws.com")
194    .build());
195                    }
196    
197    /// For region us-east-1 with FIPS enabled and DualStack enabled
198                    #[test]
199                    fn test_12() {
200                        let params = crate::config::endpoint::Params::builder()
201    .region("us-east-1".to_string())
202    .use_fips(true)
203    .use_dual_stack(true)
204    .build().expect("invalid params");
205                        let resolver = crate::config::endpoint::DefaultResolver::new();
206                        let endpoint = resolver.resolve_endpoint(&params);
207                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-east-1.api.aws");
208                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-east-1.api.aws")
209    .build());
210                    }
211    
212    /// For region us-east-1 with FIPS enabled and DualStack disabled
213                    #[test]
214                    fn test_13() {
215                        let params = crate::config::endpoint::Params::builder()
216    .region("us-east-1".to_string())
217    .use_fips(true)
218    .use_dual_stack(false)
219    .build().expect("invalid params");
220                        let resolver = crate::config::endpoint::DefaultResolver::new();
221                        let endpoint = resolver.resolve_endpoint(&params);
222                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-east-1.amazonaws.com");
223                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-east-1.amazonaws.com")
224    .build());
225                    }
226    
227    /// For region us-east-1 with FIPS disabled and DualStack enabled
228                    #[test]
229                    fn test_14() {
230                        let params = crate::config::endpoint::Params::builder()
231    .region("us-east-1".to_string())
232    .use_fips(false)
233    .use_dual_stack(true)
234    .build().expect("invalid params");
235                        let resolver = crate::config::endpoint::DefaultResolver::new();
236                        let endpoint = resolver.resolve_endpoint(&params);
237                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-east-1.api.aws");
238                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-east-1.api.aws")
239    .build());
240                    }
241    
242    /// For region cn-north-1 with FIPS disabled and DualStack disabled
243                    #[test]
244                    fn test_15() {
245                        let params = crate::config::endpoint::Params::builder()
246    .region("cn-north-1".to_string())
247    .use_fips(false)
248    .use_dual_stack(false)
249    .build().expect("invalid params");
250                        let resolver = crate::config::endpoint::DefaultResolver::new();
251                        let endpoint = resolver.resolve_endpoint(&params);
252                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.cn-north-1.amazonaws.com.cn");
253                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.cn-north-1.amazonaws.com.cn")
254    .build());
255                    }
256    
257    /// For region cn-northwest-1 with FIPS disabled and DualStack disabled
258                    #[test]
259                    fn test_16() {
260                        let params = crate::config::endpoint::Params::builder()
261    .region("cn-northwest-1".to_string())
262    .use_fips(false)
263    .use_dual_stack(false)
264    .build().expect("invalid params");
265                        let resolver = crate::config::endpoint::DefaultResolver::new();
266                        let endpoint = resolver.resolve_endpoint(&params);
267                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.cn-northwest-1.amazonaws.com.cn");
268                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.cn-northwest-1.amazonaws.com.cn")
269    .build());
270                    }
271    
272    /// For region cn-north-1 with FIPS enabled and DualStack enabled
273                    #[test]
274                    fn test_17() {
275                        let params = crate::config::endpoint::Params::builder()
276    .region("cn-north-1".to_string())
277    .use_fips(true)
278    .use_dual_stack(true)
279    .build().expect("invalid params");
280                        let resolver = crate::config::endpoint::DefaultResolver::new();
281                        let endpoint = resolver.resolve_endpoint(&params);
282                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.cn-north-1.api.amazonwebservices.com.cn");
283                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.cn-north-1.api.amazonwebservices.com.cn")
284    .build());
285                    }
286    
287    /// For region cn-north-1 with FIPS enabled and DualStack disabled
288                    #[test]
289                    fn test_18() {
290                        let params = crate::config::endpoint::Params::builder()
291    .region("cn-north-1".to_string())
292    .use_fips(true)
293    .use_dual_stack(false)
294    .build().expect("invalid params");
295                        let resolver = crate::config::endpoint::DefaultResolver::new();
296                        let endpoint = resolver.resolve_endpoint(&params);
297                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.cn-north-1.amazonaws.com.cn");
298                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.cn-north-1.amazonaws.com.cn")
299    .build());
300                    }
301    
302    /// For region cn-north-1 with FIPS disabled and DualStack enabled
303                    #[test]
304                    fn test_19() {
305                        let params = crate::config::endpoint::Params::builder()
306    .region("cn-north-1".to_string())
307    .use_fips(false)
308    .use_dual_stack(true)
309    .build().expect("invalid params");
310                        let resolver = crate::config::endpoint::DefaultResolver::new();
311                        let endpoint = resolver.resolve_endpoint(&params);
312                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.cn-north-1.api.amazonwebservices.com.cn");
313                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.cn-north-1.api.amazonwebservices.com.cn")
314    .build());
315                    }
316    
317    /// For region us-gov-east-1 with FIPS disabled and DualStack disabled
318                    #[test]
319                    fn test_20() {
320                        let params = crate::config::endpoint::Params::builder()
321    .region("us-gov-east-1".to_string())
322    .use_fips(false)
323    .use_dual_stack(false)
324    .build().expect("invalid params");
325                        let resolver = crate::config::endpoint::DefaultResolver::new();
326                        let endpoint = resolver.resolve_endpoint(&params);
327                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-gov-east-1.amazonaws.com");
328                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-gov-east-1.amazonaws.com")
329    .build());
330                    }
331    
332    /// For region us-gov-west-1 with FIPS disabled and DualStack disabled
333                    #[test]
334                    fn test_21() {
335                        let params = crate::config::endpoint::Params::builder()
336    .region("us-gov-west-1".to_string())
337    .use_fips(false)
338    .use_dual_stack(false)
339    .build().expect("invalid params");
340                        let resolver = crate::config::endpoint::DefaultResolver::new();
341                        let endpoint = resolver.resolve_endpoint(&params);
342                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-gov-west-1.amazonaws.com");
343                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-gov-west-1.amazonaws.com")
344    .build());
345                    }
346    
347    /// For region us-gov-east-1 with FIPS enabled and DualStack enabled
348                    #[test]
349                    fn test_22() {
350                        let params = crate::config::endpoint::Params::builder()
351    .region("us-gov-east-1".to_string())
352    .use_fips(true)
353    .use_dual_stack(true)
354    .build().expect("invalid params");
355                        let resolver = crate::config::endpoint::DefaultResolver::new();
356                        let endpoint = resolver.resolve_endpoint(&params);
357                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-gov-east-1.api.aws");
358                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-gov-east-1.api.aws")
359    .build());
360                    }
361    
362    /// For region us-gov-east-1 with FIPS enabled and DualStack disabled
363                    #[test]
364                    fn test_23() {
365                        let params = crate::config::endpoint::Params::builder()
366    .region("us-gov-east-1".to_string())
367    .use_fips(true)
368    .use_dual_stack(false)
369    .build().expect("invalid params");
370                        let resolver = crate::config::endpoint::DefaultResolver::new();
371                        let endpoint = resolver.resolve_endpoint(&params);
372                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-gov-east-1.amazonaws.com");
373                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-gov-east-1.amazonaws.com")
374    .build());
375                    }
376    
377    /// For region us-gov-east-1 with FIPS disabled and DualStack enabled
378                    #[test]
379                    fn test_24() {
380                        let params = crate::config::endpoint::Params::builder()
381    .region("us-gov-east-1".to_string())
382    .use_fips(false)
383    .use_dual_stack(true)
384    .build().expect("invalid params");
385                        let resolver = crate::config::endpoint::DefaultResolver::new();
386                        let endpoint = resolver.resolve_endpoint(&params);
387                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-gov-east-1.api.aws");
388                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-gov-east-1.api.aws")
389    .build());
390                    }
391    
392    /// For region us-iso-east-1 with FIPS disabled and DualStack disabled
393                    #[test]
394                    fn test_25() {
395                        let params = crate::config::endpoint::Params::builder()
396    .region("us-iso-east-1".to_string())
397    .use_fips(false)
398    .use_dual_stack(false)
399    .build().expect("invalid params");
400                        let resolver = crate::config::endpoint::DefaultResolver::new();
401                        let endpoint = resolver.resolve_endpoint(&params);
402                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-iso-east-1.c2s.ic.gov");
403                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-iso-east-1.c2s.ic.gov")
404    .build());
405                    }
406    
407    /// For region us-iso-east-1 with FIPS enabled and DualStack disabled
408                    #[test]
409                    fn test_26() {
410                        let params = crate::config::endpoint::Params::builder()
411    .region("us-iso-east-1".to_string())
412    .use_fips(true)
413    .use_dual_stack(false)
414    .build().expect("invalid params");
415                        let resolver = crate::config::endpoint::DefaultResolver::new();
416                        let endpoint = resolver.resolve_endpoint(&params);
417                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-iso-east-1.c2s.ic.gov");
418                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-iso-east-1.c2s.ic.gov")
419    .build());
420                    }
421    
422    /// For region us-isob-east-1 with FIPS enabled and DualStack disabled
423                    #[test]
424                    fn test_27() {
425                        let params = crate::config::endpoint::Params::builder()
426    .region("us-isob-east-1".to_string())
427    .use_fips(true)
428    .use_dual_stack(false)
429    .build().expect("invalid params");
430                        let resolver = crate::config::endpoint::DefaultResolver::new();
431                        let endpoint = resolver.resolve_endpoint(&params);
432                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-isob-east-1.sc2s.sgov.gov");
433                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-isob-east-1.sc2s.sgov.gov")
434    .build());
435                    }
436    
437    /// For region us-isob-east-1 with FIPS disabled and DualStack disabled
438                    #[test]
439                    fn test_28() {
440                        let params = crate::config::endpoint::Params::builder()
441    .region("us-isob-east-1".to_string())
442    .use_fips(false)
443    .use_dual_stack(false)
444    .build().expect("invalid params");
445                        let resolver = crate::config::endpoint::DefaultResolver::new();
446                        let endpoint = resolver.resolve_endpoint(&params);
447                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-isob-east-1.sc2s.sgov.gov");
448                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-isob-east-1.sc2s.sgov.gov")
449    .build());
450                    }
451    
452    /// For custom endpoint with region set and fips disabled and dualstack disabled
453                    #[test]
454                    fn test_29() {
455                        let params = crate::config::endpoint::Params::builder()
456    .region("us-east-1".to_string())
457    .use_fips(false)
458    .use_dual_stack(false)
459    .endpoint("https://example.com".to_string())
460    .build().expect("invalid params");
461                        let resolver = crate::config::endpoint::DefaultResolver::new();
462                        let endpoint = resolver.resolve_endpoint(&params);
463                        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
464                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com")
465    .build());
466                    }
467    
468    /// For custom endpoint with region not set and fips disabled and dualstack disabled
469                    #[test]
470                    fn test_30() {
471                        let params = crate::config::endpoint::Params::builder()
472    .use_fips(false)
473    .use_dual_stack(false)
474    .endpoint("https://example.com".to_string())
475    .build().expect("invalid params");
476                        let resolver = crate::config::endpoint::DefaultResolver::new();
477                        let endpoint = resolver.resolve_endpoint(&params);
478                        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
479                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com")
480    .build());
481                    }
482    
483    /// For custom endpoint with fips enabled and dualstack disabled
484                    #[test]
485                    fn test_31() {
486                        let params = crate::config::endpoint::Params::builder()
487    .region("us-east-1".to_string())
488    .use_fips(true)
489    .use_dual_stack(false)
490    .endpoint("https://example.com".to_string())
491    .build().expect("invalid params");
492                        let resolver = crate::config::endpoint::DefaultResolver::new();
493                        let endpoint = resolver.resolve_endpoint(&params);
494                        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]");
495                                    assert_eq!(format!("{}", error), "Invalid Configuration: FIPS and custom endpoint are not supported")
496                    }
497    
498    /// For custom endpoint with fips disabled and dualstack enabled
499                    #[test]
500                    fn test_32() {
501                        let params = crate::config::endpoint::Params::builder()
502    .region("us-east-1".to_string())
503    .use_fips(false)
504    .use_dual_stack(true)
505    .endpoint("https://example.com".to_string())
506    .build().expect("invalid params");
507                        let resolver = crate::config::endpoint::DefaultResolver::new();
508                        let endpoint = resolver.resolve_endpoint(&params);
509                        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]");
510                                    assert_eq!(format!("{}", error), "Invalid Configuration: Dualstack and custom endpoint are not supported")
511                    }
512    
513    /// Missing region
514                    #[test]
515                    fn test_33() {
516                        let params = crate::config::endpoint::Params::builder()
517    .build().expect("invalid params");
518                        let resolver = crate::config::endpoint::DefaultResolver::new();
519                        let endpoint = resolver.resolve_endpoint(&params);
520                        let error = endpoint.expect_err("expected error: Invalid Configuration: Missing Region [Missing region]");
521                                    assert_eq!(format!("{}", error), "Invalid Configuration: Missing Region")
522                    }
523    
524    
525}
526
527/// Endpoint resolver trait specific to Amazon Transcribe Streaming Service
528            pub trait ResolveEndpoint: ::std::marker::Send + ::std::marker::Sync + ::std::fmt::Debug {
529                /// Resolve an endpoint with the given parameters
530                fn resolve_endpoint<'a>(&'a self, params: &'a crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a>;
531
532                /// Convert this service-specific resolver into a `SharedEndpointResolver`
533                ///
534                /// The resulting resolver will downcast `EndpointResolverParams` into `crate::config::endpoint::Params`.
535                fn into_shared_resolver(self) -> ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver
536                where
537                    Self: Sized + 'static,
538                {
539                    ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver::new(DowncastParams(self))
540                }
541            }
542
543            #[derive(Debug)]
544            struct DowncastParams<T>(T);
545            impl<T> ::aws_smithy_runtime_api::client::endpoint::ResolveEndpoint for DowncastParams<T>
546            where
547                T: ResolveEndpoint,
548            {
549                fn resolve_endpoint<'a>(&'a self, params: &'a ::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a> {
550                    let ep = match params.get::<crate::config::endpoint::Params>() {
551                        Some(params) => self.0.resolve_endpoint(params),
552                        None => ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(Err("params of expected type was not present".into())),
553                    };
554                    ep
555                }
556                
557            }
558
559/// The default endpoint resolver
560                #[derive(Debug, Default)]
561                pub struct DefaultResolver {
562                    partition_resolver: crate::endpoint_lib::partition::PartitionResolver
563                }
564
565                impl DefaultResolver {
566                    /// Create a new endpoint resolver with default settings
567                    pub fn new() -> Self {
568                        Self { partition_resolver: crate::endpoint_lib::DEFAULT_PARTITION_RESOLVER.clone() }
569                    }
570
571                    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::std::result::Result<::aws_smithy_types::endpoint::Endpoint, ::aws_smithy_runtime_api::box_error::BoxError> {
572                        let mut diagnostic_collector = crate::endpoint_lib::diagnostic::DiagnosticCollector::new();
573                        Ok(crate::config::endpoint::internals::resolve_endpoint(params, &mut diagnostic_collector, &self.partition_resolver)
574                            .map_err(|err|err.with_source(diagnostic_collector.take_last_error()))?)
575                    }
576                }
577
578                impl crate::config::endpoint::ResolveEndpoint for DefaultResolver {
579                    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'_> {
580                        ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(self.resolve_endpoint(params))
581                    }
582                }
583
584#[non_exhaustive]
585#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
586/// Configuration parameters for resolving the correct endpoint
587pub struct Params {
588    /// The AWS region used to dispatch the request.
589    pub(crate) region: ::std::option::Option<::std::string::String>,
590    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
591    pub(crate) use_dual_stack: bool,
592    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
593    pub(crate) use_fips: bool,
594    /// Override the endpoint used to send this request
595    pub(crate) endpoint: ::std::option::Option<::std::string::String>,
596}
597impl Params {
598    /// Create a builder for [`Params`]
599                    pub fn builder() -> crate::config::endpoint::ParamsBuilder {
600                        crate::config::endpoint::ParamsBuilder::default()
601                    }
602    /// The AWS region used to dispatch the request.
603    pub fn region(&self) -> ::std::option::Option<&str> {
604                            self.region.as_deref()
605                        }
606    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
607    pub fn use_dual_stack(&self) -> ::std::option::Option<bool> {
608                            Some(self.use_dual_stack)
609                        }
610    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
611    pub fn use_fips(&self) -> ::std::option::Option<bool> {
612                            Some(self.use_fips)
613                        }
614    /// Override the endpoint used to send this request
615    pub fn endpoint(&self) -> ::std::option::Option<&str> {
616                            self.endpoint.as_deref()
617                        }
618}
619
620/// Builder for [`Params`]
621#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
622pub struct ParamsBuilder {
623    region: ::std::option::Option<::std::string::String>,
624    use_dual_stack: ::std::option::Option<bool>,
625    use_fips: ::std::option::Option<bool>,
626    endpoint: ::std::option::Option<::std::string::String>,
627}
628impl ParamsBuilder {
629    /// Consume this builder, creating [`Params`].
630    pub fn build(self) -> ::std::result::Result<crate::config::endpoint::Params, crate::config::endpoint::InvalidParams> {
631        if let Some(region) = &self.region {
632                                                if !crate::endpoint_lib::host::is_valid_host_label(region.as_ref() as &str, true, &mut crate::endpoint_lib::diagnostic::DiagnosticCollector::new()) {
633                                                    return Err(crate::config::endpoint::InvalidParams::invalid_value("region", "must be a valid host label"))
634                                                }
635                                            };
636        Ok(#[allow(clippy::unnecessary_lazy_evaluations)]
637        crate::config::endpoint::Params {
638            region: self.region
639            ,
640            use_dual_stack: self.use_dual_stack
641            .or_else(||Some(false))
642            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_dual_stack"))?
643            ,
644            use_fips: self.use_fips
645            .or_else(||Some(false))
646            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_fips"))?
647            ,
648            endpoint: self.endpoint
649            ,
650        })
651    }
652    /// Sets the value for region 
653    /// 
654    /// The AWS region used to dispatch the request.
655                        pub fn region(mut self, value: impl Into<::std::string::String>) -> Self {
656                            self.region = Some(value.into());
657                            self
658                        }
659    
660                        /// Sets the value for region 
661    /// 
662    /// The AWS region used to dispatch the request.
663                        pub fn set_region(mut self, param: Option<::std::string::String>) -> Self {
664                            self.region = param;
665                            self
666                        }
667    /// Sets the value for use_dual_stack 
668    /// 
669    /// When unset, this parameter has a default value of `false`.
670    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
671                        pub fn use_dual_stack(mut self, value: impl Into<bool>) -> Self {
672                            self.use_dual_stack = Some(value.into());
673                            self
674                        }
675    
676                        /// Sets the value for use_dual_stack 
677    /// 
678    /// When unset, this parameter has a default value of `false`.
679    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
680                        pub fn set_use_dual_stack(mut self, param: Option<bool>) -> Self {
681                            self.use_dual_stack = param;
682                            self
683                        }
684    /// Sets the value for use_fips 
685    /// 
686    /// When unset, this parameter has a default value of `false`.
687    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
688                        pub fn use_fips(mut self, value: impl Into<bool>) -> Self {
689                            self.use_fips = Some(value.into());
690                            self
691                        }
692    
693                        /// Sets the value for use_fips 
694    /// 
695    /// When unset, this parameter has a default value of `false`.
696    /// When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
697                        pub fn set_use_fips(mut self, param: Option<bool>) -> Self {
698                            self.use_fips = param;
699                            self
700                        }
701    /// Sets the value for endpoint 
702    /// 
703    /// Override the endpoint used to send this request
704                        pub fn endpoint(mut self, value: impl Into<::std::string::String>) -> Self {
705                            self.endpoint = Some(value.into());
706                            self
707                        }
708    
709                        /// Sets the value for endpoint 
710    /// 
711    /// Override the endpoint used to send this request
712                        pub fn set_endpoint(mut self, param: Option<::std::string::String>) -> Self {
713                            self.endpoint = param;
714                            self
715                        }
716}
717
718/// An error that occurred during endpoint resolution
719                    #[derive(Debug)]
720                    pub struct InvalidParams {
721                        field: std::borrow::Cow<'static, str>,
722                        kind: InvalidParamsErrorKind,
723                    }
724
725                    /// The kind of invalid parameter error
726                    #[derive(Debug)]
727                    enum InvalidParamsErrorKind {
728                        MissingField,
729                        InvalidValue {
730                            message: &'static str,
731                        }
732                    }
733
734                    impl InvalidParams {
735                        #[allow(dead_code)]
736                        fn missing(field: &'static str) -> Self {
737                            Self { field: field.into(), kind: InvalidParamsErrorKind::MissingField }
738                        }
739
740                        #[allow(dead_code)]
741                        fn invalid_value(field: &'static str, message: &'static str) -> Self {
742                            Self { field: field.into(), kind: InvalidParamsErrorKind::InvalidValue { message }}
743                        }
744                    }
745
746                    impl std::fmt::Display for InvalidParams {
747                        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
748                            match self.kind {
749                                InvalidParamsErrorKind::MissingField => write!(f, "a required field was missing: `{}`", self.field),
750                                InvalidParamsErrorKind::InvalidValue { message} => write!(f, "invalid value for field: `{}` - {}", self.field, message),
751                            }
752                        }
753                    }
754
755                    impl std::error::Error for InvalidParams { }
756
757mod internals;
758