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