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