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