aws_sdk_s3/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::EndpointFuture;
3pub use ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver;
4pub use ::aws_smithy_types::endpoint::Endpoint;
5
6#[cfg(test)]
7mod test {
8
9    /// region is not a valid DNS-suffix
10    #[test]
11    fn test_1() {
12        let params = crate::config::endpoint::Params::builder()
13            .region("a b".to_string())
14            .use_fips(false)
15            .use_dual_stack(false)
16            .accelerate(false)
17            .build()
18            .expect("invalid params");
19        let resolver = crate::config::endpoint::DefaultResolver::new();
20        let endpoint = resolver.resolve_endpoint(&params);
21        let error = endpoint.expect_err("expected error: Invalid region: region was not a valid DNS name. [region is not a valid DNS-suffix]");
22        assert_eq!(format!("{}", error), "Invalid region: region was not a valid DNS name.")
23    }
24
25    /// Invalid access point ARN: Not S3
26    #[test]
27    fn test_2() {
28        let params = crate::config::endpoint::Params::builder()
29            .region("us-east-1".to_string())
30            .use_fips(false)
31            .use_dual_stack(false)
32            .accelerate(false)
33            .bucket("arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
34            .build()
35            .expect("invalid params");
36        let resolver = crate::config::endpoint::DefaultResolver::new();
37        let endpoint = resolver.resolve_endpoint(&params);
38        let error =
39            endpoint.expect_err("expected error: Invalid ARN: The ARN was not for the S3 service, found: not-s3 [Invalid access point ARN: Not S3]");
40        assert_eq!(format!("{}", error), "Invalid ARN: The ARN was not for the S3 service, found: not-s3")
41    }
42
43    /// Invalid access point ARN: invalid resource
44    #[test]
45    fn test_3() {
46        let params = crate::config::endpoint::Params::builder()
47            .region("us-east-1".to_string())
48            .use_fips(false)
49            .use_dual_stack(false)
50            .accelerate(false)
51            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data".to_string())
52            .build()
53            .expect("invalid params");
54        let resolver = crate::config::endpoint::DefaultResolver::new();
55        let endpoint = resolver.resolve_endpoint(&params);
56        let error = endpoint.expect_err("expected error: Invalid ARN: The ARN may only contain a single resource component after `accesspoint`. [Invalid access point ARN: invalid resource]");
57        assert_eq!(
58            format!("{}", error),
59            "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`."
60        )
61    }
62
63    /// Invalid access point ARN: invalid no ap name
64    #[test]
65    fn test_4() {
66        let params = crate::config::endpoint::Params::builder()
67            .region("us-east-1".to_string())
68            .use_fips(false)
69            .use_dual_stack(false)
70            .accelerate(false)
71            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:".to_string())
72            .build()
73            .expect("invalid params");
74        let resolver = crate::config::endpoint::DefaultResolver::new();
75        let endpoint = resolver.resolve_endpoint(&params);
76        let error = endpoint.expect_err("expected error: Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided [Invalid access point ARN: invalid no ap name]");
77        assert_eq!(
78            format!("{}", error),
79            "Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided"
80        )
81    }
82
83    /// Invalid access point ARN: AccountId is invalid
84    #[test]
85    fn test_5() {
86        let params = crate::config::endpoint::Params::builder()
87            .region("us-east-1".to_string())
88            .use_fips(false)
89            .use_dual_stack(false)
90            .accelerate(false)
91            .bucket("arn:aws:s3:us-west-2:123456_789012:accesspoint:apname".to_string())
92            .build()
93            .expect("invalid params");
94        let resolver = crate::config::endpoint::DefaultResolver::new();
95        let endpoint = resolver.resolve_endpoint(&params);
96        let error = endpoint.expect_err("expected error: Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123456_789012` [Invalid access point ARN: AccountId is invalid]");
97        assert_eq!(
98            format!("{}", error),
99            "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123456_789012`"
100        )
101    }
102
103    /// Invalid access point ARN: access point name is invalid
104    #[test]
105    fn test_6() {
106        let params = crate::config::endpoint::Params::builder()
107            .region("us-east-1".to_string())
108            .use_fips(false)
109            .use_dual_stack(false)
110            .accelerate(false)
111            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name".to_string())
112            .build()
113            .expect("invalid params");
114        let resolver = crate::config::endpoint::DefaultResolver::new();
115        let endpoint = resolver.resolve_endpoint(&params);
116        let error = endpoint.expect_err("expected error: Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `ap_name` [Invalid access point ARN: access point name is invalid]");
117        assert_eq!(
118            format!("{}", error),
119            "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `ap_name`"
120        )
121    }
122
123    /// Access points (disable access points explicitly false)
124    #[test]
125    fn test_7() {
126        let params = crate::config::endpoint::Params::builder()
127            .region("us-east-1".to_string())
128            .use_fips(false)
129            .use_dual_stack(false)
130            .accelerate(false)
131            .disable_access_points(false)
132            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
133            .build()
134            .expect("invalid params");
135        let resolver = crate::config::endpoint::DefaultResolver::new();
136        let endpoint = resolver.resolve_endpoint(&params);
137        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com");
138        assert_eq!(
139            endpoint,
140            ::aws_smithy_types::endpoint::Endpoint::builder()
141                .url("https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com")
142                .property(
143                    "authSchemes",
144                    vec![{
145                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
146                        out.insert("name".to_string(), "sigv4".to_string().into());
147                        out.insert("signingName".to_string(), "s3".to_string().into());
148                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
149                        out.insert("disableDoubleEncoding".to_string(), true.into());
150                        out
151                    }
152                    .into()]
153                )
154                .build()
155        );
156    }
157
158    /// Access points: partition does not support FIPS
159    #[test]
160    fn test_8() {
161        let params = crate::config::endpoint::Params::builder()
162            .region("cn-north-1".to_string())
163            .use_fips(true)
164            .use_dual_stack(false)
165            .accelerate(false)
166            .bucket("arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint".to_string())
167            .build()
168            .expect("invalid params");
169        let resolver = crate::config::endpoint::DefaultResolver::new();
170        let endpoint = resolver.resolve_endpoint(&params);
171        let error = endpoint.expect_err("expected error: Partition does not support FIPS [Access points: partition does not support FIPS]");
172        assert_eq!(format!("{}", error), "Partition does not support FIPS")
173    }
174
175    /// Bucket region is invalid
176    #[test]
177    fn test_9() {
178        let params = crate::config::endpoint::Params::builder()
179            .region("us-east-1".to_string())
180            .use_fips(false)
181            .use_dual_stack(false)
182            .accelerate(false)
183            .disable_access_points(false)
184            .bucket("arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint".to_string())
185            .build()
186            .expect("invalid params");
187        let resolver = crate::config::endpoint::DefaultResolver::new();
188        let endpoint = resolver.resolve_endpoint(&params);
189        let error = endpoint.expect_err("expected error: Invalid region in ARN: `us-west -2` (invalid DNS name) [Bucket region is invalid]");
190        assert_eq!(format!("{}", error), "Invalid region in ARN: `us-west -2` (invalid DNS name)")
191    }
192
193    /// Access points when Access points explicitly disabled (used for CreateBucket)
194    #[test]
195    fn test_10() {
196        let params = crate::config::endpoint::Params::builder()
197            .region("us-east-1".to_string())
198            .use_fips(false)
199            .use_dual_stack(false)
200            .accelerate(false)
201            .disable_access_points(true)
202            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
203            .build()
204            .expect("invalid params");
205        let resolver = crate::config::endpoint::DefaultResolver::new();
206        let endpoint = resolver.resolve_endpoint(&params);
207        let error = endpoint.expect_err("expected error: Access points are not supported for this operation [Access points when Access points explicitly disabled (used for CreateBucket)]");
208        assert_eq!(format!("{}", error), "Access points are not supported for this operation")
209    }
210
211    /// missing arn type
212    #[test]
213    fn test_11() {
214        let params = crate::config::endpoint::Params::builder()
215            .region("us-east-1".to_string())
216            .use_fips(false)
217            .use_dual_stack(false)
218            .accelerate(false)
219            .disable_access_points(true)
220            .bucket("arn:aws:s3:us-west-2:123456789012:".to_string())
221            .build()
222            .expect("invalid params");
223        let resolver = crate::config::endpoint::DefaultResolver::new();
224        let endpoint = resolver.resolve_endpoint(&params);
225        let error = endpoint.expect_err("expected error: Invalid ARN: `arn:aws:s3:us-west-2:123456789012:` was not a valid ARN [missing arn type]");
226        assert_eq!(
227            format!("{}", error),
228            "Invalid ARN: `arn:aws:s3:us-west-2:123456789012:` was not a valid ARN"
229        )
230    }
231
232    /// SDK::Host + access point + Dualstack is an error
233    #[test]
234    fn test_12() {
235        let params = crate::config::endpoint::Params::builder()
236            .accelerate(false)
237            .bucket("arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint".to_string())
238            .force_path_style(false)
239            .endpoint("https://beta.example.com".to_string())
240            .region("cn-north-1".to_string())
241            .use_dual_stack(true)
242            .use_fips(false)
243            .build()
244            .expect("invalid params");
245        let resolver = crate::config::endpoint::DefaultResolver::new();
246        let endpoint = resolver.resolve_endpoint(&params);
247        let error = endpoint.expect_err(
248            "expected error: Cannot set dual-stack in combination with a custom endpoint. [SDK::Host + access point + Dualstack is an error]",
249        );
250        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
251    }
252
253    /// Access point ARN with FIPS & Dualstack
254    #[test]
255    fn test_13() {
256        let params = crate::config::endpoint::Params::builder()
257            .region("us-east-1".to_string())
258            .use_fips(true)
259            .use_dual_stack(true)
260            .accelerate(false)
261            .disable_access_points(false)
262            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
263            .build()
264            .expect("invalid params");
265        let resolver = crate::config::endpoint::DefaultResolver::new();
266        let endpoint = resolver.resolve_endpoint(&params);
267        let endpoint =
268            endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com");
269        assert_eq!(
270            endpoint,
271            ::aws_smithy_types::endpoint::Endpoint::builder()
272                .url("https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com")
273                .property(
274                    "authSchemes",
275                    vec![{
276                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
277                        out.insert("name".to_string(), "sigv4".to_string().into());
278                        out.insert("signingName".to_string(), "s3".to_string().into());
279                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
280                        out.insert("disableDoubleEncoding".to_string(), true.into());
281                        out
282                    }
283                    .into()]
284                )
285                .build()
286        );
287    }
288
289    /// Access point ARN with Dualstack
290    #[test]
291    fn test_14() {
292        let params = crate::config::endpoint::Params::builder()
293            .region("us-east-1".to_string())
294            .use_fips(false)
295            .use_dual_stack(true)
296            .accelerate(false)
297            .disable_access_points(false)
298            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
299            .build()
300            .expect("invalid params");
301        let resolver = crate::config::endpoint::DefaultResolver::new();
302        let endpoint = resolver.resolve_endpoint(&params);
303        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint.dualstack.us-west-2.amazonaws.com");
304        assert_eq!(
305            endpoint,
306            ::aws_smithy_types::endpoint::Endpoint::builder()
307                .url("https://myendpoint-123456789012.s3-accesspoint.dualstack.us-west-2.amazonaws.com")
308                .property(
309                    "authSchemes",
310                    vec![{
311                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
312                        out.insert("name".to_string(), "sigv4".to_string().into());
313                        out.insert("signingName".to_string(), "s3".to_string().into());
314                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
315                        out.insert("disableDoubleEncoding".to_string(), true.into());
316                        out
317                    }
318                    .into()]
319                )
320                .build()
321        );
322    }
323
324    /// vanilla MRAP
325    #[test]
326    fn test_15() {
327        let params = crate::config::endpoint::Params::builder()
328            .bucket("arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap".to_string())
329            .region("us-east-1".to_string())
330            .disable_multi_region_access_points(false)
331            .use_fips(false)
332            .use_dual_stack(false)
333            .accelerate(false)
334            .build()
335            .expect("invalid params");
336        let resolver = crate::config::endpoint::DefaultResolver::new();
337        let endpoint = resolver.resolve_endpoint(&params);
338        let endpoint = endpoint.expect("Expected valid endpoint: https://mfzwi23gnjvgw.mrap.accesspoint.s3-global.amazonaws.com");
339        assert_eq!(
340            endpoint,
341            ::aws_smithy_types::endpoint::Endpoint::builder()
342                .url("https://mfzwi23gnjvgw.mrap.accesspoint.s3-global.amazonaws.com")
343                .property(
344                    "authSchemes",
345                    vec![{
346                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
347                        out.insert("name".to_string(), "sigv4a".to_string().into());
348                        out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
349                        out.insert("signingName".to_string(), "s3".to_string().into());
350                        out.insert("disableDoubleEncoding".to_string(), true.into());
351                        out
352                    }
353                    .into()]
354                )
355                .build()
356        );
357    }
358
359    /// MRAP does not support FIPS
360    #[test]
361    fn test_16() {
362        let params = crate::config::endpoint::Params::builder()
363            .bucket("arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap".to_string())
364            .region("us-east-1".to_string())
365            .disable_multi_region_access_points(false)
366            .use_fips(true)
367            .use_dual_stack(false)
368            .accelerate(false)
369            .build()
370            .expect("invalid params");
371        let resolver = crate::config::endpoint::DefaultResolver::new();
372        let endpoint = resolver.resolve_endpoint(&params);
373        let error = endpoint.expect_err("expected error: S3 MRAP does not support FIPS [MRAP does not support FIPS]");
374        assert_eq!(format!("{}", error), "S3 MRAP does not support FIPS")
375    }
376
377    /// MRAP does not support DualStack
378    #[test]
379    fn test_17() {
380        let params = crate::config::endpoint::Params::builder()
381            .bucket("arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap".to_string())
382            .region("us-east-1".to_string())
383            .disable_multi_region_access_points(false)
384            .use_fips(false)
385            .use_dual_stack(true)
386            .accelerate(false)
387            .build()
388            .expect("invalid params");
389        let resolver = crate::config::endpoint::DefaultResolver::new();
390        let endpoint = resolver.resolve_endpoint(&params);
391        let error = endpoint.expect_err("expected error: S3 MRAP does not support dual-stack [MRAP does not support DualStack]");
392        assert_eq!(format!("{}", error), "S3 MRAP does not support dual-stack")
393    }
394
395    /// MRAP does not support S3 Accelerate
396    #[test]
397    fn test_18() {
398        let params = crate::config::endpoint::Params::builder()
399            .bucket("arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap".to_string())
400            .region("us-east-1".to_string())
401            .disable_multi_region_access_points(false)
402            .use_fips(false)
403            .use_dual_stack(false)
404            .accelerate(true)
405            .build()
406            .expect("invalid params");
407        let resolver = crate::config::endpoint::DefaultResolver::new();
408        let endpoint = resolver.resolve_endpoint(&params);
409        let error = endpoint.expect_err("expected error: S3 MRAP does not support S3 Accelerate [MRAP does not support S3 Accelerate]");
410        assert_eq!(format!("{}", error), "S3 MRAP does not support S3 Accelerate")
411    }
412
413    /// MRAP explicitly disabled
414    #[test]
415    fn test_19() {
416        let params = crate::config::endpoint::Params::builder()
417            .bucket("arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap".to_string())
418            .region("us-east-1".to_string())
419            .disable_multi_region_access_points(true)
420            .use_fips(false)
421            .use_dual_stack(false)
422            .accelerate(false)
423            .build()
424            .expect("invalid params");
425        let resolver = crate::config::endpoint::DefaultResolver::new();
426        let endpoint = resolver.resolve_endpoint(&params);
427        let error =
428            endpoint.expect_err("expected error: Invalid configuration: Multi-Region Access Point ARNs are disabled. [MRAP explicitly disabled]");
429        assert_eq!(
430            format!("{}", error),
431            "Invalid configuration: Multi-Region Access Point ARNs are disabled."
432        )
433    }
434
435    /// Dual-stack endpoint with path-style forced
436    #[test]
437    fn test_20() {
438        let params = crate::config::endpoint::Params::builder()
439            .bucket("bucketname".to_string())
440            .region("us-west-2".to_string())
441            .force_path_style(true)
442            .use_fips(false)
443            .accelerate(false)
444            .use_dual_stack(true)
445            .build()
446            .expect("invalid params");
447        let resolver = crate::config::endpoint::DefaultResolver::new();
448        let endpoint = resolver.resolve_endpoint(&params);
449        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.us-west-2.amazonaws.com/bucketname");
450        assert_eq!(
451            endpoint,
452            ::aws_smithy_types::endpoint::Endpoint::builder()
453                .url("https://s3.dualstack.us-west-2.amazonaws.com/bucketname")
454                .property(
455                    "authSchemes",
456                    vec![{
457                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
458                        out.insert("name".to_string(), "sigv4".to_string().into());
459                        out.insert("signingName".to_string(), "s3".to_string().into());
460                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
461                        out.insert("disableDoubleEncoding".to_string(), true.into());
462                        out
463                    }
464                    .into()]
465                )
466                .build()
467        );
468    }
469
470    /// Dual-stack endpoint + SDK::Host is error
471    #[test]
472    fn test_21() {
473        let params = crate::config::endpoint::Params::builder()
474            .bucket("bucketname".to_string())
475            .region("us-west-2".to_string())
476            .force_path_style(true)
477            .use_fips(false)
478            .accelerate(false)
479            .use_dual_stack(true)
480            .endpoint("https://abc.com".to_string())
481            .build()
482            .expect("invalid params");
483        let resolver = crate::config::endpoint::DefaultResolver::new();
484        let endpoint = resolver.resolve_endpoint(&params);
485        let error = endpoint
486            .expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [Dual-stack endpoint + SDK::Host is error]");
487        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
488    }
489
490    /// path style + ARN bucket
491    #[test]
492    fn test_22() {
493        let params = crate::config::endpoint::Params::builder()
494            .accelerate(false)
495            .bucket("arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap".to_string())
496            .force_path_style(true)
497            .region("us-west-2".to_string())
498            .use_dual_stack(false)
499            .use_fips(false)
500            .build()
501            .expect("invalid params");
502        let resolver = crate::config::endpoint::DefaultResolver::new();
503        let endpoint = resolver.resolve_endpoint(&params);
504        let error = endpoint.expect_err("expected error: Path-style addressing cannot be used with ARN buckets [path style + ARN bucket]");
505        assert_eq!(format!("{}", error), "Path-style addressing cannot be used with ARN buckets")
506    }
507
508    /// implicit path style bucket + dualstack
509    #[test]
510    fn test_23() {
511        let params = crate::config::endpoint::Params::builder()
512            .accelerate(false)
513            .bucket("99_ab".to_string())
514            .region("us-west-2".to_string())
515            .use_dual_stack(true)
516            .use_fips(false)
517            .build()
518            .expect("invalid params");
519        let resolver = crate::config::endpoint::DefaultResolver::new();
520        let endpoint = resolver.resolve_endpoint(&params);
521        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.us-west-2.amazonaws.com/99_ab");
522        assert_eq!(
523            endpoint,
524            ::aws_smithy_types::endpoint::Endpoint::builder()
525                .url("https://s3.dualstack.us-west-2.amazonaws.com/99_ab")
526                .property(
527                    "authSchemes",
528                    vec![{
529                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
530                        out.insert("name".to_string(), "sigv4".to_string().into());
531                        out.insert("signingName".to_string(), "s3".to_string().into());
532                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
533                        out.insert("disableDoubleEncoding".to_string(), true.into());
534                        out
535                    }
536                    .into()]
537                )
538                .build()
539        );
540    }
541
542    /// implicit path style bucket + dualstack
543    #[test]
544    fn test_24() {
545        let params = crate::config::endpoint::Params::builder()
546            .accelerate(false)
547            .bucket("99_ab".to_string())
548            .region("us-west-2".to_string())
549            .use_dual_stack(true)
550            .use_fips(false)
551            .endpoint("http://abc.com".to_string())
552            .build()
553            .expect("invalid params");
554        let resolver = crate::config::endpoint::DefaultResolver::new();
555        let endpoint = resolver.resolve_endpoint(&params);
556        let error = endpoint
557            .expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [implicit path style bucket + dualstack]");
558        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
559    }
560
561    /// don't allow URL injections in the bucket
562    #[test]
563    fn test_25() {
564        let params = crate::config::endpoint::Params::builder()
565            .bucket("example.com#".to_string())
566            .region("us-west-2".to_string())
567            .use_dual_stack(false)
568            .use_fips(false)
569            .accelerate(false)
570            .build()
571            .expect("invalid params");
572        let resolver = crate::config::endpoint::DefaultResolver::new();
573        let endpoint = resolver.resolve_endpoint(&params);
574        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-west-2.amazonaws.com/example.com%23");
575        assert_eq!(
576            endpoint,
577            ::aws_smithy_types::endpoint::Endpoint::builder()
578                .url("https://s3.us-west-2.amazonaws.com/example.com%23")
579                .property(
580                    "authSchemes",
581                    vec![{
582                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
583                        out.insert("name".to_string(), "sigv4".to_string().into());
584                        out.insert("signingName".to_string(), "s3".to_string().into());
585                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
586                        out.insert("disableDoubleEncoding".to_string(), true.into());
587                        out
588                    }
589                    .into()]
590                )
591                .build()
592        );
593    }
594
595    /// URI encode bucket names in the path
596    #[test]
597    fn test_26() {
598        let params = crate::config::endpoint::Params::builder()
599            .bucket("bucket name".to_string())
600            .region("us-west-2".to_string())
601            .use_dual_stack(false)
602            .use_fips(false)
603            .accelerate(false)
604            .build()
605            .expect("invalid params");
606        let resolver = crate::config::endpoint::DefaultResolver::new();
607        let endpoint = resolver.resolve_endpoint(&params);
608        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-west-2.amazonaws.com/bucket%20name");
609        assert_eq!(
610            endpoint,
611            ::aws_smithy_types::endpoint::Endpoint::builder()
612                .url("https://s3.us-west-2.amazonaws.com/bucket%20name")
613                .property(
614                    "authSchemes",
615                    vec![{
616                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
617                        out.insert("name".to_string(), "sigv4".to_string().into());
618                        out.insert("signingName".to_string(), "s3".to_string().into());
619                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
620                        out.insert("disableDoubleEncoding".to_string(), true.into());
621                        out
622                    }
623                    .into()]
624                )
625                .build()
626        );
627    }
628
629    /// scheme is respected
630    #[test]
631    fn test_27() {
632        let params = crate::config::endpoint::Params::builder()
633            .accelerate(false)
634            .bucket("99_ab".to_string())
635            .endpoint("http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
636            .region("af-south-1".to_string())
637            .use_dual_stack(false)
638            .use_fips(false)
639            .build()
640            .expect("invalid params");
641        let resolver = crate::config::endpoint::DefaultResolver::new();
642        let endpoint = resolver.resolve_endpoint(&params);
643        let endpoint = endpoint.expect("Expected valid endpoint: http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab");
644        assert_eq!(
645            endpoint,
646            ::aws_smithy_types::endpoint::Endpoint::builder()
647                .url("http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab")
648                .property(
649                    "authSchemes",
650                    vec![{
651                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
652                        out.insert("name".to_string(), "sigv4".to_string().into());
653                        out.insert("signingName".to_string(), "s3".to_string().into());
654                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
655                        out.insert("disableDoubleEncoding".to_string(), true.into());
656                        out
657                    }
658                    .into()]
659                )
660                .build()
661        );
662    }
663
664    /// scheme is respected (virtual addressing)
665    #[test]
666    fn test_28() {
667        let params = crate::config::endpoint::Params::builder()
668            .accelerate(false)
669            .bucket("bucketname".to_string())
670            .endpoint("http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo".to_string())
671            .region("af-south-1".to_string())
672            .use_dual_stack(false)
673            .use_fips(false)
674            .build()
675            .expect("invalid params");
676        let resolver = crate::config::endpoint::DefaultResolver::new();
677        let endpoint = resolver.resolve_endpoint(&params);
678        let endpoint = endpoint.expect("Expected valid endpoint: http://bucketname.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo");
679        assert_eq!(
680            endpoint,
681            ::aws_smithy_types::endpoint::Endpoint::builder()
682                .url("http://bucketname.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo")
683                .property(
684                    "authSchemes",
685                    vec![{
686                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
687                        out.insert("name".to_string(), "sigv4".to_string().into());
688                        out.insert("signingName".to_string(), "s3".to_string().into());
689                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
690                        out.insert("disableDoubleEncoding".to_string(), true.into());
691                        out
692                    }
693                    .into()]
694                )
695                .build()
696        );
697    }
698
699    /// path style + implicit private link
700    #[test]
701    fn test_29() {
702        let params = crate::config::endpoint::Params::builder()
703            .accelerate(false)
704            .bucket("99_ab".to_string())
705            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
706            .region("af-south-1".to_string())
707            .use_dual_stack(false)
708            .use_fips(false)
709            .build()
710            .expect("invalid params");
711        let resolver = crate::config::endpoint::DefaultResolver::new();
712        let endpoint = resolver.resolve_endpoint(&params);
713        let endpoint = endpoint.expect("Expected valid endpoint: https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab");
714        assert_eq!(
715            endpoint,
716            ::aws_smithy_types::endpoint::Endpoint::builder()
717                .url("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab")
718                .property(
719                    "authSchemes",
720                    vec![{
721                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
722                        out.insert("name".to_string(), "sigv4".to_string().into());
723                        out.insert("signingName".to_string(), "s3".to_string().into());
724                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
725                        out.insert("disableDoubleEncoding".to_string(), true.into());
726                        out
727                    }
728                    .into()]
729                )
730                .build()
731        );
732    }
733
734    /// invalid Endpoint override
735    #[test]
736    fn test_30() {
737        let params = crate::config::endpoint::Params::builder()
738            .accelerate(false)
739            .bucket("bucketname".to_string())
740            .endpoint("abcde://nota#url".to_string())
741            .region("af-south-1".to_string())
742            .use_dual_stack(false)
743            .use_fips(false)
744            .build()
745            .expect("invalid params");
746        let resolver = crate::config::endpoint::DefaultResolver::new();
747        let endpoint = resolver.resolve_endpoint(&params);
748        let error = endpoint.expect_err("expected error: Custom endpoint `abcde://nota#url` was not a valid URI [invalid Endpoint override]");
749        assert_eq!(format!("{}", error), "Custom endpoint `abcde://nota#url` was not a valid URI")
750    }
751
752    /// using an IPv4 address forces path style
753    #[test]
754    fn test_31() {
755        let params = crate::config::endpoint::Params::builder()
756            .accelerate(false)
757            .bucket("bucketname".to_string())
758            .endpoint("https://123.123.0.1".to_string())
759            .region("af-south-1".to_string())
760            .use_dual_stack(false)
761            .use_fips(false)
762            .build()
763            .expect("invalid params");
764        let resolver = crate::config::endpoint::DefaultResolver::new();
765        let endpoint = resolver.resolve_endpoint(&params);
766        let endpoint = endpoint.expect("Expected valid endpoint: https://123.123.0.1/bucketname");
767        assert_eq!(
768            endpoint,
769            ::aws_smithy_types::endpoint::Endpoint::builder()
770                .url("https://123.123.0.1/bucketname")
771                .property(
772                    "authSchemes",
773                    vec![{
774                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
775                        out.insert("name".to_string(), "sigv4".to_string().into());
776                        out.insert("signingName".to_string(), "s3".to_string().into());
777                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
778                        out.insert("disableDoubleEncoding".to_string(), true.into());
779                        out
780                    }
781                    .into()]
782                )
783                .build()
784        );
785    }
786
787    /// vanilla access point arn with region mismatch and UseArnRegion=false
788    #[test]
789    fn test_32() {
790        let params = crate::config::endpoint::Params::builder()
791            .accelerate(false)
792            .bucket("arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint".to_string())
793            .force_path_style(false)
794            .use_arn_region(false)
795            .region("us-west-2".to_string())
796            .use_dual_stack(false)
797            .use_fips(false)
798            .build()
799            .expect("invalid params");
800        let resolver = crate::config::endpoint::DefaultResolver::new();
801        let endpoint = resolver.resolve_endpoint(&params);
802        let error = endpoint.expect_err("expected error: Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false` [vanilla access point arn with region mismatch and UseArnRegion=false]");
803        assert_eq!(
804            format!("{}", error),
805            "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`"
806        )
807    }
808
809    /// vanilla access point arn with region mismatch and UseArnRegion unset
810    #[test]
811    fn test_33() {
812        let params = crate::config::endpoint::Params::builder()
813            .accelerate(false)
814            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
815            .force_path_style(false)
816            .region("us-east-1".to_string())
817            .use_dual_stack(false)
818            .use_fips(false)
819            .build()
820            .expect("invalid params");
821        let resolver = crate::config::endpoint::DefaultResolver::new();
822        let endpoint = resolver.resolve_endpoint(&params);
823        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com");
824        assert_eq!(
825            endpoint,
826            ::aws_smithy_types::endpoint::Endpoint::builder()
827                .url("https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com")
828                .property(
829                    "authSchemes",
830                    vec![{
831                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
832                        out.insert("name".to_string(), "sigv4".to_string().into());
833                        out.insert("signingName".to_string(), "s3".to_string().into());
834                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
835                        out.insert("disableDoubleEncoding".to_string(), true.into());
836                        out
837                    }
838                    .into()]
839                )
840                .build()
841        );
842    }
843
844    /// vanilla access point arn with region mismatch and UseArnRegion=true
845    #[test]
846    fn test_34() {
847        let params = crate::config::endpoint::Params::builder()
848            .accelerate(false)
849            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
850            .force_path_style(false)
851            .use_arn_region(true)
852            .region("us-east-1".to_string())
853            .use_dual_stack(false)
854            .use_fips(false)
855            .build()
856            .expect("invalid params");
857        let resolver = crate::config::endpoint::DefaultResolver::new();
858        let endpoint = resolver.resolve_endpoint(&params);
859        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com");
860        assert_eq!(
861            endpoint,
862            ::aws_smithy_types::endpoint::Endpoint::builder()
863                .url("https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com")
864                .property(
865                    "authSchemes",
866                    vec![{
867                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
868                        out.insert("name".to_string(), "sigv4".to_string().into());
869                        out.insert("signingName".to_string(), "s3".to_string().into());
870                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
871                        out.insert("disableDoubleEncoding".to_string(), true.into());
872                        out
873                    }
874                    .into()]
875                )
876                .build()
877        );
878    }
879
880    /// subdomains are not allowed in virtual buckets
881    #[test]
882    fn test_35() {
883        let params = crate::config::endpoint::Params::builder()
884            .bucket("bucket.name".to_string())
885            .region("us-east-1".to_string())
886            .build()
887            .expect("invalid params");
888        let resolver = crate::config::endpoint::DefaultResolver::new();
889        let endpoint = resolver.resolve_endpoint(&params);
890        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-east-1.amazonaws.com/bucket.name");
891        assert_eq!(
892            endpoint,
893            ::aws_smithy_types::endpoint::Endpoint::builder()
894                .url("https://s3.us-east-1.amazonaws.com/bucket.name")
895                .property(
896                    "authSchemes",
897                    vec![{
898                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
899                        out.insert("name".to_string(), "sigv4".to_string().into());
900                        out.insert("signingName".to_string(), "s3".to_string().into());
901                        out.insert("disableDoubleEncoding".to_string(), true.into());
902                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
903                        out
904                    }
905                    .into()]
906                )
907                .build()
908        );
909    }
910
911    /// bucket names with 3 characters are allowed in virtual buckets
912    #[test]
913    fn test_36() {
914        let params = crate::config::endpoint::Params::builder()
915            .bucket("aaa".to_string())
916            .region("us-east-1".to_string())
917            .build()
918            .expect("invalid params");
919        let resolver = crate::config::endpoint::DefaultResolver::new();
920        let endpoint = resolver.resolve_endpoint(&params);
921        let endpoint = endpoint.expect("Expected valid endpoint: https://aaa.s3.us-east-1.amazonaws.com");
922        assert_eq!(
923            endpoint,
924            ::aws_smithy_types::endpoint::Endpoint::builder()
925                .url("https://aaa.s3.us-east-1.amazonaws.com")
926                .property(
927                    "authSchemes",
928                    vec![{
929                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
930                        out.insert("name".to_string(), "sigv4".to_string().into());
931                        out.insert("signingName".to_string(), "s3".to_string().into());
932                        out.insert("disableDoubleEncoding".to_string(), true.into());
933                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
934                        out
935                    }
936                    .into()]
937                )
938                .build()
939        );
940    }
941
942    /// bucket names with fewer than 3 characters are not allowed in virtual host
943    #[test]
944    fn test_37() {
945        let params = crate::config::endpoint::Params::builder()
946            .bucket("aa".to_string())
947            .region("us-east-1".to_string())
948            .build()
949            .expect("invalid params");
950        let resolver = crate::config::endpoint::DefaultResolver::new();
951        let endpoint = resolver.resolve_endpoint(&params);
952        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-east-1.amazonaws.com/aa");
953        assert_eq!(
954            endpoint,
955            ::aws_smithy_types::endpoint::Endpoint::builder()
956                .url("https://s3.us-east-1.amazonaws.com/aa")
957                .property(
958                    "authSchemes",
959                    vec![{
960                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
961                        out.insert("name".to_string(), "sigv4".to_string().into());
962                        out.insert("signingName".to_string(), "s3".to_string().into());
963                        out.insert("disableDoubleEncoding".to_string(), true.into());
964                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
965                        out
966                    }
967                    .into()]
968                )
969                .build()
970        );
971    }
972
973    /// bucket names with uppercase characters are not allowed in virtual host
974    #[test]
975    fn test_38() {
976        let params = crate::config::endpoint::Params::builder()
977            .bucket("BucketName".to_string())
978            .region("us-east-1".to_string())
979            .build()
980            .expect("invalid params");
981        let resolver = crate::config::endpoint::DefaultResolver::new();
982        let endpoint = resolver.resolve_endpoint(&params);
983        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-east-1.amazonaws.com/BucketName");
984        assert_eq!(
985            endpoint,
986            ::aws_smithy_types::endpoint::Endpoint::builder()
987                .url("https://s3.us-east-1.amazonaws.com/BucketName")
988                .property(
989                    "authSchemes",
990                    vec![{
991                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
992                        out.insert("name".to_string(), "sigv4".to_string().into());
993                        out.insert("signingName".to_string(), "s3".to_string().into());
994                        out.insert("disableDoubleEncoding".to_string(), true.into());
995                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
996                        out
997                    }
998                    .into()]
999                )
1000                .build()
1001        );
1002    }
1003
1004    /// subdomains are allowed in virtual buckets on http endpoints
1005    #[test]
1006    fn test_39() {
1007        let params = crate::config::endpoint::Params::builder()
1008            .bucket("bucket.name".to_string())
1009            .region("us-east-1".to_string())
1010            .endpoint("http://example.com".to_string())
1011            .build()
1012            .expect("invalid params");
1013        let resolver = crate::config::endpoint::DefaultResolver::new();
1014        let endpoint = resolver.resolve_endpoint(&params);
1015        let endpoint = endpoint.expect("Expected valid endpoint: http://bucket.name.example.com");
1016        assert_eq!(
1017            endpoint,
1018            ::aws_smithy_types::endpoint::Endpoint::builder()
1019                .url("http://bucket.name.example.com")
1020                .property(
1021                    "authSchemes",
1022                    vec![{
1023                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1024                        out.insert("name".to_string(), "sigv4".to_string().into());
1025                        out.insert("signingName".to_string(), "s3".to_string().into());
1026                        out.insert("disableDoubleEncoding".to_string(), true.into());
1027                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1028                        out
1029                    }
1030                    .into()]
1031                )
1032                .build()
1033        );
1034    }
1035
1036    /// no region set
1037    #[test]
1038    fn test_40() {
1039        let params = crate::config::endpoint::Params::builder()
1040            .bucket("bucket-name".to_string())
1041            .build()
1042            .expect("invalid params");
1043        let resolver = crate::config::endpoint::DefaultResolver::new();
1044        let endpoint = resolver.resolve_endpoint(&params);
1045        let error = endpoint.expect_err("expected error: A region must be set when sending requests to S3. [no region set]");
1046        assert_eq!(format!("{}", error), "A region must be set when sending requests to S3.")
1047    }
1048
1049    /// UseGlobalEndpoints=true, region=us-east-1 uses the global endpoint
1050    #[test]
1051    fn test_41() {
1052        let params = crate::config::endpoint::Params::builder()
1053            .region("us-east-1".to_string())
1054            .use_global_endpoint(true)
1055            .use_fips(false)
1056            .use_dual_stack(false)
1057            .accelerate(false)
1058            .build()
1059            .expect("invalid params");
1060        let resolver = crate::config::endpoint::DefaultResolver::new();
1061        let endpoint = resolver.resolve_endpoint(&params);
1062        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.amazonaws.com");
1063        assert_eq!(
1064            endpoint,
1065            ::aws_smithy_types::endpoint::Endpoint::builder()
1066                .url("https://s3.amazonaws.com")
1067                .property(
1068                    "authSchemes",
1069                    vec![{
1070                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1071                        out.insert("name".to_string(), "sigv4".to_string().into());
1072                        out.insert("signingName".to_string(), "s3".to_string().into());
1073                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1074                        out.insert("disableDoubleEncoding".to_string(), true.into());
1075                        out
1076                    }
1077                    .into()]
1078                )
1079                .build()
1080        );
1081    }
1082
1083    /// UseGlobalEndpoints=true, region=us-west-2 uses the regional endpoint
1084    #[test]
1085    fn test_42() {
1086        let params = crate::config::endpoint::Params::builder()
1087            .region("us-west-2".to_string())
1088            .use_global_endpoint(true)
1089            .use_fips(false)
1090            .use_dual_stack(false)
1091            .accelerate(false)
1092            .build()
1093            .expect("invalid params");
1094        let resolver = crate::config::endpoint::DefaultResolver::new();
1095        let endpoint = resolver.resolve_endpoint(&params);
1096        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-west-2.amazonaws.com");
1097        assert_eq!(
1098            endpoint,
1099            ::aws_smithy_types::endpoint::Endpoint::builder()
1100                .url("https://s3.us-west-2.amazonaws.com")
1101                .property(
1102                    "authSchemes",
1103                    vec![{
1104                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1105                        out.insert("name".to_string(), "sigv4".to_string().into());
1106                        out.insert("signingName".to_string(), "s3".to_string().into());
1107                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
1108                        out.insert("disableDoubleEncoding".to_string(), true.into());
1109                        out
1110                    }
1111                    .into()]
1112                )
1113                .build()
1114        );
1115    }
1116
1117    /// UseGlobalEndpoints=true, region=cn-north-1 uses the regional endpoint
1118    #[test]
1119    fn test_43() {
1120        let params = crate::config::endpoint::Params::builder()
1121            .region("cn-north-1".to_string())
1122            .use_global_endpoint(true)
1123            .use_fips(false)
1124            .use_dual_stack(false)
1125            .accelerate(false)
1126            .build()
1127            .expect("invalid params");
1128        let resolver = crate::config::endpoint::DefaultResolver::new();
1129        let endpoint = resolver.resolve_endpoint(&params);
1130        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.cn-north-1.amazonaws.com.cn");
1131        assert_eq!(
1132            endpoint,
1133            ::aws_smithy_types::endpoint::Endpoint::builder()
1134                .url("https://s3.cn-north-1.amazonaws.com.cn")
1135                .property(
1136                    "authSchemes",
1137                    vec![{
1138                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1139                        out.insert("name".to_string(), "sigv4".to_string().into());
1140                        out.insert("signingName".to_string(), "s3".to_string().into());
1141                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
1142                        out.insert("disableDoubleEncoding".to_string(), true.into());
1143                        out
1144                    }
1145                    .into()]
1146                )
1147                .build()
1148        );
1149    }
1150
1151    /// UseGlobalEndpoints=true, region=us-east-1, fips=true uses the regional endpoint with fips
1152    #[test]
1153    fn test_44() {
1154        let params = crate::config::endpoint::Params::builder()
1155            .region("us-east-1".to_string())
1156            .use_global_endpoint(true)
1157            .use_fips(true)
1158            .use_dual_stack(false)
1159            .accelerate(false)
1160            .build()
1161            .expect("invalid params");
1162        let resolver = crate::config::endpoint::DefaultResolver::new();
1163        let endpoint = resolver.resolve_endpoint(&params);
1164        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.us-east-1.amazonaws.com");
1165        assert_eq!(
1166            endpoint,
1167            ::aws_smithy_types::endpoint::Endpoint::builder()
1168                .url("https://s3-fips.us-east-1.amazonaws.com")
1169                .property(
1170                    "authSchemes",
1171                    vec![{
1172                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1173                        out.insert("name".to_string(), "sigv4".to_string().into());
1174                        out.insert("signingName".to_string(), "s3".to_string().into());
1175                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1176                        out.insert("disableDoubleEncoding".to_string(), true.into());
1177                        out
1178                    }
1179                    .into()]
1180                )
1181                .build()
1182        );
1183    }
1184
1185    /// UseGlobalEndpoints=true, region=us-east-1, dualstack=true uses the regional endpoint with dualstack
1186    #[test]
1187    fn test_45() {
1188        let params = crate::config::endpoint::Params::builder()
1189            .region("us-east-1".to_string())
1190            .use_global_endpoint(true)
1191            .use_fips(false)
1192            .use_dual_stack(true)
1193            .accelerate(false)
1194            .build()
1195            .expect("invalid params");
1196        let resolver = crate::config::endpoint::DefaultResolver::new();
1197        let endpoint = resolver.resolve_endpoint(&params);
1198        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.us-east-1.amazonaws.com");
1199        assert_eq!(
1200            endpoint,
1201            ::aws_smithy_types::endpoint::Endpoint::builder()
1202                .url("https://s3.dualstack.us-east-1.amazonaws.com")
1203                .property(
1204                    "authSchemes",
1205                    vec![{
1206                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1207                        out.insert("name".to_string(), "sigv4".to_string().into());
1208                        out.insert("signingName".to_string(), "s3".to_string().into());
1209                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1210                        out.insert("disableDoubleEncoding".to_string(), true.into());
1211                        out
1212                    }
1213                    .into()]
1214                )
1215                .build()
1216        );
1217    }
1218
1219    /// UseGlobalEndpoints=true, region=us-east-1, dualstack and fips uses the regional endpoint with fips/dualstack
1220    #[test]
1221    fn test_46() {
1222        let params = crate::config::endpoint::Params::builder()
1223            .region("us-east-1".to_string())
1224            .use_global_endpoint(true)
1225            .use_fips(true)
1226            .use_dual_stack(true)
1227            .accelerate(false)
1228            .build()
1229            .expect("invalid params");
1230        let resolver = crate::config::endpoint::DefaultResolver::new();
1231        let endpoint = resolver.resolve_endpoint(&params);
1232        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.dualstack.us-east-1.amazonaws.com");
1233        assert_eq!(
1234            endpoint,
1235            ::aws_smithy_types::endpoint::Endpoint::builder()
1236                .url("https://s3-fips.dualstack.us-east-1.amazonaws.com")
1237                .property(
1238                    "authSchemes",
1239                    vec![{
1240                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1241                        out.insert("name".to_string(), "sigv4".to_string().into());
1242                        out.insert("signingName".to_string(), "s3".to_string().into());
1243                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1244                        out.insert("disableDoubleEncoding".to_string(), true.into());
1245                        out
1246                    }
1247                    .into()]
1248                )
1249                .build()
1250        );
1251    }
1252
1253    /// UseGlobalEndpoints=true, region=us-east-1 with custom endpoint, uses custom
1254    #[test]
1255    fn test_47() {
1256        let params = crate::config::endpoint::Params::builder()
1257            .region("us-east-1".to_string())
1258            .endpoint("https://example.com".to_string())
1259            .use_global_endpoint(true)
1260            .use_fips(false)
1261            .use_dual_stack(false)
1262            .accelerate(false)
1263            .build()
1264            .expect("invalid params");
1265        let resolver = crate::config::endpoint::DefaultResolver::new();
1266        let endpoint = resolver.resolve_endpoint(&params);
1267        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
1268        assert_eq!(
1269            endpoint,
1270            ::aws_smithy_types::endpoint::Endpoint::builder()
1271                .url("https://example.com")
1272                .property(
1273                    "authSchemes",
1274                    vec![{
1275                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1276                        out.insert("name".to_string(), "sigv4".to_string().into());
1277                        out.insert("signingName".to_string(), "s3".to_string().into());
1278                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1279                        out.insert("disableDoubleEncoding".to_string(), true.into());
1280                        out
1281                    }
1282                    .into()]
1283                )
1284                .build()
1285        );
1286    }
1287
1288    /// UseGlobalEndpoints=true, region=us-west-2 with custom endpoint, uses custom
1289    #[test]
1290    fn test_48() {
1291        let params = crate::config::endpoint::Params::builder()
1292            .region("us-west-2".to_string())
1293            .endpoint("https://example.com".to_string())
1294            .use_global_endpoint(true)
1295            .use_fips(false)
1296            .use_dual_stack(false)
1297            .accelerate(false)
1298            .build()
1299            .expect("invalid params");
1300        let resolver = crate::config::endpoint::DefaultResolver::new();
1301        let endpoint = resolver.resolve_endpoint(&params);
1302        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
1303        assert_eq!(
1304            endpoint,
1305            ::aws_smithy_types::endpoint::Endpoint::builder()
1306                .url("https://example.com")
1307                .property(
1308                    "authSchemes",
1309                    vec![{
1310                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1311                        out.insert("name".to_string(), "sigv4".to_string().into());
1312                        out.insert("signingName".to_string(), "s3".to_string().into());
1313                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
1314                        out.insert("disableDoubleEncoding".to_string(), true.into());
1315                        out
1316                    }
1317                    .into()]
1318                )
1319                .build()
1320        );
1321    }
1322
1323    /// UseGlobalEndpoints=true, region=us-east-1 with accelerate on non bucket case uses the global endpoint and ignores accelerate
1324    #[test]
1325    fn test_49() {
1326        let params = crate::config::endpoint::Params::builder()
1327            .region("us-east-1".to_string())
1328            .use_global_endpoint(true)
1329            .use_fips(false)
1330            .use_dual_stack(false)
1331            .accelerate(true)
1332            .build()
1333            .expect("invalid params");
1334        let resolver = crate::config::endpoint::DefaultResolver::new();
1335        let endpoint = resolver.resolve_endpoint(&params);
1336        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.amazonaws.com");
1337        assert_eq!(
1338            endpoint,
1339            ::aws_smithy_types::endpoint::Endpoint::builder()
1340                .url("https://s3.amazonaws.com")
1341                .property(
1342                    "authSchemes",
1343                    vec![{
1344                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1345                        out.insert("name".to_string(), "sigv4".to_string().into());
1346                        out.insert("signingName".to_string(), "s3".to_string().into());
1347                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1348                        out.insert("disableDoubleEncoding".to_string(), true.into());
1349                        out
1350                    }
1351                    .into()]
1352                )
1353                .build()
1354        );
1355    }
1356
1357    /// aws-global region uses the global endpoint
1358    #[test]
1359    fn test_50() {
1360        let params = crate::config::endpoint::Params::builder()
1361            .region("aws-global".to_string())
1362            .use_fips(false)
1363            .use_dual_stack(false)
1364            .accelerate(false)
1365            .build()
1366            .expect("invalid params");
1367        let resolver = crate::config::endpoint::DefaultResolver::new();
1368        let endpoint = resolver.resolve_endpoint(&params);
1369        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.amazonaws.com");
1370        assert_eq!(
1371            endpoint,
1372            ::aws_smithy_types::endpoint::Endpoint::builder()
1373                .url("https://s3.amazonaws.com")
1374                .property(
1375                    "authSchemes",
1376                    vec![{
1377                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1378                        out.insert("name".to_string(), "sigv4".to_string().into());
1379                        out.insert("signingName".to_string(), "s3".to_string().into());
1380                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1381                        out.insert("disableDoubleEncoding".to_string(), true.into());
1382                        out
1383                    }
1384                    .into()]
1385                )
1386                .build()
1387        );
1388    }
1389
1390    /// aws-global region with fips uses the regional endpoint
1391    #[test]
1392    fn test_51() {
1393        let params = crate::config::endpoint::Params::builder()
1394            .region("aws-global".to_string())
1395            .use_fips(true)
1396            .use_dual_stack(false)
1397            .accelerate(false)
1398            .build()
1399            .expect("invalid params");
1400        let resolver = crate::config::endpoint::DefaultResolver::new();
1401        let endpoint = resolver.resolve_endpoint(&params);
1402        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.us-east-1.amazonaws.com");
1403        assert_eq!(
1404            endpoint,
1405            ::aws_smithy_types::endpoint::Endpoint::builder()
1406                .url("https://s3-fips.us-east-1.amazonaws.com")
1407                .property(
1408                    "authSchemes",
1409                    vec![{
1410                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1411                        out.insert("name".to_string(), "sigv4".to_string().into());
1412                        out.insert("signingName".to_string(), "s3".to_string().into());
1413                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1414                        out.insert("disableDoubleEncoding".to_string(), true.into());
1415                        out
1416                    }
1417                    .into()]
1418                )
1419                .build()
1420        );
1421    }
1422
1423    /// aws-global region with dualstack uses the regional endpoint
1424    #[test]
1425    fn test_52() {
1426        let params = crate::config::endpoint::Params::builder()
1427            .region("aws-global".to_string())
1428            .use_fips(false)
1429            .use_dual_stack(true)
1430            .accelerate(false)
1431            .build()
1432            .expect("invalid params");
1433        let resolver = crate::config::endpoint::DefaultResolver::new();
1434        let endpoint = resolver.resolve_endpoint(&params);
1435        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.us-east-1.amazonaws.com");
1436        assert_eq!(
1437            endpoint,
1438            ::aws_smithy_types::endpoint::Endpoint::builder()
1439                .url("https://s3.dualstack.us-east-1.amazonaws.com")
1440                .property(
1441                    "authSchemes",
1442                    vec![{
1443                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1444                        out.insert("name".to_string(), "sigv4".to_string().into());
1445                        out.insert("signingName".to_string(), "s3".to_string().into());
1446                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1447                        out.insert("disableDoubleEncoding".to_string(), true.into());
1448                        out
1449                    }
1450                    .into()]
1451                )
1452                .build()
1453        );
1454    }
1455
1456    /// aws-global region with fips and dualstack uses the regional endpoint
1457    #[test]
1458    fn test_53() {
1459        let params = crate::config::endpoint::Params::builder()
1460            .region("aws-global".to_string())
1461            .use_fips(true)
1462            .use_dual_stack(true)
1463            .accelerate(false)
1464            .build()
1465            .expect("invalid params");
1466        let resolver = crate::config::endpoint::DefaultResolver::new();
1467        let endpoint = resolver.resolve_endpoint(&params);
1468        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.dualstack.us-east-1.amazonaws.com");
1469        assert_eq!(
1470            endpoint,
1471            ::aws_smithy_types::endpoint::Endpoint::builder()
1472                .url("https://s3-fips.dualstack.us-east-1.amazonaws.com")
1473                .property(
1474                    "authSchemes",
1475                    vec![{
1476                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1477                        out.insert("name".to_string(), "sigv4".to_string().into());
1478                        out.insert("signingName".to_string(), "s3".to_string().into());
1479                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1480                        out.insert("disableDoubleEncoding".to_string(), true.into());
1481                        out
1482                    }
1483                    .into()]
1484                )
1485                .build()
1486        );
1487    }
1488
1489    /// aws-global region with accelerate on non-bucket case, uses global endpoint and ignores accelerate
1490    #[test]
1491    fn test_54() {
1492        let params = crate::config::endpoint::Params::builder()
1493            .region("aws-global".to_string())
1494            .use_fips(false)
1495            .use_dual_stack(false)
1496            .accelerate(true)
1497            .build()
1498            .expect("invalid params");
1499        let resolver = crate::config::endpoint::DefaultResolver::new();
1500        let endpoint = resolver.resolve_endpoint(&params);
1501        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.amazonaws.com");
1502        assert_eq!(
1503            endpoint,
1504            ::aws_smithy_types::endpoint::Endpoint::builder()
1505                .url("https://s3.amazonaws.com")
1506                .property(
1507                    "authSchemes",
1508                    vec![{
1509                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1510                        out.insert("name".to_string(), "sigv4".to_string().into());
1511                        out.insert("signingName".to_string(), "s3".to_string().into());
1512                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1513                        out.insert("disableDoubleEncoding".to_string(), true.into());
1514                        out
1515                    }
1516                    .into()]
1517                )
1518                .build()
1519        );
1520    }
1521
1522    /// aws-global region with custom endpoint, uses custom
1523    #[test]
1524    fn test_55() {
1525        let params = crate::config::endpoint::Params::builder()
1526            .region("aws-global".to_string())
1527            .endpoint("https://example.com".to_string())
1528            .use_global_endpoint(false)
1529            .use_fips(false)
1530            .use_dual_stack(false)
1531            .accelerate(false)
1532            .build()
1533            .expect("invalid params");
1534        let resolver = crate::config::endpoint::DefaultResolver::new();
1535        let endpoint = resolver.resolve_endpoint(&params);
1536        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com");
1537        assert_eq!(
1538            endpoint,
1539            ::aws_smithy_types::endpoint::Endpoint::builder()
1540                .url("https://example.com")
1541                .property(
1542                    "authSchemes",
1543                    vec![{
1544                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1545                        out.insert("name".to_string(), "sigv4".to_string().into());
1546                        out.insert("signingName".to_string(), "s3".to_string().into());
1547                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1548                        out.insert("disableDoubleEncoding".to_string(), true.into());
1549                        out
1550                    }
1551                    .into()]
1552                )
1553                .build()
1554        );
1555    }
1556
1557    /// virtual addressing, aws-global region uses the global endpoint
1558    #[test]
1559    fn test_56() {
1560        let params = crate::config::endpoint::Params::builder()
1561            .region("aws-global".to_string())
1562            .bucket("bucket-name".to_string())
1563            .use_fips(false)
1564            .use_dual_stack(false)
1565            .accelerate(false)
1566            .build()
1567            .expect("invalid params");
1568        let resolver = crate::config::endpoint::DefaultResolver::new();
1569        let endpoint = resolver.resolve_endpoint(&params);
1570        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.amazonaws.com");
1571        assert_eq!(
1572            endpoint,
1573            ::aws_smithy_types::endpoint::Endpoint::builder()
1574                .url("https://bucket-name.s3.amazonaws.com")
1575                .property(
1576                    "authSchemes",
1577                    vec![{
1578                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1579                        out.insert("name".to_string(), "sigv4".to_string().into());
1580                        out.insert("signingName".to_string(), "s3".to_string().into());
1581                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1582                        out.insert("disableDoubleEncoding".to_string(), true.into());
1583                        out
1584                    }
1585                    .into()]
1586                )
1587                .build()
1588        );
1589    }
1590
1591    /// virtual addressing, aws-global region with Prefix, and Key uses the global endpoint. Prefix and Key parameters should not be used in endpoint evaluation.
1592    #[test]
1593    fn test_57() {
1594        let params = crate::config::endpoint::Params::builder()
1595            .region("aws-global".to_string())
1596            .bucket("bucket-name".to_string())
1597            .use_fips(false)
1598            .use_dual_stack(false)
1599            .accelerate(false)
1600            .prefix("prefix".to_string())
1601            .key("key".to_string())
1602            .build()
1603            .expect("invalid params");
1604        let resolver = crate::config::endpoint::DefaultResolver::new();
1605        let endpoint = resolver.resolve_endpoint(&params);
1606        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.amazonaws.com");
1607        assert_eq!(
1608            endpoint,
1609            ::aws_smithy_types::endpoint::Endpoint::builder()
1610                .url("https://bucket-name.s3.amazonaws.com")
1611                .property(
1612                    "authSchemes",
1613                    vec![{
1614                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1615                        out.insert("name".to_string(), "sigv4".to_string().into());
1616                        out.insert("signingName".to_string(), "s3".to_string().into());
1617                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1618                        out.insert("disableDoubleEncoding".to_string(), true.into());
1619                        out
1620                    }
1621                    .into()]
1622                )
1623                .build()
1624        );
1625    }
1626
1627    /// virtual addressing, aws-global region with Copy Source, and Key uses the global endpoint. Copy Source and Key parameters should not be used in endpoint evaluation.
1628    #[test]
1629    fn test_58() {
1630        let params = crate::config::endpoint::Params::builder()
1631            .region("aws-global".to_string())
1632            .bucket("bucket-name".to_string())
1633            .use_fips(false)
1634            .use_dual_stack(false)
1635            .accelerate(false)
1636            .copy_source("/copy/source".to_string())
1637            .key("key".to_string())
1638            .build()
1639            .expect("invalid params");
1640        let resolver = crate::config::endpoint::DefaultResolver::new();
1641        let endpoint = resolver.resolve_endpoint(&params);
1642        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.amazonaws.com");
1643        assert_eq!(
1644            endpoint,
1645            ::aws_smithy_types::endpoint::Endpoint::builder()
1646                .url("https://bucket-name.s3.amazonaws.com")
1647                .property(
1648                    "authSchemes",
1649                    vec![{
1650                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1651                        out.insert("name".to_string(), "sigv4".to_string().into());
1652                        out.insert("signingName".to_string(), "s3".to_string().into());
1653                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1654                        out.insert("disableDoubleEncoding".to_string(), true.into());
1655                        out
1656                    }
1657                    .into()]
1658                )
1659                .build()
1660        );
1661    }
1662
1663    /// virtual addressing, aws-global region with fips uses the regional fips endpoint
1664    #[test]
1665    fn test_59() {
1666        let params = crate::config::endpoint::Params::builder()
1667            .region("aws-global".to_string())
1668            .bucket("bucket-name".to_string())
1669            .use_fips(true)
1670            .use_dual_stack(false)
1671            .accelerate(false)
1672            .build()
1673            .expect("invalid params");
1674        let resolver = crate::config::endpoint::DefaultResolver::new();
1675        let endpoint = resolver.resolve_endpoint(&params);
1676        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-fips.us-east-1.amazonaws.com");
1677        assert_eq!(
1678            endpoint,
1679            ::aws_smithy_types::endpoint::Endpoint::builder()
1680                .url("https://bucket-name.s3-fips.us-east-1.amazonaws.com")
1681                .property(
1682                    "authSchemes",
1683                    vec![{
1684                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1685                        out.insert("name".to_string(), "sigv4".to_string().into());
1686                        out.insert("signingName".to_string(), "s3".to_string().into());
1687                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1688                        out.insert("disableDoubleEncoding".to_string(), true.into());
1689                        out
1690                    }
1691                    .into()]
1692                )
1693                .build()
1694        );
1695    }
1696
1697    /// virtual addressing, aws-global region with dualstack uses the regional dualstack endpoint
1698    #[test]
1699    fn test_60() {
1700        let params = crate::config::endpoint::Params::builder()
1701            .region("aws-global".to_string())
1702            .bucket("bucket-name".to_string())
1703            .use_fips(false)
1704            .use_dual_stack(true)
1705            .accelerate(false)
1706            .build()
1707            .expect("invalid params");
1708        let resolver = crate::config::endpoint::DefaultResolver::new();
1709        let endpoint = resolver.resolve_endpoint(&params);
1710        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.dualstack.us-east-1.amazonaws.com");
1711        assert_eq!(
1712            endpoint,
1713            ::aws_smithy_types::endpoint::Endpoint::builder()
1714                .url("https://bucket-name.s3.dualstack.us-east-1.amazonaws.com")
1715                .property(
1716                    "authSchemes",
1717                    vec![{
1718                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1719                        out.insert("name".to_string(), "sigv4".to_string().into());
1720                        out.insert("signingName".to_string(), "s3".to_string().into());
1721                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1722                        out.insert("disableDoubleEncoding".to_string(), true.into());
1723                        out
1724                    }
1725                    .into()]
1726                )
1727                .build()
1728        );
1729    }
1730
1731    /// virtual addressing, aws-global region with fips/dualstack uses the regional fips/dualstack endpoint
1732    #[test]
1733    fn test_61() {
1734        let params = crate::config::endpoint::Params::builder()
1735            .region("aws-global".to_string())
1736            .bucket("bucket-name".to_string())
1737            .use_fips(true)
1738            .use_dual_stack(true)
1739            .accelerate(false)
1740            .build()
1741            .expect("invalid params");
1742        let resolver = crate::config::endpoint::DefaultResolver::new();
1743        let endpoint = resolver.resolve_endpoint(&params);
1744        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-fips.dualstack.us-east-1.amazonaws.com");
1745        assert_eq!(
1746            endpoint,
1747            ::aws_smithy_types::endpoint::Endpoint::builder()
1748                .url("https://bucket-name.s3-fips.dualstack.us-east-1.amazonaws.com")
1749                .property(
1750                    "authSchemes",
1751                    vec![{
1752                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1753                        out.insert("name".to_string(), "sigv4".to_string().into());
1754                        out.insert("signingName".to_string(), "s3".to_string().into());
1755                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1756                        out.insert("disableDoubleEncoding".to_string(), true.into());
1757                        out
1758                    }
1759                    .into()]
1760                )
1761                .build()
1762        );
1763    }
1764
1765    /// virtual addressing, aws-global region with accelerate uses the global accelerate endpoint
1766    #[test]
1767    fn test_62() {
1768        let params = crate::config::endpoint::Params::builder()
1769            .region("aws-global".to_string())
1770            .bucket("bucket-name".to_string())
1771            .use_fips(false)
1772            .use_dual_stack(false)
1773            .accelerate(true)
1774            .build()
1775            .expect("invalid params");
1776        let resolver = crate::config::endpoint::DefaultResolver::new();
1777        let endpoint = resolver.resolve_endpoint(&params);
1778        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-accelerate.amazonaws.com");
1779        assert_eq!(
1780            endpoint,
1781            ::aws_smithy_types::endpoint::Endpoint::builder()
1782                .url("https://bucket-name.s3-accelerate.amazonaws.com")
1783                .property(
1784                    "authSchemes",
1785                    vec![{
1786                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1787                        out.insert("name".to_string(), "sigv4".to_string().into());
1788                        out.insert("signingName".to_string(), "s3".to_string().into());
1789                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1790                        out.insert("disableDoubleEncoding".to_string(), true.into());
1791                        out
1792                    }
1793                    .into()]
1794                )
1795                .build()
1796        );
1797    }
1798
1799    /// virtual addressing, aws-global region with custom endpoint
1800    #[test]
1801    fn test_63() {
1802        let params = crate::config::endpoint::Params::builder()
1803            .region("aws-global".to_string())
1804            .endpoint("https://example.com".to_string())
1805            .bucket("bucket-name".to_string())
1806            .use_fips(false)
1807            .use_dual_stack(false)
1808            .accelerate(false)
1809            .build()
1810            .expect("invalid params");
1811        let resolver = crate::config::endpoint::DefaultResolver::new();
1812        let endpoint = resolver.resolve_endpoint(&params);
1813        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.example.com");
1814        assert_eq!(
1815            endpoint,
1816            ::aws_smithy_types::endpoint::Endpoint::builder()
1817                .url("https://bucket-name.example.com")
1818                .property(
1819                    "authSchemes",
1820                    vec![{
1821                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1822                        out.insert("name".to_string(), "sigv4".to_string().into());
1823                        out.insert("signingName".to_string(), "s3".to_string().into());
1824                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1825                        out.insert("disableDoubleEncoding".to_string(), true.into());
1826                        out
1827                    }
1828                    .into()]
1829                )
1830                .build()
1831        );
1832    }
1833
1834    /// virtual addressing, UseGlobalEndpoint and us-east-1 region uses the global endpoint
1835    #[test]
1836    fn test_64() {
1837        let params = crate::config::endpoint::Params::builder()
1838            .region("us-east-1".to_string())
1839            .use_global_endpoint(true)
1840            .bucket("bucket-name".to_string())
1841            .use_fips(false)
1842            .use_dual_stack(false)
1843            .accelerate(false)
1844            .build()
1845            .expect("invalid params");
1846        let resolver = crate::config::endpoint::DefaultResolver::new();
1847        let endpoint = resolver.resolve_endpoint(&params);
1848        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.amazonaws.com");
1849        assert_eq!(
1850            endpoint,
1851            ::aws_smithy_types::endpoint::Endpoint::builder()
1852                .url("https://bucket-name.s3.amazonaws.com")
1853                .property(
1854                    "authSchemes",
1855                    vec![{
1856                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1857                        out.insert("name".to_string(), "sigv4".to_string().into());
1858                        out.insert("signingName".to_string(), "s3".to_string().into());
1859                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1860                        out.insert("disableDoubleEncoding".to_string(), true.into());
1861                        out
1862                    }
1863                    .into()]
1864                )
1865                .build()
1866        );
1867    }
1868
1869    /// virtual addressing, UseGlobalEndpoint and us-west-2 region uses the regional endpoint
1870    #[test]
1871    fn test_65() {
1872        let params = crate::config::endpoint::Params::builder()
1873            .region("us-west-2".to_string())
1874            .use_global_endpoint(true)
1875            .bucket("bucket-name".to_string())
1876            .use_fips(false)
1877            .use_dual_stack(false)
1878            .accelerate(false)
1879            .build()
1880            .expect("invalid params");
1881        let resolver = crate::config::endpoint::DefaultResolver::new();
1882        let endpoint = resolver.resolve_endpoint(&params);
1883        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.us-west-2.amazonaws.com");
1884        assert_eq!(
1885            endpoint,
1886            ::aws_smithy_types::endpoint::Endpoint::builder()
1887                .url("https://bucket-name.s3.us-west-2.amazonaws.com")
1888                .property(
1889                    "authSchemes",
1890                    vec![{
1891                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1892                        out.insert("name".to_string(), "sigv4".to_string().into());
1893                        out.insert("signingName".to_string(), "s3".to_string().into());
1894                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
1895                        out.insert("disableDoubleEncoding".to_string(), true.into());
1896                        out
1897                    }
1898                    .into()]
1899                )
1900                .build()
1901        );
1902    }
1903
1904    /// virtual addressing, UseGlobalEndpoint and us-east-1 region and fips uses the regional fips endpoint
1905    #[test]
1906    fn test_66() {
1907        let params = crate::config::endpoint::Params::builder()
1908            .region("us-east-1".to_string())
1909            .use_global_endpoint(true)
1910            .bucket("bucket-name".to_string())
1911            .use_fips(true)
1912            .use_dual_stack(false)
1913            .accelerate(false)
1914            .build()
1915            .expect("invalid params");
1916        let resolver = crate::config::endpoint::DefaultResolver::new();
1917        let endpoint = resolver.resolve_endpoint(&params);
1918        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-fips.us-east-1.amazonaws.com");
1919        assert_eq!(
1920            endpoint,
1921            ::aws_smithy_types::endpoint::Endpoint::builder()
1922                .url("https://bucket-name.s3-fips.us-east-1.amazonaws.com")
1923                .property(
1924                    "authSchemes",
1925                    vec![{
1926                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1927                        out.insert("name".to_string(), "sigv4".to_string().into());
1928                        out.insert("signingName".to_string(), "s3".to_string().into());
1929                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1930                        out.insert("disableDoubleEncoding".to_string(), true.into());
1931                        out
1932                    }
1933                    .into()]
1934                )
1935                .build()
1936        );
1937    }
1938
1939    /// virtual addressing, UseGlobalEndpoint and us-east-1 region and dualstack uses the regional dualstack endpoint
1940    #[test]
1941    fn test_67() {
1942        let params = crate::config::endpoint::Params::builder()
1943            .region("us-east-1".to_string())
1944            .use_global_endpoint(true)
1945            .bucket("bucket-name".to_string())
1946            .use_fips(false)
1947            .use_dual_stack(true)
1948            .accelerate(false)
1949            .build()
1950            .expect("invalid params");
1951        let resolver = crate::config::endpoint::DefaultResolver::new();
1952        let endpoint = resolver.resolve_endpoint(&params);
1953        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.dualstack.us-east-1.amazonaws.com");
1954        assert_eq!(
1955            endpoint,
1956            ::aws_smithy_types::endpoint::Endpoint::builder()
1957                .url("https://bucket-name.s3.dualstack.us-east-1.amazonaws.com")
1958                .property(
1959                    "authSchemes",
1960                    vec![{
1961                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1962                        out.insert("name".to_string(), "sigv4".to_string().into());
1963                        out.insert("signingName".to_string(), "s3".to_string().into());
1964                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
1965                        out.insert("disableDoubleEncoding".to_string(), true.into());
1966                        out
1967                    }
1968                    .into()]
1969                )
1970                .build()
1971        );
1972    }
1973
1974    /// virtual addressing, UseGlobalEndpoint and us-east-1 region and accelerate uses the global accelerate endpoint
1975    #[test]
1976    fn test_68() {
1977        let params = crate::config::endpoint::Params::builder()
1978            .region("us-east-1".to_string())
1979            .use_global_endpoint(true)
1980            .bucket("bucket-name".to_string())
1981            .use_fips(false)
1982            .use_dual_stack(false)
1983            .accelerate(true)
1984            .build()
1985            .expect("invalid params");
1986        let resolver = crate::config::endpoint::DefaultResolver::new();
1987        let endpoint = resolver.resolve_endpoint(&params);
1988        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-accelerate.amazonaws.com");
1989        assert_eq!(
1990            endpoint,
1991            ::aws_smithy_types::endpoint::Endpoint::builder()
1992                .url("https://bucket-name.s3-accelerate.amazonaws.com")
1993                .property(
1994                    "authSchemes",
1995                    vec![{
1996                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
1997                        out.insert("name".to_string(), "sigv4".to_string().into());
1998                        out.insert("signingName".to_string(), "s3".to_string().into());
1999                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2000                        out.insert("disableDoubleEncoding".to_string(), true.into());
2001                        out
2002                    }
2003                    .into()]
2004                )
2005                .build()
2006        );
2007    }
2008
2009    /// virtual addressing, UseGlobalEndpoint and us-east-1 region with custom endpoint
2010    #[test]
2011    fn test_69() {
2012        let params = crate::config::endpoint::Params::builder()
2013            .region("us-east-1".to_string())
2014            .endpoint("https://example.com".to_string())
2015            .use_global_endpoint(true)
2016            .bucket("bucket-name".to_string())
2017            .use_fips(false)
2018            .use_dual_stack(false)
2019            .accelerate(false)
2020            .build()
2021            .expect("invalid params");
2022        let resolver = crate::config::endpoint::DefaultResolver::new();
2023        let endpoint = resolver.resolve_endpoint(&params);
2024        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.example.com");
2025        assert_eq!(
2026            endpoint,
2027            ::aws_smithy_types::endpoint::Endpoint::builder()
2028                .url("https://bucket-name.example.com")
2029                .property(
2030                    "authSchemes",
2031                    vec![{
2032                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2033                        out.insert("name".to_string(), "sigv4".to_string().into());
2034                        out.insert("signingName".to_string(), "s3".to_string().into());
2035                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2036                        out.insert("disableDoubleEncoding".to_string(), true.into());
2037                        out
2038                    }
2039                    .into()]
2040                )
2041                .build()
2042        );
2043    }
2044
2045    /// ForcePathStyle, aws-global region uses the global endpoint
2046    #[test]
2047    fn test_70() {
2048        let params = crate::config::endpoint::Params::builder()
2049            .region("aws-global".to_string())
2050            .bucket("bucket-name".to_string())
2051            .force_path_style(true)
2052            .use_fips(false)
2053            .use_dual_stack(false)
2054            .accelerate(false)
2055            .build()
2056            .expect("invalid params");
2057        let resolver = crate::config::endpoint::DefaultResolver::new();
2058        let endpoint = resolver.resolve_endpoint(&params);
2059        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.amazonaws.com/bucket-name");
2060        assert_eq!(
2061            endpoint,
2062            ::aws_smithy_types::endpoint::Endpoint::builder()
2063                .url("https://s3.amazonaws.com/bucket-name")
2064                .property(
2065                    "authSchemes",
2066                    vec![{
2067                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2068                        out.insert("name".to_string(), "sigv4".to_string().into());
2069                        out.insert("signingName".to_string(), "s3".to_string().into());
2070                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2071                        out.insert("disableDoubleEncoding".to_string(), true.into());
2072                        out
2073                    }
2074                    .into()]
2075                )
2076                .build()
2077        );
2078    }
2079
2080    /// ForcePathStyle, aws-global region with fips is invalid
2081    #[test]
2082    fn test_71() {
2083        let params = crate::config::endpoint::Params::builder()
2084            .region("aws-global".to_string())
2085            .bucket("bucket-name".to_string())
2086            .force_path_style(true)
2087            .use_fips(true)
2088            .use_dual_stack(false)
2089            .accelerate(false)
2090            .build()
2091            .expect("invalid params");
2092        let resolver = crate::config::endpoint::DefaultResolver::new();
2093        let endpoint = resolver.resolve_endpoint(&params);
2094        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.us-east-1.amazonaws.com/bucket-name");
2095        assert_eq!(
2096            endpoint,
2097            ::aws_smithy_types::endpoint::Endpoint::builder()
2098                .url("https://s3-fips.us-east-1.amazonaws.com/bucket-name")
2099                .property(
2100                    "authSchemes",
2101                    vec![{
2102                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2103                        out.insert("signingName".to_string(), "s3".to_string().into());
2104                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2105                        out.insert("disableDoubleEncoding".to_string(), true.into());
2106                        out.insert("name".to_string(), "sigv4".to_string().into());
2107                        out
2108                    }
2109                    .into()]
2110                )
2111                .build()
2112        );
2113    }
2114
2115    /// ForcePathStyle, aws-global region with dualstack uses regional dualstack endpoint
2116    #[test]
2117    fn test_72() {
2118        let params = crate::config::endpoint::Params::builder()
2119            .region("aws-global".to_string())
2120            .bucket("bucket-name".to_string())
2121            .force_path_style(true)
2122            .use_fips(false)
2123            .use_dual_stack(true)
2124            .accelerate(false)
2125            .build()
2126            .expect("invalid params");
2127        let resolver = crate::config::endpoint::DefaultResolver::new();
2128        let endpoint = resolver.resolve_endpoint(&params);
2129        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.us-east-1.amazonaws.com/bucket-name");
2130        assert_eq!(
2131            endpoint,
2132            ::aws_smithy_types::endpoint::Endpoint::builder()
2133                .url("https://s3.dualstack.us-east-1.amazonaws.com/bucket-name")
2134                .property(
2135                    "authSchemes",
2136                    vec![{
2137                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2138                        out.insert("name".to_string(), "sigv4".to_string().into());
2139                        out.insert("signingName".to_string(), "s3".to_string().into());
2140                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2141                        out.insert("disableDoubleEncoding".to_string(), true.into());
2142                        out
2143                    }
2144                    .into()]
2145                )
2146                .build()
2147        );
2148    }
2149
2150    /// ForcePathStyle, aws-global region custom endpoint uses the custom endpoint
2151    #[test]
2152    fn test_73() {
2153        let params = crate::config::endpoint::Params::builder()
2154            .region("aws-global".to_string())
2155            .endpoint("https://example.com".to_string())
2156            .bucket("bucket-name".to_string())
2157            .force_path_style(true)
2158            .use_fips(false)
2159            .use_dual_stack(false)
2160            .accelerate(false)
2161            .build()
2162            .expect("invalid params");
2163        let resolver = crate::config::endpoint::DefaultResolver::new();
2164        let endpoint = resolver.resolve_endpoint(&params);
2165        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com/bucket-name");
2166        assert_eq!(
2167            endpoint,
2168            ::aws_smithy_types::endpoint::Endpoint::builder()
2169                .url("https://example.com/bucket-name")
2170                .property(
2171                    "authSchemes",
2172                    vec![{
2173                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2174                        out.insert("name".to_string(), "sigv4".to_string().into());
2175                        out.insert("signingName".to_string(), "s3".to_string().into());
2176                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2177                        out.insert("disableDoubleEncoding".to_string(), true.into());
2178                        out
2179                    }
2180                    .into()]
2181                )
2182                .build()
2183        );
2184    }
2185
2186    /// ForcePathStyle, UseGlobalEndpoint us-east-1 region uses the global endpoint
2187    #[test]
2188    fn test_74() {
2189        let params = crate::config::endpoint::Params::builder()
2190            .region("us-east-1".to_string())
2191            .bucket("bucket-name".to_string())
2192            .use_global_endpoint(true)
2193            .force_path_style(true)
2194            .use_fips(false)
2195            .use_dual_stack(false)
2196            .accelerate(false)
2197            .build()
2198            .expect("invalid params");
2199        let resolver = crate::config::endpoint::DefaultResolver::new();
2200        let endpoint = resolver.resolve_endpoint(&params);
2201        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.amazonaws.com/bucket-name");
2202        assert_eq!(
2203            endpoint,
2204            ::aws_smithy_types::endpoint::Endpoint::builder()
2205                .url("https://s3.amazonaws.com/bucket-name")
2206                .property(
2207                    "authSchemes",
2208                    vec![{
2209                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2210                        out.insert("name".to_string(), "sigv4".to_string().into());
2211                        out.insert("signingName".to_string(), "s3".to_string().into());
2212                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2213                        out.insert("disableDoubleEncoding".to_string(), true.into());
2214                        out
2215                    }
2216                    .into()]
2217                )
2218                .build()
2219        );
2220    }
2221
2222    /// ForcePathStyle, UseGlobalEndpoint us-west-2 region uses the regional endpoint
2223    #[test]
2224    fn test_75() {
2225        let params = crate::config::endpoint::Params::builder()
2226            .region("us-west-2".to_string())
2227            .bucket("bucket-name".to_string())
2228            .use_global_endpoint(true)
2229            .force_path_style(true)
2230            .use_fips(false)
2231            .use_dual_stack(false)
2232            .accelerate(false)
2233            .build()
2234            .expect("invalid params");
2235        let resolver = crate::config::endpoint::DefaultResolver::new();
2236        let endpoint = resolver.resolve_endpoint(&params);
2237        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-west-2.amazonaws.com/bucket-name");
2238        assert_eq!(
2239            endpoint,
2240            ::aws_smithy_types::endpoint::Endpoint::builder()
2241                .url("https://s3.us-west-2.amazonaws.com/bucket-name")
2242                .property(
2243                    "authSchemes",
2244                    vec![{
2245                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2246                        out.insert("name".to_string(), "sigv4".to_string().into());
2247                        out.insert("signingName".to_string(), "s3".to_string().into());
2248                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
2249                        out.insert("disableDoubleEncoding".to_string(), true.into());
2250                        out
2251                    }
2252                    .into()]
2253                )
2254                .build()
2255        );
2256    }
2257
2258    /// ForcePathStyle, UseGlobalEndpoint us-east-1 region, dualstack uses the regional dualstack endpoint
2259    #[test]
2260    fn test_76() {
2261        let params = crate::config::endpoint::Params::builder()
2262            .region("us-east-1".to_string())
2263            .bucket("bucket-name".to_string())
2264            .use_global_endpoint(true)
2265            .force_path_style(true)
2266            .use_fips(false)
2267            .use_dual_stack(true)
2268            .accelerate(false)
2269            .build()
2270            .expect("invalid params");
2271        let resolver = crate::config::endpoint::DefaultResolver::new();
2272        let endpoint = resolver.resolve_endpoint(&params);
2273        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.us-east-1.amazonaws.com/bucket-name");
2274        assert_eq!(
2275            endpoint,
2276            ::aws_smithy_types::endpoint::Endpoint::builder()
2277                .url("https://s3.dualstack.us-east-1.amazonaws.com/bucket-name")
2278                .property(
2279                    "authSchemes",
2280                    vec![{
2281                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2282                        out.insert("name".to_string(), "sigv4".to_string().into());
2283                        out.insert("signingName".to_string(), "s3".to_string().into());
2284                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2285                        out.insert("disableDoubleEncoding".to_string(), true.into());
2286                        out
2287                    }
2288                    .into()]
2289                )
2290                .build()
2291        );
2292    }
2293
2294    /// ForcePathStyle, UseGlobalEndpoint us-east-1 region custom endpoint uses the custom endpoint
2295    #[test]
2296    fn test_77() {
2297        let params = crate::config::endpoint::Params::builder()
2298            .region("us-east-1".to_string())
2299            .bucket("bucket-name".to_string())
2300            .endpoint("https://example.com".to_string())
2301            .use_global_endpoint(true)
2302            .force_path_style(true)
2303            .use_fips(false)
2304            .use_dual_stack(false)
2305            .accelerate(false)
2306            .build()
2307            .expect("invalid params");
2308        let resolver = crate::config::endpoint::DefaultResolver::new();
2309        let endpoint = resolver.resolve_endpoint(&params);
2310        let endpoint = endpoint.expect("Expected valid endpoint: https://example.com/bucket-name");
2311        assert_eq!(
2312            endpoint,
2313            ::aws_smithy_types::endpoint::Endpoint::builder()
2314                .url("https://example.com/bucket-name")
2315                .property(
2316                    "authSchemes",
2317                    vec![{
2318                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2319                        out.insert("name".to_string(), "sigv4".to_string().into());
2320                        out.insert("signingName".to_string(), "s3".to_string().into());
2321                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2322                        out.insert("disableDoubleEncoding".to_string(), true.into());
2323                        out
2324                    }
2325                    .into()]
2326                )
2327                .build()
2328        );
2329    }
2330
2331    /// ARN with aws-global region and  UseArnRegion uses the regional endpoint
2332    #[test]
2333    fn test_78() {
2334        let params = crate::config::endpoint::Params::builder()
2335            .region("aws-global".to_string())
2336            .use_arn_region(true)
2337            .use_fips(false)
2338            .use_dual_stack(false)
2339            .accelerate(false)
2340            .bucket("arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports".to_string())
2341            .build()
2342            .expect("invalid params");
2343        let resolver = crate::config::endpoint::DefaultResolver::new();
2344        let endpoint = resolver.resolve_endpoint(&params);
2345        let endpoint =
2346            endpoint.expect("Expected valid endpoint: https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com");
2347        assert_eq!(
2348            endpoint,
2349            ::aws_smithy_types::endpoint::Endpoint::builder()
2350                .url("https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com")
2351                .property(
2352                    "authSchemes",
2353                    vec![
2354                        {
2355                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2356                            out.insert("name".to_string(), "sigv4a".to_string().into());
2357                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
2358                            out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
2359                            out.insert("disableDoubleEncoding".to_string(), true.into());
2360                            out
2361                        }
2362                        .into(),
2363                        {
2364                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2365                            out.insert("name".to_string(), "sigv4".to_string().into());
2366                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
2367                            out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2368                            out.insert("disableDoubleEncoding".to_string(), true.into());
2369                            out
2370                        }
2371                        .into()
2372                    ]
2373                )
2374                .build()
2375        );
2376    }
2377
2378    /// cross partition MRAP ARN is an error
2379    #[test]
2380    fn test_79() {
2381        let params = crate::config::endpoint::Params::builder()
2382            .bucket("arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap".to_string())
2383            .region("us-west-1".to_string())
2384            .build()
2385            .expect("invalid params");
2386        let resolver = crate::config::endpoint::DefaultResolver::new();
2387        let endpoint = resolver.resolve_endpoint(&params);
2388        let error = endpoint.expect_err("expected error: Client was configured for partition `aws` but bucket referred to partition `aws-cn` [cross partition MRAP ARN is an error]");
2389        assert_eq!(
2390            format!("{}", error),
2391            "Client was configured for partition `aws` but bucket referred to partition `aws-cn`"
2392        )
2393    }
2394
2395    /// Endpoint override, accesspoint with HTTP, port
2396    #[test]
2397    fn test_80() {
2398        let params = crate::config::endpoint::Params::builder()
2399            .endpoint("http://beta.example.com:1234".to_string())
2400            .region("us-west-2".to_string())
2401            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
2402            .build()
2403            .expect("invalid params");
2404        let resolver = crate::config::endpoint::DefaultResolver::new();
2405        let endpoint = resolver.resolve_endpoint(&params);
2406        let endpoint = endpoint.expect("Expected valid endpoint: http://myendpoint-123456789012.beta.example.com:1234");
2407        assert_eq!(
2408            endpoint,
2409            ::aws_smithy_types::endpoint::Endpoint::builder()
2410                .url("http://myendpoint-123456789012.beta.example.com:1234")
2411                .property(
2412                    "authSchemes",
2413                    vec![{
2414                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2415                        out.insert("name".to_string(), "sigv4".to_string().into());
2416                        out.insert("signingName".to_string(), "s3".to_string().into());
2417                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
2418                        out.insert("disableDoubleEncoding".to_string(), true.into());
2419                        out
2420                    }
2421                    .into()]
2422                )
2423                .build()
2424        );
2425    }
2426
2427    /// Endpoint override, accesspoint with http, path, query, and port
2428    #[test]
2429    fn test_81() {
2430        let params = crate::config::endpoint::Params::builder()
2431            .region("us-west-2".to_string())
2432            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
2433            .endpoint("http://beta.example.com:1234/path".to_string())
2434            .use_fips(false)
2435            .use_dual_stack(false)
2436            .accelerate(false)
2437            .build()
2438            .expect("invalid params");
2439        let resolver = crate::config::endpoint::DefaultResolver::new();
2440        let endpoint = resolver.resolve_endpoint(&params);
2441        let endpoint = endpoint.expect("Expected valid endpoint: http://myendpoint-123456789012.beta.example.com:1234/path");
2442        assert_eq!(
2443            endpoint,
2444            ::aws_smithy_types::endpoint::Endpoint::builder()
2445                .url("http://myendpoint-123456789012.beta.example.com:1234/path")
2446                .property(
2447                    "authSchemes",
2448                    vec![{
2449                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2450                        out.insert("name".to_string(), "sigv4".to_string().into());
2451                        out.insert("signingName".to_string(), "s3".to_string().into());
2452                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
2453                        out.insert("disableDoubleEncoding".to_string(), true.into());
2454                        out
2455                    }
2456                    .into()]
2457                )
2458                .build()
2459        );
2460    }
2461
2462    /// non-bucket endpoint override with FIPS = error
2463    #[test]
2464    fn test_82() {
2465        let params = crate::config::endpoint::Params::builder()
2466            .region("us-west-2".to_string())
2467            .endpoint("http://beta.example.com:1234/path".to_string())
2468            .use_fips(true)
2469            .use_dual_stack(false)
2470            .build()
2471            .expect("invalid params");
2472        let resolver = crate::config::endpoint::DefaultResolver::new();
2473        let endpoint = resolver.resolve_endpoint(&params);
2474        let error =
2475            endpoint.expect_err("expected error: A custom endpoint cannot be combined with FIPS [non-bucket endpoint override with FIPS = error]");
2476        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
2477    }
2478
2479    /// FIPS + dualstack + custom endpoint
2480    #[test]
2481    fn test_83() {
2482        let params = crate::config::endpoint::Params::builder()
2483            .region("us-west-2".to_string())
2484            .endpoint("http://beta.example.com:1234/path".to_string())
2485            .use_fips(true)
2486            .use_dual_stack(true)
2487            .build()
2488            .expect("invalid params");
2489        let resolver = crate::config::endpoint::DefaultResolver::new();
2490        let endpoint = resolver.resolve_endpoint(&params);
2491        let error =
2492            endpoint.expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [FIPS + dualstack + custom endpoint]");
2493        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
2494    }
2495
2496    /// dualstack + custom endpoint
2497    #[test]
2498    fn test_84() {
2499        let params = crate::config::endpoint::Params::builder()
2500            .region("us-west-2".to_string())
2501            .endpoint("http://beta.example.com:1234/path".to_string())
2502            .use_fips(false)
2503            .use_dual_stack(true)
2504            .build()
2505            .expect("invalid params");
2506        let resolver = crate::config::endpoint::DefaultResolver::new();
2507        let endpoint = resolver.resolve_endpoint(&params);
2508        let error = endpoint.expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [dualstack + custom endpoint]");
2509        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
2510    }
2511
2512    /// custom endpoint without FIPS/dualstack
2513    #[test]
2514    fn test_85() {
2515        let params = crate::config::endpoint::Params::builder()
2516            .region("us-west-2".to_string())
2517            .endpoint("http://beta.example.com:1234/path".to_string())
2518            .use_fips(false)
2519            .use_dual_stack(false)
2520            .build()
2521            .expect("invalid params");
2522        let resolver = crate::config::endpoint::DefaultResolver::new();
2523        let endpoint = resolver.resolve_endpoint(&params);
2524        let endpoint = endpoint.expect("Expected valid endpoint: http://beta.example.com:1234/path");
2525        assert_eq!(
2526            endpoint,
2527            ::aws_smithy_types::endpoint::Endpoint::builder()
2528                .url("http://beta.example.com:1234/path")
2529                .property(
2530                    "authSchemes",
2531                    vec![{
2532                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2533                        out.insert("name".to_string(), "sigv4".to_string().into());
2534                        out.insert("signingName".to_string(), "s3".to_string().into());
2535                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
2536                        out.insert("disableDoubleEncoding".to_string(), true.into());
2537                        out
2538                    }
2539                    .into()]
2540                )
2541                .build()
2542        );
2543    }
2544
2545    /// s3 object lambda with access points disabled
2546    #[test]
2547    fn test_86() {
2548        let params = crate::config::endpoint::Params::builder()
2549            .region("us-west-2".to_string())
2550            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:myendpoint".to_string())
2551            .disable_access_points(true)
2552            .build()
2553            .expect("invalid params");
2554        let resolver = crate::config::endpoint::DefaultResolver::new();
2555        let endpoint = resolver.resolve_endpoint(&params);
2556        let error =
2557            endpoint.expect_err("expected error: Access points are not supported for this operation [s3 object lambda with access points disabled]");
2558        assert_eq!(format!("{}", error), "Access points are not supported for this operation")
2559    }
2560
2561    /// non bucket + FIPS
2562    #[test]
2563    fn test_87() {
2564        let params = crate::config::endpoint::Params::builder()
2565            .region("us-west-2".to_string())
2566            .use_fips(true)
2567            .use_dual_stack(false)
2568            .build()
2569            .expect("invalid params");
2570        let resolver = crate::config::endpoint::DefaultResolver::new();
2571        let endpoint = resolver.resolve_endpoint(&params);
2572        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.us-west-2.amazonaws.com");
2573        assert_eq!(
2574            endpoint,
2575            ::aws_smithy_types::endpoint::Endpoint::builder()
2576                .url("https://s3-fips.us-west-2.amazonaws.com")
2577                .property(
2578                    "authSchemes",
2579                    vec![{
2580                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2581                        out.insert("name".to_string(), "sigv4".to_string().into());
2582                        out.insert("signingName".to_string(), "s3".to_string().into());
2583                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
2584                        out.insert("disableDoubleEncoding".to_string(), true.into());
2585                        out
2586                    }
2587                    .into()]
2588                )
2589                .build()
2590        );
2591    }
2592
2593    /// standard non bucket endpoint
2594    #[test]
2595    fn test_88() {
2596        let params = crate::config::endpoint::Params::builder()
2597            .region("us-west-2".to_string())
2598            .use_fips(false)
2599            .use_dual_stack(false)
2600            .build()
2601            .expect("invalid params");
2602        let resolver = crate::config::endpoint::DefaultResolver::new();
2603        let endpoint = resolver.resolve_endpoint(&params);
2604        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-west-2.amazonaws.com");
2605        assert_eq!(
2606            endpoint,
2607            ::aws_smithy_types::endpoint::Endpoint::builder()
2608                .url("https://s3.us-west-2.amazonaws.com")
2609                .property(
2610                    "authSchemes",
2611                    vec![{
2612                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2613                        out.insert("name".to_string(), "sigv4".to_string().into());
2614                        out.insert("signingName".to_string(), "s3".to_string().into());
2615                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
2616                        out.insert("disableDoubleEncoding".to_string(), true.into());
2617                        out
2618                    }
2619                    .into()]
2620                )
2621                .build()
2622        );
2623    }
2624
2625    /// non bucket endpoint with FIPS + Dualstack
2626    #[test]
2627    fn test_89() {
2628        let params = crate::config::endpoint::Params::builder()
2629            .region("us-west-2".to_string())
2630            .use_fips(true)
2631            .use_dual_stack(true)
2632            .build()
2633            .expect("invalid params");
2634        let resolver = crate::config::endpoint::DefaultResolver::new();
2635        let endpoint = resolver.resolve_endpoint(&params);
2636        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.dualstack.us-west-2.amazonaws.com");
2637        assert_eq!(
2638            endpoint,
2639            ::aws_smithy_types::endpoint::Endpoint::builder()
2640                .url("https://s3-fips.dualstack.us-west-2.amazonaws.com")
2641                .property(
2642                    "authSchemes",
2643                    vec![{
2644                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2645                        out.insert("name".to_string(), "sigv4".to_string().into());
2646                        out.insert("signingName".to_string(), "s3".to_string().into());
2647                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
2648                        out.insert("disableDoubleEncoding".to_string(), true.into());
2649                        out
2650                    }
2651                    .into()]
2652                )
2653                .build()
2654        );
2655    }
2656
2657    /// non bucket endpoint with dualstack
2658    #[test]
2659    fn test_90() {
2660        let params = crate::config::endpoint::Params::builder()
2661            .region("us-west-2".to_string())
2662            .use_fips(false)
2663            .use_dual_stack(true)
2664            .build()
2665            .expect("invalid params");
2666        let resolver = crate::config::endpoint::DefaultResolver::new();
2667        let endpoint = resolver.resolve_endpoint(&params);
2668        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.us-west-2.amazonaws.com");
2669        assert_eq!(
2670            endpoint,
2671            ::aws_smithy_types::endpoint::Endpoint::builder()
2672                .url("https://s3.dualstack.us-west-2.amazonaws.com")
2673                .property(
2674                    "authSchemes",
2675                    vec![{
2676                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2677                        out.insert("name".to_string(), "sigv4".to_string().into());
2678                        out.insert("signingName".to_string(), "s3".to_string().into());
2679                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
2680                        out.insert("disableDoubleEncoding".to_string(), true.into());
2681                        out
2682                    }
2683                    .into()]
2684                )
2685                .build()
2686        );
2687    }
2688
2689    /// use global endpoint + IP address endpoint override
2690    #[test]
2691    fn test_91() {
2692        let params = crate::config::endpoint::Params::builder()
2693            .region("us-east-1".to_string())
2694            .bucket("bucket".to_string())
2695            .use_fips(false)
2696            .use_dual_stack(false)
2697            .endpoint("http://127.0.0.1".to_string())
2698            .use_global_endpoint(true)
2699            .build()
2700            .expect("invalid params");
2701        let resolver = crate::config::endpoint::DefaultResolver::new();
2702        let endpoint = resolver.resolve_endpoint(&params);
2703        let endpoint = endpoint.expect("Expected valid endpoint: http://127.0.0.1/bucket");
2704        assert_eq!(
2705            endpoint,
2706            ::aws_smithy_types::endpoint::Endpoint::builder()
2707                .url("http://127.0.0.1/bucket")
2708                .property(
2709                    "authSchemes",
2710                    vec![{
2711                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2712                        out.insert("name".to_string(), "sigv4".to_string().into());
2713                        out.insert("signingName".to_string(), "s3".to_string().into());
2714                        out.insert("disableDoubleEncoding".to_string(), true.into());
2715                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2716                        out
2717                    }
2718                    .into()]
2719                )
2720                .build()
2721        );
2722    }
2723
2724    /// non-dns endpoint + global endpoint
2725    #[test]
2726    fn test_92() {
2727        let params = crate::config::endpoint::Params::builder()
2728            .region("us-east-1".to_string())
2729            .bucket("bucket!".to_string())
2730            .use_fips(false)
2731            .use_dual_stack(false)
2732            .use_global_endpoint(true)
2733            .build()
2734            .expect("invalid params");
2735        let resolver = crate::config::endpoint::DefaultResolver::new();
2736        let endpoint = resolver.resolve_endpoint(&params);
2737        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.amazonaws.com/bucket%21");
2738        assert_eq!(
2739            endpoint,
2740            ::aws_smithy_types::endpoint::Endpoint::builder()
2741                .url("https://s3.amazonaws.com/bucket%21")
2742                .property(
2743                    "authSchemes",
2744                    vec![{
2745                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2746                        out.insert("name".to_string(), "sigv4".to_string().into());
2747                        out.insert("signingName".to_string(), "s3".to_string().into());
2748                        out.insert("disableDoubleEncoding".to_string(), true.into());
2749                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2750                        out
2751                    }
2752                    .into()]
2753                )
2754                .build()
2755        );
2756    }
2757
2758    /// endpoint override + use global endpoint
2759    #[test]
2760    fn test_93() {
2761        let params = crate::config::endpoint::Params::builder()
2762            .region("us-east-1".to_string())
2763            .bucket("bucket!".to_string())
2764            .use_fips(false)
2765            .use_dual_stack(false)
2766            .use_global_endpoint(true)
2767            .endpoint("http://foo.com".to_string())
2768            .build()
2769            .expect("invalid params");
2770        let resolver = crate::config::endpoint::DefaultResolver::new();
2771        let endpoint = resolver.resolve_endpoint(&params);
2772        let endpoint = endpoint.expect("Expected valid endpoint: http://foo.com/bucket%21");
2773        assert_eq!(
2774            endpoint,
2775            ::aws_smithy_types::endpoint::Endpoint::builder()
2776                .url("http://foo.com/bucket%21")
2777                .property(
2778                    "authSchemes",
2779                    vec![{
2780                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2781                        out.insert("name".to_string(), "sigv4".to_string().into());
2782                        out.insert("signingName".to_string(), "s3".to_string().into());
2783                        out.insert("disableDoubleEncoding".to_string(), true.into());
2784                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2785                        out
2786                    }
2787                    .into()]
2788                )
2789                .build()
2790        );
2791    }
2792
2793    /// FIPS + dualstack + non-bucket endpoint
2794    #[test]
2795    fn test_94() {
2796        let params = crate::config::endpoint::Params::builder()
2797            .region("us-east-1".to_string())
2798            .bucket("bucket!".to_string())
2799            .use_fips(true)
2800            .use_dual_stack(true)
2801            .build()
2802            .expect("invalid params");
2803        let resolver = crate::config::endpoint::DefaultResolver::new();
2804        let endpoint = resolver.resolve_endpoint(&params);
2805        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21");
2806        assert_eq!(
2807            endpoint,
2808            ::aws_smithy_types::endpoint::Endpoint::builder()
2809                .url("https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21")
2810                .property(
2811                    "authSchemes",
2812                    vec![{
2813                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2814                        out.insert("name".to_string(), "sigv4".to_string().into());
2815                        out.insert("signingName".to_string(), "s3".to_string().into());
2816                        out.insert("disableDoubleEncoding".to_string(), true.into());
2817                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2818                        out
2819                    }
2820                    .into()]
2821                )
2822                .build()
2823        );
2824    }
2825
2826    /// FIPS + dualstack + non-DNS endpoint
2827    #[test]
2828    fn test_95() {
2829        let params = crate::config::endpoint::Params::builder()
2830            .region("us-east-1".to_string())
2831            .bucket("bucket!".to_string())
2832            .force_path_style(true)
2833            .use_fips(true)
2834            .use_dual_stack(true)
2835            .build()
2836            .expect("invalid params");
2837        let resolver = crate::config::endpoint::DefaultResolver::new();
2838        let endpoint = resolver.resolve_endpoint(&params);
2839        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21");
2840        assert_eq!(
2841            endpoint,
2842            ::aws_smithy_types::endpoint::Endpoint::builder()
2843                .url("https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21")
2844                .property(
2845                    "authSchemes",
2846                    vec![{
2847                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2848                        out.insert("name".to_string(), "sigv4".to_string().into());
2849                        out.insert("signingName".to_string(), "s3".to_string().into());
2850                        out.insert("disableDoubleEncoding".to_string(), true.into());
2851                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2852                        out
2853                    }
2854                    .into()]
2855                )
2856                .build()
2857        );
2858    }
2859
2860    /// endpoint override + FIPS + dualstack (BUG)
2861    #[test]
2862    fn test_96() {
2863        let params = crate::config::endpoint::Params::builder()
2864            .region("us-east-1".to_string())
2865            .bucket("bucket!".to_string())
2866            .force_path_style(true)
2867            .use_fips(true)
2868            .use_dual_stack(false)
2869            .endpoint("http://foo.com".to_string())
2870            .build()
2871            .expect("invalid params");
2872        let resolver = crate::config::endpoint::DefaultResolver::new();
2873        let endpoint = resolver.resolve_endpoint(&params);
2874        let error =
2875            endpoint.expect_err("expected error: A custom endpoint cannot be combined with FIPS [endpoint override + FIPS + dualstack (BUG)]");
2876        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
2877    }
2878
2879    /// endpoint override + non-dns bucket + FIPS (BUG)
2880    #[test]
2881    fn test_97() {
2882        let params = crate::config::endpoint::Params::builder()
2883            .region("us-east-1".to_string())
2884            .bucket("bucket!".to_string())
2885            .use_fips(true)
2886            .use_dual_stack(false)
2887            .endpoint("http://foo.com".to_string())
2888            .build()
2889            .expect("invalid params");
2890        let resolver = crate::config::endpoint::DefaultResolver::new();
2891        let endpoint = resolver.resolve_endpoint(&params);
2892        let error =
2893            endpoint.expect_err("expected error: A custom endpoint cannot be combined with FIPS [endpoint override + non-dns bucket + FIPS (BUG)]");
2894        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
2895    }
2896
2897    /// FIPS + bucket endpoint + force path style
2898    #[test]
2899    fn test_98() {
2900        let params = crate::config::endpoint::Params::builder()
2901            .region("us-east-1".to_string())
2902            .bucket("bucket!".to_string())
2903            .force_path_style(true)
2904            .use_fips(true)
2905            .use_dual_stack(false)
2906            .use_global_endpoint(true)
2907            .build()
2908            .expect("invalid params");
2909        let resolver = crate::config::endpoint::DefaultResolver::new();
2910        let endpoint = resolver.resolve_endpoint(&params);
2911        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.us-east-1.amazonaws.com/bucket%21");
2912        assert_eq!(
2913            endpoint,
2914            ::aws_smithy_types::endpoint::Endpoint::builder()
2915                .url("https://s3-fips.us-east-1.amazonaws.com/bucket%21")
2916                .property(
2917                    "authSchemes",
2918                    vec![{
2919                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2920                        out.insert("name".to_string(), "sigv4".to_string().into());
2921                        out.insert("signingName".to_string(), "s3".to_string().into());
2922                        out.insert("disableDoubleEncoding".to_string(), true.into());
2923                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2924                        out
2925                    }
2926                    .into()]
2927                )
2928                .build()
2929        );
2930    }
2931
2932    /// bucket + FIPS + force path style
2933    #[test]
2934    fn test_99() {
2935        let params = crate::config::endpoint::Params::builder()
2936            .region("us-east-1".to_string())
2937            .bucket("bucket".to_string())
2938            .force_path_style(true)
2939            .use_fips(true)
2940            .use_dual_stack(true)
2941            .use_global_endpoint(true)
2942            .build()
2943            .expect("invalid params");
2944        let resolver = crate::config::endpoint::DefaultResolver::new();
2945        let endpoint = resolver.resolve_endpoint(&params);
2946        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket");
2947        assert_eq!(
2948            endpoint,
2949            ::aws_smithy_types::endpoint::Endpoint::builder()
2950                .url("https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket")
2951                .property(
2952                    "authSchemes",
2953                    vec![{
2954                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2955                        out.insert("name".to_string(), "sigv4".to_string().into());
2956                        out.insert("signingName".to_string(), "s3".to_string().into());
2957                        out.insert("disableDoubleEncoding".to_string(), true.into());
2958                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2959                        out
2960                    }
2961                    .into()]
2962                )
2963                .build()
2964        );
2965    }
2966
2967    /// FIPS + dualstack + use global endpoint
2968    #[test]
2969    fn test_100() {
2970        let params = crate::config::endpoint::Params::builder()
2971            .region("us-east-1".to_string())
2972            .bucket("bucket".to_string())
2973            .use_fips(true)
2974            .use_dual_stack(true)
2975            .use_global_endpoint(true)
2976            .build()
2977            .expect("invalid params");
2978        let resolver = crate::config::endpoint::DefaultResolver::new();
2979        let endpoint = resolver.resolve_endpoint(&params);
2980        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket.s3-fips.dualstack.us-east-1.amazonaws.com");
2981        assert_eq!(
2982            endpoint,
2983            ::aws_smithy_types::endpoint::Endpoint::builder()
2984                .url("https://bucket.s3-fips.dualstack.us-east-1.amazonaws.com")
2985                .property(
2986                    "authSchemes",
2987                    vec![{
2988                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
2989                        out.insert("name".to_string(), "sigv4".to_string().into());
2990                        out.insert("signingName".to_string(), "s3".to_string().into());
2991                        out.insert("disableDoubleEncoding".to_string(), true.into());
2992                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
2993                        out
2994                    }
2995                    .into()]
2996                )
2997                .build()
2998        );
2999    }
3000
3001    /// URI encoded bucket + use global endpoint
3002    #[test]
3003    fn test_101() {
3004        let params = crate::config::endpoint::Params::builder()
3005            .region("us-east-1".to_string())
3006            .bucket("bucket!".to_string())
3007            .use_fips(true)
3008            .use_dual_stack(false)
3009            .use_global_endpoint(true)
3010            .endpoint("https://foo.com".to_string())
3011            .build()
3012            .expect("invalid params");
3013        let resolver = crate::config::endpoint::DefaultResolver::new();
3014        let endpoint = resolver.resolve_endpoint(&params);
3015        let error = endpoint.expect_err("expected error: A custom endpoint cannot be combined with FIPS [URI encoded bucket + use global endpoint]");
3016        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
3017    }
3018
3019    /// FIPS + path based endpoint
3020    #[test]
3021    fn test_102() {
3022        let params = crate::config::endpoint::Params::builder()
3023            .region("us-east-1".to_string())
3024            .bucket("bucket!".to_string())
3025            .use_fips(true)
3026            .use_dual_stack(false)
3027            .accelerate(false)
3028            .use_global_endpoint(true)
3029            .build()
3030            .expect("invalid params");
3031        let resolver = crate::config::endpoint::DefaultResolver::new();
3032        let endpoint = resolver.resolve_endpoint(&params);
3033        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.us-east-1.amazonaws.com/bucket%21");
3034        assert_eq!(
3035            endpoint,
3036            ::aws_smithy_types::endpoint::Endpoint::builder()
3037                .url("https://s3-fips.us-east-1.amazonaws.com/bucket%21")
3038                .property(
3039                    "authSchemes",
3040                    vec![{
3041                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3042                        out.insert("name".to_string(), "sigv4".to_string().into());
3043                        out.insert("signingName".to_string(), "s3".to_string().into());
3044                        out.insert("disableDoubleEncoding".to_string(), true.into());
3045                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3046                        out
3047                    }
3048                    .into()]
3049                )
3050                .build()
3051        );
3052    }
3053
3054    /// accelerate + dualstack + global endpoint
3055    #[test]
3056    fn test_103() {
3057        let params = crate::config::endpoint::Params::builder()
3058            .region("us-east-1".to_string())
3059            .bucket("bucket".to_string())
3060            .use_fips(false)
3061            .use_dual_stack(true)
3062            .accelerate(true)
3063            .use_global_endpoint(true)
3064            .build()
3065            .expect("invalid params");
3066        let resolver = crate::config::endpoint::DefaultResolver::new();
3067        let endpoint = resolver.resolve_endpoint(&params);
3068        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket.s3-accelerate.dualstack.amazonaws.com");
3069        assert_eq!(
3070            endpoint,
3071            ::aws_smithy_types::endpoint::Endpoint::builder()
3072                .url("https://bucket.s3-accelerate.dualstack.amazonaws.com")
3073                .property(
3074                    "authSchemes",
3075                    vec![{
3076                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3077                        out.insert("name".to_string(), "sigv4".to_string().into());
3078                        out.insert("signingName".to_string(), "s3".to_string().into());
3079                        out.insert("disableDoubleEncoding".to_string(), true.into());
3080                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3081                        out
3082                    }
3083                    .into()]
3084                )
3085                .build()
3086        );
3087    }
3088
3089    /// dualstack + global endpoint + non URI safe bucket
3090    #[test]
3091    fn test_104() {
3092        let params = crate::config::endpoint::Params::builder()
3093            .region("us-east-1".to_string())
3094            .bucket("bucket!".to_string())
3095            .accelerate(false)
3096            .use_dual_stack(true)
3097            .use_fips(false)
3098            .use_global_endpoint(true)
3099            .build()
3100            .expect("invalid params");
3101        let resolver = crate::config::endpoint::DefaultResolver::new();
3102        let endpoint = resolver.resolve_endpoint(&params);
3103        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.us-east-1.amazonaws.com/bucket%21");
3104        assert_eq!(
3105            endpoint,
3106            ::aws_smithy_types::endpoint::Endpoint::builder()
3107                .url("https://s3.dualstack.us-east-1.amazonaws.com/bucket%21")
3108                .property(
3109                    "authSchemes",
3110                    vec![{
3111                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3112                        out.insert("name".to_string(), "sigv4".to_string().into());
3113                        out.insert("signingName".to_string(), "s3".to_string().into());
3114                        out.insert("disableDoubleEncoding".to_string(), true.into());
3115                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3116                        out
3117                    }
3118                    .into()]
3119                )
3120                .build()
3121        );
3122    }
3123
3124    /// FIPS + uri encoded bucket
3125    #[test]
3126    fn test_105() {
3127        let params = crate::config::endpoint::Params::builder()
3128            .region("us-east-1".to_string())
3129            .bucket("bucket!".to_string())
3130            .force_path_style(true)
3131            .accelerate(false)
3132            .use_dual_stack(false)
3133            .use_fips(true)
3134            .use_global_endpoint(true)
3135            .build()
3136            .expect("invalid params");
3137        let resolver = crate::config::endpoint::DefaultResolver::new();
3138        let endpoint = resolver.resolve_endpoint(&params);
3139        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.us-east-1.amazonaws.com/bucket%21");
3140        assert_eq!(
3141            endpoint,
3142            ::aws_smithy_types::endpoint::Endpoint::builder()
3143                .url("https://s3-fips.us-east-1.amazonaws.com/bucket%21")
3144                .property(
3145                    "authSchemes",
3146                    vec![{
3147                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3148                        out.insert("name".to_string(), "sigv4".to_string().into());
3149                        out.insert("signingName".to_string(), "s3".to_string().into());
3150                        out.insert("disableDoubleEncoding".to_string(), true.into());
3151                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3152                        out
3153                    }
3154                    .into()]
3155                )
3156                .build()
3157        );
3158    }
3159
3160    /// endpoint override + non-uri safe endpoint + force path style
3161    #[test]
3162    fn test_106() {
3163        let params = crate::config::endpoint::Params::builder()
3164            .region("us-east-1".to_string())
3165            .bucket("bucket!".to_string())
3166            .force_path_style(true)
3167            .accelerate(false)
3168            .use_dual_stack(false)
3169            .use_fips(true)
3170            .endpoint("http://foo.com".to_string())
3171            .use_global_endpoint(true)
3172            .build()
3173            .expect("invalid params");
3174        let resolver = crate::config::endpoint::DefaultResolver::new();
3175        let endpoint = resolver.resolve_endpoint(&params);
3176        let error = endpoint.expect_err(
3177            "expected error: A custom endpoint cannot be combined with FIPS [endpoint override + non-uri safe endpoint + force path style]",
3178        );
3179        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
3180    }
3181
3182    /// FIPS + Dualstack + global endpoint + non-dns bucket
3183    #[test]
3184    fn test_107() {
3185        let params = crate::config::endpoint::Params::builder()
3186            .region("us-east-1".to_string())
3187            .bucket("bucket!".to_string())
3188            .accelerate(false)
3189            .use_dual_stack(true)
3190            .use_fips(true)
3191            .use_global_endpoint(true)
3192            .build()
3193            .expect("invalid params");
3194        let resolver = crate::config::endpoint::DefaultResolver::new();
3195        let endpoint = resolver.resolve_endpoint(&params);
3196        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21");
3197        assert_eq!(
3198            endpoint,
3199            ::aws_smithy_types::endpoint::Endpoint::builder()
3200                .url("https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21")
3201                .property(
3202                    "authSchemes",
3203                    vec![{
3204                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3205                        out.insert("name".to_string(), "sigv4".to_string().into());
3206                        out.insert("signingName".to_string(), "s3".to_string().into());
3207                        out.insert("disableDoubleEncoding".to_string(), true.into());
3208                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3209                        out
3210                    }
3211                    .into()]
3212                )
3213                .build()
3214        );
3215    }
3216
3217    /// endpoint override + FIPS + dualstack
3218    #[test]
3219    fn test_108() {
3220        let params = crate::config::endpoint::Params::builder()
3221            .region("us-east-1".to_string())
3222            .use_dual_stack(true)
3223            .use_fips(true)
3224            .use_global_endpoint(true)
3225            .endpoint("http://foo.com".to_string())
3226            .build()
3227            .expect("invalid params");
3228        let resolver = crate::config::endpoint::DefaultResolver::new();
3229        let endpoint = resolver.resolve_endpoint(&params);
3230        let error = endpoint
3231            .expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [endpoint override + FIPS + dualstack]");
3232        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
3233    }
3234
3235    /// non-bucket endpoint override + dualstack + global endpoint
3236    #[test]
3237    fn test_109() {
3238        let params = crate::config::endpoint::Params::builder()
3239            .region("us-east-1".to_string())
3240            .use_fips(false)
3241            .use_dual_stack(true)
3242            .use_global_endpoint(true)
3243            .endpoint("http://foo.com".to_string())
3244            .build()
3245            .expect("invalid params");
3246        let resolver = crate::config::endpoint::DefaultResolver::new();
3247        let endpoint = resolver.resolve_endpoint(&params);
3248        let error = endpoint.expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [non-bucket endpoint override + dualstack + global endpoint]");
3249        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
3250    }
3251
3252    /// Endpoint override + UseGlobalEndpoint + us-east-1
3253    #[test]
3254    fn test_110() {
3255        let params = crate::config::endpoint::Params::builder()
3256            .region("us-east-1".to_string())
3257            .use_fips(true)
3258            .use_dual_stack(false)
3259            .use_global_endpoint(true)
3260            .endpoint("http://foo.com".to_string())
3261            .build()
3262            .expect("invalid params");
3263        let resolver = crate::config::endpoint::DefaultResolver::new();
3264        let endpoint = resolver.resolve_endpoint(&params);
3265        let error =
3266            endpoint.expect_err("expected error: A custom endpoint cannot be combined with FIPS [Endpoint override + UseGlobalEndpoint + us-east-1]");
3267        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
3268    }
3269
3270    /// non-FIPS partition with FIPS set + custom endpoint
3271    #[test]
3272    fn test_111() {
3273        let params = crate::config::endpoint::Params::builder()
3274            .region("cn-north-1".to_string())
3275            .use_fips(true)
3276            .use_dual_stack(false)
3277            .use_global_endpoint(true)
3278            .build()
3279            .expect("invalid params");
3280        let resolver = crate::config::endpoint::DefaultResolver::new();
3281        let endpoint = resolver.resolve_endpoint(&params);
3282        let error = endpoint.expect_err("expected error: Partition does not support FIPS [non-FIPS partition with FIPS set + custom endpoint]");
3283        assert_eq!(format!("{}", error), "Partition does not support FIPS")
3284    }
3285
3286    /// aws-global signs as us-east-1
3287    #[test]
3288    fn test_112() {
3289        let params = crate::config::endpoint::Params::builder()
3290            .region("aws-global".to_string())
3291            .bucket("bucket!".to_string())
3292            .use_fips(true)
3293            .accelerate(false)
3294            .use_dual_stack(true)
3295            .build()
3296            .expect("invalid params");
3297        let resolver = crate::config::endpoint::DefaultResolver::new();
3298        let endpoint = resolver.resolve_endpoint(&params);
3299        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21");
3300        assert_eq!(
3301            endpoint,
3302            ::aws_smithy_types::endpoint::Endpoint::builder()
3303                .url("https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21")
3304                .property(
3305                    "authSchemes",
3306                    vec![{
3307                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3308                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3309                        out.insert("name".to_string(), "sigv4".to_string().into());
3310                        out.insert("signingName".to_string(), "s3".to_string().into());
3311                        out.insert("disableDoubleEncoding".to_string(), true.into());
3312                        out
3313                    }
3314                    .into()]
3315                )
3316                .build()
3317        );
3318    }
3319
3320    /// aws-global signs as us-east-1
3321    #[test]
3322    fn test_113() {
3323        let params = crate::config::endpoint::Params::builder()
3324            .region("aws-global".to_string())
3325            .bucket("bucket".to_string())
3326            .use_dual_stack(false)
3327            .use_fips(false)
3328            .accelerate(false)
3329            .endpoint("https://foo.com".to_string())
3330            .build()
3331            .expect("invalid params");
3332        let resolver = crate::config::endpoint::DefaultResolver::new();
3333        let endpoint = resolver.resolve_endpoint(&params);
3334        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket.foo.com");
3335        assert_eq!(
3336            endpoint,
3337            ::aws_smithy_types::endpoint::Endpoint::builder()
3338                .url("https://bucket.foo.com")
3339                .property(
3340                    "authSchemes",
3341                    vec![{
3342                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3343                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3344                        out.insert("name".to_string(), "sigv4".to_string().into());
3345                        out.insert("signingName".to_string(), "s3".to_string().into());
3346                        out.insert("disableDoubleEncoding".to_string(), true.into());
3347                        out
3348                    }
3349                    .into()]
3350                )
3351                .build()
3352        );
3353    }
3354
3355    /// aws-global + dualstack + path-only bucket
3356    #[test]
3357    fn test_114() {
3358        let params = crate::config::endpoint::Params::builder()
3359            .region("aws-global".to_string())
3360            .bucket("bucket!".to_string())
3361            .use_dual_stack(true)
3362            .use_fips(false)
3363            .accelerate(false)
3364            .build()
3365            .expect("invalid params");
3366        let resolver = crate::config::endpoint::DefaultResolver::new();
3367        let endpoint = resolver.resolve_endpoint(&params);
3368        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.us-east-1.amazonaws.com/bucket%21");
3369        assert_eq!(
3370            endpoint,
3371            ::aws_smithy_types::endpoint::Endpoint::builder()
3372                .url("https://s3.dualstack.us-east-1.amazonaws.com/bucket%21")
3373                .property(
3374                    "authSchemes",
3375                    vec![{
3376                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3377                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3378                        out.insert("name".to_string(), "sigv4".to_string().into());
3379                        out.insert("signingName".to_string(), "s3".to_string().into());
3380                        out.insert("disableDoubleEncoding".to_string(), true.into());
3381                        out
3382                    }
3383                    .into()]
3384                )
3385                .build()
3386        );
3387    }
3388
3389    /// aws-global + path-only bucket
3390    #[test]
3391    fn test_115() {
3392        let params = crate::config::endpoint::Params::builder()
3393            .region("aws-global".to_string())
3394            .bucket("bucket!".to_string())
3395            .build()
3396            .expect("invalid params");
3397        let resolver = crate::config::endpoint::DefaultResolver::new();
3398        let endpoint = resolver.resolve_endpoint(&params);
3399        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.amazonaws.com/bucket%21");
3400        assert_eq!(
3401            endpoint,
3402            ::aws_smithy_types::endpoint::Endpoint::builder()
3403                .url("https://s3.amazonaws.com/bucket%21")
3404                .property(
3405                    "authSchemes",
3406                    vec![{
3407                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3408                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3409                        out.insert("name".to_string(), "sigv4".to_string().into());
3410                        out.insert("signingName".to_string(), "s3".to_string().into());
3411                        out.insert("disableDoubleEncoding".to_string(), true.into());
3412                        out
3413                    }
3414                    .into()]
3415                )
3416                .build()
3417        );
3418    }
3419
3420    /// aws-global + fips + custom endpoint
3421    #[test]
3422    fn test_116() {
3423        let params = crate::config::endpoint::Params::builder()
3424            .region("aws-global".to_string())
3425            .bucket("bucket!".to_string())
3426            .use_dual_stack(false)
3427            .use_fips(true)
3428            .accelerate(false)
3429            .endpoint("http://foo.com".to_string())
3430            .build()
3431            .expect("invalid params");
3432        let resolver = crate::config::endpoint::DefaultResolver::new();
3433        let endpoint = resolver.resolve_endpoint(&params);
3434        let error = endpoint.expect_err("expected error: A custom endpoint cannot be combined with FIPS [aws-global + fips + custom endpoint]");
3435        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
3436    }
3437
3438    /// aws-global, endpoint override & path only-bucket
3439    #[test]
3440    fn test_117() {
3441        let params = crate::config::endpoint::Params::builder()
3442            .region("aws-global".to_string())
3443            .bucket("bucket!".to_string())
3444            .use_dual_stack(false)
3445            .use_fips(false)
3446            .accelerate(false)
3447            .endpoint("http://foo.com".to_string())
3448            .build()
3449            .expect("invalid params");
3450        let resolver = crate::config::endpoint::DefaultResolver::new();
3451        let endpoint = resolver.resolve_endpoint(&params);
3452        let endpoint = endpoint.expect("Expected valid endpoint: http://foo.com/bucket%21");
3453        assert_eq!(
3454            endpoint,
3455            ::aws_smithy_types::endpoint::Endpoint::builder()
3456                .url("http://foo.com/bucket%21")
3457                .property(
3458                    "authSchemes",
3459                    vec![{
3460                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3461                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3462                        out.insert("name".to_string(), "sigv4".to_string().into());
3463                        out.insert("signingName".to_string(), "s3".to_string().into());
3464                        out.insert("disableDoubleEncoding".to_string(), true.into());
3465                        out
3466                    }
3467                    .into()]
3468                )
3469                .build()
3470        );
3471    }
3472
3473    /// aws-global + dualstack + custom endpoint
3474    #[test]
3475    fn test_118() {
3476        let params = crate::config::endpoint::Params::builder()
3477            .region("aws-global".to_string())
3478            .use_dual_stack(true)
3479            .use_fips(false)
3480            .accelerate(false)
3481            .endpoint("http://foo.com".to_string())
3482            .build()
3483            .expect("invalid params");
3484        let resolver = crate::config::endpoint::DefaultResolver::new();
3485        let endpoint = resolver.resolve_endpoint(&params);
3486        let error = endpoint
3487            .expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [aws-global + dualstack + custom endpoint]");
3488        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
3489    }
3490
3491    /// accelerate, dualstack + aws-global
3492    #[test]
3493    fn test_119() {
3494        let params = crate::config::endpoint::Params::builder()
3495            .region("aws-global".to_string())
3496            .bucket("bucket".to_string())
3497            .use_dual_stack(true)
3498            .use_fips(false)
3499            .accelerate(true)
3500            .build()
3501            .expect("invalid params");
3502        let resolver = crate::config::endpoint::DefaultResolver::new();
3503        let endpoint = resolver.resolve_endpoint(&params);
3504        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket.s3-accelerate.dualstack.us-east-1.amazonaws.com");
3505        assert_eq!(
3506            endpoint,
3507            ::aws_smithy_types::endpoint::Endpoint::builder()
3508                .url("https://bucket.s3-accelerate.dualstack.us-east-1.amazonaws.com")
3509                .property(
3510                    "authSchemes",
3511                    vec![{
3512                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3513                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3514                        out.insert("name".to_string(), "sigv4".to_string().into());
3515                        out.insert("signingName".to_string(), "s3".to_string().into());
3516                        out.insert("disableDoubleEncoding".to_string(), true.into());
3517                        out
3518                    }
3519                    .into()]
3520                )
3521                .build()
3522        );
3523    }
3524
3525    /// FIPS + aws-global + path only bucket. This is not supported by S3 but we allow garbage in garbage out
3526    #[test]
3527    fn test_120() {
3528        let params = crate::config::endpoint::Params::builder()
3529            .region("aws-global".to_string())
3530            .bucket("bucket!".to_string())
3531            .force_path_style(true)
3532            .use_dual_stack(true)
3533            .use_fips(true)
3534            .accelerate(false)
3535            .build()
3536            .expect("invalid params");
3537        let resolver = crate::config::endpoint::DefaultResolver::new();
3538        let endpoint = resolver.resolve_endpoint(&params);
3539        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21");
3540        assert_eq!(
3541            endpoint,
3542            ::aws_smithy_types::endpoint::Endpoint::builder()
3543                .url("https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21")
3544                .property(
3545                    "authSchemes",
3546                    vec![{
3547                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3548                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3549                        out.insert("name".to_string(), "sigv4".to_string().into());
3550                        out.insert("signingName".to_string(), "s3".to_string().into());
3551                        out.insert("disableDoubleEncoding".to_string(), true.into());
3552                        out
3553                    }
3554                    .into()]
3555                )
3556                .build()
3557        );
3558    }
3559
3560    /// aws-global + FIPS + endpoint override.
3561    #[test]
3562    fn test_121() {
3563        let params = crate::config::endpoint::Params::builder()
3564            .region("aws-global".to_string())
3565            .use_fips(true)
3566            .endpoint("http://foo.com".to_string())
3567            .build()
3568            .expect("invalid params");
3569        let resolver = crate::config::endpoint::DefaultResolver::new();
3570        let endpoint = resolver.resolve_endpoint(&params);
3571        let error = endpoint.expect_err("expected error: A custom endpoint cannot be combined with FIPS [aws-global + FIPS + endpoint override.]");
3572        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
3573    }
3574
3575    /// force path style, FIPS, aws-global & endpoint override
3576    #[test]
3577    fn test_122() {
3578        let params = crate::config::endpoint::Params::builder()
3579            .region("aws-global".to_string())
3580            .bucket("bucket!".to_string())
3581            .force_path_style(true)
3582            .use_fips(true)
3583            .endpoint("http://foo.com".to_string())
3584            .build()
3585            .expect("invalid params");
3586        let resolver = crate::config::endpoint::DefaultResolver::new();
3587        let endpoint = resolver.resolve_endpoint(&params);
3588        let error = endpoint
3589            .expect_err("expected error: A custom endpoint cannot be combined with FIPS [force path style, FIPS, aws-global & endpoint override]");
3590        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
3591    }
3592
3593    /// ip address causes path style to be forced
3594    #[test]
3595    fn test_123() {
3596        let params = crate::config::endpoint::Params::builder()
3597            .region("aws-global".to_string())
3598            .bucket("bucket".to_string())
3599            .endpoint("http://192.168.1.1".to_string())
3600            .build()
3601            .expect("invalid params");
3602        let resolver = crate::config::endpoint::DefaultResolver::new();
3603        let endpoint = resolver.resolve_endpoint(&params);
3604        let endpoint = endpoint.expect("Expected valid endpoint: http://192.168.1.1/bucket");
3605        assert_eq!(
3606            endpoint,
3607            ::aws_smithy_types::endpoint::Endpoint::builder()
3608                .url("http://192.168.1.1/bucket")
3609                .property(
3610                    "authSchemes",
3611                    vec![{
3612                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3613                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3614                        out.insert("name".to_string(), "sigv4".to_string().into());
3615                        out.insert("signingName".to_string(), "s3".to_string().into());
3616                        out.insert("disableDoubleEncoding".to_string(), true.into());
3617                        out
3618                    }
3619                    .into()]
3620                )
3621                .build()
3622        );
3623    }
3624
3625    /// endpoint override with aws-global region
3626    #[test]
3627    fn test_124() {
3628        let params = crate::config::endpoint::Params::builder()
3629            .region("aws-global".to_string())
3630            .use_fips(true)
3631            .use_dual_stack(true)
3632            .endpoint("http://foo.com".to_string())
3633            .build()
3634            .expect("invalid params");
3635        let resolver = crate::config::endpoint::DefaultResolver::new();
3636        let endpoint = resolver.resolve_endpoint(&params);
3637        let error = endpoint
3638            .expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [endpoint override with aws-global region]");
3639        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
3640    }
3641
3642    /// FIPS + path-only (TODO: consider making this an error)
3643    #[test]
3644    fn test_125() {
3645        let params = crate::config::endpoint::Params::builder()
3646            .region("aws-global".to_string())
3647            .bucket("bucket!".to_string())
3648            .use_fips(true)
3649            .build()
3650            .expect("invalid params");
3651        let resolver = crate::config::endpoint::DefaultResolver::new();
3652        let endpoint = resolver.resolve_endpoint(&params);
3653        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.us-east-1.amazonaws.com/bucket%21");
3654        assert_eq!(
3655            endpoint,
3656            ::aws_smithy_types::endpoint::Endpoint::builder()
3657                .url("https://s3-fips.us-east-1.amazonaws.com/bucket%21")
3658                .property(
3659                    "authSchemes",
3660                    vec![{
3661                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3662                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
3663                        out.insert("name".to_string(), "sigv4".to_string().into());
3664                        out.insert("signingName".to_string(), "s3".to_string().into());
3665                        out.insert("disableDoubleEncoding".to_string(), true.into());
3666                        out
3667                    }
3668                    .into()]
3669                )
3670                .build()
3671        );
3672    }
3673
3674    /// empty arn type
3675    #[test]
3676    fn test_126() {
3677        let params = crate::config::endpoint::Params::builder()
3678            .region("us-east-2".to_string())
3679            .bucket("arn:aws:not-s3:us-west-2:123456789012::myendpoint".to_string())
3680            .build()
3681            .expect("invalid params");
3682        let resolver = crate::config::endpoint::DefaultResolver::new();
3683        let endpoint = resolver.resolve_endpoint(&params);
3684        let error = endpoint.expect_err("expected error: Invalid ARN: No ARN type specified [empty arn type]");
3685        assert_eq!(format!("{}", error), "Invalid ARN: No ARN type specified")
3686    }
3687
3688    /// path style can't be used with accelerate
3689    #[test]
3690    fn test_127() {
3691        let params = crate::config::endpoint::Params::builder()
3692            .region("us-east-2".to_string())
3693            .bucket("bucket!".to_string())
3694            .accelerate(true)
3695            .build()
3696            .expect("invalid params");
3697        let resolver = crate::config::endpoint::DefaultResolver::new();
3698        let endpoint = resolver.resolve_endpoint(&params);
3699        let error =
3700            endpoint.expect_err("expected error: Path-style addressing cannot be used with S3 Accelerate [path style can't be used with accelerate]");
3701        assert_eq!(format!("{}", error), "Path-style addressing cannot be used with S3 Accelerate")
3702    }
3703
3704    /// invalid region
3705    #[test]
3706    fn test_128() {
3707        let params = crate::config::endpoint::Params::builder()
3708            .region("us-east-2!".to_string())
3709            .bucket("bucket.subdomain".to_string())
3710            .endpoint("http://foo.com".to_string())
3711            .build()
3712            .expect("invalid params");
3713        let resolver = crate::config::endpoint::DefaultResolver::new();
3714        let endpoint = resolver.resolve_endpoint(&params);
3715        let error = endpoint.expect_err("expected error: Invalid region: region was not a valid DNS name. [invalid region]");
3716        assert_eq!(format!("{}", error), "Invalid region: region was not a valid DNS name.")
3717    }
3718
3719    /// invalid region
3720    #[test]
3721    fn test_129() {
3722        let params = crate::config::endpoint::Params::builder()
3723            .region("us-east-2!".to_string())
3724            .bucket("bucket".to_string())
3725            .endpoint("http://foo.com".to_string())
3726            .build()
3727            .expect("invalid params");
3728        let resolver = crate::config::endpoint::DefaultResolver::new();
3729        let endpoint = resolver.resolve_endpoint(&params);
3730        let error = endpoint.expect_err("expected error: Invalid region: region was not a valid DNS name. [invalid region]");
3731        assert_eq!(format!("{}", error), "Invalid region: region was not a valid DNS name.")
3732    }
3733
3734    /// empty arn type
3735    #[test]
3736    fn test_130() {
3737        let params = crate::config::endpoint::Params::builder()
3738            .region("us-east-2".to_string())
3739            .bucket("arn:aws:s3::123456789012:accesspoint:my_endpoint".to_string())
3740            .build()
3741            .expect("invalid params");
3742        let resolver = crate::config::endpoint::DefaultResolver::new();
3743        let endpoint = resolver.resolve_endpoint(&params);
3744        let error = endpoint.expect_err("expected error: Invalid Access Point Name [empty arn type]");
3745        assert_eq!(format!("{}", error), "Invalid Access Point Name")
3746    }
3747
3748    /// empty arn type
3749    #[test]
3750    fn test_131() {
3751        let params = crate::config::endpoint::Params::builder()
3752            .region("us-east-2".to_string())
3753            .bucket("arn:aws:s3:cn-north-1:123456789012:accesspoint:my-endpoint".to_string())
3754            .use_arn_region(true)
3755            .build()
3756            .expect("invalid params");
3757        let resolver = crate::config::endpoint::DefaultResolver::new();
3758        let endpoint = resolver.resolve_endpoint(&params);
3759        let error = endpoint.expect_err("expected error: Client was configured for partition `aws` but ARN (`arn:aws:s3:cn-north-1:123456789012:accesspoint:my-endpoint`) has `aws-cn` [empty arn type]");
3760        assert_eq!(
3761            format!("{}", error),
3762            "Client was configured for partition `aws` but ARN (`arn:aws:s3:cn-north-1:123456789012:accesspoint:my-endpoint`) has `aws-cn`"
3763        )
3764    }
3765
3766    /// invalid arn region
3767    #[test]
3768    fn test_132() {
3769        let params = crate::config::endpoint::Params::builder()
3770            .region("us-east-2".to_string())
3771            .bucket("arn:aws:s3-object-lambda:us-east_2:123456789012:accesspoint:my-endpoint".to_string())
3772            .use_arn_region(true)
3773            .build()
3774            .expect("invalid params");
3775        let resolver = crate::config::endpoint::DefaultResolver::new();
3776        let endpoint = resolver.resolve_endpoint(&params);
3777        let error = endpoint.expect_err("expected error: Invalid region in ARN: `us-east_2` (invalid DNS name) [invalid arn region]");
3778        assert_eq!(format!("{}", error), "Invalid region in ARN: `us-east_2` (invalid DNS name)")
3779    }
3780
3781    /// invalid ARN outpost
3782    #[test]
3783    fn test_133() {
3784        let params = crate::config::endpoint::Params::builder()
3785            .region("us-east-2".to_string())
3786            .bucket("arn:aws:s3-outposts:us-east-1:123456789012:outpost/op_01234567890123456/accesspoint/reports".to_string())
3787            .use_arn_region(true)
3788            .build()
3789            .expect("invalid params");
3790        let resolver = crate::config::endpoint::DefaultResolver::new();
3791        let endpoint = resolver.resolve_endpoint(&params);
3792        let error = endpoint.expect_err(
3793            "expected error: Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `op_01234567890123456` [invalid ARN outpost]",
3794        );
3795        assert_eq!(
3796            format!("{}", error),
3797            "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `op_01234567890123456`"
3798        )
3799    }
3800
3801    /// invalid ARN
3802    #[test]
3803    fn test_134() {
3804        let params = crate::config::endpoint::Params::builder()
3805            .region("us-east-2".to_string())
3806            .bucket("arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/reports".to_string())
3807            .build()
3808            .expect("invalid params");
3809        let resolver = crate::config::endpoint::DefaultResolver::new();
3810        let endpoint = resolver.resolve_endpoint(&params);
3811        let error = endpoint.expect_err("expected error: Invalid ARN: expected an access point name [invalid ARN]");
3812        assert_eq!(format!("{}", error), "Invalid ARN: expected an access point name")
3813    }
3814
3815    /// invalid ARN
3816    #[test]
3817    fn test_135() {
3818        let params = crate::config::endpoint::Params::builder()
3819            .region("us-east-2".to_string())
3820            .bucket("arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456".to_string())
3821            .build()
3822            .expect("invalid params");
3823        let resolver = crate::config::endpoint::DefaultResolver::new();
3824        let endpoint = resolver.resolve_endpoint(&params);
3825        let error = endpoint.expect_err("expected error: Invalid ARN: Expected a 4-component resource [invalid ARN]");
3826        assert_eq!(format!("{}", error), "Invalid ARN: Expected a 4-component resource")
3827    }
3828
3829    /// invalid outpost type
3830    #[test]
3831    fn test_136() {
3832        let params = crate::config::endpoint::Params::builder()
3833            .region("us-east-2".to_string())
3834            .bucket("arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/not-accesspoint/reports".to_string())
3835            .build()
3836            .expect("invalid params");
3837        let resolver = crate::config::endpoint::DefaultResolver::new();
3838        let endpoint = resolver.resolve_endpoint(&params);
3839        let error = endpoint.expect_err("expected error: Expected an outpost type `accesspoint`, found not-accesspoint [invalid outpost type]");
3840        assert_eq!(format!("{}", error), "Expected an outpost type `accesspoint`, found not-accesspoint")
3841    }
3842
3843    /// invalid outpost type
3844    #[test]
3845    fn test_137() {
3846        let params = crate::config::endpoint::Params::builder()
3847            .region("us-east-2".to_string())
3848            .bucket("arn:aws:s3-outposts:us-east_1:123456789012:outpost/op-01234567890123456/not-accesspoint/reports".to_string())
3849            .build()
3850            .expect("invalid params");
3851        let resolver = crate::config::endpoint::DefaultResolver::new();
3852        let endpoint = resolver.resolve_endpoint(&params);
3853        let error = endpoint.expect_err("expected error: Invalid region in ARN: `us-east_1` (invalid DNS name) [invalid outpost type]");
3854        assert_eq!(format!("{}", error), "Invalid region in ARN: `us-east_1` (invalid DNS name)")
3855    }
3856
3857    /// invalid outpost type
3858    #[test]
3859    fn test_138() {
3860        let params = crate::config::endpoint::Params::builder()
3861            .region("us-east-2".to_string())
3862            .bucket("arn:aws:s3-outposts:us-east-1:12345_789012:outpost/op-01234567890123456/not-accesspoint/reports".to_string())
3863            .build()
3864            .expect("invalid params");
3865        let resolver = crate::config::endpoint::DefaultResolver::new();
3866        let endpoint = resolver.resolve_endpoint(&params);
3867        let error = endpoint.expect_err(
3868            "expected error: Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `12345_789012` [invalid outpost type]",
3869        );
3870        assert_eq!(
3871            format!("{}", error),
3872            "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `12345_789012`"
3873        )
3874    }
3875
3876    /// invalid outpost type
3877    #[test]
3878    fn test_139() {
3879        let params = crate::config::endpoint::Params::builder()
3880            .region("us-east-2".to_string())
3881            .bucket("arn:aws:s3-outposts:us-east-1:12345789012:outpost".to_string())
3882            .build()
3883            .expect("invalid params");
3884        let resolver = crate::config::endpoint::DefaultResolver::new();
3885        let endpoint = resolver.resolve_endpoint(&params);
3886        let error = endpoint.expect_err("expected error: Invalid ARN: The Outpost Id was not set [invalid outpost type]");
3887        assert_eq!(format!("{}", error), "Invalid ARN: The Outpost Id was not set")
3888    }
3889
3890    /// use global endpoint virtual addressing
3891    #[test]
3892    fn test_140() {
3893        let params = crate::config::endpoint::Params::builder()
3894            .region("us-east-2".to_string())
3895            .bucket("bucket".to_string())
3896            .endpoint("http://example.com".to_string())
3897            .use_global_endpoint(true)
3898            .build()
3899            .expect("invalid params");
3900        let resolver = crate::config::endpoint::DefaultResolver::new();
3901        let endpoint = resolver.resolve_endpoint(&params);
3902        let endpoint = endpoint.expect("Expected valid endpoint: http://bucket.example.com");
3903        assert_eq!(
3904            endpoint,
3905            ::aws_smithy_types::endpoint::Endpoint::builder()
3906                .url("http://bucket.example.com")
3907                .property(
3908                    "authSchemes",
3909                    vec![{
3910                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3911                        out.insert("signingRegion".to_string(), "us-east-2".to_string().into());
3912                        out.insert("name".to_string(), "sigv4".to_string().into());
3913                        out.insert("signingName".to_string(), "s3".to_string().into());
3914                        out.insert("disableDoubleEncoding".to_string(), true.into());
3915                        out
3916                    }
3917                    .into()]
3918                )
3919                .build()
3920        );
3921    }
3922
3923    /// global endpoint + ip address
3924    #[test]
3925    fn test_141() {
3926        let params = crate::config::endpoint::Params::builder()
3927            .region("us-east-2".to_string())
3928            .bucket("bucket".to_string())
3929            .endpoint("http://192.168.0.1".to_string())
3930            .use_global_endpoint(true)
3931            .build()
3932            .expect("invalid params");
3933        let resolver = crate::config::endpoint::DefaultResolver::new();
3934        let endpoint = resolver.resolve_endpoint(&params);
3935        let endpoint = endpoint.expect("Expected valid endpoint: http://192.168.0.1/bucket");
3936        assert_eq!(
3937            endpoint,
3938            ::aws_smithy_types::endpoint::Endpoint::builder()
3939                .url("http://192.168.0.1/bucket")
3940                .property(
3941                    "authSchemes",
3942                    vec![{
3943                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3944                        out.insert("signingRegion".to_string(), "us-east-2".to_string().into());
3945                        out.insert("name".to_string(), "sigv4".to_string().into());
3946                        out.insert("signingName".to_string(), "s3".to_string().into());
3947                        out.insert("disableDoubleEncoding".to_string(), true.into());
3948                        out
3949                    }
3950                    .into()]
3951                )
3952                .build()
3953        );
3954    }
3955
3956    /// invalid outpost type
3957    #[test]
3958    fn test_142() {
3959        let params = crate::config::endpoint::Params::builder()
3960            .region("us-east-2".to_string())
3961            .bucket("bucket!".to_string())
3962            .use_global_endpoint(true)
3963            .build()
3964            .expect("invalid params");
3965        let resolver = crate::config::endpoint::DefaultResolver::new();
3966        let endpoint = resolver.resolve_endpoint(&params);
3967        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-east-2.amazonaws.com/bucket%21");
3968        assert_eq!(
3969            endpoint,
3970            ::aws_smithy_types::endpoint::Endpoint::builder()
3971                .url("https://s3.us-east-2.amazonaws.com/bucket%21")
3972                .property(
3973                    "authSchemes",
3974                    vec![{
3975                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
3976                        out.insert("signingRegion".to_string(), "us-east-2".to_string().into());
3977                        out.insert("name".to_string(), "sigv4".to_string().into());
3978                        out.insert("signingName".to_string(), "s3".to_string().into());
3979                        out.insert("disableDoubleEncoding".to_string(), true.into());
3980                        out
3981                    }
3982                    .into()]
3983                )
3984                .build()
3985        );
3986    }
3987
3988    /// invalid outpost type
3989    #[test]
3990    fn test_143() {
3991        let params = crate::config::endpoint::Params::builder()
3992            .region("us-east-2".to_string())
3993            .bucket("bucket".to_string())
3994            .accelerate(true)
3995            .use_global_endpoint(true)
3996            .build()
3997            .expect("invalid params");
3998        let resolver = crate::config::endpoint::DefaultResolver::new();
3999        let endpoint = resolver.resolve_endpoint(&params);
4000        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket.s3-accelerate.amazonaws.com");
4001        assert_eq!(
4002            endpoint,
4003            ::aws_smithy_types::endpoint::Endpoint::builder()
4004                .url("https://bucket.s3-accelerate.amazonaws.com")
4005                .property(
4006                    "authSchemes",
4007                    vec![{
4008                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4009                        out.insert("signingRegion".to_string(), "us-east-2".to_string().into());
4010                        out.insert("name".to_string(), "sigv4".to_string().into());
4011                        out.insert("signingName".to_string(), "s3".to_string().into());
4012                        out.insert("disableDoubleEncoding".to_string(), true.into());
4013                        out
4014                    }
4015                    .into()]
4016                )
4017                .build()
4018        );
4019    }
4020
4021    /// use global endpoint + custom endpoint
4022    #[test]
4023    fn test_144() {
4024        let params = crate::config::endpoint::Params::builder()
4025            .region("us-east-2".to_string())
4026            .bucket("bucket!".to_string())
4027            .use_global_endpoint(true)
4028            .endpoint("http://foo.com".to_string())
4029            .build()
4030            .expect("invalid params");
4031        let resolver = crate::config::endpoint::DefaultResolver::new();
4032        let endpoint = resolver.resolve_endpoint(&params);
4033        let endpoint = endpoint.expect("Expected valid endpoint: http://foo.com/bucket%21");
4034        assert_eq!(
4035            endpoint,
4036            ::aws_smithy_types::endpoint::Endpoint::builder()
4037                .url("http://foo.com/bucket%21")
4038                .property(
4039                    "authSchemes",
4040                    vec![{
4041                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4042                        out.insert("signingRegion".to_string(), "us-east-2".to_string().into());
4043                        out.insert("name".to_string(), "sigv4".to_string().into());
4044                        out.insert("signingName".to_string(), "s3".to_string().into());
4045                        out.insert("disableDoubleEncoding".to_string(), true.into());
4046                        out
4047                    }
4048                    .into()]
4049                )
4050                .build()
4051        );
4052    }
4053
4054    /// use global endpoint, not us-east-1, force path style
4055    #[test]
4056    fn test_145() {
4057        let params = crate::config::endpoint::Params::builder()
4058            .region("us-east-2".to_string())
4059            .bucket("bucket!".to_string())
4060            .use_global_endpoint(true)
4061            .force_path_style(true)
4062            .endpoint("http://foo.com".to_string())
4063            .build()
4064            .expect("invalid params");
4065        let resolver = crate::config::endpoint::DefaultResolver::new();
4066        let endpoint = resolver.resolve_endpoint(&params);
4067        let endpoint = endpoint.expect("Expected valid endpoint: http://foo.com/bucket%21");
4068        assert_eq!(
4069            endpoint,
4070            ::aws_smithy_types::endpoint::Endpoint::builder()
4071                .url("http://foo.com/bucket%21")
4072                .property(
4073                    "authSchemes",
4074                    vec![{
4075                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4076                        out.insert("signingRegion".to_string(), "us-east-2".to_string().into());
4077                        out.insert("name".to_string(), "sigv4".to_string().into());
4078                        out.insert("signingName".to_string(), "s3".to_string().into());
4079                        out.insert("disableDoubleEncoding".to_string(), true.into());
4080                        out
4081                    }
4082                    .into()]
4083                )
4084                .build()
4085        );
4086    }
4087
4088    /// vanilla virtual addressing@us-west-2
4089    #[test]
4090    fn test_146() {
4091        let params = crate::config::endpoint::Params::builder()
4092            .accelerate(false)
4093            .bucket("bucket-name".to_string())
4094            .force_path_style(false)
4095            .region("us-west-2".to_string())
4096            .use_dual_stack(false)
4097            .use_fips(false)
4098            .build()
4099            .expect("invalid params");
4100        let resolver = crate::config::endpoint::DefaultResolver::new();
4101        let endpoint = resolver.resolve_endpoint(&params);
4102        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.us-west-2.amazonaws.com");
4103        assert_eq!(
4104            endpoint,
4105            ::aws_smithy_types::endpoint::Endpoint::builder()
4106                .url("https://bucket-name.s3.us-west-2.amazonaws.com")
4107                .property(
4108                    "authSchemes",
4109                    vec![{
4110                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4111                        out.insert("name".to_string(), "sigv4".to_string().into());
4112                        out.insert("signingName".to_string(), "s3".to_string().into());
4113                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
4114                        out.insert("disableDoubleEncoding".to_string(), true.into());
4115                        out
4116                    }
4117                    .into()]
4118                )
4119                .build()
4120        );
4121    }
4122
4123    /// virtual addressing + dualstack@us-west-2
4124    #[test]
4125    fn test_147() {
4126        let params = crate::config::endpoint::Params::builder()
4127            .accelerate(false)
4128            .bucket("bucket-name".to_string())
4129            .force_path_style(false)
4130            .region("us-west-2".to_string())
4131            .use_dual_stack(true)
4132            .use_fips(false)
4133            .build()
4134            .expect("invalid params");
4135        let resolver = crate::config::endpoint::DefaultResolver::new();
4136        let endpoint = resolver.resolve_endpoint(&params);
4137        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.dualstack.us-west-2.amazonaws.com");
4138        assert_eq!(
4139            endpoint,
4140            ::aws_smithy_types::endpoint::Endpoint::builder()
4141                .url("https://bucket-name.s3.dualstack.us-west-2.amazonaws.com")
4142                .property(
4143                    "authSchemes",
4144                    vec![{
4145                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4146                        out.insert("name".to_string(), "sigv4".to_string().into());
4147                        out.insert("signingName".to_string(), "s3".to_string().into());
4148                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
4149                        out.insert("disableDoubleEncoding".to_string(), true.into());
4150                        out
4151                    }
4152                    .into()]
4153                )
4154                .build()
4155        );
4156    }
4157
4158    /// accelerate + dualstack@us-west-2
4159    #[test]
4160    fn test_148() {
4161        let params = crate::config::endpoint::Params::builder()
4162            .accelerate(true)
4163            .bucket("bucket-name".to_string())
4164            .force_path_style(false)
4165            .region("us-west-2".to_string())
4166            .use_dual_stack(true)
4167            .use_fips(false)
4168            .build()
4169            .expect("invalid params");
4170        let resolver = crate::config::endpoint::DefaultResolver::new();
4171        let endpoint = resolver.resolve_endpoint(&params);
4172        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-accelerate.dualstack.amazonaws.com");
4173        assert_eq!(
4174            endpoint,
4175            ::aws_smithy_types::endpoint::Endpoint::builder()
4176                .url("https://bucket-name.s3-accelerate.dualstack.amazonaws.com")
4177                .property(
4178                    "authSchemes",
4179                    vec![{
4180                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4181                        out.insert("name".to_string(), "sigv4".to_string().into());
4182                        out.insert("signingName".to_string(), "s3".to_string().into());
4183                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
4184                        out.insert("disableDoubleEncoding".to_string(), true.into());
4185                        out
4186                    }
4187                    .into()]
4188                )
4189                .build()
4190        );
4191    }
4192
4193    /// accelerate (dualstack=false)@us-west-2
4194    #[test]
4195    fn test_149() {
4196        let params = crate::config::endpoint::Params::builder()
4197            .accelerate(true)
4198            .bucket("bucket-name".to_string())
4199            .force_path_style(false)
4200            .region("us-west-2".to_string())
4201            .use_dual_stack(false)
4202            .use_fips(false)
4203            .build()
4204            .expect("invalid params");
4205        let resolver = crate::config::endpoint::DefaultResolver::new();
4206        let endpoint = resolver.resolve_endpoint(&params);
4207        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-accelerate.amazonaws.com");
4208        assert_eq!(
4209            endpoint,
4210            ::aws_smithy_types::endpoint::Endpoint::builder()
4211                .url("https://bucket-name.s3-accelerate.amazonaws.com")
4212                .property(
4213                    "authSchemes",
4214                    vec![{
4215                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4216                        out.insert("name".to_string(), "sigv4".to_string().into());
4217                        out.insert("signingName".to_string(), "s3".to_string().into());
4218                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
4219                        out.insert("disableDoubleEncoding".to_string(), true.into());
4220                        out
4221                    }
4222                    .into()]
4223                )
4224                .build()
4225        );
4226    }
4227
4228    /// virtual addressing + fips@us-west-2
4229    #[test]
4230    fn test_150() {
4231        let params = crate::config::endpoint::Params::builder()
4232            .accelerate(false)
4233            .bucket("bucket-name".to_string())
4234            .force_path_style(false)
4235            .region("us-west-2".to_string())
4236            .use_dual_stack(false)
4237            .use_fips(true)
4238            .build()
4239            .expect("invalid params");
4240        let resolver = crate::config::endpoint::DefaultResolver::new();
4241        let endpoint = resolver.resolve_endpoint(&params);
4242        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-fips.us-west-2.amazonaws.com");
4243        assert_eq!(
4244            endpoint,
4245            ::aws_smithy_types::endpoint::Endpoint::builder()
4246                .url("https://bucket-name.s3-fips.us-west-2.amazonaws.com")
4247                .property(
4248                    "authSchemes",
4249                    vec![{
4250                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4251                        out.insert("name".to_string(), "sigv4".to_string().into());
4252                        out.insert("signingName".to_string(), "s3".to_string().into());
4253                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
4254                        out.insert("disableDoubleEncoding".to_string(), true.into());
4255                        out
4256                    }
4257                    .into()]
4258                )
4259                .build()
4260        );
4261    }
4262
4263    /// virtual addressing + dualstack + fips@us-west-2
4264    #[test]
4265    fn test_151() {
4266        let params = crate::config::endpoint::Params::builder()
4267            .accelerate(false)
4268            .bucket("bucket-name".to_string())
4269            .force_path_style(false)
4270            .region("us-west-2".to_string())
4271            .use_dual_stack(true)
4272            .use_fips(true)
4273            .build()
4274            .expect("invalid params");
4275        let resolver = crate::config::endpoint::DefaultResolver::new();
4276        let endpoint = resolver.resolve_endpoint(&params);
4277        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-fips.dualstack.us-west-2.amazonaws.com");
4278        assert_eq!(
4279            endpoint,
4280            ::aws_smithy_types::endpoint::Endpoint::builder()
4281                .url("https://bucket-name.s3-fips.dualstack.us-west-2.amazonaws.com")
4282                .property(
4283                    "authSchemes",
4284                    vec![{
4285                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4286                        out.insert("name".to_string(), "sigv4".to_string().into());
4287                        out.insert("signingName".to_string(), "s3".to_string().into());
4288                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
4289                        out.insert("disableDoubleEncoding".to_string(), true.into());
4290                        out
4291                    }
4292                    .into()]
4293                )
4294                .build()
4295        );
4296    }
4297
4298    /// accelerate + fips = error@us-west-2
4299    #[test]
4300    fn test_152() {
4301        let params = crate::config::endpoint::Params::builder()
4302            .accelerate(true)
4303            .bucket("bucket-name".to_string())
4304            .force_path_style(false)
4305            .region("us-west-2".to_string())
4306            .use_dual_stack(false)
4307            .use_fips(true)
4308            .build()
4309            .expect("invalid params");
4310        let resolver = crate::config::endpoint::DefaultResolver::new();
4311        let endpoint = resolver.resolve_endpoint(&params);
4312        let error = endpoint.expect_err("expected error: Accelerate cannot be used with FIPS [accelerate + fips = error@us-west-2]");
4313        assert_eq!(format!("{}", error), "Accelerate cannot be used with FIPS")
4314    }
4315
4316    /// vanilla virtual addressing@cn-north-1
4317    #[test]
4318    fn test_153() {
4319        let params = crate::config::endpoint::Params::builder()
4320            .accelerate(false)
4321            .bucket("bucket-name".to_string())
4322            .force_path_style(false)
4323            .region("cn-north-1".to_string())
4324            .use_dual_stack(false)
4325            .use_fips(false)
4326            .build()
4327            .expect("invalid params");
4328        let resolver = crate::config::endpoint::DefaultResolver::new();
4329        let endpoint = resolver.resolve_endpoint(&params);
4330        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.cn-north-1.amazonaws.com.cn");
4331        assert_eq!(
4332            endpoint,
4333            ::aws_smithy_types::endpoint::Endpoint::builder()
4334                .url("https://bucket-name.s3.cn-north-1.amazonaws.com.cn")
4335                .property(
4336                    "authSchemes",
4337                    vec![{
4338                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4339                        out.insert("name".to_string(), "sigv4".to_string().into());
4340                        out.insert("signingName".to_string(), "s3".to_string().into());
4341                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
4342                        out.insert("disableDoubleEncoding".to_string(), true.into());
4343                        out
4344                    }
4345                    .into()]
4346                )
4347                .build()
4348        );
4349    }
4350
4351    /// virtual addressing + dualstack@cn-north-1
4352    #[test]
4353    fn test_154() {
4354        let params = crate::config::endpoint::Params::builder()
4355            .accelerate(false)
4356            .bucket("bucket-name".to_string())
4357            .force_path_style(false)
4358            .region("cn-north-1".to_string())
4359            .use_dual_stack(true)
4360            .use_fips(false)
4361            .build()
4362            .expect("invalid params");
4363        let resolver = crate::config::endpoint::DefaultResolver::new();
4364        let endpoint = resolver.resolve_endpoint(&params);
4365        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.dualstack.cn-north-1.amazonaws.com.cn");
4366        assert_eq!(
4367            endpoint,
4368            ::aws_smithy_types::endpoint::Endpoint::builder()
4369                .url("https://bucket-name.s3.dualstack.cn-north-1.amazonaws.com.cn")
4370                .property(
4371                    "authSchemes",
4372                    vec![{
4373                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4374                        out.insert("name".to_string(), "sigv4".to_string().into());
4375                        out.insert("signingName".to_string(), "s3".to_string().into());
4376                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
4377                        out.insert("disableDoubleEncoding".to_string(), true.into());
4378                        out
4379                    }
4380                    .into()]
4381                )
4382                .build()
4383        );
4384    }
4385
4386    /// accelerate (dualstack=false)@cn-north-1
4387    #[test]
4388    fn test_155() {
4389        let params = crate::config::endpoint::Params::builder()
4390            .accelerate(true)
4391            .bucket("bucket-name".to_string())
4392            .force_path_style(false)
4393            .region("cn-north-1".to_string())
4394            .use_dual_stack(false)
4395            .use_fips(false)
4396            .build()
4397            .expect("invalid params");
4398        let resolver = crate::config::endpoint::DefaultResolver::new();
4399        let endpoint = resolver.resolve_endpoint(&params);
4400        let error = endpoint.expect_err("expected error: S3 Accelerate cannot be used in this region [accelerate (dualstack=false)@cn-north-1]");
4401        assert_eq!(format!("{}", error), "S3 Accelerate cannot be used in this region")
4402    }
4403
4404    /// virtual addressing + fips@cn-north-1
4405    #[test]
4406    fn test_156() {
4407        let params = crate::config::endpoint::Params::builder()
4408            .accelerate(false)
4409            .bucket("bucket-name".to_string())
4410            .force_path_style(false)
4411            .region("cn-north-1".to_string())
4412            .use_dual_stack(false)
4413            .use_fips(true)
4414            .build()
4415            .expect("invalid params");
4416        let resolver = crate::config::endpoint::DefaultResolver::new();
4417        let endpoint = resolver.resolve_endpoint(&params);
4418        let error = endpoint.expect_err("expected error: Partition does not support FIPS [virtual addressing + fips@cn-north-1]");
4419        assert_eq!(format!("{}", error), "Partition does not support FIPS")
4420    }
4421
4422    /// vanilla virtual addressing@af-south-1
4423    #[test]
4424    fn test_157() {
4425        let params = crate::config::endpoint::Params::builder()
4426            .accelerate(false)
4427            .bucket("bucket-name".to_string())
4428            .force_path_style(false)
4429            .region("af-south-1".to_string())
4430            .use_dual_stack(false)
4431            .use_fips(false)
4432            .build()
4433            .expect("invalid params");
4434        let resolver = crate::config::endpoint::DefaultResolver::new();
4435        let endpoint = resolver.resolve_endpoint(&params);
4436        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.af-south-1.amazonaws.com");
4437        assert_eq!(
4438            endpoint,
4439            ::aws_smithy_types::endpoint::Endpoint::builder()
4440                .url("https://bucket-name.s3.af-south-1.amazonaws.com")
4441                .property(
4442                    "authSchemes",
4443                    vec![{
4444                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4445                        out.insert("name".to_string(), "sigv4".to_string().into());
4446                        out.insert("signingName".to_string(), "s3".to_string().into());
4447                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
4448                        out.insert("disableDoubleEncoding".to_string(), true.into());
4449                        out
4450                    }
4451                    .into()]
4452                )
4453                .build()
4454        );
4455    }
4456
4457    /// virtual addressing + dualstack@af-south-1
4458    #[test]
4459    fn test_158() {
4460        let params = crate::config::endpoint::Params::builder()
4461            .accelerate(false)
4462            .bucket("bucket-name".to_string())
4463            .force_path_style(false)
4464            .region("af-south-1".to_string())
4465            .use_dual_stack(true)
4466            .use_fips(false)
4467            .build()
4468            .expect("invalid params");
4469        let resolver = crate::config::endpoint::DefaultResolver::new();
4470        let endpoint = resolver.resolve_endpoint(&params);
4471        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3.dualstack.af-south-1.amazonaws.com");
4472        assert_eq!(
4473            endpoint,
4474            ::aws_smithy_types::endpoint::Endpoint::builder()
4475                .url("https://bucket-name.s3.dualstack.af-south-1.amazonaws.com")
4476                .property(
4477                    "authSchemes",
4478                    vec![{
4479                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4480                        out.insert("name".to_string(), "sigv4".to_string().into());
4481                        out.insert("signingName".to_string(), "s3".to_string().into());
4482                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
4483                        out.insert("disableDoubleEncoding".to_string(), true.into());
4484                        out
4485                    }
4486                    .into()]
4487                )
4488                .build()
4489        );
4490    }
4491
4492    /// accelerate + dualstack@af-south-1
4493    #[test]
4494    fn test_159() {
4495        let params = crate::config::endpoint::Params::builder()
4496            .accelerate(true)
4497            .bucket("bucket-name".to_string())
4498            .force_path_style(false)
4499            .region("af-south-1".to_string())
4500            .use_dual_stack(true)
4501            .use_fips(false)
4502            .build()
4503            .expect("invalid params");
4504        let resolver = crate::config::endpoint::DefaultResolver::new();
4505        let endpoint = resolver.resolve_endpoint(&params);
4506        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-accelerate.dualstack.amazonaws.com");
4507        assert_eq!(
4508            endpoint,
4509            ::aws_smithy_types::endpoint::Endpoint::builder()
4510                .url("https://bucket-name.s3-accelerate.dualstack.amazonaws.com")
4511                .property(
4512                    "authSchemes",
4513                    vec![{
4514                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4515                        out.insert("name".to_string(), "sigv4".to_string().into());
4516                        out.insert("signingName".to_string(), "s3".to_string().into());
4517                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
4518                        out.insert("disableDoubleEncoding".to_string(), true.into());
4519                        out
4520                    }
4521                    .into()]
4522                )
4523                .build()
4524        );
4525    }
4526
4527    /// accelerate (dualstack=false)@af-south-1
4528    #[test]
4529    fn test_160() {
4530        let params = crate::config::endpoint::Params::builder()
4531            .accelerate(true)
4532            .bucket("bucket-name".to_string())
4533            .force_path_style(false)
4534            .region("af-south-1".to_string())
4535            .use_dual_stack(false)
4536            .use_fips(false)
4537            .build()
4538            .expect("invalid params");
4539        let resolver = crate::config::endpoint::DefaultResolver::new();
4540        let endpoint = resolver.resolve_endpoint(&params);
4541        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-accelerate.amazonaws.com");
4542        assert_eq!(
4543            endpoint,
4544            ::aws_smithy_types::endpoint::Endpoint::builder()
4545                .url("https://bucket-name.s3-accelerate.amazonaws.com")
4546                .property(
4547                    "authSchemes",
4548                    vec![{
4549                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4550                        out.insert("name".to_string(), "sigv4".to_string().into());
4551                        out.insert("signingName".to_string(), "s3".to_string().into());
4552                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
4553                        out.insert("disableDoubleEncoding".to_string(), true.into());
4554                        out
4555                    }
4556                    .into()]
4557                )
4558                .build()
4559        );
4560    }
4561
4562    /// virtual addressing + fips@af-south-1
4563    #[test]
4564    fn test_161() {
4565        let params = crate::config::endpoint::Params::builder()
4566            .accelerate(false)
4567            .bucket("bucket-name".to_string())
4568            .force_path_style(false)
4569            .region("af-south-1".to_string())
4570            .use_dual_stack(false)
4571            .use_fips(true)
4572            .build()
4573            .expect("invalid params");
4574        let resolver = crate::config::endpoint::DefaultResolver::new();
4575        let endpoint = resolver.resolve_endpoint(&params);
4576        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-fips.af-south-1.amazonaws.com");
4577        assert_eq!(
4578            endpoint,
4579            ::aws_smithy_types::endpoint::Endpoint::builder()
4580                .url("https://bucket-name.s3-fips.af-south-1.amazonaws.com")
4581                .property(
4582                    "authSchemes",
4583                    vec![{
4584                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4585                        out.insert("name".to_string(), "sigv4".to_string().into());
4586                        out.insert("signingName".to_string(), "s3".to_string().into());
4587                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
4588                        out.insert("disableDoubleEncoding".to_string(), true.into());
4589                        out
4590                    }
4591                    .into()]
4592                )
4593                .build()
4594        );
4595    }
4596
4597    /// virtual addressing + dualstack + fips@af-south-1
4598    #[test]
4599    fn test_162() {
4600        let params = crate::config::endpoint::Params::builder()
4601            .accelerate(false)
4602            .bucket("bucket-name".to_string())
4603            .force_path_style(false)
4604            .region("af-south-1".to_string())
4605            .use_dual_stack(true)
4606            .use_fips(true)
4607            .build()
4608            .expect("invalid params");
4609        let resolver = crate::config::endpoint::DefaultResolver::new();
4610        let endpoint = resolver.resolve_endpoint(&params);
4611        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.s3-fips.dualstack.af-south-1.amazonaws.com");
4612        assert_eq!(
4613            endpoint,
4614            ::aws_smithy_types::endpoint::Endpoint::builder()
4615                .url("https://bucket-name.s3-fips.dualstack.af-south-1.amazonaws.com")
4616                .property(
4617                    "authSchemes",
4618                    vec![{
4619                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4620                        out.insert("name".to_string(), "sigv4".to_string().into());
4621                        out.insert("signingName".to_string(), "s3".to_string().into());
4622                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
4623                        out.insert("disableDoubleEncoding".to_string(), true.into());
4624                        out
4625                    }
4626                    .into()]
4627                )
4628                .build()
4629        );
4630    }
4631
4632    /// accelerate + fips = error@af-south-1
4633    #[test]
4634    fn test_163() {
4635        let params = crate::config::endpoint::Params::builder()
4636            .accelerate(true)
4637            .bucket("bucket-name".to_string())
4638            .force_path_style(false)
4639            .region("af-south-1".to_string())
4640            .use_dual_stack(false)
4641            .use_fips(true)
4642            .build()
4643            .expect("invalid params");
4644        let resolver = crate::config::endpoint::DefaultResolver::new();
4645        let endpoint = resolver.resolve_endpoint(&params);
4646        let error = endpoint.expect_err("expected error: Accelerate cannot be used with FIPS [accelerate + fips = error@af-south-1]");
4647        assert_eq!(format!("{}", error), "Accelerate cannot be used with FIPS")
4648    }
4649
4650    /// vanilla path style@us-west-2
4651    #[test]
4652    fn test_164() {
4653        let params = crate::config::endpoint::Params::builder()
4654            .accelerate(false)
4655            .bucket("bucket-name".to_string())
4656            .force_path_style(true)
4657            .region("us-west-2".to_string())
4658            .use_dual_stack(false)
4659            .use_fips(false)
4660            .build()
4661            .expect("invalid params");
4662        let resolver = crate::config::endpoint::DefaultResolver::new();
4663        let endpoint = resolver.resolve_endpoint(&params);
4664        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-west-2.amazonaws.com/bucket-name");
4665        assert_eq!(
4666            endpoint,
4667            ::aws_smithy_types::endpoint::Endpoint::builder()
4668                .url("https://s3.us-west-2.amazonaws.com/bucket-name")
4669                .property(
4670                    "authSchemes",
4671                    vec![{
4672                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4673                        out.insert("name".to_string(), "sigv4".to_string().into());
4674                        out.insert("signingName".to_string(), "s3".to_string().into());
4675                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
4676                        out.insert("disableDoubleEncoding".to_string(), true.into());
4677                        out
4678                    }
4679                    .into()]
4680                )
4681                .build()
4682        );
4683    }
4684
4685    /// fips@us-gov-west-2, bucket is not S3-dns-compatible (subdomains)
4686    #[test]
4687    fn test_165() {
4688        let params = crate::config::endpoint::Params::builder()
4689            .accelerate(false)
4690            .bucket("bucket.with.dots".to_string())
4691            .region("us-gov-west-1".to_string())
4692            .use_dual_stack(false)
4693            .use_fips(true)
4694            .build()
4695            .expect("invalid params");
4696        let resolver = crate::config::endpoint::DefaultResolver::new();
4697        let endpoint = resolver.resolve_endpoint(&params);
4698        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.us-gov-west-1.amazonaws.com/bucket.with.dots");
4699        assert_eq!(
4700            endpoint,
4701            ::aws_smithy_types::endpoint::Endpoint::builder()
4702                .url("https://s3-fips.us-gov-west-1.amazonaws.com/bucket.with.dots")
4703                .property(
4704                    "authSchemes",
4705                    vec![{
4706                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4707                        out.insert("signingName".to_string(), "s3".to_string().into());
4708                        out.insert("signingRegion".to_string(), "us-gov-west-1".to_string().into());
4709                        out.insert("disableDoubleEncoding".to_string(), true.into());
4710                        out.insert("name".to_string(), "sigv4".to_string().into());
4711                        out
4712                    }
4713                    .into()]
4714                )
4715                .build()
4716        );
4717    }
4718
4719    /// path style + accelerate = error@us-west-2
4720    #[test]
4721    fn test_166() {
4722        let params = crate::config::endpoint::Params::builder()
4723            .accelerate(true)
4724            .bucket("bucket-name".to_string())
4725            .force_path_style(true)
4726            .region("us-west-2".to_string())
4727            .use_dual_stack(false)
4728            .use_fips(false)
4729            .build()
4730            .expect("invalid params");
4731        let resolver = crate::config::endpoint::DefaultResolver::new();
4732        let endpoint = resolver.resolve_endpoint(&params);
4733        let error = endpoint
4734            .expect_err("expected error: Path-style addressing cannot be used with S3 Accelerate [path style + accelerate = error@us-west-2]");
4735        assert_eq!(format!("{}", error), "Path-style addressing cannot be used with S3 Accelerate")
4736    }
4737
4738    /// path style + dualstack@us-west-2
4739    #[test]
4740    fn test_167() {
4741        let params = crate::config::endpoint::Params::builder()
4742            .accelerate(false)
4743            .bucket("bucket-name".to_string())
4744            .force_path_style(true)
4745            .region("us-west-2".to_string())
4746            .use_dual_stack(true)
4747            .use_fips(false)
4748            .build()
4749            .expect("invalid params");
4750        let resolver = crate::config::endpoint::DefaultResolver::new();
4751        let endpoint = resolver.resolve_endpoint(&params);
4752        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.us-west-2.amazonaws.com/bucket-name");
4753        assert_eq!(
4754            endpoint,
4755            ::aws_smithy_types::endpoint::Endpoint::builder()
4756                .url("https://s3.dualstack.us-west-2.amazonaws.com/bucket-name")
4757                .property(
4758                    "authSchemes",
4759                    vec![{
4760                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4761                        out.insert("name".to_string(), "sigv4".to_string().into());
4762                        out.insert("signingName".to_string(), "s3".to_string().into());
4763                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
4764                        out.insert("disableDoubleEncoding".to_string(), true.into());
4765                        out
4766                    }
4767                    .into()]
4768                )
4769                .build()
4770        );
4771    }
4772
4773    /// path style + arn is error@us-west-2
4774    #[test]
4775    fn test_168() {
4776        let params = crate::config::endpoint::Params::builder()
4777            .accelerate(false)
4778            .bucket("arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket".to_string())
4779            .force_path_style(true)
4780            .region("us-west-2".to_string())
4781            .use_dual_stack(false)
4782            .use_fips(false)
4783            .build()
4784            .expect("invalid params");
4785        let resolver = crate::config::endpoint::DefaultResolver::new();
4786        let endpoint = resolver.resolve_endpoint(&params);
4787        let error =
4788            endpoint.expect_err("expected error: Path-style addressing cannot be used with ARN buckets [path style + arn is error@us-west-2]");
4789        assert_eq!(format!("{}", error), "Path-style addressing cannot be used with ARN buckets")
4790    }
4791
4792    /// path style + invalid DNS name@us-west-2
4793    #[test]
4794    fn test_169() {
4795        let params = crate::config::endpoint::Params::builder()
4796            .accelerate(false)
4797            .bucket("99a_b".to_string())
4798            .force_path_style(true)
4799            .region("us-west-2".to_string())
4800            .use_dual_stack(false)
4801            .use_fips(false)
4802            .build()
4803            .expect("invalid params");
4804        let resolver = crate::config::endpoint::DefaultResolver::new();
4805        let endpoint = resolver.resolve_endpoint(&params);
4806        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-west-2.amazonaws.com/99a_b");
4807        assert_eq!(
4808            endpoint,
4809            ::aws_smithy_types::endpoint::Endpoint::builder()
4810                .url("https://s3.us-west-2.amazonaws.com/99a_b")
4811                .property(
4812                    "authSchemes",
4813                    vec![{
4814                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4815                        out.insert("name".to_string(), "sigv4".to_string().into());
4816                        out.insert("signingName".to_string(), "s3".to_string().into());
4817                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
4818                        out.insert("disableDoubleEncoding".to_string(), true.into());
4819                        out
4820                    }
4821                    .into()]
4822                )
4823                .build()
4824        );
4825    }
4826
4827    /// no path style + invalid DNS name@us-west-2
4828    #[test]
4829    fn test_170() {
4830        let params = crate::config::endpoint::Params::builder()
4831            .accelerate(false)
4832            .bucket("99a_b".to_string())
4833            .region("us-west-2".to_string())
4834            .use_dual_stack(false)
4835            .use_fips(false)
4836            .build()
4837            .expect("invalid params");
4838        let resolver = crate::config::endpoint::DefaultResolver::new();
4839        let endpoint = resolver.resolve_endpoint(&params);
4840        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.us-west-2.amazonaws.com/99a_b");
4841        assert_eq!(
4842            endpoint,
4843            ::aws_smithy_types::endpoint::Endpoint::builder()
4844                .url("https://s3.us-west-2.amazonaws.com/99a_b")
4845                .property(
4846                    "authSchemes",
4847                    vec![{
4848                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4849                        out.insert("name".to_string(), "sigv4".to_string().into());
4850                        out.insert("signingName".to_string(), "s3".to_string().into());
4851                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
4852                        out.insert("disableDoubleEncoding".to_string(), true.into());
4853                        out
4854                    }
4855                    .into()]
4856                )
4857                .build()
4858        );
4859    }
4860
4861    /// vanilla path style@cn-north-1
4862    #[test]
4863    fn test_171() {
4864        let params = crate::config::endpoint::Params::builder()
4865            .accelerate(false)
4866            .bucket("bucket-name".to_string())
4867            .force_path_style(true)
4868            .region("cn-north-1".to_string())
4869            .use_dual_stack(false)
4870            .use_fips(false)
4871            .build()
4872            .expect("invalid params");
4873        let resolver = crate::config::endpoint::DefaultResolver::new();
4874        let endpoint = resolver.resolve_endpoint(&params);
4875        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.cn-north-1.amazonaws.com.cn/bucket-name");
4876        assert_eq!(
4877            endpoint,
4878            ::aws_smithy_types::endpoint::Endpoint::builder()
4879                .url("https://s3.cn-north-1.amazonaws.com.cn/bucket-name")
4880                .property(
4881                    "authSchemes",
4882                    vec![{
4883                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4884                        out.insert("name".to_string(), "sigv4".to_string().into());
4885                        out.insert("signingName".to_string(), "s3".to_string().into());
4886                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
4887                        out.insert("disableDoubleEncoding".to_string(), true.into());
4888                        out
4889                    }
4890                    .into()]
4891                )
4892                .build()
4893        );
4894    }
4895
4896    /// path style + fips@cn-north-1
4897    #[test]
4898    fn test_172() {
4899        let params = crate::config::endpoint::Params::builder()
4900            .accelerate(false)
4901            .bucket("bucket-name".to_string())
4902            .force_path_style(true)
4903            .region("cn-north-1".to_string())
4904            .use_dual_stack(false)
4905            .use_fips(true)
4906            .build()
4907            .expect("invalid params");
4908        let resolver = crate::config::endpoint::DefaultResolver::new();
4909        let endpoint = resolver.resolve_endpoint(&params);
4910        let error = endpoint.expect_err("expected error: Partition does not support FIPS [path style + fips@cn-north-1]");
4911        assert_eq!(format!("{}", error), "Partition does not support FIPS")
4912    }
4913
4914    /// path style + accelerate = error@cn-north-1
4915    #[test]
4916    fn test_173() {
4917        let params = crate::config::endpoint::Params::builder()
4918            .accelerate(true)
4919            .bucket("bucket-name".to_string())
4920            .force_path_style(true)
4921            .region("cn-north-1".to_string())
4922            .use_dual_stack(false)
4923            .use_fips(false)
4924            .build()
4925            .expect("invalid params");
4926        let resolver = crate::config::endpoint::DefaultResolver::new();
4927        let endpoint = resolver.resolve_endpoint(&params);
4928        let error = endpoint
4929            .expect_err("expected error: Path-style addressing cannot be used with S3 Accelerate [path style + accelerate = error@cn-north-1]");
4930        assert_eq!(format!("{}", error), "Path-style addressing cannot be used with S3 Accelerate")
4931    }
4932
4933    /// path style + dualstack@cn-north-1
4934    #[test]
4935    fn test_174() {
4936        let params = crate::config::endpoint::Params::builder()
4937            .accelerate(false)
4938            .bucket("bucket-name".to_string())
4939            .force_path_style(true)
4940            .region("cn-north-1".to_string())
4941            .use_dual_stack(true)
4942            .use_fips(false)
4943            .build()
4944            .expect("invalid params");
4945        let resolver = crate::config::endpoint::DefaultResolver::new();
4946        let endpoint = resolver.resolve_endpoint(&params);
4947        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.cn-north-1.amazonaws.com.cn/bucket-name");
4948        assert_eq!(
4949            endpoint,
4950            ::aws_smithy_types::endpoint::Endpoint::builder()
4951                .url("https://s3.dualstack.cn-north-1.amazonaws.com.cn/bucket-name")
4952                .property(
4953                    "authSchemes",
4954                    vec![{
4955                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
4956                        out.insert("name".to_string(), "sigv4".to_string().into());
4957                        out.insert("signingName".to_string(), "s3".to_string().into());
4958                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
4959                        out.insert("disableDoubleEncoding".to_string(), true.into());
4960                        out
4961                    }
4962                    .into()]
4963                )
4964                .build()
4965        );
4966    }
4967
4968    /// path style + arn is error@cn-north-1
4969    #[test]
4970    fn test_175() {
4971        let params = crate::config::endpoint::Params::builder()
4972            .accelerate(false)
4973            .bucket("arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket".to_string())
4974            .force_path_style(true)
4975            .region("cn-north-1".to_string())
4976            .use_dual_stack(false)
4977            .use_fips(false)
4978            .build()
4979            .expect("invalid params");
4980        let resolver = crate::config::endpoint::DefaultResolver::new();
4981        let endpoint = resolver.resolve_endpoint(&params);
4982        let error =
4983            endpoint.expect_err("expected error: Path-style addressing cannot be used with ARN buckets [path style + arn is error@cn-north-1]");
4984        assert_eq!(format!("{}", error), "Path-style addressing cannot be used with ARN buckets")
4985    }
4986
4987    /// path style + invalid DNS name@cn-north-1
4988    #[test]
4989    fn test_176() {
4990        let params = crate::config::endpoint::Params::builder()
4991            .accelerate(false)
4992            .bucket("99a_b".to_string())
4993            .force_path_style(true)
4994            .region("cn-north-1".to_string())
4995            .use_dual_stack(false)
4996            .use_fips(false)
4997            .build()
4998            .expect("invalid params");
4999        let resolver = crate::config::endpoint::DefaultResolver::new();
5000        let endpoint = resolver.resolve_endpoint(&params);
5001        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.cn-north-1.amazonaws.com.cn/99a_b");
5002        assert_eq!(
5003            endpoint,
5004            ::aws_smithy_types::endpoint::Endpoint::builder()
5005                .url("https://s3.cn-north-1.amazonaws.com.cn/99a_b")
5006                .property(
5007                    "authSchemes",
5008                    vec![{
5009                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5010                        out.insert("name".to_string(), "sigv4".to_string().into());
5011                        out.insert("signingName".to_string(), "s3".to_string().into());
5012                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
5013                        out.insert("disableDoubleEncoding".to_string(), true.into());
5014                        out
5015                    }
5016                    .into()]
5017                )
5018                .build()
5019        );
5020    }
5021
5022    /// no path style + invalid DNS name@cn-north-1
5023    #[test]
5024    fn test_177() {
5025        let params = crate::config::endpoint::Params::builder()
5026            .accelerate(false)
5027            .bucket("99a_b".to_string())
5028            .region("cn-north-1".to_string())
5029            .use_dual_stack(false)
5030            .use_fips(false)
5031            .build()
5032            .expect("invalid params");
5033        let resolver = crate::config::endpoint::DefaultResolver::new();
5034        let endpoint = resolver.resolve_endpoint(&params);
5035        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.cn-north-1.amazonaws.com.cn/99a_b");
5036        assert_eq!(
5037            endpoint,
5038            ::aws_smithy_types::endpoint::Endpoint::builder()
5039                .url("https://s3.cn-north-1.amazonaws.com.cn/99a_b")
5040                .property(
5041                    "authSchemes",
5042                    vec![{
5043                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5044                        out.insert("name".to_string(), "sigv4".to_string().into());
5045                        out.insert("signingName".to_string(), "s3".to_string().into());
5046                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
5047                        out.insert("disableDoubleEncoding".to_string(), true.into());
5048                        out
5049                    }
5050                    .into()]
5051                )
5052                .build()
5053        );
5054    }
5055
5056    /// vanilla path style@af-south-1
5057    #[test]
5058    fn test_178() {
5059        let params = crate::config::endpoint::Params::builder()
5060            .accelerate(false)
5061            .bucket("bucket-name".to_string())
5062            .force_path_style(true)
5063            .region("af-south-1".to_string())
5064            .use_dual_stack(false)
5065            .use_fips(false)
5066            .build()
5067            .expect("invalid params");
5068        let resolver = crate::config::endpoint::DefaultResolver::new();
5069        let endpoint = resolver.resolve_endpoint(&params);
5070        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.af-south-1.amazonaws.com/bucket-name");
5071        assert_eq!(
5072            endpoint,
5073            ::aws_smithy_types::endpoint::Endpoint::builder()
5074                .url("https://s3.af-south-1.amazonaws.com/bucket-name")
5075                .property(
5076                    "authSchemes",
5077                    vec![{
5078                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5079                        out.insert("name".to_string(), "sigv4".to_string().into());
5080                        out.insert("signingName".to_string(), "s3".to_string().into());
5081                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
5082                        out.insert("disableDoubleEncoding".to_string(), true.into());
5083                        out
5084                    }
5085                    .into()]
5086                )
5087                .build()
5088        );
5089    }
5090
5091    /// path style + fips@af-south-1
5092    #[test]
5093    fn test_179() {
5094        let params = crate::config::endpoint::Params::builder()
5095            .accelerate(false)
5096            .bucket("bucket-name".to_string())
5097            .force_path_style(true)
5098            .region("af-south-1".to_string())
5099            .use_dual_stack(false)
5100            .use_fips(true)
5101            .build()
5102            .expect("invalid params");
5103        let resolver = crate::config::endpoint::DefaultResolver::new();
5104        let endpoint = resolver.resolve_endpoint(&params);
5105        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-fips.af-south-1.amazonaws.com/bucket-name");
5106        assert_eq!(
5107            endpoint,
5108            ::aws_smithy_types::endpoint::Endpoint::builder()
5109                .url("https://s3-fips.af-south-1.amazonaws.com/bucket-name")
5110                .property(
5111                    "authSchemes",
5112                    vec![{
5113                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5114                        out.insert("signingName".to_string(), "s3".to_string().into());
5115                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
5116                        out.insert("disableDoubleEncoding".to_string(), true.into());
5117                        out.insert("name".to_string(), "sigv4".to_string().into());
5118                        out
5119                    }
5120                    .into()]
5121                )
5122                .build()
5123        );
5124    }
5125
5126    /// path style + accelerate = error@af-south-1
5127    #[test]
5128    fn test_180() {
5129        let params = crate::config::endpoint::Params::builder()
5130            .accelerate(true)
5131            .bucket("bucket-name".to_string())
5132            .force_path_style(true)
5133            .region("af-south-1".to_string())
5134            .use_dual_stack(false)
5135            .use_fips(false)
5136            .build()
5137            .expect("invalid params");
5138        let resolver = crate::config::endpoint::DefaultResolver::new();
5139        let endpoint = resolver.resolve_endpoint(&params);
5140        let error = endpoint
5141            .expect_err("expected error: Path-style addressing cannot be used with S3 Accelerate [path style + accelerate = error@af-south-1]");
5142        assert_eq!(format!("{}", error), "Path-style addressing cannot be used with S3 Accelerate")
5143    }
5144
5145    /// path style + dualstack@af-south-1
5146    #[test]
5147    fn test_181() {
5148        let params = crate::config::endpoint::Params::builder()
5149            .accelerate(false)
5150            .bucket("bucket-name".to_string())
5151            .force_path_style(true)
5152            .region("af-south-1".to_string())
5153            .use_dual_stack(true)
5154            .use_fips(false)
5155            .build()
5156            .expect("invalid params");
5157        let resolver = crate::config::endpoint::DefaultResolver::new();
5158        let endpoint = resolver.resolve_endpoint(&params);
5159        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.dualstack.af-south-1.amazonaws.com/bucket-name");
5160        assert_eq!(
5161            endpoint,
5162            ::aws_smithy_types::endpoint::Endpoint::builder()
5163                .url("https://s3.dualstack.af-south-1.amazonaws.com/bucket-name")
5164                .property(
5165                    "authSchemes",
5166                    vec![{
5167                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5168                        out.insert("name".to_string(), "sigv4".to_string().into());
5169                        out.insert("signingName".to_string(), "s3".to_string().into());
5170                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
5171                        out.insert("disableDoubleEncoding".to_string(), true.into());
5172                        out
5173                    }
5174                    .into()]
5175                )
5176                .build()
5177        );
5178    }
5179
5180    /// path style + arn is error@af-south-1
5181    #[test]
5182    fn test_182() {
5183        let params = crate::config::endpoint::Params::builder()
5184            .accelerate(false)
5185            .bucket("arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket".to_string())
5186            .force_path_style(true)
5187            .region("af-south-1".to_string())
5188            .use_dual_stack(false)
5189            .use_fips(false)
5190            .build()
5191            .expect("invalid params");
5192        let resolver = crate::config::endpoint::DefaultResolver::new();
5193        let endpoint = resolver.resolve_endpoint(&params);
5194        let error =
5195            endpoint.expect_err("expected error: Path-style addressing cannot be used with ARN buckets [path style + arn is error@af-south-1]");
5196        assert_eq!(format!("{}", error), "Path-style addressing cannot be used with ARN buckets")
5197    }
5198
5199    /// path style + invalid DNS name@af-south-1
5200    #[test]
5201    fn test_183() {
5202        let params = crate::config::endpoint::Params::builder()
5203            .accelerate(false)
5204            .bucket("99a_b".to_string())
5205            .force_path_style(true)
5206            .region("af-south-1".to_string())
5207            .use_dual_stack(false)
5208            .use_fips(false)
5209            .build()
5210            .expect("invalid params");
5211        let resolver = crate::config::endpoint::DefaultResolver::new();
5212        let endpoint = resolver.resolve_endpoint(&params);
5213        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.af-south-1.amazonaws.com/99a_b");
5214        assert_eq!(
5215            endpoint,
5216            ::aws_smithy_types::endpoint::Endpoint::builder()
5217                .url("https://s3.af-south-1.amazonaws.com/99a_b")
5218                .property(
5219                    "authSchemes",
5220                    vec![{
5221                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5222                        out.insert("name".to_string(), "sigv4".to_string().into());
5223                        out.insert("signingName".to_string(), "s3".to_string().into());
5224                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
5225                        out.insert("disableDoubleEncoding".to_string(), true.into());
5226                        out
5227                    }
5228                    .into()]
5229                )
5230                .build()
5231        );
5232    }
5233
5234    /// no path style + invalid DNS name@af-south-1
5235    #[test]
5236    fn test_184() {
5237        let params = crate::config::endpoint::Params::builder()
5238            .accelerate(false)
5239            .bucket("99a_b".to_string())
5240            .region("af-south-1".to_string())
5241            .use_dual_stack(false)
5242            .use_fips(false)
5243            .build()
5244            .expect("invalid params");
5245        let resolver = crate::config::endpoint::DefaultResolver::new();
5246        let endpoint = resolver.resolve_endpoint(&params);
5247        let endpoint = endpoint.expect("Expected valid endpoint: https://s3.af-south-1.amazonaws.com/99a_b");
5248        assert_eq!(
5249            endpoint,
5250            ::aws_smithy_types::endpoint::Endpoint::builder()
5251                .url("https://s3.af-south-1.amazonaws.com/99a_b")
5252                .property(
5253                    "authSchemes",
5254                    vec![{
5255                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5256                        out.insert("name".to_string(), "sigv4".to_string().into());
5257                        out.insert("signingName".to_string(), "s3".to_string().into());
5258                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
5259                        out.insert("disableDoubleEncoding".to_string(), true.into());
5260                        out
5261                    }
5262                    .into()]
5263                )
5264                .build()
5265        );
5266    }
5267
5268    /// virtual addressing + private link@us-west-2
5269    #[test]
5270    fn test_185() {
5271        let params = crate::config::endpoint::Params::builder()
5272            .accelerate(false)
5273            .bucket("bucket-name".to_string())
5274            .force_path_style(false)
5275            .endpoint("http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5276            .region("us-west-2".to_string())
5277            .use_dual_stack(false)
5278            .use_fips(false)
5279            .build()
5280            .expect("invalid params");
5281        let resolver = crate::config::endpoint::DefaultResolver::new();
5282        let endpoint = resolver.resolve_endpoint(&params);
5283        let endpoint = endpoint.expect("Expected valid endpoint: http://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com");
5284        assert_eq!(
5285            endpoint,
5286            ::aws_smithy_types::endpoint::Endpoint::builder()
5287                .url("http://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com")
5288                .property(
5289                    "authSchemes",
5290                    vec![{
5291                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5292                        out.insert("name".to_string(), "sigv4".to_string().into());
5293                        out.insert("signingName".to_string(), "s3".to_string().into());
5294                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
5295                        out.insert("disableDoubleEncoding".to_string(), true.into());
5296                        out
5297                    }
5298                    .into()]
5299                )
5300                .build()
5301        );
5302    }
5303
5304    /// path style + private link@us-west-2
5305    #[test]
5306    fn test_186() {
5307        let params = crate::config::endpoint::Params::builder()
5308            .accelerate(false)
5309            .bucket("bucket-name".to_string())
5310            .force_path_style(true)
5311            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5312            .region("us-west-2".to_string())
5313            .use_dual_stack(false)
5314            .use_fips(false)
5315            .build()
5316            .expect("invalid params");
5317        let resolver = crate::config::endpoint::DefaultResolver::new();
5318        let endpoint = resolver.resolve_endpoint(&params);
5319        let endpoint = endpoint.expect("Expected valid endpoint: https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name");
5320        assert_eq!(
5321            endpoint,
5322            ::aws_smithy_types::endpoint::Endpoint::builder()
5323                .url("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name")
5324                .property(
5325                    "authSchemes",
5326                    vec![{
5327                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5328                        out.insert("name".to_string(), "sigv4".to_string().into());
5329                        out.insert("signingName".to_string(), "s3".to_string().into());
5330                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
5331                        out.insert("disableDoubleEncoding".to_string(), true.into());
5332                        out
5333                    }
5334                    .into()]
5335                )
5336                .build()
5337        );
5338    }
5339
5340    /// SDK::Host + FIPS@us-west-2
5341    #[test]
5342    fn test_187() {
5343        let params = crate::config::endpoint::Params::builder()
5344            .accelerate(false)
5345            .bucket("bucket-name".to_string())
5346            .force_path_style(false)
5347            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5348            .region("us-west-2".to_string())
5349            .use_dual_stack(false)
5350            .use_fips(true)
5351            .build()
5352            .expect("invalid params");
5353        let resolver = crate::config::endpoint::DefaultResolver::new();
5354        let endpoint = resolver.resolve_endpoint(&params);
5355        let error = endpoint.expect_err("expected error: A custom endpoint cannot be combined with FIPS [SDK::Host + FIPS@us-west-2]");
5356        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
5357    }
5358
5359    /// SDK::Host + DualStack@us-west-2
5360    #[test]
5361    fn test_188() {
5362        let params = crate::config::endpoint::Params::builder()
5363            .accelerate(false)
5364            .bucket("bucket-name".to_string())
5365            .force_path_style(false)
5366            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5367            .region("us-west-2".to_string())
5368            .use_dual_stack(true)
5369            .use_fips(false)
5370            .build()
5371            .expect("invalid params");
5372        let resolver = crate::config::endpoint::DefaultResolver::new();
5373        let endpoint = resolver.resolve_endpoint(&params);
5374        let error =
5375            endpoint.expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [SDK::Host + DualStack@us-west-2]");
5376        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
5377    }
5378
5379    /// SDK::HOST + accelerate@us-west-2
5380    #[test]
5381    fn test_189() {
5382        let params = crate::config::endpoint::Params::builder()
5383            .accelerate(true)
5384            .bucket("bucket-name".to_string())
5385            .force_path_style(false)
5386            .endpoint("http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5387            .region("us-west-2".to_string())
5388            .use_dual_stack(false)
5389            .use_fips(false)
5390            .build()
5391            .expect("invalid params");
5392        let resolver = crate::config::endpoint::DefaultResolver::new();
5393        let endpoint = resolver.resolve_endpoint(&params);
5394        let error = endpoint.expect_err("expected error: A custom endpoint cannot be combined with S3 Accelerate [SDK::HOST + accelerate@us-west-2]");
5395        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with S3 Accelerate")
5396    }
5397
5398    /// SDK::Host + access point ARN@us-west-2
5399    #[test]
5400    fn test_190() {
5401        let params = crate::config::endpoint::Params::builder()
5402            .accelerate(false)
5403            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
5404            .force_path_style(false)
5405            .endpoint("https://beta.example.com".to_string())
5406            .region("us-west-2".to_string())
5407            .use_dual_stack(false)
5408            .use_fips(false)
5409            .build()
5410            .expect("invalid params");
5411        let resolver = crate::config::endpoint::DefaultResolver::new();
5412        let endpoint = resolver.resolve_endpoint(&params);
5413        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.beta.example.com");
5414        assert_eq!(
5415            endpoint,
5416            ::aws_smithy_types::endpoint::Endpoint::builder()
5417                .url("https://myendpoint-123456789012.beta.example.com")
5418                .property(
5419                    "authSchemes",
5420                    vec![{
5421                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5422                        out.insert("name".to_string(), "sigv4".to_string().into());
5423                        out.insert("signingName".to_string(), "s3".to_string().into());
5424                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
5425                        out.insert("disableDoubleEncoding".to_string(), true.into());
5426                        out
5427                    }
5428                    .into()]
5429                )
5430                .build()
5431        );
5432    }
5433
5434    /// virtual addressing + private link@cn-north-1
5435    #[test]
5436    fn test_191() {
5437        let params = crate::config::endpoint::Params::builder()
5438            .accelerate(false)
5439            .bucket("bucket-name".to_string())
5440            .force_path_style(false)
5441            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5442            .region("cn-north-1".to_string())
5443            .use_dual_stack(false)
5444            .use_fips(false)
5445            .build()
5446            .expect("invalid params");
5447        let resolver = crate::config::endpoint::DefaultResolver::new();
5448        let endpoint = resolver.resolve_endpoint(&params);
5449        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com");
5450        assert_eq!(
5451            endpoint,
5452            ::aws_smithy_types::endpoint::Endpoint::builder()
5453                .url("https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com")
5454                .property(
5455                    "authSchemes",
5456                    vec![{
5457                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5458                        out.insert("name".to_string(), "sigv4".to_string().into());
5459                        out.insert("signingName".to_string(), "s3".to_string().into());
5460                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
5461                        out.insert("disableDoubleEncoding".to_string(), true.into());
5462                        out
5463                    }
5464                    .into()]
5465                )
5466                .build()
5467        );
5468    }
5469
5470    /// path style + private link@cn-north-1
5471    #[test]
5472    fn test_192() {
5473        let params = crate::config::endpoint::Params::builder()
5474            .accelerate(false)
5475            .bucket("bucket-name".to_string())
5476            .force_path_style(true)
5477            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5478            .region("cn-north-1".to_string())
5479            .use_dual_stack(false)
5480            .use_fips(false)
5481            .build()
5482            .expect("invalid params");
5483        let resolver = crate::config::endpoint::DefaultResolver::new();
5484        let endpoint = resolver.resolve_endpoint(&params);
5485        let endpoint = endpoint.expect("Expected valid endpoint: https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name");
5486        assert_eq!(
5487            endpoint,
5488            ::aws_smithy_types::endpoint::Endpoint::builder()
5489                .url("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name")
5490                .property(
5491                    "authSchemes",
5492                    vec![{
5493                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5494                        out.insert("name".to_string(), "sigv4".to_string().into());
5495                        out.insert("signingName".to_string(), "s3".to_string().into());
5496                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
5497                        out.insert("disableDoubleEncoding".to_string(), true.into());
5498                        out
5499                    }
5500                    .into()]
5501                )
5502                .build()
5503        );
5504    }
5505
5506    /// FIPS@cn-north-1
5507    #[test]
5508    fn test_193() {
5509        let params = crate::config::endpoint::Params::builder()
5510            .accelerate(false)
5511            .bucket("bucket-name".to_string())
5512            .force_path_style(false)
5513            .region("cn-north-1".to_string())
5514            .use_dual_stack(false)
5515            .use_fips(true)
5516            .build()
5517            .expect("invalid params");
5518        let resolver = crate::config::endpoint::DefaultResolver::new();
5519        let endpoint = resolver.resolve_endpoint(&params);
5520        let error = endpoint.expect_err("expected error: Partition does not support FIPS [FIPS@cn-north-1]");
5521        assert_eq!(format!("{}", error), "Partition does not support FIPS")
5522    }
5523
5524    /// SDK::Host + DualStack@cn-north-1
5525    #[test]
5526    fn test_194() {
5527        let params = crate::config::endpoint::Params::builder()
5528            .accelerate(false)
5529            .bucket("bucket-name".to_string())
5530            .force_path_style(false)
5531            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5532            .region("cn-north-1".to_string())
5533            .use_dual_stack(true)
5534            .use_fips(false)
5535            .build()
5536            .expect("invalid params");
5537        let resolver = crate::config::endpoint::DefaultResolver::new();
5538        let endpoint = resolver.resolve_endpoint(&params);
5539        let error =
5540            endpoint.expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [SDK::Host + DualStack@cn-north-1]");
5541        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
5542    }
5543
5544    /// SDK::HOST + accelerate@cn-north-1
5545    #[test]
5546    fn test_195() {
5547        let params = crate::config::endpoint::Params::builder()
5548            .accelerate(true)
5549            .bucket("bucket-name".to_string())
5550            .force_path_style(false)
5551            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5552            .region("cn-north-1".to_string())
5553            .use_dual_stack(false)
5554            .use_fips(false)
5555            .build()
5556            .expect("invalid params");
5557        let resolver = crate::config::endpoint::DefaultResolver::new();
5558        let endpoint = resolver.resolve_endpoint(&params);
5559        let error =
5560            endpoint.expect_err("expected error: A custom endpoint cannot be combined with S3 Accelerate [SDK::HOST + accelerate@cn-north-1]");
5561        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with S3 Accelerate")
5562    }
5563
5564    /// SDK::Host + access point ARN@cn-north-1
5565    #[test]
5566    fn test_196() {
5567        let params = crate::config::endpoint::Params::builder()
5568            .accelerate(false)
5569            .bucket("arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint".to_string())
5570            .force_path_style(false)
5571            .endpoint("https://beta.example.com".to_string())
5572            .region("cn-north-1".to_string())
5573            .use_dual_stack(false)
5574            .use_fips(false)
5575            .build()
5576            .expect("invalid params");
5577        let resolver = crate::config::endpoint::DefaultResolver::new();
5578        let endpoint = resolver.resolve_endpoint(&params);
5579        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.beta.example.com");
5580        assert_eq!(
5581            endpoint,
5582            ::aws_smithy_types::endpoint::Endpoint::builder()
5583                .url("https://myendpoint-123456789012.beta.example.com")
5584                .property(
5585                    "authSchemes",
5586                    vec![{
5587                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5588                        out.insert("name".to_string(), "sigv4".to_string().into());
5589                        out.insert("signingName".to_string(), "s3".to_string().into());
5590                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
5591                        out.insert("disableDoubleEncoding".to_string(), true.into());
5592                        out
5593                    }
5594                    .into()]
5595                )
5596                .build()
5597        );
5598    }
5599
5600    /// virtual addressing + private link@af-south-1
5601    #[test]
5602    fn test_197() {
5603        let params = crate::config::endpoint::Params::builder()
5604            .accelerate(false)
5605            .bucket("bucket-name".to_string())
5606            .force_path_style(false)
5607            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5608            .region("af-south-1".to_string())
5609            .use_dual_stack(false)
5610            .use_fips(false)
5611            .build()
5612            .expect("invalid params");
5613        let resolver = crate::config::endpoint::DefaultResolver::new();
5614        let endpoint = resolver.resolve_endpoint(&params);
5615        let endpoint = endpoint.expect("Expected valid endpoint: https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com");
5616        assert_eq!(
5617            endpoint,
5618            ::aws_smithy_types::endpoint::Endpoint::builder()
5619                .url("https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com")
5620                .property(
5621                    "authSchemes",
5622                    vec![{
5623                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5624                        out.insert("name".to_string(), "sigv4".to_string().into());
5625                        out.insert("signingName".to_string(), "s3".to_string().into());
5626                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
5627                        out.insert("disableDoubleEncoding".to_string(), true.into());
5628                        out
5629                    }
5630                    .into()]
5631                )
5632                .build()
5633        );
5634    }
5635
5636    /// path style + private link@af-south-1
5637    #[test]
5638    fn test_198() {
5639        let params = crate::config::endpoint::Params::builder()
5640            .accelerate(false)
5641            .bucket("bucket-name".to_string())
5642            .force_path_style(true)
5643            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5644            .region("af-south-1".to_string())
5645            .use_dual_stack(false)
5646            .use_fips(false)
5647            .build()
5648            .expect("invalid params");
5649        let resolver = crate::config::endpoint::DefaultResolver::new();
5650        let endpoint = resolver.resolve_endpoint(&params);
5651        let endpoint = endpoint.expect("Expected valid endpoint: https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name");
5652        assert_eq!(
5653            endpoint,
5654            ::aws_smithy_types::endpoint::Endpoint::builder()
5655                .url("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name")
5656                .property(
5657                    "authSchemes",
5658                    vec![{
5659                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5660                        out.insert("name".to_string(), "sigv4".to_string().into());
5661                        out.insert("signingName".to_string(), "s3".to_string().into());
5662                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
5663                        out.insert("disableDoubleEncoding".to_string(), true.into());
5664                        out
5665                    }
5666                    .into()]
5667                )
5668                .build()
5669        );
5670    }
5671
5672    /// SDK::Host + FIPS@af-south-1
5673    #[test]
5674    fn test_199() {
5675        let params = crate::config::endpoint::Params::builder()
5676            .accelerate(false)
5677            .bucket("bucket-name".to_string())
5678            .force_path_style(false)
5679            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5680            .region("af-south-1".to_string())
5681            .use_dual_stack(false)
5682            .use_fips(true)
5683            .build()
5684            .expect("invalid params");
5685        let resolver = crate::config::endpoint::DefaultResolver::new();
5686        let endpoint = resolver.resolve_endpoint(&params);
5687        let error = endpoint.expect_err("expected error: A custom endpoint cannot be combined with FIPS [SDK::Host + FIPS@af-south-1]");
5688        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with FIPS")
5689    }
5690
5691    /// SDK::Host + DualStack@af-south-1
5692    #[test]
5693    fn test_200() {
5694        let params = crate::config::endpoint::Params::builder()
5695            .accelerate(false)
5696            .bucket("bucket-name".to_string())
5697            .force_path_style(false)
5698            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5699            .region("af-south-1".to_string())
5700            .use_dual_stack(true)
5701            .use_fips(false)
5702            .build()
5703            .expect("invalid params");
5704        let resolver = crate::config::endpoint::DefaultResolver::new();
5705        let endpoint = resolver.resolve_endpoint(&params);
5706        let error =
5707            endpoint.expect_err("expected error: Cannot set dual-stack in combination with a custom endpoint. [SDK::Host + DualStack@af-south-1]");
5708        assert_eq!(format!("{}", error), "Cannot set dual-stack in combination with a custom endpoint.")
5709    }
5710
5711    /// SDK::HOST + accelerate@af-south-1
5712    #[test]
5713    fn test_201() {
5714        let params = crate::config::endpoint::Params::builder()
5715            .accelerate(true)
5716            .bucket("bucket-name".to_string())
5717            .force_path_style(false)
5718            .endpoint("https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com".to_string())
5719            .region("af-south-1".to_string())
5720            .use_dual_stack(false)
5721            .use_fips(false)
5722            .build()
5723            .expect("invalid params");
5724        let resolver = crate::config::endpoint::DefaultResolver::new();
5725        let endpoint = resolver.resolve_endpoint(&params);
5726        let error =
5727            endpoint.expect_err("expected error: A custom endpoint cannot be combined with S3 Accelerate [SDK::HOST + accelerate@af-south-1]");
5728        assert_eq!(format!("{}", error), "A custom endpoint cannot be combined with S3 Accelerate")
5729    }
5730
5731    /// SDK::Host + access point ARN@af-south-1
5732    #[test]
5733    fn test_202() {
5734        let params = crate::config::endpoint::Params::builder()
5735            .accelerate(false)
5736            .bucket("arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint".to_string())
5737            .force_path_style(false)
5738            .endpoint("https://beta.example.com".to_string())
5739            .region("af-south-1".to_string())
5740            .use_dual_stack(false)
5741            .use_fips(false)
5742            .build()
5743            .expect("invalid params");
5744        let resolver = crate::config::endpoint::DefaultResolver::new();
5745        let endpoint = resolver.resolve_endpoint(&params);
5746        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.beta.example.com");
5747        assert_eq!(
5748            endpoint,
5749            ::aws_smithy_types::endpoint::Endpoint::builder()
5750                .url("https://myendpoint-123456789012.beta.example.com")
5751                .property(
5752                    "authSchemes",
5753                    vec![{
5754                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5755                        out.insert("name".to_string(), "sigv4".to_string().into());
5756                        out.insert("signingName".to_string(), "s3".to_string().into());
5757                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
5758                        out.insert("disableDoubleEncoding".to_string(), true.into());
5759                        out
5760                    }
5761                    .into()]
5762                )
5763                .build()
5764        );
5765    }
5766
5767    /// vanilla access point arn@us-west-2
5768    #[test]
5769    fn test_203() {
5770        let params = crate::config::endpoint::Params::builder()
5771            .accelerate(false)
5772            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
5773            .force_path_style(false)
5774            .region("us-west-2".to_string())
5775            .use_dual_stack(false)
5776            .use_fips(false)
5777            .build()
5778            .expect("invalid params");
5779        let resolver = crate::config::endpoint::DefaultResolver::new();
5780        let endpoint = resolver.resolve_endpoint(&params);
5781        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com");
5782        assert_eq!(
5783            endpoint,
5784            ::aws_smithy_types::endpoint::Endpoint::builder()
5785                .url("https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com")
5786                .property(
5787                    "authSchemes",
5788                    vec![{
5789                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5790                        out.insert("name".to_string(), "sigv4".to_string().into());
5791                        out.insert("signingName".to_string(), "s3".to_string().into());
5792                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
5793                        out.insert("disableDoubleEncoding".to_string(), true.into());
5794                        out
5795                    }
5796                    .into()]
5797                )
5798                .build()
5799        );
5800    }
5801
5802    /// access point arn + FIPS@us-west-2
5803    #[test]
5804    fn test_204() {
5805        let params = crate::config::endpoint::Params::builder()
5806            .accelerate(false)
5807            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
5808            .force_path_style(false)
5809            .region("us-west-2".to_string())
5810            .use_dual_stack(false)
5811            .use_fips(true)
5812            .build()
5813            .expect("invalid params");
5814        let resolver = crate::config::endpoint::DefaultResolver::new();
5815        let endpoint = resolver.resolve_endpoint(&params);
5816        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint-fips.us-west-2.amazonaws.com");
5817        assert_eq!(
5818            endpoint,
5819            ::aws_smithy_types::endpoint::Endpoint::builder()
5820                .url("https://myendpoint-123456789012.s3-accesspoint-fips.us-west-2.amazonaws.com")
5821                .property(
5822                    "authSchemes",
5823                    vec![{
5824                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5825                        out.insert("name".to_string(), "sigv4".to_string().into());
5826                        out.insert("signingName".to_string(), "s3".to_string().into());
5827                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
5828                        out.insert("disableDoubleEncoding".to_string(), true.into());
5829                        out
5830                    }
5831                    .into()]
5832                )
5833                .build()
5834        );
5835    }
5836
5837    /// access point arn + accelerate = error@us-west-2
5838    #[test]
5839    fn test_205() {
5840        let params = crate::config::endpoint::Params::builder()
5841            .accelerate(true)
5842            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
5843            .force_path_style(false)
5844            .region("us-west-2".to_string())
5845            .use_dual_stack(false)
5846            .use_fips(false)
5847            .build()
5848            .expect("invalid params");
5849        let resolver = crate::config::endpoint::DefaultResolver::new();
5850        let endpoint = resolver.resolve_endpoint(&params);
5851        let error =
5852            endpoint.expect_err("expected error: Access Points do not support S3 Accelerate [access point arn + accelerate = error@us-west-2]");
5853        assert_eq!(format!("{}", error), "Access Points do not support S3 Accelerate")
5854    }
5855
5856    /// access point arn + FIPS + DualStack@us-west-2
5857    #[test]
5858    fn test_206() {
5859        let params = crate::config::endpoint::Params::builder()
5860            .accelerate(false)
5861            .bucket("arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint".to_string())
5862            .force_path_style(false)
5863            .region("us-west-2".to_string())
5864            .use_dual_stack(true)
5865            .use_fips(true)
5866            .build()
5867            .expect("invalid params");
5868        let resolver = crate::config::endpoint::DefaultResolver::new();
5869        let endpoint = resolver.resolve_endpoint(&params);
5870        let endpoint =
5871            endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com");
5872        assert_eq!(
5873            endpoint,
5874            ::aws_smithy_types::endpoint::Endpoint::builder()
5875                .url("https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com")
5876                .property(
5877                    "authSchemes",
5878                    vec![{
5879                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5880                        out.insert("name".to_string(), "sigv4".to_string().into());
5881                        out.insert("signingName".to_string(), "s3".to_string().into());
5882                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
5883                        out.insert("disableDoubleEncoding".to_string(), true.into());
5884                        out
5885                    }
5886                    .into()]
5887                )
5888                .build()
5889        );
5890    }
5891
5892    /// vanilla access point arn@cn-north-1
5893    #[test]
5894    fn test_207() {
5895        let params = crate::config::endpoint::Params::builder()
5896            .accelerate(false)
5897            .bucket("arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint".to_string())
5898            .force_path_style(false)
5899            .region("cn-north-1".to_string())
5900            .use_dual_stack(false)
5901            .use_fips(false)
5902            .build()
5903            .expect("invalid params");
5904        let resolver = crate::config::endpoint::DefaultResolver::new();
5905        let endpoint = resolver.resolve_endpoint(&params);
5906        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint.cn-north-1.amazonaws.com.cn");
5907        assert_eq!(
5908            endpoint,
5909            ::aws_smithy_types::endpoint::Endpoint::builder()
5910                .url("https://myendpoint-123456789012.s3-accesspoint.cn-north-1.amazonaws.com.cn")
5911                .property(
5912                    "authSchemes",
5913                    vec![{
5914                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
5915                        out.insert("name".to_string(), "sigv4".to_string().into());
5916                        out.insert("signingName".to_string(), "s3".to_string().into());
5917                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
5918                        out.insert("disableDoubleEncoding".to_string(), true.into());
5919                        out
5920                    }
5921                    .into()]
5922                )
5923                .build()
5924        );
5925    }
5926
5927    /// access point arn + FIPS@cn-north-1
5928    #[test]
5929    fn test_208() {
5930        let params = crate::config::endpoint::Params::builder()
5931            .accelerate(false)
5932            .bucket("arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint".to_string())
5933            .force_path_style(false)
5934            .region("cn-north-1".to_string())
5935            .use_dual_stack(false)
5936            .use_fips(true)
5937            .build()
5938            .expect("invalid params");
5939        let resolver = crate::config::endpoint::DefaultResolver::new();
5940        let endpoint = resolver.resolve_endpoint(&params);
5941        let error = endpoint.expect_err("expected error: Partition does not support FIPS [access point arn + FIPS@cn-north-1]");
5942        assert_eq!(format!("{}", error), "Partition does not support FIPS")
5943    }
5944
5945    /// access point arn + accelerate = error@cn-north-1
5946    #[test]
5947    fn test_209() {
5948        let params = crate::config::endpoint::Params::builder()
5949            .accelerate(true)
5950            .bucket("arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint".to_string())
5951            .force_path_style(false)
5952            .region("cn-north-1".to_string())
5953            .use_dual_stack(false)
5954            .use_fips(false)
5955            .build()
5956            .expect("invalid params");
5957        let resolver = crate::config::endpoint::DefaultResolver::new();
5958        let endpoint = resolver.resolve_endpoint(&params);
5959        let error =
5960            endpoint.expect_err("expected error: Access Points do not support S3 Accelerate [access point arn + accelerate = error@cn-north-1]");
5961        assert_eq!(format!("{}", error), "Access Points do not support S3 Accelerate")
5962    }
5963
5964    /// access point arn + FIPS + DualStack@cn-north-1
5965    #[test]
5966    fn test_210() {
5967        let params = crate::config::endpoint::Params::builder()
5968            .accelerate(false)
5969            .bucket("arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint".to_string())
5970            .force_path_style(false)
5971            .region("cn-north-1".to_string())
5972            .use_dual_stack(true)
5973            .use_fips(true)
5974            .build()
5975            .expect("invalid params");
5976        let resolver = crate::config::endpoint::DefaultResolver::new();
5977        let endpoint = resolver.resolve_endpoint(&params);
5978        let error = endpoint.expect_err("expected error: Partition does not support FIPS [access point arn + FIPS + DualStack@cn-north-1]");
5979        assert_eq!(format!("{}", error), "Partition does not support FIPS")
5980    }
5981
5982    /// vanilla access point arn@af-south-1
5983    #[test]
5984    fn test_211() {
5985        let params = crate::config::endpoint::Params::builder()
5986            .accelerate(false)
5987            .bucket("arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint".to_string())
5988            .force_path_style(false)
5989            .region("af-south-1".to_string())
5990            .use_dual_stack(false)
5991            .use_fips(false)
5992            .build()
5993            .expect("invalid params");
5994        let resolver = crate::config::endpoint::DefaultResolver::new();
5995        let endpoint = resolver.resolve_endpoint(&params);
5996        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint.af-south-1.amazonaws.com");
5997        assert_eq!(
5998            endpoint,
5999            ::aws_smithy_types::endpoint::Endpoint::builder()
6000                .url("https://myendpoint-123456789012.s3-accesspoint.af-south-1.amazonaws.com")
6001                .property(
6002                    "authSchemes",
6003                    vec![{
6004                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6005                        out.insert("name".to_string(), "sigv4".to_string().into());
6006                        out.insert("signingName".to_string(), "s3".to_string().into());
6007                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
6008                        out.insert("disableDoubleEncoding".to_string(), true.into());
6009                        out
6010                    }
6011                    .into()]
6012                )
6013                .build()
6014        );
6015    }
6016
6017    /// access point arn + FIPS@af-south-1
6018    #[test]
6019    fn test_212() {
6020        let params = crate::config::endpoint::Params::builder()
6021            .accelerate(false)
6022            .bucket("arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint".to_string())
6023            .force_path_style(false)
6024            .region("af-south-1".to_string())
6025            .use_dual_stack(false)
6026            .use_fips(true)
6027            .build()
6028            .expect("invalid params");
6029        let resolver = crate::config::endpoint::DefaultResolver::new();
6030        let endpoint = resolver.resolve_endpoint(&params);
6031        let endpoint = endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint-fips.af-south-1.amazonaws.com");
6032        assert_eq!(
6033            endpoint,
6034            ::aws_smithy_types::endpoint::Endpoint::builder()
6035                .url("https://myendpoint-123456789012.s3-accesspoint-fips.af-south-1.amazonaws.com")
6036                .property(
6037                    "authSchemes",
6038                    vec![{
6039                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6040                        out.insert("name".to_string(), "sigv4".to_string().into());
6041                        out.insert("signingName".to_string(), "s3".to_string().into());
6042                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
6043                        out.insert("disableDoubleEncoding".to_string(), true.into());
6044                        out
6045                    }
6046                    .into()]
6047                )
6048                .build()
6049        );
6050    }
6051
6052    /// access point arn + accelerate = error@af-south-1
6053    #[test]
6054    fn test_213() {
6055        let params = crate::config::endpoint::Params::builder()
6056            .accelerate(true)
6057            .bucket("arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint".to_string())
6058            .force_path_style(false)
6059            .region("af-south-1".to_string())
6060            .use_dual_stack(false)
6061            .use_fips(false)
6062            .build()
6063            .expect("invalid params");
6064        let resolver = crate::config::endpoint::DefaultResolver::new();
6065        let endpoint = resolver.resolve_endpoint(&params);
6066        let error =
6067            endpoint.expect_err("expected error: Access Points do not support S3 Accelerate [access point arn + accelerate = error@af-south-1]");
6068        assert_eq!(format!("{}", error), "Access Points do not support S3 Accelerate")
6069    }
6070
6071    /// access point arn + FIPS + DualStack@af-south-1
6072    #[test]
6073    fn test_214() {
6074        let params = crate::config::endpoint::Params::builder()
6075            .accelerate(false)
6076            .bucket("arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint".to_string())
6077            .force_path_style(false)
6078            .region("af-south-1".to_string())
6079            .use_dual_stack(true)
6080            .use_fips(true)
6081            .build()
6082            .expect("invalid params");
6083        let resolver = crate::config::endpoint::DefaultResolver::new();
6084        let endpoint = resolver.resolve_endpoint(&params);
6085        let endpoint =
6086            endpoint.expect("Expected valid endpoint: https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.af-south-1.amazonaws.com");
6087        assert_eq!(
6088            endpoint,
6089            ::aws_smithy_types::endpoint::Endpoint::builder()
6090                .url("https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.af-south-1.amazonaws.com")
6091                .property(
6092                    "authSchemes",
6093                    vec![{
6094                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6095                        out.insert("name".to_string(), "sigv4".to_string().into());
6096                        out.insert("signingName".to_string(), "s3".to_string().into());
6097                        out.insert("signingRegion".to_string(), "af-south-1".to_string().into());
6098                        out.insert("disableDoubleEncoding".to_string(), true.into());
6099                        out
6100                    }
6101                    .into()]
6102                )
6103                .build()
6104        );
6105    }
6106
6107    /// S3 outposts vanilla test
6108    #[test]
6109    fn test_215() {
6110        let params = crate::config::endpoint::Params::builder()
6111            .region("us-west-2".to_string())
6112            .use_fips(false)
6113            .use_dual_stack(false)
6114            .accelerate(false)
6115            .bucket("arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports".to_string())
6116            .build()
6117            .expect("invalid params");
6118        let resolver = crate::config::endpoint::DefaultResolver::new();
6119        let endpoint = resolver.resolve_endpoint(&params);
6120        let endpoint =
6121            endpoint.expect("Expected valid endpoint: https://reports-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com");
6122        assert_eq!(
6123            endpoint,
6124            ::aws_smithy_types::endpoint::Endpoint::builder()
6125                .url("https://reports-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com")
6126                .property(
6127                    "authSchemes",
6128                    vec![
6129                        {
6130                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6131                            out.insert("name".to_string(), "sigv4a".to_string().into());
6132                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
6133                            out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
6134                            out.insert("disableDoubleEncoding".to_string(), true.into());
6135                            out
6136                        }
6137                        .into(),
6138                        {
6139                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6140                            out.insert("name".to_string(), "sigv4".to_string().into());
6141                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
6142                            out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
6143                            out.insert("disableDoubleEncoding".to_string(), true.into());
6144                            out
6145                        }
6146                        .into()
6147                    ]
6148                )
6149                .build()
6150        );
6151    }
6152
6153    /// S3 outposts custom endpoint
6154    #[test]
6155    fn test_216() {
6156        let params = crate::config::endpoint::Params::builder()
6157            .region("us-west-2".to_string())
6158            .use_fips(false)
6159            .use_dual_stack(false)
6160            .accelerate(false)
6161            .bucket("arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports".to_string())
6162            .endpoint("https://example.amazonaws.com".to_string())
6163            .build()
6164            .expect("invalid params");
6165        let resolver = crate::config::endpoint::DefaultResolver::new();
6166        let endpoint = resolver.resolve_endpoint(&params);
6167        let endpoint = endpoint.expect("Expected valid endpoint: https://reports-123456789012.op-01234567890123456.example.amazonaws.com");
6168        assert_eq!(
6169            endpoint,
6170            ::aws_smithy_types::endpoint::Endpoint::builder()
6171                .url("https://reports-123456789012.op-01234567890123456.example.amazonaws.com")
6172                .property(
6173                    "authSchemes",
6174                    vec![
6175                        {
6176                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6177                            out.insert("name".to_string(), "sigv4a".to_string().into());
6178                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
6179                            out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
6180                            out.insert("disableDoubleEncoding".to_string(), true.into());
6181                            out
6182                        }
6183                        .into(),
6184                        {
6185                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6186                            out.insert("name".to_string(), "sigv4".to_string().into());
6187                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
6188                            out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
6189                            out.insert("disableDoubleEncoding".to_string(), true.into());
6190                            out
6191                        }
6192                        .into()
6193                    ]
6194                )
6195                .build()
6196        );
6197    }
6198
6199    /// outposts arn with region mismatch and UseArnRegion=false
6200    #[test]
6201    fn test_217() {
6202        let params = crate::config::endpoint::Params::builder()
6203            .accelerate(false)
6204            .bucket("arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint".to_string())
6205            .force_path_style(false)
6206            .use_arn_region(false)
6207            .region("us-west-2".to_string())
6208            .use_dual_stack(false)
6209            .use_fips(false)
6210            .build()
6211            .expect("invalid params");
6212        let resolver = crate::config::endpoint::DefaultResolver::new();
6213        let endpoint = resolver.resolve_endpoint(&params);
6214        let error = endpoint.expect_err("expected error: Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false` [outposts arn with region mismatch and UseArnRegion=false]");
6215        assert_eq!(
6216            format!("{}", error),
6217            "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`"
6218        )
6219    }
6220
6221    /// outposts arn with region mismatch, custom region and UseArnRegion=false
6222    #[test]
6223    fn test_218() {
6224        let params = crate::config::endpoint::Params::builder()
6225            .accelerate(false)
6226            .bucket("arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint".to_string())
6227            .endpoint("https://example.com".to_string())
6228            .force_path_style(false)
6229            .use_arn_region(false)
6230            .region("us-west-2".to_string())
6231            .use_dual_stack(false)
6232            .use_fips(false)
6233            .build()
6234            .expect("invalid params");
6235        let resolver = crate::config::endpoint::DefaultResolver::new();
6236        let endpoint = resolver.resolve_endpoint(&params);
6237        let error = endpoint.expect_err("expected error: Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false` [outposts arn with region mismatch, custom region and UseArnRegion=false]");
6238        assert_eq!(
6239            format!("{}", error),
6240            "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`"
6241        )
6242    }
6243
6244    /// outposts arn with region mismatch and UseArnRegion=true
6245    #[test]
6246    fn test_219() {
6247        let params = crate::config::endpoint::Params::builder()
6248            .accelerate(false)
6249            .bucket("arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint".to_string())
6250            .force_path_style(false)
6251            .use_arn_region(true)
6252            .region("us-west-2".to_string())
6253            .use_dual_stack(false)
6254            .use_fips(false)
6255            .build()
6256            .expect("invalid params");
6257        let resolver = crate::config::endpoint::DefaultResolver::new();
6258        let endpoint = resolver.resolve_endpoint(&params);
6259        let endpoint =
6260            endpoint.expect("Expected valid endpoint: https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com");
6261        assert_eq!(
6262            endpoint,
6263            ::aws_smithy_types::endpoint::Endpoint::builder()
6264                .url("https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com")
6265                .property(
6266                    "authSchemes",
6267                    vec![
6268                        {
6269                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6270                            out.insert("name".to_string(), "sigv4a".to_string().into());
6271                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
6272                            out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
6273                            out.insert("disableDoubleEncoding".to_string(), true.into());
6274                            out
6275                        }
6276                        .into(),
6277                        {
6278                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6279                            out.insert("name".to_string(), "sigv4".to_string().into());
6280                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
6281                            out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
6282                            out.insert("disableDoubleEncoding".to_string(), true.into());
6283                            out
6284                        }
6285                        .into()
6286                    ]
6287                )
6288                .build()
6289        );
6290    }
6291
6292    /// outposts arn with region mismatch and UseArnRegion unset
6293    #[test]
6294    fn test_220() {
6295        let params = crate::config::endpoint::Params::builder()
6296            .accelerate(false)
6297            .bucket("arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint".to_string())
6298            .force_path_style(false)
6299            .region("us-west-2".to_string())
6300            .use_dual_stack(false)
6301            .use_fips(false)
6302            .build()
6303            .expect("invalid params");
6304        let resolver = crate::config::endpoint::DefaultResolver::new();
6305        let endpoint = resolver.resolve_endpoint(&params);
6306        let endpoint =
6307            endpoint.expect("Expected valid endpoint: https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com");
6308        assert_eq!(
6309            endpoint,
6310            ::aws_smithy_types::endpoint::Endpoint::builder()
6311                .url("https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com")
6312                .property(
6313                    "authSchemes",
6314                    vec![
6315                        {
6316                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6317                            out.insert("name".to_string(), "sigv4a".to_string().into());
6318                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
6319                            out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
6320                            out.insert("disableDoubleEncoding".to_string(), true.into());
6321                            out
6322                        }
6323                        .into(),
6324                        {
6325                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6326                            out.insert("name".to_string(), "sigv4".to_string().into());
6327                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
6328                            out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
6329                            out.insert("disableDoubleEncoding".to_string(), true.into());
6330                            out
6331                        }
6332                        .into()
6333                    ]
6334                )
6335                .build()
6336        );
6337    }
6338
6339    /// outposts arn with partition mismatch and UseArnRegion=true
6340    #[test]
6341    fn test_221() {
6342        let params = crate::config::endpoint::Params::builder()
6343            .accelerate(false)
6344            .bucket("arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint".to_string())
6345            .force_path_style(false)
6346            .use_arn_region(true)
6347            .region("us-west-2".to_string())
6348            .use_dual_stack(false)
6349            .use_fips(false)
6350            .build()
6351            .expect("invalid params");
6352        let resolver = crate::config::endpoint::DefaultResolver::new();
6353        let endpoint = resolver.resolve_endpoint(&params);
6354        let error = endpoint.expect_err("expected error: Client was configured for partition `aws` but ARN (`arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint`) has `aws-cn` [outposts arn with partition mismatch and UseArnRegion=true]");
6355        assert_eq!(format!("{}", error), "Client was configured for partition `aws` but ARN (`arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint`) has `aws-cn`")
6356    }
6357
6358    /// ARN with UseGlobalEndpoint and use-east-1 region uses the regional endpoint
6359    #[test]
6360    fn test_222() {
6361        let params = crate::config::endpoint::Params::builder()
6362            .region("us-east-1".to_string())
6363            .use_global_endpoint(true)
6364            .use_fips(false)
6365            .use_dual_stack(false)
6366            .accelerate(false)
6367            .bucket("arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports".to_string())
6368            .build()
6369            .expect("invalid params");
6370        let resolver = crate::config::endpoint::DefaultResolver::new();
6371        let endpoint = resolver.resolve_endpoint(&params);
6372        let endpoint =
6373            endpoint.expect("Expected valid endpoint: https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com");
6374        assert_eq!(
6375            endpoint,
6376            ::aws_smithy_types::endpoint::Endpoint::builder()
6377                .url("https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com")
6378                .property(
6379                    "authSchemes",
6380                    vec![
6381                        {
6382                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6383                            out.insert("name".to_string(), "sigv4a".to_string().into());
6384                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
6385                            out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
6386                            out.insert("disableDoubleEncoding".to_string(), true.into());
6387                            out
6388                        }
6389                        .into(),
6390                        {
6391                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6392                            out.insert("name".to_string(), "sigv4".to_string().into());
6393                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
6394                            out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
6395                            out.insert("disableDoubleEncoding".to_string(), true.into());
6396                            out
6397                        }
6398                        .into()
6399                    ]
6400                )
6401                .build()
6402        );
6403    }
6404
6405    /// S3 outposts does not support dualstack
6406    #[test]
6407    fn test_223() {
6408        let params = crate::config::endpoint::Params::builder()
6409            .region("us-east-1".to_string())
6410            .use_fips(false)
6411            .use_dual_stack(true)
6412            .accelerate(false)
6413            .bucket("arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports".to_string())
6414            .build()
6415            .expect("invalid params");
6416        let resolver = crate::config::endpoint::DefaultResolver::new();
6417        let endpoint = resolver.resolve_endpoint(&params);
6418        let error = endpoint.expect_err("expected error: S3 Outposts does not support Dual-stack [S3 outposts does not support dualstack]");
6419        assert_eq!(format!("{}", error), "S3 Outposts does not support Dual-stack")
6420    }
6421
6422    /// S3 outposts does not support fips
6423    #[test]
6424    fn test_224() {
6425        let params = crate::config::endpoint::Params::builder()
6426            .region("us-east-1".to_string())
6427            .use_fips(true)
6428            .use_dual_stack(false)
6429            .accelerate(false)
6430            .bucket("arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports".to_string())
6431            .build()
6432            .expect("invalid params");
6433        let resolver = crate::config::endpoint::DefaultResolver::new();
6434        let endpoint = resolver.resolve_endpoint(&params);
6435        let error = endpoint.expect_err("expected error: S3 Outposts does not support FIPS [S3 outposts does not support fips]");
6436        assert_eq!(format!("{}", error), "S3 Outposts does not support FIPS")
6437    }
6438
6439    /// S3 outposts does not support accelerate
6440    #[test]
6441    fn test_225() {
6442        let params = crate::config::endpoint::Params::builder()
6443            .region("us-east-1".to_string())
6444            .use_fips(false)
6445            .use_dual_stack(false)
6446            .accelerate(true)
6447            .bucket("arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports".to_string())
6448            .build()
6449            .expect("invalid params");
6450        let resolver = crate::config::endpoint::DefaultResolver::new();
6451        let endpoint = resolver.resolve_endpoint(&params);
6452        let error = endpoint.expect_err("expected error: S3 Outposts does not support S3 Accelerate [S3 outposts does not support accelerate]");
6453        assert_eq!(format!("{}", error), "S3 Outposts does not support S3 Accelerate")
6454    }
6455
6456    /// validates against subresource
6457    #[test]
6458    fn test_226() {
6459        let params = crate::config::endpoint::Params::builder()
6460            .region("us-west-2".to_string())
6461            .use_fips(false)
6462            .use_dual_stack(false)
6463            .accelerate(false)
6464            .bucket("arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:mybucket:object:foo".to_string())
6465            .build()
6466            .expect("invalid params");
6467        let resolver = crate::config::endpoint::DefaultResolver::new();
6468        let endpoint = resolver.resolve_endpoint(&params);
6469        let error =
6470            endpoint.expect_err("expected error: Invalid Arn: Outpost Access Point ARN contains sub resources [validates against subresource]");
6471        assert_eq!(format!("{}", error), "Invalid Arn: Outpost Access Point ARN contains sub resources")
6472    }
6473
6474    /// object lambda @us-east-1
6475    #[test]
6476    fn test_227() {
6477        let params = crate::config::endpoint::Params::builder()
6478            .region("us-east-1".to_string())
6479            .use_fips(false)
6480            .use_dual_stack(false)
6481            .accelerate(false)
6482            .use_arn_region(false)
6483            .bucket("arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner".to_string())
6484            .build()
6485            .expect("invalid params");
6486        let resolver = crate::config::endpoint::DefaultResolver::new();
6487        let endpoint = resolver.resolve_endpoint(&params);
6488        let endpoint = endpoint.expect("Expected valid endpoint: https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com");
6489        assert_eq!(
6490            endpoint,
6491            ::aws_smithy_types::endpoint::Endpoint::builder()
6492                .url("https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com")
6493                .property(
6494                    "authSchemes",
6495                    vec![{
6496                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6497                        out.insert("name".to_string(), "sigv4".to_string().into());
6498                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
6499                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
6500                        out.insert("disableDoubleEncoding".to_string(), true.into());
6501                        out
6502                    }
6503                    .into()]
6504                )
6505                .build()
6506        );
6507    }
6508
6509    /// object lambda @us-west-2
6510    #[test]
6511    fn test_228() {
6512        let params = crate::config::endpoint::Params::builder()
6513            .region("us-west-2".to_string())
6514            .use_fips(false)
6515            .use_dual_stack(false)
6516            .accelerate(false)
6517            .use_arn_region(false)
6518            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner".to_string())
6519            .build()
6520            .expect("invalid params");
6521        let resolver = crate::config::endpoint::DefaultResolver::new();
6522        let endpoint = resolver.resolve_endpoint(&params);
6523        let endpoint = endpoint.expect("Expected valid endpoint: https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com");
6524        assert_eq!(
6525            endpoint,
6526            ::aws_smithy_types::endpoint::Endpoint::builder()
6527                .url("https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com")
6528                .property(
6529                    "authSchemes",
6530                    vec![{
6531                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6532                        out.insert("name".to_string(), "sigv4".to_string().into());
6533                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
6534                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
6535                        out.insert("disableDoubleEncoding".to_string(), true.into());
6536                        out
6537                    }
6538                    .into()]
6539                )
6540                .build()
6541        );
6542    }
6543
6544    /// object lambda, colon resource deliminator @us-west-2
6545    #[test]
6546    fn test_229() {
6547        let params = crate::config::endpoint::Params::builder()
6548            .region("us-west-2".to_string())
6549            .use_fips(false)
6550            .use_dual_stack(false)
6551            .accelerate(false)
6552            .use_arn_region(false)
6553            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner".to_string())
6554            .build()
6555            .expect("invalid params");
6556        let resolver = crate::config::endpoint::DefaultResolver::new();
6557        let endpoint = resolver.resolve_endpoint(&params);
6558        let endpoint = endpoint.expect("Expected valid endpoint: https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com");
6559        assert_eq!(
6560            endpoint,
6561            ::aws_smithy_types::endpoint::Endpoint::builder()
6562                .url("https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com")
6563                .property(
6564                    "authSchemes",
6565                    vec![{
6566                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6567                        out.insert("name".to_string(), "sigv4".to_string().into());
6568                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
6569                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
6570                        out.insert("disableDoubleEncoding".to_string(), true.into());
6571                        out
6572                    }
6573                    .into()]
6574                )
6575                .build()
6576        );
6577    }
6578
6579    /// object lambda @us-east-1, client region us-west-2, useArnRegion=true
6580    #[test]
6581    fn test_230() {
6582        let params = crate::config::endpoint::Params::builder()
6583            .region("us-west-2".to_string())
6584            .use_fips(false)
6585            .use_dual_stack(false)
6586            .accelerate(false)
6587            .use_arn_region(true)
6588            .bucket("arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner".to_string())
6589            .build()
6590            .expect("invalid params");
6591        let resolver = crate::config::endpoint::DefaultResolver::new();
6592        let endpoint = resolver.resolve_endpoint(&params);
6593        let endpoint = endpoint.expect("Expected valid endpoint: https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com");
6594        assert_eq!(
6595            endpoint,
6596            ::aws_smithy_types::endpoint::Endpoint::builder()
6597                .url("https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com")
6598                .property(
6599                    "authSchemes",
6600                    vec![{
6601                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6602                        out.insert("name".to_string(), "sigv4".to_string().into());
6603                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
6604                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
6605                        out.insert("disableDoubleEncoding".to_string(), true.into());
6606                        out
6607                    }
6608                    .into()]
6609                )
6610                .build()
6611        );
6612    }
6613
6614    /// object lambda @us-east-1, client region s3-external-1, useArnRegion=true
6615    #[test]
6616    fn test_231() {
6617        let params = crate::config::endpoint::Params::builder()
6618            .region("s3-external-1".to_string())
6619            .use_fips(false)
6620            .use_dual_stack(false)
6621            .accelerate(false)
6622            .use_arn_region(true)
6623            .bucket("arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner".to_string())
6624            .build()
6625            .expect("invalid params");
6626        let resolver = crate::config::endpoint::DefaultResolver::new();
6627        let endpoint = resolver.resolve_endpoint(&params);
6628        let endpoint = endpoint.expect("Expected valid endpoint: https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com");
6629        assert_eq!(
6630            endpoint,
6631            ::aws_smithy_types::endpoint::Endpoint::builder()
6632                .url("https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com")
6633                .property(
6634                    "authSchemes",
6635                    vec![{
6636                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6637                        out.insert("name".to_string(), "sigv4".to_string().into());
6638                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
6639                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
6640                        out.insert("disableDoubleEncoding".to_string(), true.into());
6641                        out
6642                    }
6643                    .into()]
6644                )
6645                .build()
6646        );
6647    }
6648
6649    /// object lambda @us-east-1, client region s3-external-1, useArnRegion=false
6650    #[test]
6651    fn test_232() {
6652        let params = crate::config::endpoint::Params::builder()
6653            .region("s3-external-1".to_string())
6654            .use_fips(false)
6655            .use_dual_stack(false)
6656            .accelerate(false)
6657            .use_arn_region(false)
6658            .bucket("arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner".to_string())
6659            .build()
6660            .expect("invalid params");
6661        let resolver = crate::config::endpoint::DefaultResolver::new();
6662        let endpoint = resolver.resolve_endpoint(&params);
6663        let error = endpoint.expect_err("expected error: Invalid configuration: region from ARN `us-east-1` does not match client region `s3-external-1` and UseArnRegion is `false` [object lambda @us-east-1, client region s3-external-1, useArnRegion=false]");
6664        assert_eq!(
6665            format!("{}", error),
6666            "Invalid configuration: region from ARN `us-east-1` does not match client region `s3-external-1` and UseArnRegion is `false`"
6667        )
6668    }
6669
6670    /// object lambda @us-east-1, client region aws-global, useArnRegion=true
6671    #[test]
6672    fn test_233() {
6673        let params = crate::config::endpoint::Params::builder()
6674            .region("aws-global".to_string())
6675            .use_fips(false)
6676            .use_dual_stack(false)
6677            .accelerate(false)
6678            .use_arn_region(true)
6679            .bucket("arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner".to_string())
6680            .build()
6681            .expect("invalid params");
6682        let resolver = crate::config::endpoint::DefaultResolver::new();
6683        let endpoint = resolver.resolve_endpoint(&params);
6684        let endpoint = endpoint.expect("Expected valid endpoint: https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com");
6685        assert_eq!(
6686            endpoint,
6687            ::aws_smithy_types::endpoint::Endpoint::builder()
6688                .url("https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com")
6689                .property(
6690                    "authSchemes",
6691                    vec![{
6692                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6693                        out.insert("name".to_string(), "sigv4".to_string().into());
6694                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
6695                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
6696                        out.insert("disableDoubleEncoding".to_string(), true.into());
6697                        out
6698                    }
6699                    .into()]
6700                )
6701                .build()
6702        );
6703    }
6704
6705    /// object lambda @us-east-1, client region aws-global, useArnRegion=false
6706    #[test]
6707    fn test_234() {
6708        let params = crate::config::endpoint::Params::builder()
6709            .region("aws-global".to_string())
6710            .use_fips(false)
6711            .use_dual_stack(false)
6712            .accelerate(false)
6713            .use_arn_region(false)
6714            .bucket("arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner".to_string())
6715            .build()
6716            .expect("invalid params");
6717        let resolver = crate::config::endpoint::DefaultResolver::new();
6718        let endpoint = resolver.resolve_endpoint(&params);
6719        let error = endpoint.expect_err("expected error: Invalid configuration: region from ARN `us-east-1` does not match client region `aws-global` and UseArnRegion is `false` [object lambda @us-east-1, client region aws-global, useArnRegion=false]");
6720        assert_eq!(
6721            format!("{}", error),
6722            "Invalid configuration: region from ARN `us-east-1` does not match client region `aws-global` and UseArnRegion is `false`"
6723        )
6724    }
6725
6726    /// object lambda @cn-north-1, client region us-west-2 (cross partition), useArnRegion=true
6727    #[test]
6728    fn test_235() {
6729        let params = crate::config::endpoint::Params::builder()
6730            .region("aws-global".to_string())
6731            .use_fips(false)
6732            .use_dual_stack(false)
6733            .accelerate(false)
6734            .use_arn_region(true)
6735            .bucket("arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner".to_string())
6736            .build()
6737            .expect("invalid params");
6738        let resolver = crate::config::endpoint::DefaultResolver::new();
6739        let endpoint = resolver.resolve_endpoint(&params);
6740        let error = endpoint.expect_err("expected error: Client was configured for partition `aws` but ARN (`arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner`) has `aws-cn` [object lambda @cn-north-1, client region us-west-2 (cross partition), useArnRegion=true]");
6741        assert_eq!(format!("{}", error), "Client was configured for partition `aws` but ARN (`arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner`) has `aws-cn`")
6742    }
6743
6744    /// object lambda with dualstack
6745    #[test]
6746    fn test_236() {
6747        let params = crate::config::endpoint::Params::builder()
6748            .region("us-west-2".to_string())
6749            .use_fips(false)
6750            .use_dual_stack(true)
6751            .accelerate(false)
6752            .use_arn_region(false)
6753            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner".to_string())
6754            .build()
6755            .expect("invalid params");
6756        let resolver = crate::config::endpoint::DefaultResolver::new();
6757        let endpoint = resolver.resolve_endpoint(&params);
6758        let error = endpoint.expect_err("expected error: S3 Object Lambda does not support Dual-stack [object lambda with dualstack]");
6759        assert_eq!(format!("{}", error), "S3 Object Lambda does not support Dual-stack")
6760    }
6761
6762    /// object lambda @us-gov-east-1
6763    #[test]
6764    fn test_237() {
6765        let params = crate::config::endpoint::Params::builder()
6766            .region("us-gov-east-1".to_string())
6767            .use_fips(false)
6768            .use_dual_stack(false)
6769            .accelerate(false)
6770            .use_arn_region(false)
6771            .bucket("arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner".to_string())
6772            .build()
6773            .expect("invalid params");
6774        let resolver = crate::config::endpoint::DefaultResolver::new();
6775        let endpoint = resolver.resolve_endpoint(&params);
6776        let endpoint = endpoint.expect("Expected valid endpoint: https://mybanner-123456789012.s3-object-lambda.us-gov-east-1.amazonaws.com");
6777        assert_eq!(
6778            endpoint,
6779            ::aws_smithy_types::endpoint::Endpoint::builder()
6780                .url("https://mybanner-123456789012.s3-object-lambda.us-gov-east-1.amazonaws.com")
6781                .property(
6782                    "authSchemes",
6783                    vec![{
6784                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6785                        out.insert("name".to_string(), "sigv4".to_string().into());
6786                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
6787                        out.insert("signingRegion".to_string(), "us-gov-east-1".to_string().into());
6788                        out.insert("disableDoubleEncoding".to_string(), true.into());
6789                        out
6790                    }
6791                    .into()]
6792                )
6793                .build()
6794        );
6795    }
6796
6797    /// object lambda @us-gov-east-1, with fips
6798    #[test]
6799    fn test_238() {
6800        let params = crate::config::endpoint::Params::builder()
6801            .region("us-gov-east-1".to_string())
6802            .use_fips(true)
6803            .use_dual_stack(false)
6804            .accelerate(false)
6805            .use_arn_region(false)
6806            .bucket("arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner".to_string())
6807            .build()
6808            .expect("invalid params");
6809        let resolver = crate::config::endpoint::DefaultResolver::new();
6810        let endpoint = resolver.resolve_endpoint(&params);
6811        let endpoint = endpoint.expect("Expected valid endpoint: https://mybanner-123456789012.s3-object-lambda-fips.us-gov-east-1.amazonaws.com");
6812        assert_eq!(
6813            endpoint,
6814            ::aws_smithy_types::endpoint::Endpoint::builder()
6815                .url("https://mybanner-123456789012.s3-object-lambda-fips.us-gov-east-1.amazonaws.com")
6816                .property(
6817                    "authSchemes",
6818                    vec![{
6819                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
6820                        out.insert("name".to_string(), "sigv4".to_string().into());
6821                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
6822                        out.insert("signingRegion".to_string(), "us-gov-east-1".to_string().into());
6823                        out.insert("disableDoubleEncoding".to_string(), true.into());
6824                        out
6825                    }
6826                    .into()]
6827                )
6828                .build()
6829        );
6830    }
6831
6832    /// object lambda @cn-north-1, with fips
6833    #[test]
6834    fn test_239() {
6835        let params = crate::config::endpoint::Params::builder()
6836            .region("cn-north-1".to_string())
6837            .use_fips(true)
6838            .use_dual_stack(false)
6839            .accelerate(false)
6840            .use_arn_region(false)
6841            .bucket("arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner".to_string())
6842            .build()
6843            .expect("invalid params");
6844        let resolver = crate::config::endpoint::DefaultResolver::new();
6845        let endpoint = resolver.resolve_endpoint(&params);
6846        let error = endpoint.expect_err("expected error: Partition does not support FIPS [object lambda @cn-north-1, with fips]");
6847        assert_eq!(format!("{}", error), "Partition does not support FIPS")
6848    }
6849
6850    /// object lambda with accelerate
6851    #[test]
6852    fn test_240() {
6853        let params = crate::config::endpoint::Params::builder()
6854            .region("us-west-2".to_string())
6855            .use_fips(false)
6856            .use_dual_stack(false)
6857            .accelerate(true)
6858            .use_arn_region(false)
6859            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner".to_string())
6860            .build()
6861            .expect("invalid params");
6862        let resolver = crate::config::endpoint::DefaultResolver::new();
6863        let endpoint = resolver.resolve_endpoint(&params);
6864        let error = endpoint.expect_err("expected error: S3 Object Lambda does not support S3 Accelerate [object lambda with accelerate]");
6865        assert_eq!(format!("{}", error), "S3 Object Lambda does not support S3 Accelerate")
6866    }
6867
6868    /// object lambda with invalid arn - bad service and someresource
6869    #[test]
6870    fn test_241() {
6871        let params = crate::config::endpoint::Params::builder()
6872            .region("us-west-2".to_string())
6873            .use_fips(false)
6874            .use_dual_stack(false)
6875            .accelerate(false)
6876            .use_arn_region(false)
6877            .bucket("arn:aws:sqs:us-west-2:123456789012:someresource".to_string())
6878            .build()
6879            .expect("invalid params");
6880        let resolver = crate::config::endpoint::DefaultResolver::new();
6881        let endpoint = resolver.resolve_endpoint(&params);
6882        let error = endpoint.expect_err("expected error: Invalid ARN: Unrecognized format: arn:aws:sqs:us-west-2:123456789012:someresource (type: someresource) [object lambda with invalid arn - bad service and someresource]");
6883        assert_eq!(
6884            format!("{}", error),
6885            "Invalid ARN: Unrecognized format: arn:aws:sqs:us-west-2:123456789012:someresource (type: someresource)"
6886        )
6887    }
6888
6889    /// object lambda with invalid arn - invalid resource
6890    #[test]
6891    fn test_242() {
6892        let params = crate::config::endpoint::Params::builder()
6893            .region("us-west-2".to_string())
6894            .use_fips(false)
6895            .use_dual_stack(false)
6896            .accelerate(false)
6897            .use_arn_region(false)
6898            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:bucket_name:mybucket".to_string())
6899            .build()
6900            .expect("invalid params");
6901        let resolver = crate::config::endpoint::DefaultResolver::new();
6902        let endpoint = resolver.resolve_endpoint(&params);
6903        let error = endpoint.expect_err("expected error: Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `bucket_name` [object lambda with invalid arn - invalid resource]");
6904        assert_eq!(
6905            format!("{}", error),
6906            "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `bucket_name`"
6907        )
6908    }
6909
6910    /// object lambda with invalid arn - missing region
6911    #[test]
6912    fn test_243() {
6913        let params = crate::config::endpoint::Params::builder()
6914            .region("us-west-2".to_string())
6915            .use_fips(false)
6916            .use_dual_stack(false)
6917            .accelerate(false)
6918            .use_arn_region(false)
6919            .bucket("arn:aws:s3-object-lambda::123456789012:accesspoint/mybanner".to_string())
6920            .build()
6921            .expect("invalid params");
6922        let resolver = crate::config::endpoint::DefaultResolver::new();
6923        let endpoint = resolver.resolve_endpoint(&params);
6924        let error =
6925            endpoint.expect_err("expected error: Invalid ARN: bucket ARN is missing a region [object lambda with invalid arn - missing region]");
6926        assert_eq!(format!("{}", error), "Invalid ARN: bucket ARN is missing a region")
6927    }
6928
6929    /// object lambda with invalid arn - missing account-id
6930    #[test]
6931    fn test_244() {
6932        let params = crate::config::endpoint::Params::builder()
6933            .region("us-west-2".to_string())
6934            .use_fips(false)
6935            .use_dual_stack(false)
6936            .accelerate(false)
6937            .use_arn_region(true)
6938            .bucket("arn:aws:s3-object-lambda:us-west-2::accesspoint/mybanner".to_string())
6939            .build()
6940            .expect("invalid params");
6941        let resolver = crate::config::endpoint::DefaultResolver::new();
6942        let endpoint = resolver.resolve_endpoint(&params);
6943        let error = endpoint.expect_err("expected error: Invalid ARN: Missing account id [object lambda with invalid arn - missing account-id]");
6944        assert_eq!(format!("{}", error), "Invalid ARN: Missing account id")
6945    }
6946
6947    /// object lambda with invalid arn - account id contains invalid characters
6948    #[test]
6949    fn test_245() {
6950        let params = crate::config::endpoint::Params::builder()
6951            .region("us-west-2".to_string())
6952            .use_fips(false)
6953            .use_dual_stack(false)
6954            .accelerate(false)
6955            .use_arn_region(true)
6956            .bucket("arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket".to_string())
6957            .build()
6958            .expect("invalid params");
6959        let resolver = crate::config::endpoint::DefaultResolver::new();
6960        let endpoint = resolver.resolve_endpoint(&params);
6961        let error = endpoint.expect_err("expected error: Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123.45678.9012` [object lambda with invalid arn - account id contains invalid characters]");
6962        assert_eq!(
6963            format!("{}", error),
6964            "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123.45678.9012`"
6965        )
6966    }
6967
6968    /// object lambda with invalid arn - missing access point name
6969    #[test]
6970    fn test_246() {
6971        let params = crate::config::endpoint::Params::builder()
6972            .region("us-west-2".to_string())
6973            .use_fips(false)
6974            .use_dual_stack(false)
6975            .accelerate(false)
6976            .use_arn_region(true)
6977            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint".to_string())
6978            .build()
6979            .expect("invalid params");
6980        let resolver = crate::config::endpoint::DefaultResolver::new();
6981        let endpoint = resolver.resolve_endpoint(&params);
6982        let error = endpoint.expect_err("expected error: Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided [object lambda with invalid arn - missing access point name]");
6983        assert_eq!(
6984            format!("{}", error),
6985            "Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided"
6986        )
6987    }
6988
6989    /// object lambda with invalid arn - access point name contains invalid character: *
6990    #[test]
6991    fn test_247() {
6992        let params = crate::config::endpoint::Params::builder()
6993            .region("us-west-2".to_string())
6994            .use_fips(false)
6995            .use_dual_stack(false)
6996            .accelerate(false)
6997            .use_arn_region(true)
6998            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:*".to_string())
6999            .build()
7000            .expect("invalid params");
7001        let resolver = crate::config::endpoint::DefaultResolver::new();
7002        let endpoint = resolver.resolve_endpoint(&params);
7003        let error = endpoint.expect_err("expected error: Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `*` [object lambda with invalid arn - access point name contains invalid character: *]");
7004        assert_eq!(
7005            format!("{}", error),
7006            "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `*`"
7007        )
7008    }
7009
7010    /// object lambda with invalid arn - access point name contains invalid character: .
7011    #[test]
7012    fn test_248() {
7013        let params = crate::config::endpoint::Params::builder()
7014            .region("us-west-2".to_string())
7015            .use_fips(false)
7016            .use_dual_stack(false)
7017            .accelerate(false)
7018            .use_arn_region(true)
7019            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:my.bucket".to_string())
7020            .build()
7021            .expect("invalid params");
7022        let resolver = crate::config::endpoint::DefaultResolver::new();
7023        let endpoint = resolver.resolve_endpoint(&params);
7024        let error = endpoint.expect_err("expected error: Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `my.bucket` [object lambda with invalid arn - access point name contains invalid character: .]");
7025        assert_eq!(
7026            format!("{}", error),
7027            "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `my.bucket`"
7028        )
7029    }
7030
7031    /// object lambda with invalid arn - access point name contains sub resources
7032    #[test]
7033    fn test_249() {
7034        let params = crate::config::endpoint::Params::builder()
7035            .region("us-west-2".to_string())
7036            .use_fips(false)
7037            .use_dual_stack(false)
7038            .accelerate(false)
7039            .use_arn_region(true)
7040            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybucket:object:foo".to_string())
7041            .build()
7042            .expect("invalid params");
7043        let resolver = crate::config::endpoint::DefaultResolver::new();
7044        let endpoint = resolver.resolve_endpoint(&params);
7045        let error = endpoint.expect_err("expected error: Invalid ARN: The ARN may only contain a single resource component after `accesspoint`. [object lambda with invalid arn - access point name contains sub resources]");
7046        assert_eq!(
7047            format!("{}", error),
7048            "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`."
7049        )
7050    }
7051
7052    /// object lambda with custom endpoint
7053    #[test]
7054    fn test_250() {
7055        let params = crate::config::endpoint::Params::builder()
7056            .region("us-west-2".to_string())
7057            .use_fips(false)
7058            .use_dual_stack(false)
7059            .accelerate(false)
7060            .use_arn_region(false)
7061            .bucket("arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner".to_string())
7062            .endpoint("https://my-endpoint.com".to_string())
7063            .build()
7064            .expect("invalid params");
7065        let resolver = crate::config::endpoint::DefaultResolver::new();
7066        let endpoint = resolver.resolve_endpoint(&params);
7067        let endpoint = endpoint.expect("Expected valid endpoint: https://mybanner-123456789012.my-endpoint.com");
7068        assert_eq!(
7069            endpoint,
7070            ::aws_smithy_types::endpoint::Endpoint::builder()
7071                .url("https://mybanner-123456789012.my-endpoint.com")
7072                .property(
7073                    "authSchemes",
7074                    vec![{
7075                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7076                        out.insert("name".to_string(), "sigv4".to_string().into());
7077                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
7078                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
7079                        out.insert("disableDoubleEncoding".to_string(), true.into());
7080                        out
7081                    }
7082                    .into()]
7083                )
7084                .build()
7085        );
7086    }
7087
7088    /// object lambda arn with region mismatch and UseArnRegion=false
7089    #[test]
7090    fn test_251() {
7091        let params = crate::config::endpoint::Params::builder()
7092            .accelerate(false)
7093            .bucket("arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner".to_string())
7094            .force_path_style(false)
7095            .use_arn_region(false)
7096            .region("us-west-2".to_string())
7097            .use_dual_stack(false)
7098            .use_fips(false)
7099            .build()
7100            .expect("invalid params");
7101        let resolver = crate::config::endpoint::DefaultResolver::new();
7102        let endpoint = resolver.resolve_endpoint(&params);
7103        let error = endpoint.expect_err("expected error: Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false` [object lambda arn with region mismatch and UseArnRegion=false]");
7104        assert_eq!(
7105            format!("{}", error),
7106            "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`"
7107        )
7108    }
7109
7110    /// WriteGetObjectResponse @ us-west-2
7111    #[test]
7112    fn test_252() {
7113        let params = crate::config::endpoint::Params::builder()
7114            .accelerate(false)
7115            .use_object_lambda_endpoint(true)
7116            .region("us-west-2".to_string())
7117            .use_dual_stack(false)
7118            .use_fips(false)
7119            .build()
7120            .expect("invalid params");
7121        let resolver = crate::config::endpoint::DefaultResolver::new();
7122        let endpoint = resolver.resolve_endpoint(&params);
7123        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-object-lambda.us-west-2.amazonaws.com");
7124        assert_eq!(
7125            endpoint,
7126            ::aws_smithy_types::endpoint::Endpoint::builder()
7127                .url("https://s3-object-lambda.us-west-2.amazonaws.com")
7128                .property(
7129                    "authSchemes",
7130                    vec![{
7131                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7132                        out.insert("name".to_string(), "sigv4".to_string().into());
7133                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
7134                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
7135                        out.insert("disableDoubleEncoding".to_string(), true.into());
7136                        out
7137                    }
7138                    .into()]
7139                )
7140                .build()
7141        );
7142    }
7143
7144    /// WriteGetObjectResponse with custom endpoint
7145    #[test]
7146    fn test_253() {
7147        let params = crate::config::endpoint::Params::builder()
7148            .accelerate(false)
7149            .use_object_lambda_endpoint(true)
7150            .endpoint("https://my-endpoint.com".to_string())
7151            .region("us-west-2".to_string())
7152            .use_dual_stack(false)
7153            .use_fips(false)
7154            .build()
7155            .expect("invalid params");
7156        let resolver = crate::config::endpoint::DefaultResolver::new();
7157        let endpoint = resolver.resolve_endpoint(&params);
7158        let endpoint = endpoint.expect("Expected valid endpoint: https://my-endpoint.com");
7159        assert_eq!(
7160            endpoint,
7161            ::aws_smithy_types::endpoint::Endpoint::builder()
7162                .url("https://my-endpoint.com")
7163                .property(
7164                    "authSchemes",
7165                    vec![{
7166                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7167                        out.insert("name".to_string(), "sigv4".to_string().into());
7168                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
7169                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
7170                        out.insert("disableDoubleEncoding".to_string(), true.into());
7171                        out
7172                    }
7173                    .into()]
7174                )
7175                .build()
7176        );
7177    }
7178
7179    /// WriteGetObjectResponse @ us-east-1
7180    #[test]
7181    fn test_254() {
7182        let params = crate::config::endpoint::Params::builder()
7183            .accelerate(false)
7184            .use_object_lambda_endpoint(true)
7185            .region("us-east-1".to_string())
7186            .use_dual_stack(false)
7187            .use_fips(false)
7188            .build()
7189            .expect("invalid params");
7190        let resolver = crate::config::endpoint::DefaultResolver::new();
7191        let endpoint = resolver.resolve_endpoint(&params);
7192        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-object-lambda.us-east-1.amazonaws.com");
7193        assert_eq!(
7194            endpoint,
7195            ::aws_smithy_types::endpoint::Endpoint::builder()
7196                .url("https://s3-object-lambda.us-east-1.amazonaws.com")
7197                .property(
7198                    "authSchemes",
7199                    vec![{
7200                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7201                        out.insert("name".to_string(), "sigv4".to_string().into());
7202                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
7203                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
7204                        out.insert("disableDoubleEncoding".to_string(), true.into());
7205                        out
7206                    }
7207                    .into()]
7208                )
7209                .build()
7210        );
7211    }
7212
7213    /// WriteGetObjectResponse with fips
7214    #[test]
7215    fn test_255() {
7216        let params = crate::config::endpoint::Params::builder()
7217            .accelerate(false)
7218            .use_object_lambda_endpoint(true)
7219            .region("us-east-1".to_string())
7220            .use_dual_stack(false)
7221            .use_fips(true)
7222            .build()
7223            .expect("invalid params");
7224        let resolver = crate::config::endpoint::DefaultResolver::new();
7225        let endpoint = resolver.resolve_endpoint(&params);
7226        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-object-lambda-fips.us-east-1.amazonaws.com");
7227        assert_eq!(
7228            endpoint,
7229            ::aws_smithy_types::endpoint::Endpoint::builder()
7230                .url("https://s3-object-lambda-fips.us-east-1.amazonaws.com")
7231                .property(
7232                    "authSchemes",
7233                    vec![{
7234                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7235                        out.insert("name".to_string(), "sigv4".to_string().into());
7236                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
7237                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
7238                        out.insert("disableDoubleEncoding".to_string(), true.into());
7239                        out
7240                    }
7241                    .into()]
7242                )
7243                .build()
7244        );
7245    }
7246
7247    /// WriteGetObjectResponse with dualstack
7248    #[test]
7249    fn test_256() {
7250        let params = crate::config::endpoint::Params::builder()
7251            .accelerate(false)
7252            .use_object_lambda_endpoint(true)
7253            .region("us-east-1".to_string())
7254            .use_dual_stack(true)
7255            .use_fips(false)
7256            .build()
7257            .expect("invalid params");
7258        let resolver = crate::config::endpoint::DefaultResolver::new();
7259        let endpoint = resolver.resolve_endpoint(&params);
7260        let error = endpoint.expect_err("expected error: S3 Object Lambda does not support Dual-stack [WriteGetObjectResponse with dualstack]");
7261        assert_eq!(format!("{}", error), "S3 Object Lambda does not support Dual-stack")
7262    }
7263
7264    /// WriteGetObjectResponse with accelerate
7265    #[test]
7266    fn test_257() {
7267        let params = crate::config::endpoint::Params::builder()
7268            .accelerate(true)
7269            .use_object_lambda_endpoint(true)
7270            .region("us-east-1".to_string())
7271            .use_dual_stack(false)
7272            .use_fips(false)
7273            .build()
7274            .expect("invalid params");
7275        let resolver = crate::config::endpoint::DefaultResolver::new();
7276        let endpoint = resolver.resolve_endpoint(&params);
7277        let error = endpoint.expect_err("expected error: S3 Object Lambda does not support S3 Accelerate [WriteGetObjectResponse with accelerate]");
7278        assert_eq!(format!("{}", error), "S3 Object Lambda does not support S3 Accelerate")
7279    }
7280
7281    /// WriteGetObjectResponse with fips in CN
7282    #[test]
7283    fn test_258() {
7284        let params = crate::config::endpoint::Params::builder()
7285            .accelerate(false)
7286            .region("cn-north-1".to_string())
7287            .use_object_lambda_endpoint(true)
7288            .use_dual_stack(false)
7289            .use_fips(true)
7290            .build()
7291            .expect("invalid params");
7292        let resolver = crate::config::endpoint::DefaultResolver::new();
7293        let endpoint = resolver.resolve_endpoint(&params);
7294        let error = endpoint.expect_err("expected error: Partition does not support FIPS [WriteGetObjectResponse with fips in CN]");
7295        assert_eq!(format!("{}", error), "Partition does not support FIPS")
7296    }
7297
7298    /// WriteGetObjectResponse with invalid partition
7299    #[test]
7300    fn test_259() {
7301        let params = crate::config::endpoint::Params::builder()
7302            .accelerate(false)
7303            .use_object_lambda_endpoint(true)
7304            .region("not a valid DNS name".to_string())
7305            .use_dual_stack(false)
7306            .use_fips(false)
7307            .build()
7308            .expect("invalid params");
7309        let resolver = crate::config::endpoint::DefaultResolver::new();
7310        let endpoint = resolver.resolve_endpoint(&params);
7311        let error =
7312            endpoint.expect_err("expected error: Invalid region: region was not a valid DNS name. [WriteGetObjectResponse with invalid partition]");
7313        assert_eq!(format!("{}", error), "Invalid region: region was not a valid DNS name.")
7314    }
7315
7316    /// WriteGetObjectResponse with an unknown partition
7317    #[test]
7318    fn test_260() {
7319        let params = crate::config::endpoint::Params::builder()
7320            .accelerate(false)
7321            .use_object_lambda_endpoint(true)
7322            .region("us-east.special".to_string())
7323            .use_dual_stack(false)
7324            .use_fips(false)
7325            .build()
7326            .expect("invalid params");
7327        let resolver = crate::config::endpoint::DefaultResolver::new();
7328        let endpoint = resolver.resolve_endpoint(&params);
7329        let endpoint = endpoint.expect("Expected valid endpoint: https://s3-object-lambda.us-east.special.amazonaws.com");
7330        assert_eq!(
7331            endpoint,
7332            ::aws_smithy_types::endpoint::Endpoint::builder()
7333                .url("https://s3-object-lambda.us-east.special.amazonaws.com")
7334                .property(
7335                    "authSchemes",
7336                    vec![{
7337                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7338                        out.insert("name".to_string(), "sigv4".to_string().into());
7339                        out.insert("signingName".to_string(), "s3-object-lambda".to_string().into());
7340                        out.insert("disableDoubleEncoding".to_string(), true.into());
7341                        out.insert("signingRegion".to_string(), "us-east.special".to_string().into());
7342                        out
7343                    }
7344                    .into()]
7345                )
7346                .build()
7347        );
7348    }
7349
7350    /// S3 Outposts bucketAlias Real Outpost Prod us-west-1
7351    #[test]
7352    fn test_261() {
7353        let params = crate::config::endpoint::Params::builder()
7354            .region("us-west-1".to_string())
7355            .bucket("test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3".to_string())
7356            .use_fips(false)
7357            .use_dual_stack(false)
7358            .accelerate(false)
7359            .build()
7360            .expect("invalid params");
7361        let resolver = crate::config::endpoint::DefaultResolver::new();
7362        let endpoint = resolver.resolve_endpoint(&params);
7363        let endpoint = endpoint.expect("Expected valid endpoint: https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.us-west-1.amazonaws.com");
7364        assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.us-west-1.amazonaws.com")
7365    .property("authSchemes", vec![ {
7366        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7367        out.insert("name".to_string(), "sigv4a".to_string().into());
7368        out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7369        out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
7370        out.insert("disableDoubleEncoding".to_string(), true.into());
7371        out
7372    }.into()
7373    , {
7374        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7375        out.insert("name".to_string(), "sigv4".to_string().into());
7376        out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7377        out.insert("signingRegion".to_string(), "us-west-1".to_string().into());
7378        out.insert("disableDoubleEncoding".to_string(), true.into());
7379        out
7380    }.into()])
7381    .build());
7382    }
7383
7384    /// S3 Outposts bucketAlias Real Outpost Prod ap-east-1
7385    #[test]
7386    fn test_262() {
7387        let params = crate::config::endpoint::Params::builder()
7388            .region("ap-east-1".to_string())
7389            .bucket("test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3".to_string())
7390            .use_fips(false)
7391            .use_dual_stack(false)
7392            .accelerate(false)
7393            .build()
7394            .expect("invalid params");
7395        let resolver = crate::config::endpoint::DefaultResolver::new();
7396        let endpoint = resolver.resolve_endpoint(&params);
7397        let endpoint = endpoint.expect("Expected valid endpoint: https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.ap-east-1.amazonaws.com");
7398        assert_eq!(endpoint, ::aws_smithy_types::endpoint::Endpoint::builder().url("https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.ap-east-1.amazonaws.com")
7399    .property("authSchemes", vec![ {
7400        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7401        out.insert("name".to_string(), "sigv4a".to_string().into());
7402        out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7403        out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
7404        out.insert("disableDoubleEncoding".to_string(), true.into());
7405        out
7406    }.into()
7407    , {
7408        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7409        out.insert("name".to_string(), "sigv4".to_string().into());
7410        out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7411        out.insert("signingRegion".to_string(), "ap-east-1".to_string().into());
7412        out.insert("disableDoubleEncoding".to_string(), true.into());
7413        out
7414    }.into()])
7415    .build());
7416    }
7417
7418    /// S3 Outposts bucketAlias Ec2 Outpost Prod us-east-1
7419    #[test]
7420    fn test_263() {
7421        let params = crate::config::endpoint::Params::builder()
7422            .region("us-east-1".to_string())
7423            .bucket("test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3".to_string())
7424            .use_fips(false)
7425            .use_dual_stack(false)
7426            .accelerate(false)
7427            .build()
7428            .expect("invalid params");
7429        let resolver = crate::config::endpoint::DefaultResolver::new();
7430        let endpoint = resolver.resolve_endpoint(&params);
7431        let endpoint = endpoint.expect("Expected valid endpoint: https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.us-east-1.amazonaws.com");
7432        assert_eq!(
7433            endpoint,
7434            ::aws_smithy_types::endpoint::Endpoint::builder()
7435                .url("https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.us-east-1.amazonaws.com")
7436                .property(
7437                    "authSchemes",
7438                    vec![
7439                        {
7440                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7441                            out.insert("name".to_string(), "sigv4a".to_string().into());
7442                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7443                            out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
7444                            out.insert("disableDoubleEncoding".to_string(), true.into());
7445                            out
7446                        }
7447                        .into(),
7448                        {
7449                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7450                            out.insert("name".to_string(), "sigv4".to_string().into());
7451                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7452                            out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
7453                            out.insert("disableDoubleEncoding".to_string(), true.into());
7454                            out
7455                        }
7456                        .into()
7457                    ]
7458                )
7459                .build()
7460        );
7461    }
7462
7463    /// S3 Outposts bucketAlias Ec2 Outpost Prod me-south-1
7464    #[test]
7465    fn test_264() {
7466        let params = crate::config::endpoint::Params::builder()
7467            .region("me-south-1".to_string())
7468            .bucket("test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3".to_string())
7469            .use_fips(false)
7470            .use_dual_stack(false)
7471            .accelerate(false)
7472            .build()
7473            .expect("invalid params");
7474        let resolver = crate::config::endpoint::DefaultResolver::new();
7475        let endpoint = resolver.resolve_endpoint(&params);
7476        let endpoint = endpoint.expect("Expected valid endpoint: https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.me-south-1.amazonaws.com");
7477        assert_eq!(
7478            endpoint,
7479            ::aws_smithy_types::endpoint::Endpoint::builder()
7480                .url("https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.me-south-1.amazonaws.com")
7481                .property(
7482                    "authSchemes",
7483                    vec![
7484                        {
7485                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7486                            out.insert("name".to_string(), "sigv4a".to_string().into());
7487                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7488                            out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
7489                            out.insert("disableDoubleEncoding".to_string(), true.into());
7490                            out
7491                        }
7492                        .into(),
7493                        {
7494                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7495                            out.insert("name".to_string(), "sigv4".to_string().into());
7496                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7497                            out.insert("signingRegion".to_string(), "me-south-1".to_string().into());
7498                            out.insert("disableDoubleEncoding".to_string(), true.into());
7499                            out
7500                        }
7501                        .into()
7502                    ]
7503                )
7504                .build()
7505        );
7506    }
7507
7508    /// S3 Outposts bucketAlias Real Outpost Beta
7509    #[test]
7510    fn test_265() {
7511        let params = crate::config::endpoint::Params::builder()
7512            .region("us-east-1".to_string())
7513            .bucket("test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3".to_string())
7514            .endpoint("https://example.amazonaws.com".to_string())
7515            .use_fips(false)
7516            .use_dual_stack(false)
7517            .accelerate(false)
7518            .build()
7519            .expect("invalid params");
7520        let resolver = crate::config::endpoint::DefaultResolver::new();
7521        let endpoint = resolver.resolve_endpoint(&params);
7522        let endpoint = endpoint.expect("Expected valid endpoint: https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3.op-0b1d075431d83bebd.example.amazonaws.com");
7523        assert_eq!(
7524            endpoint,
7525            ::aws_smithy_types::endpoint::Endpoint::builder()
7526                .url("https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3.op-0b1d075431d83bebd.example.amazonaws.com")
7527                .property(
7528                    "authSchemes",
7529                    vec![
7530                        {
7531                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7532                            out.insert("name".to_string(), "sigv4a".to_string().into());
7533                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7534                            out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
7535                            out.insert("disableDoubleEncoding".to_string(), true.into());
7536                            out
7537                        }
7538                        .into(),
7539                        {
7540                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7541                            out.insert("name".to_string(), "sigv4".to_string().into());
7542                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7543                            out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
7544                            out.insert("disableDoubleEncoding".to_string(), true.into());
7545                            out
7546                        }
7547                        .into()
7548                    ]
7549                )
7550                .build()
7551        );
7552    }
7553
7554    /// S3 Outposts bucketAlias Ec2 Outpost Beta
7555    #[test]
7556    fn test_266() {
7557        let params = crate::config::endpoint::Params::builder()
7558            .region("us-east-1".to_string())
7559            .bucket("161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3".to_string())
7560            .endpoint("https://example.amazonaws.com".to_string())
7561            .use_fips(false)
7562            .use_dual_stack(false)
7563            .accelerate(false)
7564            .build()
7565            .expect("invalid params");
7566        let resolver = crate::config::endpoint::DefaultResolver::new();
7567        let endpoint = resolver.resolve_endpoint(&params);
7568        let endpoint = endpoint
7569            .expect("Expected valid endpoint: https://161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3.ec2.example.amazonaws.com");
7570        assert_eq!(
7571            endpoint,
7572            ::aws_smithy_types::endpoint::Endpoint::builder()
7573                .url("https://161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3.ec2.example.amazonaws.com")
7574                .property(
7575                    "authSchemes",
7576                    vec![
7577                        {
7578                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7579                            out.insert("name".to_string(), "sigv4a".to_string().into());
7580                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7581                            out.insert("signingRegionSet".to_string(), vec!["*".to_string().into()].into());
7582                            out.insert("disableDoubleEncoding".to_string(), true.into());
7583                            out
7584                        }
7585                        .into(),
7586                        {
7587                            let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7588                            out.insert("name".to_string(), "sigv4".to_string().into());
7589                            out.insert("signingName".to_string(), "s3-outposts".to_string().into());
7590                            out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
7591                            out.insert("disableDoubleEncoding".to_string(), true.into());
7592                            out
7593                        }
7594                        .into()
7595                    ]
7596                )
7597                .build()
7598        );
7599    }
7600
7601    /// S3 Outposts bucketAlias - No endpoint set for beta
7602    #[test]
7603    fn test_267() {
7604        let params = crate::config::endpoint::Params::builder()
7605            .region("us-east-1".to_string())
7606            .bucket("test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3".to_string())
7607            .use_fips(false)
7608            .use_dual_stack(false)
7609            .accelerate(false)
7610            .build()
7611            .expect("invalid params");
7612        let resolver = crate::config::endpoint::DefaultResolver::new();
7613        let endpoint = resolver.resolve_endpoint(&params);
7614        let error = endpoint.expect_err(
7615            "expected error: Expected a endpoint to be specified but no endpoint was found [S3 Outposts bucketAlias - No endpoint set for beta]",
7616        );
7617        assert_eq!(format!("{}", error), "Expected a endpoint to be specified but no endpoint was found")
7618    }
7619
7620    /// S3 Outposts bucketAlias Invalid hardware type
7621    #[test]
7622    fn test_268() {
7623        let params = crate::config::endpoint::Params::builder()
7624            .region("us-east-1".to_string())
7625            .bucket("test-accessp-h0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3".to_string())
7626            .use_fips(false)
7627            .use_dual_stack(false)
7628            .accelerate(false)
7629            .build()
7630            .expect("invalid params");
7631        let resolver = crate::config::endpoint::DefaultResolver::new();
7632        let endpoint = resolver.resolve_endpoint(&params);
7633        let error = endpoint.expect_err(
7634            "expected error: Unrecognized hardware type: \"Expected hardware type o or e but got h\" [S3 Outposts bucketAlias Invalid hardware type]",
7635        );
7636        assert_eq!(
7637            format!("{}", error),
7638            "Unrecognized hardware type: \"Expected hardware type o or e but got h\""
7639        )
7640    }
7641
7642    /// S3 Outposts bucketAlias Special character in Outpost Arn
7643    #[test]
7644    fn test_269() {
7645        let params = crate::config::endpoint::Params::builder()
7646            .region("us-east-1".to_string())
7647            .bucket("test-accessp-o00000754%1d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3".to_string())
7648            .use_fips(false)
7649            .use_dual_stack(false)
7650            .accelerate(false)
7651            .build()
7652            .expect("invalid params");
7653        let resolver = crate::config::endpoint::DefaultResolver::new();
7654        let endpoint = resolver.resolve_endpoint(&params);
7655        let error = endpoint.expect_err("expected error: Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`. [S3 Outposts bucketAlias Special character in Outpost Arn]");
7656        assert_eq!(
7657            format!("{}", error),
7658            "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`."
7659        )
7660    }
7661
7662    /// S3 Outposts bucketAlias - No endpoint set for beta
7663    #[test]
7664    fn test_270() {
7665        let params = crate::config::endpoint::Params::builder()
7666            .region("us-east-1".to_string())
7667            .bucket("test-accessp-e0b1d075431d83bebde8xz5w8ijx1qzlbp3i3ebeta0--op-s3".to_string())
7668            .use_fips(false)
7669            .use_dual_stack(false)
7670            .accelerate(false)
7671            .build()
7672            .expect("invalid params");
7673        let resolver = crate::config::endpoint::DefaultResolver::new();
7674        let endpoint = resolver.resolve_endpoint(&params);
7675        let error = endpoint.expect_err(
7676            "expected error: Expected a endpoint to be specified but no endpoint was found [S3 Outposts bucketAlias - No endpoint set for beta]",
7677        );
7678        assert_eq!(format!("{}", error), "Expected a endpoint to be specified but no endpoint was found")
7679    }
7680
7681    /// S3 Snow with bucket
7682    #[test]
7683    fn test_271() {
7684        let params = crate::config::endpoint::Params::builder()
7685            .region("snow".to_string())
7686            .bucket("bucketName".to_string())
7687            .endpoint("http://10.0.1.12:433".to_string())
7688            .use_fips(false)
7689            .use_dual_stack(false)
7690            .accelerate(false)
7691            .build()
7692            .expect("invalid params");
7693        let resolver = crate::config::endpoint::DefaultResolver::new();
7694        let endpoint = resolver.resolve_endpoint(&params);
7695        let endpoint = endpoint.expect("Expected valid endpoint: http://10.0.1.12:433/bucketName");
7696        assert_eq!(
7697            endpoint,
7698            ::aws_smithy_types::endpoint::Endpoint::builder()
7699                .url("http://10.0.1.12:433/bucketName")
7700                .property(
7701                    "authSchemes",
7702                    vec![{
7703                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7704                        out.insert("name".to_string(), "sigv4".to_string().into());
7705                        out.insert("signingName".to_string(), "s3".to_string().into());
7706                        out.insert("signingRegion".to_string(), "snow".to_string().into());
7707                        out.insert("disableDoubleEncoding".to_string(), true.into());
7708                        out
7709                    }
7710                    .into()]
7711                )
7712                .build()
7713        );
7714    }
7715
7716    /// S3 Snow without bucket
7717    #[test]
7718    fn test_272() {
7719        let params = crate::config::endpoint::Params::builder()
7720            .region("snow".to_string())
7721            .endpoint("https://10.0.1.12:433".to_string())
7722            .use_fips(false)
7723            .use_dual_stack(false)
7724            .accelerate(false)
7725            .build()
7726            .expect("invalid params");
7727        let resolver = crate::config::endpoint::DefaultResolver::new();
7728        let endpoint = resolver.resolve_endpoint(&params);
7729        let endpoint = endpoint.expect("Expected valid endpoint: https://10.0.1.12:433");
7730        assert_eq!(
7731            endpoint,
7732            ::aws_smithy_types::endpoint::Endpoint::builder()
7733                .url("https://10.0.1.12:433")
7734                .property(
7735                    "authSchemes",
7736                    vec![{
7737                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7738                        out.insert("name".to_string(), "sigv4".to_string().into());
7739                        out.insert("signingName".to_string(), "s3".to_string().into());
7740                        out.insert("signingRegion".to_string(), "snow".to_string().into());
7741                        out.insert("disableDoubleEncoding".to_string(), true.into());
7742                        out
7743                    }
7744                    .into()]
7745                )
7746                .build()
7747        );
7748    }
7749
7750    /// S3 Snow no port
7751    #[test]
7752    fn test_273() {
7753        let params = crate::config::endpoint::Params::builder()
7754            .region("snow".to_string())
7755            .bucket("bucketName".to_string())
7756            .endpoint("http://10.0.1.12".to_string())
7757            .use_fips(false)
7758            .use_dual_stack(false)
7759            .accelerate(false)
7760            .build()
7761            .expect("invalid params");
7762        let resolver = crate::config::endpoint::DefaultResolver::new();
7763        let endpoint = resolver.resolve_endpoint(&params);
7764        let endpoint = endpoint.expect("Expected valid endpoint: http://10.0.1.12/bucketName");
7765        assert_eq!(
7766            endpoint,
7767            ::aws_smithy_types::endpoint::Endpoint::builder()
7768                .url("http://10.0.1.12/bucketName")
7769                .property(
7770                    "authSchemes",
7771                    vec![{
7772                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7773                        out.insert("name".to_string(), "sigv4".to_string().into());
7774                        out.insert("signingName".to_string(), "s3".to_string().into());
7775                        out.insert("signingRegion".to_string(), "snow".to_string().into());
7776                        out.insert("disableDoubleEncoding".to_string(), true.into());
7777                        out
7778                    }
7779                    .into()]
7780                )
7781                .build()
7782        );
7783    }
7784
7785    /// S3 Snow dns endpoint
7786    #[test]
7787    fn test_274() {
7788        let params = crate::config::endpoint::Params::builder()
7789            .region("snow".to_string())
7790            .bucket("bucketName".to_string())
7791            .endpoint("https://amazonaws.com".to_string())
7792            .use_fips(false)
7793            .use_dual_stack(false)
7794            .accelerate(false)
7795            .build()
7796            .expect("invalid params");
7797        let resolver = crate::config::endpoint::DefaultResolver::new();
7798        let endpoint = resolver.resolve_endpoint(&params);
7799        let endpoint = endpoint.expect("Expected valid endpoint: https://amazonaws.com/bucketName");
7800        assert_eq!(
7801            endpoint,
7802            ::aws_smithy_types::endpoint::Endpoint::builder()
7803                .url("https://amazonaws.com/bucketName")
7804                .property(
7805                    "authSchemes",
7806                    vec![{
7807                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7808                        out.insert("name".to_string(), "sigv4".to_string().into());
7809                        out.insert("signingName".to_string(), "s3".to_string().into());
7810                        out.insert("signingRegion".to_string(), "snow".to_string().into());
7811                        out.insert("disableDoubleEncoding".to_string(), true.into());
7812                        out
7813                    }
7814                    .into()]
7815                )
7816                .build()
7817        );
7818    }
7819
7820    /// Data Plane with short zone name
7821    #[test]
7822    fn test_275() {
7823        let params = crate::config::endpoint::Params::builder()
7824            .region("us-east-1".to_string())
7825            .bucket("mybucket--abcd-ab1--x-s3".to_string())
7826            .use_fips(false)
7827            .use_dual_stack(false)
7828            .accelerate(false)
7829            .use_s3_express_control_endpoint(false)
7830            .build()
7831            .expect("invalid params");
7832        let resolver = crate::config::endpoint::DefaultResolver::new();
7833        let endpoint = resolver.resolve_endpoint(&params);
7834        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--abcd-ab1--x-s3.s3express-abcd-ab1.us-east-1.amazonaws.com");
7835        assert_eq!(
7836            endpoint,
7837            ::aws_smithy_types::endpoint::Endpoint::builder()
7838                .url("https://mybucket--abcd-ab1--x-s3.s3express-abcd-ab1.us-east-1.amazonaws.com")
7839                .property(
7840                    "authSchemes",
7841                    vec![{
7842                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7843                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
7844                        out.insert("signingName".to_string(), "s3express".to_string().into());
7845                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
7846                        out.insert("disableDoubleEncoding".to_string(), true.into());
7847                        out
7848                    }
7849                    .into()]
7850                )
7851                .property("backend", "S3Express".to_string())
7852                .build()
7853        );
7854    }
7855
7856    /// Data Plane with short zone name china region
7857    #[test]
7858    fn test_276() {
7859        let params = crate::config::endpoint::Params::builder()
7860            .region("cn-north-1".to_string())
7861            .bucket("mybucket--abcd-ab1--x-s3".to_string())
7862            .use_fips(false)
7863            .use_dual_stack(false)
7864            .accelerate(false)
7865            .use_s3_express_control_endpoint(false)
7866            .build()
7867            .expect("invalid params");
7868        let resolver = crate::config::endpoint::DefaultResolver::new();
7869        let endpoint = resolver.resolve_endpoint(&params);
7870        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--abcd-ab1--x-s3.s3express-abcd-ab1.cn-north-1.amazonaws.com.cn");
7871        assert_eq!(
7872            endpoint,
7873            ::aws_smithy_types::endpoint::Endpoint::builder()
7874                .url("https://mybucket--abcd-ab1--x-s3.s3express-abcd-ab1.cn-north-1.amazonaws.com.cn")
7875                .property(
7876                    "authSchemes",
7877                    vec![{
7878                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7879                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
7880                        out.insert("signingName".to_string(), "s3express".to_string().into());
7881                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
7882                        out.insert("disableDoubleEncoding".to_string(), true.into());
7883                        out
7884                    }
7885                    .into()]
7886                )
7887                .property("backend", "S3Express".to_string())
7888                .build()
7889        );
7890    }
7891
7892    /// Data Plane with short zone name with AP
7893    #[test]
7894    fn test_277() {
7895        let params = crate::config::endpoint::Params::builder()
7896            .region("us-east-1".to_string())
7897            .bucket("myaccesspoint--abcd-ab1--xa-s3".to_string())
7898            .use_fips(false)
7899            .use_dual_stack(false)
7900            .accelerate(false)
7901            .use_s3_express_control_endpoint(false)
7902            .build()
7903            .expect("invalid params");
7904        let resolver = crate::config::endpoint::DefaultResolver::new();
7905        let endpoint = resolver.resolve_endpoint(&params);
7906        let endpoint = endpoint.expect("Expected valid endpoint: https://myaccesspoint--abcd-ab1--xa-s3.s3express-abcd-ab1.us-east-1.amazonaws.com");
7907        assert_eq!(
7908            endpoint,
7909            ::aws_smithy_types::endpoint::Endpoint::builder()
7910                .url("https://myaccesspoint--abcd-ab1--xa-s3.s3express-abcd-ab1.us-east-1.amazonaws.com")
7911                .property(
7912                    "authSchemes",
7913                    vec![{
7914                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7915                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
7916                        out.insert("signingName".to_string(), "s3express".to_string().into());
7917                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
7918                        out.insert("disableDoubleEncoding".to_string(), true.into());
7919                        out
7920                    }
7921                    .into()]
7922                )
7923                .property("backend", "S3Express".to_string())
7924                .build()
7925        );
7926    }
7927
7928    /// Data Plane with short zone name with AP china region
7929    #[test]
7930    fn test_278() {
7931        let params = crate::config::endpoint::Params::builder()
7932            .region("cn-north-1".to_string())
7933            .bucket("myaccesspoint--abcd-ab1--xa-s3".to_string())
7934            .use_fips(false)
7935            .use_dual_stack(false)
7936            .accelerate(false)
7937            .use_s3_express_control_endpoint(false)
7938            .build()
7939            .expect("invalid params");
7940        let resolver = crate::config::endpoint::DefaultResolver::new();
7941        let endpoint = resolver.resolve_endpoint(&params);
7942        let endpoint =
7943            endpoint.expect("Expected valid endpoint: https://myaccesspoint--abcd-ab1--xa-s3.s3express-abcd-ab1.cn-north-1.amazonaws.com.cn");
7944        assert_eq!(
7945            endpoint,
7946            ::aws_smithy_types::endpoint::Endpoint::builder()
7947                .url("https://myaccesspoint--abcd-ab1--xa-s3.s3express-abcd-ab1.cn-north-1.amazonaws.com.cn")
7948                .property(
7949                    "authSchemes",
7950                    vec![{
7951                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7952                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
7953                        out.insert("signingName".to_string(), "s3express".to_string().into());
7954                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
7955                        out.insert("disableDoubleEncoding".to_string(), true.into());
7956                        out
7957                    }
7958                    .into()]
7959                )
7960                .property("backend", "S3Express".to_string())
7961                .build()
7962        );
7963    }
7964
7965    /// Data Plane with short zone names (13 chars)
7966    #[test]
7967    fn test_279() {
7968        let params = crate::config::endpoint::Params::builder()
7969            .region("us-west-2".to_string())
7970            .bucket("mybucket--test-zone-ab1--x-s3".to_string())
7971            .use_fips(false)
7972            .use_dual_stack(false)
7973            .accelerate(false)
7974            .use_s3_express_control_endpoint(false)
7975            .build()
7976            .expect("invalid params");
7977        let resolver = crate::config::endpoint::DefaultResolver::new();
7978        let endpoint = resolver.resolve_endpoint(&params);
7979        let endpoint =
7980            endpoint.expect("Expected valid endpoint: https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com");
7981        assert_eq!(
7982            endpoint,
7983            ::aws_smithy_types::endpoint::Endpoint::builder()
7984                .url("https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com")
7985                .property(
7986                    "authSchemes",
7987                    vec![{
7988                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
7989                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
7990                        out.insert("signingName".to_string(), "s3express".to_string().into());
7991                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
7992                        out.insert("disableDoubleEncoding".to_string(), true.into());
7993                        out
7994                    }
7995                    .into()]
7996                )
7997                .property("backend", "S3Express".to_string())
7998                .build()
7999        );
8000    }
8001
8002    /// Data Plane with short zone names (13 chars) with AP
8003    #[test]
8004    fn test_280() {
8005        let params = crate::config::endpoint::Params::builder()
8006            .region("us-west-2".to_string())
8007            .bucket("myaccesspoint--test-zone-ab1--xa-s3".to_string())
8008            .use_fips(false)
8009            .use_dual_stack(false)
8010            .accelerate(false)
8011            .use_s3_express_control_endpoint(false)
8012            .build()
8013            .expect("invalid params");
8014        let resolver = crate::config::endpoint::DefaultResolver::new();
8015        let endpoint = resolver.resolve_endpoint(&params);
8016        let endpoint =
8017            endpoint.expect("Expected valid endpoint: https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com");
8018        assert_eq!(
8019            endpoint,
8020            ::aws_smithy_types::endpoint::Endpoint::builder()
8021                .url("https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com")
8022                .property(
8023                    "authSchemes",
8024                    vec![{
8025                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8026                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8027                        out.insert("signingName".to_string(), "s3express".to_string().into());
8028                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8029                        out.insert("disableDoubleEncoding".to_string(), true.into());
8030                        out
8031                    }
8032                    .into()]
8033                )
8034                .property("backend", "S3Express".to_string())
8035                .build()
8036        );
8037    }
8038
8039    /// Data Plane with medium zone names (14 chars)
8040    #[test]
8041    fn test_281() {
8042        let params = crate::config::endpoint::Params::builder()
8043            .region("us-west-2".to_string())
8044            .bucket("mybucket--test1-zone-ab1--x-s3".to_string())
8045            .use_fips(false)
8046            .use_dual_stack(false)
8047            .accelerate(false)
8048            .use_s3_express_control_endpoint(false)
8049            .build()
8050            .expect("invalid params");
8051        let resolver = crate::config::endpoint::DefaultResolver::new();
8052        let endpoint = resolver.resolve_endpoint(&params);
8053        let endpoint =
8054            endpoint.expect("Expected valid endpoint: https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com");
8055        assert_eq!(
8056            endpoint,
8057            ::aws_smithy_types::endpoint::Endpoint::builder()
8058                .url("https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com")
8059                .property(
8060                    "authSchemes",
8061                    vec![{
8062                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8063                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8064                        out.insert("signingName".to_string(), "s3express".to_string().into());
8065                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8066                        out.insert("disableDoubleEncoding".to_string(), true.into());
8067                        out
8068                    }
8069                    .into()]
8070                )
8071                .property("backend", "S3Express".to_string())
8072                .build()
8073        );
8074    }
8075
8076    /// Data Plane with medium zone names (14 chars) with AP
8077    #[test]
8078    fn test_282() {
8079        let params = crate::config::endpoint::Params::builder()
8080            .region("us-west-2".to_string())
8081            .bucket("myaccesspoint--test1-zone-ab1--xa-s3".to_string())
8082            .use_fips(false)
8083            .use_dual_stack(false)
8084            .accelerate(false)
8085            .use_s3_express_control_endpoint(false)
8086            .build()
8087            .expect("invalid params");
8088        let resolver = crate::config::endpoint::DefaultResolver::new();
8089        let endpoint = resolver.resolve_endpoint(&params);
8090        let endpoint =
8091            endpoint.expect("Expected valid endpoint: https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com");
8092        assert_eq!(
8093            endpoint,
8094            ::aws_smithy_types::endpoint::Endpoint::builder()
8095                .url("https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com")
8096                .property(
8097                    "authSchemes",
8098                    vec![{
8099                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8100                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8101                        out.insert("signingName".to_string(), "s3express".to_string().into());
8102                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8103                        out.insert("disableDoubleEncoding".to_string(), true.into());
8104                        out
8105                    }
8106                    .into()]
8107                )
8108                .property("backend", "S3Express".to_string())
8109                .build()
8110        );
8111    }
8112
8113    /// Data Plane with long zone names (20 chars)
8114    #[test]
8115    fn test_283() {
8116        let params = crate::config::endpoint::Params::builder()
8117            .region("us-west-2".to_string())
8118            .bucket("mybucket--test1-long1-zone-ab1--x-s3".to_string())
8119            .use_fips(false)
8120            .use_dual_stack(false)
8121            .accelerate(false)
8122            .use_s3_express_control_endpoint(false)
8123            .build()
8124            .expect("invalid params");
8125        let resolver = crate::config::endpoint::DefaultResolver::new();
8126        let endpoint = resolver.resolve_endpoint(&params);
8127        let endpoint = endpoint
8128            .expect("Expected valid endpoint: https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com");
8129        assert_eq!(
8130            endpoint,
8131            ::aws_smithy_types::endpoint::Endpoint::builder()
8132                .url("https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com")
8133                .property(
8134                    "authSchemes",
8135                    vec![{
8136                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8137                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8138                        out.insert("signingName".to_string(), "s3express".to_string().into());
8139                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8140                        out.insert("disableDoubleEncoding".to_string(), true.into());
8141                        out
8142                    }
8143                    .into()]
8144                )
8145                .property("backend", "S3Express".to_string())
8146                .build()
8147        );
8148    }
8149
8150    /// Data Plane with long zone names (20 chars)
8151    #[test]
8152    fn test_284() {
8153        let params = crate::config::endpoint::Params::builder()
8154            .region("us-west-2".to_string())
8155            .bucket("myaccesspoint--test1-long1-zone-ab1--xa-s3".to_string())
8156            .use_fips(false)
8157            .use_dual_stack(false)
8158            .accelerate(false)
8159            .use_s3_express_control_endpoint(false)
8160            .build()
8161            .expect("invalid params");
8162        let resolver = crate::config::endpoint::DefaultResolver::new();
8163        let endpoint = resolver.resolve_endpoint(&params);
8164        let endpoint = endpoint.expect(
8165            "Expected valid endpoint: https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com",
8166        );
8167        assert_eq!(
8168            endpoint,
8169            ::aws_smithy_types::endpoint::Endpoint::builder()
8170                .url("https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com")
8171                .property(
8172                    "authSchemes",
8173                    vec![{
8174                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8175                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8176                        out.insert("signingName".to_string(), "s3express".to_string().into());
8177                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8178                        out.insert("disableDoubleEncoding".to_string(), true.into());
8179                        out
8180                    }
8181                    .into()]
8182                )
8183                .property("backend", "S3Express".to_string())
8184                .build()
8185        );
8186    }
8187
8188    /// Data Plane with short zone fips
8189    #[test]
8190    fn test_285() {
8191        let params = crate::config::endpoint::Params::builder()
8192            .region("us-east-1".to_string())
8193            .bucket("mybucket--test-ab1--x-s3".to_string())
8194            .use_fips(true)
8195            .use_dual_stack(false)
8196            .accelerate(false)
8197            .use_s3_express_control_endpoint(false)
8198            .build()
8199            .expect("invalid params");
8200        let resolver = crate::config::endpoint::DefaultResolver::new();
8201        let endpoint = resolver.resolve_endpoint(&params);
8202        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--test-ab1--x-s3.s3express-fips-test-ab1.us-east-1.amazonaws.com");
8203        assert_eq!(
8204            endpoint,
8205            ::aws_smithy_types::endpoint::Endpoint::builder()
8206                .url("https://mybucket--test-ab1--x-s3.s3express-fips-test-ab1.us-east-1.amazonaws.com")
8207                .property(
8208                    "authSchemes",
8209                    vec![{
8210                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8211                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8212                        out.insert("signingName".to_string(), "s3express".to_string().into());
8213                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
8214                        out.insert("disableDoubleEncoding".to_string(), true.into());
8215                        out
8216                    }
8217                    .into()]
8218                )
8219                .property("backend", "S3Express".to_string())
8220                .build()
8221        );
8222    }
8223
8224    /// Data Plane with short zone fips china region
8225    #[test]
8226    fn test_286() {
8227        let params = crate::config::endpoint::Params::builder()
8228            .region("cn-north-1".to_string())
8229            .bucket("mybucket--test-ab1--x-s3".to_string())
8230            .use_fips(true)
8231            .use_dual_stack(false)
8232            .accelerate(false)
8233            .use_s3_express_control_endpoint(false)
8234            .build()
8235            .expect("invalid params");
8236        let resolver = crate::config::endpoint::DefaultResolver::new();
8237        let endpoint = resolver.resolve_endpoint(&params);
8238        let error = endpoint.expect_err("expected error: Partition does not support FIPS [Data Plane with short zone fips china region]");
8239        assert_eq!(format!("{}", error), "Partition does not support FIPS")
8240    }
8241
8242    /// Data Plane with short zone fips with AP
8243    #[test]
8244    fn test_287() {
8245        let params = crate::config::endpoint::Params::builder()
8246            .region("us-east-1".to_string())
8247            .bucket("myaccesspoint--test-ab1--xa-s3".to_string())
8248            .use_fips(true)
8249            .use_dual_stack(false)
8250            .accelerate(false)
8251            .use_s3_express_control_endpoint(false)
8252            .build()
8253            .expect("invalid params");
8254        let resolver = crate::config::endpoint::DefaultResolver::new();
8255        let endpoint = resolver.resolve_endpoint(&params);
8256        let endpoint =
8257            endpoint.expect("Expected valid endpoint: https://myaccesspoint--test-ab1--xa-s3.s3express-fips-test-ab1.us-east-1.amazonaws.com");
8258        assert_eq!(
8259            endpoint,
8260            ::aws_smithy_types::endpoint::Endpoint::builder()
8261                .url("https://myaccesspoint--test-ab1--xa-s3.s3express-fips-test-ab1.us-east-1.amazonaws.com")
8262                .property(
8263                    "authSchemes",
8264                    vec![{
8265                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8266                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8267                        out.insert("signingName".to_string(), "s3express".to_string().into());
8268                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
8269                        out.insert("disableDoubleEncoding".to_string(), true.into());
8270                        out
8271                    }
8272                    .into()]
8273                )
8274                .property("backend", "S3Express".to_string())
8275                .build()
8276        );
8277    }
8278
8279    /// Data Plane with short zone fips with AP china region
8280    #[test]
8281    fn test_288() {
8282        let params = crate::config::endpoint::Params::builder()
8283            .region("cn-north-1".to_string())
8284            .bucket("myaccesspoint--test-ab1--xa-s3".to_string())
8285            .use_fips(true)
8286            .use_dual_stack(false)
8287            .accelerate(false)
8288            .use_s3_express_control_endpoint(false)
8289            .build()
8290            .expect("invalid params");
8291        let resolver = crate::config::endpoint::DefaultResolver::new();
8292        let endpoint = resolver.resolve_endpoint(&params);
8293        let error = endpoint.expect_err("expected error: Partition does not support FIPS [Data Plane with short zone fips with AP china region]");
8294        assert_eq!(format!("{}", error), "Partition does not support FIPS")
8295    }
8296
8297    /// Data Plane with short zone (13 chars) fips
8298    #[test]
8299    fn test_289() {
8300        let params = crate::config::endpoint::Params::builder()
8301            .region("us-west-2".to_string())
8302            .bucket("mybucket--test-zone-ab1--x-s3".to_string())
8303            .use_fips(true)
8304            .use_dual_stack(false)
8305            .accelerate(false)
8306            .use_s3_express_control_endpoint(false)
8307            .build()
8308            .expect("invalid params");
8309        let resolver = crate::config::endpoint::DefaultResolver::new();
8310        let endpoint = resolver.resolve_endpoint(&params);
8311        let endpoint =
8312            endpoint.expect("Expected valid endpoint: https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com");
8313        assert_eq!(
8314            endpoint,
8315            ::aws_smithy_types::endpoint::Endpoint::builder()
8316                .url("https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com")
8317                .property(
8318                    "authSchemes",
8319                    vec![{
8320                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8321                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8322                        out.insert("signingName".to_string(), "s3express".to_string().into());
8323                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8324                        out.insert("disableDoubleEncoding".to_string(), true.into());
8325                        out
8326                    }
8327                    .into()]
8328                )
8329                .property("backend", "S3Express".to_string())
8330                .build()
8331        );
8332    }
8333
8334    /// Data Plane with short zone (13 chars) fips with AP
8335    #[test]
8336    fn test_290() {
8337        let params = crate::config::endpoint::Params::builder()
8338            .region("us-west-2".to_string())
8339            .bucket("myaccesspoint--test-zone-ab1--xa-s3".to_string())
8340            .use_fips(true)
8341            .use_dual_stack(false)
8342            .accelerate(false)
8343            .use_s3_express_control_endpoint(false)
8344            .build()
8345            .expect("invalid params");
8346        let resolver = crate::config::endpoint::DefaultResolver::new();
8347        let endpoint = resolver.resolve_endpoint(&params);
8348        let endpoint = endpoint
8349            .expect("Expected valid endpoint: https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com");
8350        assert_eq!(
8351            endpoint,
8352            ::aws_smithy_types::endpoint::Endpoint::builder()
8353                .url("https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com")
8354                .property(
8355                    "authSchemes",
8356                    vec![{
8357                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8358                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8359                        out.insert("signingName".to_string(), "s3express".to_string().into());
8360                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8361                        out.insert("disableDoubleEncoding".to_string(), true.into());
8362                        out
8363                    }
8364                    .into()]
8365                )
8366                .property("backend", "S3Express".to_string())
8367                .build()
8368        );
8369    }
8370
8371    /// Data Plane with medium zone (14 chars) fips
8372    #[test]
8373    fn test_291() {
8374        let params = crate::config::endpoint::Params::builder()
8375            .region("us-west-2".to_string())
8376            .bucket("mybucket--test1-zone-ab1--x-s3".to_string())
8377            .use_fips(true)
8378            .use_dual_stack(false)
8379            .accelerate(false)
8380            .use_s3_express_control_endpoint(false)
8381            .build()
8382            .expect("invalid params");
8383        let resolver = crate::config::endpoint::DefaultResolver::new();
8384        let endpoint = resolver.resolve_endpoint(&params);
8385        let endpoint =
8386            endpoint.expect("Expected valid endpoint: https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com");
8387        assert_eq!(
8388            endpoint,
8389            ::aws_smithy_types::endpoint::Endpoint::builder()
8390                .url("https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com")
8391                .property(
8392                    "authSchemes",
8393                    vec![{
8394                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8395                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8396                        out.insert("signingName".to_string(), "s3express".to_string().into());
8397                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8398                        out.insert("disableDoubleEncoding".to_string(), true.into());
8399                        out
8400                    }
8401                    .into()]
8402                )
8403                .property("backend", "S3Express".to_string())
8404                .build()
8405        );
8406    }
8407
8408    /// Data Plane with medium zone (14 chars) fips with AP
8409    #[test]
8410    fn test_292() {
8411        let params = crate::config::endpoint::Params::builder()
8412            .region("us-west-2".to_string())
8413            .bucket("myaccesspoint--test1-zone-ab1--xa-s3".to_string())
8414            .use_fips(true)
8415            .use_dual_stack(false)
8416            .accelerate(false)
8417            .use_s3_express_control_endpoint(false)
8418            .build()
8419            .expect("invalid params");
8420        let resolver = crate::config::endpoint::DefaultResolver::new();
8421        let endpoint = resolver.resolve_endpoint(&params);
8422        let endpoint = endpoint
8423            .expect("Expected valid endpoint: https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com");
8424        assert_eq!(
8425            endpoint,
8426            ::aws_smithy_types::endpoint::Endpoint::builder()
8427                .url("https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com")
8428                .property(
8429                    "authSchemes",
8430                    vec![{
8431                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8432                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8433                        out.insert("signingName".to_string(), "s3express".to_string().into());
8434                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8435                        out.insert("disableDoubleEncoding".to_string(), true.into());
8436                        out
8437                    }
8438                    .into()]
8439                )
8440                .property("backend", "S3Express".to_string())
8441                .build()
8442        );
8443    }
8444
8445    /// Data Plane with long zone (20 chars) fips
8446    #[test]
8447    fn test_293() {
8448        let params = crate::config::endpoint::Params::builder()
8449            .region("us-west-2".to_string())
8450            .bucket("mybucket--test1-long1-zone-ab1--x-s3".to_string())
8451            .use_fips(true)
8452            .use_dual_stack(false)
8453            .accelerate(false)
8454            .use_s3_express_control_endpoint(false)
8455            .build()
8456            .expect("invalid params");
8457        let resolver = crate::config::endpoint::DefaultResolver::new();
8458        let endpoint = resolver.resolve_endpoint(&params);
8459        let endpoint = endpoint.expect(
8460            "Expected valid endpoint: https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com",
8461        );
8462        assert_eq!(
8463            endpoint,
8464            ::aws_smithy_types::endpoint::Endpoint::builder()
8465                .url("https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com")
8466                .property(
8467                    "authSchemes",
8468                    vec![{
8469                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8470                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8471                        out.insert("signingName".to_string(), "s3express".to_string().into());
8472                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8473                        out.insert("disableDoubleEncoding".to_string(), true.into());
8474                        out
8475                    }
8476                    .into()]
8477                )
8478                .property("backend", "S3Express".to_string())
8479                .build()
8480        );
8481    }
8482
8483    /// Data Plane with long zone (20 chars) fips with AP
8484    #[test]
8485    fn test_294() {
8486        let params = crate::config::endpoint::Params::builder()
8487            .region("us-west-2".to_string())
8488            .bucket("myaccesspoint--test1-long1-zone-ab1--xa-s3".to_string())
8489            .use_fips(true)
8490            .use_dual_stack(false)
8491            .accelerate(false)
8492            .use_s3_express_control_endpoint(false)
8493            .build()
8494            .expect("invalid params");
8495        let resolver = crate::config::endpoint::DefaultResolver::new();
8496        let endpoint = resolver.resolve_endpoint(&params);
8497        let endpoint = endpoint.expect(
8498            "Expected valid endpoint: https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com",
8499        );
8500        assert_eq!(
8501            endpoint,
8502            ::aws_smithy_types::endpoint::Endpoint::builder()
8503                .url("https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com")
8504                .property(
8505                    "authSchemes",
8506                    vec![{
8507                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8508                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8509                        out.insert("signingName".to_string(), "s3express".to_string().into());
8510                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8511                        out.insert("disableDoubleEncoding".to_string(), true.into());
8512                        out
8513                    }
8514                    .into()]
8515                )
8516                .property("backend", "S3Express".to_string())
8517                .build()
8518        );
8519    }
8520
8521    /// Data Plane with long AZ
8522    #[test]
8523    fn test_295() {
8524        let params = crate::config::endpoint::Params::builder()
8525            .region("us-west-2".to_string())
8526            .bucket("mybucket--test1-az1--x-s3".to_string())
8527            .use_fips(false)
8528            .use_dual_stack(false)
8529            .accelerate(false)
8530            .use_s3_express_control_endpoint(false)
8531            .build()
8532            .expect("invalid params");
8533        let resolver = crate::config::endpoint::DefaultResolver::new();
8534        let endpoint = resolver.resolve_endpoint(&params);
8535        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--test1-az1--x-s3.s3express-test1-az1.us-west-2.amazonaws.com");
8536        assert_eq!(
8537            endpoint,
8538            ::aws_smithy_types::endpoint::Endpoint::builder()
8539                .url("https://mybucket--test1-az1--x-s3.s3express-test1-az1.us-west-2.amazonaws.com")
8540                .property(
8541                    "authSchemes",
8542                    vec![{
8543                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8544                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8545                        out.insert("signingName".to_string(), "s3express".to_string().into());
8546                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8547                        out.insert("disableDoubleEncoding".to_string(), true.into());
8548                        out
8549                    }
8550                    .into()]
8551                )
8552                .property("backend", "S3Express".to_string())
8553                .build()
8554        );
8555    }
8556
8557    /// Data Plane with long AZ with AP
8558    #[test]
8559    fn test_296() {
8560        let params = crate::config::endpoint::Params::builder()
8561            .region("us-west-2".to_string())
8562            .bucket("myaccesspoint--test1-az1--xa-s3".to_string())
8563            .use_fips(false)
8564            .use_dual_stack(false)
8565            .accelerate(false)
8566            .use_s3_express_control_endpoint(false)
8567            .build()
8568            .expect("invalid params");
8569        let resolver = crate::config::endpoint::DefaultResolver::new();
8570        let endpoint = resolver.resolve_endpoint(&params);
8571        let endpoint =
8572            endpoint.expect("Expected valid endpoint: https://myaccesspoint--test1-az1--xa-s3.s3express-test1-az1.us-west-2.amazonaws.com");
8573        assert_eq!(
8574            endpoint,
8575            ::aws_smithy_types::endpoint::Endpoint::builder()
8576                .url("https://myaccesspoint--test1-az1--xa-s3.s3express-test1-az1.us-west-2.amazonaws.com")
8577                .property(
8578                    "authSchemes",
8579                    vec![{
8580                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8581                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8582                        out.insert("signingName".to_string(), "s3express".to_string().into());
8583                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8584                        out.insert("disableDoubleEncoding".to_string(), true.into());
8585                        out
8586                    }
8587                    .into()]
8588                )
8589                .property("backend", "S3Express".to_string())
8590                .build()
8591        );
8592    }
8593
8594    /// Data Plane with long AZ fips
8595    #[test]
8596    fn test_297() {
8597        let params = crate::config::endpoint::Params::builder()
8598            .region("us-west-2".to_string())
8599            .bucket("mybucket--test1-az1--x-s3".to_string())
8600            .use_fips(true)
8601            .use_dual_stack(false)
8602            .accelerate(false)
8603            .use_s3_express_control_endpoint(false)
8604            .build()
8605            .expect("invalid params");
8606        let resolver = crate::config::endpoint::DefaultResolver::new();
8607        let endpoint = resolver.resolve_endpoint(&params);
8608        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--test1-az1--x-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com");
8609        assert_eq!(
8610            endpoint,
8611            ::aws_smithy_types::endpoint::Endpoint::builder()
8612                .url("https://mybucket--test1-az1--x-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com")
8613                .property(
8614                    "authSchemes",
8615                    vec![{
8616                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8617                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8618                        out.insert("signingName".to_string(), "s3express".to_string().into());
8619                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8620                        out.insert("disableDoubleEncoding".to_string(), true.into());
8621                        out
8622                    }
8623                    .into()]
8624                )
8625                .property("backend", "S3Express".to_string())
8626                .build()
8627        );
8628    }
8629
8630    /// Data Plane with long AZ fips with AP
8631    #[test]
8632    fn test_298() {
8633        let params = crate::config::endpoint::Params::builder()
8634            .region("us-west-2".to_string())
8635            .bucket("myaccesspoint--test1-az1--xa-s3".to_string())
8636            .use_fips(true)
8637            .use_dual_stack(false)
8638            .accelerate(false)
8639            .use_s3_express_control_endpoint(false)
8640            .build()
8641            .expect("invalid params");
8642        let resolver = crate::config::endpoint::DefaultResolver::new();
8643        let endpoint = resolver.resolve_endpoint(&params);
8644        let endpoint =
8645            endpoint.expect("Expected valid endpoint: https://myaccesspoint--test1-az1--xa-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com");
8646        assert_eq!(
8647            endpoint,
8648            ::aws_smithy_types::endpoint::Endpoint::builder()
8649                .url("https://myaccesspoint--test1-az1--xa-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com")
8650                .property(
8651                    "authSchemes",
8652                    vec![{
8653                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8654                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
8655                        out.insert("signingName".to_string(), "s3express".to_string().into());
8656                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8657                        out.insert("disableDoubleEncoding".to_string(), true.into());
8658                        out
8659                    }
8660                    .into()]
8661                )
8662                .property("backend", "S3Express".to_string())
8663                .build()
8664        );
8665    }
8666
8667    /// Control plane with short AZ bucket
8668    #[test]
8669    fn test_299() {
8670        let params = crate::config::endpoint::Params::builder()
8671            .region("us-east-1".to_string())
8672            .bucket("mybucket--test-ab1--x-s3".to_string())
8673            .use_fips(false)
8674            .use_dual_stack(false)
8675            .accelerate(false)
8676            .use_s3_express_control_endpoint(true)
8677            .disable_s3_express_session_auth(false)
8678            .build()
8679            .expect("invalid params");
8680        let resolver = crate::config::endpoint::DefaultResolver::new();
8681        let endpoint = resolver.resolve_endpoint(&params);
8682        let endpoint = endpoint.expect("Expected valid endpoint: https://s3express-control.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3");
8683        assert_eq!(
8684            endpoint,
8685            ::aws_smithy_types::endpoint::Endpoint::builder()
8686                .url("https://s3express-control.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3")
8687                .property(
8688                    "authSchemes",
8689                    vec![{
8690                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8691                        out.insert("name".to_string(), "sigv4".to_string().into());
8692                        out.insert("signingName".to_string(), "s3express".to_string().into());
8693                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
8694                        out.insert("disableDoubleEncoding".to_string(), true.into());
8695                        out
8696                    }
8697                    .into()]
8698                )
8699                .property("backend", "S3Express".to_string())
8700                .build()
8701        );
8702    }
8703
8704    /// Control plane with short AZ bucket china region
8705    #[test]
8706    fn test_300() {
8707        let params = crate::config::endpoint::Params::builder()
8708            .region("cn-north-1".to_string())
8709            .bucket("mybucket--test-ab1--x-s3".to_string())
8710            .use_fips(false)
8711            .use_dual_stack(false)
8712            .accelerate(false)
8713            .use_s3_express_control_endpoint(true)
8714            .disable_s3_express_session_auth(false)
8715            .build()
8716            .expect("invalid params");
8717        let resolver = crate::config::endpoint::DefaultResolver::new();
8718        let endpoint = resolver.resolve_endpoint(&params);
8719        let endpoint = endpoint.expect("Expected valid endpoint: https://s3express-control.cn-north-1.amazonaws.com.cn/mybucket--test-ab1--x-s3");
8720        assert_eq!(
8721            endpoint,
8722            ::aws_smithy_types::endpoint::Endpoint::builder()
8723                .url("https://s3express-control.cn-north-1.amazonaws.com.cn/mybucket--test-ab1--x-s3")
8724                .property(
8725                    "authSchemes",
8726                    vec![{
8727                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8728                        out.insert("name".to_string(), "sigv4".to_string().into());
8729                        out.insert("signingName".to_string(), "s3express".to_string().into());
8730                        out.insert("signingRegion".to_string(), "cn-north-1".to_string().into());
8731                        out.insert("disableDoubleEncoding".to_string(), true.into());
8732                        out
8733                    }
8734                    .into()]
8735                )
8736                .property("backend", "S3Express".to_string())
8737                .build()
8738        );
8739    }
8740
8741    /// Control plane with short AZ bucket and fips
8742    #[test]
8743    fn test_301() {
8744        let params = crate::config::endpoint::Params::builder()
8745            .region("us-east-1".to_string())
8746            .bucket("mybucket--test-ab1--x-s3".to_string())
8747            .use_fips(true)
8748            .use_dual_stack(false)
8749            .accelerate(false)
8750            .use_s3_express_control_endpoint(true)
8751            .disable_s3_express_session_auth(false)
8752            .build()
8753            .expect("invalid params");
8754        let resolver = crate::config::endpoint::DefaultResolver::new();
8755        let endpoint = resolver.resolve_endpoint(&params);
8756        let endpoint = endpoint.expect("Expected valid endpoint: https://s3express-control-fips.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3");
8757        assert_eq!(
8758            endpoint,
8759            ::aws_smithy_types::endpoint::Endpoint::builder()
8760                .url("https://s3express-control-fips.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3")
8761                .property(
8762                    "authSchemes",
8763                    vec![{
8764                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8765                        out.insert("name".to_string(), "sigv4".to_string().into());
8766                        out.insert("signingName".to_string(), "s3express".to_string().into());
8767                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
8768                        out.insert("disableDoubleEncoding".to_string(), true.into());
8769                        out
8770                    }
8771                    .into()]
8772                )
8773                .property("backend", "S3Express".to_string())
8774                .build()
8775        );
8776    }
8777
8778    /// Control plane with short AZ bucket and fips china region
8779    #[test]
8780    fn test_302() {
8781        let params = crate::config::endpoint::Params::builder()
8782            .region("cn-north-1".to_string())
8783            .bucket("mybucket--test-ab1--x-s3".to_string())
8784            .use_fips(true)
8785            .use_dual_stack(false)
8786            .accelerate(false)
8787            .use_s3_express_control_endpoint(true)
8788            .disable_s3_express_session_auth(false)
8789            .build()
8790            .expect("invalid params");
8791        let resolver = crate::config::endpoint::DefaultResolver::new();
8792        let endpoint = resolver.resolve_endpoint(&params);
8793        let error = endpoint.expect_err("expected error: Partition does not support FIPS [Control plane with short AZ bucket and fips china region]");
8794        assert_eq!(format!("{}", error), "Partition does not support FIPS")
8795    }
8796
8797    /// Control plane without bucket
8798    #[test]
8799    fn test_303() {
8800        let params = crate::config::endpoint::Params::builder()
8801            .region("us-east-1".to_string())
8802            .use_fips(false)
8803            .use_dual_stack(false)
8804            .accelerate(false)
8805            .use_s3_express_control_endpoint(true)
8806            .disable_s3_express_session_auth(false)
8807            .build()
8808            .expect("invalid params");
8809        let resolver = crate::config::endpoint::DefaultResolver::new();
8810        let endpoint = resolver.resolve_endpoint(&params);
8811        let endpoint = endpoint.expect("Expected valid endpoint: https://s3express-control.us-east-1.amazonaws.com");
8812        assert_eq!(
8813            endpoint,
8814            ::aws_smithy_types::endpoint::Endpoint::builder()
8815                .url("https://s3express-control.us-east-1.amazonaws.com")
8816                .property(
8817                    "authSchemes",
8818                    vec![{
8819                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8820                        out.insert("name".to_string(), "sigv4".to_string().into());
8821                        out.insert("signingName".to_string(), "s3express".to_string().into());
8822                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
8823                        out.insert("disableDoubleEncoding".to_string(), true.into());
8824                        out
8825                    }
8826                    .into()]
8827                )
8828                .property("backend", "S3Express".to_string())
8829                .build()
8830        );
8831    }
8832
8833    /// Control plane without bucket and fips
8834    #[test]
8835    fn test_304() {
8836        let params = crate::config::endpoint::Params::builder()
8837            .region("us-east-1".to_string())
8838            .use_fips(true)
8839            .use_dual_stack(false)
8840            .accelerate(false)
8841            .use_s3_express_control_endpoint(true)
8842            .disable_s3_express_session_auth(false)
8843            .build()
8844            .expect("invalid params");
8845        let resolver = crate::config::endpoint::DefaultResolver::new();
8846        let endpoint = resolver.resolve_endpoint(&params);
8847        let endpoint = endpoint.expect("Expected valid endpoint: https://s3express-control-fips.us-east-1.amazonaws.com");
8848        assert_eq!(
8849            endpoint,
8850            ::aws_smithy_types::endpoint::Endpoint::builder()
8851                .url("https://s3express-control-fips.us-east-1.amazonaws.com")
8852                .property(
8853                    "authSchemes",
8854                    vec![{
8855                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8856                        out.insert("name".to_string(), "sigv4".to_string().into());
8857                        out.insert("signingName".to_string(), "s3express".to_string().into());
8858                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
8859                        out.insert("disableDoubleEncoding".to_string(), true.into());
8860                        out
8861                    }
8862                    .into()]
8863                )
8864                .property("backend", "S3Express".to_string())
8865                .build()
8866        );
8867    }
8868
8869    /// Data Plane sigv4 auth with short AZ
8870    #[test]
8871    fn test_305() {
8872        let params = crate::config::endpoint::Params::builder()
8873            .region("us-west-2".to_string())
8874            .bucket("mybucket--usw2-az1--x-s3".to_string())
8875            .use_fips(false)
8876            .use_dual_stack(false)
8877            .accelerate(false)
8878            .disable_s3_express_session_auth(true)
8879            .build()
8880            .expect("invalid params");
8881        let resolver = crate::config::endpoint::DefaultResolver::new();
8882        let endpoint = resolver.resolve_endpoint(&params);
8883        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.us-west-2.amazonaws.com");
8884        assert_eq!(
8885            endpoint,
8886            ::aws_smithy_types::endpoint::Endpoint::builder()
8887                .url("https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.us-west-2.amazonaws.com")
8888                .property(
8889                    "authSchemes",
8890                    vec![{
8891                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8892                        out.insert("name".to_string(), "sigv4".to_string().into());
8893                        out.insert("signingName".to_string(), "s3express".to_string().into());
8894                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8895                        out.insert("disableDoubleEncoding".to_string(), true.into());
8896                        out
8897                    }
8898                    .into()]
8899                )
8900                .property("backend", "S3Express".to_string())
8901                .build()
8902        );
8903    }
8904
8905    /// Data Plane sigv4 auth with short AZ with AP
8906    #[test]
8907    fn test_306() {
8908        let params = crate::config::endpoint::Params::builder()
8909            .region("us-west-2".to_string())
8910            .bucket("myaccesspoint--usw2-az1--xa-s3".to_string())
8911            .use_fips(false)
8912            .use_dual_stack(false)
8913            .accelerate(false)
8914            .disable_s3_express_session_auth(true)
8915            .build()
8916            .expect("invalid params");
8917        let resolver = crate::config::endpoint::DefaultResolver::new();
8918        let endpoint = resolver.resolve_endpoint(&params);
8919        let endpoint = endpoint.expect("Expected valid endpoint: https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.us-west-2.amazonaws.com");
8920        assert_eq!(
8921            endpoint,
8922            ::aws_smithy_types::endpoint::Endpoint::builder()
8923                .url("https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.us-west-2.amazonaws.com")
8924                .property(
8925                    "authSchemes",
8926                    vec![{
8927                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8928                        out.insert("name".to_string(), "sigv4".to_string().into());
8929                        out.insert("signingName".to_string(), "s3express".to_string().into());
8930                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8931                        out.insert("disableDoubleEncoding".to_string(), true.into());
8932                        out
8933                    }
8934                    .into()]
8935                )
8936                .property("backend", "S3Express".to_string())
8937                .build()
8938        );
8939    }
8940
8941    /// Data Plane sigv4 auth with short zone (13 chars)
8942    #[test]
8943    fn test_307() {
8944        let params = crate::config::endpoint::Params::builder()
8945            .region("us-west-2".to_string())
8946            .bucket("mybucket--test-zone-ab1--x-s3".to_string())
8947            .use_fips(false)
8948            .use_dual_stack(false)
8949            .accelerate(false)
8950            .disable_s3_express_session_auth(true)
8951            .build()
8952            .expect("invalid params");
8953        let resolver = crate::config::endpoint::DefaultResolver::new();
8954        let endpoint = resolver.resolve_endpoint(&params);
8955        let endpoint =
8956            endpoint.expect("Expected valid endpoint: https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com");
8957        assert_eq!(
8958            endpoint,
8959            ::aws_smithy_types::endpoint::Endpoint::builder()
8960                .url("https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com")
8961                .property(
8962                    "authSchemes",
8963                    vec![{
8964                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
8965                        out.insert("name".to_string(), "sigv4".to_string().into());
8966                        out.insert("signingName".to_string(), "s3express".to_string().into());
8967                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
8968                        out.insert("disableDoubleEncoding".to_string(), true.into());
8969                        out
8970                    }
8971                    .into()]
8972                )
8973                .property("backend", "S3Express".to_string())
8974                .build()
8975        );
8976    }
8977
8978    /// Data Plane sigv4 auth with short zone (13 chars) with AP
8979    #[test]
8980    fn test_308() {
8981        let params = crate::config::endpoint::Params::builder()
8982            .region("us-west-2".to_string())
8983            .bucket("myaccesspoint--test-zone-ab1--xa-s3".to_string())
8984            .use_fips(false)
8985            .use_dual_stack(false)
8986            .accelerate(false)
8987            .disable_s3_express_session_auth(true)
8988            .build()
8989            .expect("invalid params");
8990        let resolver = crate::config::endpoint::DefaultResolver::new();
8991        let endpoint = resolver.resolve_endpoint(&params);
8992        let endpoint =
8993            endpoint.expect("Expected valid endpoint: https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com");
8994        assert_eq!(
8995            endpoint,
8996            ::aws_smithy_types::endpoint::Endpoint::builder()
8997                .url("https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.us-west-2.amazonaws.com")
8998                .property(
8999                    "authSchemes",
9000                    vec![{
9001                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9002                        out.insert("name".to_string(), "sigv4".to_string().into());
9003                        out.insert("signingName".to_string(), "s3express".to_string().into());
9004                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9005                        out.insert("disableDoubleEncoding".to_string(), true.into());
9006                        out
9007                    }
9008                    .into()]
9009                )
9010                .property("backend", "S3Express".to_string())
9011                .build()
9012        );
9013    }
9014
9015    /// Data Plane sigv4 auth with short AZ fips
9016    #[test]
9017    fn test_309() {
9018        let params = crate::config::endpoint::Params::builder()
9019            .region("us-west-2".to_string())
9020            .bucket("mybucket--usw2-az1--x-s3".to_string())
9021            .use_fips(true)
9022            .use_dual_stack(false)
9023            .accelerate(false)
9024            .disable_s3_express_session_auth(true)
9025            .build()
9026            .expect("invalid params");
9027        let resolver = crate::config::endpoint::DefaultResolver::new();
9028        let endpoint = resolver.resolve_endpoint(&params);
9029        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.us-west-2.amazonaws.com");
9030        assert_eq!(
9031            endpoint,
9032            ::aws_smithy_types::endpoint::Endpoint::builder()
9033                .url("https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.us-west-2.amazonaws.com")
9034                .property(
9035                    "authSchemes",
9036                    vec![{
9037                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9038                        out.insert("name".to_string(), "sigv4".to_string().into());
9039                        out.insert("signingName".to_string(), "s3express".to_string().into());
9040                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9041                        out.insert("disableDoubleEncoding".to_string(), true.into());
9042                        out
9043                    }
9044                    .into()]
9045                )
9046                .property("backend", "S3Express".to_string())
9047                .build()
9048        );
9049    }
9050
9051    /// Data Plane sigv4 auth with short AZ fips with AP
9052    #[test]
9053    fn test_310() {
9054        let params = crate::config::endpoint::Params::builder()
9055            .region("us-west-2".to_string())
9056            .bucket("myaccesspoint--usw2-az1--xa-s3".to_string())
9057            .use_fips(true)
9058            .use_dual_stack(false)
9059            .accelerate(false)
9060            .disable_s3_express_session_auth(true)
9061            .build()
9062            .expect("invalid params");
9063        let resolver = crate::config::endpoint::DefaultResolver::new();
9064        let endpoint = resolver.resolve_endpoint(&params);
9065        let endpoint =
9066            endpoint.expect("Expected valid endpoint: https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.us-west-2.amazonaws.com");
9067        assert_eq!(
9068            endpoint,
9069            ::aws_smithy_types::endpoint::Endpoint::builder()
9070                .url("https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.us-west-2.amazonaws.com")
9071                .property(
9072                    "authSchemes",
9073                    vec![{
9074                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9075                        out.insert("name".to_string(), "sigv4".to_string().into());
9076                        out.insert("signingName".to_string(), "s3express".to_string().into());
9077                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9078                        out.insert("disableDoubleEncoding".to_string(), true.into());
9079                        out
9080                    }
9081                    .into()]
9082                )
9083                .property("backend", "S3Express".to_string())
9084                .build()
9085        );
9086    }
9087
9088    /// Data Plane sigv4 auth with short zone (13 chars) fips
9089    #[test]
9090    fn test_311() {
9091        let params = crate::config::endpoint::Params::builder()
9092            .region("us-west-2".to_string())
9093            .bucket("mybucket--test-zone-ab1--x-s3".to_string())
9094            .use_fips(true)
9095            .use_dual_stack(false)
9096            .accelerate(false)
9097            .disable_s3_express_session_auth(true)
9098            .build()
9099            .expect("invalid params");
9100        let resolver = crate::config::endpoint::DefaultResolver::new();
9101        let endpoint = resolver.resolve_endpoint(&params);
9102        let endpoint =
9103            endpoint.expect("Expected valid endpoint: https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com");
9104        assert_eq!(
9105            endpoint,
9106            ::aws_smithy_types::endpoint::Endpoint::builder()
9107                .url("https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com")
9108                .property(
9109                    "authSchemes",
9110                    vec![{
9111                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9112                        out.insert("name".to_string(), "sigv4".to_string().into());
9113                        out.insert("signingName".to_string(), "s3express".to_string().into());
9114                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9115                        out.insert("disableDoubleEncoding".to_string(), true.into());
9116                        out
9117                    }
9118                    .into()]
9119                )
9120                .property("backend", "S3Express".to_string())
9121                .build()
9122        );
9123    }
9124
9125    /// Data Plane sigv4 auth with short zone (13 chars) fips with AP
9126    #[test]
9127    fn test_312() {
9128        let params = crate::config::endpoint::Params::builder()
9129            .region("us-west-2".to_string())
9130            .bucket("myaccesspoint--test-zone-ab1--xa-s3".to_string())
9131            .use_fips(true)
9132            .use_dual_stack(false)
9133            .accelerate(false)
9134            .disable_s3_express_session_auth(true)
9135            .build()
9136            .expect("invalid params");
9137        let resolver = crate::config::endpoint::DefaultResolver::new();
9138        let endpoint = resolver.resolve_endpoint(&params);
9139        let endpoint = endpoint
9140            .expect("Expected valid endpoint: https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com");
9141        assert_eq!(
9142            endpoint,
9143            ::aws_smithy_types::endpoint::Endpoint::builder()
9144                .url("https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.us-west-2.amazonaws.com")
9145                .property(
9146                    "authSchemes",
9147                    vec![{
9148                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9149                        out.insert("name".to_string(), "sigv4".to_string().into());
9150                        out.insert("signingName".to_string(), "s3express".to_string().into());
9151                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9152                        out.insert("disableDoubleEncoding".to_string(), true.into());
9153                        out
9154                    }
9155                    .into()]
9156                )
9157                .property("backend", "S3Express".to_string())
9158                .build()
9159        );
9160    }
9161
9162    /// Data Plane sigv4 auth with long AZ
9163    #[test]
9164    fn test_313() {
9165        let params = crate::config::endpoint::Params::builder()
9166            .region("us-west-2".to_string())
9167            .bucket("mybucket--test1-az1--x-s3".to_string())
9168            .use_fips(false)
9169            .use_dual_stack(false)
9170            .accelerate(false)
9171            .use_s3_express_control_endpoint(false)
9172            .disable_s3_express_session_auth(true)
9173            .build()
9174            .expect("invalid params");
9175        let resolver = crate::config::endpoint::DefaultResolver::new();
9176        let endpoint = resolver.resolve_endpoint(&params);
9177        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--test1-az1--x-s3.s3express-test1-az1.us-west-2.amazonaws.com");
9178        assert_eq!(
9179            endpoint,
9180            ::aws_smithy_types::endpoint::Endpoint::builder()
9181                .url("https://mybucket--test1-az1--x-s3.s3express-test1-az1.us-west-2.amazonaws.com")
9182                .property(
9183                    "authSchemes",
9184                    vec![{
9185                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9186                        out.insert("name".to_string(), "sigv4".to_string().into());
9187                        out.insert("signingName".to_string(), "s3express".to_string().into());
9188                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9189                        out.insert("disableDoubleEncoding".to_string(), true.into());
9190                        out
9191                    }
9192                    .into()]
9193                )
9194                .property("backend", "S3Express".to_string())
9195                .build()
9196        );
9197    }
9198
9199    /// Data Plane sigv4 auth with long AZ with AP
9200    #[test]
9201    fn test_314() {
9202        let params = crate::config::endpoint::Params::builder()
9203            .region("us-west-2".to_string())
9204            .bucket("myaccesspoint--test1-az1--xa-s3".to_string())
9205            .use_fips(false)
9206            .use_dual_stack(false)
9207            .accelerate(false)
9208            .use_s3_express_control_endpoint(false)
9209            .disable_s3_express_session_auth(true)
9210            .build()
9211            .expect("invalid params");
9212        let resolver = crate::config::endpoint::DefaultResolver::new();
9213        let endpoint = resolver.resolve_endpoint(&params);
9214        let endpoint =
9215            endpoint.expect("Expected valid endpoint: https://myaccesspoint--test1-az1--xa-s3.s3express-test1-az1.us-west-2.amazonaws.com");
9216        assert_eq!(
9217            endpoint,
9218            ::aws_smithy_types::endpoint::Endpoint::builder()
9219                .url("https://myaccesspoint--test1-az1--xa-s3.s3express-test1-az1.us-west-2.amazonaws.com")
9220                .property(
9221                    "authSchemes",
9222                    vec![{
9223                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9224                        out.insert("name".to_string(), "sigv4".to_string().into());
9225                        out.insert("signingName".to_string(), "s3express".to_string().into());
9226                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9227                        out.insert("disableDoubleEncoding".to_string(), true.into());
9228                        out
9229                    }
9230                    .into()]
9231                )
9232                .property("backend", "S3Express".to_string())
9233                .build()
9234        );
9235    }
9236
9237    /// Data Plane sigv4 auth with medium zone(14 chars)
9238    #[test]
9239    fn test_315() {
9240        let params = crate::config::endpoint::Params::builder()
9241            .region("us-west-2".to_string())
9242            .bucket("mybucket--test1-zone-ab1--x-s3".to_string())
9243            .use_fips(false)
9244            .use_dual_stack(false)
9245            .accelerate(false)
9246            .use_s3_express_control_endpoint(false)
9247            .disable_s3_express_session_auth(true)
9248            .build()
9249            .expect("invalid params");
9250        let resolver = crate::config::endpoint::DefaultResolver::new();
9251        let endpoint = resolver.resolve_endpoint(&params);
9252        let endpoint =
9253            endpoint.expect("Expected valid endpoint: https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com");
9254        assert_eq!(
9255            endpoint,
9256            ::aws_smithy_types::endpoint::Endpoint::builder()
9257                .url("https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com")
9258                .property(
9259                    "authSchemes",
9260                    vec![{
9261                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9262                        out.insert("name".to_string(), "sigv4".to_string().into());
9263                        out.insert("signingName".to_string(), "s3express".to_string().into());
9264                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9265                        out.insert("disableDoubleEncoding".to_string(), true.into());
9266                        out
9267                    }
9268                    .into()]
9269                )
9270                .property("backend", "S3Express".to_string())
9271                .build()
9272        );
9273    }
9274
9275    /// Data Plane sigv4 auth with medium zone(14 chars) with AP
9276    #[test]
9277    fn test_316() {
9278        let params = crate::config::endpoint::Params::builder()
9279            .region("us-west-2".to_string())
9280            .bucket("myaccesspoint--test1-zone-ab1--xa-s3".to_string())
9281            .use_fips(false)
9282            .use_dual_stack(false)
9283            .accelerate(false)
9284            .use_s3_express_control_endpoint(false)
9285            .disable_s3_express_session_auth(true)
9286            .build()
9287            .expect("invalid params");
9288        let resolver = crate::config::endpoint::DefaultResolver::new();
9289        let endpoint = resolver.resolve_endpoint(&params);
9290        let endpoint =
9291            endpoint.expect("Expected valid endpoint: https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com");
9292        assert_eq!(
9293            endpoint,
9294            ::aws_smithy_types::endpoint::Endpoint::builder()
9295                .url("https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.us-west-2.amazonaws.com")
9296                .property(
9297                    "authSchemes",
9298                    vec![{
9299                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9300                        out.insert("name".to_string(), "sigv4".to_string().into());
9301                        out.insert("signingName".to_string(), "s3express".to_string().into());
9302                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9303                        out.insert("disableDoubleEncoding".to_string(), true.into());
9304                        out
9305                    }
9306                    .into()]
9307                )
9308                .property("backend", "S3Express".to_string())
9309                .build()
9310        );
9311    }
9312
9313    /// Data Plane sigv4 auth with long zone(20 chars)
9314    #[test]
9315    fn test_317() {
9316        let params = crate::config::endpoint::Params::builder()
9317            .region("us-west-2".to_string())
9318            .bucket("mybucket--test1-long1-zone-ab1--x-s3".to_string())
9319            .use_fips(false)
9320            .use_dual_stack(false)
9321            .accelerate(false)
9322            .use_s3_express_control_endpoint(false)
9323            .disable_s3_express_session_auth(true)
9324            .build()
9325            .expect("invalid params");
9326        let resolver = crate::config::endpoint::DefaultResolver::new();
9327        let endpoint = resolver.resolve_endpoint(&params);
9328        let endpoint = endpoint
9329            .expect("Expected valid endpoint: https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com");
9330        assert_eq!(
9331            endpoint,
9332            ::aws_smithy_types::endpoint::Endpoint::builder()
9333                .url("https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com")
9334                .property(
9335                    "authSchemes",
9336                    vec![{
9337                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9338                        out.insert("name".to_string(), "sigv4".to_string().into());
9339                        out.insert("signingName".to_string(), "s3express".to_string().into());
9340                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9341                        out.insert("disableDoubleEncoding".to_string(), true.into());
9342                        out
9343                    }
9344                    .into()]
9345                )
9346                .property("backend", "S3Express".to_string())
9347                .build()
9348        );
9349    }
9350
9351    /// Data Plane sigv4 auth with long zone(20 chars) with AP
9352    #[test]
9353    fn test_318() {
9354        let params = crate::config::endpoint::Params::builder()
9355            .region("us-west-2".to_string())
9356            .bucket("myaccesspoint--test1-long1-zone-ab1--xa-s3".to_string())
9357            .use_fips(false)
9358            .use_dual_stack(false)
9359            .accelerate(false)
9360            .use_s3_express_control_endpoint(false)
9361            .disable_s3_express_session_auth(true)
9362            .build()
9363            .expect("invalid params");
9364        let resolver = crate::config::endpoint::DefaultResolver::new();
9365        let endpoint = resolver.resolve_endpoint(&params);
9366        let endpoint = endpoint.expect(
9367            "Expected valid endpoint: https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com",
9368        );
9369        assert_eq!(
9370            endpoint,
9371            ::aws_smithy_types::endpoint::Endpoint::builder()
9372                .url("https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.us-west-2.amazonaws.com")
9373                .property(
9374                    "authSchemes",
9375                    vec![{
9376                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9377                        out.insert("name".to_string(), "sigv4".to_string().into());
9378                        out.insert("signingName".to_string(), "s3express".to_string().into());
9379                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9380                        out.insert("disableDoubleEncoding".to_string(), true.into());
9381                        out
9382                    }
9383                    .into()]
9384                )
9385                .property("backend", "S3Express".to_string())
9386                .build()
9387        );
9388    }
9389
9390    /// Data Plane sigv4 auth with long AZ fips
9391    #[test]
9392    fn test_319() {
9393        let params = crate::config::endpoint::Params::builder()
9394            .region("us-west-2".to_string())
9395            .bucket("mybucket--test1-az1--x-s3".to_string())
9396            .use_fips(true)
9397            .use_dual_stack(false)
9398            .accelerate(false)
9399            .use_s3_express_control_endpoint(false)
9400            .disable_s3_express_session_auth(true)
9401            .build()
9402            .expect("invalid params");
9403        let resolver = crate::config::endpoint::DefaultResolver::new();
9404        let endpoint = resolver.resolve_endpoint(&params);
9405        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--test1-az1--x-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com");
9406        assert_eq!(
9407            endpoint,
9408            ::aws_smithy_types::endpoint::Endpoint::builder()
9409                .url("https://mybucket--test1-az1--x-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com")
9410                .property(
9411                    "authSchemes",
9412                    vec![{
9413                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9414                        out.insert("name".to_string(), "sigv4".to_string().into());
9415                        out.insert("signingName".to_string(), "s3express".to_string().into());
9416                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9417                        out.insert("disableDoubleEncoding".to_string(), true.into());
9418                        out
9419                    }
9420                    .into()]
9421                )
9422                .property("backend", "S3Express".to_string())
9423                .build()
9424        );
9425    }
9426
9427    /// Data Plane sigv4 auth with long AZ fips with AP
9428    #[test]
9429    fn test_320() {
9430        let params = crate::config::endpoint::Params::builder()
9431            .region("us-west-2".to_string())
9432            .bucket("myaccesspoint--test1-az1--xa-s3".to_string())
9433            .use_fips(true)
9434            .use_dual_stack(false)
9435            .accelerate(false)
9436            .use_s3_express_control_endpoint(false)
9437            .disable_s3_express_session_auth(true)
9438            .build()
9439            .expect("invalid params");
9440        let resolver = crate::config::endpoint::DefaultResolver::new();
9441        let endpoint = resolver.resolve_endpoint(&params);
9442        let endpoint =
9443            endpoint.expect("Expected valid endpoint: https://myaccesspoint--test1-az1--xa-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com");
9444        assert_eq!(
9445            endpoint,
9446            ::aws_smithy_types::endpoint::Endpoint::builder()
9447                .url("https://myaccesspoint--test1-az1--xa-s3.s3express-fips-test1-az1.us-west-2.amazonaws.com")
9448                .property(
9449                    "authSchemes",
9450                    vec![{
9451                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9452                        out.insert("name".to_string(), "sigv4".to_string().into());
9453                        out.insert("signingName".to_string(), "s3express".to_string().into());
9454                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9455                        out.insert("disableDoubleEncoding".to_string(), true.into());
9456                        out
9457                    }
9458                    .into()]
9459                )
9460                .property("backend", "S3Express".to_string())
9461                .build()
9462        );
9463    }
9464
9465    /// Data Plane sigv4 auth with medium zone (14 chars) fips
9466    #[test]
9467    fn test_321() {
9468        let params = crate::config::endpoint::Params::builder()
9469            .region("us-west-2".to_string())
9470            .bucket("mybucket--test1-zone-ab1--x-s3".to_string())
9471            .use_fips(true)
9472            .use_dual_stack(false)
9473            .accelerate(false)
9474            .use_s3_express_control_endpoint(false)
9475            .disable_s3_express_session_auth(true)
9476            .build()
9477            .expect("invalid params");
9478        let resolver = crate::config::endpoint::DefaultResolver::new();
9479        let endpoint = resolver.resolve_endpoint(&params);
9480        let endpoint =
9481            endpoint.expect("Expected valid endpoint: https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com");
9482        assert_eq!(
9483            endpoint,
9484            ::aws_smithy_types::endpoint::Endpoint::builder()
9485                .url("https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com")
9486                .property(
9487                    "authSchemes",
9488                    vec![{
9489                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9490                        out.insert("name".to_string(), "sigv4".to_string().into());
9491                        out.insert("signingName".to_string(), "s3express".to_string().into());
9492                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9493                        out.insert("disableDoubleEncoding".to_string(), true.into());
9494                        out
9495                    }
9496                    .into()]
9497                )
9498                .property("backend", "S3Express".to_string())
9499                .build()
9500        );
9501    }
9502
9503    /// Data Plane sigv4 auth with medium zone (14 chars) fips with AP
9504    #[test]
9505    fn test_322() {
9506        let params = crate::config::endpoint::Params::builder()
9507            .region("us-west-2".to_string())
9508            .bucket("myaccesspoint--test1-zone-ab1--xa-s3".to_string())
9509            .use_fips(true)
9510            .use_dual_stack(false)
9511            .accelerate(false)
9512            .use_s3_express_control_endpoint(false)
9513            .disable_s3_express_session_auth(true)
9514            .build()
9515            .expect("invalid params");
9516        let resolver = crate::config::endpoint::DefaultResolver::new();
9517        let endpoint = resolver.resolve_endpoint(&params);
9518        let endpoint = endpoint
9519            .expect("Expected valid endpoint: https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com");
9520        assert_eq!(
9521            endpoint,
9522            ::aws_smithy_types::endpoint::Endpoint::builder()
9523                .url("https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.us-west-2.amazonaws.com")
9524                .property(
9525                    "authSchemes",
9526                    vec![{
9527                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9528                        out.insert("name".to_string(), "sigv4".to_string().into());
9529                        out.insert("signingName".to_string(), "s3express".to_string().into());
9530                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9531                        out.insert("disableDoubleEncoding".to_string(), true.into());
9532                        out
9533                    }
9534                    .into()]
9535                )
9536                .property("backend", "S3Express".to_string())
9537                .build()
9538        );
9539    }
9540
9541    /// Data Plane sigv4 auth with long zone (20 chars) fips
9542    #[test]
9543    fn test_323() {
9544        let params = crate::config::endpoint::Params::builder()
9545            .region("us-west-2".to_string())
9546            .bucket("mybucket--test1-long1-zone-ab1--x-s3".to_string())
9547            .use_fips(true)
9548            .use_dual_stack(false)
9549            .accelerate(false)
9550            .use_s3_express_control_endpoint(false)
9551            .disable_s3_express_session_auth(true)
9552            .build()
9553            .expect("invalid params");
9554        let resolver = crate::config::endpoint::DefaultResolver::new();
9555        let endpoint = resolver.resolve_endpoint(&params);
9556        let endpoint = endpoint.expect(
9557            "Expected valid endpoint: https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com",
9558        );
9559        assert_eq!(
9560            endpoint,
9561            ::aws_smithy_types::endpoint::Endpoint::builder()
9562                .url("https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com")
9563                .property(
9564                    "authSchemes",
9565                    vec![{
9566                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9567                        out.insert("name".to_string(), "sigv4".to_string().into());
9568                        out.insert("signingName".to_string(), "s3express".to_string().into());
9569                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9570                        out.insert("disableDoubleEncoding".to_string(), true.into());
9571                        out
9572                    }
9573                    .into()]
9574                )
9575                .property("backend", "S3Express".to_string())
9576                .build()
9577        );
9578    }
9579
9580    /// Data Plane sigv4 auth with long zone (20 chars) fips with AP
9581    #[test]
9582    fn test_324() {
9583        let params = crate::config::endpoint::Params::builder()
9584            .region("us-west-2".to_string())
9585            .bucket("myaccesspoint--test1-long1-zone-ab1--xa-s3".to_string())
9586            .use_fips(true)
9587            .use_dual_stack(false)
9588            .accelerate(false)
9589            .use_s3_express_control_endpoint(false)
9590            .disable_s3_express_session_auth(true)
9591            .build()
9592            .expect("invalid params");
9593        let resolver = crate::config::endpoint::DefaultResolver::new();
9594        let endpoint = resolver.resolve_endpoint(&params);
9595        let endpoint = endpoint.expect(
9596            "Expected valid endpoint: https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com",
9597        );
9598        assert_eq!(
9599            endpoint,
9600            ::aws_smithy_types::endpoint::Endpoint::builder()
9601                .url("https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.us-west-2.amazonaws.com")
9602                .property(
9603                    "authSchemes",
9604                    vec![{
9605                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9606                        out.insert("name".to_string(), "sigv4".to_string().into());
9607                        out.insert("signingName".to_string(), "s3express".to_string().into());
9608                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9609                        out.insert("disableDoubleEncoding".to_string(), true.into());
9610                        out
9611                    }
9612                    .into()]
9613                )
9614                .property("backend", "S3Express".to_string())
9615                .build()
9616        );
9617    }
9618
9619    /// Control Plane host override
9620    #[test]
9621    fn test_325() {
9622        let params = crate::config::endpoint::Params::builder()
9623            .region("us-west-2".to_string())
9624            .bucket("mybucket--usw2-az1--x-s3".to_string())
9625            .use_fips(false)
9626            .use_dual_stack(false)
9627            .accelerate(false)
9628            .use_s3_express_control_endpoint(true)
9629            .disable_s3_express_session_auth(true)
9630            .endpoint("https://custom.com".to_string())
9631            .build()
9632            .expect("invalid params");
9633        let resolver = crate::config::endpoint::DefaultResolver::new();
9634        let endpoint = resolver.resolve_endpoint(&params);
9635        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az1--x-s3.custom.com");
9636        assert_eq!(
9637            endpoint,
9638            ::aws_smithy_types::endpoint::Endpoint::builder()
9639                .url("https://mybucket--usw2-az1--x-s3.custom.com")
9640                .property(
9641                    "authSchemes",
9642                    vec![{
9643                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9644                        out.insert("name".to_string(), "sigv4".to_string().into());
9645                        out.insert("signingName".to_string(), "s3express".to_string().into());
9646                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9647                        out.insert("disableDoubleEncoding".to_string(), true.into());
9648                        out
9649                    }
9650                    .into()]
9651                )
9652                .property("backend", "S3Express".to_string())
9653                .build()
9654        );
9655    }
9656
9657    /// Control Plane host override with AP
9658    #[test]
9659    fn test_326() {
9660        let params = crate::config::endpoint::Params::builder()
9661            .region("us-west-2".to_string())
9662            .bucket("myaccesspoint--usw2-az1--xa-s3".to_string())
9663            .use_fips(false)
9664            .use_dual_stack(false)
9665            .accelerate(false)
9666            .use_s3_express_control_endpoint(true)
9667            .disable_s3_express_session_auth(true)
9668            .endpoint("https://custom.com".to_string())
9669            .build()
9670            .expect("invalid params");
9671        let resolver = crate::config::endpoint::DefaultResolver::new();
9672        let endpoint = resolver.resolve_endpoint(&params);
9673        let endpoint = endpoint.expect("Expected valid endpoint: https://myaccesspoint--usw2-az1--xa-s3.custom.com");
9674        assert_eq!(
9675            endpoint,
9676            ::aws_smithy_types::endpoint::Endpoint::builder()
9677                .url("https://myaccesspoint--usw2-az1--xa-s3.custom.com")
9678                .property(
9679                    "authSchemes",
9680                    vec![{
9681                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9682                        out.insert("name".to_string(), "sigv4".to_string().into());
9683                        out.insert("signingName".to_string(), "s3express".to_string().into());
9684                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9685                        out.insert("disableDoubleEncoding".to_string(), true.into());
9686                        out
9687                    }
9688                    .into()]
9689                )
9690                .property("backend", "S3Express".to_string())
9691                .build()
9692        );
9693    }
9694
9695    /// Control Plane host override no bucket
9696    #[test]
9697    fn test_327() {
9698        let params = crate::config::endpoint::Params::builder()
9699            .region("us-west-2".to_string())
9700            .use_fips(false)
9701            .use_dual_stack(false)
9702            .accelerate(false)
9703            .use_s3_express_control_endpoint(true)
9704            .disable_s3_express_session_auth(true)
9705            .endpoint("https://custom.com".to_string())
9706            .build()
9707            .expect("invalid params");
9708        let resolver = crate::config::endpoint::DefaultResolver::new();
9709        let endpoint = resolver.resolve_endpoint(&params);
9710        let endpoint = endpoint.expect("Expected valid endpoint: https://custom.com");
9711        assert_eq!(
9712            endpoint,
9713            ::aws_smithy_types::endpoint::Endpoint::builder()
9714                .url("https://custom.com")
9715                .property(
9716                    "authSchemes",
9717                    vec![{
9718                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9719                        out.insert("name".to_string(), "sigv4".to_string().into());
9720                        out.insert("signingName".to_string(), "s3express".to_string().into());
9721                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9722                        out.insert("disableDoubleEncoding".to_string(), true.into());
9723                        out
9724                    }
9725                    .into()]
9726                )
9727                .property("backend", "S3Express".to_string())
9728                .build()
9729        );
9730    }
9731
9732    /// Data plane host override non virtual session auth
9733    #[test]
9734    fn test_328() {
9735        let params = crate::config::endpoint::Params::builder()
9736            .region("us-west-2".to_string())
9737            .bucket("mybucket--usw2-az1--x-s3".to_string())
9738            .use_fips(false)
9739            .use_dual_stack(false)
9740            .accelerate(false)
9741            .endpoint("https://10.0.0.1".to_string())
9742            .build()
9743            .expect("invalid params");
9744        let resolver = crate::config::endpoint::DefaultResolver::new();
9745        let endpoint = resolver.resolve_endpoint(&params);
9746        let endpoint = endpoint.expect("Expected valid endpoint: https://10.0.0.1/mybucket--usw2-az1--x-s3");
9747        assert_eq!(
9748            endpoint,
9749            ::aws_smithy_types::endpoint::Endpoint::builder()
9750                .url("https://10.0.0.1/mybucket--usw2-az1--x-s3")
9751                .property(
9752                    "authSchemes",
9753                    vec![{
9754                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9755                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
9756                        out.insert("signingName".to_string(), "s3express".to_string().into());
9757                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9758                        out.insert("disableDoubleEncoding".to_string(), true.into());
9759                        out
9760                    }
9761                    .into()]
9762                )
9763                .property("backend", "S3Express".to_string())
9764                .build()
9765        );
9766    }
9767
9768    /// Data plane host override non virtual session auth with AP
9769    #[test]
9770    fn test_329() {
9771        let params = crate::config::endpoint::Params::builder()
9772            .region("us-west-2".to_string())
9773            .bucket("myaccesspoint--usw2-az1--xa-s3".to_string())
9774            .use_fips(false)
9775            .use_dual_stack(false)
9776            .accelerate(false)
9777            .endpoint("https://10.0.0.1".to_string())
9778            .build()
9779            .expect("invalid params");
9780        let resolver = crate::config::endpoint::DefaultResolver::new();
9781        let endpoint = resolver.resolve_endpoint(&params);
9782        let endpoint = endpoint.expect("Expected valid endpoint: https://10.0.0.1/myaccesspoint--usw2-az1--xa-s3");
9783        assert_eq!(
9784            endpoint,
9785            ::aws_smithy_types::endpoint::Endpoint::builder()
9786                .url("https://10.0.0.1/myaccesspoint--usw2-az1--xa-s3")
9787                .property(
9788                    "authSchemes",
9789                    vec![{
9790                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9791                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
9792                        out.insert("signingName".to_string(), "s3express".to_string().into());
9793                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9794                        out.insert("disableDoubleEncoding".to_string(), true.into());
9795                        out
9796                    }
9797                    .into()]
9798                )
9799                .property("backend", "S3Express".to_string())
9800                .build()
9801        );
9802    }
9803
9804    /// Control Plane host override ip
9805    #[test]
9806    fn test_330() {
9807        let params = crate::config::endpoint::Params::builder()
9808            .region("us-west-2".to_string())
9809            .bucket("mybucket--usw2-az1--x-s3".to_string())
9810            .use_fips(false)
9811            .use_dual_stack(false)
9812            .accelerate(false)
9813            .use_s3_express_control_endpoint(true)
9814            .disable_s3_express_session_auth(true)
9815            .endpoint("https://10.0.0.1".to_string())
9816            .build()
9817            .expect("invalid params");
9818        let resolver = crate::config::endpoint::DefaultResolver::new();
9819        let endpoint = resolver.resolve_endpoint(&params);
9820        let endpoint = endpoint.expect("Expected valid endpoint: https://10.0.0.1/mybucket--usw2-az1--x-s3");
9821        assert_eq!(
9822            endpoint,
9823            ::aws_smithy_types::endpoint::Endpoint::builder()
9824                .url("https://10.0.0.1/mybucket--usw2-az1--x-s3")
9825                .property(
9826                    "authSchemes",
9827                    vec![{
9828                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9829                        out.insert("name".to_string(), "sigv4".to_string().into());
9830                        out.insert("signingName".to_string(), "s3express".to_string().into());
9831                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9832                        out.insert("disableDoubleEncoding".to_string(), true.into());
9833                        out
9834                    }
9835                    .into()]
9836                )
9837                .property("backend", "S3Express".to_string())
9838                .build()
9839        );
9840    }
9841
9842    /// Control Plane host override ip with AP
9843    #[test]
9844    fn test_331() {
9845        let params = crate::config::endpoint::Params::builder()
9846            .region("us-west-2".to_string())
9847            .bucket("myaccesspoint--usw2-az1--xa-s3".to_string())
9848            .use_fips(false)
9849            .use_dual_stack(false)
9850            .accelerate(false)
9851            .use_s3_express_control_endpoint(true)
9852            .disable_s3_express_session_auth(true)
9853            .endpoint("https://10.0.0.1".to_string())
9854            .build()
9855            .expect("invalid params");
9856        let resolver = crate::config::endpoint::DefaultResolver::new();
9857        let endpoint = resolver.resolve_endpoint(&params);
9858        let endpoint = endpoint.expect("Expected valid endpoint: https://10.0.0.1/myaccesspoint--usw2-az1--xa-s3");
9859        assert_eq!(
9860            endpoint,
9861            ::aws_smithy_types::endpoint::Endpoint::builder()
9862                .url("https://10.0.0.1/myaccesspoint--usw2-az1--xa-s3")
9863                .property(
9864                    "authSchemes",
9865                    vec![{
9866                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9867                        out.insert("name".to_string(), "sigv4".to_string().into());
9868                        out.insert("signingName".to_string(), "s3express".to_string().into());
9869                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9870                        out.insert("disableDoubleEncoding".to_string(), true.into());
9871                        out
9872                    }
9873                    .into()]
9874                )
9875                .property("backend", "S3Express".to_string())
9876                .build()
9877        );
9878    }
9879
9880    /// Data plane host override
9881    #[test]
9882    fn test_332() {
9883        let params = crate::config::endpoint::Params::builder()
9884            .region("us-west-2".to_string())
9885            .bucket("mybucket--usw2-az1--x-s3".to_string())
9886            .use_fips(false)
9887            .use_dual_stack(false)
9888            .accelerate(false)
9889            .endpoint("https://custom.com".to_string())
9890            .build()
9891            .expect("invalid params");
9892        let resolver = crate::config::endpoint::DefaultResolver::new();
9893        let endpoint = resolver.resolve_endpoint(&params);
9894        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az1--x-s3.custom.com");
9895        assert_eq!(
9896            endpoint,
9897            ::aws_smithy_types::endpoint::Endpoint::builder()
9898                .url("https://mybucket--usw2-az1--x-s3.custom.com")
9899                .property(
9900                    "authSchemes",
9901                    vec![{
9902                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9903                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
9904                        out.insert("signingName".to_string(), "s3express".to_string().into());
9905                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9906                        out.insert("disableDoubleEncoding".to_string(), true.into());
9907                        out
9908                    }
9909                    .into()]
9910                )
9911                .property("backend", "S3Express".to_string())
9912                .build()
9913        );
9914    }
9915
9916    /// Data plane host override with AP
9917    #[test]
9918    fn test_333() {
9919        let params = crate::config::endpoint::Params::builder()
9920            .region("us-west-2".to_string())
9921            .bucket("myaccesspoint--usw2-az1--xa-s3".to_string())
9922            .use_fips(false)
9923            .use_dual_stack(false)
9924            .accelerate(false)
9925            .endpoint("https://custom.com".to_string())
9926            .build()
9927            .expect("invalid params");
9928        let resolver = crate::config::endpoint::DefaultResolver::new();
9929        let endpoint = resolver.resolve_endpoint(&params);
9930        let endpoint = endpoint.expect("Expected valid endpoint: https://myaccesspoint--usw2-az1--xa-s3.custom.com");
9931        assert_eq!(
9932            endpoint,
9933            ::aws_smithy_types::endpoint::Endpoint::builder()
9934                .url("https://myaccesspoint--usw2-az1--xa-s3.custom.com")
9935                .property(
9936                    "authSchemes",
9937                    vec![{
9938                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
9939                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
9940                        out.insert("signingName".to_string(), "s3express".to_string().into());
9941                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
9942                        out.insert("disableDoubleEncoding".to_string(), true.into());
9943                        out
9944                    }
9945                    .into()]
9946                )
9947                .property("backend", "S3Express".to_string())
9948                .build()
9949        );
9950    }
9951
9952    /// bad format error
9953    #[test]
9954    fn test_334() {
9955        let params = crate::config::endpoint::Params::builder()
9956            .region("us-east-1".to_string())
9957            .bucket("mybucket--usaz1--x-s3".to_string())
9958            .use_fips(false)
9959            .use_dual_stack(false)
9960            .accelerate(false)
9961            .use_s3_express_control_endpoint(false)
9962            .build()
9963            .expect("invalid params");
9964        let resolver = crate::config::endpoint::DefaultResolver::new();
9965        let endpoint = resolver.resolve_endpoint(&params);
9966        let error = endpoint.expect_err("expected error: Unrecognized S3Express bucket name format. [bad format error]");
9967        assert_eq!(format!("{}", error), "Unrecognized S3Express bucket name format.")
9968    }
9969
9970    /// bad AP format error
9971    #[test]
9972    fn test_335() {
9973        let params = crate::config::endpoint::Params::builder()
9974            .region("us-east-1".to_string())
9975            .bucket("myaccesspoint--usaz1--xa-s3".to_string())
9976            .use_fips(false)
9977            .use_dual_stack(false)
9978            .accelerate(false)
9979            .use_s3_express_control_endpoint(false)
9980            .build()
9981            .expect("invalid params");
9982        let resolver = crate::config::endpoint::DefaultResolver::new();
9983        let endpoint = resolver.resolve_endpoint(&params);
9984        let error = endpoint.expect_err("expected error: Unrecognized S3Express bucket name format. [bad AP format error]");
9985        assert_eq!(format!("{}", error), "Unrecognized S3Express bucket name format.")
9986    }
9987
9988    /// bad format error no session auth
9989    #[test]
9990    fn test_336() {
9991        let params = crate::config::endpoint::Params::builder()
9992            .region("us-east-1".to_string())
9993            .bucket("mybucket--usaz1--x-s3".to_string())
9994            .use_fips(false)
9995            .use_dual_stack(false)
9996            .accelerate(false)
9997            .use_s3_express_control_endpoint(false)
9998            .disable_s3_express_session_auth(true)
9999            .build()
10000            .expect("invalid params");
10001        let resolver = crate::config::endpoint::DefaultResolver::new();
10002        let endpoint = resolver.resolve_endpoint(&params);
10003        let error = endpoint.expect_err("expected error: Unrecognized S3Express bucket name format. [bad format error no session auth]");
10004        assert_eq!(format!("{}", error), "Unrecognized S3Express bucket name format.")
10005    }
10006
10007    /// bad AP format error no session auth
10008    #[test]
10009    fn test_337() {
10010        let params = crate::config::endpoint::Params::builder()
10011            .region("us-east-1".to_string())
10012            .bucket("myaccesspoint--usaz1--xa-s3".to_string())
10013            .use_fips(false)
10014            .use_dual_stack(false)
10015            .accelerate(false)
10016            .use_s3_express_control_endpoint(false)
10017            .disable_s3_express_session_auth(true)
10018            .build()
10019            .expect("invalid params");
10020        let resolver = crate::config::endpoint::DefaultResolver::new();
10021        let endpoint = resolver.resolve_endpoint(&params);
10022        let error = endpoint.expect_err("expected error: Unrecognized S3Express bucket name format. [bad AP format error no session auth]");
10023        assert_eq!(format!("{}", error), "Unrecognized S3Express bucket name format.")
10024    }
10025
10026    /// accelerate error
10027    #[test]
10028    fn test_338() {
10029        let params = crate::config::endpoint::Params::builder()
10030            .region("us-east-1".to_string())
10031            .bucket("mybucket--test-ab1--x-s3".to_string())
10032            .use_fips(false)
10033            .use_dual_stack(false)
10034            .accelerate(true)
10035            .use_s3_express_control_endpoint(false)
10036            .build()
10037            .expect("invalid params");
10038        let resolver = crate::config::endpoint::DefaultResolver::new();
10039        let endpoint = resolver.resolve_endpoint(&params);
10040        let error = endpoint.expect_err("expected error: S3Express does not support S3 Accelerate. [accelerate error]");
10041        assert_eq!(format!("{}", error), "S3Express does not support S3 Accelerate.")
10042    }
10043
10044    /// accelerate error with AP
10045    #[test]
10046    fn test_339() {
10047        let params = crate::config::endpoint::Params::builder()
10048            .region("us-east-1".to_string())
10049            .bucket("myaccesspoint--test-ab1--xa-s3".to_string())
10050            .use_fips(false)
10051            .use_dual_stack(false)
10052            .accelerate(true)
10053            .use_s3_express_control_endpoint(false)
10054            .build()
10055            .expect("invalid params");
10056        let resolver = crate::config::endpoint::DefaultResolver::new();
10057        let endpoint = resolver.resolve_endpoint(&params);
10058        let error = endpoint.expect_err("expected error: S3Express does not support S3 Accelerate. [accelerate error with AP]");
10059        assert_eq!(format!("{}", error), "S3Express does not support S3 Accelerate.")
10060    }
10061
10062    /// Data plane bucket format error
10063    #[test]
10064    fn test_340() {
10065        let params = crate::config::endpoint::Params::builder()
10066            .region("us-east-1".to_string())
10067            .bucket("my.bucket--test-ab1--x-s3".to_string())
10068            .use_fips(false)
10069            .use_dual_stack(false)
10070            .accelerate(false)
10071            .use_s3_express_control_endpoint(false)
10072            .build()
10073            .expect("invalid params");
10074        let resolver = crate::config::endpoint::DefaultResolver::new();
10075        let endpoint = resolver.resolve_endpoint(&params);
10076        let error =
10077            endpoint.expect_err("expected error: S3Express bucket name is not a valid virtual hostable name. [Data plane bucket format error]");
10078        assert_eq!(format!("{}", error), "S3Express bucket name is not a valid virtual hostable name.")
10079    }
10080
10081    /// Data plane AP format error
10082    #[test]
10083    fn test_341() {
10084        let params = crate::config::endpoint::Params::builder()
10085            .region("us-east-1".to_string())
10086            .bucket("my.myaccesspoint--test-ab1--xa-s3".to_string())
10087            .use_fips(false)
10088            .use_dual_stack(false)
10089            .accelerate(false)
10090            .use_s3_express_control_endpoint(false)
10091            .build()
10092            .expect("invalid params");
10093        let resolver = crate::config::endpoint::DefaultResolver::new();
10094        let endpoint = resolver.resolve_endpoint(&params);
10095        let error = endpoint.expect_err("expected error: S3Express bucket name is not a valid virtual hostable name. [Data plane AP format error]");
10096        assert_eq!(format!("{}", error), "S3Express bucket name is not a valid virtual hostable name.")
10097    }
10098
10099    /// host override data plane bucket error session auth
10100    #[test]
10101    fn test_342() {
10102        let params = crate::config::endpoint::Params::builder()
10103            .region("us-west-2".to_string())
10104            .bucket("my.bucket--usw2-az1--x-s3".to_string())
10105            .use_fips(false)
10106            .use_dual_stack(false)
10107            .accelerate(false)
10108            .endpoint("https://custom.com".to_string())
10109            .build()
10110            .expect("invalid params");
10111        let resolver = crate::config::endpoint::DefaultResolver::new();
10112        let endpoint = resolver.resolve_endpoint(&params);
10113        let error = endpoint.expect_err(
10114            "expected error: S3Express bucket name is not a valid virtual hostable name. [host override data plane bucket error session auth]",
10115        );
10116        assert_eq!(format!("{}", error), "S3Express bucket name is not a valid virtual hostable name.")
10117    }
10118
10119    /// host override data plane AP error session auth
10120    #[test]
10121    fn test_343() {
10122        let params = crate::config::endpoint::Params::builder()
10123            .region("us-west-2".to_string())
10124            .bucket("my.myaccesspoint--usw2-az1--xa-s3".to_string())
10125            .use_fips(false)
10126            .use_dual_stack(false)
10127            .accelerate(false)
10128            .endpoint("https://custom.com".to_string())
10129            .build()
10130            .expect("invalid params");
10131        let resolver = crate::config::endpoint::DefaultResolver::new();
10132        let endpoint = resolver.resolve_endpoint(&params);
10133        let error = endpoint.expect_err(
10134            "expected error: S3Express bucket name is not a valid virtual hostable name. [host override data plane AP error session auth]",
10135        );
10136        assert_eq!(format!("{}", error), "S3Express bucket name is not a valid virtual hostable name.")
10137    }
10138
10139    /// host override data plane bucket error
10140    #[test]
10141    fn test_344() {
10142        let params = crate::config::endpoint::Params::builder()
10143            .region("us-west-2".to_string())
10144            .bucket("my.bucket--usw2-az1--x-s3".to_string())
10145            .use_fips(false)
10146            .use_dual_stack(false)
10147            .accelerate(false)
10148            .endpoint("https://custom.com".to_string())
10149            .disable_s3_express_session_auth(true)
10150            .build()
10151            .expect("invalid params");
10152        let resolver = crate::config::endpoint::DefaultResolver::new();
10153        let endpoint = resolver.resolve_endpoint(&params);
10154        let error = endpoint
10155            .expect_err("expected error: S3Express bucket name is not a valid virtual hostable name. [host override data plane bucket error]");
10156        assert_eq!(format!("{}", error), "S3Express bucket name is not a valid virtual hostable name.")
10157    }
10158
10159    /// host override data plane AP error
10160    #[test]
10161    fn test_345() {
10162        let params = crate::config::endpoint::Params::builder()
10163            .region("us-west-2".to_string())
10164            .bucket("my.myaccesspoint--usw2-az1--xa-s3".to_string())
10165            .use_fips(false)
10166            .use_dual_stack(false)
10167            .accelerate(false)
10168            .endpoint("https://custom.com".to_string())
10169            .disable_s3_express_session_auth(true)
10170            .build()
10171            .expect("invalid params");
10172        let resolver = crate::config::endpoint::DefaultResolver::new();
10173        let endpoint = resolver.resolve_endpoint(&params);
10174        let error =
10175            endpoint.expect_err("expected error: S3Express bucket name is not a valid virtual hostable name. [host override data plane AP error]");
10176        assert_eq!(format!("{}", error), "S3Express bucket name is not a valid virtual hostable name.")
10177    }
10178
10179    /// Control plane without bucket and dualstack
10180    #[test]
10181    fn test_346() {
10182        let params = crate::config::endpoint::Params::builder()
10183            .region("us-east-1".to_string())
10184            .use_fips(false)
10185            .use_dual_stack(true)
10186            .accelerate(false)
10187            .use_s3_express_control_endpoint(true)
10188            .disable_s3_express_session_auth(false)
10189            .build()
10190            .expect("invalid params");
10191        let resolver = crate::config::endpoint::DefaultResolver::new();
10192        let endpoint = resolver.resolve_endpoint(&params);
10193        let endpoint = endpoint.expect("Expected valid endpoint: https://s3express-control.dualstack.us-east-1.amazonaws.com");
10194        assert_eq!(
10195            endpoint,
10196            ::aws_smithy_types::endpoint::Endpoint::builder()
10197                .url("https://s3express-control.dualstack.us-east-1.amazonaws.com")
10198                .property(
10199                    "authSchemes",
10200                    vec![{
10201                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10202                        out.insert("name".to_string(), "sigv4".to_string().into());
10203                        out.insert("signingName".to_string(), "s3express".to_string().into());
10204                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
10205                        out.insert("disableDoubleEncoding".to_string(), true.into());
10206                        out
10207                    }
10208                    .into()]
10209                )
10210                .property("backend", "S3Express".to_string())
10211                .build()
10212        );
10213    }
10214
10215    /// Control plane without bucket, fips and dualstack
10216    #[test]
10217    fn test_347() {
10218        let params = crate::config::endpoint::Params::builder()
10219            .region("us-east-1".to_string())
10220            .use_fips(true)
10221            .use_dual_stack(true)
10222            .accelerate(false)
10223            .use_s3_express_control_endpoint(true)
10224            .disable_s3_express_session_auth(false)
10225            .build()
10226            .expect("invalid params");
10227        let resolver = crate::config::endpoint::DefaultResolver::new();
10228        let endpoint = resolver.resolve_endpoint(&params);
10229        let endpoint = endpoint.expect("Expected valid endpoint: https://s3express-control-fips.dualstack.us-east-1.amazonaws.com");
10230        assert_eq!(
10231            endpoint,
10232            ::aws_smithy_types::endpoint::Endpoint::builder()
10233                .url("https://s3express-control-fips.dualstack.us-east-1.amazonaws.com")
10234                .property(
10235                    "authSchemes",
10236                    vec![{
10237                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10238                        out.insert("name".to_string(), "sigv4".to_string().into());
10239                        out.insert("signingName".to_string(), "s3express".to_string().into());
10240                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
10241                        out.insert("disableDoubleEncoding".to_string(), true.into());
10242                        out
10243                    }
10244                    .into()]
10245                )
10246                .property("backend", "S3Express".to_string())
10247                .build()
10248        );
10249    }
10250
10251    /// Data Plane with short AZ and dualstack
10252    #[test]
10253    fn test_348() {
10254        let params = crate::config::endpoint::Params::builder()
10255            .region("us-west-2".to_string())
10256            .bucket("mybucket--usw2-az1--x-s3".to_string())
10257            .use_fips(false)
10258            .use_dual_stack(true)
10259            .accelerate(false)
10260            .use_s3_express_control_endpoint(false)
10261            .build()
10262            .expect("invalid params");
10263        let resolver = crate::config::endpoint::DefaultResolver::new();
10264        let endpoint = resolver.resolve_endpoint(&params);
10265        let endpoint =
10266            endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com");
10267        assert_eq!(
10268            endpoint,
10269            ::aws_smithy_types::endpoint::Endpoint::builder()
10270                .url("https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com")
10271                .property(
10272                    "authSchemes",
10273                    vec![{
10274                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10275                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
10276                        out.insert("signingName".to_string(), "s3express".to_string().into());
10277                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10278                        out.insert("disableDoubleEncoding".to_string(), true.into());
10279                        out
10280                    }
10281                    .into()]
10282                )
10283                .property("backend", "S3Express".to_string())
10284                .build()
10285        );
10286    }
10287
10288    /// Data Plane with short AZ and FIPS with dualstack
10289    #[test]
10290    fn test_349() {
10291        let params = crate::config::endpoint::Params::builder()
10292            .region("us-west-2".to_string())
10293            .bucket("mybucket--usw2-az1--x-s3".to_string())
10294            .use_fips(true)
10295            .use_dual_stack(true)
10296            .accelerate(false)
10297            .use_s3_express_control_endpoint(false)
10298            .build()
10299            .expect("invalid params");
10300        let resolver = crate::config::endpoint::DefaultResolver::new();
10301        let endpoint = resolver.resolve_endpoint(&params);
10302        let endpoint =
10303            endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com");
10304        assert_eq!(
10305            endpoint,
10306            ::aws_smithy_types::endpoint::Endpoint::builder()
10307                .url("https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com")
10308                .property(
10309                    "authSchemes",
10310                    vec![{
10311                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10312                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
10313                        out.insert("signingName".to_string(), "s3express".to_string().into());
10314                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10315                        out.insert("disableDoubleEncoding".to_string(), true.into());
10316                        out
10317                    }
10318                    .into()]
10319                )
10320                .property("backend", "S3Express".to_string())
10321                .build()
10322        );
10323    }
10324
10325    /// Data Plane sigv4 auth with short AZ and dualstack
10326    #[test]
10327    fn test_350() {
10328        let params = crate::config::endpoint::Params::builder()
10329            .region("us-west-2".to_string())
10330            .bucket("mybucket--usw2-az1--x-s3".to_string())
10331            .use_fips(false)
10332            .use_dual_stack(true)
10333            .accelerate(false)
10334            .disable_s3_express_session_auth(true)
10335            .build()
10336            .expect("invalid params");
10337        let resolver = crate::config::endpoint::DefaultResolver::new();
10338        let endpoint = resolver.resolve_endpoint(&params);
10339        let endpoint =
10340            endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com");
10341        assert_eq!(
10342            endpoint,
10343            ::aws_smithy_types::endpoint::Endpoint::builder()
10344                .url("https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com")
10345                .property(
10346                    "authSchemes",
10347                    vec![{
10348                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10349                        out.insert("name".to_string(), "sigv4".to_string().into());
10350                        out.insert("signingName".to_string(), "s3express".to_string().into());
10351                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10352                        out.insert("disableDoubleEncoding".to_string(), true.into());
10353                        out
10354                    }
10355                    .into()]
10356                )
10357                .property("backend", "S3Express".to_string())
10358                .build()
10359        );
10360    }
10361
10362    /// Data Plane sigv4 auth with short AZ and FIPS with dualstack
10363    #[test]
10364    fn test_351() {
10365        let params = crate::config::endpoint::Params::builder()
10366            .region("us-west-2".to_string())
10367            .bucket("mybucket--usw2-az1--x-s3".to_string())
10368            .use_fips(true)
10369            .use_dual_stack(true)
10370            .accelerate(false)
10371            .disable_s3_express_session_auth(true)
10372            .build()
10373            .expect("invalid params");
10374        let resolver = crate::config::endpoint::DefaultResolver::new();
10375        let endpoint = resolver.resolve_endpoint(&params);
10376        let endpoint =
10377            endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com");
10378        assert_eq!(
10379            endpoint,
10380            ::aws_smithy_types::endpoint::Endpoint::builder()
10381                .url("https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com")
10382                .property(
10383                    "authSchemes",
10384                    vec![{
10385                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10386                        out.insert("name".to_string(), "sigv4".to_string().into());
10387                        out.insert("signingName".to_string(), "s3express".to_string().into());
10388                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10389                        out.insert("disableDoubleEncoding".to_string(), true.into());
10390                        out
10391                    }
10392                    .into()]
10393                )
10394                .property("backend", "S3Express".to_string())
10395                .build()
10396        );
10397    }
10398
10399    /// Data Plane with zone and dualstack
10400    #[test]
10401    fn test_352() {
10402        let params = crate::config::endpoint::Params::builder()
10403            .region("us-west-2".to_string())
10404            .bucket("mybucket--usw2-az12--x-s3".to_string())
10405            .use_fips(false)
10406            .use_dual_stack(true)
10407            .accelerate(false)
10408            .use_s3_express_control_endpoint(false)
10409            .build()
10410            .expect("invalid params");
10411        let resolver = crate::config::endpoint::DefaultResolver::new();
10412        let endpoint = resolver.resolve_endpoint(&params);
10413        let endpoint =
10414            endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az12--x-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com");
10415        assert_eq!(
10416            endpoint,
10417            ::aws_smithy_types::endpoint::Endpoint::builder()
10418                .url("https://mybucket--usw2-az12--x-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com")
10419                .property(
10420                    "authSchemes",
10421                    vec![{
10422                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10423                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
10424                        out.insert("signingName".to_string(), "s3express".to_string().into());
10425                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10426                        out.insert("disableDoubleEncoding".to_string(), true.into());
10427                        out
10428                    }
10429                    .into()]
10430                )
10431                .property("backend", "S3Express".to_string())
10432                .build()
10433        );
10434    }
10435
10436    /// Data Plane with zone and FIPS with dualstack
10437    #[test]
10438    fn test_353() {
10439        let params = crate::config::endpoint::Params::builder()
10440            .region("us-west-2".to_string())
10441            .bucket("mybucket--usw2-az12--x-s3".to_string())
10442            .use_fips(true)
10443            .use_dual_stack(true)
10444            .accelerate(false)
10445            .use_s3_express_control_endpoint(false)
10446            .build()
10447            .expect("invalid params");
10448        let resolver = crate::config::endpoint::DefaultResolver::new();
10449        let endpoint = resolver.resolve_endpoint(&params);
10450        let endpoint =
10451            endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az12--x-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com");
10452        assert_eq!(
10453            endpoint,
10454            ::aws_smithy_types::endpoint::Endpoint::builder()
10455                .url("https://mybucket--usw2-az12--x-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com")
10456                .property(
10457                    "authSchemes",
10458                    vec![{
10459                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10460                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
10461                        out.insert("signingName".to_string(), "s3express".to_string().into());
10462                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10463                        out.insert("disableDoubleEncoding".to_string(), true.into());
10464                        out
10465                    }
10466                    .into()]
10467                )
10468                .property("backend", "S3Express".to_string())
10469                .build()
10470        );
10471    }
10472
10473    /// Data Plane sigv4 auth with zone and dualstack
10474    #[test]
10475    fn test_354() {
10476        let params = crate::config::endpoint::Params::builder()
10477            .region("us-west-2".to_string())
10478            .bucket("mybucket--usw2-az12--x-s3".to_string())
10479            .use_fips(false)
10480            .use_dual_stack(true)
10481            .accelerate(false)
10482            .disable_s3_express_session_auth(true)
10483            .build()
10484            .expect("invalid params");
10485        let resolver = crate::config::endpoint::DefaultResolver::new();
10486        let endpoint = resolver.resolve_endpoint(&params);
10487        let endpoint =
10488            endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az12--x-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com");
10489        assert_eq!(
10490            endpoint,
10491            ::aws_smithy_types::endpoint::Endpoint::builder()
10492                .url("https://mybucket--usw2-az12--x-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com")
10493                .property(
10494                    "authSchemes",
10495                    vec![{
10496                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10497                        out.insert("name".to_string(), "sigv4".to_string().into());
10498                        out.insert("signingName".to_string(), "s3express".to_string().into());
10499                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10500                        out.insert("disableDoubleEncoding".to_string(), true.into());
10501                        out
10502                    }
10503                    .into()]
10504                )
10505                .property("backend", "S3Express".to_string())
10506                .build()
10507        );
10508    }
10509
10510    /// Data Plane sigv4 auth with 9-char zone and FIPS with dualstack
10511    #[test]
10512    fn test_355() {
10513        let params = crate::config::endpoint::Params::builder()
10514            .region("us-west-2".to_string())
10515            .bucket("mybucket--usw2-az12--x-s3".to_string())
10516            .use_fips(true)
10517            .use_dual_stack(true)
10518            .accelerate(false)
10519            .disable_s3_express_session_auth(true)
10520            .build()
10521            .expect("invalid params");
10522        let resolver = crate::config::endpoint::DefaultResolver::new();
10523        let endpoint = resolver.resolve_endpoint(&params);
10524        let endpoint =
10525            endpoint.expect("Expected valid endpoint: https://mybucket--usw2-az12--x-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com");
10526        assert_eq!(
10527            endpoint,
10528            ::aws_smithy_types::endpoint::Endpoint::builder()
10529                .url("https://mybucket--usw2-az12--x-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com")
10530                .property(
10531                    "authSchemes",
10532                    vec![{
10533                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10534                        out.insert("name".to_string(), "sigv4".to_string().into());
10535                        out.insert("signingName".to_string(), "s3express".to_string().into());
10536                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10537                        out.insert("disableDoubleEncoding".to_string(), true.into());
10538                        out
10539                    }
10540                    .into()]
10541                )
10542                .property("backend", "S3Express".to_string())
10543                .build()
10544        );
10545    }
10546
10547    /// Data Plane with 13-char zone and dualstack
10548    #[test]
10549    fn test_356() {
10550        let params = crate::config::endpoint::Params::builder()
10551            .region("us-west-2".to_string())
10552            .bucket("mybucket--test-zone-ab1--x-s3".to_string())
10553            .use_fips(false)
10554            .use_dual_stack(true)
10555            .accelerate(false)
10556            .use_s3_express_control_endpoint(false)
10557            .build()
10558            .expect("invalid params");
10559        let resolver = crate::config::endpoint::DefaultResolver::new();
10560        let endpoint = resolver.resolve_endpoint(&params);
10561        let endpoint = endpoint
10562            .expect("Expected valid endpoint: https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com");
10563        assert_eq!(
10564            endpoint,
10565            ::aws_smithy_types::endpoint::Endpoint::builder()
10566                .url("https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com")
10567                .property(
10568                    "authSchemes",
10569                    vec![{
10570                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10571                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
10572                        out.insert("signingName".to_string(), "s3express".to_string().into());
10573                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10574                        out.insert("disableDoubleEncoding".to_string(), true.into());
10575                        out
10576                    }
10577                    .into()]
10578                )
10579                .property("backend", "S3Express".to_string())
10580                .build()
10581        );
10582    }
10583
10584    /// Data Plane with 13-char zone and FIPS with dualstack
10585    #[test]
10586    fn test_357() {
10587        let params = crate::config::endpoint::Params::builder()
10588            .region("us-west-2".to_string())
10589            .bucket("mybucket--test-zone-ab1--x-s3".to_string())
10590            .use_fips(true)
10591            .use_dual_stack(true)
10592            .accelerate(false)
10593            .use_s3_express_control_endpoint(false)
10594            .build()
10595            .expect("invalid params");
10596        let resolver = crate::config::endpoint::DefaultResolver::new();
10597        let endpoint = resolver.resolve_endpoint(&params);
10598        let endpoint = endpoint
10599            .expect("Expected valid endpoint: https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com");
10600        assert_eq!(
10601            endpoint,
10602            ::aws_smithy_types::endpoint::Endpoint::builder()
10603                .url("https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com")
10604                .property(
10605                    "authSchemes",
10606                    vec![{
10607                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10608                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
10609                        out.insert("signingName".to_string(), "s3express".to_string().into());
10610                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10611                        out.insert("disableDoubleEncoding".to_string(), true.into());
10612                        out
10613                    }
10614                    .into()]
10615                )
10616                .property("backend", "S3Express".to_string())
10617                .build()
10618        );
10619    }
10620
10621    /// Data Plane sigv4 auth with 13-char zone and dualstack
10622    #[test]
10623    fn test_358() {
10624        let params = crate::config::endpoint::Params::builder()
10625            .region("us-west-2".to_string())
10626            .bucket("mybucket--test-zone-ab1--x-s3".to_string())
10627            .use_fips(false)
10628            .use_dual_stack(true)
10629            .accelerate(false)
10630            .disable_s3_express_session_auth(true)
10631            .build()
10632            .expect("invalid params");
10633        let resolver = crate::config::endpoint::DefaultResolver::new();
10634        let endpoint = resolver.resolve_endpoint(&params);
10635        let endpoint = endpoint
10636            .expect("Expected valid endpoint: https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com");
10637        assert_eq!(
10638            endpoint,
10639            ::aws_smithy_types::endpoint::Endpoint::builder()
10640                .url("https://mybucket--test-zone-ab1--x-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com")
10641                .property(
10642                    "authSchemes",
10643                    vec![{
10644                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10645                        out.insert("name".to_string(), "sigv4".to_string().into());
10646                        out.insert("signingName".to_string(), "s3express".to_string().into());
10647                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10648                        out.insert("disableDoubleEncoding".to_string(), true.into());
10649                        out
10650                    }
10651                    .into()]
10652                )
10653                .property("backend", "S3Express".to_string())
10654                .build()
10655        );
10656    }
10657
10658    /// Data Plane sigv4 auth with 13-char zone and FIPS with dualstack
10659    #[test]
10660    fn test_359() {
10661        let params = crate::config::endpoint::Params::builder()
10662            .region("us-west-2".to_string())
10663            .bucket("mybucket--test-zone-ab1--x-s3".to_string())
10664            .use_fips(true)
10665            .use_dual_stack(true)
10666            .accelerate(false)
10667            .disable_s3_express_session_auth(true)
10668            .build()
10669            .expect("invalid params");
10670        let resolver = crate::config::endpoint::DefaultResolver::new();
10671        let endpoint = resolver.resolve_endpoint(&params);
10672        let endpoint = endpoint
10673            .expect("Expected valid endpoint: https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com");
10674        assert_eq!(
10675            endpoint,
10676            ::aws_smithy_types::endpoint::Endpoint::builder()
10677                .url("https://mybucket--test-zone-ab1--x-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com")
10678                .property(
10679                    "authSchemes",
10680                    vec![{
10681                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10682                        out.insert("name".to_string(), "sigv4".to_string().into());
10683                        out.insert("signingName".to_string(), "s3express".to_string().into());
10684                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10685                        out.insert("disableDoubleEncoding".to_string(), true.into());
10686                        out
10687                    }
10688                    .into()]
10689                )
10690                .property("backend", "S3Express".to_string())
10691                .build()
10692        );
10693    }
10694
10695    /// Data Plane with 14-char zone and dualstack
10696    #[test]
10697    fn test_360() {
10698        let params = crate::config::endpoint::Params::builder()
10699            .region("us-west-2".to_string())
10700            .bucket("mybucket--test1-zone-ab1--x-s3".to_string())
10701            .use_fips(false)
10702            .use_dual_stack(true)
10703            .accelerate(false)
10704            .use_s3_express_control_endpoint(false)
10705            .build()
10706            .expect("invalid params");
10707        let resolver = crate::config::endpoint::DefaultResolver::new();
10708        let endpoint = resolver.resolve_endpoint(&params);
10709        let endpoint = endpoint
10710            .expect("Expected valid endpoint: https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com");
10711        assert_eq!(
10712            endpoint,
10713            ::aws_smithy_types::endpoint::Endpoint::builder()
10714                .url("https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com")
10715                .property(
10716                    "authSchemes",
10717                    vec![{
10718                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10719                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
10720                        out.insert("signingName".to_string(), "s3express".to_string().into());
10721                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10722                        out.insert("disableDoubleEncoding".to_string(), true.into());
10723                        out
10724                    }
10725                    .into()]
10726                )
10727                .property("backend", "S3Express".to_string())
10728                .build()
10729        );
10730    }
10731
10732    /// Data Plane with 14-char zone and FIPS with dualstack
10733    #[test]
10734    fn test_361() {
10735        let params = crate::config::endpoint::Params::builder()
10736            .region("us-west-2".to_string())
10737            .bucket("mybucket--test1-zone-ab1--x-s3".to_string())
10738            .use_fips(true)
10739            .use_dual_stack(true)
10740            .accelerate(false)
10741            .use_s3_express_control_endpoint(false)
10742            .build()
10743            .expect("invalid params");
10744        let resolver = crate::config::endpoint::DefaultResolver::new();
10745        let endpoint = resolver.resolve_endpoint(&params);
10746        let endpoint = endpoint.expect(
10747            "Expected valid endpoint: https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com",
10748        );
10749        assert_eq!(
10750            endpoint,
10751            ::aws_smithy_types::endpoint::Endpoint::builder()
10752                .url("https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com")
10753                .property(
10754                    "authSchemes",
10755                    vec![{
10756                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10757                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
10758                        out.insert("signingName".to_string(), "s3express".to_string().into());
10759                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10760                        out.insert("disableDoubleEncoding".to_string(), true.into());
10761                        out
10762                    }
10763                    .into()]
10764                )
10765                .property("backend", "S3Express".to_string())
10766                .build()
10767        );
10768    }
10769
10770    /// Data Plane sigv4 auth with 14-char zone and dualstack
10771    #[test]
10772    fn test_362() {
10773        let params = crate::config::endpoint::Params::builder()
10774            .region("us-west-2".to_string())
10775            .bucket("mybucket--test1-zone-ab1--x-s3".to_string())
10776            .use_fips(false)
10777            .use_dual_stack(true)
10778            .accelerate(false)
10779            .disable_s3_express_session_auth(true)
10780            .build()
10781            .expect("invalid params");
10782        let resolver = crate::config::endpoint::DefaultResolver::new();
10783        let endpoint = resolver.resolve_endpoint(&params);
10784        let endpoint = endpoint
10785            .expect("Expected valid endpoint: https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com");
10786        assert_eq!(
10787            endpoint,
10788            ::aws_smithy_types::endpoint::Endpoint::builder()
10789                .url("https://mybucket--test1-zone-ab1--x-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com")
10790                .property(
10791                    "authSchemes",
10792                    vec![{
10793                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10794                        out.insert("name".to_string(), "sigv4".to_string().into());
10795                        out.insert("signingName".to_string(), "s3express".to_string().into());
10796                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10797                        out.insert("disableDoubleEncoding".to_string(), true.into());
10798                        out
10799                    }
10800                    .into()]
10801                )
10802                .property("backend", "S3Express".to_string())
10803                .build()
10804        );
10805    }
10806
10807    /// Data Plane sigv4 auth with 14-char zone and FIPS with dualstack
10808    #[test]
10809    fn test_363() {
10810        let params = crate::config::endpoint::Params::builder()
10811            .region("us-west-2".to_string())
10812            .bucket("mybucket--test1-zone-ab1--x-s3".to_string())
10813            .use_fips(true)
10814            .use_dual_stack(true)
10815            .accelerate(false)
10816            .disable_s3_express_session_auth(true)
10817            .build()
10818            .expect("invalid params");
10819        let resolver = crate::config::endpoint::DefaultResolver::new();
10820        let endpoint = resolver.resolve_endpoint(&params);
10821        let endpoint = endpoint.expect(
10822            "Expected valid endpoint: https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com",
10823        );
10824        assert_eq!(
10825            endpoint,
10826            ::aws_smithy_types::endpoint::Endpoint::builder()
10827                .url("https://mybucket--test1-zone-ab1--x-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com")
10828                .property(
10829                    "authSchemes",
10830                    vec![{
10831                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10832                        out.insert("name".to_string(), "sigv4".to_string().into());
10833                        out.insert("signingName".to_string(), "s3express".to_string().into());
10834                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10835                        out.insert("disableDoubleEncoding".to_string(), true.into());
10836                        out
10837                    }
10838                    .into()]
10839                )
10840                .property("backend", "S3Express".to_string())
10841                .build()
10842        );
10843    }
10844
10845    /// Data Plane with long zone (20 cha) and dualstack
10846    #[test]
10847    fn test_364() {
10848        let params = crate::config::endpoint::Params::builder()
10849            .region("us-west-2".to_string())
10850            .bucket("mybucket--test1-long1-zone-ab1--x-s3".to_string())
10851            .use_fips(false)
10852            .use_dual_stack(true)
10853            .accelerate(false)
10854            .use_s3_express_control_endpoint(false)
10855            .build()
10856            .expect("invalid params");
10857        let resolver = crate::config::endpoint::DefaultResolver::new();
10858        let endpoint = resolver.resolve_endpoint(&params);
10859        let endpoint = endpoint.expect(
10860            "Expected valid endpoint: https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com",
10861        );
10862        assert_eq!(
10863            endpoint,
10864            ::aws_smithy_types::endpoint::Endpoint::builder()
10865                .url("https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com")
10866                .property(
10867                    "authSchemes",
10868                    vec![{
10869                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10870                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
10871                        out.insert("signingName".to_string(), "s3express".to_string().into());
10872                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10873                        out.insert("disableDoubleEncoding".to_string(), true.into());
10874                        out
10875                    }
10876                    .into()]
10877                )
10878                .property("backend", "S3Express".to_string())
10879                .build()
10880        );
10881    }
10882
10883    /// Data Plane with long zone (20 char) and FIPS with dualstack
10884    #[test]
10885    fn test_365() {
10886        let params = crate::config::endpoint::Params::builder()
10887            .region("us-west-2".to_string())
10888            .bucket("mybucket--test1-long1-zone-ab1--x-s3".to_string())
10889            .use_fips(true)
10890            .use_dual_stack(true)
10891            .accelerate(false)
10892            .use_s3_express_control_endpoint(false)
10893            .build()
10894            .expect("invalid params");
10895        let resolver = crate::config::endpoint::DefaultResolver::new();
10896        let endpoint = resolver.resolve_endpoint(&params);
10897        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com");
10898        assert_eq!(
10899            endpoint,
10900            ::aws_smithy_types::endpoint::Endpoint::builder()
10901                .url("https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com")
10902                .property(
10903                    "authSchemes",
10904                    vec![{
10905                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10906                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
10907                        out.insert("signingName".to_string(), "s3express".to_string().into());
10908                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10909                        out.insert("disableDoubleEncoding".to_string(), true.into());
10910                        out
10911                    }
10912                    .into()]
10913                )
10914                .property("backend", "S3Express".to_string())
10915                .build()
10916        );
10917    }
10918
10919    /// Data Plane sigv4 auth with long zone (20 char) and dualstack
10920    #[test]
10921    fn test_366() {
10922        let params = crate::config::endpoint::Params::builder()
10923            .region("us-west-2".to_string())
10924            .bucket("mybucket--test1-long1-zone-ab1--x-s3".to_string())
10925            .use_fips(false)
10926            .use_dual_stack(true)
10927            .accelerate(false)
10928            .disable_s3_express_session_auth(true)
10929            .build()
10930            .expect("invalid params");
10931        let resolver = crate::config::endpoint::DefaultResolver::new();
10932        let endpoint = resolver.resolve_endpoint(&params);
10933        let endpoint = endpoint.expect(
10934            "Expected valid endpoint: https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com",
10935        );
10936        assert_eq!(
10937            endpoint,
10938            ::aws_smithy_types::endpoint::Endpoint::builder()
10939                .url("https://mybucket--test1-long1-zone-ab1--x-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com")
10940                .property(
10941                    "authSchemes",
10942                    vec![{
10943                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10944                        out.insert("name".to_string(), "sigv4".to_string().into());
10945                        out.insert("signingName".to_string(), "s3express".to_string().into());
10946                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10947                        out.insert("disableDoubleEncoding".to_string(), true.into());
10948                        out
10949                    }
10950                    .into()]
10951                )
10952                .property("backend", "S3Express".to_string())
10953                .build()
10954        );
10955    }
10956
10957    /// Data Plane sigv4 auth with long zone (20 char) and FIPS with dualstack
10958    #[test]
10959    fn test_367() {
10960        let params = crate::config::endpoint::Params::builder()
10961            .region("us-west-2".to_string())
10962            .bucket("mybucket--test1-long1-zone-ab1--x-s3".to_string())
10963            .use_fips(true)
10964            .use_dual_stack(true)
10965            .accelerate(false)
10966            .disable_s3_express_session_auth(true)
10967            .build()
10968            .expect("invalid params");
10969        let resolver = crate::config::endpoint::DefaultResolver::new();
10970        let endpoint = resolver.resolve_endpoint(&params);
10971        let endpoint = endpoint.expect("Expected valid endpoint: https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com");
10972        assert_eq!(
10973            endpoint,
10974            ::aws_smithy_types::endpoint::Endpoint::builder()
10975                .url("https://mybucket--test1-long1-zone-ab1--x-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com")
10976                .property(
10977                    "authSchemes",
10978                    vec![{
10979                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
10980                        out.insert("name".to_string(), "sigv4".to_string().into());
10981                        out.insert("signingName".to_string(), "s3express".to_string().into());
10982                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
10983                        out.insert("disableDoubleEncoding".to_string(), true.into());
10984                        out
10985                    }
10986                    .into()]
10987                )
10988                .property("backend", "S3Express".to_string())
10989                .build()
10990        );
10991    }
10992
10993    /// Control plane and FIPS with dualstack
10994    #[test]
10995    fn test_368() {
10996        let params = crate::config::endpoint::Params::builder()
10997            .region("us-east-1".to_string())
10998            .bucket("mybucket--test-ab1--x-s3".to_string())
10999            .use_fips(true)
11000            .use_dual_stack(true)
11001            .accelerate(false)
11002            .use_s3_express_control_endpoint(true)
11003            .build()
11004            .expect("invalid params");
11005        let resolver = crate::config::endpoint::DefaultResolver::new();
11006        let endpoint = resolver.resolve_endpoint(&params);
11007        let endpoint =
11008            endpoint.expect("Expected valid endpoint: https://s3express-control-fips.dualstack.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3");
11009        assert_eq!(
11010            endpoint,
11011            ::aws_smithy_types::endpoint::Endpoint::builder()
11012                .url("https://s3express-control-fips.dualstack.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3")
11013                .property(
11014                    "authSchemes",
11015                    vec![{
11016                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11017                        out.insert("name".to_string(), "sigv4".to_string().into());
11018                        out.insert("signingName".to_string(), "s3express".to_string().into());
11019                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
11020                        out.insert("disableDoubleEncoding".to_string(), true.into());
11021                        out
11022                    }
11023                    .into()]
11024                )
11025                .property("backend", "S3Express".to_string())
11026                .build()
11027        );
11028    }
11029
11030    /// Data plane with zone and dualstack and AP
11031    #[test]
11032    fn test_369() {
11033        let params = crate::config::endpoint::Params::builder()
11034            .region("us-west-2".to_string())
11035            .bucket("myaccesspoint--usw2-az1--xa-s3".to_string())
11036            .use_fips(false)
11037            .use_dual_stack(true)
11038            .accelerate(false)
11039            .use_s3_express_control_endpoint(false)
11040            .build()
11041            .expect("invalid params");
11042        let resolver = crate::config::endpoint::DefaultResolver::new();
11043        let endpoint = resolver.resolve_endpoint(&params);
11044        let endpoint =
11045            endpoint.expect("Expected valid endpoint: https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com");
11046        assert_eq!(
11047            endpoint,
11048            ::aws_smithy_types::endpoint::Endpoint::builder()
11049                .url("https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com")
11050                .property(
11051                    "authSchemes",
11052                    vec![{
11053                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11054                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
11055                        out.insert("signingName".to_string(), "s3express".to_string().into());
11056                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11057                        out.insert("disableDoubleEncoding".to_string(), true.into());
11058                        out
11059                    }
11060                    .into()]
11061                )
11062                .property("backend", "S3Express".to_string())
11063                .build()
11064        );
11065    }
11066
11067    /// Data plane with zone and FIPS with dualstack and AP
11068    #[test]
11069    fn test_370() {
11070        let params = crate::config::endpoint::Params::builder()
11071            .region("us-west-2".to_string())
11072            .bucket("myaccesspoint--usw2-az1--xa-s3".to_string())
11073            .use_fips(true)
11074            .use_dual_stack(true)
11075            .accelerate(false)
11076            .use_s3_express_control_endpoint(false)
11077            .build()
11078            .expect("invalid params");
11079        let resolver = crate::config::endpoint::DefaultResolver::new();
11080        let endpoint = resolver.resolve_endpoint(&params);
11081        let endpoint = endpoint
11082            .expect("Expected valid endpoint: https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com");
11083        assert_eq!(
11084            endpoint,
11085            ::aws_smithy_types::endpoint::Endpoint::builder()
11086                .url("https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com")
11087                .property(
11088                    "authSchemes",
11089                    vec![{
11090                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11091                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
11092                        out.insert("signingName".to_string(), "s3express".to_string().into());
11093                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11094                        out.insert("disableDoubleEncoding".to_string(), true.into());
11095                        out
11096                    }
11097                    .into()]
11098                )
11099                .property("backend", "S3Express".to_string())
11100                .build()
11101        );
11102    }
11103
11104    /// Data Plane sigv4 auth with zone and dualstack and AP
11105    #[test]
11106    fn test_371() {
11107        let params = crate::config::endpoint::Params::builder()
11108            .region("us-west-2".to_string())
11109            .bucket("myaccesspoint--usw2-az1--xa-s3".to_string())
11110            .use_fips(false)
11111            .use_dual_stack(true)
11112            .accelerate(false)
11113            .disable_s3_express_session_auth(true)
11114            .build()
11115            .expect("invalid params");
11116        let resolver = crate::config::endpoint::DefaultResolver::new();
11117        let endpoint = resolver.resolve_endpoint(&params);
11118        let endpoint =
11119            endpoint.expect("Expected valid endpoint: https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com");
11120        assert_eq!(
11121            endpoint,
11122            ::aws_smithy_types::endpoint::Endpoint::builder()
11123                .url("https://myaccesspoint--usw2-az1--xa-s3.s3express-usw2-az1.dualstack.us-west-2.amazonaws.com")
11124                .property(
11125                    "authSchemes",
11126                    vec![{
11127                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11128                        out.insert("name".to_string(), "sigv4".to_string().into());
11129                        out.insert("signingName".to_string(), "s3express".to_string().into());
11130                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11131                        out.insert("disableDoubleEncoding".to_string(), true.into());
11132                        out
11133                    }
11134                    .into()]
11135                )
11136                .property("backend", "S3Express".to_string())
11137                .build()
11138        );
11139    }
11140
11141    /// Data Plane AP sigv4 auth with zone and FIPS with dualstack
11142    #[test]
11143    fn test_372() {
11144        let params = crate::config::endpoint::Params::builder()
11145            .region("us-west-2".to_string())
11146            .bucket("myaccesspoint--usw2-az1--xa-s3".to_string())
11147            .use_fips(true)
11148            .use_dual_stack(true)
11149            .accelerate(false)
11150            .disable_s3_express_session_auth(true)
11151            .build()
11152            .expect("invalid params");
11153        let resolver = crate::config::endpoint::DefaultResolver::new();
11154        let endpoint = resolver.resolve_endpoint(&params);
11155        let endpoint = endpoint
11156            .expect("Expected valid endpoint: https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com");
11157        assert_eq!(
11158            endpoint,
11159            ::aws_smithy_types::endpoint::Endpoint::builder()
11160                .url("https://myaccesspoint--usw2-az1--xa-s3.s3express-fips-usw2-az1.dualstack.us-west-2.amazonaws.com")
11161                .property(
11162                    "authSchemes",
11163                    vec![{
11164                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11165                        out.insert("name".to_string(), "sigv4".to_string().into());
11166                        out.insert("signingName".to_string(), "s3express".to_string().into());
11167                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11168                        out.insert("disableDoubleEncoding".to_string(), true.into());
11169                        out
11170                    }
11171                    .into()]
11172                )
11173                .property("backend", "S3Express".to_string())
11174                .build()
11175        );
11176    }
11177
11178    /// Data Plane with zone (9 char) and AP with dualstack
11179    #[test]
11180    fn test_373() {
11181        let params = crate::config::endpoint::Params::builder()
11182            .region("us-west-2".to_string())
11183            .bucket("myaccesspoint--usw2-az12--xa-s3".to_string())
11184            .use_fips(false)
11185            .use_dual_stack(true)
11186            .accelerate(false)
11187            .use_s3_express_control_endpoint(false)
11188            .build()
11189            .expect("invalid params");
11190        let resolver = crate::config::endpoint::DefaultResolver::new();
11191        let endpoint = resolver.resolve_endpoint(&params);
11192        let endpoint =
11193            endpoint.expect("Expected valid endpoint: https://myaccesspoint--usw2-az12--xa-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com");
11194        assert_eq!(
11195            endpoint,
11196            ::aws_smithy_types::endpoint::Endpoint::builder()
11197                .url("https://myaccesspoint--usw2-az12--xa-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com")
11198                .property(
11199                    "authSchemes",
11200                    vec![{
11201                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11202                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
11203                        out.insert("signingName".to_string(), "s3express".to_string().into());
11204                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11205                        out.insert("disableDoubleEncoding".to_string(), true.into());
11206                        out
11207                    }
11208                    .into()]
11209                )
11210                .property("backend", "S3Express".to_string())
11211                .build()
11212        );
11213    }
11214
11215    /// Data Plane with zone (9 char) and FIPS with AP and dualstack
11216    #[test]
11217    fn test_374() {
11218        let params = crate::config::endpoint::Params::builder()
11219            .region("us-west-2".to_string())
11220            .bucket("myaccesspoint--usw2-az12--xa-s3".to_string())
11221            .use_fips(true)
11222            .use_dual_stack(true)
11223            .accelerate(false)
11224            .use_s3_express_control_endpoint(false)
11225            .build()
11226            .expect("invalid params");
11227        let resolver = crate::config::endpoint::DefaultResolver::new();
11228        let endpoint = resolver.resolve_endpoint(&params);
11229        let endpoint = endpoint
11230            .expect("Expected valid endpoint: https://myaccesspoint--usw2-az12--xa-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com");
11231        assert_eq!(
11232            endpoint,
11233            ::aws_smithy_types::endpoint::Endpoint::builder()
11234                .url("https://myaccesspoint--usw2-az12--xa-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com")
11235                .property(
11236                    "authSchemes",
11237                    vec![{
11238                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11239                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
11240                        out.insert("signingName".to_string(), "s3express".to_string().into());
11241                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11242                        out.insert("disableDoubleEncoding".to_string(), true.into());
11243                        out
11244                    }
11245                    .into()]
11246                )
11247                .property("backend", "S3Express".to_string())
11248                .build()
11249        );
11250    }
11251
11252    /// Data Plane sigv4 auth with (9 char) zone and dualstack with AP
11253    #[test]
11254    fn test_375() {
11255        let params = crate::config::endpoint::Params::builder()
11256            .region("us-west-2".to_string())
11257            .bucket("myaccesspoint--usw2-az12--xa-s3".to_string())
11258            .use_fips(false)
11259            .use_dual_stack(true)
11260            .accelerate(false)
11261            .disable_s3_express_session_auth(true)
11262            .build()
11263            .expect("invalid params");
11264        let resolver = crate::config::endpoint::DefaultResolver::new();
11265        let endpoint = resolver.resolve_endpoint(&params);
11266        let endpoint =
11267            endpoint.expect("Expected valid endpoint: https://myaccesspoint--usw2-az12--xa-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com");
11268        assert_eq!(
11269            endpoint,
11270            ::aws_smithy_types::endpoint::Endpoint::builder()
11271                .url("https://myaccesspoint--usw2-az12--xa-s3.s3express-usw2-az12.dualstack.us-west-2.amazonaws.com")
11272                .property(
11273                    "authSchemes",
11274                    vec![{
11275                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11276                        out.insert("name".to_string(), "sigv4".to_string().into());
11277                        out.insert("signingName".to_string(), "s3express".to_string().into());
11278                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11279                        out.insert("disableDoubleEncoding".to_string(), true.into());
11280                        out
11281                    }
11282                    .into()]
11283                )
11284                .property("backend", "S3Express".to_string())
11285                .build()
11286        );
11287    }
11288
11289    /// Access Point sigv4 auth with (9 char) zone and FIPS with dualstack
11290    #[test]
11291    fn test_376() {
11292        let params = crate::config::endpoint::Params::builder()
11293            .region("us-west-2".to_string())
11294            .bucket("myaccesspoint--usw2-az12--xa-s3".to_string())
11295            .use_fips(true)
11296            .use_dual_stack(true)
11297            .accelerate(false)
11298            .disable_s3_express_session_auth(true)
11299            .build()
11300            .expect("invalid params");
11301        let resolver = crate::config::endpoint::DefaultResolver::new();
11302        let endpoint = resolver.resolve_endpoint(&params);
11303        let endpoint = endpoint
11304            .expect("Expected valid endpoint: https://myaccesspoint--usw2-az12--xa-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com");
11305        assert_eq!(
11306            endpoint,
11307            ::aws_smithy_types::endpoint::Endpoint::builder()
11308                .url("https://myaccesspoint--usw2-az12--xa-s3.s3express-fips-usw2-az12.dualstack.us-west-2.amazonaws.com")
11309                .property(
11310                    "authSchemes",
11311                    vec![{
11312                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11313                        out.insert("name".to_string(), "sigv4".to_string().into());
11314                        out.insert("signingName".to_string(), "s3express".to_string().into());
11315                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11316                        out.insert("disableDoubleEncoding".to_string(), true.into());
11317                        out
11318                    }
11319                    .into()]
11320                )
11321                .property("backend", "S3Express".to_string())
11322                .build()
11323        );
11324    }
11325
11326    /// Data Plane with zone (13 char) and AP with dualstack
11327    #[test]
11328    fn test_377() {
11329        let params = crate::config::endpoint::Params::builder()
11330            .region("us-west-2".to_string())
11331            .bucket("myaccesspoint--test-zone-ab1--xa-s3".to_string())
11332            .use_fips(false)
11333            .use_dual_stack(true)
11334            .accelerate(false)
11335            .use_s3_express_control_endpoint(false)
11336            .build()
11337            .expect("invalid params");
11338        let resolver = crate::config::endpoint::DefaultResolver::new();
11339        let endpoint = resolver.resolve_endpoint(&params);
11340        let endpoint = endpoint
11341            .expect("Expected valid endpoint: https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com");
11342        assert_eq!(
11343            endpoint,
11344            ::aws_smithy_types::endpoint::Endpoint::builder()
11345                .url("https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com")
11346                .property(
11347                    "authSchemes",
11348                    vec![{
11349                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11350                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
11351                        out.insert("signingName".to_string(), "s3express".to_string().into());
11352                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11353                        out.insert("disableDoubleEncoding".to_string(), true.into());
11354                        out
11355                    }
11356                    .into()]
11357                )
11358                .property("backend", "S3Express".to_string())
11359                .build()
11360        );
11361    }
11362
11363    /// Data Plane with zone (13 char) and AP with FIPS and dualstack
11364    #[test]
11365    fn test_378() {
11366        let params = crate::config::endpoint::Params::builder()
11367            .region("us-west-2".to_string())
11368            .bucket("myaccesspoint--test-zone-ab1--xa-s3".to_string())
11369            .use_fips(true)
11370            .use_dual_stack(true)
11371            .accelerate(false)
11372            .use_s3_express_control_endpoint(false)
11373            .build()
11374            .expect("invalid params");
11375        let resolver = crate::config::endpoint::DefaultResolver::new();
11376        let endpoint = resolver.resolve_endpoint(&params);
11377        let endpoint = endpoint.expect(
11378            "Expected valid endpoint: https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com",
11379        );
11380        assert_eq!(
11381            endpoint,
11382            ::aws_smithy_types::endpoint::Endpoint::builder()
11383                .url("https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com")
11384                .property(
11385                    "authSchemes",
11386                    vec![{
11387                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11388                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
11389                        out.insert("signingName".to_string(), "s3express".to_string().into());
11390                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11391                        out.insert("disableDoubleEncoding".to_string(), true.into());
11392                        out
11393                    }
11394                    .into()]
11395                )
11396                .property("backend", "S3Express".to_string())
11397                .build()
11398        );
11399    }
11400
11401    /// Data Plane sigv4 auth with (13 char) zone with AP and dualstack
11402    #[test]
11403    fn test_379() {
11404        let params = crate::config::endpoint::Params::builder()
11405            .region("us-west-2".to_string())
11406            .bucket("myaccesspoint--test-zone-ab1--xa-s3".to_string())
11407            .use_fips(false)
11408            .use_dual_stack(true)
11409            .accelerate(false)
11410            .disable_s3_express_session_auth(true)
11411            .build()
11412            .expect("invalid params");
11413        let resolver = crate::config::endpoint::DefaultResolver::new();
11414        let endpoint = resolver.resolve_endpoint(&params);
11415        let endpoint = endpoint
11416            .expect("Expected valid endpoint: https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com");
11417        assert_eq!(
11418            endpoint,
11419            ::aws_smithy_types::endpoint::Endpoint::builder()
11420                .url("https://myaccesspoint--test-zone-ab1--xa-s3.s3express-test-zone-ab1.dualstack.us-west-2.amazonaws.com")
11421                .property(
11422                    "authSchemes",
11423                    vec![{
11424                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11425                        out.insert("name".to_string(), "sigv4".to_string().into());
11426                        out.insert("signingName".to_string(), "s3express".to_string().into());
11427                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11428                        out.insert("disableDoubleEncoding".to_string(), true.into());
11429                        out
11430                    }
11431                    .into()]
11432                )
11433                .property("backend", "S3Express".to_string())
11434                .build()
11435        );
11436    }
11437
11438    /// Data Plane sigv4 auth with (13 char) zone with AP and FIPS and dualstack
11439    #[test]
11440    fn test_380() {
11441        let params = crate::config::endpoint::Params::builder()
11442            .region("us-west-2".to_string())
11443            .bucket("myaccesspoint--test-zone-ab1--xa-s3".to_string())
11444            .use_fips(true)
11445            .use_dual_stack(true)
11446            .accelerate(false)
11447            .disable_s3_express_session_auth(true)
11448            .build()
11449            .expect("invalid params");
11450        let resolver = crate::config::endpoint::DefaultResolver::new();
11451        let endpoint = resolver.resolve_endpoint(&params);
11452        let endpoint = endpoint.expect(
11453            "Expected valid endpoint: https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com",
11454        );
11455        assert_eq!(
11456            endpoint,
11457            ::aws_smithy_types::endpoint::Endpoint::builder()
11458                .url("https://myaccesspoint--test-zone-ab1--xa-s3.s3express-fips-test-zone-ab1.dualstack.us-west-2.amazonaws.com")
11459                .property(
11460                    "authSchemes",
11461                    vec![{
11462                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11463                        out.insert("name".to_string(), "sigv4".to_string().into());
11464                        out.insert("signingName".to_string(), "s3express".to_string().into());
11465                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11466                        out.insert("disableDoubleEncoding".to_string(), true.into());
11467                        out
11468                    }
11469                    .into()]
11470                )
11471                .property("backend", "S3Express".to_string())
11472                .build()
11473        );
11474    }
11475
11476    /// Data Plane with (14 char) zone and AP with dualstack
11477    #[test]
11478    fn test_381() {
11479        let params = crate::config::endpoint::Params::builder()
11480            .region("us-west-2".to_string())
11481            .bucket("myaccesspoint--test1-zone-ab1--xa-s3".to_string())
11482            .use_fips(false)
11483            .use_dual_stack(true)
11484            .accelerate(false)
11485            .use_s3_express_control_endpoint(false)
11486            .build()
11487            .expect("invalid params");
11488        let resolver = crate::config::endpoint::DefaultResolver::new();
11489        let endpoint = resolver.resolve_endpoint(&params);
11490        let endpoint = endpoint.expect(
11491            "Expected valid endpoint: https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com",
11492        );
11493        assert_eq!(
11494            endpoint,
11495            ::aws_smithy_types::endpoint::Endpoint::builder()
11496                .url("https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com")
11497                .property(
11498                    "authSchemes",
11499                    vec![{
11500                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11501                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
11502                        out.insert("signingName".to_string(), "s3express".to_string().into());
11503                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11504                        out.insert("disableDoubleEncoding".to_string(), true.into());
11505                        out
11506                    }
11507                    .into()]
11508                )
11509                .property("backend", "S3Express".to_string())
11510                .build()
11511        );
11512    }
11513
11514    /// Data Plane with (14 char) zone and AP with FIPS and dualstack
11515    #[test]
11516    fn test_382() {
11517        let params = crate::config::endpoint::Params::builder()
11518            .region("us-west-2".to_string())
11519            .bucket("myaccesspoint--test1-zone-ab1--xa-s3".to_string())
11520            .use_fips(true)
11521            .use_dual_stack(true)
11522            .accelerate(false)
11523            .use_s3_express_control_endpoint(false)
11524            .build()
11525            .expect("invalid params");
11526        let resolver = crate::config::endpoint::DefaultResolver::new();
11527        let endpoint = resolver.resolve_endpoint(&params);
11528        let endpoint = endpoint.expect(
11529            "Expected valid endpoint: https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com",
11530        );
11531        assert_eq!(
11532            endpoint,
11533            ::aws_smithy_types::endpoint::Endpoint::builder()
11534                .url("https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com")
11535                .property(
11536                    "authSchemes",
11537                    vec![{
11538                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11539                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
11540                        out.insert("signingName".to_string(), "s3express".to_string().into());
11541                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11542                        out.insert("disableDoubleEncoding".to_string(), true.into());
11543                        out
11544                    }
11545                    .into()]
11546                )
11547                .property("backend", "S3Express".to_string())
11548                .build()
11549        );
11550    }
11551
11552    /// Data Plane sigv4 auth with (14 char) zone and AP with dualstack
11553    #[test]
11554    fn test_383() {
11555        let params = crate::config::endpoint::Params::builder()
11556            .region("us-west-2".to_string())
11557            .bucket("myaccesspoint--test1-zone-ab1--xa-s3".to_string())
11558            .use_fips(false)
11559            .use_dual_stack(true)
11560            .accelerate(false)
11561            .disable_s3_express_session_auth(true)
11562            .build()
11563            .expect("invalid params");
11564        let resolver = crate::config::endpoint::DefaultResolver::new();
11565        let endpoint = resolver.resolve_endpoint(&params);
11566        let endpoint = endpoint.expect(
11567            "Expected valid endpoint: https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com",
11568        );
11569        assert_eq!(
11570            endpoint,
11571            ::aws_smithy_types::endpoint::Endpoint::builder()
11572                .url("https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-test1-zone-ab1.dualstack.us-west-2.amazonaws.com")
11573                .property(
11574                    "authSchemes",
11575                    vec![{
11576                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11577                        out.insert("name".to_string(), "sigv4".to_string().into());
11578                        out.insert("signingName".to_string(), "s3express".to_string().into());
11579                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11580                        out.insert("disableDoubleEncoding".to_string(), true.into());
11581                        out
11582                    }
11583                    .into()]
11584                )
11585                .property("backend", "S3Express".to_string())
11586                .build()
11587        );
11588    }
11589
11590    /// Data Plane with (14 char) zone and AP with FIPS and dualstack
11591    #[test]
11592    fn test_384() {
11593        let params = crate::config::endpoint::Params::builder()
11594            .region("us-west-2".to_string())
11595            .bucket("myaccesspoint--test1-zone-ab1--xa-s3".to_string())
11596            .use_fips(true)
11597            .use_dual_stack(true)
11598            .accelerate(false)
11599            .disable_s3_express_session_auth(true)
11600            .build()
11601            .expect("invalid params");
11602        let resolver = crate::config::endpoint::DefaultResolver::new();
11603        let endpoint = resolver.resolve_endpoint(&params);
11604        let endpoint = endpoint.expect(
11605            "Expected valid endpoint: https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com",
11606        );
11607        assert_eq!(
11608            endpoint,
11609            ::aws_smithy_types::endpoint::Endpoint::builder()
11610                .url("https://myaccesspoint--test1-zone-ab1--xa-s3.s3express-fips-test1-zone-ab1.dualstack.us-west-2.amazonaws.com")
11611                .property(
11612                    "authSchemes",
11613                    vec![{
11614                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11615                        out.insert("name".to_string(), "sigv4".to_string().into());
11616                        out.insert("signingName".to_string(), "s3express".to_string().into());
11617                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11618                        out.insert("disableDoubleEncoding".to_string(), true.into());
11619                        out
11620                    }
11621                    .into()]
11622                )
11623                .property("backend", "S3Express".to_string())
11624                .build()
11625        );
11626    }
11627
11628    /// Data Plane with (20 char) zone and AP with dualstack
11629    #[test]
11630    fn test_385() {
11631        let params = crate::config::endpoint::Params::builder()
11632            .region("us-west-2".to_string())
11633            .bucket("myaccesspoint--test1-long1-zone-ab1--xa-s3".to_string())
11634            .use_fips(false)
11635            .use_dual_stack(true)
11636            .accelerate(false)
11637            .use_s3_express_control_endpoint(false)
11638            .build()
11639            .expect("invalid params");
11640        let resolver = crate::config::endpoint::DefaultResolver::new();
11641        let endpoint = resolver.resolve_endpoint(&params);
11642        let endpoint = endpoint.expect("Expected valid endpoint: https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com");
11643        assert_eq!(
11644            endpoint,
11645            ::aws_smithy_types::endpoint::Endpoint::builder()
11646                .url("https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com")
11647                .property(
11648                    "authSchemes",
11649                    vec![{
11650                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11651                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
11652                        out.insert("signingName".to_string(), "s3express".to_string().into());
11653                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11654                        out.insert("disableDoubleEncoding".to_string(), true.into());
11655                        out
11656                    }
11657                    .into()]
11658                )
11659                .property("backend", "S3Express".to_string())
11660                .build()
11661        );
11662    }
11663
11664    /// Data Plane with (20 char) zone and AP with FIPS and dualstack
11665    #[test]
11666    fn test_386() {
11667        let params = crate::config::endpoint::Params::builder()
11668            .region("us-west-2".to_string())
11669            .bucket("myaccesspoint--test1-long1-zone-ab1--xa-s3".to_string())
11670            .use_fips(true)
11671            .use_dual_stack(true)
11672            .accelerate(false)
11673            .use_s3_express_control_endpoint(false)
11674            .build()
11675            .expect("invalid params");
11676        let resolver = crate::config::endpoint::DefaultResolver::new();
11677        let endpoint = resolver.resolve_endpoint(&params);
11678        let endpoint = endpoint.expect("Expected valid endpoint: https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com");
11679        assert_eq!(
11680            endpoint,
11681            ::aws_smithy_types::endpoint::Endpoint::builder()
11682                .url("https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com")
11683                .property(
11684                    "authSchemes",
11685                    vec![{
11686                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11687                        out.insert("name".to_string(), "sigv4-s3express".to_string().into());
11688                        out.insert("signingName".to_string(), "s3express".to_string().into());
11689                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11690                        out.insert("disableDoubleEncoding".to_string(), true.into());
11691                        out
11692                    }
11693                    .into()]
11694                )
11695                .property("backend", "S3Express".to_string())
11696                .build()
11697        );
11698    }
11699
11700    /// Data plane AP with sigv4 and dualstack
11701    #[test]
11702    fn test_387() {
11703        let params = crate::config::endpoint::Params::builder()
11704            .region("us-west-2".to_string())
11705            .bucket("myaccesspoint--test1-long1-zone-ab1--xa-s3".to_string())
11706            .use_fips(false)
11707            .use_dual_stack(true)
11708            .accelerate(false)
11709            .disable_s3_express_session_auth(true)
11710            .build()
11711            .expect("invalid params");
11712        let resolver = crate::config::endpoint::DefaultResolver::new();
11713        let endpoint = resolver.resolve_endpoint(&params);
11714        let endpoint = endpoint.expect("Expected valid endpoint: https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com");
11715        assert_eq!(
11716            endpoint,
11717            ::aws_smithy_types::endpoint::Endpoint::builder()
11718                .url("https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com")
11719                .property(
11720                    "authSchemes",
11721                    vec![{
11722                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11723                        out.insert("name".to_string(), "sigv4".to_string().into());
11724                        out.insert("signingName".to_string(), "s3express".to_string().into());
11725                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11726                        out.insert("disableDoubleEncoding".to_string(), true.into());
11727                        out
11728                    }
11729                    .into()]
11730                )
11731                .property("backend", "S3Express".to_string())
11732                .build()
11733        );
11734    }
11735
11736    /// Data plane AP sigv4 with fips and dualstack
11737    #[test]
11738    fn test_388() {
11739        let params = crate::config::endpoint::Params::builder()
11740            .region("us-west-2".to_string())
11741            .bucket("myaccesspoint--test1-long1-zone-ab1--xa-s3".to_string())
11742            .use_fips(true)
11743            .use_dual_stack(true)
11744            .accelerate(false)
11745            .disable_s3_express_session_auth(true)
11746            .build()
11747            .expect("invalid params");
11748        let resolver = crate::config::endpoint::DefaultResolver::new();
11749        let endpoint = resolver.resolve_endpoint(&params);
11750        let endpoint = endpoint.expect("Expected valid endpoint: https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com");
11751        assert_eq!(
11752            endpoint,
11753            ::aws_smithy_types::endpoint::Endpoint::builder()
11754                .url("https://myaccesspoint--test1-long1-zone-ab1--xa-s3.s3express-fips-test1-long1-zone-ab1.dualstack.us-west-2.amazonaws.com")
11755                .property(
11756                    "authSchemes",
11757                    vec![{
11758                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11759                        out.insert("name".to_string(), "sigv4".to_string().into());
11760                        out.insert("signingName".to_string(), "s3express".to_string().into());
11761                        out.insert("signingRegion".to_string(), "us-west-2".to_string().into());
11762                        out.insert("disableDoubleEncoding".to_string(), true.into());
11763                        out
11764                    }
11765                    .into()]
11766                )
11767                .property("backend", "S3Express".to_string())
11768                .build()
11769        );
11770    }
11771
11772    /// Control plane with dualstack and bucket
11773    #[test]
11774    fn test_389() {
11775        let params = crate::config::endpoint::Params::builder()
11776            .region("us-east-1".to_string())
11777            .bucket("mybucket--test-ab1--x-s3".to_string())
11778            .use_fips(false)
11779            .use_dual_stack(true)
11780            .accelerate(false)
11781            .use_s3_express_control_endpoint(true)
11782            .build()
11783            .expect("invalid params");
11784        let resolver = crate::config::endpoint::DefaultResolver::new();
11785        let endpoint = resolver.resolve_endpoint(&params);
11786        let endpoint =
11787            endpoint.expect("Expected valid endpoint: https://s3express-control.dualstack.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3");
11788        assert_eq!(
11789            endpoint,
11790            ::aws_smithy_types::endpoint::Endpoint::builder()
11791                .url("https://s3express-control.dualstack.us-east-1.amazonaws.com/mybucket--test-ab1--x-s3")
11792                .property(
11793                    "authSchemes",
11794                    vec![{
11795                        let mut out = ::std::collections::HashMap::<String, ::aws_smithy_types::Document>::new();
11796                        out.insert("name".to_string(), "sigv4".to_string().into());
11797                        out.insert("signingName".to_string(), "s3express".to_string().into());
11798                        out.insert("signingRegion".to_string(), "us-east-1".to_string().into());
11799                        out.insert("disableDoubleEncoding".to_string(), true.into());
11800                        out
11801                    }
11802                    .into()]
11803                )
11804                .property("backend", "S3Express".to_string())
11805                .build()
11806        );
11807    }
11808}
11809
11810/// Endpoint resolver trait specific to Amazon Simple Storage Service
11811pub trait ResolveEndpoint: ::std::marker::Send + ::std::marker::Sync + ::std::fmt::Debug {
11812    /// Resolve an endpoint with the given parameters
11813    fn resolve_endpoint<'a>(&'a self, params: &'a crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a>;
11814
11815    /// Convert this service-specific resolver into a `SharedEndpointResolver`
11816    ///
11817    /// The resulting resolver will downcast `EndpointResolverParams` into `crate::config::endpoint::Params`.
11818    fn into_shared_resolver(self) -> ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver
11819    where
11820        Self: Sized + 'static,
11821    {
11822        ::aws_smithy_runtime_api::client::endpoint::SharedEndpointResolver::new(DowncastParams(self))
11823    }
11824}
11825
11826#[derive(Debug)]
11827struct DowncastParams<T>(T);
11828impl<T> ::aws_smithy_runtime_api::client::endpoint::ResolveEndpoint for DowncastParams<T>
11829where
11830    T: ResolveEndpoint,
11831{
11832    fn resolve_endpoint<'a>(
11833        &'a self,
11834        params: &'a ::aws_smithy_runtime_api::client::endpoint::EndpointResolverParams,
11835    ) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'a> {
11836        let ep = match params.get::<crate::config::endpoint::Params>() {
11837            Some(params) => self.0.resolve_endpoint(params),
11838            None => ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(Err("params of expected type was not present".into())),
11839        };
11840        ep
11841    }
11842}
11843
11844/// The default endpoint resolver
11845#[derive(Debug, Default)]
11846pub struct DefaultResolver {
11847    partition_resolver: crate::endpoint_lib::partition::PartitionResolver,
11848}
11849
11850impl DefaultResolver {
11851    /// Create a new endpoint resolver with default settings
11852    pub fn new() -> Self {
11853        Self {
11854            partition_resolver: crate::endpoint_lib::DEFAULT_PARTITION_RESOLVER.clone(),
11855        }
11856    }
11857
11858    fn resolve_endpoint(
11859        &self,
11860        params: &crate::config::endpoint::Params,
11861    ) -> ::std::result::Result<::aws_smithy_types::endpoint::Endpoint, ::aws_smithy_runtime_api::box_error::BoxError> {
11862        let mut diagnostic_collector = crate::endpoint_lib::diagnostic::DiagnosticCollector::new();
11863        Ok(
11864            crate::config::endpoint::internals::resolve_endpoint(params, &mut diagnostic_collector, &self.partition_resolver)
11865                .map_err(|err| err.with_source(diagnostic_collector.take_last_error()))?,
11866        )
11867    }
11868}
11869
11870impl crate::config::endpoint::ResolveEndpoint for DefaultResolver {
11871    fn resolve_endpoint(&self, params: &crate::config::endpoint::Params) -> ::aws_smithy_runtime_api::client::endpoint::EndpointFuture<'_> {
11872        ::aws_smithy_runtime_api::client::endpoint::EndpointFuture::ready(self.resolve_endpoint(params))
11873    }
11874}
11875
11876#[non_exhaustive]
11877#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
11878/// Configuration parameters for resolving the correct endpoint
11879pub struct Params {
11880    /// The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.
11881    pub(crate) bucket: ::std::option::Option<::std::string::String>,
11882    /// The AWS region used to dispatch the request.
11883    pub(crate) region: ::std::option::Option<::std::string::String>,
11884    /// 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.
11885    pub(crate) use_fips: bool,
11886    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
11887    pub(crate) use_dual_stack: bool,
11888    /// Override the endpoint used to send this request
11889    pub(crate) endpoint: ::std::option::Option<::std::string::String>,
11890    /// When true, force a path-style endpoint to be used where the bucket name is part of the path.
11891    pub(crate) force_path_style: bool,
11892    /// When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.
11893    pub(crate) accelerate: bool,
11894    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
11895    pub(crate) use_global_endpoint: bool,
11896    /// Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)
11897    pub(crate) use_object_lambda_endpoint: ::std::option::Option<bool>,
11898    /// The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key.
11899    pub(crate) key: ::std::option::Option<::std::string::String>,
11900    /// The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix.
11901    pub(crate) prefix: ::std::option::Option<::std::string::String>,
11902    /// The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source.
11903    pub(crate) copy_source: ::std::option::Option<::std::string::String>,
11904    /// Internal parameter to disable Access Point Buckets
11905    pub(crate) disable_access_points: ::std::option::Option<bool>,
11906    /// Whether multi-region access points (MRAP) should be disabled.
11907    pub(crate) disable_multi_region_access_points: bool,
11908    /// When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.
11909    pub(crate) use_arn_region: ::std::option::Option<bool>,
11910    /// Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)
11911    pub(crate) use_s3_express_control_endpoint: ::std::option::Option<bool>,
11912    /// Parameter to indicate whether S3Express session auth should be disabled
11913    pub(crate) disable_s3_express_session_auth: ::std::option::Option<bool>,
11914}
11915impl Params {
11916    /// Create a builder for [`Params`]
11917    pub fn builder() -> crate::config::endpoint::ParamsBuilder {
11918        crate::config::endpoint::ParamsBuilder::default()
11919    }
11920    /// The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.
11921    pub fn bucket(&self) -> ::std::option::Option<&str> {
11922        self.bucket.as_deref()
11923    }
11924    /// The AWS region used to dispatch the request.
11925    pub fn region(&self) -> ::std::option::Option<&str> {
11926        self.region.as_deref()
11927    }
11928    /// 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.
11929    pub fn use_fips(&self) -> ::std::option::Option<bool> {
11930        Some(self.use_fips)
11931    }
11932    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
11933    pub fn use_dual_stack(&self) -> ::std::option::Option<bool> {
11934        Some(self.use_dual_stack)
11935    }
11936    /// Override the endpoint used to send this request
11937    pub fn endpoint(&self) -> ::std::option::Option<&str> {
11938        self.endpoint.as_deref()
11939    }
11940    /// When true, force a path-style endpoint to be used where the bucket name is part of the path.
11941    pub fn force_path_style(&self) -> ::std::option::Option<bool> {
11942        Some(self.force_path_style)
11943    }
11944    /// When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.
11945    pub fn accelerate(&self) -> ::std::option::Option<bool> {
11946        Some(self.accelerate)
11947    }
11948    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
11949    pub fn use_global_endpoint(&self) -> ::std::option::Option<bool> {
11950        Some(self.use_global_endpoint)
11951    }
11952    /// Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)
11953    pub fn use_object_lambda_endpoint(&self) -> ::std::option::Option<bool> {
11954        self.use_object_lambda_endpoint
11955    }
11956    /// The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key.
11957    pub fn key(&self) -> ::std::option::Option<&str> {
11958        self.key.as_deref()
11959    }
11960    /// The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix.
11961    pub fn prefix(&self) -> ::std::option::Option<&str> {
11962        self.prefix.as_deref()
11963    }
11964    /// The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source.
11965    pub fn copy_source(&self) -> ::std::option::Option<&str> {
11966        self.copy_source.as_deref()
11967    }
11968    /// Internal parameter to disable Access Point Buckets
11969    pub fn disable_access_points(&self) -> ::std::option::Option<bool> {
11970        self.disable_access_points
11971    }
11972    /// Whether multi-region access points (MRAP) should be disabled.
11973    pub fn disable_multi_region_access_points(&self) -> ::std::option::Option<bool> {
11974        Some(self.disable_multi_region_access_points)
11975    }
11976    /// When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.
11977    pub fn use_arn_region(&self) -> ::std::option::Option<bool> {
11978        self.use_arn_region
11979    }
11980    /// Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)
11981    pub fn use_s3_express_control_endpoint(&self) -> ::std::option::Option<bool> {
11982        self.use_s3_express_control_endpoint
11983    }
11984    /// Parameter to indicate whether S3Express session auth should be disabled
11985    pub fn disable_s3_express_session_auth(&self) -> ::std::option::Option<bool> {
11986        self.disable_s3_express_session_auth
11987    }
11988}
11989
11990/// Builder for [`Params`]
11991#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
11992pub struct ParamsBuilder {
11993    bucket: ::std::option::Option<::std::string::String>,
11994    region: ::std::option::Option<::std::string::String>,
11995    use_fips: ::std::option::Option<bool>,
11996    use_dual_stack: ::std::option::Option<bool>,
11997    endpoint: ::std::option::Option<::std::string::String>,
11998    force_path_style: ::std::option::Option<bool>,
11999    accelerate: ::std::option::Option<bool>,
12000    use_global_endpoint: ::std::option::Option<bool>,
12001    use_object_lambda_endpoint: ::std::option::Option<bool>,
12002    key: ::std::option::Option<::std::string::String>,
12003    prefix: ::std::option::Option<::std::string::String>,
12004    copy_source: ::std::option::Option<::std::string::String>,
12005    disable_access_points: ::std::option::Option<bool>,
12006    disable_multi_region_access_points: ::std::option::Option<bool>,
12007    use_arn_region: ::std::option::Option<bool>,
12008    use_s3_express_control_endpoint: ::std::option::Option<bool>,
12009    disable_s3_express_session_auth: ::std::option::Option<bool>,
12010}
12011impl ParamsBuilder {
12012    /// Consume this builder, creating [`Params`].
12013    pub fn build(self) -> ::std::result::Result<crate::config::endpoint::Params, crate::config::endpoint::InvalidParams> {
12014        Ok(
12015            #[allow(clippy::unnecessary_lazy_evaluations)]
12016            crate::config::endpoint::Params {
12017                bucket: self.bucket,
12018                region: self.region,
12019                use_fips: self
12020                    .use_fips
12021                    .or_else(|| Some(false))
12022                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("use_fips"))?,
12023                use_dual_stack: self
12024                    .use_dual_stack
12025                    .or_else(|| Some(false))
12026                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("use_dual_stack"))?,
12027                endpoint: self.endpoint,
12028                force_path_style: self
12029                    .force_path_style
12030                    .or_else(|| Some(false))
12031                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("force_path_style"))?,
12032                accelerate: self
12033                    .accelerate
12034                    .or_else(|| Some(false))
12035                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("accelerate"))?,
12036                use_global_endpoint: self
12037                    .use_global_endpoint
12038                    .or_else(|| Some(false))
12039                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("use_global_endpoint"))?,
12040                use_object_lambda_endpoint: self.use_object_lambda_endpoint,
12041                key: self.key,
12042                prefix: self.prefix,
12043                copy_source: self.copy_source,
12044                disable_access_points: self.disable_access_points,
12045                disable_multi_region_access_points: self
12046                    .disable_multi_region_access_points
12047                    .or_else(|| Some(false))
12048                    .ok_or_else(|| crate::config::endpoint::InvalidParams::missing("disable_multi_region_access_points"))?,
12049                use_arn_region: self.use_arn_region,
12050                use_s3_express_control_endpoint: self.use_s3_express_control_endpoint,
12051                disable_s3_express_session_auth: self.disable_s3_express_session_auth,
12052            },
12053        )
12054    }
12055    /// Sets the value for bucket
12056    ///
12057    /// The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.
12058    pub fn bucket(mut self, value: impl Into<::std::string::String>) -> Self {
12059        self.bucket = Some(value.into());
12060        self
12061    }
12062
12063    /// Sets the value for bucket
12064    ///
12065    /// The S3 bucket used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 bucket.
12066    pub fn set_bucket(mut self, param: Option<::std::string::String>) -> Self {
12067        self.bucket = param;
12068        self
12069    }
12070    /// Sets the value for region
12071    ///
12072    /// The AWS region used to dispatch the request.
12073    pub fn region(mut self, value: impl Into<::std::string::String>) -> Self {
12074        self.region = Some(value.into());
12075        self
12076    }
12077
12078    /// Sets the value for region
12079    ///
12080    /// The AWS region used to dispatch the request.
12081    pub fn set_region(mut self, param: Option<::std::string::String>) -> Self {
12082        self.region = param;
12083        self
12084    }
12085    /// Sets the value for use_fips
12086    ///
12087    /// When unset, this parameter has a default value of `false`.
12088    /// 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.
12089    pub fn use_fips(mut self, value: impl Into<bool>) -> Self {
12090        self.use_fips = Some(value.into());
12091        self
12092    }
12093
12094    /// Sets the value for use_fips
12095    ///
12096    /// When unset, this parameter has a default value of `false`.
12097    /// 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.
12098    pub fn set_use_fips(mut self, param: Option<bool>) -> Self {
12099        self.use_fips = param;
12100        self
12101    }
12102    /// Sets the value for use_dual_stack
12103    ///
12104    /// When unset, this parameter has a default value of `false`.
12105    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
12106    pub fn use_dual_stack(mut self, value: impl Into<bool>) -> Self {
12107        self.use_dual_stack = Some(value.into());
12108        self
12109    }
12110
12111    /// Sets the value for use_dual_stack
12112    ///
12113    /// When unset, this parameter has a default value of `false`.
12114    /// When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
12115    pub fn set_use_dual_stack(mut self, param: Option<bool>) -> Self {
12116        self.use_dual_stack = param;
12117        self
12118    }
12119    /// Sets the value for endpoint
12120    ///
12121    /// Override the endpoint used to send this request
12122    pub fn endpoint(mut self, value: impl Into<::std::string::String>) -> Self {
12123        self.endpoint = Some(value.into());
12124        self
12125    }
12126
12127    /// Sets the value for endpoint
12128    ///
12129    /// Override the endpoint used to send this request
12130    pub fn set_endpoint(mut self, param: Option<::std::string::String>) -> Self {
12131        self.endpoint = param;
12132        self
12133    }
12134    /// Sets the value for force_path_style
12135    ///
12136    /// When unset, this parameter has a default value of `false`.
12137    /// When true, force a path-style endpoint to be used where the bucket name is part of the path.
12138    pub fn force_path_style(mut self, value: impl Into<bool>) -> Self {
12139        self.force_path_style = Some(value.into());
12140        self
12141    }
12142
12143    /// Sets the value for force_path_style
12144    ///
12145    /// When unset, this parameter has a default value of `false`.
12146    /// When true, force a path-style endpoint to be used where the bucket name is part of the path.
12147    pub fn set_force_path_style(mut self, param: Option<bool>) -> Self {
12148        self.force_path_style = param;
12149        self
12150    }
12151    /// Sets the value for accelerate
12152    ///
12153    /// When unset, this parameter has a default value of `false`.
12154    /// When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.
12155    pub fn accelerate(mut self, value: impl Into<bool>) -> Self {
12156        self.accelerate = Some(value.into());
12157        self
12158    }
12159
12160    /// Sets the value for accelerate
12161    ///
12162    /// When unset, this parameter has a default value of `false`.
12163    /// When true, use S3 Accelerate. NOTE: Not all regions support S3 accelerate.
12164    pub fn set_accelerate(mut self, param: Option<bool>) -> Self {
12165        self.accelerate = param;
12166        self
12167    }
12168    /// Sets the value for use_global_endpoint
12169    ///
12170    /// When unset, this parameter has a default value of `false`.
12171    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
12172    pub fn use_global_endpoint(mut self, value: impl Into<bool>) -> Self {
12173        self.use_global_endpoint = Some(value.into());
12174        self
12175    }
12176
12177    /// Sets the value for use_global_endpoint
12178    ///
12179    /// When unset, this parameter has a default value of `false`.
12180    /// Whether the global endpoint should be used, rather then the regional endpoint for us-east-1.
12181    pub fn set_use_global_endpoint(mut self, param: Option<bool>) -> Self {
12182        self.use_global_endpoint = param;
12183        self
12184    }
12185    /// Sets the value for use_object_lambda_endpoint
12186    ///
12187    /// Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)
12188    pub fn use_object_lambda_endpoint(mut self, value: impl Into<bool>) -> Self {
12189        self.use_object_lambda_endpoint = Some(value.into());
12190        self
12191    }
12192
12193    /// Sets the value for use_object_lambda_endpoint
12194    ///
12195    /// Internal parameter to use object lambda endpoint for an operation (eg: WriteGetObjectResponse)
12196    pub fn set_use_object_lambda_endpoint(mut self, param: Option<bool>) -> Self {
12197        self.use_object_lambda_endpoint = param;
12198        self
12199    }
12200    /// Sets the value for key
12201    ///
12202    /// The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key.
12203    pub fn key(mut self, value: impl Into<::std::string::String>) -> Self {
12204        self.key = Some(value.into());
12205        self
12206    }
12207
12208    /// Sets the value for key
12209    ///
12210    /// The S3 Key used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Key.
12211    pub fn set_key(mut self, param: Option<::std::string::String>) -> Self {
12212        self.key = param;
12213        self
12214    }
12215    /// Sets the value for prefix
12216    ///
12217    /// The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix.
12218    pub fn prefix(mut self, value: impl Into<::std::string::String>) -> Self {
12219        self.prefix = Some(value.into());
12220        self
12221    }
12222
12223    /// Sets the value for prefix
12224    ///
12225    /// The S3 Prefix used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 Prefix.
12226    pub fn set_prefix(mut self, param: Option<::std::string::String>) -> Self {
12227        self.prefix = param;
12228        self
12229    }
12230    /// Sets the value for copy_source
12231    ///
12232    /// The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source.
12233    pub fn copy_source(mut self, value: impl Into<::std::string::String>) -> Self {
12234        self.copy_source = Some(value.into());
12235        self
12236    }
12237
12238    /// Sets the value for copy_source
12239    ///
12240    /// The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source.
12241    pub fn set_copy_source(mut self, param: Option<::std::string::String>) -> Self {
12242        self.copy_source = param;
12243        self
12244    }
12245    /// Sets the value for disable_access_points
12246    ///
12247    /// Internal parameter to disable Access Point Buckets
12248    pub fn disable_access_points(mut self, value: impl Into<bool>) -> Self {
12249        self.disable_access_points = Some(value.into());
12250        self
12251    }
12252
12253    /// Sets the value for disable_access_points
12254    ///
12255    /// Internal parameter to disable Access Point Buckets
12256    pub fn set_disable_access_points(mut self, param: Option<bool>) -> Self {
12257        self.disable_access_points = param;
12258        self
12259    }
12260    /// Sets the value for disable_multi_region_access_points
12261    ///
12262    /// When unset, this parameter has a default value of `false`.
12263    /// Whether multi-region access points (MRAP) should be disabled.
12264    pub fn disable_multi_region_access_points(mut self, value: impl Into<bool>) -> Self {
12265        self.disable_multi_region_access_points = Some(value.into());
12266        self
12267    }
12268
12269    /// Sets the value for disable_multi_region_access_points
12270    ///
12271    /// When unset, this parameter has a default value of `false`.
12272    /// Whether multi-region access points (MRAP) should be disabled.
12273    pub fn set_disable_multi_region_access_points(mut self, param: Option<bool>) -> Self {
12274        self.disable_multi_region_access_points = param;
12275        self
12276    }
12277    /// Sets the value for use_arn_region
12278    ///
12279    /// When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.
12280    pub fn use_arn_region(mut self, value: impl Into<bool>) -> Self {
12281        self.use_arn_region = Some(value.into());
12282        self
12283    }
12284
12285    /// Sets the value for use_arn_region
12286    ///
12287    /// When an Access Point ARN is provided and this flag is enabled, the SDK MUST use the ARN's region when constructing the endpoint instead of the client's configured region.
12288    pub fn set_use_arn_region(mut self, param: Option<bool>) -> Self {
12289        self.use_arn_region = param;
12290        self
12291    }
12292    /// Sets the value for use_s3_express_control_endpoint
12293    ///
12294    /// Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)
12295    pub fn use_s3_express_control_endpoint(mut self, value: impl Into<bool>) -> Self {
12296        self.use_s3_express_control_endpoint = Some(value.into());
12297        self
12298    }
12299
12300    /// Sets the value for use_s3_express_control_endpoint
12301    ///
12302    /// Internal parameter to indicate whether S3Express operation should use control plane, (ex. CreateBucket)
12303    pub fn set_use_s3_express_control_endpoint(mut self, param: Option<bool>) -> Self {
12304        self.use_s3_express_control_endpoint = param;
12305        self
12306    }
12307    /// Sets the value for disable_s3_express_session_auth
12308    ///
12309    /// Parameter to indicate whether S3Express session auth should be disabled
12310    pub fn disable_s3_express_session_auth(mut self, value: impl Into<bool>) -> Self {
12311        self.disable_s3_express_session_auth = Some(value.into());
12312        self
12313    }
12314
12315    /// Sets the value for disable_s3_express_session_auth
12316    ///
12317    /// Parameter to indicate whether S3Express session auth should be disabled
12318    pub fn set_disable_s3_express_session_auth(mut self, param: Option<bool>) -> Self {
12319        self.disable_s3_express_session_auth = param;
12320        self
12321    }
12322}
12323
12324/// An error that occurred during endpoint resolution
12325#[derive(Debug)]
12326pub struct InvalidParams {
12327    field: std::borrow::Cow<'static, str>,
12328}
12329
12330impl InvalidParams {
12331    #[allow(dead_code)]
12332    fn missing(field: &'static str) -> Self {
12333        Self { field: field.into() }
12334    }
12335}
12336
12337impl std::fmt::Display for InvalidParams {
12338    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
12339        write!(f, "a required field was missing: `{}`", self.field)
12340    }
12341}
12342
12343impl std::error::Error for InvalidParams {}
12344
12345mod internals;