1{
2    "testCases": [
3        {
4            "documentation": "region is not a valid DNS-suffix",
5            "expect": {
6                "error": "Invalid region: region was not a valid DNS name."
7            },
8            "params": {
9                "Region": "a b",
10                "UseFIPS": false,
11                "UseDualStack": false,
12                "Accelerate": false
13            }
14        },
15        {
16            "documentation": "Invalid access point ARN: Not S3",
17            "expect": {
18                "error": "Invalid ARN: The ARN was not for the S3 service, found: not-s3"
19            },
20            "operationInputs": [
21                {
22                    "builtInParams": {
23                        "AWS::Region": "us-east-1"
24                    },
25                    "operationName": "GetObject",
26                    "operationParams": {
27                        "Bucket": "arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint",
28                        "Key": "key"
29                    }
30                }
31            ],
32            "params": {
33                "Region": "us-east-1",
34                "UseFIPS": false,
35                "UseDualStack": false,
36                "Accelerate": false,
37                "Bucket": "arn:aws:not-s3:us-west-2:123456789012:accesspoint:myendpoint"
38            }
39        },
40        {
41            "documentation": "Invalid access point ARN: invalid resource",
42            "expect": {
43                "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`."
44            },
45            "operationInputs": [
46                {
47                    "builtInParams": {
48                        "AWS::Region": "us-east-1"
49                    },
50                    "operationName": "GetObject",
51                    "operationParams": {
52                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data",
53                        "Key": "key"
54                    }
55                }
56            ],
57            "params": {
58                "Region": "us-east-1",
59                "UseFIPS": false,
60                "UseDualStack": false,
61                "Accelerate": false,
62                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint:more-data"
63            }
64        },
65        {
66            "documentation": "Invalid access point ARN: invalid no ap name",
67            "expect": {
68                "error": "Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided"
69            },
70            "operationInputs": [
71                {
72                    "builtInParams": {
73                        "AWS::Region": "us-east-1"
74                    },
75                    "operationName": "GetObject",
76                    "operationParams": {
77                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:",
78                        "Key": "key"
79                    }
80                }
81            ],
82            "params": {
83                "Region": "us-east-1",
84                "UseFIPS": false,
85                "UseDualStack": false,
86                "Accelerate": false,
87                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:"
88            }
89        },
90        {
91            "documentation": "Invalid access point ARN: AccountId is invalid",
92            "expect": {
93                "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123456_789012`"
94            },
95            "operationInputs": [
96                {
97                    "builtInParams": {
98                        "AWS::Region": "us-east-1"
99                    },
100                    "operationName": "GetObject",
101                    "operationParams": {
102                        "Bucket": "arn:aws:s3:us-west-2:123456_789012:accesspoint:apname",
103                        "Key": "key"
104                    }
105                }
106            ],
107            "params": {
108                "Region": "us-east-1",
109                "UseFIPS": false,
110                "UseDualStack": false,
111                "Accelerate": false,
112                "Bucket": "arn:aws:s3:us-west-2:123456_789012:accesspoint:apname"
113            }
114        },
115        {
116            "documentation": "Invalid access point ARN: access point name is invalid",
117            "expect": {
118                "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `ap_name`"
119            },
120            "operationInputs": [
121                {
122                    "builtInParams": {
123                        "AWS::Region": "us-east-1"
124                    },
125                    "operationName": "GetObject",
126                    "operationParams": {
127                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name",
128                        "Key": "key"
129                    }
130                }
131            ],
132            "params": {
133                "Region": "us-east-1",
134                "UseFIPS": false,
135                "UseDualStack": false,
136                "Accelerate": false,
137                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:ap_name"
138            }
139        },
140        {
141            "documentation": "Access points (disable access points explicitly false)",
142            "expect": {
143                "endpoint": {
144                    "properties": {
145                        "authSchemes": [
146                            {
147                                "name": "sigv4",
148                                "signingName": "s3",
149                                "signingRegion": "us-west-2",
150                                "disableDoubleEncoding": true
151                            }
152                        ]
153                    },
154                    "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com"
155                }
156            },
157            "operationInputs": [
158                {
159                    "builtInParams": {
160                        "AWS::Region": "us-east-1"
161                    },
162                    "operationName": "GetObject",
163                    "operationParams": {
164                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
165                        "Key": "key"
166                    }
167                }
168            ],
169            "params": {
170                "Region": "us-east-1",
171                "UseFIPS": false,
172                "UseDualStack": false,
173                "Accelerate": false,
174                "DisableAccessPoints": false,
175                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint"
176            }
177        },
178        {
179            "documentation": "Access points: partition does not support FIPS",
180            "expect": {
181                "error": "Partition does not support FIPS"
182            },
183            "operationInputs": [
184                {
185                    "builtInParams": {
186                        "AWS::Region": "cn-north-1",
187                        "AWS::UseFIPS": true
188                    },
189                    "operationName": "GetObject",
190                    "operationParams": {
191                        "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint",
192                        "Key": "key"
193                    }
194                }
195            ],
196            "params": {
197                "Region": "cn-north-1",
198                "UseFIPS": true,
199                "UseDualStack": false,
200                "Accelerate": false,
201                "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:myendpoint"
202            }
203        },
204        {
205            "documentation": "Bucket region is invalid",
206            "expect": {
207                "error": "Invalid region in ARN: `us-west -2` (invalid DNS name)"
208            },
209            "operationInputs": [
210                {
211                    "builtInParams": {
212                        "AWS::Region": "us-east-1"
213                    },
214                    "operationName": "GetObject",
215                    "operationParams": {
216                        "Bucket": "arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint",
217                        "Key": "key"
218                    }
219                }
220            ],
221            "params": {
222                "Region": "us-east-1",
223                "UseFIPS": false,
224                "UseDualStack": false,
225                "Accelerate": false,
226                "DisableAccessPoints": false,
227                "Bucket": "arn:aws:s3:us-west -2:123456789012:accesspoint:myendpoint"
228            }
229        },
230        {
231            "documentation": "Access points when Access points explicitly disabled (used for CreateBucket)",
232            "expect": {
233                "error": "Access points are not supported for this operation"
234            },
235            "operationInputs": [
236                {
237                    "builtInParams": {
238                        "AWS::Region": "us-east-1"
239                    },
240                    "operationName": "CreateBucket",
241                    "operationParams": {
242                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint"
243                    }
244                }
245            ],
246            "params": {
247                "Region": "us-east-1",
248                "UseFIPS": false,
249                "UseDualStack": false,
250                "Accelerate": false,
251                "DisableAccessPoints": true,
252                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint"
253            }
254        },
255        {
256            "documentation": "missing arn type",
257            "expect": {
258                "error": "Invalid ARN: `arn:aws:s3:us-west-2:123456789012:` was not a valid ARN"
259            },
260            "operationInputs": [
261                {
262                    "builtInParams": {
263                        "AWS::Region": "us-east-1"
264                    },
265                    "operationName": "GetObject",
266                    "operationParams": {
267                        "Bucket": "arn:aws:s3:us-west-2:123456789012:",
268                        "Key": "key"
269                    }
270                }
271            ],
272            "params": {
273                "Region": "us-east-1",
274                "UseFIPS": false,
275                "UseDualStack": false,
276                "Accelerate": false,
277                "DisableAccessPoints": true,
278                "Bucket": "arn:aws:s3:us-west-2:123456789012:"
279            }
280        },
281        {
282            "documentation": "SDK::Host + access point + Dualstack is an error",
283            "expect": {
284                "error": "Cannot set dual-stack in combination with a custom endpoint."
285            },
286            "operationInputs": [
287                {
288                    "builtInParams": {
289                        "AWS::Region": "cn-north-1",
290                        "AWS::UseDualStack": true,
291                        "SDK::Endpoint": "https://beta.example.com"
292                    },
293                    "operationName": "GetObject",
294                    "operationParams": {
295                        "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint",
296                        "Key": "key"
297                    }
298                }
299            ],
300            "params": {
301                "Accelerate": false,
302                "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint",
303                "ForcePathStyle": false,
304                "Endpoint": "https://beta.example.com",
305                "Region": "cn-north-1",
306                "UseDualStack": true,
307                "UseFIPS": false
308            }
309        },
310        {
311            "documentation": "Access point ARN with FIPS & Dualstack",
312            "expect": {
313                "endpoint": {
314                    "properties": {
315                        "authSchemes": [
316                            {
317                                "name": "sigv4",
318                                "signingName": "s3",
319                                "signingRegion": "us-west-2",
320                                "disableDoubleEncoding": true
321                            }
322                        ]
323                    },
324                    "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com"
325                }
326            },
327            "operationInputs": [
328                {
329                    "builtInParams": {
330                        "AWS::Region": "us-east-1",
331                        "AWS::UseFIPS": true,
332                        "AWS::UseDualStack": true
333                    },
334                    "operationName": "GetObject",
335                    "operationParams": {
336                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
337                        "Key": "key"
338                    }
339                }
340            ],
341            "params": {
342                "Region": "us-east-1",
343                "UseFIPS": true,
344                "UseDualStack": true,
345                "Accelerate": false,
346                "DisableAccessPoints": false,
347                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint"
348            }
349        },
350        {
351            "documentation": "Access point ARN with Dualstack",
352            "expect": {
353                "endpoint": {
354                    "properties": {
355                        "authSchemes": [
356                            {
357                                "name": "sigv4",
358                                "signingName": "s3",
359                                "signingRegion": "us-west-2",
360                                "disableDoubleEncoding": true
361                            }
362                        ]
363                    },
364                    "url": "https://myendpoint-123456789012.s3-accesspoint.dualstack.us-west-2.amazonaws.com"
365                }
366            },
367            "operationInputs": [
368                {
369                    "builtInParams": {
370                        "AWS::Region": "us-east-1",
371                        "AWS::UseDualStack": true
372                    },
373                    "operationName": "GetObject",
374                    "operationParams": {
375                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
376                        "Key": "key"
377                    }
378                }
379            ],
380            "params": {
381                "Region": "us-east-1",
382                "UseFIPS": false,
383                "UseDualStack": true,
384                "Accelerate": false,
385                "DisableAccessPoints": false,
386                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint"
387            }
388        },
389        {
390            "documentation": "vanilla MRAP",
391            "expect": {
392                "endpoint": {
393                    "properties": {
394                        "authSchemes": [
395                            {
396                                "name": "sigv4a",
397                                "signingRegionSet": [
398                                    "*"
399                                ],
400                                "signingName": "s3",
401                                "disableDoubleEncoding": true
402                            }
403                        ]
404                    },
405                    "url": "https://mfzwi23gnjvgw.mrap.accesspoint.s3-global.amazonaws.com"
406                }
407            },
408            "operationInputs": [
409                {
410                    "builtInParams": {
411                        "AWS::Region": "us-east-1"
412                    },
413                    "operationName": "GetObject",
414                    "operationParams": {
415                        "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
416                        "Key": "key"
417                    }
418                }
419            ],
420            "params": {
421                "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
422                "Region": "us-east-1",
423                "DisableMultiRegionAccessPoints": false,
424                "UseFIPS": false,
425                "UseDualStack": false,
426                "Accelerate": false
427            }
428        },
429        {
430            "documentation": "MRAP does not support FIPS",
431            "expect": {
432                "error": "S3 MRAP does not support FIPS"
433            },
434            "operationInputs": [
435                {
436                    "builtInParams": {
437                        "AWS::Region": "us-east-1",
438                        "AWS::UseFIPS": true
439                    },
440                    "operationName": "GetObject",
441                    "operationParams": {
442                        "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
443                        "Key": "key"
444                    }
445                }
446            ],
447            "params": {
448                "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
449                "Region": "us-east-1",
450                "DisableMultiRegionAccessPoints": false,
451                "UseFIPS": true,
452                "UseDualStack": false,
453                "Accelerate": false
454            }
455        },
456        {
457            "documentation": "MRAP does not support DualStack",
458            "expect": {
459                "error": "S3 MRAP does not support dual-stack"
460            },
461            "operationInputs": [
462                {
463                    "builtInParams": {
464                        "AWS::Region": "us-east-1",
465                        "AWS::UseDualStack": true
466                    },
467                    "operationName": "GetObject",
468                    "operationParams": {
469                        "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
470                        "Key": "key"
471                    }
472                }
473            ],
474            "params": {
475                "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
476                "Region": "us-east-1",
477                "DisableMultiRegionAccessPoints": false,
478                "UseFIPS": false,
479                "UseDualStack": true,
480                "Accelerate": false
481            }
482        },
483        {
484            "documentation": "MRAP does not support S3 Accelerate",
485            "expect": {
486                "error": "S3 MRAP does not support S3 Accelerate"
487            },
488            "operationInputs": [
489                {
490                    "builtInParams": {
491                        "AWS::Region": "us-east-1",
492                        "AWS::S3::Accelerate": true
493                    },
494                    "operationName": "GetObject",
495                    "operationParams": {
496                        "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
497                        "Key": "key"
498                    }
499                }
500            ],
501            "params": {
502                "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
503                "Region": "us-east-1",
504                "DisableMultiRegionAccessPoints": false,
505                "UseFIPS": false,
506                "UseDualStack": false,
507                "Accelerate": true
508            }
509        },
510        {
511            "documentation": "MRAP explicitly disabled",
512            "expect": {
513                "error": "Invalid configuration: Multi-Region Access Point ARNs are disabled."
514            },
515            "operationInputs": [
516                {
517                    "builtInParams": {
518                        "AWS::Region": "us-east-1",
519                        "AWS::S3::DisableMultiRegionAccessPoints": true
520                    },
521                    "operationName": "GetObject",
522                    "operationParams": {
523                        "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
524                        "Key": "key"
525                    }
526                }
527            ],
528            "params": {
529                "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
530                "Region": "us-east-1",
531                "DisableMultiRegionAccessPoints": true,
532                "UseFIPS": false,
533                "UseDualStack": false,
534                "Accelerate": false
535            }
536        },
537        {
538            "documentation": "Dual-stack endpoint with path-style forced",
539            "expect": {
540                "endpoint": {
541                    "properties": {
542                        "authSchemes": [
543                            {
544                                "name": "sigv4",
545                                "signingName": "s3",
546                                "signingRegion": "us-west-2",
547                                "disableDoubleEncoding": true
548                            }
549                        ]
550                    },
551                    "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucketname"
552                }
553            },
554            "operationInputs": [
555                {
556                    "builtInParams": {
557                        "AWS::Region": "us-west-2",
558                        "AWS::UseDualStack": true,
559                        "AWS::S3::ForcePathStyle": true
560                    },
561                    "operationName": "GetObject",
562                    "operationParams": {
563                        "Bucket": "bucketname",
564                        "Key": "key"
565                    }
566                }
567            ],
568            "params": {
569                "Bucket": "bucketname",
570                "Region": "us-west-2",
571                "ForcePathStyle": true,
572                "UseFIPS": false,
573                "Accelerate": false,
574                "UseDualStack": true
575            }
576        },
577        {
578            "documentation": "Dual-stack endpoint + SDK::Host is error",
579            "expect": {
580                "error": "Cannot set dual-stack in combination with a custom endpoint."
581            },
582            "operationInputs": [
583                {
584                    "builtInParams": {
585                        "AWS::Region": "us-west-2",
586                        "AWS::UseDualStack": true,
587                        "SDK::Endpoint": "https://abc.com",
588                        "AWS::S3::ForcePathStyle": true
589                    },
590                    "operationName": "GetObject",
591                    "operationParams": {
592                        "Bucket": "bucketname",
593                        "Key": "key"
594                    }
595                }
596            ],
597            "params": {
598                "Bucket": "bucketname",
599                "Region": "us-west-2",
600                "ForcePathStyle": true,
601                "UseFIPS": false,
602                "Accelerate": false,
603                "UseDualStack": true,
604                "Endpoint": "https://abc.com"
605            }
606        },
607        {
608            "documentation": "path style + ARN bucket",
609            "expect": {
610                "error": "Path-style addressing cannot be used with ARN buckets"
611            },
612            "operationInputs": [
613                {
614                    "builtInParams": {
615                        "AWS::Region": "us-west-2",
616                        "AWS::S3::ForcePathStyle": true
617                    },
618                    "operationName": "GetObject",
619                    "operationParams": {
620                        "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
621                        "Key": "key"
622                    }
623                }
624            ],
625            "params": {
626                "Accelerate": false,
627                "Bucket": "arn:aws:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
628                "ForcePathStyle": true,
629                "Region": "us-west-2",
630                "UseDualStack": false,
631                "UseFIPS": false
632            }
633        },
634        {
635            "documentation": "implicit path style bucket + dualstack",
636            "expect": {
637                "endpoint": {
638                    "properties": {
639                        "authSchemes": [
640                            {
641                                "name": "sigv4",
642                                "signingName": "s3",
643                                "signingRegion": "us-west-2",
644                                "disableDoubleEncoding": true
645                            }
646                        ]
647                    },
648                    "url": "https://s3.dualstack.us-west-2.amazonaws.com/99_ab"
649                }
650            },
651            "operationInputs": [
652                {
653                    "builtInParams": {
654                        "AWS::Region": "us-west-2",
655                        "AWS::UseDualStack": true
656                    },
657                    "operationName": "GetObject",
658                    "operationParams": {
659                        "Bucket": "99_ab",
660                        "Key": "key"
661                    }
662                }
663            ],
664            "params": {
665                "Accelerate": false,
666                "Bucket": "99_ab",
667                "Region": "us-west-2",
668                "UseDualStack": true,
669                "UseFIPS": false
670            }
671        },
672        {
673            "documentation": "implicit path style bucket + dualstack",
674            "expect": {
675                "error": "Cannot set dual-stack in combination with a custom endpoint."
676            },
677            "operationInputs": [
678                {
679                    "builtInParams": {
680                        "AWS::Region": "us-west-2",
681                        "AWS::UseDualStack": true,
682                        "SDK::Endpoint": "http://abc.com"
683                    },
684                    "operationName": "GetObject",
685                    "operationParams": {
686                        "Bucket": "99_ab",
687                        "Key": "key"
688                    }
689                }
690            ],
691            "params": {
692                "Accelerate": false,
693                "Bucket": "99_ab",
694                "Region": "us-west-2",
695                "UseDualStack": true,
696                "UseFIPS": false,
697                "Endpoint": "http://abc.com"
698            }
699        },
700        {
701            "documentation": "don't allow URL injections in the bucket",
702            "expect": {
703                "endpoint": {
704                    "properties": {
705                        "authSchemes": [
706                            {
707                                "name": "sigv4",
708                                "signingName": "s3",
709                                "signingRegion": "us-west-2",
710                                "disableDoubleEncoding": true
711                            }
712                        ]
713                    },
714                    "url": "https://s3.us-west-2.amazonaws.com/example.com%23"
715                }
716            },
717            "operationInputs": [
718                {
719                    "builtInParams": {
720                        "AWS::Region": "us-west-2"
721                    },
722                    "operationName": "GetObject",
723                    "operationParams": {
724                        "Bucket": "example.com#",
725                        "Key": "key"
726                    }
727                }
728            ],
729            "params": {
730                "Bucket": "example.com#",
731                "Region": "us-west-2",
732                "UseDualStack": false,
733                "UseFIPS": false,
734                "Accelerate": false
735            }
736        },
737        {
738            "documentation": "URI encode bucket names in the path",
739            "expect": {
740                "endpoint": {
741                    "properties": {
742                        "authSchemes": [
743                            {
744                                "name": "sigv4",
745                                "signingName": "s3",
746                                "signingRegion": "us-west-2",
747                                "disableDoubleEncoding": true
748                            }
749                        ]
750                    },
751                    "url": "https://s3.us-west-2.amazonaws.com/bucket%20name"
752                }
753            },
754            "operationInputs": [
755                {
756                    "builtInParams": {
757                        "AWS::Region": "us-west-2"
758                    },
759                    "operationName": "GetObject",
760                    "operationParams": {
761                        "Bucket": "bucket name",
762                        "Key": "key"
763                    }
764                }
765            ],
766            "params": {
767                "Bucket": "bucket name",
768                "Region": "us-west-2",
769                "UseDualStack": false,
770                "UseFIPS": false,
771                "Accelerate": false
772            }
773        },
774        {
775            "documentation": "scheme is respected",
776            "expect": {
777                "endpoint": {
778                    "properties": {
779                        "authSchemes": [
780                            {
781                                "name": "sigv4",
782                                "signingName": "s3",
783                                "signingRegion": "af-south-1",
784                                "disableDoubleEncoding": true
785                            }
786                        ]
787                    },
788                    "url": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab"
789                }
790            },
791            "params": {
792                "Accelerate": false,
793                "Bucket": "99_ab",
794                "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
795                "Region": "af-south-1",
796                "UseDualStack": false,
797                "UseFIPS": false
798            }
799        },
800        {
801            "documentation": "scheme is respected (virtual addressing)",
802            "expect": {
803                "endpoint": {
804                    "properties": {
805                        "authSchemes": [
806                            {
807                                "name": "sigv4",
808                                "signingName": "s3",
809                                "signingRegion": "af-south-1",
810                                "disableDoubleEncoding": true
811                            }
812                        ]
813                    },
814                    "url": "http://bucketname.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo"
815                }
816            },
817            "params": {
818                "Accelerate": false,
819                "Bucket": "bucketname",
820                "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/foo",
821                "Region": "af-south-1",
822                "UseDualStack": false,
823                "UseFIPS": false
824            }
825        },
826        {
827            "documentation": "path style + implicit private link",
828            "expect": {
829                "endpoint": {
830                    "properties": {
831                        "authSchemes": [
832                            {
833                                "name": "sigv4",
834                                "signingName": "s3",
835                                "signingRegion": "af-south-1",
836                                "disableDoubleEncoding": true
837                            }
838                        ]
839                    },
840                    "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/99_ab"
841                }
842            },
843            "operationInputs": [
844                {
845                    "builtInParams": {
846                        "AWS::Region": "af-south-1",
847                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
848                    },
849                    "operationName": "GetObject",
850                    "operationParams": {
851                        "Bucket": "99_ab",
852                        "Key": "key"
853                    }
854                }
855            ],
856            "params": {
857                "Accelerate": false,
858                "Bucket": "99_ab",
859                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
860                "Region": "af-south-1",
861                "UseDualStack": false,
862                "UseFIPS": false
863            }
864        },
865        {
866            "documentation": "invalid Endpoint override",
867            "expect": {
868                "error": "Custom endpoint `abcde://nota#url` was not a valid URI"
869            },
870            "params": {
871                "Accelerate": false,
872                "Bucket": "bucketname",
873                "Endpoint": "abcde://nota#url",
874                "Region": "af-south-1",
875                "UseDualStack": false,
876                "UseFIPS": false
877            }
878        },
879        {
880            "documentation": "using an IPv4 address forces path style",
881            "expect": {
882                "endpoint": {
883                    "properties": {
884                        "authSchemes": [
885                            {
886                                "name": "sigv4",
887                                "signingName": "s3",
888                                "signingRegion": "af-south-1",
889                                "disableDoubleEncoding": true
890                            }
891                        ]
892                    },
893                    "url": "https://123.123.0.1/bucketname"
894                }
895            },
896            "operationInputs": [
897                {
898                    "builtInParams": {
899                        "AWS::Region": "af-south-1",
900                        "SDK::Endpoint": "https://123.123.0.1"
901                    },
902                    "operationName": "GetObject",
903                    "operationParams": {
904                        "Bucket": "bucketname",
905                        "Key": "key"
906                    }
907                }
908            ],
909            "params": {
910                "Accelerate": false,
911                "Bucket": "bucketname",
912                "Endpoint": "https://123.123.0.1",
913                "Region": "af-south-1",
914                "UseDualStack": false,
915                "UseFIPS": false
916            }
917        },
918        {
919            "documentation": "vanilla access point arn with region mismatch and UseArnRegion=false",
920            "expect": {
921                "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`"
922            },
923            "operationInputs": [
924                {
925                    "builtInParams": {
926                        "AWS::Region": "us-west-2",
927                        "AWS::S3::UseArnRegion": false
928                    },
929                    "operationName": "GetObject",
930                    "operationParams": {
931                        "Bucket": "arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint",
932                        "Key": "key"
933                    }
934                }
935            ],
936            "params": {
937                "Accelerate": false,
938                "Bucket": "arn:aws:s3:us-east-1:123456789012:accesspoint:myendpoint",
939                "ForcePathStyle": false,
940                "UseArnRegion": false,
941                "Region": "us-west-2",
942                "UseDualStack": false,
943                "UseFIPS": false
944            }
945        },
946        {
947            "documentation": "vanilla access point arn with region mismatch and UseArnRegion unset",
948            "expect": {
949                "endpoint": {
950                    "properties": {
951                        "authSchemes": [
952                            {
953                                "name": "sigv4",
954                                "signingName": "s3",
955                                "signingRegion": "us-west-2",
956                                "disableDoubleEncoding": true
957                            }
958                        ]
959                    },
960                    "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com"
961                }
962            },
963            "operationInputs": [
964                {
965                    "builtInParams": {
966                        "AWS::Region": "us-east-1"
967                    },
968                    "operationName": "GetObject",
969                    "operationParams": {
970                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
971                        "Key": "key"
972                    }
973                }
974            ],
975            "params": {
976                "Accelerate": false,
977                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
978                "ForcePathStyle": false,
979                "Region": "us-east-1",
980                "UseDualStack": false,
981                "UseFIPS": false
982            }
983        },
984        {
985            "documentation": "vanilla access point arn with region mismatch and UseArnRegion=true",
986            "expect": {
987                "endpoint": {
988                    "properties": {
989                        "authSchemes": [
990                            {
991                                "name": "sigv4",
992                                "signingName": "s3",
993                                "signingRegion": "us-west-2",
994                                "disableDoubleEncoding": true
995                            }
996                        ]
997                    },
998                    "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com"
999                }
1000            },
1001            "operationInputs": [
1002                {
1003                    "builtInParams": {
1004                        "AWS::Region": "us-east-1",
1005                        "AWS::S3::UseArnRegion": true
1006                    },
1007                    "operationName": "GetObject",
1008                    "operationParams": {
1009                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
1010                        "Key": "key"
1011                    }
1012                }
1013            ],
1014            "params": {
1015                "Accelerate": false,
1016                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
1017                "ForcePathStyle": false,
1018                "UseArnRegion": true,
1019                "Region": "us-east-1",
1020                "UseDualStack": false,
1021                "UseFIPS": false
1022            }
1023        },
1024        {
1025            "documentation": "subdomains are not allowed in virtual buckets",
1026            "expect": {
1027                "endpoint": {
1028                    "properties": {
1029                        "authSchemes": [
1030                            {
1031                                "name": "sigv4",
1032                                "signingName": "s3",
1033                                "disableDoubleEncoding": true,
1034                                "signingRegion": "us-east-1"
1035                            }
1036                        ]
1037                    },
1038                    "url": "https://s3.us-east-1.amazonaws.com/bucket.name"
1039                }
1040            },
1041            "operationInputs": [
1042                {
1043                    "builtInParams": {
1044                        "AWS::Region": "us-east-1"
1045                    },
1046                    "operationName": "GetObject",
1047                    "operationParams": {
1048                        "Bucket": "bucket.name",
1049                        "Key": "key"
1050                    }
1051                }
1052            ],
1053            "params": {
1054                "Bucket": "bucket.name",
1055                "Region": "us-east-1"
1056            }
1057        },
1058        {
1059            "documentation": "bucket names with 3 characters are allowed in virtual buckets",
1060            "expect": {
1061                "endpoint": {
1062                    "properties": {
1063                        "authSchemes": [
1064                            {
1065                                "name": "sigv4",
1066                                "signingName": "s3",
1067                                "disableDoubleEncoding": true,
1068                                "signingRegion": "us-east-1"
1069                            }
1070                        ]
1071                    },
1072                    "url": "https://aaa.s3.us-east-1.amazonaws.com"
1073                }
1074            },
1075            "operationInputs": [
1076                {
1077                    "builtInParams": {
1078                        "AWS::Region": "us-east-1"
1079                    },
1080                    "operationName": "GetObject",
1081                    "operationParams": {
1082                        "Bucket": "aaa",
1083                        "Key": "key"
1084                    }
1085                }
1086            ],
1087            "params": {
1088                "Bucket": "aaa",
1089                "Region": "us-east-1"
1090            }
1091        },
1092        {
1093            "documentation": "bucket names with fewer than 3 characters are not allowed in virtual host",
1094            "expect": {
1095                "endpoint": {
1096                    "properties": {
1097                        "authSchemes": [
1098                            {
1099                                "name": "sigv4",
1100                                "signingName": "s3",
1101                                "disableDoubleEncoding": true,
1102                                "signingRegion": "us-east-1"
1103                            }
1104                        ]
1105                    },
1106                    "url": "https://s3.us-east-1.amazonaws.com/aa"
1107                }
1108            },
1109            "operationInputs": [
1110                {
1111                    "builtInParams": {
1112                        "AWS::Region": "us-east-1"
1113                    },
1114                    "operationName": "GetObject",
1115                    "operationParams": {
1116                        "Bucket": "aa",
1117                        "Key": "key"
1118                    }
1119                }
1120            ],
1121            "params": {
1122                "Bucket": "aa",
1123                "Region": "us-east-1"
1124            }
1125        },
1126        {
1127            "documentation": "bucket names with uppercase characters are not allowed in virtual host",
1128            "expect": {
1129                "endpoint": {
1130                    "properties": {
1131                        "authSchemes": [
1132                            {
1133                                "name": "sigv4",
1134                                "signingName": "s3",
1135                                "disableDoubleEncoding": true,
1136                                "signingRegion": "us-east-1"
1137                            }
1138                        ]
1139                    },
1140                    "url": "https://s3.us-east-1.amazonaws.com/BucketName"
1141                }
1142            },
1143            "operationInputs": [
1144                {
1145                    "builtInParams": {
1146                        "AWS::Region": "us-east-1"
1147                    },
1148                    "operationName": "GetObject",
1149                    "operationParams": {
1150                        "Bucket": "BucketName",
1151                        "Key": "key"
1152                    }
1153                }
1154            ],
1155            "params": {
1156                "Bucket": "BucketName",
1157                "Region": "us-east-1"
1158            }
1159        },
1160        {
1161            "documentation": "subdomains are allowed in virtual buckets on http endpoints",
1162            "expect": {
1163                "endpoint": {
1164                    "properties": {
1165                        "authSchemes": [
1166                            {
1167                                "name": "sigv4",
1168                                "signingName": "s3",
1169                                "disableDoubleEncoding": true,
1170                                "signingRegion": "us-east-1"
1171                            }
1172                        ]
1173                    },
1174                    "url": "http://bucket.name.example.com"
1175                }
1176            },
1177            "operationInputs": [
1178                {
1179                    "builtInParams": {
1180                        "AWS::Region": "us-east-1",
1181                        "SDK::Endpoint": "http://example.com"
1182                    },
1183                    "operationName": "GetObject",
1184                    "operationParams": {
1185                        "Bucket": "bucket.name",
1186                        "Key": "key"
1187                    }
1188                }
1189            ],
1190            "params": {
1191                "Bucket": "bucket.name",
1192                "Region": "us-east-1",
1193                "Endpoint": "http://example.com"
1194            }
1195        },
1196        {
1197            "documentation": "no region set",
1198            "expect": {
1199                "error": "A region must be set when sending requests to S3."
1200            },
1201            "params": {
1202                "Bucket": "bucket-name"
1203            }
1204        },
1205        {
1206            "documentation": "UseGlobalEndpoints=true, region=us-east-1 uses the global endpoint",
1207            "expect": {
1208                "endpoint": {
1209                    "properties": {
1210                        "authSchemes": [
1211                            {
1212                                "name": "sigv4",
1213                                "signingName": "s3",
1214                                "signingRegion": "us-east-1",
1215                                "disableDoubleEncoding": true
1216                            }
1217                        ]
1218                    },
1219                    "url": "https://s3.amazonaws.com"
1220                }
1221            },
1222            "operationInputs": [
1223                {
1224                    "builtInParams": {
1225                        "AWS::Region": "us-east-1",
1226                        "AWS::S3::UseGlobalEndpoint": true
1227                    },
1228                    "operationName": "ListBuckets"
1229                }
1230            ],
1231            "params": {
1232                "Region": "us-east-1",
1233                "UseGlobalEndpoint": true,
1234                "UseFIPS": false,
1235                "UseDualStack": false,
1236                "Accelerate": false
1237            }
1238        },
1239        {
1240            "documentation": "UseGlobalEndpoints=true, region=us-west-2 uses the regional endpoint",
1241            "expect": {
1242                "endpoint": {
1243                    "properties": {
1244                        "authSchemes": [
1245                            {
1246                                "name": "sigv4",
1247                                "signingName": "s3",
1248                                "signingRegion": "us-west-2",
1249                                "disableDoubleEncoding": true
1250                            }
1251                        ]
1252                    },
1253                    "url": "https://s3.us-west-2.amazonaws.com"
1254                }
1255            },
1256            "operationInputs": [
1257                {
1258                    "builtInParams": {
1259                        "AWS::Region": "us-west-2",
1260                        "AWS::S3::UseGlobalEndpoint": true
1261                    },
1262                    "operationName": "ListBuckets"
1263                }
1264            ],
1265            "params": {
1266                "Region": "us-west-2",
1267                "UseGlobalEndpoint": true,
1268                "UseFIPS": false,
1269                "UseDualStack": false,
1270                "Accelerate": false
1271            }
1272        },
1273        {
1274            "documentation": "UseGlobalEndpoints=true, region=cn-north-1 uses the regional endpoint",
1275            "expect": {
1276                "endpoint": {
1277                    "properties": {
1278                        "authSchemes": [
1279                            {
1280                                "name": "sigv4",
1281                                "signingName": "s3",
1282                                "signingRegion": "cn-north-1",
1283                                "disableDoubleEncoding": true
1284                            }
1285                        ]
1286                    },
1287                    "url": "https://s3.cn-north-1.amazonaws.com.cn"
1288                }
1289            },
1290            "operationInputs": [
1291                {
1292                    "builtInParams": {
1293                        "AWS::Region": "cn-north-1",
1294                        "AWS::S3::UseGlobalEndpoint": true
1295                    },
1296                    "operationName": "ListBuckets"
1297                }
1298            ],
1299            "params": {
1300                "Region": "cn-north-1",
1301                "UseGlobalEndpoint": true,
1302                "UseFIPS": false,
1303                "UseDualStack": false,
1304                "Accelerate": false
1305            }
1306        },
1307        {
1308            "documentation": "UseGlobalEndpoints=true, region=us-east-1, fips=true uses the regional endpoint with fips",
1309            "expect": {
1310                "endpoint": {
1311                    "properties": {
1312                        "authSchemes": [
1313                            {
1314                                "name": "sigv4",
1315                                "signingName": "s3",
1316                                "signingRegion": "us-east-1",
1317                                "disableDoubleEncoding": true
1318                            }
1319                        ]
1320                    },
1321                    "url": "https://s3-fips.us-east-1.amazonaws.com"
1322                }
1323            },
1324            "operationInputs": [
1325                {
1326                    "builtInParams": {
1327                        "AWS::Region": "us-east-1",
1328                        "AWS::UseFIPS": true,
1329                        "AWS::S3::UseGlobalEndpoint": true
1330                    },
1331                    "operationName": "ListBuckets"
1332                }
1333            ],
1334            "params": {
1335                "Region": "us-east-1",
1336                "UseGlobalEndpoint": true,
1337                "UseFIPS": true,
1338                "UseDualStack": false,
1339                "Accelerate": false
1340            }
1341        },
1342        {
1343            "documentation": "UseGlobalEndpoints=true, region=us-east-1, dualstack=true uses the regional endpoint with dualstack",
1344            "expect": {
1345                "endpoint": {
1346                    "properties": {
1347                        "authSchemes": [
1348                            {
1349                                "name": "sigv4",
1350                                "signingName": "s3",
1351                                "signingRegion": "us-east-1",
1352                                "disableDoubleEncoding": true
1353                            }
1354                        ]
1355                    },
1356                    "url": "https://s3.dualstack.us-east-1.amazonaws.com"
1357                }
1358            },
1359            "operationInputs": [
1360                {
1361                    "builtInParams": {
1362                        "AWS::Region": "us-east-1",
1363                        "AWS::UseDualStack": true,
1364                        "AWS::S3::UseGlobalEndpoint": true
1365                    },
1366                    "operationName": "ListBuckets"
1367                }
1368            ],
1369            "params": {
1370                "Region": "us-east-1",
1371                "UseGlobalEndpoint": true,
1372                "UseFIPS": false,
1373                "UseDualStack": true,
1374                "Accelerate": false
1375            }
1376        },
1377        {
1378            "documentation": "UseGlobalEndpoints=true, region=us-east-1, dualstack and fips uses the regional endpoint with fips/dualstack",
1379            "expect": {
1380                "endpoint": {
1381                    "properties": {
1382                        "authSchemes": [
1383                            {
1384                                "name": "sigv4",
1385                                "signingName": "s3",
1386                                "signingRegion": "us-east-1",
1387                                "disableDoubleEncoding": true
1388                            }
1389                        ]
1390                    },
1391                    "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com"
1392                }
1393            },
1394            "operationInputs": [
1395                {
1396                    "builtInParams": {
1397                        "AWS::Region": "us-east-1",
1398                        "AWS::UseFIPS": true,
1399                        "AWS::UseDualStack": true,
1400                        "AWS::S3::UseGlobalEndpoint": true
1401                    },
1402                    "operationName": "ListBuckets"
1403                }
1404            ],
1405            "params": {
1406                "Region": "us-east-1",
1407                "UseGlobalEndpoint": true,
1408                "UseFIPS": true,
1409                "UseDualStack": true,
1410                "Accelerate": false
1411            }
1412        },
1413        {
1414            "documentation": "UseGlobalEndpoints=true, region=us-east-1 with custom endpoint, uses custom",
1415            "expect": {
1416                "endpoint": {
1417                    "properties": {
1418                        "authSchemes": [
1419                            {
1420                                "name": "sigv4",
1421                                "signingName": "s3",
1422                                "signingRegion": "us-east-1",
1423                                "disableDoubleEncoding": true
1424                            }
1425                        ]
1426                    },
1427                    "url": "https://example.com"
1428                }
1429            },
1430            "operationInputs": [
1431                {
1432                    "builtInParams": {
1433                        "AWS::Region": "us-east-1",
1434                        "SDK::Endpoint": "https://example.com",
1435                        "AWS::S3::UseGlobalEndpoint": true
1436                    },
1437                    "operationName": "ListBuckets"
1438                }
1439            ],
1440            "params": {
1441                "Region": "us-east-1",
1442                "Endpoint": "https://example.com",
1443                "UseGlobalEndpoint": true,
1444                "UseFIPS": false,
1445                "UseDualStack": false,
1446                "Accelerate": false
1447            }
1448        },
1449        {
1450            "documentation": "UseGlobalEndpoints=true, region=us-west-2 with custom endpoint, uses custom",
1451            "expect": {
1452                "endpoint": {
1453                    "properties": {
1454                        "authSchemes": [
1455                            {
1456                                "name": "sigv4",
1457                                "signingName": "s3",
1458                                "signingRegion": "us-west-2",
1459                                "disableDoubleEncoding": true
1460                            }
1461                        ]
1462                    },
1463                    "url": "https://example.com"
1464                }
1465            },
1466            "operationInputs": [
1467                {
1468                    "builtInParams": {
1469                        "AWS::Region": "us-west-2",
1470                        "SDK::Endpoint": "https://example.com",
1471                        "AWS::S3::UseGlobalEndpoint": true
1472                    },
1473                    "operationName": "ListBuckets"
1474                }
1475            ],
1476            "params": {
1477                "Region": "us-west-2",
1478                "Endpoint": "https://example.com",
1479                "UseGlobalEndpoint": true,
1480                "UseFIPS": false,
1481                "UseDualStack": false,
1482                "Accelerate": false
1483            }
1484        },
1485        {
1486            "documentation": "UseGlobalEndpoints=true, region=us-east-1 with accelerate on non bucket case uses the global endpoint and ignores accelerate",
1487            "expect": {
1488                "endpoint": {
1489                    "properties": {
1490                        "authSchemes": [
1491                            {
1492                                "name": "sigv4",
1493                                "signingName": "s3",
1494                                "signingRegion": "us-east-1",
1495                                "disableDoubleEncoding": true
1496                            }
1497                        ]
1498                    },
1499                    "url": "https://s3.amazonaws.com"
1500                }
1501            },
1502            "operationInputs": [
1503                {
1504                    "builtInParams": {
1505                        "AWS::Region": "us-east-1",
1506                        "AWS::S3::Accelerate": true,
1507                        "AWS::S3::UseGlobalEndpoint": true
1508                    },
1509                    "operationName": "ListBuckets"
1510                }
1511            ],
1512            "params": {
1513                "Region": "us-east-1",
1514                "UseGlobalEndpoint": true,
1515                "UseFIPS": false,
1516                "UseDualStack": false,
1517                "Accelerate": true
1518            }
1519        },
1520        {
1521            "documentation": "aws-global region uses the global endpoint",
1522            "expect": {
1523                "endpoint": {
1524                    "properties": {
1525                        "authSchemes": [
1526                            {
1527                                "name": "sigv4",
1528                                "signingName": "s3",
1529                                "signingRegion": "us-east-1",
1530                                "disableDoubleEncoding": true
1531                            }
1532                        ]
1533                    },
1534                    "url": "https://s3.amazonaws.com"
1535                }
1536            },
1537            "operationInputs": [
1538                {
1539                    "builtInParams": {
1540                        "AWS::Region": "aws-global"
1541                    },
1542                    "operationName": "ListBuckets"
1543                }
1544            ],
1545            "params": {
1546                "Region": "aws-global",
1547                "UseFIPS": false,
1548                "UseDualStack": false,
1549                "Accelerate": false
1550            }
1551        },
1552        {
1553            "documentation": "aws-global region with fips uses the regional endpoint",
1554            "expect": {
1555                "endpoint": {
1556                    "properties": {
1557                        "authSchemes": [
1558                            {
1559                                "name": "sigv4",
1560                                "signingName": "s3",
1561                                "signingRegion": "us-east-1",
1562                                "disableDoubleEncoding": true
1563                            }
1564                        ]
1565                    },
1566                    "url": "https://s3-fips.us-east-1.amazonaws.com"
1567                }
1568            },
1569            "operationInputs": [
1570                {
1571                    "builtInParams": {
1572                        "AWS::Region": "aws-global",
1573                        "AWS::UseFIPS": true
1574                    },
1575                    "operationName": "ListBuckets"
1576                }
1577            ],
1578            "params": {
1579                "Region": "aws-global",
1580                "UseFIPS": true,
1581                "UseDualStack": false,
1582                "Accelerate": false
1583            }
1584        },
1585        {
1586            "documentation": "aws-global region with dualstack uses the regional endpoint",
1587            "expect": {
1588                "endpoint": {
1589                    "properties": {
1590                        "authSchemes": [
1591                            {
1592                                "name": "sigv4",
1593                                "signingName": "s3",
1594                                "signingRegion": "us-east-1",
1595                                "disableDoubleEncoding": true
1596                            }
1597                        ]
1598                    },
1599                    "url": "https://s3.dualstack.us-east-1.amazonaws.com"
1600                }
1601            },
1602            "operationInputs": [
1603                {
1604                    "builtInParams": {
1605                        "AWS::Region": "aws-global",
1606                        "AWS::UseDualStack": true
1607                    },
1608                    "operationName": "ListBuckets"
1609                }
1610            ],
1611            "params": {
1612                "Region": "aws-global",
1613                "UseFIPS": false,
1614                "UseDualStack": true,
1615                "Accelerate": false
1616            }
1617        },
1618        {
1619            "documentation": "aws-global region with fips and dualstack uses the regional endpoint",
1620            "expect": {
1621                "endpoint": {
1622                    "properties": {
1623                        "authSchemes": [
1624                            {
1625                                "name": "sigv4",
1626                                "signingName": "s3",
1627                                "signingRegion": "us-east-1",
1628                                "disableDoubleEncoding": true
1629                            }
1630                        ]
1631                    },
1632                    "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com"
1633                }
1634            },
1635            "operationInputs": [
1636                {
1637                    "builtInParams": {
1638                        "AWS::Region": "aws-global",
1639                        "AWS::UseFIPS": true,
1640                        "AWS::UseDualStack": true
1641                    },
1642                    "operationName": "ListBuckets"
1643                }
1644            ],
1645            "params": {
1646                "Region": "aws-global",
1647                "UseFIPS": true,
1648                "UseDualStack": true,
1649                "Accelerate": false
1650            }
1651        },
1652        {
1653            "documentation": "aws-global region with accelerate on non-bucket case, uses global endpoint and ignores accelerate",
1654            "expect": {
1655                "endpoint": {
1656                    "properties": {
1657                        "authSchemes": [
1658                            {
1659                                "name": "sigv4",
1660                                "signingName": "s3",
1661                                "signingRegion": "us-east-1",
1662                                "disableDoubleEncoding": true
1663                            }
1664                        ]
1665                    },
1666                    "url": "https://s3.amazonaws.com"
1667                }
1668            },
1669            "operationInputs": [
1670                {
1671                    "builtInParams": {
1672                        "AWS::Region": "aws-global",
1673                        "AWS::S3::Accelerate": true
1674                    },
1675                    "operationName": "ListBuckets"
1676                }
1677            ],
1678            "params": {
1679                "Region": "aws-global",
1680                "UseFIPS": false,
1681                "UseDualStack": false,
1682                "Accelerate": true
1683            }
1684        },
1685        {
1686            "documentation": "aws-global region with custom endpoint, uses custom",
1687            "expect": {
1688                "endpoint": {
1689                    "properties": {
1690                        "authSchemes": [
1691                            {
1692                                "name": "sigv4",
1693                                "signingName": "s3",
1694                                "signingRegion": "us-east-1",
1695                                "disableDoubleEncoding": true
1696                            }
1697                        ]
1698                    },
1699                    "url": "https://example.com"
1700                }
1701            },
1702            "operationInputs": [
1703                {
1704                    "builtInParams": {
1705                        "AWS::Region": "aws-global",
1706                        "SDK::Endpoint": "https://example.com"
1707                    },
1708                    "operationName": "ListBuckets"
1709                }
1710            ],
1711            "params": {
1712                "Region": "aws-global",
1713                "Endpoint": "https://example.com",
1714                "UseGlobalEndpoint": false,
1715                "UseFIPS": false,
1716                "UseDualStack": false,
1717                "Accelerate": false
1718            }
1719        },
1720        {
1721            "documentation": "virtual addressing, aws-global region uses the global endpoint",
1722            "expect": {
1723                "endpoint": {
1724                    "properties": {
1725                        "authSchemes": [
1726                            {
1727                                "name": "sigv4",
1728                                "signingName": "s3",
1729                                "signingRegion": "us-east-1",
1730                                "disableDoubleEncoding": true
1731                            }
1732                        ]
1733                    },
1734                    "url": "https://bucket-name.s3.amazonaws.com"
1735                }
1736            },
1737            "operationInputs": [
1738                {
1739                    "builtInParams": {
1740                        "AWS::Region": "aws-global"
1741                    },
1742                    "operationName": "GetObject",
1743                    "operationParams": {
1744                        "Bucket": "bucket-name",
1745                        "Key": "key"
1746                    }
1747                }
1748            ],
1749            "params": {
1750                "Region": "aws-global",
1751                "Bucket": "bucket-name",
1752                "UseFIPS": false,
1753                "UseDualStack": false,
1754                "Accelerate": false
1755            }
1756        },
1757        {
1758            "documentation": "virtual addressing, aws-global region with Prefix, and Key uses the global endpoint. Prefix and Key parameters should not be used in endpoint evaluation.",
1759            "expect": {
1760                "endpoint": {
1761                    "properties": {
1762                        "authSchemes": [
1763                            {
1764                                "name": "sigv4",
1765                                "signingName": "s3",
1766                                "signingRegion": "us-east-1",
1767                                "disableDoubleEncoding": true
1768                            }
1769                        ]
1770                    },
1771                    "url": "https://bucket-name.s3.amazonaws.com"
1772                }
1773            },
1774            "operationInputs": [
1775                {
1776                    "builtInParams": {
1777                        "AWS::Region": "aws-global"
1778                    },
1779                    "operationName": "ListObjects",
1780                    "operationParams": {
1781                        "Bucket": "bucket-name",
1782                        "Prefix": "prefix"
1783                    }
1784                }
1785            ],
1786            "params": {
1787                "Region": "aws-global",
1788                "Bucket": "bucket-name",
1789                "UseFIPS": false,
1790                "UseDualStack": false,
1791                "Accelerate": false,
1792                "Prefix": "prefix",
1793                "Key": "key"
1794            }
1795        },
1796        {
1797            "documentation": "virtual addressing, aws-global region with fips uses the regional fips endpoint",
1798            "expect": {
1799                "endpoint": {
1800                    "properties": {
1801                        "authSchemes": [
1802                            {
1803                                "name": "sigv4",
1804                                "signingName": "s3",
1805                                "signingRegion": "us-east-1",
1806                                "disableDoubleEncoding": true
1807                            }
1808                        ]
1809                    },
1810                    "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com"
1811                }
1812            },
1813            "operationInputs": [
1814                {
1815                    "builtInParams": {
1816                        "AWS::Region": "aws-global",
1817                        "AWS::UseFIPS": true
1818                    },
1819                    "operationName": "GetObject",
1820                    "operationParams": {
1821                        "Bucket": "bucket-name",
1822                        "Key": "key"
1823                    }
1824                }
1825            ],
1826            "params": {
1827                "Region": "aws-global",
1828                "Bucket": "bucket-name",
1829                "UseFIPS": true,
1830                "UseDualStack": false,
1831                "Accelerate": false
1832            }
1833        },
1834        {
1835            "documentation": "virtual addressing, aws-global region with dualstack uses the regional dualstack endpoint",
1836            "expect": {
1837                "endpoint": {
1838                    "properties": {
1839                        "authSchemes": [
1840                            {
1841                                "name": "sigv4",
1842                                "signingName": "s3",
1843                                "signingRegion": "us-east-1",
1844                                "disableDoubleEncoding": true
1845                            }
1846                        ]
1847                    },
1848                    "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com"
1849                }
1850            },
1851            "operationInputs": [
1852                {
1853                    "builtInParams": {
1854                        "AWS::Region": "aws-global",
1855                        "AWS::UseDualStack": true
1856                    },
1857                    "operationName": "GetObject",
1858                    "operationParams": {
1859                        "Bucket": "bucket-name",
1860                        "Key": "key"
1861                    }
1862                }
1863            ],
1864            "params": {
1865                "Region": "aws-global",
1866                "Bucket": "bucket-name",
1867                "UseFIPS": false,
1868                "UseDualStack": true,
1869                "Accelerate": false
1870            }
1871        },
1872        {
1873            "documentation": "virtual addressing, aws-global region with fips/dualstack uses the regional fips/dualstack endpoint",
1874            "expect": {
1875                "endpoint": {
1876                    "properties": {
1877                        "authSchemes": [
1878                            {
1879                                "name": "sigv4",
1880                                "signingName": "s3",
1881                                "signingRegion": "us-east-1",
1882                                "disableDoubleEncoding": true
1883                            }
1884                        ]
1885                    },
1886                    "url": "https://bucket-name.s3-fips.dualstack.us-east-1.amazonaws.com"
1887                }
1888            },
1889            "operationInputs": [
1890                {
1891                    "builtInParams": {
1892                        "AWS::Region": "aws-global",
1893                        "AWS::UseFIPS": true,
1894                        "AWS::UseDualStack": true
1895                    },
1896                    "operationName": "GetObject",
1897                    "operationParams": {
1898                        "Bucket": "bucket-name",
1899                        "Key": "key"
1900                    }
1901                }
1902            ],
1903            "params": {
1904                "Region": "aws-global",
1905                "Bucket": "bucket-name",
1906                "UseFIPS": true,
1907                "UseDualStack": true,
1908                "Accelerate": false
1909            }
1910        },
1911        {
1912            "documentation": "virtual addressing, aws-global region with accelerate uses the global accelerate endpoint",
1913            "expect": {
1914                "endpoint": {
1915                    "properties": {
1916                        "authSchemes": [
1917                            {
1918                                "name": "sigv4",
1919                                "signingName": "s3",
1920                                "signingRegion": "us-east-1",
1921                                "disableDoubleEncoding": true
1922                            }
1923                        ]
1924                    },
1925                    "url": "https://bucket-name.s3-accelerate.amazonaws.com"
1926                }
1927            },
1928            "operationInputs": [
1929                {
1930                    "builtInParams": {
1931                        "AWS::Region": "aws-global",
1932                        "AWS::S3::Accelerate": true
1933                    },
1934                    "operationName": "GetObject",
1935                    "operationParams": {
1936                        "Bucket": "bucket-name",
1937                        "Key": "key"
1938                    }
1939                }
1940            ],
1941            "params": {
1942                "Region": "aws-global",
1943                "Bucket": "bucket-name",
1944                "UseFIPS": false,
1945                "UseDualStack": false,
1946                "Accelerate": true
1947            }
1948        },
1949        {
1950            "documentation": "virtual addressing, aws-global region with custom endpoint",
1951            "expect": {
1952                "endpoint": {
1953                    "properties": {
1954                        "authSchemes": [
1955                            {
1956                                "name": "sigv4",
1957                                "signingName": "s3",
1958                                "signingRegion": "us-east-1",
1959                                "disableDoubleEncoding": true
1960                            }
1961                        ]
1962                    },
1963                    "url": "https://bucket-name.example.com"
1964                }
1965            },
1966            "operationInputs": [
1967                {
1968                    "builtInParams": {
1969                        "AWS::Region": "aws-global",
1970                        "SDK::Endpoint": "https://example.com"
1971                    },
1972                    "operationName": "GetObject",
1973                    "operationParams": {
1974                        "Bucket": "bucket-name",
1975                        "Key": "key"
1976                    }
1977                }
1978            ],
1979            "params": {
1980                "Region": "aws-global",
1981                "Endpoint": "https://example.com",
1982                "Bucket": "bucket-name",
1983                "UseFIPS": false,
1984                "UseDualStack": false,
1985                "Accelerate": false
1986            }
1987        },
1988        {
1989            "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region uses the global endpoint",
1990            "expect": {
1991                "endpoint": {
1992                    "properties": {
1993                        "authSchemes": [
1994                            {
1995                                "name": "sigv4",
1996                                "signingName": "s3",
1997                                "signingRegion": "us-east-1",
1998                                "disableDoubleEncoding": true
1999                            }
2000                        ]
2001                    },
2002                    "url": "https://bucket-name.s3.amazonaws.com"
2003                }
2004            },
2005            "operationInputs": [
2006                {
2007                    "builtInParams": {
2008                        "AWS::Region": "us-east-1",
2009                        "AWS::S3::UseGlobalEndpoint": true
2010                    },
2011                    "operationName": "GetObject",
2012                    "operationParams": {
2013                        "Bucket": "bucket-name",
2014                        "Key": "key"
2015                    }
2016                }
2017            ],
2018            "params": {
2019                "Region": "us-east-1",
2020                "UseGlobalEndpoint": true,
2021                "Bucket": "bucket-name",
2022                "UseFIPS": false,
2023                "UseDualStack": false,
2024                "Accelerate": false
2025            }
2026        },
2027        {
2028            "documentation": "virtual addressing, UseGlobalEndpoint and us-west-2 region uses the regional endpoint",
2029            "expect": {
2030                "endpoint": {
2031                    "properties": {
2032                        "authSchemes": [
2033                            {
2034                                "name": "sigv4",
2035                                "signingName": "s3",
2036                                "signingRegion": "us-west-2",
2037                                "disableDoubleEncoding": true
2038                            }
2039                        ]
2040                    },
2041                    "url": "https://bucket-name.s3.us-west-2.amazonaws.com"
2042                }
2043            },
2044            "operationInputs": [
2045                {
2046                    "builtInParams": {
2047                        "AWS::Region": "us-west-2",
2048                        "AWS::S3::UseGlobalEndpoint": true
2049                    },
2050                    "operationName": "GetObject",
2051                    "operationParams": {
2052                        "Bucket": "bucket-name",
2053                        "Key": "key"
2054                    }
2055                }
2056            ],
2057            "params": {
2058                "Region": "us-west-2",
2059                "UseGlobalEndpoint": true,
2060                "Bucket": "bucket-name",
2061                "UseFIPS": false,
2062                "UseDualStack": false,
2063                "Accelerate": false
2064            }
2065        },
2066        {
2067            "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and fips uses the regional fips endpoint",
2068            "expect": {
2069                "endpoint": {
2070                    "properties": {
2071                        "authSchemes": [
2072                            {
2073                                "name": "sigv4",
2074                                "signingName": "s3",
2075                                "signingRegion": "us-east-1",
2076                                "disableDoubleEncoding": true
2077                            }
2078                        ]
2079                    },
2080                    "url": "https://bucket-name.s3-fips.us-east-1.amazonaws.com"
2081                }
2082            },
2083            "operationInputs": [
2084                {
2085                    "builtInParams": {
2086                        "AWS::Region": "us-east-1",
2087                        "AWS::UseFIPS": true,
2088                        "AWS::S3::UseGlobalEndpoint": true
2089                    },
2090                    "operationName": "GetObject",
2091                    "operationParams": {
2092                        "Bucket": "bucket-name",
2093                        "Key": "key"
2094                    }
2095                }
2096            ],
2097            "params": {
2098                "Region": "us-east-1",
2099                "UseGlobalEndpoint": true,
2100                "Bucket": "bucket-name",
2101                "UseFIPS": true,
2102                "UseDualStack": false,
2103                "Accelerate": false
2104            }
2105        },
2106        {
2107            "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and dualstack uses the regional dualstack endpoint",
2108            "expect": {
2109                "endpoint": {
2110                    "properties": {
2111                        "authSchemes": [
2112                            {
2113                                "name": "sigv4",
2114                                "signingName": "s3",
2115                                "signingRegion": "us-east-1",
2116                                "disableDoubleEncoding": true
2117                            }
2118                        ]
2119                    },
2120                    "url": "https://bucket-name.s3.dualstack.us-east-1.amazonaws.com"
2121                }
2122            },
2123            "operationInputs": [
2124                {
2125                    "builtInParams": {
2126                        "AWS::Region": "us-east-1",
2127                        "AWS::UseDualStack": true,
2128                        "AWS::S3::UseGlobalEndpoint": true
2129                    },
2130                    "operationName": "GetObject",
2131                    "operationParams": {
2132                        "Bucket": "bucket-name",
2133                        "Key": "key"
2134                    }
2135                }
2136            ],
2137            "params": {
2138                "Region": "us-east-1",
2139                "UseGlobalEndpoint": true,
2140                "Bucket": "bucket-name",
2141                "UseFIPS": false,
2142                "UseDualStack": true,
2143                "Accelerate": false
2144            }
2145        },
2146        {
2147            "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region and accelerate uses the global accelerate endpoint",
2148            "expect": {
2149                "endpoint": {
2150                    "properties": {
2151                        "authSchemes": [
2152                            {
2153                                "name": "sigv4",
2154                                "signingName": "s3",
2155                                "signingRegion": "us-east-1",
2156                                "disableDoubleEncoding": true
2157                            }
2158                        ]
2159                    },
2160                    "url": "https://bucket-name.s3-accelerate.amazonaws.com"
2161                }
2162            },
2163            "operationInputs": [
2164                {
2165                    "builtInParams": {
2166                        "AWS::Region": "us-east-1",
2167                        "AWS::S3::Accelerate": true,
2168                        "AWS::S3::UseGlobalEndpoint": true
2169                    },
2170                    "operationName": "GetObject",
2171                    "operationParams": {
2172                        "Bucket": "bucket-name",
2173                        "Key": "key"
2174                    }
2175                }
2176            ],
2177            "params": {
2178                "Region": "us-east-1",
2179                "UseGlobalEndpoint": true,
2180                "Bucket": "bucket-name",
2181                "UseFIPS": false,
2182                "UseDualStack": false,
2183                "Accelerate": true
2184            }
2185        },
2186        {
2187            "documentation": "virtual addressing, UseGlobalEndpoint and us-east-1 region with custom endpoint",
2188            "expect": {
2189                "endpoint": {
2190                    "properties": {
2191                        "authSchemes": [
2192                            {
2193                                "name": "sigv4",
2194                                "signingName": "s3",
2195                                "signingRegion": "us-east-1",
2196                                "disableDoubleEncoding": true
2197                            }
2198                        ]
2199                    },
2200                    "url": "https://bucket-name.example.com"
2201                }
2202            },
2203            "operationInputs": [
2204                {
2205                    "builtInParams": {
2206                        "AWS::Region": "us-east-1",
2207                        "SDK::Endpoint": "https://example.com",
2208                        "AWS::S3::UseGlobalEndpoint": true
2209                    },
2210                    "operationName": "GetObject",
2211                    "operationParams": {
2212                        "Bucket": "bucket-name",
2213                        "Key": "key"
2214                    }
2215                }
2216            ],
2217            "params": {
2218                "Region": "us-east-1",
2219                "Endpoint": "https://example.com",
2220                "UseGlobalEndpoint": true,
2221                "Bucket": "bucket-name",
2222                "UseFIPS": false,
2223                "UseDualStack": false,
2224                "Accelerate": false
2225            }
2226        },
2227        {
2228            "documentation": "ForcePathStyle, aws-global region uses the global endpoint",
2229            "expect": {
2230                "endpoint": {
2231                    "properties": {
2232                        "authSchemes": [
2233                            {
2234                                "name": "sigv4",
2235                                "signingName": "s3",
2236                                "signingRegion": "us-east-1",
2237                                "disableDoubleEncoding": true
2238                            }
2239                        ]
2240                    },
2241                    "url": "https://s3.amazonaws.com/bucket-name"
2242                }
2243            },
2244            "operationInputs": [
2245                {
2246                    "builtInParams": {
2247                        "AWS::Region": "aws-global",
2248                        "AWS::S3::ForcePathStyle": true
2249                    },
2250                    "operationName": "GetObject",
2251                    "operationParams": {
2252                        "Bucket": "bucket-name",
2253                        "Key": "key"
2254                    }
2255                }
2256            ],
2257            "params": {
2258                "Region": "aws-global",
2259                "Bucket": "bucket-name",
2260                "ForcePathStyle": true,
2261                "UseFIPS": false,
2262                "UseDualStack": false,
2263                "Accelerate": false
2264            }
2265        },
2266        {
2267            "documentation": "ForcePathStyle, aws-global region with fips is invalid",
2268            "expect": {
2269                "endpoint": {
2270                    "properties": {
2271                        "authSchemes": [
2272                            {
2273                                "signingName": "s3",
2274                                "signingRegion": "us-east-1",
2275                                "disableDoubleEncoding": true,
2276                                "name": "sigv4"
2277                            }
2278                        ]
2279                    },
2280                    "url": "https://s3-fips.us-east-1.amazonaws.com/bucket-name"
2281                }
2282            },
2283            "params": {
2284                "Region": "aws-global",
2285                "Bucket": "bucket-name",
2286                "ForcePathStyle": true,
2287                "UseFIPS": true,
2288                "UseDualStack": false,
2289                "Accelerate": false
2290            }
2291        },
2292        {
2293            "documentation": "ForcePathStyle, aws-global region with dualstack uses regional dualstack endpoint",
2294            "expect": {
2295                "endpoint": {
2296                    "properties": {
2297                        "authSchemes": [
2298                            {
2299                                "name": "sigv4",
2300                                "signingName": "s3",
2301                                "signingRegion": "us-east-1",
2302                                "disableDoubleEncoding": true
2303                            }
2304                        ]
2305                    },
2306                    "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name"
2307                }
2308            },
2309            "operationInputs": [
2310                {
2311                    "builtInParams": {
2312                        "AWS::Region": "aws-global",
2313                        "AWS::UseDualStack": true,
2314                        "AWS::S3::ForcePathStyle": true
2315                    },
2316                    "operationName": "GetObject",
2317                    "operationParams": {
2318                        "Bucket": "bucket-name",
2319                        "Key": "key"
2320                    }
2321                }
2322            ],
2323            "params": {
2324                "Region": "aws-global",
2325                "Bucket": "bucket-name",
2326                "ForcePathStyle": true,
2327                "UseFIPS": false,
2328                "UseDualStack": true,
2329                "Accelerate": false
2330            }
2331        },
2332        {
2333            "documentation": "ForcePathStyle, aws-global region custom endpoint uses the custom endpoint",
2334            "expect": {
2335                "endpoint": {
2336                    "properties": {
2337                        "authSchemes": [
2338                            {
2339                                "name": "sigv4",
2340                                "signingName": "s3",
2341                                "signingRegion": "us-east-1",
2342                                "disableDoubleEncoding": true
2343                            }
2344                        ]
2345                    },
2346                    "url": "https://example.com/bucket-name"
2347                }
2348            },
2349            "operationInputs": [
2350                {
2351                    "builtInParams": {
2352                        "AWS::Region": "aws-global",
2353                        "SDK::Endpoint": "https://example.com",
2354                        "AWS::S3::ForcePathStyle": true
2355                    },
2356                    "operationName": "GetObject",
2357                    "operationParams": {
2358                        "Bucket": "bucket-name",
2359                        "Key": "key"
2360                    }
2361                }
2362            ],
2363            "params": {
2364                "Region": "aws-global",
2365                "Endpoint": "https://example.com",
2366                "Bucket": "bucket-name",
2367                "ForcePathStyle": true,
2368                "UseFIPS": false,
2369                "UseDualStack": false,
2370                "Accelerate": false
2371            }
2372        },
2373        {
2374            "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region uses the global endpoint",
2375            "expect": {
2376                "endpoint": {
2377                    "properties": {
2378                        "authSchemes": [
2379                            {
2380                                "name": "sigv4",
2381                                "signingName": "s3",
2382                                "signingRegion": "us-east-1",
2383                                "disableDoubleEncoding": true
2384                            }
2385                        ]
2386                    },
2387                    "url": "https://s3.amazonaws.com/bucket-name"
2388                }
2389            },
2390            "operationInputs": [
2391                {
2392                    "builtInParams": {
2393                        "AWS::Region": "us-east-1",
2394                        "AWS::S3::ForcePathStyle": true,
2395                        "AWS::S3::UseGlobalEndpoint": true
2396                    },
2397                    "operationName": "GetObject",
2398                    "operationParams": {
2399                        "Bucket": "bucket-name",
2400                        "Key": "key"
2401                    }
2402                }
2403            ],
2404            "params": {
2405                "Region": "us-east-1",
2406                "Bucket": "bucket-name",
2407                "UseGlobalEndpoint": true,
2408                "ForcePathStyle": true,
2409                "UseFIPS": false,
2410                "UseDualStack": false,
2411                "Accelerate": false
2412            }
2413        },
2414        {
2415            "documentation": "ForcePathStyle, UseGlobalEndpoint us-west-2 region uses the regional endpoint",
2416            "expect": {
2417                "endpoint": {
2418                    "properties": {
2419                        "authSchemes": [
2420                            {
2421                                "name": "sigv4",
2422                                "signingName": "s3",
2423                                "signingRegion": "us-west-2",
2424                                "disableDoubleEncoding": true
2425                            }
2426                        ]
2427                    },
2428                    "url": "https://s3.us-west-2.amazonaws.com/bucket-name"
2429                }
2430            },
2431            "operationInputs": [
2432                {
2433                    "builtInParams": {
2434                        "AWS::Region": "us-west-2",
2435                        "AWS::S3::ForcePathStyle": true,
2436                        "AWS::S3::UseGlobalEndpoint": true
2437                    },
2438                    "operationName": "GetObject",
2439                    "operationParams": {
2440                        "Bucket": "bucket-name",
2441                        "Key": "key"
2442                    }
2443                }
2444            ],
2445            "params": {
2446                "Region": "us-west-2",
2447                "Bucket": "bucket-name",
2448                "UseGlobalEndpoint": true,
2449                "ForcePathStyle": true,
2450                "UseFIPS": false,
2451                "UseDualStack": false,
2452                "Accelerate": false
2453            }
2454        },
2455        {
2456            "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region, dualstack uses the regional dualstack endpoint",
2457            "expect": {
2458                "endpoint": {
2459                    "properties": {
2460                        "authSchemes": [
2461                            {
2462                                "name": "sigv4",
2463                                "signingName": "s3",
2464                                "signingRegion": "us-east-1",
2465                                "disableDoubleEncoding": true
2466                            }
2467                        ]
2468                    },
2469                    "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket-name"
2470                }
2471            },
2472            "operationInputs": [
2473                {
2474                    "builtInParams": {
2475                        "AWS::Region": "us-east-1",
2476                        "AWS::UseDualStack": true,
2477                        "AWS::S3::ForcePathStyle": true,
2478                        "AWS::S3::UseGlobalEndpoint": true
2479                    },
2480                    "operationName": "GetObject",
2481                    "operationParams": {
2482                        "Bucket": "bucket-name",
2483                        "Key": "key"
2484                    }
2485                }
2486            ],
2487            "params": {
2488                "Region": "us-east-1",
2489                "Bucket": "bucket-name",
2490                "UseGlobalEndpoint": true,
2491                "ForcePathStyle": true,
2492                "UseFIPS": false,
2493                "UseDualStack": true,
2494                "Accelerate": false
2495            }
2496        },
2497        {
2498            "documentation": "ForcePathStyle, UseGlobalEndpoint us-east-1 region custom endpoint uses the custom endpoint",
2499            "expect": {
2500                "endpoint": {
2501                    "properties": {
2502                        "authSchemes": [
2503                            {
2504                                "name": "sigv4",
2505                                "signingName": "s3",
2506                                "signingRegion": "us-east-1",
2507                                "disableDoubleEncoding": true
2508                            }
2509                        ]
2510                    },
2511                    "url": "https://example.com/bucket-name"
2512                }
2513            },
2514            "operationInputs": [
2515                {
2516                    "builtInParams": {
2517                        "AWS::Region": "us-east-1",
2518                        "SDK::Endpoint": "https://example.com",
2519                        "AWS::S3::ForcePathStyle": true,
2520                        "AWS::S3::UseGlobalEndpoint": true
2521                    },
2522                    "operationName": "GetObject",
2523                    "operationParams": {
2524                        "Bucket": "bucket-name",
2525                        "Key": "key"
2526                    }
2527                }
2528            ],
2529            "params": {
2530                "Region": "us-east-1",
2531                "Bucket": "bucket-name",
2532                "Endpoint": "https://example.com",
2533                "UseGlobalEndpoint": true,
2534                "ForcePathStyle": true,
2535                "UseFIPS": false,
2536                "UseDualStack": false,
2537                "Accelerate": false
2538            }
2539        },
2540        {
2541            "documentation": "ARN with aws-global region and  UseArnRegion uses the regional endpoint",
2542            "expect": {
2543                "endpoint": {
2544                    "properties": {
2545                        "authSchemes": [
2546                            {
2547                                "name": "sigv4",
2548                                "signingName": "s3-outposts",
2549                                "signingRegion": "us-east-1",
2550                                "disableDoubleEncoding": true
2551                            }
2552                        ]
2553                    },
2554                    "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com"
2555                }
2556            },
2557            "operationInputs": [
2558                {
2559                    "builtInParams": {
2560                        "AWS::Region": "aws-global",
2561                        "AWS::S3::UseArnRegion": true
2562                    },
2563                    "operationName": "GetObject",
2564                    "operationParams": {
2565                        "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports",
2566                        "Key": "key"
2567                    }
2568                }
2569            ],
2570            "params": {
2571                "Region": "aws-global",
2572                "UseArnRegion": true,
2573                "UseFIPS": false,
2574                "UseDualStack": false,
2575                "Accelerate": false,
2576                "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports"
2577            }
2578        },
2579        {
2580            "documentation": "cross partition MRAP ARN is an error",
2581            "expect": {
2582                "error": "Client was configured for partition `aws` but bucket referred to partition `aws-cn`"
2583            },
2584            "operationInputs": [
2585                {
2586                    "builtInParams": {
2587                        "AWS::Region": "us-west-1"
2588                    },
2589                    "operationName": "GetObject",
2590                    "operationParams": {
2591                        "Bucket": "arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
2592                        "Key": "key"
2593                    }
2594                }
2595            ],
2596            "params": {
2597                "Bucket": "arn:aws-cn:s3::123456789012:accesspoint:mfzwi23gnjvgw.mrap",
2598                "Region": "us-west-1"
2599            }
2600        },
2601        {
2602            "documentation": "Endpoint override, accesspoint with HTTP, port",
2603            "expect": {
2604                "endpoint": {
2605                    "properties": {
2606                        "authSchemes": [
2607                            {
2608                                "name": "sigv4",
2609                                "signingName": "s3",
2610                                "signingRegion": "us-west-2",
2611                                "disableDoubleEncoding": true
2612                            }
2613                        ]
2614                    },
2615                    "url": "http://myendpoint-123456789012.beta.example.com:1234"
2616                }
2617            },
2618            "operationInputs": [
2619                {
2620                    "builtInParams": {
2621                        "AWS::Region": "us-west-2",
2622                        "SDK::Endpoint": "http://beta.example.com:1234"
2623                    },
2624                    "operationName": "GetObject",
2625                    "operationParams": {
2626                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
2627                        "Key": "key"
2628                    }
2629                }
2630            ],
2631            "params": {
2632                "Endpoint": "http://beta.example.com:1234",
2633                "Region": "us-west-2",
2634                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint"
2635            }
2636        },
2637        {
2638            "documentation": "Endpoint override, accesspoint with http, path, query, and port",
2639            "expect": {
2640                "endpoint": {
2641                    "properties": {
2642                        "authSchemes": [
2643                            {
2644                                "name": "sigv4",
2645                                "signingName": "s3",
2646                                "signingRegion": "us-west-2",
2647                                "disableDoubleEncoding": true
2648                            }
2649                        ]
2650                    },
2651                    "url": "http://myendpoint-123456789012.beta.example.com:1234/path"
2652                }
2653            },
2654            "params": {
2655                "Region": "us-west-2",
2656                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
2657                "Endpoint": "http://beta.example.com:1234/path",
2658                "UseFIPS": false,
2659                "UseDualStack": false,
2660                "Accelerate": false
2661            }
2662        },
2663        {
2664            "documentation": "non-bucket endpoint override with FIPS = error",
2665            "expect": {
2666                "error": "A custom endpoint cannot be combined with FIPS"
2667            },
2668            "params": {
2669                "Region": "us-west-2",
2670                "Endpoint": "http://beta.example.com:1234/path",
2671                "UseFIPS": true,
2672                "UseDualStack": false
2673            }
2674        },
2675        {
2676            "documentation": "FIPS + dualstack + custom endpoint",
2677            "expect": {
2678                "error": "Cannot set dual-stack in combination with a custom endpoint."
2679            },
2680            "params": {
2681                "Region": "us-west-2",
2682                "Endpoint": "http://beta.example.com:1234/path",
2683                "UseFIPS": true,
2684                "UseDualStack": true
2685            }
2686        },
2687        {
2688            "documentation": "dualstack + custom endpoint",
2689            "expect": {
2690                "error": "Cannot set dual-stack in combination with a custom endpoint."
2691            },
2692            "params": {
2693                "Region": "us-west-2",
2694                "Endpoint": "http://beta.example.com:1234/path",
2695                "UseFIPS": false,
2696                "UseDualStack": true
2697            }
2698        },
2699        {
2700            "documentation": "custom endpoint without FIPS/dualstack",
2701            "expect": {
2702                "endpoint": {
2703                    "properties": {
2704                        "authSchemes": [
2705                            {
2706                                "name": "sigv4",
2707                                "signingName": "s3",
2708                                "signingRegion": "us-west-2",
2709                                "disableDoubleEncoding": true
2710                            }
2711                        ]
2712                    },
2713                    "url": "http://beta.example.com:1234/path"
2714                }
2715            },
2716            "params": {
2717                "Region": "us-west-2",
2718                "Endpoint": "http://beta.example.com:1234/path",
2719                "UseFIPS": false,
2720                "UseDualStack": false
2721            }
2722        },
2723        {
2724            "documentation": "s3 object lambda with access points disabled",
2725            "expect": {
2726                "error": "Access points are not supported for this operation"
2727            },
2728            "params": {
2729                "Region": "us-west-2",
2730                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:myendpoint",
2731                "DisableAccessPoints": true
2732            }
2733        },
2734        {
2735            "documentation": "non bucket + FIPS",
2736            "expect": {
2737                "endpoint": {
2738                    "properties": {
2739                        "authSchemes": [
2740                            {
2741                                "name": "sigv4",
2742                                "signingName": "s3",
2743                                "signingRegion": "us-west-2",
2744                                "disableDoubleEncoding": true
2745                            }
2746                        ]
2747                    },
2748                    "url": "https://s3-fips.us-west-2.amazonaws.com"
2749                }
2750            },
2751            "params": {
2752                "Region": "us-west-2",
2753                "UseFIPS": true,
2754                "UseDualStack": false
2755            }
2756        },
2757        {
2758            "documentation": "standard non bucket endpoint",
2759            "expect": {
2760                "endpoint": {
2761                    "properties": {
2762                        "authSchemes": [
2763                            {
2764                                "name": "sigv4",
2765                                "signingName": "s3",
2766                                "signingRegion": "us-west-2",
2767                                "disableDoubleEncoding": true
2768                            }
2769                        ]
2770                    },
2771                    "url": "https://s3.us-west-2.amazonaws.com"
2772                }
2773            },
2774            "params": {
2775                "Region": "us-west-2",
2776                "UseFIPS": false,
2777                "UseDualStack": false
2778            }
2779        },
2780        {
2781            "documentation": "non bucket endpoint with FIPS + Dualstack",
2782            "expect": {
2783                "endpoint": {
2784                    "properties": {
2785                        "authSchemes": [
2786                            {
2787                                "name": "sigv4",
2788                                "signingName": "s3",
2789                                "signingRegion": "us-west-2",
2790                                "disableDoubleEncoding": true
2791                            }
2792                        ]
2793                    },
2794                    "url": "https://s3-fips.dualstack.us-west-2.amazonaws.com"
2795                }
2796            },
2797            "params": {
2798                "Region": "us-west-2",
2799                "UseFIPS": true,
2800                "UseDualStack": true
2801            }
2802        },
2803        {
2804            "documentation": "non bucket endpoint with dualstack",
2805            "expect": {
2806                "endpoint": {
2807                    "properties": {
2808                        "authSchemes": [
2809                            {
2810                                "name": "sigv4",
2811                                "signingName": "s3",
2812                                "signingRegion": "us-west-2",
2813                                "disableDoubleEncoding": true
2814                            }
2815                        ]
2816                    },
2817                    "url": "https://s3.dualstack.us-west-2.amazonaws.com"
2818                }
2819            },
2820            "params": {
2821                "Region": "us-west-2",
2822                "UseFIPS": false,
2823                "UseDualStack": true
2824            }
2825        },
2826        {
2827            "documentation": "use global endpoint + IP address endpoint override",
2828            "expect": {
2829                "endpoint": {
2830                    "properties": {
2831                        "authSchemes": [
2832                            {
2833                                "name": "sigv4",
2834                                "signingName": "s3",
2835                                "disableDoubleEncoding": true,
2836                                "signingRegion": "us-east-1"
2837                            }
2838                        ]
2839                    },
2840                    "url": "http://127.0.0.1/bucket"
2841                }
2842            },
2843            "params": {
2844                "Region": "us-east-1",
2845                "Bucket": "bucket",
2846                "UseFIPS": false,
2847                "UseDualStack": false,
2848                "Endpoint": "http://127.0.0.1",
2849                "UseGlobalEndpoint": true
2850            }
2851        },
2852        {
2853            "documentation": "non-dns endpoint + global endpoint",
2854            "expect": {
2855                "endpoint": {
2856                    "properties": {
2857                        "authSchemes": [
2858                            {
2859                                "name": "sigv4",
2860                                "signingName": "s3",
2861                                "disableDoubleEncoding": true,
2862                                "signingRegion": "us-east-1"
2863                            }
2864                        ]
2865                    },
2866                    "url": "https://s3.amazonaws.com/bucket%21"
2867                }
2868            },
2869            "params": {
2870                "Region": "us-east-1",
2871                "Bucket": "bucket!",
2872                "UseFIPS": false,
2873                "UseDualStack": false,
2874                "UseGlobalEndpoint": true
2875            }
2876        },
2877        {
2878            "documentation": "endpoint override + use global endpoint",
2879            "expect": {
2880                "endpoint": {
2881                    "properties": {
2882                        "authSchemes": [
2883                            {
2884                                "name": "sigv4",
2885                                "signingName": "s3",
2886                                "disableDoubleEncoding": true,
2887                                "signingRegion": "us-east-1"
2888                            }
2889                        ]
2890                    },
2891                    "url": "http://foo.com/bucket%21"
2892                }
2893            },
2894            "params": {
2895                "Region": "us-east-1",
2896                "Bucket": "bucket!",
2897                "UseFIPS": false,
2898                "UseDualStack": false,
2899                "UseGlobalEndpoint": true,
2900                "Endpoint": "http://foo.com"
2901            }
2902        },
2903        {
2904            "documentation": "FIPS + dualstack + non-bucket endpoint",
2905            "expect": {
2906                "endpoint": {
2907                    "properties": {
2908                        "authSchemes": [
2909                            {
2910                                "name": "sigv4",
2911                                "signingName": "s3",
2912                                "disableDoubleEncoding": true,
2913                                "signingRegion": "us-east-1"
2914                            }
2915                        ]
2916                    },
2917                    "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21"
2918                }
2919            },
2920            "params": {
2921                "Region": "us-east-1",
2922                "Bucket": "bucket!",
2923                "UseFIPS": true,
2924                "UseDualStack": true
2925            }
2926        },
2927        {
2928            "documentation": "FIPS + dualstack + non-DNS endpoint",
2929            "expect": {
2930                "endpoint": {
2931                    "properties": {
2932                        "authSchemes": [
2933                            {
2934                                "name": "sigv4",
2935                                "signingName": "s3",
2936                                "disableDoubleEncoding": true,
2937                                "signingRegion": "us-east-1"
2938                            }
2939                        ]
2940                    },
2941                    "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21"
2942                }
2943            },
2944            "params": {
2945                "Region": "us-east-1",
2946                "Bucket": "bucket!",
2947                "ForcePathStyle": true,
2948                "UseFIPS": true,
2949                "UseDualStack": true
2950            }
2951        },
2952        {
2953            "documentation": "endpoint override + FIPS + dualstack (BUG)",
2954            "expect": {
2955                "error": "A custom endpoint cannot be combined with FIPS"
2956            },
2957            "params": {
2958                "Region": "us-east-1",
2959                "Bucket": "bucket!",
2960                "ForcePathStyle": true,
2961                "UseFIPS": true,
2962                "UseDualStack": false,
2963                "Endpoint": "http://foo.com"
2964            }
2965        },
2966        {
2967            "documentation": "endpoint override + non-dns bucket + FIPS (BUG)",
2968            "expect": {
2969                "error": "A custom endpoint cannot be combined with FIPS"
2970            },
2971            "params": {
2972                "Region": "us-east-1",
2973                "Bucket": "bucket!",
2974                "UseFIPS": true,
2975                "UseDualStack": false,
2976                "Endpoint": "http://foo.com"
2977            }
2978        },
2979        {
2980            "documentation": "FIPS + bucket endpoint + force path style",
2981            "expect": {
2982                "endpoint": {
2983                    "properties": {
2984                        "authSchemes": [
2985                            {
2986                                "name": "sigv4",
2987                                "signingName": "s3",
2988                                "disableDoubleEncoding": true,
2989                                "signingRegion": "us-east-1"
2990                            }
2991                        ]
2992                    },
2993                    "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21"
2994                }
2995            },
2996            "params": {
2997                "Region": "us-east-1",
2998                "Bucket": "bucket!",
2999                "ForcePathStyle": true,
3000                "UseFIPS": true,
3001                "UseDualStack": false,
3002                "UseGlobalEndpoint": true
3003            }
3004        },
3005        {
3006            "documentation": "bucket + FIPS + force path style",
3007            "expect": {
3008                "endpoint": {
3009                    "properties": {
3010                        "authSchemes": [
3011                            {
3012                                "name": "sigv4",
3013                                "signingName": "s3",
3014                                "disableDoubleEncoding": true,
3015                                "signingRegion": "us-east-1"
3016                            }
3017                        ]
3018                    },
3019                    "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket"
3020                }
3021            },
3022            "params": {
3023                "Region": "us-east-1",
3024                "Bucket": "bucket",
3025                "ForcePathStyle": true,
3026                "UseFIPS": true,
3027                "UseDualStack": true,
3028                "UseGlobalEndpoint": true
3029            }
3030        },
3031        {
3032            "documentation": "FIPS + dualstack + use global endpoint",
3033            "expect": {
3034                "endpoint": {
3035                    "properties": {
3036                        "authSchemes": [
3037                            {
3038                                "name": "sigv4",
3039                                "signingName": "s3",
3040                                "disableDoubleEncoding": true,
3041                                "signingRegion": "us-east-1"
3042                            }
3043                        ]
3044                    },
3045                    "url": "https://bucket.s3-fips.dualstack.us-east-1.amazonaws.com"
3046                }
3047            },
3048            "params": {
3049                "Region": "us-east-1",
3050                "Bucket": "bucket",
3051                "UseFIPS": true,
3052                "UseDualStack": true,
3053                "UseGlobalEndpoint": true
3054            }
3055        },
3056        {
3057            "documentation": "URI encoded bucket + use global endpoint",
3058            "expect": {
3059                "error": "A custom endpoint cannot be combined with FIPS"
3060            },
3061            "params": {
3062                "Region": "us-east-1",
3063                "Bucket": "bucket!",
3064                "UseFIPS": true,
3065                "UseDualStack": false,
3066                "UseGlobalEndpoint": true,
3067                "Endpoint": "https://foo.com"
3068            }
3069        },
3070        {
3071            "documentation": "FIPS + path based endpoint",
3072            "expect": {
3073                "endpoint": {
3074                    "properties": {
3075                        "authSchemes": [
3076                            {
3077                                "name": "sigv4",
3078                                "signingName": "s3",
3079                                "disableDoubleEncoding": true,
3080                                "signingRegion": "us-east-1"
3081                            }
3082                        ]
3083                    },
3084                    "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21"
3085                }
3086            },
3087            "params": {
3088                "Region": "us-east-1",
3089                "Bucket": "bucket!",
3090                "UseFIPS": true,
3091                "UseDualStack": false,
3092                "Accelerate": false,
3093                "UseGlobalEndpoint": true
3094            }
3095        },
3096        {
3097            "documentation": "accelerate + dualstack + global endpoint",
3098            "expect": {
3099                "endpoint": {
3100                    "properties": {
3101                        "authSchemes": [
3102                            {
3103                                "name": "sigv4",
3104                                "signingName": "s3",
3105                                "disableDoubleEncoding": true,
3106                                "signingRegion": "us-east-1"
3107                            }
3108                        ]
3109                    },
3110                    "url": "https://bucket.s3-accelerate.dualstack.amazonaws.com"
3111                }
3112            },
3113            "params": {
3114                "Region": "us-east-1",
3115                "Bucket": "bucket",
3116                "UseFIPS": false,
3117                "UseDualStack": true,
3118                "Accelerate": true,
3119                "UseGlobalEndpoint": true
3120            }
3121        },
3122        {
3123            "documentation": "dualstack + global endpoint + non URI safe bucket",
3124            "expect": {
3125                "endpoint": {
3126                    "properties": {
3127                        "authSchemes": [
3128                            {
3129                                "name": "sigv4",
3130                                "signingName": "s3",
3131                                "disableDoubleEncoding": true,
3132                                "signingRegion": "us-east-1"
3133                            }
3134                        ]
3135                    },
3136                    "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket%21"
3137                }
3138            },
3139            "params": {
3140                "Region": "us-east-1",
3141                "Bucket": "bucket!",
3142                "Accelerate": false,
3143                "UseDualStack": true,
3144                "UseFIPS": false,
3145                "UseGlobalEndpoint": true
3146            }
3147        },
3148        {
3149            "documentation": "FIPS + uri encoded bucket",
3150            "expect": {
3151                "endpoint": {
3152                    "properties": {
3153                        "authSchemes": [
3154                            {
3155                                "name": "sigv4",
3156                                "signingName": "s3",
3157                                "disableDoubleEncoding": true,
3158                                "signingRegion": "us-east-1"
3159                            }
3160                        ]
3161                    },
3162                    "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21"
3163                }
3164            },
3165            "params": {
3166                "Region": "us-east-1",
3167                "Bucket": "bucket!",
3168                "ForcePathStyle": true,
3169                "Accelerate": false,
3170                "UseDualStack": false,
3171                "UseFIPS": true,
3172                "UseGlobalEndpoint": true
3173            }
3174        },
3175        {
3176            "documentation": "endpoint override + non-uri safe endpoint + force path style",
3177            "expect": {
3178                "error": "A custom endpoint cannot be combined with FIPS"
3179            },
3180            "params": {
3181                "Region": "us-east-1",
3182                "Bucket": "bucket!",
3183                "ForcePathStyle": true,
3184                "Accelerate": false,
3185                "UseDualStack": false,
3186                "UseFIPS": true,
3187                "Endpoint": "http://foo.com",
3188                "UseGlobalEndpoint": true
3189            }
3190        },
3191        {
3192            "documentation": "FIPS + Dualstack + global endpoint + non-dns bucket",
3193            "expect": {
3194                "endpoint": {
3195                    "properties": {
3196                        "authSchemes": [
3197                            {
3198                                "name": "sigv4",
3199                                "signingName": "s3",
3200                                "disableDoubleEncoding": true,
3201                                "signingRegion": "us-east-1"
3202                            }
3203                        ]
3204                    },
3205                    "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21"
3206                }
3207            },
3208            "params": {
3209                "Region": "us-east-1",
3210                "Bucket": "bucket!",
3211                "Accelerate": false,
3212                "UseDualStack": true,
3213                "UseFIPS": true,
3214                "UseGlobalEndpoint": true
3215            }
3216        },
3217        {
3218            "documentation": "endpoint override + FIPS + dualstack",
3219            "expect": {
3220                "error": "Cannot set dual-stack in combination with a custom endpoint."
3221            },
3222            "params": {
3223                "Region": "us-east-1",
3224                "UseDualStack": true,
3225                "UseFIPS": true,
3226                "UseGlobalEndpoint": true,
3227                "Endpoint": "http://foo.com"
3228            }
3229        },
3230        {
3231            "documentation": "non-bucket endpoint override + dualstack + global endpoint",
3232            "expect": {
3233                "error": "Cannot set dual-stack in combination with a custom endpoint."
3234            },
3235            "params": {
3236                "Region": "us-east-1",
3237                "UseFIPS": false,
3238                "UseDualStack": true,
3239                "UseGlobalEndpoint": true,
3240                "Endpoint": "http://foo.com"
3241            }
3242        },
3243        {
3244            "documentation": "Endpoint override + UseGlobalEndpoint + us-east-1",
3245            "expect": {
3246                "error": "A custom endpoint cannot be combined with FIPS"
3247            },
3248            "params": {
3249                "Region": "us-east-1",
3250                "UseFIPS": true,
3251                "UseDualStack": false,
3252                "UseGlobalEndpoint": true,
3253                "Endpoint": "http://foo.com"
3254            }
3255        },
3256        {
3257            "documentation": "non-FIPS partition with FIPS set + custom endpoint",
3258            "expect": {
3259                "error": "Partition does not support FIPS"
3260            },
3261            "params": {
3262                "Region": "cn-north-1",
3263                "UseFIPS": true,
3264                "UseDualStack": false,
3265                "UseGlobalEndpoint": true
3266            }
3267        },
3268        {
3269            "documentation": "aws-global signs as us-east-1",
3270            "expect": {
3271                "endpoint": {
3272                    "properties": {
3273                        "authSchemes": [
3274                            {
3275                                "signingRegion": "us-east-1",
3276                                "name": "sigv4",
3277                                "signingName": "s3",
3278                                "disableDoubleEncoding": true
3279                            }
3280                        ]
3281                    },
3282                    "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21"
3283                }
3284            },
3285            "params": {
3286                "Region": "aws-global",
3287                "Bucket": "bucket!",
3288                "UseFIPS": true,
3289                "Accelerate": false,
3290                "UseDualStack": true
3291            }
3292        },
3293        {
3294            "documentation": "aws-global signs as us-east-1",
3295            "expect": {
3296                "endpoint": {
3297                    "properties": {
3298                        "authSchemes": [
3299                            {
3300                                "signingRegion": "us-east-1",
3301                                "name": "sigv4",
3302                                "signingName": "s3",
3303                                "disableDoubleEncoding": true
3304                            }
3305                        ]
3306                    },
3307                    "url": "https://bucket.foo.com"
3308                }
3309            },
3310            "params": {
3311                "Region": "aws-global",
3312                "Bucket": "bucket",
3313                "UseDualStack": false,
3314                "UseFIPS": false,
3315                "Accelerate": false,
3316                "Endpoint": "https://foo.com"
3317            }
3318        },
3319        {
3320            "documentation": "aws-global + dualstack + path-only bucket",
3321            "expect": {
3322                "endpoint": {
3323                    "properties": {
3324                        "authSchemes": [
3325                            {
3326                                "signingRegion": "us-east-1",
3327                                "name": "sigv4",
3328                                "signingName": "s3",
3329                                "disableDoubleEncoding": true
3330                            }
3331                        ]
3332                    },
3333                    "url": "https://s3.dualstack.us-east-1.amazonaws.com/bucket%21"
3334                }
3335            },
3336            "params": {
3337                "Region": "aws-global",
3338                "Bucket": "bucket!",
3339                "UseDualStack": true,
3340                "UseFIPS": false,
3341                "Accelerate": false
3342            }
3343        },
3344        {
3345            "documentation": "aws-global + path-only bucket",
3346            "expect": {
3347                "endpoint": {
3348                    "properties": {
3349                        "authSchemes": [
3350                            {
3351                                "signingRegion": "us-east-1",
3352                                "name": "sigv4",
3353                                "signingName": "s3",
3354                                "disableDoubleEncoding": true
3355                            }
3356                        ]
3357                    },
3358                    "url": "https://s3.amazonaws.com/bucket%21"
3359                }
3360            },
3361            "params": {
3362                "Region": "aws-global",
3363                "Bucket": "bucket!"
3364            }
3365        },
3366        {
3367            "documentation": "aws-global + fips + custom endpoint",
3368            "expect": {
3369                "error": "A custom endpoint cannot be combined with FIPS"
3370            },
3371            "params": {
3372                "Region": "aws-global",
3373                "Bucket": "bucket!",
3374                "UseDualStack": false,
3375                "UseFIPS": true,
3376                "Accelerate": false,
3377                "Endpoint": "http://foo.com"
3378            }
3379        },
3380        {
3381            "documentation": "aws-global, endpoint override & path only-bucket",
3382            "expect": {
3383                "endpoint": {
3384                    "properties": {
3385                        "authSchemes": [
3386                            {
3387                                "signingRegion": "us-east-1",
3388                                "name": "sigv4",
3389                                "signingName": "s3",
3390                                "disableDoubleEncoding": true
3391                            }
3392                        ]
3393                    },
3394                    "url": "http://foo.com/bucket%21"
3395                }
3396            },
3397            "params": {
3398                "Region": "aws-global",
3399                "Bucket": "bucket!",
3400                "UseDualStack": false,
3401                "UseFIPS": false,
3402                "Accelerate": false,
3403                "Endpoint": "http://foo.com"
3404            }
3405        },
3406        {
3407            "documentation": "aws-global + dualstack + custom endpoint",
3408            "expect": {
3409                "error": "Cannot set dual-stack in combination with a custom endpoint."
3410            },
3411            "params": {
3412                "Region": "aws-global",
3413                "UseDualStack": true,
3414                "UseFIPS": false,
3415                "Accelerate": false,
3416                "Endpoint": "http://foo.com"
3417            }
3418        },
3419        {
3420            "documentation": "accelerate, dualstack + aws-global",
3421            "expect": {
3422                "endpoint": {
3423                    "properties": {
3424                        "authSchemes": [
3425                            {
3426                                "signingRegion": "us-east-1",
3427                                "name": "sigv4",
3428                                "signingName": "s3",
3429                                "disableDoubleEncoding": true
3430                            }
3431                        ]
3432                    },
3433                    "url": "https://bucket.s3-accelerate.dualstack.us-east-1.amazonaws.com"
3434                }
3435            },
3436            "params": {
3437                "Region": "aws-global",
3438                "Bucket": "bucket",
3439                "UseDualStack": true,
3440                "UseFIPS": false,
3441                "Accelerate": true
3442            }
3443        },
3444        {
3445            "documentation": "FIPS + aws-global + path only bucket. This is not supported by S3 but we allow garbage in garbage out",
3446            "expect": {
3447                "endpoint": {
3448                    "properties": {
3449                        "authSchemes": [
3450                            {
3451                                "signingRegion": "us-east-1",
3452                                "name": "sigv4",
3453                                "signingName": "s3",
3454                                "disableDoubleEncoding": true
3455                            }
3456                        ]
3457                    },
3458                    "url": "https://s3-fips.dualstack.us-east-1.amazonaws.com/bucket%21"
3459                }
3460            },
3461            "params": {
3462                "Region": "aws-global",
3463                "Bucket": "bucket!",
3464                "ForcePathStyle": true,
3465                "UseDualStack": true,
3466                "UseFIPS": true,
3467                "Accelerate": false
3468            }
3469        },
3470        {
3471            "documentation": "aws-global + FIPS + endpoint override.",
3472            "expect": {
3473                "error": "A custom endpoint cannot be combined with FIPS"
3474            },
3475            "params": {
3476                "Region": "aws-global",
3477                "UseFIPS": true,
3478                "Endpoint": "http://foo.com"
3479            }
3480        },
3481        {
3482            "documentation": "force path style, FIPS, aws-global & endpoint override",
3483            "expect": {
3484                "error": "A custom endpoint cannot be combined with FIPS"
3485            },
3486            "params": {
3487                "Region": "aws-global",
3488                "Bucket": "bucket!",
3489                "ForcePathStyle": true,
3490                "UseFIPS": true,
3491                "Endpoint": "http://foo.com"
3492            }
3493        },
3494        {
3495            "documentation": "ip address causes path style to be forced",
3496            "expect": {
3497                "endpoint": {
3498                    "properties": {
3499                        "authSchemes": [
3500                            {
3501                                "signingRegion": "us-east-1",
3502                                "name": "sigv4",
3503                                "signingName": "s3",
3504                                "disableDoubleEncoding": true
3505                            }
3506                        ]
3507                    },
3508                    "url": "http://192.168.1.1/bucket"
3509                }
3510            },
3511            "params": {
3512                "Region": "aws-global",
3513                "Bucket": "bucket",
3514                "Endpoint": "http://192.168.1.1"
3515            }
3516        },
3517        {
3518            "documentation": "endpoint override with aws-global region",
3519            "expect": {
3520                "error": "Cannot set dual-stack in combination with a custom endpoint."
3521            },
3522            "params": {
3523                "Region": "aws-global",
3524                "UseFIPS": true,
3525                "UseDualStack": true,
3526                "Endpoint": "http://foo.com"
3527            }
3528        },
3529        {
3530            "documentation": "FIPS + path-only (TODO: consider making this an error)",
3531            "expect": {
3532                "endpoint": {
3533                    "properties": {
3534                        "authSchemes": [
3535                            {
3536                                "signingRegion": "us-east-1",
3537                                "name": "sigv4",
3538                                "signingName": "s3",
3539                                "disableDoubleEncoding": true
3540                            }
3541                        ]
3542                    },
3543                    "url": "https://s3-fips.us-east-1.amazonaws.com/bucket%21"
3544                }
3545            },
3546            "params": {
3547                "Region": "aws-global",
3548                "Bucket": "bucket!",
3549                "UseFIPS": true
3550            }
3551        },
3552        {
3553            "documentation": "empty arn type",
3554            "expect": {
3555                "error": "Invalid ARN: No ARN type specified"
3556            },
3557            "params": {
3558                "Region": "us-east-2",
3559                "Bucket": "arn:aws:not-s3:us-west-2:123456789012::myendpoint"
3560            }
3561        },
3562        {
3563            "documentation": "path style can't be used with accelerate",
3564            "expect": {
3565                "error": "Path-style addressing cannot be used with S3 Accelerate"
3566            },
3567            "params": {
3568                "Region": "us-east-2",
3569                "Bucket": "bucket!",
3570                "Accelerate": true
3571            }
3572        },
3573        {
3574            "documentation": "invalid region",
3575            "expect": {
3576                "error": "Invalid region: region was not a valid DNS name."
3577            },
3578            "params": {
3579                "Region": "us-east-2!",
3580                "Bucket": "bucket.subdomain",
3581                "Endpoint": "http://foo.com"
3582            }
3583        },
3584        {
3585            "documentation": "invalid region",
3586            "expect": {
3587                "error": "Invalid region: region was not a valid DNS name."
3588            },
3589            "params": {
3590                "Region": "us-east-2!",
3591                "Bucket": "bucket",
3592                "Endpoint": "http://foo.com"
3593            }
3594        },
3595        {
3596            "documentation": "empty arn type",
3597            "expect": {
3598                "error": "Invalid Access Point Name"
3599            },
3600            "params": {
3601                "Region": "us-east-2",
3602                "Bucket": "arn:aws:s3::123456789012:accesspoint:my_endpoint"
3603            }
3604        },
3605        {
3606            "documentation": "empty arn type",
3607            "expect": {
3608                "error": "Client was configured for partition `aws` but ARN (`arn:aws:s3:cn-north-1:123456789012:accesspoint:my-endpoint`) has `aws-cn`"
3609            },
3610            "params": {
3611                "Region": "us-east-2",
3612                "Bucket": "arn:aws:s3:cn-north-1:123456789012:accesspoint:my-endpoint",
3613                "UseArnRegion": true
3614            }
3615        },
3616        {
3617            "documentation": "invalid arn region",
3618            "expect": {
3619                "error": "Invalid region in ARN: `us-east_2` (invalid DNS name)"
3620            },
3621            "params": {
3622                "Region": "us-east-2",
3623                "Bucket": "arn:aws:s3-object-lambda:us-east_2:123456789012:accesspoint:my-endpoint",
3624                "UseArnRegion": true
3625            }
3626        },
3627        {
3628            "documentation": "invalid ARN outpost",
3629            "expect": {
3630                "error": "Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `op_01234567890123456`"
3631            },
3632            "params": {
3633                "Region": "us-east-2",
3634                "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op_01234567890123456/accesspoint/reports",
3635                "UseArnRegion": true
3636            }
3637        },
3638        {
3639            "documentation": "invalid ARN",
3640            "expect": {
3641                "error": "Invalid ARN: expected an access point name"
3642            },
3643            "params": {
3644                "Region": "us-east-2",
3645                "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/reports"
3646            }
3647        },
3648        {
3649            "documentation": "invalid ARN",
3650            "expect": {
3651                "error": "Invalid ARN: Expected a 4-component resource"
3652            },
3653            "params": {
3654                "Region": "us-east-2",
3655                "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456"
3656            }
3657        },
3658        {
3659            "documentation": "invalid outpost type",
3660            "expect": {
3661                "error": "Expected an outpost type `accesspoint`, found not-accesspoint"
3662            },
3663            "params": {
3664                "Region": "us-east-2",
3665                "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/not-accesspoint/reports"
3666            }
3667        },
3668        {
3669            "documentation": "invalid outpost type",
3670            "expect": {
3671                "error": "Invalid region in ARN: `us-east_1` (invalid DNS name)"
3672            },
3673            "params": {
3674                "Region": "us-east-2",
3675                "Bucket": "arn:aws:s3-outposts:us-east_1:123456789012:outpost/op-01234567890123456/not-accesspoint/reports"
3676            }
3677        },
3678        {
3679            "documentation": "invalid outpost type",
3680            "expect": {
3681                "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `12345_789012`"
3682            },
3683            "params": {
3684                "Region": "us-east-2",
3685                "Bucket": "arn:aws:s3-outposts:us-east-1:12345_789012:outpost/op-01234567890123456/not-accesspoint/reports"
3686            }
3687        },
3688        {
3689            "documentation": "invalid outpost type",
3690            "expect": {
3691                "error": "Invalid ARN: The Outpost Id was not set"
3692            },
3693            "params": {
3694                "Region": "us-east-2",
3695                "Bucket": "arn:aws:s3-outposts:us-east-1:12345789012:outpost"
3696            }
3697        },
3698        {
3699            "documentation": "use global endpoint virtual addressing",
3700            "expect": {
3701                "endpoint": {
3702                    "properties": {
3703                        "authSchemes": [
3704                            {
3705                                "signingRegion": "us-east-2",
3706                                "name": "sigv4",
3707                                "signingName": "s3",
3708                                "disableDoubleEncoding": true
3709                            }
3710                        ]
3711                    },
3712                    "url": "http://bucket.example.com"
3713                }
3714            },
3715            "params": {
3716                "Region": "us-east-2",
3717                "Bucket": "bucket",
3718                "Endpoint": "http://example.com",
3719                "UseGlobalEndpoint": true
3720            }
3721        },
3722        {
3723            "documentation": "global endpoint + ip address",
3724            "expect": {
3725                "endpoint": {
3726                    "properties": {
3727                        "authSchemes": [
3728                            {
3729                                "signingRegion": "us-east-2",
3730                                "name": "sigv4",
3731                                "signingName": "s3",
3732                                "disableDoubleEncoding": true
3733                            }
3734                        ]
3735                    },
3736                    "url": "http://192.168.0.1/bucket"
3737                }
3738            },
3739            "params": {
3740                "Region": "us-east-2",
3741                "Bucket": "bucket",
3742                "Endpoint": "http://192.168.0.1",
3743                "UseGlobalEndpoint": true
3744            }
3745        },
3746        {
3747            "documentation": "invalid outpost type",
3748            "expect": {
3749                "endpoint": {
3750                    "properties": {
3751                        "authSchemes": [
3752                            {
3753                                "signingRegion": "us-east-2",
3754                                "name": "sigv4",
3755                                "signingName": "s3",
3756                                "disableDoubleEncoding": true
3757                            }
3758                        ]
3759                    },
3760                    "url": "https://s3.us-east-2.amazonaws.com/bucket%21"
3761                }
3762            },
3763            "params": {
3764                "Region": "us-east-2",
3765                "Bucket": "bucket!",
3766                "UseGlobalEndpoint": true
3767            }
3768        },
3769        {
3770            "documentation": "invalid outpost type",
3771            "expect": {
3772                "endpoint": {
3773                    "properties": {
3774                        "authSchemes": [
3775                            {
3776                                "signingRegion": "us-east-2",
3777                                "name": "sigv4",
3778                                "signingName": "s3",
3779                                "disableDoubleEncoding": true
3780                            }
3781                        ]
3782                    },
3783                    "url": "https://bucket.s3-accelerate.amazonaws.com"
3784                }
3785            },
3786            "params": {
3787                "Region": "us-east-2",
3788                "Bucket": "bucket",
3789                "Accelerate": true,
3790                "UseGlobalEndpoint": true
3791            }
3792        },
3793        {
3794            "documentation": "use global endpoint + custom endpoint",
3795            "expect": {
3796                "endpoint": {
3797                    "properties": {
3798                        "authSchemes": [
3799                            {
3800                                "signingRegion": "us-east-2",
3801                                "name": "sigv4",
3802                                "signingName": "s3",
3803                                "disableDoubleEncoding": true
3804                            }
3805                        ]
3806                    },
3807                    "url": "http://foo.com/bucket%21"
3808                }
3809            },
3810            "params": {
3811                "Region": "us-east-2",
3812                "Bucket": "bucket!",
3813                "UseGlobalEndpoint": true,
3814                "Endpoint": "http://foo.com"
3815            }
3816        },
3817        {
3818            "documentation": "use global endpoint, not us-east-1, force path style",
3819            "expect": {
3820                "endpoint": {
3821                    "properties": {
3822                        "authSchemes": [
3823                            {
3824                                "signingRegion": "us-east-2",
3825                                "name": "sigv4",
3826                                "signingName": "s3",
3827                                "disableDoubleEncoding": true
3828                            }
3829                        ]
3830                    },
3831                    "url": "http://foo.com/bucket%21"
3832                }
3833            },
3834            "params": {
3835                "Region": "us-east-2",
3836                "Bucket": "bucket!",
3837                "UseGlobalEndpoint": true,
3838                "ForcePathStyle": true,
3839                "Endpoint": "http://foo.com"
3840            }
3841        },
3842        {
3843            "documentation": "vanilla virtual addressing@us-west-2",
3844            "expect": {
3845                "endpoint": {
3846                    "properties": {
3847                        "authSchemes": [
3848                            {
3849                                "name": "sigv4",
3850                                "signingName": "s3",
3851                                "signingRegion": "us-west-2",
3852                                "disableDoubleEncoding": true
3853                            }
3854                        ]
3855                    },
3856                    "url": "https://bucket-name.s3.us-west-2.amazonaws.com"
3857                }
3858            },
3859            "operationInputs": [
3860                {
3861                    "builtInParams": {
3862                        "AWS::Region": "us-west-2"
3863                    },
3864                    "operationName": "GetObject",
3865                    "operationParams": {
3866                        "Bucket": "bucket-name",
3867                        "Key": "key"
3868                    }
3869                }
3870            ],
3871            "params": {
3872                "Accelerate": false,
3873                "Bucket": "bucket-name",
3874                "ForcePathStyle": false,
3875                "Region": "us-west-2",
3876                "UseDualStack": false,
3877                "UseFIPS": false
3878            }
3879        },
3880        {
3881            "documentation": "virtual addressing + dualstack@us-west-2",
3882            "expect": {
3883                "endpoint": {
3884                    "properties": {
3885                        "authSchemes": [
3886                            {
3887                                "name": "sigv4",
3888                                "signingName": "s3",
3889                                "signingRegion": "us-west-2",
3890                                "disableDoubleEncoding": true
3891                            }
3892                        ]
3893                    },
3894                    "url": "https://bucket-name.s3.dualstack.us-west-2.amazonaws.com"
3895                }
3896            },
3897            "operationInputs": [
3898                {
3899                    "builtInParams": {
3900                        "AWS::Region": "us-west-2",
3901                        "AWS::UseDualStack": true
3902                    },
3903                    "operationName": "GetObject",
3904                    "operationParams": {
3905                        "Bucket": "bucket-name",
3906                        "Key": "key"
3907                    }
3908                }
3909            ],
3910            "params": {
3911                "Accelerate": false,
3912                "Bucket": "bucket-name",
3913                "ForcePathStyle": false,
3914                "Region": "us-west-2",
3915                "UseDualStack": true,
3916                "UseFIPS": false
3917            }
3918        },
3919        {
3920            "documentation": "accelerate + dualstack@us-west-2",
3921            "expect": {
3922                "endpoint": {
3923                    "properties": {
3924                        "authSchemes": [
3925                            {
3926                                "name": "sigv4",
3927                                "signingName": "s3",
3928                                "signingRegion": "us-west-2",
3929                                "disableDoubleEncoding": true
3930                            }
3931                        ]
3932                    },
3933                    "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com"
3934                }
3935            },
3936            "operationInputs": [
3937                {
3938                    "builtInParams": {
3939                        "AWS::Region": "us-west-2",
3940                        "AWS::UseDualStack": true,
3941                        "AWS::S3::Accelerate": true
3942                    },
3943                    "operationName": "GetObject",
3944                    "operationParams": {
3945                        "Bucket": "bucket-name",
3946                        "Key": "key"
3947                    }
3948                }
3949            ],
3950            "params": {
3951                "Accelerate": true,
3952                "Bucket": "bucket-name",
3953                "ForcePathStyle": false,
3954                "Region": "us-west-2",
3955                "UseDualStack": true,
3956                "UseFIPS": false
3957            }
3958        },
3959        {
3960            "documentation": "accelerate (dualstack=false)@us-west-2",
3961            "expect": {
3962                "endpoint": {
3963                    "properties": {
3964                        "authSchemes": [
3965                            {
3966                                "name": "sigv4",
3967                                "signingName": "s3",
3968                                "signingRegion": "us-west-2",
3969                                "disableDoubleEncoding": true
3970                            }
3971                        ]
3972                    },
3973                    "url": "https://bucket-name.s3-accelerate.amazonaws.com"
3974                }
3975            },
3976            "operationInputs": [
3977                {
3978                    "builtInParams": {
3979                        "AWS::Region": "us-west-2",
3980                        "AWS::S3::Accelerate": true
3981                    },
3982                    "operationName": "GetObject",
3983                    "operationParams": {
3984                        "Bucket": "bucket-name",
3985                        "Key": "key"
3986                    }
3987                }
3988            ],
3989            "params": {
3990                "Accelerate": true,
3991                "Bucket": "bucket-name",
3992                "ForcePathStyle": false,
3993                "Region": "us-west-2",
3994                "UseDualStack": false,
3995                "UseFIPS": false
3996            }
3997        },
3998        {
3999            "documentation": "virtual addressing + fips@us-west-2",
4000            "expect": {
4001                "endpoint": {
4002                    "properties": {
4003                        "authSchemes": [
4004                            {
4005                                "name": "sigv4",
4006                                "signingName": "s3",
4007                                "signingRegion": "us-west-2",
4008                                "disableDoubleEncoding": true
4009                            }
4010                        ]
4011                    },
4012                    "url": "https://bucket-name.s3-fips.us-west-2.amazonaws.com"
4013                }
4014            },
4015            "operationInputs": [
4016                {
4017                    "builtInParams": {
4018                        "AWS::Region": "us-west-2",
4019                        "AWS::UseFIPS": true
4020                    },
4021                    "operationName": "GetObject",
4022                    "operationParams": {
4023                        "Bucket": "bucket-name",
4024                        "Key": "key"
4025                    }
4026                }
4027            ],
4028            "params": {
4029                "Accelerate": false,
4030                "Bucket": "bucket-name",
4031                "ForcePathStyle": false,
4032                "Region": "us-west-2",
4033                "UseDualStack": false,
4034                "UseFIPS": true
4035            }
4036        },
4037        {
4038            "documentation": "virtual addressing + dualstack + fips@us-west-2",
4039            "expect": {
4040                "endpoint": {
4041                    "properties": {
4042                        "authSchemes": [
4043                            {
4044                                "name": "sigv4",
4045                                "signingName": "s3",
4046                                "signingRegion": "us-west-2",
4047                                "disableDoubleEncoding": true
4048                            }
4049                        ]
4050                    },
4051                    "url": "https://bucket-name.s3-fips.dualstack.us-west-2.amazonaws.com"
4052                }
4053            },
4054            "operationInputs": [
4055                {
4056                    "builtInParams": {
4057                        "AWS::Region": "us-west-2",
4058                        "AWS::UseFIPS": true,
4059                        "AWS::UseDualStack": true
4060                    },
4061                    "operationName": "GetObject",
4062                    "operationParams": {
4063                        "Bucket": "bucket-name",
4064                        "Key": "key"
4065                    }
4066                }
4067            ],
4068            "params": {
4069                "Accelerate": false,
4070                "Bucket": "bucket-name",
4071                "ForcePathStyle": false,
4072                "Region": "us-west-2",
4073                "UseDualStack": true,
4074                "UseFIPS": true
4075            }
4076        },
4077        {
4078            "documentation": "accelerate + fips = error@us-west-2",
4079            "expect": {
4080                "error": "Accelerate cannot be used with FIPS"
4081            },
4082            "operationInputs": [
4083                {
4084                    "builtInParams": {
4085                        "AWS::Region": "us-west-2",
4086                        "AWS::UseFIPS": true,
4087                        "AWS::S3::Accelerate": true
4088                    },
4089                    "operationName": "GetObject",
4090                    "operationParams": {
4091                        "Bucket": "bucket-name",
4092                        "Key": "key"
4093                    }
4094                }
4095            ],
4096            "params": {
4097                "Accelerate": true,
4098                "Bucket": "bucket-name",
4099                "ForcePathStyle": false,
4100                "Region": "us-west-2",
4101                "UseDualStack": false,
4102                "UseFIPS": true
4103            }
4104        },
4105        {
4106            "documentation": "vanilla virtual addressing@cn-north-1",
4107            "expect": {
4108                "endpoint": {
4109                    "properties": {
4110                        "authSchemes": [
4111                            {
4112                                "name": "sigv4",
4113                                "signingName": "s3",
4114                                "signingRegion": "cn-north-1",
4115                                "disableDoubleEncoding": true
4116                            }
4117                        ]
4118                    },
4119                    "url": "https://bucket-name.s3.cn-north-1.amazonaws.com.cn"
4120                }
4121            },
4122            "operationInputs": [
4123                {
4124                    "builtInParams": {
4125                        "AWS::Region": "cn-north-1"
4126                    },
4127                    "operationName": "GetObject",
4128                    "operationParams": {
4129                        "Bucket": "bucket-name",
4130                        "Key": "key"
4131                    }
4132                }
4133            ],
4134            "params": {
4135                "Accelerate": false,
4136                "Bucket": "bucket-name",
4137                "ForcePathStyle": false,
4138                "Region": "cn-north-1",
4139                "UseDualStack": false,
4140                "UseFIPS": false
4141            }
4142        },
4143        {
4144            "documentation": "virtual addressing + dualstack@cn-north-1",
4145            "expect": {
4146                "endpoint": {
4147                    "properties": {
4148                        "authSchemes": [
4149                            {
4150                                "name": "sigv4",
4151                                "signingName": "s3",
4152                                "signingRegion": "cn-north-1",
4153                                "disableDoubleEncoding": true
4154                            }
4155                        ]
4156                    },
4157                    "url": "https://bucket-name.s3.dualstack.cn-north-1.amazonaws.com.cn"
4158                }
4159            },
4160            "operationInputs": [
4161                {
4162                    "builtInParams": {
4163                        "AWS::Region": "cn-north-1",
4164                        "AWS::UseDualStack": true
4165                    },
4166                    "operationName": "GetObject",
4167                    "operationParams": {
4168                        "Bucket": "bucket-name",
4169                        "Key": "key"
4170                    }
4171                }
4172            ],
4173            "params": {
4174                "Accelerate": false,
4175                "Bucket": "bucket-name",
4176                "ForcePathStyle": false,
4177                "Region": "cn-north-1",
4178                "UseDualStack": true,
4179                "UseFIPS": false
4180            }
4181        },
4182        {
4183            "documentation": "accelerate (dualstack=false)@cn-north-1",
4184            "expect": {
4185                "error": "S3 Accelerate cannot be used in this region"
4186            },
4187            "params": {
4188                "Accelerate": true,
4189                "Bucket": "bucket-name",
4190                "ForcePathStyle": false,
4191                "Region": "cn-north-1",
4192                "UseDualStack": false,
4193                "UseFIPS": false
4194            }
4195        },
4196        {
4197            "documentation": "virtual addressing + fips@cn-north-1",
4198            "expect": {
4199                "error": "Partition does not support FIPS"
4200            },
4201            "params": {
4202                "Accelerate": false,
4203                "Bucket": "bucket-name",
4204                "ForcePathStyle": false,
4205                "Region": "cn-north-1",
4206                "UseDualStack": false,
4207                "UseFIPS": true
4208            }
4209        },
4210        {
4211            "documentation": "vanilla virtual addressing@af-south-1",
4212            "expect": {
4213                "endpoint": {
4214                    "properties": {
4215                        "authSchemes": [
4216                            {
4217                                "name": "sigv4",
4218                                "signingName": "s3",
4219                                "signingRegion": "af-south-1",
4220                                "disableDoubleEncoding": true
4221                            }
4222                        ]
4223                    },
4224                    "url": "https://bucket-name.s3.af-south-1.amazonaws.com"
4225                }
4226            },
4227            "operationInputs": [
4228                {
4229                    "builtInParams": {
4230                        "AWS::Region": "af-south-1"
4231                    },
4232                    "operationName": "GetObject",
4233                    "operationParams": {
4234                        "Bucket": "bucket-name",
4235                        "Key": "key"
4236                    }
4237                }
4238            ],
4239            "params": {
4240                "Accelerate": false,
4241                "Bucket": "bucket-name",
4242                "ForcePathStyle": false,
4243                "Region": "af-south-1",
4244                "UseDualStack": false,
4245                "UseFIPS": false
4246            }
4247        },
4248        {
4249            "documentation": "virtual addressing + dualstack@af-south-1",
4250            "expect": {
4251                "endpoint": {
4252                    "properties": {
4253                        "authSchemes": [
4254                            {
4255                                "name": "sigv4",
4256                                "signingName": "s3",
4257                                "signingRegion": "af-south-1",
4258                                "disableDoubleEncoding": true
4259                            }
4260                        ]
4261                    },
4262                    "url": "https://bucket-name.s3.dualstack.af-south-1.amazonaws.com"
4263                }
4264            },
4265            "operationInputs": [
4266                {
4267                    "builtInParams": {
4268                        "AWS::Region": "af-south-1",
4269                        "AWS::UseDualStack": true
4270                    },
4271                    "operationName": "GetObject",
4272                    "operationParams": {
4273                        "Bucket": "bucket-name",
4274                        "Key": "key"
4275                    }
4276                }
4277            ],
4278            "params": {
4279                "Accelerate": false,
4280                "Bucket": "bucket-name",
4281                "ForcePathStyle": false,
4282                "Region": "af-south-1",
4283                "UseDualStack": true,
4284                "UseFIPS": false
4285            }
4286        },
4287        {
4288            "documentation": "accelerate + dualstack@af-south-1",
4289            "expect": {
4290                "endpoint": {
4291                    "properties": {
4292                        "authSchemes": [
4293                            {
4294                                "name": "sigv4",
4295                                "signingName": "s3",
4296                                "signingRegion": "af-south-1",
4297                                "disableDoubleEncoding": true
4298                            }
4299                        ]
4300                    },
4301                    "url": "https://bucket-name.s3-accelerate.dualstack.amazonaws.com"
4302                }
4303            },
4304            "operationInputs": [
4305                {
4306                    "builtInParams": {
4307                        "AWS::Region": "af-south-1",
4308                        "AWS::UseDualStack": true,
4309                        "AWS::S3::Accelerate": true
4310                    },
4311                    "operationName": "GetObject",
4312                    "operationParams": {
4313                        "Bucket": "bucket-name",
4314                        "Key": "key"
4315                    }
4316                }
4317            ],
4318            "params": {
4319                "Accelerate": true,
4320                "Bucket": "bucket-name",
4321                "ForcePathStyle": false,
4322                "Region": "af-south-1",
4323                "UseDualStack": true,
4324                "UseFIPS": false
4325            }
4326        },
4327        {
4328            "documentation": "accelerate (dualstack=false)@af-south-1",
4329            "expect": {
4330                "endpoint": {
4331                    "properties": {
4332                        "authSchemes": [
4333                            {
4334                                "name": "sigv4",
4335                                "signingName": "s3",
4336                                "signingRegion": "af-south-1",
4337                                "disableDoubleEncoding": true
4338                            }
4339                        ]
4340                    },
4341                    "url": "https://bucket-name.s3-accelerate.amazonaws.com"
4342                }
4343            },
4344            "operationInputs": [
4345                {
4346                    "builtInParams": {
4347                        "AWS::Region": "af-south-1",
4348                        "AWS::S3::Accelerate": true
4349                    },
4350                    "operationName": "GetObject",
4351                    "operationParams": {
4352                        "Bucket": "bucket-name",
4353                        "Key": "key"
4354                    }
4355                }
4356            ],
4357            "params": {
4358                "Accelerate": true,
4359                "Bucket": "bucket-name",
4360                "ForcePathStyle": false,
4361                "Region": "af-south-1",
4362                "UseDualStack": false,
4363                "UseFIPS": false
4364            }
4365        },
4366        {
4367            "documentation": "virtual addressing + fips@af-south-1",
4368            "expect": {
4369                "endpoint": {
4370                    "properties": {
4371                        "authSchemes": [
4372                            {
4373                                "name": "sigv4",
4374                                "signingName": "s3",
4375                                "signingRegion": "af-south-1",
4376                                "disableDoubleEncoding": true
4377                            }
4378                        ]
4379                    },
4380                    "url": "https://bucket-name.s3-fips.af-south-1.amazonaws.com"
4381                }
4382            },
4383            "operationInputs": [
4384                {
4385                    "builtInParams": {
4386                        "AWS::Region": "af-south-1",
4387                        "AWS::UseFIPS": true
4388                    },
4389                    "operationName": "GetObject",
4390                    "operationParams": {
4391                        "Bucket": "bucket-name",
4392                        "Key": "key"
4393                    }
4394                }
4395            ],
4396            "params": {
4397                "Accelerate": false,
4398                "Bucket": "bucket-name",
4399                "ForcePathStyle": false,
4400                "Region": "af-south-1",
4401                "UseDualStack": false,
4402                "UseFIPS": true
4403            }
4404        },
4405        {
4406            "documentation": "virtual addressing + dualstack + fips@af-south-1",
4407            "expect": {
4408                "endpoint": {
4409                    "properties": {
4410                        "authSchemes": [
4411                            {
4412                                "name": "sigv4",
4413                                "signingName": "s3",
4414                                "signingRegion": "af-south-1",
4415                                "disableDoubleEncoding": true
4416                            }
4417                        ]
4418                    },
4419                    "url": "https://bucket-name.s3-fips.dualstack.af-south-1.amazonaws.com"
4420                }
4421            },
4422            "operationInputs": [
4423                {
4424                    "builtInParams": {
4425                        "AWS::Region": "af-south-1",
4426                        "AWS::UseFIPS": true,
4427                        "AWS::UseDualStack": true
4428                    },
4429                    "operationName": "GetObject",
4430                    "operationParams": {
4431                        "Bucket": "bucket-name",
4432                        "Key": "key"
4433                    }
4434                }
4435            ],
4436            "params": {
4437                "Accelerate": false,
4438                "Bucket": "bucket-name",
4439                "ForcePathStyle": false,
4440                "Region": "af-south-1",
4441                "UseDualStack": true,
4442                "UseFIPS": true
4443            }
4444        },
4445        {
4446            "documentation": "accelerate + fips = error@af-south-1",
4447            "expect": {
4448                "error": "Accelerate cannot be used with FIPS"
4449            },
4450            "operationInputs": [
4451                {
4452                    "builtInParams": {
4453                        "AWS::Region": "af-south-1",
4454                        "AWS::UseFIPS": true,
4455                        "AWS::S3::Accelerate": true
4456                    },
4457                    "operationName": "GetObject",
4458                    "operationParams": {
4459                        "Bucket": "bucket-name",
4460                        "Key": "key"
4461                    }
4462                }
4463            ],
4464            "params": {
4465                "Accelerate": true,
4466                "Bucket": "bucket-name",
4467                "ForcePathStyle": false,
4468                "Region": "af-south-1",
4469                "UseDualStack": false,
4470                "UseFIPS": true
4471            }
4472        },
4473        {
4474            "documentation": "vanilla path style@us-west-2",
4475            "expect": {
4476                "endpoint": {
4477                    "properties": {
4478                        "authSchemes": [
4479                            {
4480                                "name": "sigv4",
4481                                "signingName": "s3",
4482                                "signingRegion": "us-west-2",
4483                                "disableDoubleEncoding": true
4484                            }
4485                        ]
4486                    },
4487                    "url": "https://s3.us-west-2.amazonaws.com/bucket-name"
4488                }
4489            },
4490            "operationInputs": [
4491                {
4492                    "builtInParams": {
4493                        "AWS::Region": "us-west-2",
4494                        "AWS::S3::ForcePathStyle": true
4495                    },
4496                    "operationName": "GetObject",
4497                    "operationParams": {
4498                        "Bucket": "bucket-name",
4499                        "Key": "key"
4500                    }
4501                }
4502            ],
4503            "params": {
4504                "Accelerate": false,
4505                "Bucket": "bucket-name",
4506                "ForcePathStyle": true,
4507                "Region": "us-west-2",
4508                "UseDualStack": false,
4509                "UseFIPS": false
4510            }
4511        },
4512        {
4513            "documentation": "fips@us-gov-west-2, bucket is not S3-dns-compatible (subdomains)",
4514            "expect": {
4515                "endpoint": {
4516                    "properties": {
4517                        "authSchemes": [
4518                            {
4519                                "signingName": "s3",
4520                                "signingRegion": "us-gov-west-1",
4521                                "disableDoubleEncoding": true,
4522                                "name": "sigv4"
4523                            }
4524                        ]
4525                    },
4526                    "url": "https://s3-fips.us-gov-west-1.amazonaws.com/bucket.with.dots"
4527                }
4528            },
4529            "operationInputs": [
4530                {
4531                    "builtInParams": {
4532                        "AWS::Region": "us-gov-west-1",
4533                        "AWS::UseFIPS": true,
4534                        "AWS::S3::ForcePathStyle": true
4535                    },
4536                    "operationName": "GetObject",
4537                    "operationParams": {
4538                        "Bucket": "bucket.with.dots",
4539                        "Key": "key"
4540                    }
4541                }
4542            ],
4543            "params": {
4544                "Accelerate": false,
4545                "Bucket": "bucket.with.dots",
4546                "Region": "us-gov-west-1",
4547                "UseDualStack": false,
4548                "UseFIPS": true
4549            }
4550        },
4551        {
4552            "documentation": "path style + accelerate = error@us-west-2",
4553            "expect": {
4554                "error": "Path-style addressing cannot be used with S3 Accelerate"
4555            },
4556            "operationInputs": [
4557                {
4558                    "builtInParams": {
4559                        "AWS::Region": "us-west-2",
4560                        "AWS::S3::ForcePathStyle": true,
4561                        "AWS::S3::Accelerate": true
4562                    },
4563                    "operationName": "GetObject",
4564                    "operationParams": {
4565                        "Bucket": "bucket-name",
4566                        "Key": "key"
4567                    }
4568                }
4569            ],
4570            "params": {
4571                "Accelerate": true,
4572                "Bucket": "bucket-name",
4573                "ForcePathStyle": true,
4574                "Region": "us-west-2",
4575                "UseDualStack": false,
4576                "UseFIPS": false
4577            }
4578        },
4579        {
4580            "documentation": "path style + dualstack@us-west-2",
4581            "expect": {
4582                "endpoint": {
4583                    "properties": {
4584                        "authSchemes": [
4585                            {
4586                                "name": "sigv4",
4587                                "signingName": "s3",
4588                                "signingRegion": "us-west-2",
4589                                "disableDoubleEncoding": true
4590                            }
4591                        ]
4592                    },
4593                    "url": "https://s3.dualstack.us-west-2.amazonaws.com/bucket-name"
4594                }
4595            },
4596            "operationInputs": [
4597                {
4598                    "builtInParams": {
4599                        "AWS::Region": "us-west-2",
4600                        "AWS::UseDualStack": true,
4601                        "AWS::S3::ForcePathStyle": true
4602                    },
4603                    "operationName": "GetObject",
4604                    "operationParams": {
4605                        "Bucket": "bucket-name",
4606                        "Key": "key"
4607                    }
4608                }
4609            ],
4610            "params": {
4611                "Accelerate": false,
4612                "Bucket": "bucket-name",
4613                "ForcePathStyle": true,
4614                "Region": "us-west-2",
4615                "UseDualStack": true,
4616                "UseFIPS": false
4617            }
4618        },
4619        {
4620            "documentation": "path style + arn is error@us-west-2",
4621            "expect": {
4622                "error": "Path-style addressing cannot be used with ARN buckets"
4623            },
4624            "operationInputs": [
4625                {
4626                    "builtInParams": {
4627                        "AWS::Region": "us-west-2",
4628                        "AWS::S3::ForcePathStyle": true
4629                    },
4630                    "operationName": "GetObject",
4631                    "operationParams": {
4632                        "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket",
4633                        "Key": "key"
4634                    }
4635                }
4636            ],
4637            "params": {
4638                "Accelerate": false,
4639                "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket",
4640                "ForcePathStyle": true,
4641                "Region": "us-west-2",
4642                "UseDualStack": false,
4643                "UseFIPS": false
4644            }
4645        },
4646        {
4647            "documentation": "path style + invalid DNS name@us-west-2",
4648            "expect": {
4649                "endpoint": {
4650                    "properties": {
4651                        "authSchemes": [
4652                            {
4653                                "name": "sigv4",
4654                                "signingName": "s3",
4655                                "signingRegion": "us-west-2",
4656                                "disableDoubleEncoding": true
4657                            }
4658                        ]
4659                    },
4660                    "url": "https://s3.us-west-2.amazonaws.com/99a_b"
4661                }
4662            },
4663            "operationInputs": [
4664                {
4665                    "builtInParams": {
4666                        "AWS::Region": "us-west-2",
4667                        "AWS::S3::ForcePathStyle": true
4668                    },
4669                    "operationName": "GetObject",
4670                    "operationParams": {
4671                        "Bucket": "99a_b",
4672                        "Key": "key"
4673                    }
4674                }
4675            ],
4676            "params": {
4677                "Accelerate": false,
4678                "Bucket": "99a_b",
4679                "ForcePathStyle": true,
4680                "Region": "us-west-2",
4681                "UseDualStack": false,
4682                "UseFIPS": false
4683            }
4684        },
4685        {
4686            "documentation": "no path style + invalid DNS name@us-west-2",
4687            "expect": {
4688                "endpoint": {
4689                    "properties": {
4690                        "authSchemes": [
4691                            {
4692                                "name": "sigv4",
4693                                "signingName": "s3",
4694                                "signingRegion": "us-west-2",
4695                                "disableDoubleEncoding": true
4696                            }
4697                        ]
4698                    },
4699                    "url": "https://s3.us-west-2.amazonaws.com/99a_b"
4700                }
4701            },
4702            "operationInputs": [
4703                {
4704                    "builtInParams": {
4705                        "AWS::Region": "us-west-2"
4706                    },
4707                    "operationName": "GetObject",
4708                    "operationParams": {
4709                        "Bucket": "99a_b",
4710                        "Key": "key"
4711                    }
4712                }
4713            ],
4714            "params": {
4715                "Accelerate": false,
4716                "Bucket": "99a_b",
4717                "Region": "us-west-2",
4718                "UseDualStack": false,
4719                "UseFIPS": false
4720            }
4721        },
4722        {
4723            "documentation": "vanilla path style@cn-north-1",
4724            "expect": {
4725                "endpoint": {
4726                    "properties": {
4727                        "authSchemes": [
4728                            {
4729                                "name": "sigv4",
4730                                "signingName": "s3",
4731                                "signingRegion": "cn-north-1",
4732                                "disableDoubleEncoding": true
4733                            }
4734                        ]
4735                    },
4736                    "url": "https://s3.cn-north-1.amazonaws.com.cn/bucket-name"
4737                }
4738            },
4739            "operationInputs": [
4740                {
4741                    "builtInParams": {
4742                        "AWS::Region": "cn-north-1",
4743                        "AWS::S3::ForcePathStyle": true
4744                    },
4745                    "operationName": "GetObject",
4746                    "operationParams": {
4747                        "Bucket": "bucket-name",
4748                        "Key": "key"
4749                    }
4750                }
4751            ],
4752            "params": {
4753                "Accelerate": false,
4754                "Bucket": "bucket-name",
4755                "ForcePathStyle": true,
4756                "Region": "cn-north-1",
4757                "UseDualStack": false,
4758                "UseFIPS": false
4759            }
4760        },
4761        {
4762            "documentation": "path style + fips@cn-north-1",
4763            "expect": {
4764                "error": "Partition does not support FIPS"
4765            },
4766            "operationInputs": [
4767                {
4768                    "builtInParams": {
4769                        "AWS::Region": "cn-north-1",
4770                        "AWS::UseFIPS": true,
4771                        "AWS::S3::ForcePathStyle": true
4772                    },
4773                    "operationName": "GetObject",
4774                    "operationParams": {
4775                        "Bucket": "bucket-name",
4776                        "Key": "key"
4777                    }
4778                }
4779            ],
4780            "params": {
4781                "Accelerate": false,
4782                "Bucket": "bucket-name",
4783                "ForcePathStyle": true,
4784                "Region": "cn-north-1",
4785                "UseDualStack": false,
4786                "UseFIPS": true
4787            }
4788        },
4789        {
4790            "documentation": "path style + accelerate = error@cn-north-1",
4791            "expect": {
4792                "error": "Path-style addressing cannot be used with S3 Accelerate"
4793            },
4794            "operationInputs": [
4795                {
4796                    "builtInParams": {
4797                        "AWS::Region": "cn-north-1",
4798                        "AWS::S3::ForcePathStyle": true,
4799                        "AWS::S3::Accelerate": true
4800                    },
4801                    "operationName": "GetObject",
4802                    "operationParams": {
4803                        "Bucket": "bucket-name",
4804                        "Key": "key"
4805                    }
4806                }
4807            ],
4808            "params": {
4809                "Accelerate": true,
4810                "Bucket": "bucket-name",
4811                "ForcePathStyle": true,
4812                "Region": "cn-north-1",
4813                "UseDualStack": false,
4814                "UseFIPS": false
4815            }
4816        },
4817        {
4818            "documentation": "path style + dualstack@cn-north-1",
4819            "expect": {
4820                "endpoint": {
4821                    "properties": {
4822                        "authSchemes": [
4823                            {
4824                                "name": "sigv4",
4825                                "signingName": "s3",
4826                                "signingRegion": "cn-north-1",
4827                                "disableDoubleEncoding": true
4828                            }
4829                        ]
4830                    },
4831                    "url": "https://s3.dualstack.cn-north-1.amazonaws.com.cn/bucket-name"
4832                }
4833            },
4834            "operationInputs": [
4835                {
4836                    "builtInParams": {
4837                        "AWS::Region": "cn-north-1",
4838                        "AWS::UseDualStack": true,
4839                        "AWS::S3::ForcePathStyle": true
4840                    },
4841                    "operationName": "GetObject",
4842                    "operationParams": {
4843                        "Bucket": "bucket-name",
4844                        "Key": "key"
4845                    }
4846                }
4847            ],
4848            "params": {
4849                "Accelerate": false,
4850                "Bucket": "bucket-name",
4851                "ForcePathStyle": true,
4852                "Region": "cn-north-1",
4853                "UseDualStack": true,
4854                "UseFIPS": false
4855            }
4856        },
4857        {
4858            "documentation": "path style + arn is error@cn-north-1",
4859            "expect": {
4860                "error": "Path-style addressing cannot be used with ARN buckets"
4861            },
4862            "operationInputs": [
4863                {
4864                    "builtInParams": {
4865                        "AWS::Region": "cn-north-1",
4866                        "AWS::S3::ForcePathStyle": true
4867                    },
4868                    "operationName": "GetObject",
4869                    "operationParams": {
4870                        "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket",
4871                        "Key": "key"
4872                    }
4873                }
4874            ],
4875            "params": {
4876                "Accelerate": false,
4877                "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket",
4878                "ForcePathStyle": true,
4879                "Region": "cn-north-1",
4880                "UseDualStack": false,
4881                "UseFIPS": false
4882            }
4883        },
4884        {
4885            "documentation": "path style + invalid DNS name@cn-north-1",
4886            "expect": {
4887                "endpoint": {
4888                    "properties": {
4889                        "authSchemes": [
4890                            {
4891                                "name": "sigv4",
4892                                "signingName": "s3",
4893                                "signingRegion": "cn-north-1",
4894                                "disableDoubleEncoding": true
4895                            }
4896                        ]
4897                    },
4898                    "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b"
4899                }
4900            },
4901            "operationInputs": [
4902                {
4903                    "builtInParams": {
4904                        "AWS::Region": "cn-north-1",
4905                        "AWS::S3::ForcePathStyle": true
4906                    },
4907                    "operationName": "GetObject",
4908                    "operationParams": {
4909                        "Bucket": "99a_b",
4910                        "Key": "key"
4911                    }
4912                }
4913            ],
4914            "params": {
4915                "Accelerate": false,
4916                "Bucket": "99a_b",
4917                "ForcePathStyle": true,
4918                "Region": "cn-north-1",
4919                "UseDualStack": false,
4920                "UseFIPS": false
4921            }
4922        },
4923        {
4924            "documentation": "no path style + invalid DNS name@cn-north-1",
4925            "expect": {
4926                "endpoint": {
4927                    "properties": {
4928                        "authSchemes": [
4929                            {
4930                                "name": "sigv4",
4931                                "signingName": "s3",
4932                                "signingRegion": "cn-north-1",
4933                                "disableDoubleEncoding": true
4934                            }
4935                        ]
4936                    },
4937                    "url": "https://s3.cn-north-1.amazonaws.com.cn/99a_b"
4938                }
4939            },
4940            "operationInputs": [
4941                {
4942                    "builtInParams": {
4943                        "AWS::Region": "cn-north-1"
4944                    },
4945                    "operationName": "GetObject",
4946                    "operationParams": {
4947                        "Bucket": "99a_b",
4948                        "Key": "key"
4949                    }
4950                }
4951            ],
4952            "params": {
4953                "Accelerate": false,
4954                "Bucket": "99a_b",
4955                "Region": "cn-north-1",
4956                "UseDualStack": false,
4957                "UseFIPS": false
4958            }
4959        },
4960        {
4961            "documentation": "vanilla path style@af-south-1",
4962            "expect": {
4963                "endpoint": {
4964                    "properties": {
4965                        "authSchemes": [
4966                            {
4967                                "name": "sigv4",
4968                                "signingName": "s3",
4969                                "signingRegion": "af-south-1",
4970                                "disableDoubleEncoding": true
4971                            }
4972                        ]
4973                    },
4974                    "url": "https://s3.af-south-1.amazonaws.com/bucket-name"
4975                }
4976            },
4977            "operationInputs": [
4978                {
4979                    "builtInParams": {
4980                        "AWS::Region": "af-south-1",
4981                        "AWS::S3::ForcePathStyle": true
4982                    },
4983                    "operationName": "GetObject",
4984                    "operationParams": {
4985                        "Bucket": "bucket-name",
4986                        "Key": "key"
4987                    }
4988                }
4989            ],
4990            "params": {
4991                "Accelerate": false,
4992                "Bucket": "bucket-name",
4993                "ForcePathStyle": true,
4994                "Region": "af-south-1",
4995                "UseDualStack": false,
4996                "UseFIPS": false
4997            }
4998        },
4999        {
5000            "documentation": "path style + fips@af-south-1",
5001            "expect": {
5002                "endpoint": {
5003                    "properties": {
5004                        "authSchemes": [
5005                            {
5006                                "signingName": "s3",
5007                                "signingRegion": "af-south-1",
5008                                "disableDoubleEncoding": true,
5009                                "name": "sigv4"
5010                            }
5011                        ]
5012                    },
5013                    "url": "https://s3-fips.af-south-1.amazonaws.com/bucket-name"
5014                }
5015            },
5016            "operationInputs": [
5017                {
5018                    "builtInParams": {
5019                        "AWS::Region": "af-south-1",
5020                        "AWS::UseFIPS": true,
5021                        "AWS::S3::ForcePathStyle": true
5022                    },
5023                    "operationName": "GetObject",
5024                    "operationParams": {
5025                        "Bucket": "bucket-name",
5026                        "Key": "key"
5027                    }
5028                }
5029            ],
5030            "params": {
5031                "Accelerate": false,
5032                "Bucket": "bucket-name",
5033                "ForcePathStyle": true,
5034                "Region": "af-south-1",
5035                "UseDualStack": false,
5036                "UseFIPS": true
5037            }
5038        },
5039        {
5040            "documentation": "path style + accelerate = error@af-south-1",
5041            "expect": {
5042                "error": "Path-style addressing cannot be used with S3 Accelerate"
5043            },
5044            "operationInputs": [
5045                {
5046                    "builtInParams": {
5047                        "AWS::Region": "af-south-1",
5048                        "AWS::S3::ForcePathStyle": true,
5049                        "AWS::S3::Accelerate": true
5050                    },
5051                    "operationName": "GetObject",
5052                    "operationParams": {
5053                        "Bucket": "bucket-name",
5054                        "Key": "key"
5055                    }
5056                }
5057            ],
5058            "params": {
5059                "Accelerate": true,
5060                "Bucket": "bucket-name",
5061                "ForcePathStyle": true,
5062                "Region": "af-south-1",
5063                "UseDualStack": false,
5064                "UseFIPS": false
5065            }
5066        },
5067        {
5068            "documentation": "path style + dualstack@af-south-1",
5069            "expect": {
5070                "endpoint": {
5071                    "properties": {
5072                        "authSchemes": [
5073                            {
5074                                "name": "sigv4",
5075                                "signingName": "s3",
5076                                "signingRegion": "af-south-1",
5077                                "disableDoubleEncoding": true
5078                            }
5079                        ]
5080                    },
5081                    "url": "https://s3.dualstack.af-south-1.amazonaws.com/bucket-name"
5082                }
5083            },
5084            "operationInputs": [
5085                {
5086                    "builtInParams": {
5087                        "AWS::Region": "af-south-1",
5088                        "AWS::UseDualStack": true,
5089                        "AWS::S3::ForcePathStyle": true
5090                    },
5091                    "operationName": "GetObject",
5092                    "operationParams": {
5093                        "Bucket": "bucket-name",
5094                        "Key": "key"
5095                    }
5096                }
5097            ],
5098            "params": {
5099                "Accelerate": false,
5100                "Bucket": "bucket-name",
5101                "ForcePathStyle": true,
5102                "Region": "af-south-1",
5103                "UseDualStack": true,
5104                "UseFIPS": false
5105            }
5106        },
5107        {
5108            "documentation": "path style + arn is error@af-south-1",
5109            "expect": {
5110                "error": "Path-style addressing cannot be used with ARN buckets"
5111            },
5112            "operationInputs": [
5113                {
5114                    "builtInParams": {
5115                        "AWS::Region": "af-south-1",
5116                        "AWS::S3::ForcePathStyle": true
5117                    },
5118                    "operationName": "GetObject",
5119                    "operationParams": {
5120                        "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket",
5121                        "Key": "key"
5122                    }
5123                }
5124            ],
5125            "params": {
5126                "Accelerate": false,
5127                "Bucket": "arn:PARTITION:s3-outposts:REGION:123456789012:outpost:op-01234567890123456:bucket:mybucket",
5128                "ForcePathStyle": true,
5129                "Region": "af-south-1",
5130                "UseDualStack": false,
5131                "UseFIPS": false
5132            }
5133        },
5134        {
5135            "documentation": "path style + invalid DNS name@af-south-1",
5136            "expect": {
5137                "endpoint": {
5138                    "properties": {
5139                        "authSchemes": [
5140                            {
5141                                "name": "sigv4",
5142                                "signingName": "s3",
5143                                "signingRegion": "af-south-1",
5144                                "disableDoubleEncoding": true
5145                            }
5146                        ]
5147                    },
5148                    "url": "https://s3.af-south-1.amazonaws.com/99a_b"
5149                }
5150            },
5151            "operationInputs": [
5152                {
5153                    "builtInParams": {
5154                        "AWS::Region": "af-south-1",
5155                        "AWS::S3::ForcePathStyle": true
5156                    },
5157                    "operationName": "GetObject",
5158                    "operationParams": {
5159                        "Bucket": "99a_b",
5160                        "Key": "key"
5161                    }
5162                }
5163            ],
5164            "params": {
5165                "Accelerate": false,
5166                "Bucket": "99a_b",
5167                "ForcePathStyle": true,
5168                "Region": "af-south-1",
5169                "UseDualStack": false,
5170                "UseFIPS": false
5171            }
5172        },
5173        {
5174            "documentation": "no path style + invalid DNS name@af-south-1",
5175            "expect": {
5176                "endpoint": {
5177                    "properties": {
5178                        "authSchemes": [
5179                            {
5180                                "name": "sigv4",
5181                                "signingName": "s3",
5182                                "signingRegion": "af-south-1",
5183                                "disableDoubleEncoding": true
5184                            }
5185                        ]
5186                    },
5187                    "url": "https://s3.af-south-1.amazonaws.com/99a_b"
5188                }
5189            },
5190            "operationInputs": [
5191                {
5192                    "builtInParams": {
5193                        "AWS::Region": "af-south-1"
5194                    },
5195                    "operationName": "GetObject",
5196                    "operationParams": {
5197                        "Bucket": "99a_b",
5198                        "Key": "key"
5199                    }
5200                }
5201            ],
5202            "params": {
5203                "Accelerate": false,
5204                "Bucket": "99a_b",
5205                "Region": "af-south-1",
5206                "UseDualStack": false,
5207                "UseFIPS": false
5208            }
5209        },
5210        {
5211            "documentation": "virtual addressing + private link@us-west-2",
5212            "expect": {
5213                "endpoint": {
5214                    "properties": {
5215                        "authSchemes": [
5216                            {
5217                                "name": "sigv4",
5218                                "signingName": "s3",
5219                                "signingRegion": "us-west-2",
5220                                "disableDoubleEncoding": true
5221                            }
5222                        ]
5223                    },
5224                    "url": "http://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5225                }
5226            },
5227            "operationInputs": [
5228                {
5229                    "builtInParams": {
5230                        "AWS::Region": "us-west-2",
5231                        "SDK::Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5232                    },
5233                    "operationName": "GetObject",
5234                    "operationParams": {
5235                        "Bucket": "bucket-name",
5236                        "Key": "key"
5237                    }
5238                }
5239            ],
5240            "params": {
5241                "Accelerate": false,
5242                "Bucket": "bucket-name",
5243                "ForcePathStyle": false,
5244                "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5245                "Region": "us-west-2",
5246                "UseDualStack": false,
5247                "UseFIPS": false
5248            }
5249        },
5250        {
5251            "documentation": "path style + private link@us-west-2",
5252            "expect": {
5253                "endpoint": {
5254                    "properties": {
5255                        "authSchemes": [
5256                            {
5257                                "name": "sigv4",
5258                                "signingName": "s3",
5259                                "signingRegion": "us-west-2",
5260                                "disableDoubleEncoding": true
5261                            }
5262                        ]
5263                    },
5264                    "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name"
5265                }
5266            },
5267            "operationInputs": [
5268                {
5269                    "builtInParams": {
5270                        "AWS::Region": "us-west-2",
5271                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5272                        "AWS::S3::ForcePathStyle": true
5273                    },
5274                    "operationName": "GetObject",
5275                    "operationParams": {
5276                        "Bucket": "bucket-name",
5277                        "Key": "key"
5278                    }
5279                }
5280            ],
5281            "params": {
5282                "Accelerate": false,
5283                "Bucket": "bucket-name",
5284                "ForcePathStyle": true,
5285                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5286                "Region": "us-west-2",
5287                "UseDualStack": false,
5288                "UseFIPS": false
5289            }
5290        },
5291        {
5292            "documentation": "SDK::Host + FIPS@us-west-2",
5293            "expect": {
5294                "error": "A custom endpoint cannot be combined with FIPS"
5295            },
5296            "operationInputs": [
5297                {
5298                    "builtInParams": {
5299                        "AWS::Region": "us-west-2",
5300                        "AWS::UseFIPS": true,
5301                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5302                    },
5303                    "operationName": "GetObject",
5304                    "operationParams": {
5305                        "Bucket": "bucket-name",
5306                        "Key": "key"
5307                    }
5308                }
5309            ],
5310            "params": {
5311                "Accelerate": false,
5312                "Bucket": "bucket-name",
5313                "ForcePathStyle": false,
5314                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5315                "Region": "us-west-2",
5316                "UseDualStack": false,
5317                "UseFIPS": true
5318            }
5319        },
5320        {
5321            "documentation": "SDK::Host + DualStack@us-west-2",
5322            "expect": {
5323                "error": "Cannot set dual-stack in combination with a custom endpoint."
5324            },
5325            "operationInputs": [
5326                {
5327                    "builtInParams": {
5328                        "AWS::Region": "us-west-2",
5329                        "AWS::UseDualStack": true,
5330                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5331                    },
5332                    "operationName": "GetObject",
5333                    "operationParams": {
5334                        "Bucket": "bucket-name",
5335                        "Key": "key"
5336                    }
5337                }
5338            ],
5339            "params": {
5340                "Accelerate": false,
5341                "Bucket": "bucket-name",
5342                "ForcePathStyle": false,
5343                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5344                "Region": "us-west-2",
5345                "UseDualStack": true,
5346                "UseFIPS": false
5347            }
5348        },
5349        {
5350            "documentation": "SDK::HOST + accelerate@us-west-2",
5351            "expect": {
5352                "error": "A custom endpoint cannot be combined with S3 Accelerate"
5353            },
5354            "operationInputs": [
5355                {
5356                    "builtInParams": {
5357                        "AWS::Region": "us-west-2",
5358                        "SDK::Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5359                        "AWS::S3::Accelerate": true
5360                    },
5361                    "operationName": "GetObject",
5362                    "operationParams": {
5363                        "Bucket": "bucket-name",
5364                        "Key": "key"
5365                    }
5366                }
5367            ],
5368            "params": {
5369                "Accelerate": true,
5370                "Bucket": "bucket-name",
5371                "ForcePathStyle": false,
5372                "Endpoint": "http://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5373                "Region": "us-west-2",
5374                "UseDualStack": false,
5375                "UseFIPS": false
5376            }
5377        },
5378        {
5379            "documentation": "SDK::Host + access point ARN@us-west-2",
5380            "expect": {
5381                "endpoint": {
5382                    "properties": {
5383                        "authSchemes": [
5384                            {
5385                                "name": "sigv4",
5386                                "signingName": "s3",
5387                                "signingRegion": "us-west-2",
5388                                "disableDoubleEncoding": true
5389                            }
5390                        ]
5391                    },
5392                    "url": "https://myendpoint-123456789012.beta.example.com"
5393                }
5394            },
5395            "operationInputs": [
5396                {
5397                    "builtInParams": {
5398                        "AWS::Region": "us-west-2",
5399                        "SDK::Endpoint": "https://beta.example.com"
5400                    },
5401                    "operationName": "GetObject",
5402                    "operationParams": {
5403                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
5404                        "Key": "key"
5405                    }
5406                }
5407            ],
5408            "params": {
5409                "Accelerate": false,
5410                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
5411                "ForcePathStyle": false,
5412                "Endpoint": "https://beta.example.com",
5413                "Region": "us-west-2",
5414                "UseDualStack": false,
5415                "UseFIPS": false
5416            }
5417        },
5418        {
5419            "documentation": "virtual addressing + private link@cn-north-1",
5420            "expect": {
5421                "endpoint": {
5422                    "properties": {
5423                        "authSchemes": [
5424                            {
5425                                "name": "sigv4",
5426                                "signingName": "s3",
5427                                "signingRegion": "cn-north-1",
5428                                "disableDoubleEncoding": true
5429                            }
5430                        ]
5431                    },
5432                    "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5433                }
5434            },
5435            "operationInputs": [
5436                {
5437                    "builtInParams": {
5438                        "AWS::Region": "cn-north-1",
5439                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5440                    },
5441                    "operationName": "GetObject",
5442                    "operationParams": {
5443                        "Bucket": "bucket-name",
5444                        "Key": "key"
5445                    }
5446                }
5447            ],
5448            "params": {
5449                "Accelerate": false,
5450                "Bucket": "bucket-name",
5451                "ForcePathStyle": false,
5452                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5453                "Region": "cn-north-1",
5454                "UseDualStack": false,
5455                "UseFIPS": false
5456            }
5457        },
5458        {
5459            "documentation": "path style + private link@cn-north-1",
5460            "expect": {
5461                "endpoint": {
5462                    "properties": {
5463                        "authSchemes": [
5464                            {
5465                                "name": "sigv4",
5466                                "signingName": "s3",
5467                                "signingRegion": "cn-north-1",
5468                                "disableDoubleEncoding": true
5469                            }
5470                        ]
5471                    },
5472                    "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name"
5473                }
5474            },
5475            "operationInputs": [
5476                {
5477                    "builtInParams": {
5478                        "AWS::Region": "cn-north-1",
5479                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5480                        "AWS::S3::ForcePathStyle": true
5481                    },
5482                    "operationName": "GetObject",
5483                    "operationParams": {
5484                        "Bucket": "bucket-name",
5485                        "Key": "key"
5486                    }
5487                }
5488            ],
5489            "params": {
5490                "Accelerate": false,
5491                "Bucket": "bucket-name",
5492                "ForcePathStyle": true,
5493                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5494                "Region": "cn-north-1",
5495                "UseDualStack": false,
5496                "UseFIPS": false
5497            }
5498        },
5499        {
5500            "documentation": "FIPS@cn-north-1",
5501            "expect": {
5502                "error": "Partition does not support FIPS"
5503            },
5504            "params": {
5505                "Accelerate": false,
5506                "Bucket": "bucket-name",
5507                "ForcePathStyle": false,
5508                "Region": "cn-north-1",
5509                "UseDualStack": false,
5510                "UseFIPS": true
5511            }
5512        },
5513        {
5514            "documentation": "SDK::Host + DualStack@cn-north-1",
5515            "expect": {
5516                "error": "Cannot set dual-stack in combination with a custom endpoint."
5517            },
5518            "operationInputs": [
5519                {
5520                    "builtInParams": {
5521                        "AWS::Region": "cn-north-1",
5522                        "AWS::UseDualStack": true,
5523                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5524                    },
5525                    "operationName": "GetObject",
5526                    "operationParams": {
5527                        "Bucket": "bucket-name",
5528                        "Key": "key"
5529                    }
5530                }
5531            ],
5532            "params": {
5533                "Accelerate": false,
5534                "Bucket": "bucket-name",
5535                "ForcePathStyle": false,
5536                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5537                "Region": "cn-north-1",
5538                "UseDualStack": true,
5539                "UseFIPS": false
5540            }
5541        },
5542        {
5543            "documentation": "SDK::HOST + accelerate@cn-north-1",
5544            "expect": {
5545                "error": "A custom endpoint cannot be combined with S3 Accelerate"
5546            },
5547            "params": {
5548                "Accelerate": true,
5549                "Bucket": "bucket-name",
5550                "ForcePathStyle": false,
5551                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5552                "Region": "cn-north-1",
5553                "UseDualStack": false,
5554                "UseFIPS": false
5555            }
5556        },
5557        {
5558            "documentation": "SDK::Host + access point ARN@cn-north-1",
5559            "expect": {
5560                "endpoint": {
5561                    "properties": {
5562                        "authSchemes": [
5563                            {
5564                                "name": "sigv4",
5565                                "signingName": "s3",
5566                                "signingRegion": "cn-north-1",
5567                                "disableDoubleEncoding": true
5568                            }
5569                        ]
5570                    },
5571                    "url": "https://myendpoint-123456789012.beta.example.com"
5572                }
5573            },
5574            "operationInputs": [
5575                {
5576                    "builtInParams": {
5577                        "AWS::Region": "cn-north-1",
5578                        "SDK::Endpoint": "https://beta.example.com"
5579                    },
5580                    "operationName": "GetObject",
5581                    "operationParams": {
5582                        "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint",
5583                        "Key": "key"
5584                    }
5585                }
5586            ],
5587            "params": {
5588                "Accelerate": false,
5589                "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint",
5590                "ForcePathStyle": false,
5591                "Endpoint": "https://beta.example.com",
5592                "Region": "cn-north-1",
5593                "UseDualStack": false,
5594                "UseFIPS": false
5595            }
5596        },
5597        {
5598            "documentation": "virtual addressing + private link@af-south-1",
5599            "expect": {
5600                "endpoint": {
5601                    "properties": {
5602                        "authSchemes": [
5603                            {
5604                                "name": "sigv4",
5605                                "signingName": "s3",
5606                                "signingRegion": "af-south-1",
5607                                "disableDoubleEncoding": true
5608                            }
5609                        ]
5610                    },
5611                    "url": "https://bucket-name.control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5612                }
5613            },
5614            "operationInputs": [
5615                {
5616                    "builtInParams": {
5617                        "AWS::Region": "af-south-1",
5618                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5619                    },
5620                    "operationName": "GetObject",
5621                    "operationParams": {
5622                        "Bucket": "bucket-name",
5623                        "Key": "key"
5624                    }
5625                }
5626            ],
5627            "params": {
5628                "Accelerate": false,
5629                "Bucket": "bucket-name",
5630                "ForcePathStyle": false,
5631                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5632                "Region": "af-south-1",
5633                "UseDualStack": false,
5634                "UseFIPS": false
5635            }
5636        },
5637        {
5638            "documentation": "path style + private link@af-south-1",
5639            "expect": {
5640                "endpoint": {
5641                    "properties": {
5642                        "authSchemes": [
5643                            {
5644                                "name": "sigv4",
5645                                "signingName": "s3",
5646                                "signingRegion": "af-south-1",
5647                                "disableDoubleEncoding": true
5648                            }
5649                        ]
5650                    },
5651                    "url": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com/bucket-name"
5652                }
5653            },
5654            "operationInputs": [
5655                {
5656                    "builtInParams": {
5657                        "AWS::Region": "af-south-1",
5658                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5659                        "AWS::S3::ForcePathStyle": true
5660                    },
5661                    "operationName": "GetObject",
5662                    "operationParams": {
5663                        "Bucket": "bucket-name",
5664                        "Key": "key"
5665                    }
5666                }
5667            ],
5668            "params": {
5669                "Accelerate": false,
5670                "Bucket": "bucket-name",
5671                "ForcePathStyle": true,
5672                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5673                "Region": "af-south-1",
5674                "UseDualStack": false,
5675                "UseFIPS": false
5676            }
5677        },
5678        {
5679            "documentation": "SDK::Host + FIPS@af-south-1",
5680            "expect": {
5681                "error": "A custom endpoint cannot be combined with FIPS"
5682            },
5683            "operationInputs": [
5684                {
5685                    "builtInParams": {
5686                        "AWS::Region": "af-south-1",
5687                        "AWS::UseFIPS": true,
5688                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5689                    },
5690                    "operationName": "GetObject",
5691                    "operationParams": {
5692                        "Bucket": "bucket-name",
5693                        "Key": "key"
5694                    }
5695                }
5696            ],
5697            "params": {
5698                "Accelerate": false,
5699                "Bucket": "bucket-name",
5700                "ForcePathStyle": false,
5701                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5702                "Region": "af-south-1",
5703                "UseDualStack": false,
5704                "UseFIPS": true
5705            }
5706        },
5707        {
5708            "documentation": "SDK::Host + DualStack@af-south-1",
5709            "expect": {
5710                "error": "Cannot set dual-stack in combination with a custom endpoint."
5711            },
5712            "operationInputs": [
5713                {
5714                    "builtInParams": {
5715                        "AWS::Region": "af-south-1",
5716                        "AWS::UseDualStack": true,
5717                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com"
5718                    },
5719                    "operationName": "GetObject",
5720                    "operationParams": {
5721                        "Bucket": "bucket-name",
5722                        "Key": "key"
5723                    }
5724                }
5725            ],
5726            "params": {
5727                "Accelerate": false,
5728                "Bucket": "bucket-name",
5729                "ForcePathStyle": false,
5730                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5731                "Region": "af-south-1",
5732                "UseDualStack": true,
5733                "UseFIPS": false
5734            }
5735        },
5736        {
5737            "documentation": "SDK::HOST + accelerate@af-south-1",
5738            "expect": {
5739                "error": "A custom endpoint cannot be combined with S3 Accelerate"
5740            },
5741            "operationInputs": [
5742                {
5743                    "builtInParams": {
5744                        "AWS::Region": "af-south-1",
5745                        "SDK::Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5746                        "AWS::S3::Accelerate": true
5747                    },
5748                    "operationName": "GetObject",
5749                    "operationParams": {
5750                        "Bucket": "bucket-name",
5751                        "Key": "key"
5752                    }
5753                }
5754            ],
5755            "params": {
5756                "Accelerate": true,
5757                "Bucket": "bucket-name",
5758                "ForcePathStyle": false,
5759                "Endpoint": "https://control.vpce-1a2b3c4d-5e6f.s3.us-west-2.vpce.amazonaws.com",
5760                "Region": "af-south-1",
5761                "UseDualStack": false,
5762                "UseFIPS": false
5763            }
5764        },
5765        {
5766            "documentation": "SDK::Host + access point ARN@af-south-1",
5767            "expect": {
5768                "endpoint": {
5769                    "properties": {
5770                        "authSchemes": [
5771                            {
5772                                "name": "sigv4",
5773                                "signingName": "s3",
5774                                "signingRegion": "af-south-1",
5775                                "disableDoubleEncoding": true
5776                            }
5777                        ]
5778                    },
5779                    "url": "https://myendpoint-123456789012.beta.example.com"
5780                }
5781            },
5782            "operationInputs": [
5783                {
5784                    "builtInParams": {
5785                        "AWS::Region": "af-south-1",
5786                        "SDK::Endpoint": "https://beta.example.com"
5787                    },
5788                    "operationName": "GetObject",
5789                    "operationParams": {
5790                        "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint",
5791                        "Key": "key"
5792                    }
5793                }
5794            ],
5795            "params": {
5796                "Accelerate": false,
5797                "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint",
5798                "ForcePathStyle": false,
5799                "Endpoint": "https://beta.example.com",
5800                "Region": "af-south-1",
5801                "UseDualStack": false,
5802                "UseFIPS": false
5803            }
5804        },
5805        {
5806            "documentation": "vanilla access point arn@us-west-2",
5807            "expect": {
5808                "endpoint": {
5809                    "properties": {
5810                        "authSchemes": [
5811                            {
5812                                "name": "sigv4",
5813                                "signingName": "s3",
5814                                "signingRegion": "us-west-2",
5815                                "disableDoubleEncoding": true
5816                            }
5817                        ]
5818                    },
5819                    "url": "https://myendpoint-123456789012.s3-accesspoint.us-west-2.amazonaws.com"
5820                }
5821            },
5822            "operationInputs": [
5823                {
5824                    "builtInParams": {
5825                        "AWS::Region": "us-west-2"
5826                    },
5827                    "operationName": "GetObject",
5828                    "operationParams": {
5829                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
5830                        "Key": "key"
5831                    }
5832                }
5833            ],
5834            "params": {
5835                "Accelerate": false,
5836                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
5837                "ForcePathStyle": false,
5838                "Region": "us-west-2",
5839                "UseDualStack": false,
5840                "UseFIPS": false
5841            }
5842        },
5843        {
5844            "documentation": "access point arn + FIPS@us-west-2",
5845            "expect": {
5846                "endpoint": {
5847                    "properties": {
5848                        "authSchemes": [
5849                            {
5850                                "name": "sigv4",
5851                                "signingName": "s3",
5852                                "signingRegion": "us-west-2",
5853                                "disableDoubleEncoding": true
5854                            }
5855                        ]
5856                    },
5857                    "url": "https://myendpoint-123456789012.s3-accesspoint-fips.us-west-2.amazonaws.com"
5858                }
5859            },
5860            "operationInputs": [
5861                {
5862                    "builtInParams": {
5863                        "AWS::Region": "us-west-2",
5864                        "AWS::UseFIPS": true
5865                    },
5866                    "operationName": "GetObject",
5867                    "operationParams": {
5868                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
5869                        "Key": "key"
5870                    }
5871                }
5872            ],
5873            "params": {
5874                "Accelerate": false,
5875                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
5876                "ForcePathStyle": false,
5877                "Region": "us-west-2",
5878                "UseDualStack": false,
5879                "UseFIPS": true
5880            }
5881        },
5882        {
5883            "documentation": "access point arn + accelerate = error@us-west-2",
5884            "expect": {
5885                "error": "Access Points do not support S3 Accelerate"
5886            },
5887            "operationInputs": [
5888                {
5889                    "builtInParams": {
5890                        "AWS::Region": "us-west-2",
5891                        "AWS::S3::Accelerate": true
5892                    },
5893                    "operationName": "GetObject",
5894                    "operationParams": {
5895                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
5896                        "Key": "key"
5897                    }
5898                }
5899            ],
5900            "params": {
5901                "Accelerate": true,
5902                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
5903                "ForcePathStyle": false,
5904                "Region": "us-west-2",
5905                "UseDualStack": false,
5906                "UseFIPS": false
5907            }
5908        },
5909        {
5910            "documentation": "access point arn + FIPS + DualStack@us-west-2",
5911            "expect": {
5912                "endpoint": {
5913                    "properties": {
5914                        "authSchemes": [
5915                            {
5916                                "name": "sigv4",
5917                                "signingName": "s3",
5918                                "signingRegion": "us-west-2",
5919                                "disableDoubleEncoding": true
5920                            }
5921                        ]
5922                    },
5923                    "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com"
5924                }
5925            },
5926            "operationInputs": [
5927                {
5928                    "builtInParams": {
5929                        "AWS::Region": "us-west-2",
5930                        "AWS::UseFIPS": true,
5931                        "AWS::UseDualStack": true
5932                    },
5933                    "operationName": "GetObject",
5934                    "operationParams": {
5935                        "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
5936                        "Key": "key"
5937                    }
5938                }
5939            ],
5940            "params": {
5941                "Accelerate": false,
5942                "Bucket": "arn:aws:s3:us-west-2:123456789012:accesspoint:myendpoint",
5943                "ForcePathStyle": false,
5944                "Region": "us-west-2",
5945                "UseDualStack": true,
5946                "UseFIPS": true
5947            }
5948        },
5949        {
5950            "documentation": "vanilla access point arn@cn-north-1",
5951            "expect": {
5952                "endpoint": {
5953                    "properties": {
5954                        "authSchemes": [
5955                            {
5956                                "name": "sigv4",
5957                                "signingName": "s3",
5958                                "signingRegion": "cn-north-1",
5959                                "disableDoubleEncoding": true
5960                            }
5961                        ]
5962                    },
5963                    "url": "https://myendpoint-123456789012.s3-accesspoint.cn-north-1.amazonaws.com.cn"
5964                }
5965            },
5966            "operationInputs": [
5967                {
5968                    "builtInParams": {
5969                        "AWS::Region": "cn-north-1"
5970                    },
5971                    "operationName": "GetObject",
5972                    "operationParams": {
5973                        "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint",
5974                        "Key": "key"
5975                    }
5976                }
5977            ],
5978            "params": {
5979                "Accelerate": false,
5980                "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint",
5981                "ForcePathStyle": false,
5982                "Region": "cn-north-1",
5983                "UseDualStack": false,
5984                "UseFIPS": false
5985            }
5986        },
5987        {
5988            "documentation": "access point arn + FIPS@cn-north-1",
5989            "expect": {
5990                "error": "Partition does not support FIPS"
5991            },
5992            "params": {
5993                "Accelerate": false,
5994                "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint",
5995                "ForcePathStyle": false,
5996                "Region": "cn-north-1",
5997                "UseDualStack": false,
5998                "UseFIPS": true
5999            }
6000        },
6001        {
6002            "documentation": "access point arn + accelerate = error@cn-north-1",
6003            "expect": {
6004                "error": "Access Points do not support S3 Accelerate"
6005            },
6006            "operationInputs": [
6007                {
6008                    "builtInParams": {
6009                        "AWS::Region": "cn-north-1",
6010                        "AWS::S3::Accelerate": true
6011                    },
6012                    "operationName": "GetObject",
6013                    "operationParams": {
6014                        "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint",
6015                        "Key": "key"
6016                    }
6017                }
6018            ],
6019            "params": {
6020                "Accelerate": true,
6021                "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint",
6022                "ForcePathStyle": false,
6023                "Region": "cn-north-1",
6024                "UseDualStack": false,
6025                "UseFIPS": false
6026            }
6027        },
6028        {
6029            "documentation": "access point arn + FIPS + DualStack@cn-north-1",
6030            "expect": {
6031                "error": "Partition does not support FIPS"
6032            },
6033            "params": {
6034                "Accelerate": false,
6035                "Bucket": "arn:aws-cn:s3:cn-north-1:123456789012:accesspoint:myendpoint",
6036                "ForcePathStyle": false,
6037                "Region": "cn-north-1",
6038                "UseDualStack": true,
6039                "UseFIPS": true
6040            }
6041        },
6042        {
6043            "documentation": "vanilla access point arn@af-south-1",
6044            "expect": {
6045                "endpoint": {
6046                    "properties": {
6047                        "authSchemes": [
6048                            {
6049                                "name": "sigv4",
6050                                "signingName": "s3",
6051                                "signingRegion": "af-south-1",
6052                                "disableDoubleEncoding": true
6053                            }
6054                        ]
6055                    },
6056                    "url": "https://myendpoint-123456789012.s3-accesspoint.af-south-1.amazonaws.com"
6057                }
6058            },
6059            "operationInputs": [
6060                {
6061                    "builtInParams": {
6062                        "AWS::Region": "af-south-1"
6063                    },
6064                    "operationName": "GetObject",
6065                    "operationParams": {
6066                        "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint",
6067                        "Key": "key"
6068                    }
6069                }
6070            ],
6071            "params": {
6072                "Accelerate": false,
6073                "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint",
6074                "ForcePathStyle": false,
6075                "Region": "af-south-1",
6076                "UseDualStack": false,
6077                "UseFIPS": false
6078            }
6079        },
6080        {
6081            "documentation": "access point arn + FIPS@af-south-1",
6082            "expect": {
6083                "endpoint": {
6084                    "properties": {
6085                        "authSchemes": [
6086                            {
6087                                "name": "sigv4",
6088                                "signingName": "s3",
6089                                "signingRegion": "af-south-1",
6090                                "disableDoubleEncoding": true
6091                            }
6092                        ]
6093                    },
6094                    "url": "https://myendpoint-123456789012.s3-accesspoint-fips.af-south-1.amazonaws.com"
6095                }
6096            },
6097            "operationInputs": [
6098                {
6099                    "builtInParams": {
6100                        "AWS::Region": "af-south-1",
6101                        "AWS::UseFIPS": true
6102                    },
6103                    "operationName": "GetObject",
6104                    "operationParams": {
6105                        "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint",
6106                        "Key": "key"
6107                    }
6108                }
6109            ],
6110            "params": {
6111                "Accelerate": false,
6112                "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint",
6113                "ForcePathStyle": false,
6114                "Region": "af-south-1",
6115                "UseDualStack": false,
6116                "UseFIPS": true
6117            }
6118        },
6119        {
6120            "documentation": "access point arn + accelerate = error@af-south-1",
6121            "expect": {
6122                "error": "Access Points do not support S3 Accelerate"
6123            },
6124            "operationInputs": [
6125                {
6126                    "builtInParams": {
6127                        "AWS::Region": "af-south-1",
6128                        "AWS::S3::Accelerate": true
6129                    },
6130                    "operationName": "GetObject",
6131                    "operationParams": {
6132                        "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint",
6133                        "Key": "key"
6134                    }
6135                }
6136            ],
6137            "params": {
6138                "Accelerate": true,
6139                "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint",
6140                "ForcePathStyle": false,
6141                "Region": "af-south-1",
6142                "UseDualStack": false,
6143                "UseFIPS": false
6144            }
6145        },
6146        {
6147            "documentation": "access point arn + FIPS + DualStack@af-south-1",
6148            "expect": {
6149                "endpoint": {
6150                    "properties": {
6151                        "authSchemes": [
6152                            {
6153                                "name": "sigv4",
6154                                "signingName": "s3",
6155                                "signingRegion": "af-south-1",
6156                                "disableDoubleEncoding": true
6157                            }
6158                        ]
6159                    },
6160                    "url": "https://myendpoint-123456789012.s3-accesspoint-fips.dualstack.af-south-1.amazonaws.com"
6161                }
6162            },
6163            "operationInputs": [
6164                {
6165                    "builtInParams": {
6166                        "AWS::Region": "af-south-1",
6167                        "AWS::UseFIPS": true,
6168                        "AWS::UseDualStack": true
6169                    },
6170                    "operationName": "GetObject",
6171                    "operationParams": {
6172                        "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint",
6173                        "Key": "key"
6174                    }
6175                }
6176            ],
6177            "params": {
6178                "Accelerate": false,
6179                "Bucket": "arn:aws:s3:af-south-1:123456789012:accesspoint:myendpoint",
6180                "ForcePathStyle": false,
6181                "Region": "af-south-1",
6182                "UseDualStack": true,
6183                "UseFIPS": true
6184            }
6185        },
6186        {
6187            "documentation": "S3 outposts vanilla test",
6188            "expect": {
6189                "endpoint": {
6190                    "properties": {
6191                        "authSchemes": [
6192                            {
6193                                "name": "sigv4",
6194                                "signingName": "s3-outposts",
6195                                "signingRegion": "us-west-2",
6196                                "disableDoubleEncoding": true
6197                            }
6198                        ]
6199                    },
6200                    "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-west-2.amazonaws.com"
6201                }
6202            },
6203            "operationInputs": [
6204                {
6205                    "builtInParams": {
6206                        "AWS::Region": "us-west-2"
6207                    },
6208                    "operationName": "GetObject",
6209                    "operationParams": {
6210                        "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports",
6211                        "Key": "key"
6212                    }
6213                }
6214            ],
6215            "params": {
6216                "Region": "us-west-2",
6217                "UseFIPS": false,
6218                "UseDualStack": false,
6219                "Accelerate": false,
6220                "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports"
6221            }
6222        },
6223        {
6224            "documentation": "S3 outposts custom endpoint",
6225            "expect": {
6226                "endpoint": {
6227                    "properties": {
6228                        "authSchemes": [
6229                            {
6230                                "name": "sigv4",
6231                                "signingName": "s3-outposts",
6232                                "signingRegion": "us-west-2",
6233                                "disableDoubleEncoding": true
6234                            }
6235                        ]
6236                    },
6237                    "url": "https://reports-123456789012.op-01234567890123456.example.amazonaws.com"
6238                }
6239            },
6240            "operationInputs": [
6241                {
6242                    "builtInParams": {
6243                        "AWS::Region": "us-west-2",
6244                        "SDK::Endpoint": "https://example.amazonaws.com"
6245                    },
6246                    "operationName": "GetObject",
6247                    "operationParams": {
6248                        "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports",
6249                        "Key": "key"
6250                    }
6251                }
6252            ],
6253            "params": {
6254                "Region": "us-west-2",
6255                "UseFIPS": false,
6256                "UseDualStack": false,
6257                "Accelerate": false,
6258                "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports",
6259                "Endpoint": "https://example.amazonaws.com"
6260            }
6261        },
6262        {
6263            "documentation": "outposts arn with region mismatch and UseArnRegion=false",
6264            "expect": {
6265                "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`"
6266            },
6267            "operationInputs": [
6268                {
6269                    "builtInParams": {
6270                        "AWS::Region": "us-west-2",
6271                        "AWS::S3::UseArnRegion": false
6272                    },
6273                    "operationName": "GetObject",
6274                    "operationParams": {
6275                        "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint",
6276                        "Key": "key"
6277                    }
6278                }
6279            ],
6280            "params": {
6281                "Accelerate": false,
6282                "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint",
6283                "ForcePathStyle": false,
6284                "UseArnRegion": false,
6285                "Region": "us-west-2",
6286                "UseDualStack": false,
6287                "UseFIPS": false
6288            }
6289        },
6290        {
6291            "documentation": "outposts arn with region mismatch, custom region and UseArnRegion=false",
6292            "expect": {
6293                "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`"
6294            },
6295            "operationInputs": [
6296                {
6297                    "builtInParams": {
6298                        "AWS::Region": "us-west-2",
6299                        "SDK::Endpoint": "https://example.com",
6300                        "AWS::S3::UseArnRegion": false
6301                    },
6302                    "operationName": "GetObject",
6303                    "operationParams": {
6304                        "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint",
6305                        "Key": "key"
6306                    }
6307                }
6308            ],
6309            "params": {
6310                "Accelerate": false,
6311                "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint",
6312                "Endpoint": "https://example.com",
6313                "ForcePathStyle": false,
6314                "UseArnRegion": false,
6315                "Region": "us-west-2",
6316                "UseDualStack": false,
6317                "UseFIPS": false
6318            }
6319        },
6320        {
6321            "documentation": "outposts arn with region mismatch and UseArnRegion=true",
6322            "expect": {
6323                "endpoint": {
6324                    "properties": {
6325                        "authSchemes": [
6326                            {
6327                                "name": "sigv4",
6328                                "signingName": "s3-outposts",
6329                                "signingRegion": "us-east-1",
6330                                "disableDoubleEncoding": true
6331                            }
6332                        ]
6333                    },
6334                    "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com"
6335                }
6336            },
6337            "operationInputs": [
6338                {
6339                    "builtInParams": {
6340                        "AWS::Region": "us-west-2",
6341                        "AWS::S3::UseArnRegion": true
6342                    },
6343                    "operationName": "GetObject",
6344                    "operationParams": {
6345                        "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint",
6346                        "Key": "key"
6347                    }
6348                }
6349            ],
6350            "params": {
6351                "Accelerate": false,
6352                "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint",
6353                "ForcePathStyle": false,
6354                "UseArnRegion": true,
6355                "Region": "us-west-2",
6356                "UseDualStack": false,
6357                "UseFIPS": false
6358            }
6359        },
6360        {
6361            "documentation": "outposts arn with region mismatch and UseArnRegion unset",
6362            "expect": {
6363                "endpoint": {
6364                    "properties": {
6365                        "authSchemes": [
6366                            {
6367                                "name": "sigv4",
6368                                "signingName": "s3-outposts",
6369                                "signingRegion": "us-east-1",
6370                                "disableDoubleEncoding": true
6371                            }
6372                        ]
6373                    },
6374                    "url": "https://myaccesspoint-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com"
6375                }
6376            },
6377            "operationInputs": [
6378                {
6379                    "builtInParams": {
6380                        "AWS::Region": "us-west-2"
6381                    },
6382                    "operationName": "GetObject",
6383                    "operationParams": {
6384                        "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint",
6385                        "Key": "key"
6386                    }
6387                }
6388            ],
6389            "params": {
6390                "Accelerate": false,
6391                "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint",
6392                "ForcePathStyle": false,
6393                "Region": "us-west-2",
6394                "UseDualStack": false,
6395                "UseFIPS": false
6396            }
6397        },
6398        {
6399            "documentation": "outposts arn with partition mismatch and UseArnRegion=true",
6400            "expect": {
6401                "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`"
6402            },
6403            "operationInputs": [
6404                {
6405                    "builtInParams": {
6406                        "AWS::Region": "us-west-2",
6407                        "AWS::S3::UseArnRegion": true
6408                    },
6409                    "operationName": "GetObject",
6410                    "operationParams": {
6411                        "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint",
6412                        "Key": "key"
6413                    }
6414                }
6415            ],
6416            "params": {
6417                "Accelerate": false,
6418                "Bucket": "arn:aws:s3-outposts:cn-north-1:123456789012:outpost:op-01234567890123456:accesspoint:myaccesspoint",
6419                "ForcePathStyle": false,
6420                "UseArnRegion": true,
6421                "Region": "us-west-2",
6422                "UseDualStack": false,
6423                "UseFIPS": false
6424            }
6425        },
6426        {
6427            "documentation": "ARN with UseGlobalEndpoint and use-east-1 region uses the regional endpoint",
6428            "expect": {
6429                "endpoint": {
6430                    "properties": {
6431                        "authSchemes": [
6432                            {
6433                                "name": "sigv4",
6434                                "signingName": "s3-outposts",
6435                                "signingRegion": "us-east-1",
6436                                "disableDoubleEncoding": true
6437                            }
6438                        ]
6439                    },
6440                    "url": "https://reports-123456789012.op-01234567890123456.s3-outposts.us-east-1.amazonaws.com"
6441                }
6442            },
6443            "operationInputs": [
6444                {
6445                    "builtInParams": {
6446                        "AWS::Region": "us-east-1",
6447                        "AWS::S3::UseGlobalEndpoint": true
6448                    },
6449                    "operationName": "GetObject",
6450                    "operationParams": {
6451                        "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports",
6452                        "Key": "key"
6453                    }
6454                }
6455            ],
6456            "params": {
6457                "Region": "us-east-1",
6458                "UseGlobalEndpoint": true,
6459                "UseFIPS": false,
6460                "UseDualStack": false,
6461                "Accelerate": false,
6462                "Bucket": "arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01234567890123456/accesspoint/reports"
6463            }
6464        },
6465        {
6466            "documentation": "S3 outposts does not support dualstack",
6467            "expect": {
6468                "error": "S3 Outposts does not support Dual-stack"
6469            },
6470            "params": {
6471                "Region": "us-east-1",
6472                "UseFIPS": false,
6473                "UseDualStack": true,
6474                "Accelerate": false,
6475                "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports"
6476            }
6477        },
6478        {
6479            "documentation": "S3 outposts does not support fips",
6480            "expect": {
6481                "error": "S3 Outposts does not support FIPS"
6482            },
6483            "params": {
6484                "Region": "us-east-1",
6485                "UseFIPS": true,
6486                "UseDualStack": false,
6487                "Accelerate": false,
6488                "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports"
6489            }
6490        },
6491        {
6492            "documentation": "S3 outposts does not support accelerate",
6493            "expect": {
6494                "error": "S3 Outposts does not support S3 Accelerate"
6495            },
6496            "params": {
6497                "Region": "us-east-1",
6498                "UseFIPS": false,
6499                "UseDualStack": false,
6500                "Accelerate": true,
6501                "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost/op-01234567890123456/accesspoint/reports"
6502            }
6503        },
6504        {
6505            "documentation": "validates against subresource",
6506            "expect": {
6507                "error": "Invalid Arn: Outpost Access Point ARN contains sub resources"
6508            },
6509            "params": {
6510                "Region": "us-west-2",
6511                "UseFIPS": false,
6512                "UseDualStack": false,
6513                "Accelerate": false,
6514                "Bucket": "arn:aws:s3-outposts:us-west-2:123456789012:outpost:op-01234567890123456:accesspoint:mybucket:object:foo"
6515            }
6516        },
6517        {
6518            "documentation": "object lambda @us-east-1",
6519            "expect": {
6520                "endpoint": {
6521                    "properties": {
6522                        "authSchemes": [
6523                            {
6524                                "name": "sigv4",
6525                                "signingName": "s3-object-lambda",
6526                                "signingRegion": "us-east-1",
6527                                "disableDoubleEncoding": true
6528                            }
6529                        ]
6530                    },
6531                    "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com"
6532                }
6533            },
6534            "operationInputs": [
6535                {
6536                    "builtInParams": {
6537                        "AWS::Region": "us-east-1",
6538                        "AWS::S3::UseArnRegion": false
6539                    },
6540                    "operationName": "GetObject",
6541                    "operationParams": {
6542                        "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner",
6543                        "Key": "key"
6544                    }
6545                }
6546            ],
6547            "params": {
6548                "Region": "us-east-1",
6549                "UseFIPS": false,
6550                "UseDualStack": false,
6551                "Accelerate": false,
6552                "UseArnRegion": false,
6553                "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner"
6554            }
6555        },
6556        {
6557            "documentation": "object lambda @us-west-2",
6558            "expect": {
6559                "endpoint": {
6560                    "properties": {
6561                        "authSchemes": [
6562                            {
6563                                "name": "sigv4",
6564                                "signingName": "s3-object-lambda",
6565                                "signingRegion": "us-west-2",
6566                                "disableDoubleEncoding": true
6567                            }
6568                        ]
6569                    },
6570                    "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com"
6571                }
6572            },
6573            "operationInputs": [
6574                {
6575                    "builtInParams": {
6576                        "AWS::Region": "us-west-2",
6577                        "AWS::S3::UseArnRegion": false
6578                    },
6579                    "operationName": "GetObject",
6580                    "operationParams": {
6581                        "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner",
6582                        "Key": "key"
6583                    }
6584                }
6585            ],
6586            "params": {
6587                "Region": "us-west-2",
6588                "UseFIPS": false,
6589                "UseDualStack": false,
6590                "Accelerate": false,
6591                "UseArnRegion": false,
6592                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner"
6593            }
6594        },
6595        {
6596            "documentation": "object lambda, colon resource deliminator @us-west-2",
6597            "expect": {
6598                "endpoint": {
6599                    "properties": {
6600                        "authSchemes": [
6601                            {
6602                                "name": "sigv4",
6603                                "signingName": "s3-object-lambda",
6604                                "signingRegion": "us-west-2",
6605                                "disableDoubleEncoding": true
6606                            }
6607                        ]
6608                    },
6609                    "url": "https://mybanner-123456789012.s3-object-lambda.us-west-2.amazonaws.com"
6610                }
6611            },
6612            "operationInputs": [
6613                {
6614                    "builtInParams": {
6615                        "AWS::Region": "us-west-2",
6616                        "AWS::S3::UseArnRegion": false
6617                    },
6618                    "operationName": "GetObject",
6619                    "operationParams": {
6620                        "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner",
6621                        "Key": "key"
6622                    }
6623                }
6624            ],
6625            "params": {
6626                "Region": "us-west-2",
6627                "UseFIPS": false,
6628                "UseDualStack": false,
6629                "Accelerate": false,
6630                "UseArnRegion": false,
6631                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybanner"
6632            }
6633        },
6634        {
6635            "documentation": "object lambda @us-east-1, client region us-west-2, useArnRegion=true",
6636            "expect": {
6637                "endpoint": {
6638                    "properties": {
6639                        "authSchemes": [
6640                            {
6641                                "name": "sigv4",
6642                                "signingName": "s3-object-lambda",
6643                                "signingRegion": "us-east-1",
6644                                "disableDoubleEncoding": true
6645                            }
6646                        ]
6647                    },
6648                    "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com"
6649                }
6650            },
6651            "operationInputs": [
6652                {
6653                    "builtInParams": {
6654                        "AWS::Region": "us-west-2",
6655                        "AWS::S3::UseArnRegion": true
6656                    },
6657                    "operationName": "GetObject",
6658                    "operationParams": {
6659                        "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner",
6660                        "Key": "key"
6661                    }
6662                }
6663            ],
6664            "params": {
6665                "Region": "us-west-2",
6666                "UseFIPS": false,
6667                "UseDualStack": false,
6668                "Accelerate": false,
6669                "UseArnRegion": true,
6670                "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner"
6671            }
6672        },
6673        {
6674            "documentation": "object lambda @us-east-1, client region s3-external-1, useArnRegion=true",
6675            "expect": {
6676                "endpoint": {
6677                    "properties": {
6678                        "authSchemes": [
6679                            {
6680                                "name": "sigv4",
6681                                "signingName": "s3-object-lambda",
6682                                "signingRegion": "us-east-1",
6683                                "disableDoubleEncoding": true
6684                            }
6685                        ]
6686                    },
6687                    "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com"
6688                }
6689            },
6690            "operationInputs": [
6691                {
6692                    "builtInParams": {
6693                        "AWS::Region": "s3-external-1",
6694                        "AWS::S3::UseArnRegion": true
6695                    },
6696                    "operationName": "GetObject",
6697                    "operationParams": {
6698                        "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner",
6699                        "Key": "key"
6700                    }
6701                }
6702            ],
6703            "params": {
6704                "Region": "s3-external-1",
6705                "UseFIPS": false,
6706                "UseDualStack": false,
6707                "Accelerate": false,
6708                "UseArnRegion": true,
6709                "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner"
6710            }
6711        },
6712        {
6713            "documentation": "object lambda @us-east-1, client region s3-external-1, useArnRegion=false",
6714            "expect": {
6715                "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `s3-external-1` and UseArnRegion is `false`"
6716            },
6717            "operationInputs": [
6718                {
6719                    "builtInParams": {
6720                        "AWS::Region": "s3-external-1",
6721                        "AWS::S3::UseArnRegion": false
6722                    },
6723                    "operationName": "GetObject",
6724                    "operationParams": {
6725                        "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner",
6726                        "Key": "key"
6727                    }
6728                }
6729            ],
6730            "params": {
6731                "Region": "s3-external-1",
6732                "UseFIPS": false,
6733                "UseDualStack": false,
6734                "Accelerate": false,
6735                "UseArnRegion": false,
6736                "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner"
6737            }
6738        },
6739        {
6740            "documentation": "object lambda @us-east-1, client region aws-global, useArnRegion=true",
6741            "expect": {
6742                "endpoint": {
6743                    "properties": {
6744                        "authSchemes": [
6745                            {
6746                                "name": "sigv4",
6747                                "signingName": "s3-object-lambda",
6748                                "signingRegion": "us-east-1",
6749                                "disableDoubleEncoding": true
6750                            }
6751                        ]
6752                    },
6753                    "url": "https://mybanner-123456789012.s3-object-lambda.us-east-1.amazonaws.com"
6754                }
6755            },
6756            "operationInputs": [
6757                {
6758                    "builtInParams": {
6759                        "AWS::Region": "aws-global",
6760                        "AWS::S3::UseArnRegion": true
6761                    },
6762                    "operationName": "GetObject",
6763                    "operationParams": {
6764                        "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner",
6765                        "Key": "key"
6766                    }
6767                }
6768            ],
6769            "params": {
6770                "Region": "aws-global",
6771                "UseFIPS": false,
6772                "UseDualStack": false,
6773                "Accelerate": false,
6774                "UseArnRegion": true,
6775                "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner"
6776            }
6777        },
6778        {
6779            "documentation": "object lambda @us-east-1, client region aws-global, useArnRegion=false",
6780            "expect": {
6781                "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `aws-global` and UseArnRegion is `false`"
6782            },
6783            "operationInputs": [
6784                {
6785                    "builtInParams": {
6786                        "AWS::Region": "aws-global",
6787                        "AWS::S3::UseArnRegion": false
6788                    },
6789                    "operationName": "GetObject",
6790                    "operationParams": {
6791                        "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner",
6792                        "Key": "key"
6793                    }
6794                }
6795            ],
6796            "params": {
6797                "Region": "aws-global",
6798                "UseFIPS": false,
6799                "UseDualStack": false,
6800                "Accelerate": false,
6801                "UseArnRegion": false,
6802                "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner"
6803            }
6804        },
6805        {
6806            "documentation": "object lambda @cn-north-1, client region us-west-2 (cross partition), useArnRegion=true",
6807            "expect": {
6808                "error": "Client was configured for partition `aws` but ARN (`arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner`) has `aws-cn`"
6809            },
6810            "operationInputs": [
6811                {
6812                    "builtInParams": {
6813                        "AWS::Region": "aws-global",
6814                        "AWS::S3::UseArnRegion": true
6815                    },
6816                    "operationName": "GetObject",
6817                    "operationParams": {
6818                        "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner",
6819                        "Key": "key"
6820                    }
6821                }
6822            ],
6823            "params": {
6824                "Region": "aws-global",
6825                "UseFIPS": false,
6826                "UseDualStack": false,
6827                "Accelerate": false,
6828                "UseArnRegion": true,
6829                "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner"
6830            }
6831        },
6832        {
6833            "documentation": "object lambda with dualstack",
6834            "expect": {
6835                "error": "S3 Object Lambda does not support Dual-stack"
6836            },
6837            "operationInputs": [
6838                {
6839                    "builtInParams": {
6840                        "AWS::Region": "us-west-2",
6841                        "AWS::UseDualStack": true,
6842                        "AWS::S3::UseArnRegion": false
6843                    },
6844                    "operationName": "GetObject",
6845                    "operationParams": {
6846                        "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner",
6847                        "Key": "key"
6848                    }
6849                }
6850            ],
6851            "params": {
6852                "Region": "us-west-2",
6853                "UseFIPS": false,
6854                "UseDualStack": true,
6855                "Accelerate": false,
6856                "UseArnRegion": false,
6857                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner"
6858            }
6859        },
6860        {
6861            "documentation": "object lambda @us-gov-east-1",
6862            "expect": {
6863                "endpoint": {
6864                    "properties": {
6865                        "authSchemes": [
6866                            {
6867                                "name": "sigv4",
6868                                "signingName": "s3-object-lambda",
6869                                "signingRegion": "us-gov-east-1",
6870                                "disableDoubleEncoding": true
6871                            }
6872                        ]
6873                    },
6874                    "url": "https://mybanner-123456789012.s3-object-lambda.us-gov-east-1.amazonaws.com"
6875                }
6876            },
6877            "params": {
6878                "Region": "us-gov-east-1",
6879                "UseFIPS": false,
6880                "UseDualStack": false,
6881                "Accelerate": false,
6882                "UseArnRegion": false,
6883                "Bucket": "arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner"
6884            }
6885        },
6886        {
6887            "documentation": "object lambda @us-gov-east-1, with fips",
6888            "expect": {
6889                "endpoint": {
6890                    "properties": {
6891                        "authSchemes": [
6892                            {
6893                                "name": "sigv4",
6894                                "signingName": "s3-object-lambda",
6895                                "signingRegion": "us-gov-east-1",
6896                                "disableDoubleEncoding": true
6897                            }
6898                        ]
6899                    },
6900                    "url": "https://mybanner-123456789012.s3-object-lambda-fips.us-gov-east-1.amazonaws.com"
6901                }
6902            },
6903            "params": {
6904                "Region": "us-gov-east-1",
6905                "UseFIPS": true,
6906                "UseDualStack": false,
6907                "Accelerate": false,
6908                "UseArnRegion": false,
6909                "Bucket": "arn:aws-us-gov:s3-object-lambda:us-gov-east-1:123456789012:accesspoint/mybanner"
6910            }
6911        },
6912        {
6913            "documentation": "object lambda @cn-north-1, with fips",
6914            "expect": {
6915                "error": "Partition does not support FIPS"
6916            },
6917            "params": {
6918                "Region": "cn-north-1",
6919                "UseFIPS": true,
6920                "UseDualStack": false,
6921                "Accelerate": false,
6922                "UseArnRegion": false,
6923                "Bucket": "arn:aws-cn:s3-object-lambda:cn-north-1:123456789012:accesspoint/mybanner"
6924            }
6925        },
6926        {
6927            "documentation": "object lambda with accelerate",
6928            "expect": {
6929                "error": "S3 Object Lambda does not support S3 Accelerate"
6930            },
6931            "operationInputs": [
6932                {
6933                    "builtInParams": {
6934                        "AWS::Region": "us-west-2",
6935                        "AWS::S3::Accelerate": true,
6936                        "AWS::S3::UseArnRegion": false
6937                    },
6938                    "operationName": "GetObject",
6939                    "operationParams": {
6940                        "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner",
6941                        "Key": "key"
6942                    }
6943                }
6944            ],
6945            "params": {
6946                "Region": "us-west-2",
6947                "UseFIPS": false,
6948                "UseDualStack": false,
6949                "Accelerate": true,
6950                "UseArnRegion": false,
6951                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner"
6952            }
6953        },
6954        {
6955            "documentation": "object lambda with invalid arn - bad service and someresource",
6956            "expect": {
6957                "error": "Invalid ARN: Unrecognized format: arn:aws:sqs:us-west-2:123456789012:someresource (type: someresource)"
6958            },
6959            "operationInputs": [
6960                {
6961                    "builtInParams": {
6962                        "AWS::Region": "us-west-2",
6963                        "AWS::S3::UseArnRegion": false
6964                    },
6965                    "operationName": "GetObject",
6966                    "operationParams": {
6967                        "Bucket": "arn:aws:sqs:us-west-2:123456789012:someresource",
6968                        "Key": "key"
6969                    }
6970                }
6971            ],
6972            "params": {
6973                "Region": "us-west-2",
6974                "UseFIPS": false,
6975                "UseDualStack": false,
6976                "Accelerate": false,
6977                "UseArnRegion": false,
6978                "Bucket": "arn:aws:sqs:us-west-2:123456789012:someresource"
6979            }
6980        },
6981        {
6982            "documentation": "object lambda with invalid arn - invalid resource",
6983            "expect": {
6984                "error": "Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `bucket_name`"
6985            },
6986            "params": {
6987                "Region": "us-west-2",
6988                "UseFIPS": false,
6989                "UseDualStack": false,
6990                "Accelerate": false,
6991                "UseArnRegion": false,
6992                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:bucket_name:mybucket"
6993            }
6994        },
6995        {
6996            "documentation": "object lambda with invalid arn - missing region",
6997            "expect": {
6998                "error": "Invalid ARN: bucket ARN is missing a region"
6999            },
7000            "params": {
7001                "Region": "us-west-2",
7002                "UseFIPS": false,
7003                "UseDualStack": false,
7004                "Accelerate": false,
7005                "UseArnRegion": false,
7006                "Bucket": "arn:aws:s3-object-lambda::123456789012:accesspoint/mybanner"
7007            }
7008        },
7009        {
7010            "documentation": "object lambda with invalid arn - missing account-id",
7011            "expect": {
7012                "error": "Invalid ARN: Missing account id"
7013            },
7014            "params": {
7015                "Region": "us-west-2",
7016                "UseFIPS": false,
7017                "UseDualStack": false,
7018                "Accelerate": false,
7019                "UseArnRegion": true,
7020                "Bucket": "arn:aws:s3-object-lambda:us-west-2::accesspoint/mybanner"
7021            }
7022        },
7023        {
7024            "documentation": "object lambda with invalid arn - account id contains invalid characters",
7025            "expect": {
7026                "error": "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `123.45678.9012`"
7027            },
7028            "operationInputs": [
7029                {
7030                    "builtInParams": {
7031                        "AWS::Region": "us-west-2",
7032                        "AWS::S3::UseArnRegion": true
7033                    },
7034                    "operationName": "GetObject",
7035                    "operationParams": {
7036                        "Bucket": "arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket",
7037                        "Key": "key"
7038                    }
7039                }
7040            ],
7041            "params": {
7042                "Region": "us-west-2",
7043                "UseFIPS": false,
7044                "UseDualStack": false,
7045                "Accelerate": false,
7046                "UseArnRegion": true,
7047                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123.45678.9012:accesspoint:mybucket"
7048            }
7049        },
7050        {
7051            "documentation": "object lambda with invalid arn - missing access point name",
7052            "expect": {
7053                "error": "Invalid ARN: Expected a resource of the format `accesspoint:<accesspoint name>` but no name was provided"
7054            },
7055            "params": {
7056                "Region": "us-west-2",
7057                "UseFIPS": false,
7058                "UseDualStack": false,
7059                "Accelerate": false,
7060                "UseArnRegion": true,
7061                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint"
7062            }
7063        },
7064        {
7065            "documentation": "object lambda with invalid arn - access point name contains invalid character: *",
7066            "expect": {
7067                "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `*`"
7068            },
7069            "params": {
7070                "Region": "us-west-2",
7071                "UseFIPS": false,
7072                "UseDualStack": false,
7073                "Accelerate": false,
7074                "UseArnRegion": true,
7075                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:*"
7076            }
7077        },
7078        {
7079            "documentation": "object lambda with invalid arn - access point name contains invalid character: .",
7080            "expect": {
7081                "error": "Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `my.bucket`"
7082            },
7083            "params": {
7084                "Region": "us-west-2",
7085                "UseFIPS": false,
7086                "UseDualStack": false,
7087                "Accelerate": false,
7088                "UseArnRegion": true,
7089                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:my.bucket"
7090            }
7091        },
7092        {
7093            "documentation": "object lambda with invalid arn - access point name contains sub resources",
7094            "expect": {
7095                "error": "Invalid ARN: The ARN may only contain a single resource component after `accesspoint`."
7096            },
7097            "params": {
7098                "Region": "us-west-2",
7099                "UseFIPS": false,
7100                "UseDualStack": false,
7101                "Accelerate": false,
7102                "UseArnRegion": true,
7103                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint:mybucket:object:foo"
7104            }
7105        },
7106        {
7107            "documentation": "object lambda with custom endpoint",
7108            "expect": {
7109                "endpoint": {
7110                    "properties": {
7111                        "authSchemes": [
7112                            {
7113                                "name": "sigv4",
7114                                "signingName": "s3-object-lambda",
7115                                "signingRegion": "us-west-2",
7116                                "disableDoubleEncoding": true
7117                            }
7118                        ]
7119                    },
7120                    "url": "https://mybanner-123456789012.my-endpoint.com"
7121                }
7122            },
7123            "operationInputs": [
7124                {
7125                    "builtInParams": {
7126                        "AWS::Region": "us-west-2",
7127                        "SDK::Endpoint": "https://my-endpoint.com",
7128                        "AWS::S3::UseArnRegion": false
7129                    },
7130                    "operationName": "GetObject",
7131                    "operationParams": {
7132                        "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner",
7133                        "Key": "key"
7134                    }
7135                }
7136            ],
7137            "params": {
7138                "Region": "us-west-2",
7139                "UseFIPS": false,
7140                "UseDualStack": false,
7141                "Accelerate": false,
7142                "UseArnRegion": false,
7143                "Bucket": "arn:aws:s3-object-lambda:us-west-2:123456789012:accesspoint/mybanner",
7144                "Endpoint": "https://my-endpoint.com"
7145            }
7146        },
7147        {
7148            "documentation": "object lambda arn with region mismatch and UseArnRegion=false",
7149            "expect": {
7150                "error": "Invalid configuration: region from ARN `us-east-1` does not match client region `us-west-2` and UseArnRegion is `false`"
7151            },
7152            "operationInputs": [
7153                {
7154                    "builtInParams": {
7155                        "AWS::Region": "us-west-2",
7156                        "AWS::S3::UseArnRegion": false
7157                    },
7158                    "operationName": "GetObject",
7159                    "operationParams": {
7160                        "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner",
7161                        "Key": "key"
7162                    }
7163                }
7164            ],
7165            "params": {
7166                "Accelerate": false,
7167                "Bucket": "arn:aws:s3-object-lambda:us-east-1:123456789012:accesspoint/mybanner",
7168                "ForcePathStyle": false,
7169                "UseArnRegion": false,
7170                "Region": "us-west-2",
7171                "UseDualStack": false,
7172                "UseFIPS": false
7173            }
7174        },
7175        {
7176            "documentation": "WriteGetObjectResponse @ us-west-2",
7177            "expect": {
7178                "endpoint": {
7179                    "properties": {
7180                        "authSchemes": [
7181                            {
7182                                "name": "sigv4",
7183                                "signingName": "s3-object-lambda",
7184                                "signingRegion": "us-west-2",
7185                                "disableDoubleEncoding": true
7186                            }
7187                        ]
7188                    },
7189                    "url": "https://s3-object-lambda.us-west-2.amazonaws.com"
7190                }
7191            },
7192            "operationInputs": [
7193                {
7194                    "builtInParams": {
7195                        "AWS::Region": "us-west-2"
7196                    },
7197                    "operationName": "WriteGetObjectResponse",
7198                    "operationParams": {
7199                        "RequestRoute": "RequestRoute",
7200                        "RequestToken": "RequestToken"
7201                    }
7202                }
7203            ],
7204            "params": {
7205                "Accelerate": false,
7206                "UseObjectLambdaEndpoint": true,
7207                "Region": "us-west-2",
7208                "UseDualStack": false,
7209                "UseFIPS": false
7210            }
7211        },
7212        {
7213            "documentation": "WriteGetObjectResponse with custom endpoint",
7214            "expect": {
7215                "endpoint": {
7216                    "properties": {
7217                        "authSchemes": [
7218                            {
7219                                "name": "sigv4",
7220                                "signingName": "s3-object-lambda",
7221                                "signingRegion": "us-west-2",
7222                                "disableDoubleEncoding": true
7223                            }
7224                        ]
7225                    },
7226                    "url": "https://my-endpoint.com"
7227                }
7228            },
7229            "operationInputs": [
7230                {
7231                    "builtInParams": {
7232                        "AWS::Region": "us-west-2",
7233                        "SDK::Endpoint": "https://my-endpoint.com"
7234                    },
7235                    "operationName": "WriteGetObjectResponse",
7236                    "operationParams": {
7237                        "RequestRoute": "RequestRoute",
7238                        "RequestToken": "RequestToken"
7239                    }
7240                }
7241            ],
7242            "params": {
7243                "Accelerate": false,
7244                "UseObjectLambdaEndpoint": true,
7245                "Endpoint": "https://my-endpoint.com",
7246                "Region": "us-west-2",
7247                "UseDualStack": false,
7248                "UseFIPS": false
7249            }
7250        },
7251        {
7252            "documentation": "WriteGetObjectResponse @ us-east-1",
7253            "expect": {
7254                "endpoint": {
7255                    "properties": {
7256                        "authSchemes": [
7257                            {
7258                                "name": "sigv4",
7259                                "signingName": "s3-object-lambda",
7260                                "signingRegion": "us-east-1",
7261                                "disableDoubleEncoding": true
7262                            }
7263                        ]
7264                    },
7265                    "url": "https://s3-object-lambda.us-east-1.amazonaws.com"
7266                }
7267            },
7268            "operationInputs": [
7269                {
7270                    "builtInParams": {
7271                        "AWS::Region": "us-east-1"
7272                    },
7273                    "operationName": "WriteGetObjectResponse",
7274                    "operationParams": {
7275                        "RequestRoute": "RequestRoute",
7276                        "RequestToken": "RequestToken"
7277                    }
7278                }
7279            ],
7280            "params": {
7281                "Accelerate": false,
7282                "UseObjectLambdaEndpoint": true,
7283                "Region": "us-east-1",
7284                "UseDualStack": false,
7285                "UseFIPS": false
7286            }
7287        },
7288        {
7289            "documentation": "WriteGetObjectResponse with fips",
7290            "expect": {
7291                "endpoint": {
7292                    "properties": {
7293                        "authSchemes": [
7294                            {
7295                                "name": "sigv4",
7296                                "signingName": "s3-object-lambda",
7297                                "signingRegion": "us-east-1",
7298                                "disableDoubleEncoding": true
7299                            }
7300                        ]
7301                    },
7302                    "url": "https://s3-object-lambda-fips.us-east-1.amazonaws.com"
7303                }
7304            },
7305            "operationInputs": [
7306                {
7307                    "builtInParams": {
7308                        "AWS::Region": "us-east-1",
7309                        "AWS::UseFIPS": true
7310                    },
7311                    "operationName": "WriteGetObjectResponse",
7312                    "operationParams": {
7313                        "RequestRoute": "RequestRoute",
7314                        "RequestToken": "RequestToken"
7315                    }
7316                }
7317            ],
7318            "params": {
7319                "Accelerate": false,
7320                "UseObjectLambdaEndpoint": true,
7321                "Region": "us-east-1",
7322                "UseDualStack": false,
7323                "UseFIPS": true
7324            }
7325        },
7326        {
7327            "documentation": "WriteGetObjectResponse with dualstack",
7328            "expect": {
7329                "error": "S3 Object Lambda does not support Dual-stack"
7330            },
7331            "operationInputs": [
7332                {
7333                    "builtInParams": {
7334                        "AWS::Region": "us-east-1",
7335                        "AWS::UseDualStack": true
7336                    },
7337                    "operationName": "WriteGetObjectResponse",
7338                    "operationParams": {
7339                        "RequestRoute": "RequestRoute",
7340                        "RequestToken": "RequestToken"
7341                    }
7342                }
7343            ],
7344            "params": {
7345                "Accelerate": false,
7346                "UseObjectLambdaEndpoint": true,
7347                "Region": "us-east-1",
7348                "UseDualStack": true,
7349                "UseFIPS": false
7350            }
7351        },
7352        {
7353            "documentation": "WriteGetObjectResponse with accelerate",
7354            "expect": {
7355                "error": "S3 Object Lambda does not support S3 Accelerate"
7356            },
7357            "params": {
7358                "Accelerate": true,
7359                "UseObjectLambdaEndpoint": true,
7360                "Region": "us-east-1",
7361                "UseDualStack": false,
7362                "UseFIPS": false
7363            }
7364        },
7365        {
7366            "documentation": "WriteGetObjectResponse with fips in CN",
7367            "expect": {
7368                "error": "Partition does not support FIPS"
7369            },
7370            "params": {
7371                "Accelerate": false,
7372                "Region": "cn-north-1",
7373                "UseObjectLambdaEndpoint": true,
7374                "UseDualStack": false,
7375                "UseFIPS": true
7376            }
7377        },
7378        {
7379            "documentation": "WriteGetObjectResponse with invalid partition",
7380            "expect": {
7381                "error": "Invalid region: region was not a valid DNS name."
7382            },
7383            "params": {
7384                "Accelerate": false,
7385                "UseObjectLambdaEndpoint": true,
7386                "Region": "not a valid DNS name",
7387                "UseDualStack": false,
7388                "UseFIPS": false
7389            }
7390        },
7391        {
7392            "documentation": "WriteGetObjectResponse with an unknown partition",
7393            "expect": {
7394                "endpoint": {
7395                    "properties": {
7396                        "authSchemes": [
7397                            {
7398                                "name": "sigv4",
7399                                "signingName": "s3-object-lambda",
7400                                "disableDoubleEncoding": true,
7401                                "signingRegion": "us-east.special"
7402                            }
7403                        ]
7404                    },
7405                    "url": "https://s3-object-lambda.us-east.special.amazonaws.com"
7406                }
7407            },
7408            "params": {
7409                "Accelerate": false,
7410                "UseObjectLambdaEndpoint": true,
7411                "Region": "us-east.special",
7412                "UseDualStack": false,
7413                "UseFIPS": false
7414            }
7415        },
7416        {
7417            "documentation": "S3 Outposts bucketAlias Real Outpost Prod us-west-1",
7418            "expect": {
7419                "endpoint": {
7420                    "properties": {
7421                        "authSchemes": [
7422                            {
7423                                "name": "sigv4",
7424                                "signingName": "s3-outposts",
7425                                "signingRegion": "us-west-1",
7426                                "disableDoubleEncoding": true
7427                            }
7428                        ]
7429                    },
7430                    "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.us-west-1.amazonaws.com"
7431                }
7432            },
7433            "params": {
7434                "Region": "us-west-1",
7435                "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3",
7436                "UseFIPS": false,
7437                "UseDualStack": false,
7438                "Accelerate": false
7439            }
7440        },
7441        {
7442            "documentation": "S3 Outposts bucketAlias Real Outpost Prod ap-east-1",
7443            "expect": {
7444                "endpoint": {
7445                    "properties": {
7446                        "authSchemes": [
7447                            {
7448                                "name": "sigv4",
7449                                "signingName": "s3-outposts",
7450                                "signingRegion": "ap-east-1",
7451                                "disableDoubleEncoding": true
7452                            }
7453                        ]
7454                    },
7455                    "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.op-0b1d075431d83bebd.s3-outposts.ap-east-1.amazonaws.com"
7456                }
7457            },
7458            "params": {
7459                "Region": "ap-east-1",
7460                "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3",
7461                "UseFIPS": false,
7462                "UseDualStack": false,
7463                "Accelerate": false
7464            }
7465        },
7466        {
7467            "documentation": "S3 Outposts bucketAlias Ec2 Outpost Prod us-east-1",
7468            "expect": {
7469                "endpoint": {
7470                    "properties": {
7471                        "authSchemes": [
7472                            {
7473                                "name": "sigv4",
7474                                "signingName": "s3-outposts",
7475                                "signingRegion": "us-east-1",
7476                                "disableDoubleEncoding": true
7477                            }
7478                        ]
7479                    },
7480                    "url": "https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.us-east-1.amazonaws.com"
7481                }
7482            },
7483            "params": {
7484                "Region": "us-east-1",
7485                "Bucket": "test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3",
7486                "UseFIPS": false,
7487                "UseDualStack": false,
7488                "Accelerate": false
7489            }
7490        },
7491        {
7492            "documentation": "S3 Outposts bucketAlias Ec2 Outpost Prod me-south-1",
7493            "expect": {
7494                "endpoint": {
7495                    "properties": {
7496                        "authSchemes": [
7497                            {
7498                                "name": "sigv4",
7499                                "signingName": "s3-outposts",
7500                                "signingRegion": "me-south-1",
7501                                "disableDoubleEncoding": true
7502                            }
7503                        ]
7504                    },
7505                    "url": "https://test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3.ec2.s3-outposts.me-south-1.amazonaws.com"
7506                }
7507            },
7508            "params": {
7509                "Region": "me-south-1",
7510                "Bucket": "test-accessp-e0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3",
7511                "UseFIPS": false,
7512                "UseDualStack": false,
7513                "Accelerate": false
7514            }
7515        },
7516        {
7517            "documentation": "S3 Outposts bucketAlias Real Outpost Beta",
7518            "expect": {
7519                "endpoint": {
7520                    "properties": {
7521                        "authSchemes": [
7522                            {
7523                                "name": "sigv4",
7524                                "signingName": "s3-outposts",
7525                                "signingRegion": "us-east-1",
7526                                "disableDoubleEncoding": true
7527                            }
7528                        ]
7529                    },
7530                    "url": "https://test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3.op-0b1d075431d83bebd.example.amazonaws.com"
7531                }
7532            },
7533            "params": {
7534                "Region": "us-east-1",
7535                "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3",
7536                "Endpoint": "https://example.amazonaws.com",
7537                "UseFIPS": false,
7538                "UseDualStack": false,
7539                "Accelerate": false
7540            }
7541        },
7542        {
7543            "documentation": "S3 Outposts bucketAlias Ec2 Outpost Beta",
7544            "expect": {
7545                "endpoint": {
7546                    "properties": {
7547                        "authSchemes": [
7548                            {
7549                                "name": "sigv4",
7550                                "signingName": "s3-outposts",
7551                                "signingRegion": "us-east-1",
7552                                "disableDoubleEncoding": true
7553                            }
7554                        ]
7555                    },
7556                    "url": "https://161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3.ec2.example.amazonaws.com"
7557                }
7558            },
7559            "params": {
7560                "Region": "us-east-1",
7561                "Bucket": "161743052723-e00000136899934034jeahy1t8gpzpbwjj8kb7beta0--op-s3",
7562                "Endpoint": "https://example.amazonaws.com",
7563                "UseFIPS": false,
7564                "UseDualStack": false,
7565                "Accelerate": false
7566            }
7567        },
7568        {
7569            "documentation": "S3 Outposts bucketAlias - No endpoint set for beta",
7570            "expect": {
7571                "error": "Expected a endpoint to be specified but no endpoint was found"
7572            },
7573            "params": {
7574                "Region": "us-east-1",
7575                "Bucket": "test-accessp-o0b1d075431d83bebde8xz5w8ijx1qzlbp3i3kbeta0--op-s3",
7576                "UseFIPS": false,
7577                "UseDualStack": false,
7578                "Accelerate": false
7579            }
7580        },
7581        {
7582            "documentation": "S3 Outposts bucketAlias Invalid hardware type",
7583            "expect": {
7584                "error": "Unrecognized hardware type: \"Expected hardware type o or e but got h\""
7585            },
7586            "params": {
7587                "Region": "us-east-1",
7588                "Bucket": "test-accessp-h0000075431d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3",
7589                "UseFIPS": false,
7590                "UseDualStack": false,
7591                "Accelerate": false
7592            }
7593        },
7594        {
7595            "documentation": "S3 Outposts bucketAlias Special character in Outpost Arn",
7596            "expect": {
7597                "error": "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`."
7598            },
7599            "params": {
7600                "Region": "us-east-1",
7601                "Bucket": "test-accessp-o00000754%1d83bebde8xz5w8ijx1qzlbp3i3kuse10--op-s3",
7602                "UseFIPS": false,
7603                "UseDualStack": false,
7604                "Accelerate": false
7605            }
7606        },
7607        {
7608            "documentation": "S3 Outposts bucketAlias - No endpoint set for beta",
7609            "expect": {
7610                "error": "Expected a endpoint to be specified but no endpoint was found"
7611            },
7612            "params": {
7613                "Region": "us-east-1",
7614                "Bucket": "test-accessp-e0b1d075431d83bebde8xz5w8ijx1qzlbp3i3ebeta0--op-s3",
7615                "UseFIPS": false,
7616                "UseDualStack": false,
7617                "Accelerate": false
7618            }
7619        },
7620        {
7621            "documentation": "S3 Snow with bucket",
7622            "expect": {
7623                "endpoint": {
7624                    "properties": {
7625                        "authSchemes": [
7626                            {
7627                                "name": "sigv4",
7628                                "signingName": "s3",
7629                                "signingRegion": "snow",
7630                                "disableDoubleEncoding": true
7631                            }
7632                        ]
7633                    },
7634                    "url": "http://10.0.1.12:433/bucketName"
7635                }
7636            },
7637            "params": {
7638                "Region": "snow",
7639                "Bucket": "bucketName",
7640                "Endpoint": "http://10.0.1.12:433",
7641                "UseFIPS": false,
7642                "UseDualStack": false,
7643                "Accelerate": false
7644            }
7645        },
7646        {
7647            "documentation": "S3 Snow without bucket",
7648            "expect": {
7649                "endpoint": {
7650                    "properties": {
7651                        "authSchemes": [
7652                            {
7653                                "name": "sigv4",
7654                                "signingName": "s3",
7655                                "signingRegion": "snow",
7656                                "disableDoubleEncoding": true
7657                            }
7658                        ]
7659                    },
7660                    "url": "https://10.0.1.12:433"
7661                }
7662            },
7663            "params": {
7664                "Region": "snow",
7665                "Endpoint": "https://10.0.1.12:433",
7666                "UseFIPS": false,
7667                "UseDualStack": false,
7668                "Accelerate": false
7669            }
7670        },
7671        {
7672            "documentation": "S3 Snow no port",
7673            "expect": {
7674                "endpoint": {
7675                    "properties": {
7676                        "authSchemes": [
7677                            {
7678                                "name": "sigv4",
7679                                "signingName": "s3",
7680                                "signingRegion": "snow",
7681                                "disableDoubleEncoding": true
7682                            }
7683                        ]
7684                    },
7685                    "url": "http://10.0.1.12/bucketName"
7686                }
7687            },
7688            "params": {
7689                "Region": "snow",
7690                "Bucket": "bucketName",
7691                "Endpoint": "http://10.0.1.12",
7692                "UseFIPS": false,
7693                "UseDualStack": false,
7694                "Accelerate": false
7695            }
7696        },
7697        {
7698            "documentation": "S3 Snow dns endpoint",
7699            "expect": {
7700                "endpoint": {
7701                    "properties": {
7702                        "authSchemes": [
7703                            {
7704                                "name": "sigv4",
7705                                "signingName": "s3",
7706                                "signingRegion": "snow",
7707                                "disableDoubleEncoding": true
7708                            }
7709                        ]
7710                    },
7711                    "url": "https://amazonaws.com/bucketName"
7712                }
7713            },
7714            "params": {
7715                "Region": "snow",
7716                "Bucket": "bucketName",
7717                "Endpoint": "https://amazonaws.com",
7718                "UseFIPS": false,
7719                "UseDualStack": false,
7720                "Accelerate": false
7721            }
7722        },
7723        {
7724            "documentation": "Data Plane with short AZ",
7725            "expect": {
7726                "endpoint": {
7727                    "properties": {
7728                        "authSchemes": [
7729                            {
7730                                "name": "sigv4-s3express",
7731                                "signingName": "s3express",
7732                                "signingRegion": "us-east-1",
7733                                "disableDoubleEncoding": true
7734                            }
7735                        ],
7736                        "backend": "S3Express"
7737                    },
7738                    "url": "https://mybucket--use1-az1--x-s3.s3express-use1-az1.us-east-1.amazonaws.com"
7739                }
7740            },
7741            "operationInputs": [
7742                {
7743                    "builtInParams": {
7744                        "AWS::Region": "us-east-1"
7745                    },
7746                    "operationName": "GetObject",
7747                    "operationParams": {
7748                        "Bucket": "mybucket--use1-az1--x-s3",
7749                        "Key": "key"
7750                    }
7751                }
7752            ],
7753            "params": {
7754                "Region": "us-east-1",
7755                "Bucket": "mybucket--use1-az1--x-s3",
7756                "UseFIPS": false,
7757                "UseDualStack": false,
7758                "Accelerate": false,
7759                "UseS3ExpressControlEndpoint": false
7760            }
7761        },
7762        {
7763            "documentation": "Data Plane with short AZ fips",
7764            "expect": {
7765                "endpoint": {
7766                    "properties": {
7767                        "authSchemes": [
7768                            {
7769                                "name": "sigv4-s3express",
7770                                "signingName": "s3express",
7771                                "signingRegion": "us-east-1",
7772                                "disableDoubleEncoding": true
7773                            }
7774                        ],
7775                        "backend": "S3Express"
7776                    },
7777                    "url": "https://mybucket--use1-az1--x-s3.s3express-fips-use1-az1.us-east-1.amazonaws.com"
7778                }
7779            },
7780            "operationInputs": [
7781                {
7782                    "builtInParams": {
7783                        "AWS::Region": "us-east-1",
7784                        "AWS::UseFIPS": true
7785                    },
7786                    "operationName": "GetObject",
7787                    "operationParams": {
7788                        "Bucket": "mybucket--use1-az1--x-s3",
7789                        "Key": "key"
7790                    }
7791                }
7792            ],
7793            "params": {
7794                "Region": "us-east-1",
7795                "Bucket": "mybucket--use1-az1--x-s3",
7796                "UseFIPS": true,
7797                "UseDualStack": false,
7798                "Accelerate": false,
7799                "UseS3ExpressControlEndpoint": false
7800            }
7801        },
7802        {
7803            "documentation": "Data Plane with long AZ",
7804            "expect": {
7805                "endpoint": {
7806                    "properties": {
7807                        "authSchemes": [
7808                            {
7809                                "name": "sigv4-s3express",
7810                                "signingName": "s3express",
7811                                "signingRegion": "ap-northeast-1",
7812                                "disableDoubleEncoding": true
7813                            }
7814                        ],
7815                        "backend": "S3Express"
7816                    },
7817                    "url": "https://mybucket--apne1-az1--x-s3.s3express-apne1-az1.ap-northeast-1.amazonaws.com"
7818                }
7819            },
7820            "operationInputs": [
7821                {
7822                    "builtInParams": {
7823                        "AWS::Region": "ap-northeast-1"
7824                    },
7825                    "operationName": "GetObject",
7826                    "operationParams": {
7827                        "Bucket": "mybucket--apne1-az1--x-s3",
7828                        "Key": "key"
7829                    }
7830                }
7831            ],
7832            "params": {
7833                "Region": "ap-northeast-1",
7834                "Bucket": "mybucket--apne1-az1--x-s3",
7835                "UseFIPS": false,
7836                "UseDualStack": false,
7837                "Accelerate": false,
7838                "UseS3ExpressControlEndpoint": false
7839            }
7840        },
7841        {
7842            "documentation": "Data Plane with long AZ fips",
7843            "expect": {
7844                "endpoint": {
7845                    "properties": {
7846                        "authSchemes": [
7847                            {
7848                                "name": "sigv4-s3express",
7849                                "signingName": "s3express",
7850                                "signingRegion": "ap-northeast-1",
7851                                "disableDoubleEncoding": true
7852                            }
7853                        ],
7854                        "backend": "S3Express"
7855                    },
7856                    "url": "https://mybucket--apne1-az1--x-s3.s3express-fips-apne1-az1.ap-northeast-1.amazonaws.com"
7857                }
7858            },
7859            "operationInputs": [
7860                {
7861                    "builtInParams": {
7862                        "AWS::Region": "ap-northeast-1",
7863                        "AWS::UseFIPS": true
7864                    },
7865                    "operationName": "GetObject",
7866                    "operationParams": {
7867                        "Bucket": "mybucket--apne1-az1--x-s3",
7868                        "Key": "key"
7869                    }
7870                }
7871            ],
7872            "params": {
7873                "Region": "ap-northeast-1",
7874                "Bucket": "mybucket--apne1-az1--x-s3",
7875                "UseFIPS": true,
7876                "UseDualStack": false,
7877                "Accelerate": false,
7878                "UseS3ExpressControlEndpoint": false
7879            }
7880        },
7881        {
7882            "documentation": "Control plane with short AZ bucket",
7883            "expect": {
7884                "endpoint": {
7885                    "properties": {
7886                        "authSchemes": [
7887                            {
7888                                "name": "sigv4",
7889                                "signingName": "s3express",
7890                                "signingRegion": "us-east-1",
7891                                "disableDoubleEncoding": true
7892                            }
7893                        ],
7894                        "backend": "S3Express"
7895                    },
7896                    "url": "https://s3express-control.us-east-1.amazonaws.com/mybucket--use1-az1--x-s3"
7897                }
7898            },
7899            "operationInputs": [
7900                {
7901                    "builtInParams": {
7902                        "AWS::Region": "us-east-1"
7903                    },
7904                    "operationName": "CreateBucket",
7905                    "operationParams": {
7906                        "Bucket": "mybucket--use1-az1--x-s3"
7907                    }
7908                }
7909            ],
7910            "params": {
7911                "Region": "us-east-1",
7912                "Bucket": "mybucket--use1-az1--x-s3",
7913                "UseFIPS": false,
7914                "UseDualStack": false,
7915                "Accelerate": false,
7916                "UseS3ExpressControlEndpoint": true,
7917                "DisableS3ExpressSessionAuth": false
7918            }
7919        },
7920        {
7921            "documentation": "Control plane with short AZ bucket and fips",
7922            "expect": {
7923                "endpoint": {
7924                    "properties": {
7925                        "authSchemes": [
7926                            {
7927                                "name": "sigv4",
7928                                "signingName": "s3express",
7929                                "signingRegion": "us-east-1",
7930                                "disableDoubleEncoding": true
7931                            }
7932                        ],
7933                        "backend": "S3Express"
7934                    },
7935                    "url": "https://s3express-control-fips.us-east-1.amazonaws.com/mybucket--use1-az1--x-s3"
7936                }
7937            },
7938            "operationInputs": [
7939                {
7940                    "builtInParams": {
7941                        "AWS::Region": "us-east-1",
7942                        "AWS::UseFIPS": true
7943                    },
7944                    "operationName": "CreateBucket",
7945                    "operationParams": {
7946                        "Bucket": "mybucket--use1-az1--x-s3"
7947                    }
7948                }
7949            ],
7950            "params": {
7951                "Region": "us-east-1",
7952                "Bucket": "mybucket--use1-az1--x-s3",
7953                "UseFIPS": true,
7954                "UseDualStack": false,
7955                "Accelerate": false,
7956                "UseS3ExpressControlEndpoint": true,
7957                "DisableS3ExpressSessionAuth": false
7958            }
7959        },
7960        {
7961            "documentation": "Control plane without bucket",
7962            "expect": {
7963                "endpoint": {
7964                    "properties": {
7965                        "authSchemes": [
7966                            {
7967                                "name": "sigv4",
7968                                "signingName": "s3express",
7969                                "signingRegion": "us-east-1",
7970                                "disableDoubleEncoding": true
7971                            }
7972                        ],
7973                        "backend": "S3Express"
7974                    },
7975                    "url": "https://s3express-control.us-east-1.amazonaws.com"
7976                }
7977            },
7978            "operationInputs": [
7979                {
7980                    "builtInParams": {
7981                        "AWS::Region": "us-east-1"
7982                    },
7983                    "operationName": "ListDirectoryBuckets"
7984                }
7985            ],
7986            "params": {
7987                "Region": "us-east-1",
7988                "UseFIPS": false,
7989                "UseDualStack": false,
7990                "Accelerate": false,
7991                "UseS3ExpressControlEndpoint": true,
7992                "DisableS3ExpressSessionAuth": false
7993            }
7994        },
7995        {
7996            "documentation": "Control plane without bucket and fips",
7997            "expect": {
7998                "endpoint": {
7999                    "properties": {
8000                        "authSchemes": [
8001                            {
8002                                "name": "sigv4",
8003                                "signingName": "s3express",
8004                                "signingRegion": "us-east-1",
8005                                "disableDoubleEncoding": true
8006                            }
8007                        ],
8008                        "backend": "S3Express"
8009                    },
8010                    "url": "https://s3express-control-fips.us-east-1.amazonaws.com"
8011                }
8012            },
8013            "operationInputs": [
8014                {
8015                    "builtInParams": {
8016                        "AWS::Region": "us-east-1",
8017                        "AWS::UseFIPS": true
8018                    },
8019                    "operationName": "ListDirectoryBuckets"
8020                }
8021            ],
8022            "params": {
8023                "Region": "us-east-1",
8024                "UseFIPS": true,
8025                "UseDualStack": false,
8026                "Accelerate": false,
8027                "UseS3ExpressControlEndpoint": true,
8028                "DisableS3ExpressSessionAuth": false
8029            }
8030        },
8031        {
8032            "documentation": "Data Plane sigv4 auth with short AZ",
8033            "expect": {
8034                "endpoint": {
8035                    "properties": {
8036                        "authSchemes": [
8037                            {
8038                                "name": "sigv4",
8039                                "signingName": "s3express",
8040                                "signingRegion": "us-west-2",
8041                                "disableDoubleEncoding": true
8042                            }
8043                        ],
8044                        "backend": "S3Express"
8045                    },
8046                    "url": "https://mybucket--usw2-az1--x-s3.s3express-usw2-az1.us-west-2.amazonaws.com"
8047                }
8048            },
8049            "params": {
8050                "Region": "us-west-2",
8051                "Bucket": "mybucket--usw2-az1--x-s3",
8052                "UseFIPS": false,
8053                "UseDualStack": false,
8054                "Accelerate": false,
8055                "DisableS3ExpressSessionAuth": true
8056            }
8057        },
8058        {
8059            "documentation": "Data Plane sigv4 auth with short AZ fips",
8060            "expect": {
8061                "endpoint": {
8062                    "properties": {
8063                        "authSchemes": [
8064                            {
8065                                "name": "sigv4",
8066                                "signingName": "s3express",
8067                                "signingRegion": "us-west-2",
8068                                "disableDoubleEncoding": true
8069                            }
8070                        ],
8071                        "backend": "S3Express"
8072                    },
8073                    "url": "https://mybucket--usw2-az1--x-s3.s3express-fips-usw2-az1.us-west-2.amazonaws.com"
8074                }
8075            },
8076            "params": {
8077                "Region": "us-west-2",
8078                "Bucket": "mybucket--usw2-az1--x-s3",
8079                "UseFIPS": true,
8080                "UseDualStack": false,
8081                "Accelerate": false,
8082                "DisableS3ExpressSessionAuth": true
8083            }
8084        },
8085        {
8086            "documentation": "Data Plane sigv4 auth with long AZ",
8087            "expect": {
8088                "endpoint": {
8089                    "properties": {
8090                        "authSchemes": [
8091                            {
8092                                "name": "sigv4",
8093                                "signingName": "s3express",
8094                                "signingRegion": "ap-northeast-1",
8095                                "disableDoubleEncoding": true
8096                            }
8097                        ],
8098                        "backend": "S3Express"
8099                    },
8100                    "url": "https://mybucket--apne1-az1--x-s3.s3express-apne1-az1.ap-northeast-1.amazonaws.com"
8101                }
8102            },
8103            "params": {
8104                "Region": "ap-northeast-1",
8105                "Bucket": "mybucket--apne1-az1--x-s3",
8106                "UseFIPS": false,
8107                "UseDualStack": false,
8108                "Accelerate": false,
8109                "UseS3ExpressControlEndpoint": false,
8110                "DisableS3ExpressSessionAuth": true
8111            }
8112        },
8113        {
8114            "documentation": "Data Plane sigv4 auth with long AZ fips",
8115            "expect": {
8116                "endpoint": {
8117                    "properties": {
8118                        "authSchemes": [
8119                            {
8120                                "name": "sigv4",
8121                                "signingName": "s3express",
8122                                "signingRegion": "ap-northeast-1",
8123                                "disableDoubleEncoding": true
8124                            }
8125                        ],
8126                        "backend": "S3Express"
8127                    },
8128                    "url": "https://mybucket--apne1-az1--x-s3.s3express-fips-apne1-az1.ap-northeast-1.amazonaws.com"
8129                }
8130            },
8131            "params": {
8132                "Region": "ap-northeast-1",
8133                "Bucket": "mybucket--apne1-az1--x-s3",
8134                "UseFIPS": true,
8135                "UseDualStack": false,
8136                "Accelerate": false,
8137                "UseS3ExpressControlEndpoint": false,
8138                "DisableS3ExpressSessionAuth": true
8139            }
8140        },
8141        {
8142            "documentation": "Control Plane host override",
8143            "expect": {
8144                "endpoint": {
8145                    "properties": {
8146                        "authSchemes": [
8147                            {
8148                                "name": "sigv4",
8149                                "signingName": "s3express",
8150                                "signingRegion": "us-west-2",
8151                                "disableDoubleEncoding": true
8152                            }
8153                        ],
8154                        "backend": "S3Express"
8155                    },
8156                    "url": "https://mybucket--usw2-az1--x-s3.custom.com"
8157                }
8158            },
8159            "params": {
8160                "Region": "us-west-2",
8161                "Bucket": "mybucket--usw2-az1--x-s3",
8162                "UseFIPS": false,
8163                "UseDualStack": false,
8164                "Accelerate": false,
8165                "UseS3ExpressControlEndpoint": true,
8166                "DisableS3ExpressSessionAuth": true,
8167                "Endpoint": "https://custom.com"
8168            }
8169        },
8170        {
8171            "documentation": "Control Plane host override no bucket",
8172            "expect": {
8173                "endpoint": {
8174                    "properties": {
8175                        "authSchemes": [
8176                            {
8177                                "name": "sigv4",
8178                                "signingName": "s3express",
8179                                "signingRegion": "us-west-2",
8180                                "disableDoubleEncoding": true
8181                            }
8182                        ],
8183                        "backend": "S3Express"
8184                    },
8185                    "url": "https://custom.com"
8186                }
8187            },
8188            "params": {
8189                "Region": "us-west-2",
8190                "UseFIPS": false,
8191                "UseDualStack": false,
8192                "Accelerate": false,
8193                "UseS3ExpressControlEndpoint": true,
8194                "DisableS3ExpressSessionAuth": true,
8195                "Endpoint": "https://custom.com"
8196            }
8197        },
8198        {
8199            "documentation": "Data plane host override non virtual session auth",
8200            "expect": {
8201                "endpoint": {
8202                    "properties": {
8203                        "authSchemes": [
8204                            {
8205                                "name": "sigv4-s3express",
8206                                "signingName": "s3express",
8207                                "signingRegion": "us-west-2",
8208                                "disableDoubleEncoding": true
8209                            }
8210                        ],
8211                        "backend": "S3Express"
8212                    },
8213                    "url": "https://10.0.0.1/mybucket--usw2-az1--x-s3"
8214                }
8215            },
8216            "operationInputs": [
8217                {
8218                    "builtInParams": {
8219                        "AWS::Region": "us-west-2",
8220                        "SDK::Endpoint": "https://10.0.0.1"
8221                    },
8222                    "operationName": "GetObject",
8223                    "operationParams": {
8224                        "Bucket": "mybucket--usw2-az1--x-s3",
8225                        "Key": "key"
8226                    }
8227                }
8228            ],
8229            "params": {
8230                "Region": "us-west-2",
8231                "Bucket": "mybucket--usw2-az1--x-s3",
8232                "UseFIPS": false,
8233                "UseDualStack": false,
8234                "Accelerate": false,
8235                "Endpoint": "https://10.0.0.1"
8236            }
8237        },
8238        {
8239            "documentation": "Control Plane host override ip",
8240            "expect": {
8241                "endpoint": {
8242                    "properties": {
8243                        "authSchemes": [
8244                            {
8245                                "name": "sigv4",
8246                                "signingName": "s3express",
8247                                "signingRegion": "us-west-2",
8248                                "disableDoubleEncoding": true
8249                            }
8250                        ],
8251                        "backend": "S3Express"
8252                    },
8253                    "url": "https://10.0.0.1/mybucket--usw2-az1--x-s3"
8254                }
8255            },
8256            "params": {
8257                "Region": "us-west-2",
8258                "Bucket": "mybucket--usw2-az1--x-s3",
8259                "UseFIPS": false,
8260                "UseDualStack": false,
8261                "Accelerate": false,
8262                "UseS3ExpressControlEndpoint": true,
8263                "DisableS3ExpressSessionAuth": true,
8264                "Endpoint": "https://10.0.0.1"
8265            }
8266        },
8267        {
8268            "documentation": "Data plane host override",
8269            "expect": {
8270                "endpoint": {
8271                    "properties": {
8272                        "authSchemes": [
8273                            {
8274                                "name": "sigv4-s3express",
8275                                "signingName": "s3express",
8276                                "signingRegion": "us-west-2",
8277                                "disableDoubleEncoding": true
8278                            }
8279                        ],
8280                        "backend": "S3Express"
8281                    },
8282                    "url": "https://mybucket--usw2-az1--x-s3.custom.com"
8283                }
8284            },
8285            "operationInputs": [
8286                {
8287                    "builtInParams": {
8288                        "AWS::Region": "us-west-2",
8289                        "SDK::Endpoint": "https://custom.com"
8290                    },
8291                    "operationName": "GetObject",
8292                    "operationParams": {
8293                        "Bucket": "mybucket--usw2-az1--x-s3",
8294                        "Key": "key"
8295                    }
8296                }
8297            ],
8298            "params": {
8299                "Region": "us-west-2",
8300                "Bucket": "mybucket--usw2-az1--x-s3",
8301                "UseFIPS": false,
8302                "UseDualStack": false,
8303                "Accelerate": false,
8304                "Endpoint": "https://custom.com"
8305            }
8306        },
8307        {
8308            "documentation": "bad format error",
8309            "expect": {
8310                "error": "Unrecognized S3Express bucket name format."
8311            },
8312            "operationInputs": [
8313                {
8314                    "builtInParams": {
8315                        "AWS::Region": "us-east-1"
8316                    },
8317                    "operationName": "GetObject",
8318                    "operationParams": {
8319                        "Bucket": "mybucket--usaz1--x-s3",
8320                        "Key": "key"
8321                    }
8322                }
8323            ],
8324            "params": {
8325                "Region": "us-east-1",
8326                "Bucket": "mybucket--usaz1--x-s3",
8327                "UseFIPS": false,
8328                "UseDualStack": false,
8329                "Accelerate": false,
8330                "UseS3ExpressControlEndpoint": false
8331            }
8332        },
8333        {
8334            "documentation": "bad format error no session auth",
8335            "expect": {
8336                "error": "Unrecognized S3Express bucket name format."
8337            },
8338            "operationInputs": [
8339                {
8340                    "builtInParams": {
8341                        "AWS::Region": "us-east-1"
8342                    },
8343                    "operationName": "GetObject",
8344                    "operationParams": {
8345                        "Bucket": "mybucket--usaz1--x-s3",
8346                        "Key": "key"
8347                    }
8348                }
8349            ],
8350            "params": {
8351                "Region": "us-east-1",
8352                "Bucket": "mybucket--usaz1--x-s3",
8353                "UseFIPS": false,
8354                "UseDualStack": false,
8355                "Accelerate": false,
8356                "UseS3ExpressControlEndpoint": false,
8357                "DisableS3ExpressSessionAuth": true
8358            }
8359        },
8360        {
8361            "documentation": "dual-stack error",
8362            "expect": {
8363                "error": "S3Express does not support Dual-stack."
8364            },
8365            "operationInputs": [
8366                {
8367                    "builtInParams": {
8368                        "AWS::Region": "us-east-1",
8369                        "AWS::UseDualStack": true
8370                    },
8371                    "operationName": "GetObject",
8372                    "operationParams": {
8373                        "Bucket": "mybucket--use1-az1--x-s3",
8374                        "Key": "key"
8375                    }
8376                }
8377            ],
8378            "params": {
8379                "Region": "us-east-1",
8380                "Bucket": "mybucket--use1-az1--x-s3",
8381                "UseFIPS": false,
8382                "UseDualStack": true,
8383                "Accelerate": false,
8384                "UseS3ExpressControlEndpoint": false
8385            }
8386        },
8387        {
8388            "documentation": "accelerate error",
8389            "expect": {
8390                "error": "S3Express does not support S3 Accelerate."
8391            },
8392            "operationInputs": [
8393                {
8394                    "builtInParams": {
8395                        "AWS::Region": "us-east-1",
8396                        "AWS::S3::Accelerate": true
8397                    },
8398                    "operationName": "GetObject",
8399                    "operationParams": {
8400                        "Bucket": "mybucket--use1-az1--x-s3",
8401                        "Key": "key"
8402                    }
8403                }
8404            ],
8405            "params": {
8406                "Region": "us-east-1",
8407                "Bucket": "mybucket--use1-az1--x-s3",
8408                "UseFIPS": false,
8409                "UseDualStack": false,
8410                "Accelerate": true,
8411                "UseS3ExpressControlEndpoint": false
8412            }
8413        },
8414        {
8415            "documentation": "Data plane bucket format error",
8416            "expect": {
8417                "error": "S3Express bucket name is not a valid virtual hostable name."
8418            },
8419            "operationInputs": [
8420                {
8421                    "builtInParams": {
8422                        "AWS::Region": "us-east-1"
8423                    },
8424                    "operationName": "GetObject",
8425                    "operationParams": {
8426                        "Bucket": "my.bucket--use1-az1--x-s3",
8427                        "Key": "key"
8428                    }
8429                }
8430            ],
8431            "params": {
8432                "Region": "us-east-1",
8433                "Bucket": "my.bucket--use1-az1--x-s3",
8434                "UseFIPS": false,
8435                "UseDualStack": false,
8436                "Accelerate": false,
8437                "UseS3ExpressControlEndpoint": false
8438            }
8439        },
8440        {
8441            "documentation": "host override data plane bucket error session auth",
8442            "expect": {
8443                "error": "S3Express bucket name is not a valid virtual hostable name."
8444            },
8445            "operationInputs": [
8446                {
8447                    "builtInParams": {
8448                        "AWS::Region": "us-west-2",
8449                        "SDK::Endpoint": "https://custom.com"
8450                    },
8451                    "operationName": "GetObject",
8452                    "operationParams": {
8453                        "Bucket": "my.bucket--usw2-az1--x-s3",
8454                        "Key": "key"
8455                    }
8456                }
8457            ],
8458            "params": {
8459                "Region": "us-west-2",
8460                "Bucket": "my.bucket--usw2-az1--x-s3",
8461                "UseFIPS": false,
8462                "UseDualStack": false,
8463                "Accelerate": false,
8464                "Endpoint": "https://custom.com"
8465            }
8466        },
8467        {
8468            "documentation": "host override data plane bucket error",
8469            "expect": {
8470                "error": "S3Express bucket name is not a valid virtual hostable name."
8471            },
8472            "params": {
8473                "Region": "us-west-2",
8474                "Bucket": "my.bucket--usw2-az1--x-s3",
8475                "UseFIPS": false,
8476                "UseDualStack": false,
8477                "Accelerate": false,
8478                "Endpoint": "https://custom.com",
8479                "DisableS3ExpressSessionAuth": true
8480            }
8481        }
8482    ],
8483    "version": "1.0"
8484}