@aws-sdk/client-s3-control 3.234.0 → 3.236.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2354 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ruleSet = void 0;
4
- exports.ruleSet = {
5
- version: "1.0",
6
- parameters: {
7
- Region: {
8
- builtIn: "AWS::Region",
9
- required: false,
10
- documentation: "The AWS region used to dispatch the request.",
11
- type: "String",
12
- },
13
- UseFIPS: {
14
- builtIn: "AWS::UseFIPS",
15
- required: true,
16
- default: false,
17
- 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.",
18
- type: "Boolean",
19
- },
20
- UseDualStack: {
21
- builtIn: "AWS::UseDualStack",
22
- required: true,
23
- default: false,
24
- documentation: "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.",
25
- type: "Boolean",
26
- },
27
- Endpoint: {
28
- builtIn: "SDK::Endpoint",
29
- required: false,
30
- documentation: "Override the endpoint used to send this request",
31
- type: "String",
32
- },
33
- AccountId: {
34
- required: false,
35
- documentation: "The Account ID used to send the request. This is an optional parameter that will be set automatically for operations that require it.",
36
- type: "String",
37
- },
38
- RequiresAccountId: {
39
- required: false,
40
- documentation: "Internal parameter for operations that require account id host prefix.",
41
- type: "Boolean",
42
- },
43
- OutpostId: {
44
- required: false,
45
- documentation: "The Outpost ID. Some operations have an optional OutpostId which should be used in endpoint construction.",
46
- type: "String",
47
- },
48
- Bucket: {
49
- required: false,
50
- 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.",
51
- type: "String",
52
- },
53
- AccessPointName: {
54
- required: false,
55
- documentation: "The S3 AccessPointName used to send the request. This is an optional parameter that will be set automatically for operations that are scoped to an S3 AccessPoint.",
56
- type: "String",
57
- },
58
- UseArnRegion: {
59
- builtIn: "AWS::S3Control::UseArnRegion",
60
- required: false,
61
- 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.",
62
- type: "Boolean",
63
- },
64
- },
65
- rules: [
66
- {
67
- conditions: [],
68
- type: "tree",
69
- rules: [
70
- {
71
- conditions: [
72
- {
73
- fn: "isSet",
74
- argv: [
75
- {
76
- ref: "Region",
77
- },
78
- ],
79
- },
80
- ],
81
- type: "tree",
82
- rules: [
83
- {
84
- conditions: [],
85
- type: "tree",
86
- rules: [
87
- {
88
- conditions: [
89
- {
90
- fn: "isSet",
91
- argv: [
92
- {
93
- ref: "OutpostId",
94
- },
95
- ],
96
- },
97
- ],
98
- type: "tree",
99
- rules: [
100
- {
101
- conditions: [
102
- {
103
- fn: "aws.partition",
104
- argv: [
105
- {
106
- ref: "Region",
107
- },
108
- ],
109
- assign: "partitionResult",
110
- },
111
- ],
112
- type: "tree",
113
- rules: [
114
- {
115
- conditions: [],
116
- type: "tree",
117
- rules: [
118
- {
119
- conditions: [
120
- {
121
- fn: "booleanEquals",
122
- argv: [
123
- {
124
- ref: "UseFIPS",
125
- },
126
- true,
127
- ],
128
- },
129
- {
130
- fn: "stringEquals",
131
- argv: [
132
- {
133
- fn: "getAttr",
134
- argv: [
135
- {
136
- ref: "partitionResult",
137
- },
138
- "name",
139
- ],
140
- },
141
- "aws-cn",
142
- ],
143
- },
144
- ],
145
- error: "Partition does not support FIPS",
146
- type: "error",
147
- },
148
- {
149
- conditions: [],
150
- type: "tree",
151
- rules: [
152
- {
153
- conditions: [
154
- {
155
- fn: "isSet",
156
- argv: [
157
- {
158
- ref: "RequiresAccountId",
159
- },
160
- ],
161
- },
162
- {
163
- fn: "booleanEquals",
164
- argv: [
165
- {
166
- ref: "RequiresAccountId",
167
- },
168
- true,
169
- ],
170
- },
171
- {
172
- fn: "not",
173
- argv: [
174
- {
175
- fn: "isSet",
176
- argv: [
177
- {
178
- ref: "AccountId",
179
- },
180
- ],
181
- },
182
- ],
183
- },
184
- ],
185
- error: "AccountId is required but not set",
186
- type: "error",
187
- },
188
- {
189
- conditions: [],
190
- type: "tree",
191
- rules: [
192
- {
193
- conditions: [
194
- {
195
- fn: "isSet",
196
- argv: [
197
- {
198
- ref: "AccountId",
199
- },
200
- ],
201
- },
202
- {
203
- fn: "not",
204
- argv: [
205
- {
206
- fn: "isValidHostLabel",
207
- argv: [
208
- {
209
- ref: "AccountId",
210
- },
211
- false,
212
- ],
213
- },
214
- ],
215
- },
216
- ],
217
- error: "AccountId must only contain a-z, A-Z, 0-9 and `-`.",
218
- type: "error",
219
- },
220
- {
221
- conditions: [],
222
- type: "tree",
223
- rules: [
224
- {
225
- conditions: [
226
- {
227
- fn: "not",
228
- argv: [
229
- {
230
- fn: "isValidHostLabel",
231
- argv: [
232
- {
233
- ref: "OutpostId",
234
- },
235
- false,
236
- ],
237
- },
238
- ],
239
- },
240
- ],
241
- error: "OutpostId must only contain a-z, A-Z, 0-9 and `-`.",
242
- type: "error",
243
- },
244
- {
245
- conditions: [],
246
- type: "tree",
247
- rules: [
248
- {
249
- conditions: [
250
- {
251
- fn: "isValidHostLabel",
252
- argv: [
253
- {
254
- ref: "Region",
255
- },
256
- true,
257
- ],
258
- },
259
- ],
260
- type: "tree",
261
- rules: [
262
- {
263
- conditions: [],
264
- type: "tree",
265
- rules: [
266
- {
267
- conditions: [
268
- {
269
- fn: "booleanEquals",
270
- argv: [
271
- {
272
- ref: "UseDualStack",
273
- },
274
- true,
275
- ],
276
- },
277
- ],
278
- error: "Invalid configuration: Outposts do not support dual-stack",
279
- type: "error",
280
- },
281
- {
282
- conditions: [],
283
- type: "tree",
284
- rules: [
285
- {
286
- conditions: [
287
- {
288
- fn: "isSet",
289
- argv: [
290
- {
291
- ref: "Endpoint",
292
- },
293
- ],
294
- },
295
- {
296
- fn: "parseURL",
297
- argv: [
298
- {
299
- ref: "Endpoint",
300
- },
301
- ],
302
- assign: "url",
303
- },
304
- ],
305
- endpoint: {
306
- url: "{url#scheme}://{url#authority}{url#path}",
307
- properties: {
308
- authSchemes: [
309
- {
310
- name: "sigv4",
311
- signingRegion: "{Region}",
312
- disableDoubleEncoding: true,
313
- signingName: "s3-outposts",
314
- },
315
- ],
316
- },
317
- headers: {},
318
- },
319
- type: "endpoint",
320
- },
321
- {
322
- conditions: [
323
- {
324
- fn: "booleanEquals",
325
- argv: [
326
- {
327
- ref: "UseFIPS",
328
- },
329
- true,
330
- ],
331
- },
332
- ],
333
- endpoint: {
334
- url: "https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}",
335
- properties: {
336
- authSchemes: [
337
- {
338
- name: "sigv4",
339
- signingRegion: "{Region}",
340
- disableDoubleEncoding: true,
341
- signingName: "s3-outposts",
342
- },
343
- ],
344
- },
345
- headers: {},
346
- },
347
- type: "endpoint",
348
- },
349
- {
350
- conditions: [],
351
- endpoint: {
352
- url: "https://s3-outposts.{Region}.{partitionResult#dnsSuffix}",
353
- properties: {
354
- authSchemes: [
355
- {
356
- name: "sigv4",
357
- signingRegion: "{Region}",
358
- disableDoubleEncoding: true,
359
- signingName: "s3-outposts",
360
- },
361
- ],
362
- },
363
- headers: {},
364
- },
365
- type: "endpoint",
366
- },
367
- ],
368
- },
369
- ],
370
- },
371
- ],
372
- },
373
- {
374
- conditions: [],
375
- error: "Invalid region: region was not a valid DNS name.",
376
- type: "error",
377
- },
378
- ],
379
- },
380
- ],
381
- },
382
- ],
383
- },
384
- ],
385
- },
386
- ],
387
- },
388
- ],
389
- },
390
- {
391
- conditions: [],
392
- error: "A valid partition could not be determined",
393
- type: "error",
394
- },
395
- ],
396
- },
397
- {
398
- conditions: [
399
- {
400
- fn: "isSet",
401
- argv: [
402
- {
403
- ref: "AccessPointName",
404
- },
405
- ],
406
- },
407
- {
408
- fn: "aws.parseArn",
409
- argv: [
410
- {
411
- ref: "AccessPointName",
412
- },
413
- ],
414
- assign: "accessPointArn",
415
- },
416
- ],
417
- type: "tree",
418
- rules: [
419
- {
420
- conditions: [
421
- {
422
- fn: "getAttr",
423
- argv: [
424
- {
425
- ref: "accessPointArn",
426
- },
427
- "resourceId[0]",
428
- ],
429
- assign: "arnType",
430
- },
431
- {
432
- fn: "not",
433
- argv: [
434
- {
435
- fn: "stringEquals",
436
- argv: [
437
- {
438
- ref: "arnType",
439
- },
440
- "",
441
- ],
442
- },
443
- ],
444
- },
445
- ],
446
- type: "tree",
447
- rules: [
448
- {
449
- conditions: [
450
- {
451
- fn: "stringEquals",
452
- argv: [
453
- {
454
- fn: "getAttr",
455
- argv: [
456
- {
457
- ref: "accessPointArn",
458
- },
459
- "service",
460
- ],
461
- },
462
- "s3-outposts",
463
- ],
464
- },
465
- ],
466
- type: "tree",
467
- rules: [
468
- {
469
- conditions: [
470
- {
471
- fn: "booleanEquals",
472
- argv: [
473
- {
474
- ref: "UseDualStack",
475
- },
476
- true,
477
- ],
478
- },
479
- ],
480
- error: "Invalid configuration: Outpost Access Points do not support dual-stack",
481
- type: "error",
482
- },
483
- {
484
- conditions: [],
485
- type: "tree",
486
- rules: [
487
- {
488
- conditions: [
489
- {
490
- fn: "getAttr",
491
- argv: [
492
- {
493
- ref: "accessPointArn",
494
- },
495
- "resourceId[1]",
496
- ],
497
- assign: "outpostId",
498
- },
499
- ],
500
- type: "tree",
501
- rules: [
502
- {
503
- conditions: [],
504
- type: "tree",
505
- rules: [
506
- {
507
- conditions: [
508
- {
509
- fn: "isValidHostLabel",
510
- argv: [
511
- {
512
- ref: "outpostId",
513
- },
514
- false,
515
- ],
516
- },
517
- ],
518
- type: "tree",
519
- rules: [
520
- {
521
- conditions: [],
522
- type: "tree",
523
- rules: [
524
- {
525
- conditions: [
526
- {
527
- fn: "isSet",
528
- argv: [
529
- {
530
- ref: "UseArnRegion",
531
- },
532
- ],
533
- },
534
- {
535
- fn: "booleanEquals",
536
- argv: [
537
- {
538
- ref: "UseArnRegion",
539
- },
540
- false,
541
- ],
542
- },
543
- {
544
- fn: "not",
545
- argv: [
546
- {
547
- fn: "stringEquals",
548
- argv: [
549
- {
550
- fn: "getAttr",
551
- argv: [
552
- {
553
- ref: "accessPointArn",
554
- },
555
- "region",
556
- ],
557
- },
558
- "{Region}",
559
- ],
560
- },
561
- ],
562
- },
563
- ],
564
- error: "Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",
565
- type: "error",
566
- },
567
- {
568
- conditions: [],
569
- type: "tree",
570
- rules: [
571
- {
572
- conditions: [
573
- {
574
- fn: "aws.partition",
575
- argv: [
576
- {
577
- ref: "Region",
578
- },
579
- ],
580
- assign: "partitionResult",
581
- },
582
- ],
583
- type: "tree",
584
- rules: [
585
- {
586
- conditions: [],
587
- type: "tree",
588
- rules: [
589
- {
590
- conditions: [
591
- {
592
- fn: "aws.partition",
593
- argv: [
594
- {
595
- fn: "getAttr",
596
- argv: [
597
- {
598
- ref: "accessPointArn",
599
- },
600
- "region",
601
- ],
602
- },
603
- ],
604
- assign: "arnPartition",
605
- },
606
- ],
607
- type: "tree",
608
- rules: [
609
- {
610
- conditions: [],
611
- type: "tree",
612
- rules: [
613
- {
614
- conditions: [
615
- {
616
- fn: "stringEquals",
617
- argv: [
618
- {
619
- fn: "getAttr",
620
- argv: [
621
- {
622
- ref: "arnPartition",
623
- },
624
- "name",
625
- ],
626
- },
627
- {
628
- fn: "getAttr",
629
- argv: [
630
- {
631
- ref: "partitionResult",
632
- },
633
- "name",
634
- ],
635
- },
636
- ],
637
- },
638
- ],
639
- type: "tree",
640
- rules: [
641
- {
642
- conditions: [],
643
- type: "tree",
644
- rules: [
645
- {
646
- conditions: [
647
- {
648
- fn: "isValidHostLabel",
649
- argv: [
650
- {
651
- fn: "getAttr",
652
- argv: [
653
- {
654
- ref: "accessPointArn",
655
- },
656
- "region",
657
- ],
658
- },
659
- true,
660
- ],
661
- },
662
- ],
663
- type: "tree",
664
- rules: [
665
- {
666
- conditions: [],
667
- type: "tree",
668
- rules: [
669
- {
670
- conditions: [
671
- {
672
- fn: "not",
673
- argv: [
674
- {
675
- fn: "stringEquals",
676
- argv: [
677
- {
678
- fn: "getAttr",
679
- argv: [
680
- {
681
- ref: "accessPointArn",
682
- },
683
- "accountId",
684
- ],
685
- },
686
- "",
687
- ],
688
- },
689
- ],
690
- },
691
- ],
692
- type: "tree",
693
- rules: [
694
- {
695
- conditions: [],
696
- type: "tree",
697
- rules: [
698
- {
699
- conditions: [
700
- {
701
- fn: "isValidHostLabel",
702
- argv: [
703
- {
704
- fn: "getAttr",
705
- argv: [
706
- {
707
- ref: "accessPointArn",
708
- },
709
- "accountId",
710
- ],
711
- },
712
- false,
713
- ],
714
- },
715
- ],
716
- type: "tree",
717
- rules: [
718
- {
719
- conditions: [],
720
- type: "tree",
721
- rules: [
722
- {
723
- conditions: [
724
- {
725
- fn: "isSet",
726
- argv: [
727
- {
728
- ref: "AccountId",
729
- },
730
- ],
731
- },
732
- {
733
- fn: "not",
734
- argv: [
735
- {
736
- fn: "stringEquals",
737
- argv: [
738
- {
739
- ref: "AccountId",
740
- },
741
- "{accessPointArn#accountId}",
742
- ],
743
- },
744
- ],
745
- },
746
- ],
747
- error: "Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)",
748
- type: "error",
749
- },
750
- {
751
- conditions: [],
752
- type: "tree",
753
- rules: [
754
- {
755
- conditions: [
756
- {
757
- fn: "getAttr",
758
- argv: [
759
- {
760
- ref: "accessPointArn",
761
- },
762
- "resourceId[2]",
763
- ],
764
- assign: "outpostType",
765
- },
766
- ],
767
- type: "tree",
768
- rules: [
769
- {
770
- conditions: [],
771
- type: "tree",
772
- rules: [
773
- {
774
- conditions: [
775
- {
776
- fn: "getAttr",
777
- argv: [
778
- {
779
- ref: "accessPointArn",
780
- },
781
- "resourceId[3]",
782
- ],
783
- assign: "accessPointName",
784
- },
785
- ],
786
- type: "tree",
787
- rules: [
788
- {
789
- conditions: [],
790
- type: "tree",
791
- rules: [
792
- {
793
- conditions: [
794
- {
795
- fn: "stringEquals",
796
- argv: [
797
- {
798
- ref: "outpostType",
799
- },
800
- "accesspoint",
801
- ],
802
- },
803
- ],
804
- type: "tree",
805
- rules: [
806
- {
807
- conditions: [],
808
- type: "tree",
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://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}",
824
- properties: {
825
- authSchemes: [
826
- {
827
- name: "sigv4",
828
- signingRegion: "{accessPointArn#region}",
829
- disableDoubleEncoding: true,
830
- signingName: "s3-outposts",
831
- },
832
- ],
833
- },
834
- headers: {
835
- "x-amz-account-id": [
836
- "{accessPointArn#accountId}",
837
- ],
838
- "x-amz-outpost-id": [
839
- "{outpostId}",
840
- ],
841
- },
842
- },
843
- type: "endpoint",
844
- },
845
- {
846
- conditions: [
847
- {
848
- fn: "isSet",
849
- argv: [
850
- {
851
- ref: "Endpoint",
852
- },
853
- ],
854
- },
855
- {
856
- fn: "parseURL",
857
- argv: [
858
- {
859
- ref: "Endpoint",
860
- },
861
- ],
862
- assign: "url",
863
- },
864
- ],
865
- endpoint: {
866
- url: "{url#scheme}://{url#authority}{url#path}",
867
- properties: {
868
- authSchemes: [
869
- {
870
- name: "sigv4",
871
- signingRegion: "{accessPointArn#region}",
872
- disableDoubleEncoding: true,
873
- signingName: "s3-outposts",
874
- },
875
- ],
876
- },
877
- headers: {
878
- "x-amz-account-id": [
879
- "{accessPointArn#accountId}",
880
- ],
881
- "x-amz-outpost-id": [
882
- "{outpostId}",
883
- ],
884
- },
885
- },
886
- type: "endpoint",
887
- },
888
- {
889
- conditions: [],
890
- endpoint: {
891
- url: "https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}",
892
- properties: {
893
- authSchemes: [
894
- {
895
- name: "sigv4",
896
- signingRegion: "{accessPointArn#region}",
897
- disableDoubleEncoding: true,
898
- signingName: "s3-outposts",
899
- },
900
- ],
901
- },
902
- headers: {
903
- "x-amz-account-id": [
904
- "{accessPointArn#accountId}",
905
- ],
906
- "x-amz-outpost-id": [
907
- "{outpostId}",
908
- ],
909
- },
910
- },
911
- type: "endpoint",
912
- },
913
- ],
914
- },
915
- ],
916
- },
917
- {
918
- conditions: [],
919
- error: "Expected an outpost type `accesspoint`, found `{outpostType}`",
920
- type: "error",
921
- },
922
- ],
923
- },
924
- ],
925
- },
926
- {
927
- conditions: [],
928
- error: "Invalid ARN: expected an access point name",
929
- type: "error",
930
- },
931
- ],
932
- },
933
- ],
934
- },
935
- {
936
- conditions: [],
937
- error: "Invalid ARN: Expected a 4-component resource",
938
- type: "error",
939
- },
940
- ],
941
- },
942
- ],
943
- },
944
- ],
945
- },
946
- {
947
- conditions: [],
948
- error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`",
949
- type: "error",
950
- },
951
- ],
952
- },
953
- ],
954
- },
955
- {
956
- conditions: [],
957
- error: "Invalid ARN: missing account ID",
958
- type: "error",
959
- },
960
- ],
961
- },
962
- ],
963
- },
964
- {
965
- conditions: [],
966
- error: "Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)",
967
- type: "error",
968
- },
969
- ],
970
- },
971
- ],
972
- },
973
- {
974
- conditions: [],
975
- error: "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`",
976
- type: "error",
977
- },
978
- ],
979
- },
980
- ],
981
- },
982
- {
983
- conditions: [],
984
- error: "Could not load partition for ARN region `{accessPointArn#region}`",
985
- type: "error",
986
- },
987
- ],
988
- },
989
- ],
990
- },
991
- {
992
- conditions: [],
993
- error: "A valid partition could not be determined",
994
- type: "error",
995
- },
996
- ],
997
- },
998
- ],
999
- },
1000
- ],
1001
- },
1002
- {
1003
- conditions: [],
1004
- error: "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`",
1005
- type: "error",
1006
- },
1007
- ],
1008
- },
1009
- ],
1010
- },
1011
- {
1012
- conditions: [],
1013
- error: "Invalid ARN: The Outpost Id was not set",
1014
- type: "error",
1015
- },
1016
- ],
1017
- },
1018
- ],
1019
- },
1020
- ],
1021
- },
1022
- {
1023
- conditions: [],
1024
- error: "Invalid ARN: No ARN type specified",
1025
- type: "error",
1026
- },
1027
- ],
1028
- },
1029
- {
1030
- conditions: [
1031
- {
1032
- fn: "isSet",
1033
- argv: [
1034
- {
1035
- ref: "Bucket",
1036
- },
1037
- ],
1038
- },
1039
- {
1040
- fn: "aws.parseArn",
1041
- argv: [
1042
- {
1043
- ref: "Bucket",
1044
- },
1045
- ],
1046
- assign: "bucketArn",
1047
- },
1048
- ],
1049
- type: "tree",
1050
- rules: [
1051
- {
1052
- conditions: [
1053
- {
1054
- fn: "getAttr",
1055
- argv: [
1056
- {
1057
- ref: "bucketArn",
1058
- },
1059
- "resourceId[0]",
1060
- ],
1061
- assign: "arnType",
1062
- },
1063
- {
1064
- fn: "not",
1065
- argv: [
1066
- {
1067
- fn: "stringEquals",
1068
- argv: [
1069
- {
1070
- ref: "arnType",
1071
- },
1072
- "",
1073
- ],
1074
- },
1075
- ],
1076
- },
1077
- ],
1078
- type: "tree",
1079
- rules: [
1080
- {
1081
- conditions: [
1082
- {
1083
- fn: "stringEquals",
1084
- argv: [
1085
- {
1086
- fn: "getAttr",
1087
- argv: [
1088
- {
1089
- ref: "bucketArn",
1090
- },
1091
- "service",
1092
- ],
1093
- },
1094
- "s3-outposts",
1095
- ],
1096
- },
1097
- ],
1098
- type: "tree",
1099
- rules: [
1100
- {
1101
- conditions: [
1102
- {
1103
- fn: "booleanEquals",
1104
- argv: [
1105
- {
1106
- ref: "UseDualStack",
1107
- },
1108
- true,
1109
- ],
1110
- },
1111
- ],
1112
- error: "Invalid configuration: Outpost buckets do not support dual-stack",
1113
- type: "error",
1114
- },
1115
- {
1116
- conditions: [],
1117
- type: "tree",
1118
- rules: [
1119
- {
1120
- conditions: [
1121
- {
1122
- fn: "getAttr",
1123
- argv: [
1124
- {
1125
- ref: "bucketArn",
1126
- },
1127
- "resourceId[1]",
1128
- ],
1129
- assign: "outpostId",
1130
- },
1131
- ],
1132
- type: "tree",
1133
- rules: [
1134
- {
1135
- conditions: [],
1136
- type: "tree",
1137
- rules: [
1138
- {
1139
- conditions: [
1140
- {
1141
- fn: "isValidHostLabel",
1142
- argv: [
1143
- {
1144
- ref: "outpostId",
1145
- },
1146
- false,
1147
- ],
1148
- },
1149
- ],
1150
- type: "tree",
1151
- rules: [
1152
- {
1153
- conditions: [],
1154
- type: "tree",
1155
- rules: [
1156
- {
1157
- conditions: [
1158
- {
1159
- fn: "isSet",
1160
- argv: [
1161
- {
1162
- ref: "UseArnRegion",
1163
- },
1164
- ],
1165
- },
1166
- {
1167
- fn: "booleanEquals",
1168
- argv: [
1169
- {
1170
- ref: "UseArnRegion",
1171
- },
1172
- false,
1173
- ],
1174
- },
1175
- {
1176
- fn: "not",
1177
- argv: [
1178
- {
1179
- fn: "stringEquals",
1180
- argv: [
1181
- {
1182
- fn: "getAttr",
1183
- argv: [
1184
- {
1185
- ref: "bucketArn",
1186
- },
1187
- "region",
1188
- ],
1189
- },
1190
- "{Region}",
1191
- ],
1192
- },
1193
- ],
1194
- },
1195
- ],
1196
- error: "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`",
1197
- type: "error",
1198
- },
1199
- {
1200
- conditions: [],
1201
- type: "tree",
1202
- rules: [
1203
- {
1204
- conditions: [
1205
- {
1206
- fn: "aws.partition",
1207
- argv: [
1208
- {
1209
- fn: "getAttr",
1210
- argv: [
1211
- {
1212
- ref: "bucketArn",
1213
- },
1214
- "region",
1215
- ],
1216
- },
1217
- ],
1218
- assign: "arnPartition",
1219
- },
1220
- ],
1221
- type: "tree",
1222
- rules: [
1223
- {
1224
- conditions: [],
1225
- type: "tree",
1226
- rules: [
1227
- {
1228
- conditions: [
1229
- {
1230
- fn: "aws.partition",
1231
- argv: [
1232
- {
1233
- ref: "Region",
1234
- },
1235
- ],
1236
- assign: "partitionResult",
1237
- },
1238
- ],
1239
- type: "tree",
1240
- rules: [
1241
- {
1242
- conditions: [],
1243
- type: "tree",
1244
- rules: [
1245
- {
1246
- conditions: [
1247
- {
1248
- fn: "stringEquals",
1249
- argv: [
1250
- {
1251
- fn: "getAttr",
1252
- argv: [
1253
- {
1254
- ref: "arnPartition",
1255
- },
1256
- "name",
1257
- ],
1258
- },
1259
- {
1260
- fn: "getAttr",
1261
- argv: [
1262
- {
1263
- ref: "partitionResult",
1264
- },
1265
- "name",
1266
- ],
1267
- },
1268
- ],
1269
- },
1270
- ],
1271
- type: "tree",
1272
- rules: [
1273
- {
1274
- conditions: [],
1275
- type: "tree",
1276
- rules: [
1277
- {
1278
- conditions: [
1279
- {
1280
- fn: "isValidHostLabel",
1281
- argv: [
1282
- {
1283
- fn: "getAttr",
1284
- argv: [
1285
- {
1286
- ref: "bucketArn",
1287
- },
1288
- "region",
1289
- ],
1290
- },
1291
- true,
1292
- ],
1293
- },
1294
- ],
1295
- type: "tree",
1296
- rules: [
1297
- {
1298
- conditions: [],
1299
- type: "tree",
1300
- rules: [
1301
- {
1302
- conditions: [
1303
- {
1304
- fn: "not",
1305
- argv: [
1306
- {
1307
- fn: "stringEquals",
1308
- argv: [
1309
- {
1310
- fn: "getAttr",
1311
- argv: [
1312
- {
1313
- ref: "bucketArn",
1314
- },
1315
- "accountId",
1316
- ],
1317
- },
1318
- "",
1319
- ],
1320
- },
1321
- ],
1322
- },
1323
- ],
1324
- type: "tree",
1325
- rules: [
1326
- {
1327
- conditions: [],
1328
- type: "tree",
1329
- rules: [
1330
- {
1331
- conditions: [
1332
- {
1333
- fn: "isValidHostLabel",
1334
- argv: [
1335
- {
1336
- fn: "getAttr",
1337
- argv: [
1338
- {
1339
- ref: "bucketArn",
1340
- },
1341
- "accountId",
1342
- ],
1343
- },
1344
- false,
1345
- ],
1346
- },
1347
- ],
1348
- type: "tree",
1349
- rules: [
1350
- {
1351
- conditions: [],
1352
- type: "tree",
1353
- rules: [
1354
- {
1355
- conditions: [
1356
- {
1357
- fn: "isSet",
1358
- argv: [
1359
- {
1360
- ref: "AccountId",
1361
- },
1362
- ],
1363
- },
1364
- {
1365
- fn: "not",
1366
- argv: [
1367
- {
1368
- fn: "stringEquals",
1369
- argv: [
1370
- {
1371
- ref: "AccountId",
1372
- },
1373
- "{bucketArn#accountId}",
1374
- ],
1375
- },
1376
- ],
1377
- },
1378
- ],
1379
- error: "Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)",
1380
- type: "error",
1381
- },
1382
- {
1383
- conditions: [],
1384
- type: "tree",
1385
- rules: [
1386
- {
1387
- conditions: [
1388
- {
1389
- fn: "getAttr",
1390
- argv: [
1391
- {
1392
- ref: "bucketArn",
1393
- },
1394
- "resourceId[2]",
1395
- ],
1396
- assign: "outpostType",
1397
- },
1398
- ],
1399
- type: "tree",
1400
- rules: [
1401
- {
1402
- conditions: [],
1403
- type: "tree",
1404
- rules: [
1405
- {
1406
- conditions: [
1407
- {
1408
- fn: "getAttr",
1409
- argv: [
1410
- {
1411
- ref: "bucketArn",
1412
- },
1413
- "resourceId[3]",
1414
- ],
1415
- assign: "bucketName",
1416
- },
1417
- ],
1418
- type: "tree",
1419
- rules: [
1420
- {
1421
- conditions: [],
1422
- type: "tree",
1423
- rules: [
1424
- {
1425
- conditions: [
1426
- {
1427
- fn: "stringEquals",
1428
- argv: [
1429
- {
1430
- ref: "outpostType",
1431
- },
1432
- "bucket",
1433
- ],
1434
- },
1435
- ],
1436
- type: "tree",
1437
- rules: [
1438
- {
1439
- conditions: [],
1440
- type: "tree",
1441
- rules: [
1442
- {
1443
- conditions: [
1444
- {
1445
- fn: "booleanEquals",
1446
- argv: [
1447
- {
1448
- ref: "UseFIPS",
1449
- },
1450
- true,
1451
- ],
1452
- },
1453
- ],
1454
- endpoint: {
1455
- url: "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}",
1456
- properties: {
1457
- authSchemes: [
1458
- {
1459
- name: "sigv4",
1460
- signingRegion: "{bucketArn#region}",
1461
- disableDoubleEncoding: true,
1462
- signingName: "s3-outposts",
1463
- },
1464
- ],
1465
- },
1466
- headers: {
1467
- "x-amz-account-id": [
1468
- "{bucketArn#accountId}",
1469
- ],
1470
- "x-amz-outpost-id": [
1471
- "{outpostId}",
1472
- ],
1473
- },
1474
- },
1475
- type: "endpoint",
1476
- },
1477
- {
1478
- conditions: [
1479
- {
1480
- fn: "isSet",
1481
- argv: [
1482
- {
1483
- ref: "Endpoint",
1484
- },
1485
- ],
1486
- },
1487
- {
1488
- fn: "parseURL",
1489
- argv: [
1490
- {
1491
- ref: "Endpoint",
1492
- },
1493
- ],
1494
- assign: "url",
1495
- },
1496
- ],
1497
- endpoint: {
1498
- url: "{url#scheme}://{url#authority}{url#path}",
1499
- properties: {
1500
- authSchemes: [
1501
- {
1502
- name: "sigv4",
1503
- signingRegion: "{bucketArn#region}",
1504
- disableDoubleEncoding: true,
1505
- signingName: "s3-outposts",
1506
- },
1507
- ],
1508
- },
1509
- headers: {
1510
- "x-amz-account-id": [
1511
- "{bucketArn#accountId}",
1512
- ],
1513
- "x-amz-outpost-id": [
1514
- "{outpostId}",
1515
- ],
1516
- },
1517
- },
1518
- type: "endpoint",
1519
- },
1520
- {
1521
- conditions: [],
1522
- endpoint: {
1523
- url: "https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}",
1524
- properties: {
1525
- authSchemes: [
1526
- {
1527
- name: "sigv4",
1528
- signingRegion: "{bucketArn#region}",
1529
- disableDoubleEncoding: true,
1530
- signingName: "s3-outposts",
1531
- },
1532
- ],
1533
- },
1534
- headers: {
1535
- "x-amz-account-id": [
1536
- "{bucketArn#accountId}",
1537
- ],
1538
- "x-amz-outpost-id": [
1539
- "{outpostId}",
1540
- ],
1541
- },
1542
- },
1543
- type: "endpoint",
1544
- },
1545
- ],
1546
- },
1547
- ],
1548
- },
1549
- {
1550
- conditions: [],
1551
- error: "Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`",
1552
- type: "error",
1553
- },
1554
- ],
1555
- },
1556
- ],
1557
- },
1558
- {
1559
- conditions: [],
1560
- error: "Invalid ARN: expected a bucket name",
1561
- type: "error",
1562
- },
1563
- ],
1564
- },
1565
- ],
1566
- },
1567
- {
1568
- conditions: [],
1569
- error: "Invalid ARN: Expected a 4-component resource",
1570
- type: "error",
1571
- },
1572
- ],
1573
- },
1574
- ],
1575
- },
1576
- ],
1577
- },
1578
- {
1579
- conditions: [],
1580
- error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`",
1581
- type: "error",
1582
- },
1583
- ],
1584
- },
1585
- ],
1586
- },
1587
- {
1588
- conditions: [],
1589
- error: "Invalid ARN: missing account ID",
1590
- type: "error",
1591
- },
1592
- ],
1593
- },
1594
- ],
1595
- },
1596
- {
1597
- conditions: [],
1598
- error: "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)",
1599
- type: "error",
1600
- },
1601
- ],
1602
- },
1603
- ],
1604
- },
1605
- {
1606
- conditions: [],
1607
- error: "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`",
1608
- type: "error",
1609
- },
1610
- ],
1611
- },
1612
- ],
1613
- },
1614
- {
1615
- conditions: [],
1616
- error: "A valid partition could not be determined",
1617
- type: "error",
1618
- },
1619
- ],
1620
- },
1621
- ],
1622
- },
1623
- {
1624
- conditions: [],
1625
- error: "Could not load partition for ARN region `{bucketArn#region}`",
1626
- type: "error",
1627
- },
1628
- ],
1629
- },
1630
- ],
1631
- },
1632
- ],
1633
- },
1634
- {
1635
- conditions: [],
1636
- error: "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`",
1637
- type: "error",
1638
- },
1639
- ],
1640
- },
1641
- ],
1642
- },
1643
- {
1644
- conditions: [],
1645
- error: "Invalid ARN: The Outpost Id was not set",
1646
- type: "error",
1647
- },
1648
- ],
1649
- },
1650
- ],
1651
- },
1652
- ],
1653
- },
1654
- {
1655
- conditions: [],
1656
- error: "Invalid ARN: No ARN type specified",
1657
- type: "error",
1658
- },
1659
- ],
1660
- },
1661
- {
1662
- conditions: [],
1663
- type: "tree",
1664
- rules: [
1665
- {
1666
- conditions: [
1667
- {
1668
- fn: "aws.partition",
1669
- argv: [
1670
- {
1671
- ref: "Region",
1672
- },
1673
- ],
1674
- assign: "partitionResult",
1675
- },
1676
- ],
1677
- type: "tree",
1678
- rules: [
1679
- {
1680
- conditions: [],
1681
- type: "tree",
1682
- rules: [
1683
- {
1684
- conditions: [
1685
- {
1686
- fn: "isValidHostLabel",
1687
- argv: [
1688
- {
1689
- ref: "Region",
1690
- },
1691
- true,
1692
- ],
1693
- },
1694
- ],
1695
- type: "tree",
1696
- rules: [
1697
- {
1698
- conditions: [],
1699
- type: "tree",
1700
- rules: [
1701
- {
1702
- conditions: [
1703
- {
1704
- fn: "booleanEquals",
1705
- argv: [
1706
- {
1707
- ref: "UseFIPS",
1708
- },
1709
- true,
1710
- ],
1711
- },
1712
- {
1713
- fn: "stringEquals",
1714
- argv: [
1715
- {
1716
- fn: "getAttr",
1717
- argv: [
1718
- {
1719
- ref: "partitionResult",
1720
- },
1721
- "name",
1722
- ],
1723
- },
1724
- "aws-cn",
1725
- ],
1726
- },
1727
- ],
1728
- error: "Partition does not support FIPS",
1729
- type: "error",
1730
- },
1731
- {
1732
- conditions: [],
1733
- type: "tree",
1734
- rules: [
1735
- {
1736
- conditions: [
1737
- {
1738
- fn: "isSet",
1739
- argv: [
1740
- {
1741
- ref: "RequiresAccountId",
1742
- },
1743
- ],
1744
- },
1745
- {
1746
- fn: "booleanEquals",
1747
- argv: [
1748
- {
1749
- ref: "RequiresAccountId",
1750
- },
1751
- true,
1752
- ],
1753
- },
1754
- {
1755
- fn: "not",
1756
- argv: [
1757
- {
1758
- fn: "isSet",
1759
- argv: [
1760
- {
1761
- ref: "AccountId",
1762
- },
1763
- ],
1764
- },
1765
- ],
1766
- },
1767
- ],
1768
- error: "AccountId is required but not set",
1769
- type: "error",
1770
- },
1771
- {
1772
- conditions: [],
1773
- type: "tree",
1774
- rules: [
1775
- {
1776
- conditions: [
1777
- {
1778
- fn: "isSet",
1779
- argv: [
1780
- {
1781
- ref: "AccountId",
1782
- },
1783
- ],
1784
- },
1785
- {
1786
- fn: "not",
1787
- argv: [
1788
- {
1789
- fn: "isValidHostLabel",
1790
- argv: [
1791
- {
1792
- ref: "AccountId",
1793
- },
1794
- false,
1795
- ],
1796
- },
1797
- ],
1798
- },
1799
- ],
1800
- error: "AccountId must only contain a-z, A-Z, 0-9 and `-`.",
1801
- type: "error",
1802
- },
1803
- {
1804
- conditions: [],
1805
- type: "tree",
1806
- rules: [
1807
- {
1808
- conditions: [
1809
- {
1810
- fn: "isSet",
1811
- argv: [
1812
- {
1813
- ref: "Endpoint",
1814
- },
1815
- ],
1816
- },
1817
- {
1818
- fn: "parseURL",
1819
- argv: [
1820
- {
1821
- ref: "Endpoint",
1822
- },
1823
- ],
1824
- assign: "url",
1825
- },
1826
- ],
1827
- type: "tree",
1828
- rules: [
1829
- {
1830
- conditions: [
1831
- {
1832
- fn: "booleanEquals",
1833
- argv: [
1834
- {
1835
- ref: "UseDualStack",
1836
- },
1837
- true,
1838
- ],
1839
- },
1840
- ],
1841
- error: "Invalid Configuration: Dualstack and custom endpoint are not supported",
1842
- type: "error",
1843
- },
1844
- {
1845
- conditions: [],
1846
- type: "tree",
1847
- rules: [
1848
- {
1849
- conditions: [
1850
- {
1851
- fn: "isSet",
1852
- argv: [
1853
- {
1854
- ref: "RequiresAccountId",
1855
- },
1856
- ],
1857
- },
1858
- {
1859
- fn: "booleanEquals",
1860
- argv: [
1861
- {
1862
- ref: "RequiresAccountId",
1863
- },
1864
- true,
1865
- ],
1866
- },
1867
- {
1868
- fn: "isSet",
1869
- argv: [
1870
- {
1871
- ref: "AccountId",
1872
- },
1873
- ],
1874
- },
1875
- ],
1876
- endpoint: {
1877
- url: "{url#scheme}://{AccountId}.{url#authority}{url#path}",
1878
- properties: {
1879
- authSchemes: [
1880
- {
1881
- name: "sigv4",
1882
- signingRegion: "{Region}",
1883
- disableDoubleEncoding: true,
1884
- signingName: "s3",
1885
- },
1886
- ],
1887
- },
1888
- headers: {},
1889
- },
1890
- type: "endpoint",
1891
- },
1892
- {
1893
- conditions: [],
1894
- endpoint: {
1895
- url: "{url#scheme}://{url#authority}{url#path}",
1896
- properties: {
1897
- authSchemes: [
1898
- {
1899
- name: "sigv4",
1900
- signingRegion: "{Region}",
1901
- disableDoubleEncoding: true,
1902
- signingName: "s3",
1903
- },
1904
- ],
1905
- },
1906
- headers: {},
1907
- },
1908
- type: "endpoint",
1909
- },
1910
- ],
1911
- },
1912
- ],
1913
- },
1914
- {
1915
- conditions: [],
1916
- type: "tree",
1917
- rules: [
1918
- {
1919
- conditions: [
1920
- {
1921
- fn: "booleanEquals",
1922
- argv: [
1923
- {
1924
- ref: "UseFIPS",
1925
- },
1926
- true,
1927
- ],
1928
- },
1929
- {
1930
- fn: "booleanEquals",
1931
- argv: [
1932
- {
1933
- ref: "UseDualStack",
1934
- },
1935
- true,
1936
- ],
1937
- },
1938
- {
1939
- fn: "isSet",
1940
- argv: [
1941
- {
1942
- ref: "RequiresAccountId",
1943
- },
1944
- ],
1945
- },
1946
- {
1947
- fn: "booleanEquals",
1948
- argv: [
1949
- {
1950
- ref: "RequiresAccountId",
1951
- },
1952
- true,
1953
- ],
1954
- },
1955
- {
1956
- fn: "isSet",
1957
- argv: [
1958
- {
1959
- ref: "AccountId",
1960
- },
1961
- ],
1962
- },
1963
- ],
1964
- endpoint: {
1965
- url: "https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",
1966
- properties: {
1967
- authSchemes: [
1968
- {
1969
- name: "sigv4",
1970
- signingRegion: "{Region}",
1971
- disableDoubleEncoding: true,
1972
- signingName: "s3",
1973
- },
1974
- ],
1975
- },
1976
- headers: {},
1977
- },
1978
- type: "endpoint",
1979
- },
1980
- {
1981
- conditions: [
1982
- {
1983
- fn: "booleanEquals",
1984
- argv: [
1985
- {
1986
- ref: "UseFIPS",
1987
- },
1988
- true,
1989
- ],
1990
- },
1991
- {
1992
- fn: "booleanEquals",
1993
- argv: [
1994
- {
1995
- ref: "UseDualStack",
1996
- },
1997
- true,
1998
- ],
1999
- },
2000
- ],
2001
- endpoint: {
2002
- url: "https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}",
2003
- properties: {
2004
- authSchemes: [
2005
- {
2006
- name: "sigv4",
2007
- signingRegion: "{Region}",
2008
- disableDoubleEncoding: true,
2009
- signingName: "s3",
2010
- },
2011
- ],
2012
- },
2013
- headers: {},
2014
- },
2015
- type: "endpoint",
2016
- },
2017
- {
2018
- conditions: [
2019
- {
2020
- fn: "booleanEquals",
2021
- argv: [
2022
- {
2023
- ref: "UseFIPS",
2024
- },
2025
- true,
2026
- ],
2027
- },
2028
- {
2029
- fn: "booleanEquals",
2030
- argv: [
2031
- {
2032
- ref: "UseDualStack",
2033
- },
2034
- false,
2035
- ],
2036
- },
2037
- {
2038
- fn: "isSet",
2039
- argv: [
2040
- {
2041
- ref: "RequiresAccountId",
2042
- },
2043
- ],
2044
- },
2045
- {
2046
- fn: "booleanEquals",
2047
- argv: [
2048
- {
2049
- ref: "RequiresAccountId",
2050
- },
2051
- true,
2052
- ],
2053
- },
2054
- {
2055
- fn: "isSet",
2056
- argv: [
2057
- {
2058
- ref: "AccountId",
2059
- },
2060
- ],
2061
- },
2062
- ],
2063
- endpoint: {
2064
- url: "https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}",
2065
- properties: {
2066
- authSchemes: [
2067
- {
2068
- name: "sigv4",
2069
- signingRegion: "{Region}",
2070
- disableDoubleEncoding: true,
2071
- signingName: "s3",
2072
- },
2073
- ],
2074
- },
2075
- headers: {},
2076
- },
2077
- type: "endpoint",
2078
- },
2079
- {
2080
- conditions: [
2081
- {
2082
- fn: "booleanEquals",
2083
- argv: [
2084
- {
2085
- ref: "UseFIPS",
2086
- },
2087
- true,
2088
- ],
2089
- },
2090
- {
2091
- fn: "booleanEquals",
2092
- argv: [
2093
- {
2094
- ref: "UseDualStack",
2095
- },
2096
- false,
2097
- ],
2098
- },
2099
- ],
2100
- endpoint: {
2101
- url: "https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}",
2102
- properties: {
2103
- authSchemes: [
2104
- {
2105
- name: "sigv4",
2106
- signingRegion: "{Region}",
2107
- disableDoubleEncoding: true,
2108
- signingName: "s3",
2109
- },
2110
- ],
2111
- },
2112
- headers: {},
2113
- },
2114
- type: "endpoint",
2115
- },
2116
- {
2117
- conditions: [
2118
- {
2119
- fn: "booleanEquals",
2120
- argv: [
2121
- {
2122
- ref: "UseFIPS",
2123
- },
2124
- false,
2125
- ],
2126
- },
2127
- {
2128
- fn: "booleanEquals",
2129
- argv: [
2130
- {
2131
- ref: "UseDualStack",
2132
- },
2133
- true,
2134
- ],
2135
- },
2136
- {
2137
- fn: "isSet",
2138
- argv: [
2139
- {
2140
- ref: "RequiresAccountId",
2141
- },
2142
- ],
2143
- },
2144
- {
2145
- fn: "booleanEquals",
2146
- argv: [
2147
- {
2148
- ref: "RequiresAccountId",
2149
- },
2150
- true,
2151
- ],
2152
- },
2153
- {
2154
- fn: "isSet",
2155
- argv: [
2156
- {
2157
- ref: "AccountId",
2158
- },
2159
- ],
2160
- },
2161
- ],
2162
- endpoint: {
2163
- url: "https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}",
2164
- properties: {
2165
- authSchemes: [
2166
- {
2167
- name: "sigv4",
2168
- signingRegion: "{Region}",
2169
- disableDoubleEncoding: true,
2170
- signingName: "s3",
2171
- },
2172
- ],
2173
- },
2174
- headers: {},
2175
- },
2176
- type: "endpoint",
2177
- },
2178
- {
2179
- conditions: [
2180
- {
2181
- fn: "booleanEquals",
2182
- argv: [
2183
- {
2184
- ref: "UseFIPS",
2185
- },
2186
- false,
2187
- ],
2188
- },
2189
- {
2190
- fn: "booleanEquals",
2191
- argv: [
2192
- {
2193
- ref: "UseDualStack",
2194
- },
2195
- true,
2196
- ],
2197
- },
2198
- ],
2199
- endpoint: {
2200
- url: "https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}",
2201
- properties: {
2202
- authSchemes: [
2203
- {
2204
- name: "sigv4",
2205
- signingRegion: "{Region}",
2206
- disableDoubleEncoding: true,
2207
- signingName: "s3",
2208
- },
2209
- ],
2210
- },
2211
- headers: {},
2212
- },
2213
- type: "endpoint",
2214
- },
2215
- {
2216
- conditions: [
2217
- {
2218
- fn: "booleanEquals",
2219
- argv: [
2220
- {
2221
- ref: "UseFIPS",
2222
- },
2223
- false,
2224
- ],
2225
- },
2226
- {
2227
- fn: "booleanEquals",
2228
- argv: [
2229
- {
2230
- ref: "UseDualStack",
2231
- },
2232
- false,
2233
- ],
2234
- },
2235
- {
2236
- fn: "isSet",
2237
- argv: [
2238
- {
2239
- ref: "RequiresAccountId",
2240
- },
2241
- ],
2242
- },
2243
- {
2244
- fn: "booleanEquals",
2245
- argv: [
2246
- {
2247
- ref: "RequiresAccountId",
2248
- },
2249
- true,
2250
- ],
2251
- },
2252
- {
2253
- fn: "isSet",
2254
- argv: [
2255
- {
2256
- ref: "AccountId",
2257
- },
2258
- ],
2259
- },
2260
- ],
2261
- endpoint: {
2262
- url: "https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}",
2263
- properties: {
2264
- authSchemes: [
2265
- {
2266
- name: "sigv4",
2267
- signingRegion: "{Region}",
2268
- disableDoubleEncoding: true,
2269
- signingName: "s3",
2270
- },
2271
- ],
2272
- },
2273
- headers: {},
2274
- },
2275
- type: "endpoint",
2276
- },
2277
- {
2278
- conditions: [
2279
- {
2280
- fn: "booleanEquals",
2281
- argv: [
2282
- {
2283
- ref: "UseFIPS",
2284
- },
2285
- false,
2286
- ],
2287
- },
2288
- {
2289
- fn: "booleanEquals",
2290
- argv: [
2291
- {
2292
- ref: "UseDualStack",
2293
- },
2294
- false,
2295
- ],
2296
- },
2297
- ],
2298
- endpoint: {
2299
- url: "https://s3-control.{Region}.{partitionResult#dnsSuffix}",
2300
- properties: {
2301
- authSchemes: [
2302
- {
2303
- name: "sigv4",
2304
- signingRegion: "{Region}",
2305
- disableDoubleEncoding: true,
2306
- signingName: "s3",
2307
- },
2308
- ],
2309
- },
2310
- headers: {},
2311
- },
2312
- type: "endpoint",
2313
- },
2314
- ],
2315
- },
2316
- ],
2317
- },
2318
- ],
2319
- },
2320
- ],
2321
- },
2322
- ],
2323
- },
2324
- ],
2325
- },
2326
- {
2327
- conditions: [],
2328
- error: "Invalid region: region was not a valid DNS name.",
2329
- type: "error",
2330
- },
2331
- ],
2332
- },
2333
- ],
2334
- },
2335
- {
2336
- conditions: [],
2337
- error: "A valid partition could not be determined",
2338
- type: "error",
2339
- },
2340
- ],
2341
- },
2342
- ],
2343
- },
2344
- ],
2345
- },
2346
- {
2347
- conditions: [],
2348
- error: "Region must be set",
2349
- type: "error",
2350
- },
2351
- ],
2352
- },
2353
- ],
2354
- };
4
+ const aA = "required", aB = "type", aC = "conditions", aD = "fn", aE = "argv", aF = "ref", aG = "assign", aH = "authSchemes", aI = "name", aJ = "signingRegion", aK = "disableDoubleEncoding", aL = "signingName", aM = "x-amz-account-id", aN = "x-amz-outpost-id";
5
+ const a = false, b = true, c = "tree", d = "isSet", e = "aws.partition", f = "stringEquals", g = "getAttr", h = "error", i = "not", j = "isValidHostLabel", k = "{url#scheme}://{url#authority}{url#path}", l = "{Region}", m = "s3-outposts", n = "endpoint", o = "aws.parseArn", p = "accessPointArn", q = "resourceId[0]", r = "arnType", s = "service", t = "resourceId[1]", u = "outpostId", v = "arnPartition", w = "{accessPointArn#accountId}", x = "resourceId[2]", y = "outpostType", z = "resourceId[3]", A = "bucketArn", B = "{bucketArn#accountId}", C = { [aA]: false, [aB]: "String" }, D = { [aA]: true, "default": false, [aB]: "Boolean" }, E = { [aA]: false, [aB]: "Boolean" }, F = { [aF]: "OutpostId" }, G = { [aC]: [{ [aD]: "booleanEquals", [aE]: [{ [aF]: "UseFIPS" }, true] }, { [aD]: f, [aE]: [{ [aD]: g, [aE]: [{ [aF]: "partitionResult" }, "name"] }, "aws-cn"] }], [h]: "Partition does not support FIPS", [aB]: h }, H = { [aD]: "booleanEquals", [aE]: [{ [aF]: "UseFIPS" }, true] }, I = { [aC]: [{ [aD]: d, [aE]: [{ [aF]: "RequiresAccountId" }] }, { [aD]: "booleanEquals", [aE]: [{ [aF]: "RequiresAccountId" }, true] }, { [aD]: i, [aE]: [{ [aD]: d, [aE]: [{ [aF]: "AccountId" }] }] }], [h]: "AccountId is required but not set", [aB]: h }, J = { [aD]: d, [aE]: [{ [aF]: "RequiresAccountId" }] }, K = { [aD]: "booleanEquals", [aE]: [{ [aF]: "RequiresAccountId" }, true] }, L = { [aD]: d, [aE]: [{ [aF]: "AccountId" }] }, M = { [aF]: "AccountId" }, N = { [aC]: [L, { [aD]: i, [aE]: [{ [aD]: j, [aE]: [M, false] }] }], [h]: "AccountId must only contain a-z, A-Z, 0-9 and `-`.", [aB]: h }, O = { [aD]: "booleanEquals", [aE]: [{ [aF]: "UseDualStack" }, true] }, P = { [aH]: [{ [aI]: "sigv4", [aJ]: l, [aK]: true, [aL]: m }] }, Q = {}, R = { [h]: "Invalid region: region was not a valid DNS name.", [aB]: h }, S = { [h]: "A valid partition could not be determined", [aB]: h }, T = { [aF]: p }, U = { [aD]: i, [aE]: [{ [aD]: f, [aE]: [{ [aF]: r }, ""] }] }, V = { [aD]: d, [aE]: [{ [aF]: "UseArnRegion" }] }, W = { [aD]: "booleanEquals", [aE]: [{ [aF]: "UseArnRegion" }, false] }, X = { [aD]: g, [aE]: [T, "region"] }, Y = { [aD]: g, [aE]: [T, "accountId"] }, Z = { [aF]: y }, aa = { [aH]: [{ [aI]: "sigv4", [aJ]: "{accessPointArn#region}", [aK]: true, [aL]: m }] }, ab = { [aM]: [w], [aN]: ["{outpostId}"] }, ac = { [h]: "Invalid ARN: Expected a 4-component resource", [aB]: h }, ad = { [h]: "Invalid ARN: missing account ID", [aB]: h }, ae = { [h]: "Client was configured for partition `{partitionResult#name}` but ARN has `{arnPartition#name}`", [aB]: h }, af = { [h]: "Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`., found: `{outpostId}`", [aB]: h }, ag = { [h]: "Invalid ARN: The Outpost Id was not set", [aB]: h }, ah = { [h]: "Invalid ARN: No ARN type specified", [aB]: h }, ai = { [aF]: A }, aj = { [aD]: g, [aE]: [ai, "region"] }, ak = { [aD]: g, [aE]: [ai, "accountId"] }, al = { [aH]: [{ [aI]: "sigv4", [aJ]: "{bucketArn#region}", [aK]: true, [aL]: m }] }, am = { [aM]: [B], [aN]: ["{outpostId}"] }, an = { [aH]: [{ [aI]: "sigv4", [aJ]: l, [aK]: true, [aL]: "s3" }] }, ao = { [aD]: "booleanEquals", [aE]: [{ [aF]: "UseDualStack" }, false] }, ap = { [aD]: "booleanEquals", [aE]: [{ [aF]: "UseFIPS" }, false] }, aq = [{ [aF]: "Region" }], ar = [{ [aD]: e, [aE]: aq, [aG]: "partitionResult" }], as = [{ [aD]: j, [aE]: [{ [aF]: "Region" }, true] }], at = [O], au = [{ [aD]: d, [aE]: [{ [aF]: "Endpoint" }] }, { [aD]: "parseURL", [aE]: [{ [aF]: "Endpoint" }], [aG]: "url" }], av = [H], aw = [{ [aF]: "AccessPointName" }], ax = [{ [aD]: j, [aE]: [{ [aF]: u }, false] }], ay = [{ [aD]: f, [aE]: [{ [aD]: g, [aE]: [{ [aF]: v }, "name"] }, { [aD]: g, [aE]: [{ [aF]: "partitionResult" }, "name"] }] }], az = [{ [aF]: "Bucket" }];
6
+ const _data = { version: "1.0", parameters: { Region: C, UseFIPS: D, UseDualStack: D, Endpoint: C, AccountId: C, RequiresAccountId: E, OutpostId: C, Bucket: C, AccessPointName: C, UseArnRegion: E }, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: d, [aE]: aq }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: d, [aE]: [F] }], [aB]: c, rules: [{ [aC]: ar, [aB]: c, rules: [{ [aB]: c, rules: [G, { [aB]: c, rules: [I, { [aB]: c, rules: [N, { [aB]: c, rules: [{ [aC]: [{ [aD]: i, [aE]: [{ [aD]: j, [aE]: [F, a] }] }], error: "OutpostId must only contain a-z, A-Z, 0-9 and `-`.", [aB]: h }, { [aB]: c, rules: [{ [aC]: as, [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: at, error: "Invalid configuration: Outposts do not support dual-stack", [aB]: h }, { [aB]: c, rules: [{ [aC]: au, endpoint: { url: k, properties: P, headers: Q }, [aB]: n }, { [aC]: av, endpoint: { url: "https://s3-outposts-fips.{Region}.{partitionResult#dnsSuffix}", properties: P, headers: Q }, [aB]: n }, { endpoint: { url: "https://s3-outposts.{Region}.{partitionResult#dnsSuffix}", properties: P, headers: Q }, [aB]: n }] }] }] }, R] }] }] }] }] }] }, S] }, { [aC]: [{ [aD]: d, [aE]: aw }, { [aD]: o, [aE]: aw, [aG]: p }], [aB]: c, rules: [{ [aC]: [{ [aD]: g, [aE]: [T, q], [aG]: r }, U], [aB]: c, rules: [{ [aC]: [{ [aD]: f, [aE]: [{ [aD]: g, [aE]: [T, s] }, m] }], [aB]: c, rules: [{ [aC]: at, error: "Invalid configuration: Outpost Access Points do not support dual-stack", [aB]: h }, { [aB]: c, rules: [{ [aC]: [{ [aD]: g, [aE]: [T, t], [aG]: u }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: ax, [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [V, W, { [aD]: i, [aE]: [{ [aD]: f, [aE]: [X, l] }] }], error: "Invalid configuration: region from ARN `{accessPointArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [aB]: h }, { [aB]: c, rules: [{ [aC]: ar, [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: e, [aE]: [X], [aG]: v }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: ay, [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: j, [aE]: [X, b] }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: i, [aE]: [{ [aD]: f, [aE]: [Y, ""] }] }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: j, [aE]: [Y, a] }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [L, { [aD]: i, [aE]: [{ [aD]: f, [aE]: [M, w] }] }], error: "Invalid ARN: the accountId specified in the ARN (`{accessPointArn#accountId}`) does not match the parameter (`{AccountId}`)", [aB]: h }, { [aB]: c, rules: [{ [aC]: [{ [aD]: g, [aE]: [T, x], [aG]: y }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: g, [aE]: [T, z], [aG]: "accessPointName" }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: f, [aE]: [Z, "accesspoint"] }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: av, endpoint: { url: "https://s3-outposts-fips.{accessPointArn#region}.{arnPartition#dnsSuffix}", properties: aa, headers: ab }, [aB]: n }, { [aC]: au, endpoint: { url: k, properties: aa, headers: ab }, [aB]: n }, { endpoint: { url: "https://s3-outposts.{accessPointArn#region}.{arnPartition#dnsSuffix}", properties: aa, headers: ab }, [aB]: n }] }] }, { error: "Expected an outpost type `accesspoint`, found `{outpostType}`", [aB]: h }] }] }, { error: "Invalid ARN: expected an access point name", [aB]: h }] }] }, ac] }] }] }, { error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointArn#accountId}`", [aB]: h }] }] }, ad] }] }, { error: "Invalid region in ARN: `{accessPointArn#region}` (invalid DNS name)", [aB]: h }] }] }, ae] }] }, { error: "Could not load partition for ARN region `{accessPointArn#region}`", [aB]: h }] }] }, S] }] }] }, af] }] }, ag] }] }] }, ah] }, { [aC]: [{ [aD]: d, [aE]: az }, { [aD]: o, [aE]: az, [aG]: A }], [aB]: c, rules: [{ [aC]: [{ [aD]: g, [aE]: [ai, q], [aG]: r }, U], [aB]: c, rules: [{ [aC]: [{ [aD]: f, [aE]: [{ [aD]: g, [aE]: [ai, s] }, m] }], [aB]: c, rules: [{ [aC]: at, error: "Invalid configuration: Outpost buckets do not support dual-stack", [aB]: h }, { [aB]: c, rules: [{ [aC]: [{ [aD]: g, [aE]: [ai, t], [aG]: u }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: ax, [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [V, W, { [aD]: i, [aE]: [{ [aD]: f, [aE]: [aj, l] }] }], error: "Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`", [aB]: h }, { [aB]: c, rules: [{ [aC]: [{ [aD]: e, [aE]: [aj], [aG]: v }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: ar, [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: ay, [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: j, [aE]: [aj, b] }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: i, [aE]: [{ [aD]: f, [aE]: [ak, ""] }] }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: j, [aE]: [ak, a] }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [L, { [aD]: i, [aE]: [{ [aD]: f, [aE]: [M, B] }] }], error: "Invalid ARN: the accountId specified in the ARN (`{bucketArn#accountId}`) does not match the parameter (`{AccountId}`)", [aB]: h }, { [aB]: c, rules: [{ [aC]: [{ [aD]: g, [aE]: [ai, x], [aG]: y }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: g, [aE]: [ai, z], [aG]: "bucketName" }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: [{ [aD]: f, [aE]: [Z, "bucket"] }], [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: av, endpoint: { url: "https://s3-outposts-fips.{bucketArn#region}.{arnPartition#dnsSuffix}", properties: al, headers: am }, [aB]: n }, { [aC]: au, endpoint: { url: k, properties: al, headers: am }, [aB]: n }, { endpoint: { url: "https://s3-outposts.{bucketArn#region}.{arnPartition#dnsSuffix}", properties: al, headers: am }, [aB]: n }] }] }, { error: "Invalid ARN: Expected an outpost type `bucket`, found `{outpostType}`", [aB]: h }] }] }, { error: "Invalid ARN: expected a bucket name", [aB]: h }] }] }, ac] }] }] }, { error: "Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`", [aB]: h }] }] }, ad] }] }, { error: "Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)", [aB]: h }] }] }, ae] }] }, S] }] }, { error: "Could not load partition for ARN region `{bucketArn#region}`", [aB]: h }] }] }] }, af] }] }, ag] }] }] }, ah] }, { [aB]: c, rules: [{ [aC]: ar, [aB]: c, rules: [{ [aB]: c, rules: [{ [aC]: as, [aB]: c, rules: [{ [aB]: c, rules: [G, { [aB]: c, rules: [I, { [aB]: c, rules: [N, { [aB]: c, rules: [{ [aC]: au, [aB]: c, rules: [{ [aC]: at, error: "Invalid Configuration: Dualstack and custom endpoint are not supported", [aB]: h }, { [aB]: c, rules: [{ [aC]: [J, K, L], endpoint: { url: "{url#scheme}://{AccountId}.{url#authority}{url#path}", properties: an, headers: Q }, [aB]: n }, { endpoint: { url: k, properties: an, headers: Q }, [aB]: n }] }] }, { [aB]: c, rules: [{ [aC]: [H, O, J, K, L], endpoint: { url: "https://{AccountId}.s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: an, headers: Q }, [aB]: n }, { [aC]: [H, O], endpoint: { url: "https://s3-control-fips.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: an, headers: Q }, [aB]: n }, { [aC]: [H, ao, J, K, L], endpoint: { url: "https://{AccountId}.s3-control-fips.{Region}.{partitionResult#dnsSuffix}", properties: an, headers: Q }, [aB]: n }, { [aC]: [H, ao], endpoint: { url: "https://s3-control-fips.{Region}.{partitionResult#dnsSuffix}", properties: an, headers: Q }, [aB]: n }, { [aC]: [ap, O, J, K, L], endpoint: { url: "https://{AccountId}.s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: an, headers: Q }, [aB]: n }, { [aC]: [ap, O], endpoint: { url: "https://s3-control.dualstack.{Region}.{partitionResult#dnsSuffix}", properties: an, headers: Q }, [aB]: n }, { [aC]: [ap, ao, J, K, L], endpoint: { url: "https://{AccountId}.s3-control.{Region}.{partitionResult#dnsSuffix}", properties: an, headers: Q }, [aB]: n }, { [aC]: [ap, ao], endpoint: { url: "https://s3-control.{Region}.{partitionResult#dnsSuffix}", properties: an, headers: Q }, [aB]: n }] }] }] }] }] }] }, R] }] }, S] }] }] }, { error: "Region must be set", [aB]: h }] }] };
7
+ exports.ruleSet = _data;