aws_sdk_transcribestreaming/config/
endpoint.rs1pub 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#[cfg(test)]
7mod test {
8    
9    #[test]
11                    fn test_1() {
12                        let params = crate::config::endpoint::Params::builder()
13    .region("ap-northeast-1".to_string())
14    .use_fips(false)
15    .use_dual_stack(false)
16    .build().expect("invalid params");
17                        let resolver = crate::config::endpoint::DefaultResolver::new();
18                        let endpoint = resolver.resolve_endpoint(¶ms);
19                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.ap-northeast-1.amazonaws.com");
20                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.ap-northeast-1.amazonaws.com")
21    .build());
22                    }
23    
24    #[test]
26                    fn test_2() {
27                        let params = crate::config::endpoint::Params::builder()
28    .region("ap-northeast-2".to_string())
29    .use_fips(false)
30    .use_dual_stack(false)
31    .build().expect("invalid params");
32                        let resolver = crate::config::endpoint::DefaultResolver::new();
33                        let endpoint = resolver.resolve_endpoint(¶ms);
34                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.ap-northeast-2.amazonaws.com");
35                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.ap-northeast-2.amazonaws.com")
36    .build());
37                    }
38    
39    #[test]
41                    fn test_3() {
42                        let params = crate::config::endpoint::Params::builder()
43    .region("ap-southeast-2".to_string())
44    .use_fips(false)
45    .use_dual_stack(false)
46    .build().expect("invalid params");
47                        let resolver = crate::config::endpoint::DefaultResolver::new();
48                        let endpoint = resolver.resolve_endpoint(¶ms);
49                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.ap-southeast-2.amazonaws.com");
50                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.ap-southeast-2.amazonaws.com")
51    .build());
52                    }
53    
54    #[test]
56                    fn test_4() {
57                        let params = crate::config::endpoint::Params::builder()
58    .region("ca-central-1".to_string())
59    .use_fips(false)
60    .use_dual_stack(false)
61    .build().expect("invalid params");
62                        let resolver = crate::config::endpoint::DefaultResolver::new();
63                        let endpoint = resolver.resolve_endpoint(¶ms);
64                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.ca-central-1.amazonaws.com");
65                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.ca-central-1.amazonaws.com")
66    .build());
67                    }
68    
69    #[test]
71                    fn test_5() {
72                        let params = crate::config::endpoint::Params::builder()
73    .region("eu-central-1".to_string())
74    .use_fips(false)
75    .use_dual_stack(false)
76    .build().expect("invalid params");
77                        let resolver = crate::config::endpoint::DefaultResolver::new();
78                        let endpoint = resolver.resolve_endpoint(¶ms);
79                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.eu-central-1.amazonaws.com");
80                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.eu-central-1.amazonaws.com")
81    .build());
82                    }
83    
84    #[test]
86                    fn test_6() {
87                        let params = crate::config::endpoint::Params::builder()
88    .region("eu-west-1".to_string())
89    .use_fips(false)
90    .use_dual_stack(false)
91    .build().expect("invalid params");
92                        let resolver = crate::config::endpoint::DefaultResolver::new();
93                        let endpoint = resolver.resolve_endpoint(¶ms);
94                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.eu-west-1.amazonaws.com");
95                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.eu-west-1.amazonaws.com")
96    .build());
97                    }
98    
99    #[test]
101                    fn test_7() {
102                        let params = crate::config::endpoint::Params::builder()
103    .region("eu-west-2".to_string())
104    .use_fips(false)
105    .use_dual_stack(false)
106    .build().expect("invalid params");
107                        let resolver = crate::config::endpoint::DefaultResolver::new();
108                        let endpoint = resolver.resolve_endpoint(¶ms);
109                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.eu-west-2.amazonaws.com");
110                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.eu-west-2.amazonaws.com")
111    .build());
112                    }
113    
114    #[test]
116                    fn test_8() {
117                        let params = crate::config::endpoint::Params::builder()
118    .region("sa-east-1".to_string())
119    .use_fips(false)
120    .use_dual_stack(false)
121    .build().expect("invalid params");
122                        let resolver = crate::config::endpoint::DefaultResolver::new();
123                        let endpoint = resolver.resolve_endpoint(¶ms);
124                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.sa-east-1.amazonaws.com");
125                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.sa-east-1.amazonaws.com")
126    .build());
127                    }
128    
129    #[test]
131                    fn test_9() {
132                        let params = crate::config::endpoint::Params::builder()
133    .region("us-east-1".to_string())
134    .use_fips(false)
135    .use_dual_stack(false)
136    .build().expect("invalid params");
137                        let resolver = crate::config::endpoint::DefaultResolver::new();
138                        let endpoint = resolver.resolve_endpoint(¶ms);
139                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-east-1.amazonaws.com");
140                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-east-1.amazonaws.com")
141    .build());
142                    }
143    
144    #[test]
146                    fn test_10() {
147                        let params = crate::config::endpoint::Params::builder()
148    .region("us-east-2".to_string())
149    .use_fips(false)
150    .use_dual_stack(false)
151    .build().expect("invalid params");
152                        let resolver = crate::config::endpoint::DefaultResolver::new();
153                        let endpoint = resolver.resolve_endpoint(¶ms);
154                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-east-2.amazonaws.com");
155                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-east-2.amazonaws.com")
156    .build());
157                    }
158    
159    #[test]
161                    fn test_11() {
162                        let params = crate::config::endpoint::Params::builder()
163    .region("us-west-2".to_string())
164    .use_fips(false)
165    .use_dual_stack(false)
166    .build().expect("invalid params");
167                        let resolver = crate::config::endpoint::DefaultResolver::new();
168                        let endpoint = resolver.resolve_endpoint(¶ms);
169                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-west-2.amazonaws.com");
170                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-west-2.amazonaws.com")
171    .build());
172                    }
173    
174    #[test]
176                    fn test_12() {
177                        let params = crate::config::endpoint::Params::builder()
178    .region("us-east-1".to_string())
179    .use_fips(true)
180    .use_dual_stack(true)
181    .build().expect("invalid params");
182                        let resolver = crate::config::endpoint::DefaultResolver::new();
183                        let endpoint = resolver.resolve_endpoint(¶ms);
184                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-east-1.api.aws");
185                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-east-1.api.aws")
186    .build());
187                    }
188    
189    #[test]
191                    fn test_13() {
192                        let params = crate::config::endpoint::Params::builder()
193    .region("us-east-1".to_string())
194    .use_fips(true)
195    .use_dual_stack(false)
196    .build().expect("invalid params");
197                        let resolver = crate::config::endpoint::DefaultResolver::new();
198                        let endpoint = resolver.resolve_endpoint(¶ms);
199                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-east-1.amazonaws.com");
200                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-east-1.amazonaws.com")
201    .build());
202                    }
203    
204    #[test]
206                    fn test_14() {
207                        let params = crate::config::endpoint::Params::builder()
208    .region("us-east-1".to_string())
209    .use_fips(false)
210    .use_dual_stack(true)
211    .build().expect("invalid params");
212                        let resolver = crate::config::endpoint::DefaultResolver::new();
213                        let endpoint = resolver.resolve_endpoint(¶ms);
214                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-east-1.api.aws");
215                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-east-1.api.aws")
216    .build());
217                    }
218    
219    #[test]
221                    fn test_15() {
222                        let params = crate::config::endpoint::Params::builder()
223    .region("cn-north-1".to_string())
224    .use_fips(false)
225    .use_dual_stack(false)
226    .build().expect("invalid params");
227                        let resolver = crate::config::endpoint::DefaultResolver::new();
228                        let endpoint = resolver.resolve_endpoint(¶ms);
229                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.cn-north-1.amazonaws.com.cn");
230                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.cn-north-1.amazonaws.com.cn")
231    .build());
232                    }
233    
234    #[test]
236                    fn test_16() {
237                        let params = crate::config::endpoint::Params::builder()
238    .region("cn-northwest-1".to_string())
239    .use_fips(false)
240    .use_dual_stack(false)
241    .build().expect("invalid params");
242                        let resolver = crate::config::endpoint::DefaultResolver::new();
243                        let endpoint = resolver.resolve_endpoint(¶ms);
244                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.cn-northwest-1.amazonaws.com.cn");
245                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.cn-northwest-1.amazonaws.com.cn")
246    .build());
247                    }
248    
249    #[test]
251                    fn test_17() {
252                        let params = crate::config::endpoint::Params::builder()
253    .region("cn-north-1".to_string())
254    .use_fips(true)
255    .use_dual_stack(true)
256    .build().expect("invalid params");
257                        let resolver = crate::config::endpoint::DefaultResolver::new();
258                        let endpoint = resolver.resolve_endpoint(¶ms);
259                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.cn-north-1.api.amazonwebservices.com.cn");
260                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.cn-north-1.api.amazonwebservices.com.cn")
261    .build());
262                    }
263    
264    #[test]
266                    fn test_18() {
267                        let params = crate::config::endpoint::Params::builder()
268    .region("cn-north-1".to_string())
269    .use_fips(true)
270    .use_dual_stack(false)
271    .build().expect("invalid params");
272                        let resolver = crate::config::endpoint::DefaultResolver::new();
273                        let endpoint = resolver.resolve_endpoint(¶ms);
274                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.cn-north-1.amazonaws.com.cn");
275                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.cn-north-1.amazonaws.com.cn")
276    .build());
277                    }
278    
279    #[test]
281                    fn test_19() {
282                        let params = crate::config::endpoint::Params::builder()
283    .region("cn-north-1".to_string())
284    .use_fips(false)
285    .use_dual_stack(true)
286    .build().expect("invalid params");
287                        let resolver = crate::config::endpoint::DefaultResolver::new();
288                        let endpoint = resolver.resolve_endpoint(¶ms);
289                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.cn-north-1.api.amazonwebservices.com.cn");
290                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.cn-north-1.api.amazonwebservices.com.cn")
291    .build());
292                    }
293    
294    #[test]
296                    fn test_20() {
297                        let params = crate::config::endpoint::Params::builder()
298    .region("us-gov-east-1".to_string())
299    .use_fips(false)
300    .use_dual_stack(false)
301    .build().expect("invalid params");
302                        let resolver = crate::config::endpoint::DefaultResolver::new();
303                        let endpoint = resolver.resolve_endpoint(¶ms);
304                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-gov-east-1.amazonaws.com");
305                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-gov-east-1.amazonaws.com")
306    .build());
307                    }
308    
309    #[test]
311                    fn test_21() {
312                        let params = crate::config::endpoint::Params::builder()
313    .region("us-gov-west-1".to_string())
314    .use_fips(false)
315    .use_dual_stack(false)
316    .build().expect("invalid params");
317                        let resolver = crate::config::endpoint::DefaultResolver::new();
318                        let endpoint = resolver.resolve_endpoint(¶ms);
319                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-gov-west-1.amazonaws.com");
320                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-gov-west-1.amazonaws.com")
321    .build());
322                    }
323    
324    #[test]
326                    fn test_22() {
327                        let params = crate::config::endpoint::Params::builder()
328    .region("us-gov-east-1".to_string())
329    .use_fips(true)
330    .use_dual_stack(true)
331    .build().expect("invalid params");
332                        let resolver = crate::config::endpoint::DefaultResolver::new();
333                        let endpoint = resolver.resolve_endpoint(¶ms);
334                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-gov-east-1.api.aws");
335                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-gov-east-1.api.aws")
336    .build());
337                    }
338    
339    #[test]
341                    fn test_23() {
342                        let params = crate::config::endpoint::Params::builder()
343    .region("us-gov-east-1".to_string())
344    .use_fips(true)
345    .use_dual_stack(false)
346    .build().expect("invalid params");
347                        let resolver = crate::config::endpoint::DefaultResolver::new();
348                        let endpoint = resolver.resolve_endpoint(¶ms);
349                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-gov-east-1.amazonaws.com");
350                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-gov-east-1.amazonaws.com")
351    .build());
352                    }
353    
354    #[test]
356                    fn test_24() {
357                        let params = crate::config::endpoint::Params::builder()
358    .region("us-gov-east-1".to_string())
359    .use_fips(false)
360    .use_dual_stack(true)
361    .build().expect("invalid params");
362                        let resolver = crate::config::endpoint::DefaultResolver::new();
363                        let endpoint = resolver.resolve_endpoint(¶ms);
364                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-gov-east-1.api.aws");
365                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-gov-east-1.api.aws")
366    .build());
367                    }
368    
369    #[test]
371                    fn test_25() {
372                        let params = crate::config::endpoint::Params::builder()
373    .region("us-iso-east-1".to_string())
374    .use_fips(false)
375    .use_dual_stack(false)
376    .build().expect("invalid params");
377                        let resolver = crate::config::endpoint::DefaultResolver::new();
378                        let endpoint = resolver.resolve_endpoint(¶ms);
379                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-iso-east-1.c2s.ic.gov");
380                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-iso-east-1.c2s.ic.gov")
381    .build());
382                    }
383    
384    #[test]
386                    fn test_26() {
387                        let params = crate::config::endpoint::Params::builder()
388    .region("us-iso-east-1".to_string())
389    .use_fips(true)
390    .use_dual_stack(false)
391    .build().expect("invalid params");
392                        let resolver = crate::config::endpoint::DefaultResolver::new();
393                        let endpoint = resolver.resolve_endpoint(¶ms);
394                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-iso-east-1.c2s.ic.gov");
395                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-iso-east-1.c2s.ic.gov")
396    .build());
397                    }
398    
399    #[test]
401                    fn test_27() {
402                        let params = crate::config::endpoint::Params::builder()
403    .region("us-isob-east-1".to_string())
404    .use_fips(true)
405    .use_dual_stack(false)
406    .build().expect("invalid params");
407                        let resolver = crate::config::endpoint::DefaultResolver::new();
408                        let endpoint = resolver.resolve_endpoint(¶ms);
409                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming-fips.us-isob-east-1.sc2s.sgov.gov");
410                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming-fips.us-isob-east-1.sc2s.sgov.gov")
411    .build());
412                    }
413    
414    #[test]
416                    fn test_28() {
417                        let params = crate::config::endpoint::Params::builder()
418    .region("us-isob-east-1".to_string())
419    .use_fips(false)
420    .use_dual_stack(false)
421    .build().expect("invalid params");
422                        let resolver = crate::config::endpoint::DefaultResolver::new();
423                        let endpoint = resolver.resolve_endpoint(¶ms);
424                        let endpoint = endpoint.expect("Expected valid endpoint: https://transcribestreaming.us-isob-east-1.sc2s.sgov.gov");
425                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://transcribestreaming.us-isob-east-1.sc2s.sgov.gov")
426    .build());
427                    }
428    
429    #[test]
431                    fn test_29() {
432                        let params = crate::config::endpoint::Params::builder()
433    .region("us-east-1".to_string())
434    .use_fips(false)
435    .use_dual_stack(false)
436    .endpoint("https://example.com".to_string())
437    .build().expect("invalid params");
438                        let resolver = crate::config::endpoint::DefaultResolver::new();
439                        let endpoint = resolver.resolve_endpoint(¶ms);
440                        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
441                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com")
442    .build());
443                    }
444    
445    #[test]
447                    fn test_30() {
448                        let params = crate::config::endpoint::Params::builder()
449    .use_fips(false)
450    .use_dual_stack(false)
451    .endpoint("https://example.com".to_string())
452    .build().expect("invalid params");
453                        let resolver = crate::config::endpoint::DefaultResolver::new();
454                        let endpoint = resolver.resolve_endpoint(¶ms);
455                        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
456                                    assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://example.com")
457    .build());
458                    }
459    
460    #[test]
462                    fn test_31() {
463                        let params = crate::config::endpoint::Params::builder()
464    .region("us-east-1".to_string())
465    .use_fips(true)
466    .use_dual_stack(false)
467    .endpoint("https://example.com".to_string())
468    .build().expect("invalid params");
469                        let resolver = crate::config::endpoint::DefaultResolver::new();
470                        let endpoint = resolver.resolve_endpoint(¶ms);
471                        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]");
472                                    assert_eq!(format!("{}", error), "Invalid Configuration: FIPS and custom endpoint are not supported")
473                    }
474    
475    #[test]
477                    fn test_32() {
478                        let params = crate::config::endpoint::Params::builder()
479    .region("us-east-1".to_string())
480    .use_fips(false)
481    .use_dual_stack(true)
482    .endpoint("https://example.com".to_string())
483    .build().expect("invalid params");
484                        let resolver = crate::config::endpoint::DefaultResolver::new();
485                        let endpoint = resolver.resolve_endpoint(¶ms);
486                        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]");
487                                    assert_eq!(format!("{}", error), "Invalid Configuration: Dualstack and custom endpoint are not supported")
488                    }
489    
490    #[test]
492                    fn test_33() {
493                        let params = crate::config::endpoint::Params::builder()
494    .build().expect("invalid params");
495                        let resolver = crate::config::endpoint::DefaultResolver::new();
496                        let endpoint = resolver.resolve_endpoint(¶ms);
497                        let error = endpoint.expect_err("expected error: Invalid Configuration: Missing Region [Missing region]");
498                                    assert_eq!(format!("{}", error), "Invalid Configuration: Missing Region")
499                    }
500    
501    
502}
503
504pub trait ResolveEndpoint: ::std::marker::Send + ::std::marker::Sync + ::std::fmt::Debug {
506                fn resolve_endpoint<'a>(&'a self, params: &'a crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a>;
508
509                fn into_shared_resolver(self) -> ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver
513                where
514                    Self: Sized + 'static,
515                {
516                    ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver::new(DowncastParams(self))
517                }
518            }
519
520            #[derive(Debug)]
521            struct DowncastParams<T>(T);
522            impl<T> ::aws_smithy_runtime_api::client::endpoint::ResolveEndpoint for DowncastParams<T>
523            where
524                T: ResolveEndpoint,
525            {
526                fn resolve_endpoint<'a>(&'a self, params: &'a ::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a> {
527                    let ep = match params.get::<crate::config::endpoint::Params>() {
528                        Some(params) => self.0.resolve_endpoint(params),
529                        None => ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(Err("params of expected type was not present".into())),
530                    };
531                    ep
532                }
533                
534            }
535
536#[derive(Debug, Default)]
538                pub struct DefaultResolver {
539                    partition_resolver: crate::endpoint_lib::partition::PartitionResolver
540                }
541
542                impl DefaultResolver {
543                    pub fn new() -> Self {
545                        Self { partition_resolver: crate::endpoint_lib::DEFAULT_PARTITION_RESOLVER.clone() }
546                    }
547
548                    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::std::result::Result<::aws_smithy_types::endpoint::Endpoint, ::aws_smithy_runtime_api::box_error::BoxError> {
549                        let mut diagnostic_collector = crate::endpoint_lib::diagnostic::DiagnosticCollector::new();
550                        Ok(crate::config::endpoint::internals::resolve_endpoint(params, &mut diagnostic_collector, &self.partition_resolver)
551                            .map_err(|err|err.with_source(diagnostic_collector.take_last_error()))?)
552                    }
553                }
554
555                impl crate::config::endpoint::ResolveEndpoint for DefaultResolver {
556                    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'_> {
557                        ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(self.resolve_endpoint(params))
558                    }
559                }
560
561#[non_exhaustive]
562#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
563pub struct Params {
565    pub(crate) region: ::std::option::Option<::std::string::String>,
567    pub(crate) use_dual_stack: bool,
569    pub(crate) use_fips: bool,
571    pub(crate) endpoint: ::std::option::Option<::std::string::String>,
573}
574impl Params {
575    pub fn builder() -> crate::config::endpoint::ParamsBuilder {
577                        crate::config::endpoint::ParamsBuilder::default()
578                    }
579    pub fn region(&self) -> ::std::option::Option<&str> {
581                            self.region.as_deref()
582                        }
583    pub fn use_dual_stack(&self) -> ::std::option::Option<bool> {
585                            Some(self.use_dual_stack)
586                        }
587    pub fn use_fips(&self) -> ::std::option::Option<bool> {
589                            Some(self.use_fips)
590                        }
591    pub fn endpoint(&self) -> ::std::option::Option<&str> {
593                            self.endpoint.as_deref()
594                        }
595}
596
597#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
599pub struct ParamsBuilder {
600    region: ::std::option::Option<::std::string::String>,
601    use_dual_stack: ::std::option::Option<bool>,
602    use_fips: ::std::option::Option<bool>,
603    endpoint: ::std::option::Option<::std::string::String>,
604}
605impl ParamsBuilder {
606    pub fn build(self) -> ::std::result::Result<crate::config::endpoint::Params, crate::config::endpoint::InvalidParams> {
608        Ok(#[allow(clippy::unnecessary_lazy_evaluations)]
609        crate::config::endpoint::Params {
610            region: self.region
611            ,
612            use_dual_stack: self.use_dual_stack
613            .or_else(||Some(false))
614            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_dual_stack"))?
615            ,
616            use_fips: self.use_fips
617            .or_else(||Some(false))
618            .ok_or_else(||crate::config::endpoint::InvalidParams::missing("use_fips"))?
619            ,
620            endpoint: self.endpoint
621            ,
622        })
623    }
624    pub fn region(mut self, value: impl Into<::std::string::String>) -> Self {
628                            self.region = Some(value.into());
629                            self
630                        }
631    
632                        pub fn set_region(mut self, param: Option<::std::string::String>) -> Self {
636                            self.region = param;
637                            self
638                        }
639    pub fn use_dual_stack(mut self, value: impl Into<bool>) -> Self {
644                            self.use_dual_stack = Some(value.into());
645                            self
646                        }
647    
648                        pub fn set_use_dual_stack(mut self, param: Option<bool>) -> Self {
653                            self.use_dual_stack = param;
654                            self
655                        }
656    pub fn use_fips(mut self, value: impl Into<bool>) -> Self {
661                            self.use_fips = Some(value.into());
662                            self
663                        }
664    
665                        pub fn set_use_fips(mut self, param: Option<bool>) -> Self {
670                            self.use_fips = param;
671                            self
672                        }
673    pub fn endpoint(mut self, value: impl Into<::std::string::String>) -> Self {
677                            self.endpoint = Some(value.into());
678                            self
679                        }
680    
681                        pub fn set_endpoint(mut self, param: Option<::std::string::String>) -> Self {
685                            self.endpoint = param;
686                            self
687                        }
688}
689
690#[derive(Debug)]
692                pub struct InvalidParams {
693                    field: std::borrow::Cow<'static, str>
694                }
695
696                impl InvalidParams {
697                    #[allow(dead_code)]
698                    fn missing(field: &'static str) -> Self {
699                        Self { field: field.into() }
700                    }
701                }
702
703                impl std::fmt::Display for InvalidParams {
704                    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
705                        write!(f, "a required field was missing: `{}`", self.field)
706                    }
707                }
708
709                impl std::error::Error for InvalidParams { }
710
711mod internals;
712