Skip to main content

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#[derive(Debug)]
560                /// The default endpoint resolver.
561                pub struct DefaultResolver {
562                    partition_resolver: &'static crate::endpoint_lib::partition::PartitionResolver,
563                    endpoint_cache: ::arc_swap::ArcSwap<::std::option::Option<(Params, ::aws_smithy_types::endpoint::Endpoint)>>,
564                }
565
566                 impl Default for DefaultResolver {
567                    fn default() -> Self {
568                        Self::new()
569                    }
570                 }
571
572                impl DefaultResolver {
573                    /// Create a new DefaultResolver
574                    pub fn new() -> Self {
575                        Self {
576                            partition_resolver: &crate::endpoint_lib::DEFAULT_PARTITION_RESOLVER,
577                            endpoint_cache: ::arc_swap::ArcSwap::from_pointee(None),
578                        }
579                    }
580
581                    #[allow(unused_variables, unused_parens, clippy::double_parens, clippy::useless_conversion, clippy::bool_comparison, clippy::comparison_to_empty, clippy::needless_borrow, clippy::useless_asref, clippy::redundant_closure_call, clippy::clone_on_copy, clippy::single_char_add_str)]
582                    fn resolve_endpoint<'a>(&'a self, params: &'a crate::config::endpoint::Params) -> ::std::result::Result<::aws_smithy_types::endpoint::Endpoint, ::aws_smithy_runtime_api::box_error::BoxError> {
583                        let mut _diagnostic_collector = crate::endpoint_lib::diagnostic::DiagnosticCollector::new();
584                        #[allow(unused_mut)]
585                        let mut context = ConditionContext::default();
586
587                        // Param bindings
588                        let region = &params.region;
589let use_dual_stack = &params.use_dual_stack;
590let use_fips = &params.use_fips;
591let endpoint = &params.endpoint;
592
593                        let mut current_ref: i32 = 2;
594                        loop {
595                            match current_ref {
596                                ref_val if ref_val >= 100_000_000 => {
597                                    return match (ref_val - 100_000_000) as usize {
598                                        0 => ::std::result::Result::Err(Box::new(::aws_smithy_http::endpoint::ResolveEndpointError::message("No endpoint rule matched")) as ::aws_smithy_runtime_api::box_error::BoxError),
5991 => {
600
601                            ::std::result::Result::Err(Box::new(::aws_smithy_http::endpoint::ResolveEndpointError::message("Invalid Configuration: FIPS and custom endpoint are not supported"
602.to_string())) as ::aws_smithy_runtime_api::box_error::BoxError)
603                        },
6042 => {
605
606                            ::std::result::Result::Err(Box::new(::aws_smithy_http::endpoint::ResolveEndpointError::message("Invalid Configuration: Dualstack and custom endpoint are not supported"
607.to_string())) as ::aws_smithy_runtime_api::box_error::BoxError)
608                        },
6093 => {
610                            let endpoint = params.endpoint.as_deref().unwrap_or_default();
611                            ::std::result::Result::Ok(::aws_smithy_types::endpoint::Endpoint::builder().url(endpoint.to_owned())
612.build())
613                        },
6144 => {
615                            let region = params.region.as_deref().unwrap_or_default();
616let partition_result = context.partition_result.as_ref().expect("Guaranteed to have a value by earlier checks.");
617                            ::std::result::Result::Ok(::aws_smithy_types::endpoint::Endpoint::builder().url({ let mut out = String::new();
618out.push_str("https://transcribestreaming-fips.");
619#[allow(clippy::needless_borrow)]
620out.push_str(&region.as_ref());
621out.push_str(".");
622#[allow(clippy::needless_borrow)]
623out.push_str(&partition_result.dual_stack_dns_suffix());
624out })
625.build())
626                        },
6275 => {
628
629                            ::std::result::Result::Err(Box::new(::aws_smithy_http::endpoint::ResolveEndpointError::message("FIPS and DualStack are enabled, but this partition does not support one or both"
630.to_string())) as ::aws_smithy_runtime_api::box_error::BoxError)
631                        },
6326 => {
633                            let region = params.region.as_deref().unwrap_or_default();
634let partition_result = context.partition_result.as_ref().expect("Guaranteed to have a value by earlier checks.");
635                            ::std::result::Result::Ok(::aws_smithy_types::endpoint::Endpoint::builder().url({ let mut out = String::new();
636out.push_str("https://transcribestreaming-fips.");
637#[allow(clippy::needless_borrow)]
638out.push_str(&region.as_ref());
639out.push_str(".");
640#[allow(clippy::needless_borrow)]
641out.push_str(&partition_result.dns_suffix());
642out })
643.build())
644                        },
6457 => {
646
647                            ::std::result::Result::Err(Box::new(::aws_smithy_http::endpoint::ResolveEndpointError::message("FIPS is enabled but this partition does not support FIPS"
648.to_string())) as ::aws_smithy_runtime_api::box_error::BoxError)
649                        },
6508 => {
651                            let region = params.region.as_deref().unwrap_or_default();
652let partition_result = context.partition_result.as_ref().expect("Guaranteed to have a value by earlier checks.");
653                            ::std::result::Result::Ok(::aws_smithy_types::endpoint::Endpoint::builder().url({ let mut out = String::new();
654out.push_str("https://transcribestreaming.");
655#[allow(clippy::needless_borrow)]
656out.push_str(&region.as_ref());
657out.push_str(".");
658#[allow(clippy::needless_borrow)]
659out.push_str(&partition_result.dual_stack_dns_suffix());
660out })
661.build())
662                        },
6639 => {
664
665                            ::std::result::Result::Err(Box::new(::aws_smithy_http::endpoint::ResolveEndpointError::message("DualStack is enabled but this partition does not support DualStack"
666.to_string())) as ::aws_smithy_runtime_api::box_error::BoxError)
667                        },
66810 => {
669                            let region = params.region.as_deref().unwrap_or_default();
670let partition_result = context.partition_result.as_ref().expect("Guaranteed to have a value by earlier checks.");
671                            ::std::result::Result::Ok(::aws_smithy_types::endpoint::Endpoint::builder().url({ let mut out = String::new();
672out.push_str("https://transcribestreaming.");
673#[allow(clippy::needless_borrow)]
674out.push_str(&region.as_ref());
675out.push_str(".");
676#[allow(clippy::needless_borrow)]
677out.push_str(&partition_result.dns_suffix());
678out })
679.build())
680                        },
68111 => {
682
683                            ::std::result::Result::Err(Box::new(::aws_smithy_http::endpoint::ResolveEndpointError::message("Invalid Configuration: Missing Region"
684.to_string())) as ::aws_smithy_runtime_api::box_error::BoxError)
685                        },
686                                        _ => ::std::result::Result::Err(Box::new(::aws_smithy_http::endpoint::ResolveEndpointError::message("No endpoint rule matched")) as ::aws_smithy_runtime_api::box_error::BoxError),
687                                    };
688                                }
689                                1 | -1 => return ::std::result::Result::Err(Box::new(::aws_smithy_http::endpoint::ResolveEndpointError::message("No endpoint rule matched")) as ::aws_smithy_runtime_api::box_error::BoxError),
690                                ref_val => {
691                                    let is_complement = ref_val < 0;
692                                    let node = &NODES[(ref_val.unsigned_abs() as usize) - 1];
693                                    let condition_result = match node.condition_index {
694                                        0 => endpoint.is_some(),
6951 => region.is_some(),
6962 => (|_diagnostic_collector: &mut crate::endpoint_lib::diagnostic::DiagnosticCollector| -> bool {
697                            let partition_result = &mut context.partition_result;
698                            let partition_resolver = &self.partition_resolver;
699                            {
700    *partition_result = partition_resolver.resolve_partition(if let Some(param) = region{
701                        param
702                    } else {
703                        return false
704                    }, _diagnostic_collector).map(|inner| inner.into());
705    partition_result.is_some()
706}
707                        })(&mut _diagnostic_collector),
7083 => (use_fips) == (&true),
7094 => (use_dual_stack) == (&true),
7105 => (|_diagnostic_collector: &mut crate::endpoint_lib::diagnostic::DiagnosticCollector| -> bool {
711                            let partition_result = & context.partition_result;
712                            let partition_resolver = &self.partition_resolver;
713                            (if let Some(inner) = partition_result {
714    inner.supports_dual_stack()
715}else{
716    return false
717})
718==
719(true)
720                        })(&mut _diagnostic_collector),
7216 => (|_diagnostic_collector: &mut crate::endpoint_lib::diagnostic::DiagnosticCollector| -> bool {
722                            let partition_result = & context.partition_result;
723                            let partition_resolver = &self.partition_resolver;
724                            (if let Some(inner) = partition_result {
725    inner.supports_fips()
726}else{
727    return false
728})
729==
730(true)
731                        })(&mut _diagnostic_collector),
732                                        _ => unreachable!("Invalid condition index"),
733                                    };
734                                    current_ref = if is_complement ^ condition_result { node.high_ref } else { node.low_ref };
735                                }
736                            }
737                        }
738                    }
739                }
740
741                impl crate::config::endpoint::ResolveEndpoint for DefaultResolver {
742                    fn resolve_endpoint<'a>(&'a self, params: &'a crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a> {
743                        // Check single-entry cache (lock-free read via ArcSwap)
744                        let cached = self.endpoint_cache.load();
745                        if let Some((cached_params, cached_endpoint)) = cached.as_ref() {
746                            if cached_params == params {
747                                return ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(::std::result::Result::Ok(cached_endpoint.clone()));
748                            }
749                        }
750                        drop(cached);
751                        let result = self.resolve_endpoint(params);
752                        if let ::std::result::Result::Ok(ref endpoint) = result {
753                            self.endpoint_cache.store(::std::sync::Arc::new(Some((params.clone(), endpoint.clone()))));
754                        }
755                        ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(result)
756                    }
757                }
758            const NODES: [crate::endpoint_lib::bdd_interpreter::BddNode; 13] = [
759crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: -1, high_ref: 1, low_ref: -1 },
760crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 0, high_ref: 12, low_ref: 3 },
761crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 1, high_ref: 4, low_ref: 100000011 },
762crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 2, high_ref: 5, low_ref: 100000011 },
763crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 3, high_ref: 8, low_ref: 6 },
764crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 4, high_ref: 7, low_ref: 100000010 },
765crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 5, high_ref: 100000008, low_ref: 100000009 },
766crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 4, high_ref: 10, low_ref: 9 },
767crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 6, high_ref: 100000006, low_ref: 100000007 },
768crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 5, high_ref: 11, low_ref: 100000005 },
769crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 6, high_ref: 100000004, low_ref: 100000005 },
770crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 3, high_ref: 100000001, low_ref: 13 },
771crate::endpoint_lib::bdd_interpreter::BddNode { condition_index: 4, high_ref: 100000002, low_ref: 100000003 }
772];
773            // These are all optional since they are set by conditions and will
774// all be unset when we start evaluation
775#[derive(Default)]
776#[allow(unused_lifetimes)]
777pub(crate) struct ConditionContext<'a> {
778    pub(crate) partition_result: Option<crate::endpoint_lib::partition::Partition<'a>>,
779    // Sometimes none of the members reference the lifetime, this makes it still valid
780    phantom: std::marker::PhantomData<&'a ()>
781}
782
783#[non_exhaustive]
784#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
785/// Configuration parameters for resolving the correct endpoint
786pub struct Params {
787    /// The AWS region used to dispatch the request.
788    pub(crate) region: ::std::option::Option<::std::string::String>,
789    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
790    pub(crate) use_dual_stack: bool,
791    /// 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.
792    pub(crate) use_fips: bool,
793    /// Override the endpoint used to send this request
794    pub(crate) endpoint: ::std::option::Option<::std::string::String>,
795}
796impl Params {
797    /// Create a builder for [`Params`]
798                    pub fn builder() -> crate::config::endpoint::ParamsBuilder {
799                        crate::config::endpoint::ParamsBuilder::default()
800                    }
801    /// The AWS region used to dispatch the request.
802    pub fn region(&self) -> ::std::option::Option<&str> {
803                            self.region.as_deref()
804                        }
805    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
806    pub fn use_dual_stack(&self) -> ::std::option::Option<bool> {
807                            Some(self.use_dual_stack)
808                        }
809    /// 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.
810    pub fn use_fips(&self) -> ::std::option::Option<bool> {
811                            Some(self.use_fips)
812                        }
813    /// Override the endpoint used to send this request
814    pub fn endpoint(&self) -> ::std::option::Option<&str> {
815                            self.endpoint.as_deref()
816                        }
817}
818
819/// Builder for [`Params`]
820#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
821pub struct ParamsBuilder {
822    region: ::std::option::Option<::std::string::String>,
823    use_dual_stack: ::std::option::Option<bool>,
824    use_fips: ::std::option::Option<bool>,
825    endpoint: ::std::option::Option<::std::string::String>,
826}
827impl ParamsBuilder {
828    /// Consume this builder, creating [`Params`].
829    pub fn build(self) -> ::std::result::Result<crate::config::endpoint::Params, crate::config::endpoint::InvalidParams> {
830        if let Some(region) = &self.region {
831                                                if !crate::endpoint_lib::host::is_valid_host_label(region.as_ref() as &str, true, &mut crate::endpoint_lib::diagnostic::DiagnosticCollector::new()) {
832                                                    return Err(crate::config::endpoint::InvalidParams::invalid_value("region", "must be a valid host label"))
833                                                }
834                                            };
835        Ok(#[allow(clippy::unnecessary_lazy_evaluations)]
836        crate::config::endpoint::Params {
837            region: self.region
838            ,
839            use_dual_stack: self.use_dual_stack
840            .or_else(||Some(false))
841            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_dual_stack"))?
842            ,
843            use_fips: self.use_fips
844            .or_else(||Some(false))
845            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_fips"))?
846            ,
847            endpoint: self.endpoint
848            ,
849        })
850    }
851    /// Sets the value for region
852    ///
853    /// The AWS region used to dispatch the request.
854                        pub fn region(mut self, value: impl Into<::std::string::String>) -> Self {
855                            self.region = Some(value.into());
856                            self
857                        }
858
859                        /// Sets the value for region
860    ///
861    /// The AWS region used to dispatch the request.
862                        pub fn set_region(mut self, param: Option<::std::string::String>) -> Self {
863                            self.region = param;
864                            self
865                        }
866    /// Sets the value for use_dual_stack
867    ///
868    /// When unset, this parameter has a default value of `false`.
869    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
870                        pub fn use_dual_stack(mut self, value: impl Into<bool>) -> Self {
871                            self.use_dual_stack = Some(value.into());
872                            self
873                        }
874
875                        /// Sets the value for use_dual_stack
876    ///
877    /// When unset, this parameter has a default value of `false`.
878    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
879                        pub fn set_use_dual_stack(mut self, param: Option<bool>) -> Self {
880                            self.use_dual_stack = param;
881                            self
882                        }
883    /// Sets the value for use_fips
884    ///
885    /// When unset, this parameter has a default value of `false`.
886    /// 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.
887                        pub fn use_fips(mut self, value: impl Into<bool>) -> Self {
888                            self.use_fips = Some(value.into());
889                            self
890                        }
891
892                        /// Sets the value for use_fips
893    ///
894    /// When unset, this parameter has a default value of `false`.
895    /// 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.
896                        pub fn set_use_fips(mut self, param: Option<bool>) -> Self {
897                            self.use_fips = param;
898                            self
899                        }
900    /// Sets the value for endpoint
901    ///
902    /// Override the endpoint used to send this request
903                        pub fn endpoint(mut self, value: impl Into<::std::string::String>) -> Self {
904                            self.endpoint = Some(value.into());
905                            self
906                        }
907
908                        /// Sets the value for endpoint
909    ///
910    /// Override the endpoint used to send this request
911                        pub fn set_endpoint(mut self, param: Option<::std::string::String>) -> Self {
912                            self.endpoint = param;
913                            self
914                        }
915}
916
917/// An error that occurred during endpoint resolution
918                    #[derive(Debug)]
919                    pub struct InvalidParams {
920                        field: std::borrow::Cow<'static, str>,
921                        kind: InvalidParamsErrorKind,
922                    }
923
924                    /// The kind of invalid parameter error
925                    #[derive(Debug)]
926                    enum InvalidParamsErrorKind {
927                        MissingField,
928                        InvalidValue {
929                            message: &'static str,
930                        }
931                    }
932
933                    impl InvalidParams {
934                        #[allow(dead_code)]
935                        fn missing(field: &'static str) -> Self {
936                            Self { field: field.into(), kind: InvalidParamsErrorKind::MissingField }
937                        }
938
939                        #[allow(dead_code)]
940                        fn invalid_value(field: &'static str, message: &'static str) -> Self {
941                            Self { field: field.into(), kind: InvalidParamsErrorKind::InvalidValue { message }}
942                        }
943                    }
944
945                    impl std::fmt::Display for InvalidParams {
946                        fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
947                            match self.kind {
948                                InvalidParamsErrorKind::MissingField => write!(f, "a required field was missing: `{}`", self.field),
949                                InvalidParamsErrorKind::InvalidValue { message} => write!(f, "invalid value for field: `{}` - {}", self.field, message),
950                            }
951                        }
952                    }
953
954                    impl std::error::Error for InvalidParams { }
955