@mapbox/cloudfriend 9.2.0 → 9.3.1

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.
Files changed (139) hide show
  1. package/.claude/settings.local.json +8 -0
  2. package/.idea/cloudfriend.iml +9 -0
  3. package/.idea/codeStyles/Project.xml +7 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  6. package/.idea/misc.xml +6 -0
  7. package/.idea/modules.xml +8 -0
  8. package/.idea/vcs.xml +6 -0
  9. package/.nyc_output/6686e513-03b6-415d-9b8b-0fcde7a4e430.json +1 -0
  10. package/.nyc_output/f58a557c-a1c0-4dcc-83c5-bbca4d01baf9.json +1 -0
  11. package/.nyc_output/processinfo/6686e513-03b6-415d-9b8b-0fcde7a4e430.json +1 -0
  12. package/.nyc_output/processinfo/f58a557c-a1c0-4dcc-83c5-bbca4d01baf9.json +1 -0
  13. package/.nyc_output/processinfo/index.json +1 -1
  14. package/cfniceberg_createtable.yaml +71 -0
  15. package/changelog.md +8 -0
  16. package/coverage/clover.xml +630 -0
  17. package/coverage/coverage-final.json +33 -0
  18. package/coverage/lcov-report/base.css +224 -0
  19. package/coverage/lcov-report/block-navigation.js +87 -0
  20. package/coverage/lcov-report/cloudfriend/bin/build-template.js.html +130 -0
  21. package/coverage/lcov-report/cloudfriend/bin/index.html +131 -0
  22. package/coverage/lcov-report/cloudfriend/bin/validate-template.js.html +142 -0
  23. package/coverage/lcov-report/cloudfriend/index.html +116 -0
  24. package/coverage/lcov-report/cloudfriend/index.js.html +307 -0
  25. package/coverage/lcov-report/cloudfriend/lib/build.js.html +217 -0
  26. package/coverage/lcov-report/cloudfriend/lib/conditions.js.html +430 -0
  27. package/coverage/lcov-report/cloudfriend/lib/index.html +206 -0
  28. package/coverage/lcov-report/cloudfriend/lib/intrinsic.js.html +979 -0
  29. package/coverage/lcov-report/cloudfriend/lib/merge.js.html +478 -0
  30. package/coverage/lcov-report/cloudfriend/lib/pseudo.js.html +370 -0
  31. package/coverage/lcov-report/cloudfriend/lib/rules.js.html +349 -0
  32. package/coverage/lcov-report/cloudfriend/lib/shortcuts/cross-account-role.js.html +244 -0
  33. package/coverage/lcov-report/cloudfriend/lib/shortcuts/event-lambda.js.html +367 -0
  34. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-database.js.html +286 -0
  35. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-iceberg-table.js.html +646 -0
  36. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-json-table.js.html +235 -0
  37. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-orc-table.js.html +226 -0
  38. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-parquet-table.js.html +268 -0
  39. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-presto-view.js.html +358 -0
  40. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-spark-view.js.html +241 -0
  41. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-table.js.html +481 -0
  42. package/coverage/lcov-report/cloudfriend/lib/shortcuts/hookshot.js.html +1504 -0
  43. package/coverage/lcov-report/cloudfriend/lib/shortcuts/index.html +431 -0
  44. package/coverage/lcov-report/cloudfriend/lib/shortcuts/index.js.html +157 -0
  45. package/coverage/lcov-report/cloudfriend/lib/shortcuts/kinesis-firehose-base.js.html +418 -0
  46. package/coverage/lcov-report/cloudfriend/lib/shortcuts/lambda.js.html +832 -0
  47. package/coverage/lcov-report/cloudfriend/lib/shortcuts/log-subscription-lambda.js.html +310 -0
  48. package/coverage/lcov-report/cloudfriend/lib/shortcuts/queue-lambda.js.html +364 -0
  49. package/coverage/lcov-report/cloudfriend/lib/shortcuts/queue.js.html +619 -0
  50. package/coverage/lcov-report/cloudfriend/lib/shortcuts/role.js.html +382 -0
  51. package/coverage/lcov-report/cloudfriend/lib/shortcuts/s3-kinesis-firehose.js.html +568 -0
  52. package/coverage/lcov-report/cloudfriend/lib/shortcuts/scheduled-lambda.js.html +490 -0
  53. package/coverage/lcov-report/cloudfriend/lib/shortcuts/service-role.js.html +307 -0
  54. package/coverage/lcov-report/cloudfriend/lib/shortcuts/stream-lambda.js.html +493 -0
  55. package/coverage/lcov-report/cloudfriend/lib/validate.js.html +154 -0
  56. package/coverage/lcov-report/favicon.png +0 -0
  57. package/coverage/lcov-report/index.html +161 -0
  58. package/coverage/lcov-report/prettify.css +1 -0
  59. package/coverage/lcov-report/prettify.js +2 -0
  60. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  61. package/coverage/lcov-report/sorter.js +210 -0
  62. package/coverage/lcov.info +1319 -0
  63. package/jest.config.js +14 -0
  64. package/lib/shortcuts/api.md +37 -0
  65. package/lib/shortcuts/glue-iceberg-table.js +187 -0
  66. package/lib/shortcuts/index.js +1 -0
  67. package/package.json +15 -13
  68. package/readme.md +1 -1
  69. package/requirements.dev.txt +2 -2
  70. package/test/bin.test.js +18 -14
  71. package/test/fixtures/shortcuts/cross-account-role-defaults.json +1 -1
  72. package/test/fixtures/shortcuts/cross-account-role-no-defaults.json +1 -1
  73. package/test/fixtures/shortcuts/event-lambda-defaults.json +1 -1
  74. package/test/fixtures/shortcuts/event-lambda-full.json +1 -1
  75. package/test/fixtures/shortcuts/firehose-defaults.json +1 -1
  76. package/test/fixtures/shortcuts/firehose-with-stream.json +1 -1
  77. package/test/fixtures/shortcuts/glue-database-defaults.json +1 -1
  78. package/test/fixtures/shortcuts/glue-database-no-defaults.json +1 -1
  79. package/test/fixtures/shortcuts/glue-iceberg-table-defaults.json +41 -0
  80. package/test/fixtures/shortcuts/glue-iceberg-table-no-defaults.json +39 -0
  81. package/test/fixtures/shortcuts/glue-iceberg-table-with-all-optimizers.json +101 -0
  82. package/test/fixtures/shortcuts/glue-iceberg-table-with-both-optimizers.json +80 -0
  83. package/test/fixtures/shortcuts/glue-iceberg-table-with-compaction-custom.json +68 -0
  84. package/test/fixtures/shortcuts/glue-iceberg-table-with-compaction-defaults.json +57 -0
  85. package/test/fixtures/shortcuts/glue-iceberg-table-with-optimizer-custom.json +75 -0
  86. package/test/fixtures/shortcuts/glue-iceberg-table-with-optimizer-defaults.json +64 -0
  87. package/test/fixtures/shortcuts/glue-iceberg-table-with-orphan-deletion-custom.json +74 -0
  88. package/test/fixtures/shortcuts/glue-iceberg-table-with-orphan-deletion-defaults.json +62 -0
  89. package/test/fixtures/shortcuts/glue-json-table-defaults.json +1 -1
  90. package/test/fixtures/shortcuts/glue-json-table-no-defaults.json +1 -1
  91. package/test/fixtures/shortcuts/glue-orc-table-defaults.json +1 -1
  92. package/test/fixtures/shortcuts/glue-orc-table-no-defaults.json +1 -1
  93. package/test/fixtures/shortcuts/glue-parquet-table-defaults.json +1 -1
  94. package/test/fixtures/shortcuts/glue-parquet-table-no-defaults.json +1 -1
  95. package/test/fixtures/shortcuts/glue-table-defaults.json +1 -1
  96. package/test/fixtures/shortcuts/glue-table-no-defaults.json +1 -1
  97. package/test/fixtures/shortcuts/glue-view-defaults.json +1 -1
  98. package/test/fixtures/shortcuts/glue-view-no-defaults.json +1 -1
  99. package/test/fixtures/shortcuts/hookshot-github-secret-ref.json +1 -1
  100. package/test/fixtures/shortcuts/hookshot-github-secret-string.json +1 -1
  101. package/test/fixtures/shortcuts/hookshot-github.json +1 -1
  102. package/test/fixtures/shortcuts/hookshot-passthrough-access-log-format.json +1 -1
  103. package/test/fixtures/shortcuts/hookshot-passthrough-alarms.json +1 -1
  104. package/test/fixtures/shortcuts/hookshot-passthrough-enhanced-logging.json +1 -1
  105. package/test/fixtures/shortcuts/hookshot-passthrough-full-blown-logging.json +1 -1
  106. package/test/fixtures/shortcuts/hookshot-passthrough-logging.json +1 -1
  107. package/test/fixtures/shortcuts/hookshot-passthrough.json +1 -1
  108. package/test/fixtures/shortcuts/lambda-defaults.json +1 -1
  109. package/test/fixtures/shortcuts/lambda-docker.json +1 -1
  110. package/test/fixtures/shortcuts/lambda-full.json +1 -1
  111. package/test/fixtures/shortcuts/lambda-provided-role.json +1 -1
  112. package/test/fixtures/shortcuts/lambda-zipfile.json +1 -1
  113. package/test/fixtures/shortcuts/log-subscription-lambda-defaults.json +1 -1
  114. package/test/fixtures/shortcuts/log-subscription-lambda-no-defaults.json +1 -1
  115. package/test/fixtures/shortcuts/queue-defaults.json +1 -1
  116. package/test/fixtures/shortcuts/queue-external-topic-ref.json +1 -1
  117. package/test/fixtures/shortcuts/queue-external-topic.json +1 -1
  118. package/test/fixtures/shortcuts/queue-fifo-queuename.json +1 -1
  119. package/test/fixtures/shortcuts/queue-fifo.json +1 -1
  120. package/test/fixtures/shortcuts/queue-full.json +1 -1
  121. package/test/fixtures/shortcuts/queue-lambda-zero.json +1 -1
  122. package/test/fixtures/shortcuts/queue-lambda.json +1 -1
  123. package/test/fixtures/shortcuts/role-defaults.json +1 -1
  124. package/test/fixtures/shortcuts/role-no-defaults.json +1 -1
  125. package/test/fixtures/shortcuts/scheduled-lambda-defaults.json +1 -1
  126. package/test/fixtures/shortcuts/scheduled-lambda-full.json +1 -1
  127. package/test/fixtures/shortcuts/service-role-defaults.json +1 -1
  128. package/test/fixtures/shortcuts/service-role-no-defaults.json +1 -1
  129. package/test/fixtures/shortcuts/service-role-no-url-suffix.json +1 -1
  130. package/test/fixtures/shortcuts/service-role-url-suffix-with-replacement.json +1 -1
  131. package/test/fixtures/shortcuts/service-role-url-suffix.json +1 -1
  132. package/test/fixtures/shortcuts/stream-lambda-defaults.json +1 -1
  133. package/test/fixtures/shortcuts/stream-lambda-no-defaults.json +1 -1
  134. package/test/index.test.js +383 -235
  135. package/test/shortcuts.test.js +1523 -1483
  136. package/.nyc_output/2b544c0b-2830-4ad0-97cd-8e661710b0bb.json +0 -1
  137. package/.nyc_output/65e58b48-bf1c-412d-8dd4-d7b564b12d76.json +0 -1
  138. package/.nyc_output/processinfo/2b544c0b-2830-4ad0-97cd-8e661710b0bb.json +0 -1
  139. package/.nyc_output/processinfo/65e58b48-bf1c-412d-8dd4-d7b564b12d76.json +0 -1
@@ -0,0 +1,80 @@
1
+ {
2
+ "AWSTemplateFormatVersion": "2010-09-09",
3
+ "Metadata": {},
4
+ "Parameters": {},
5
+ "Rules": {},
6
+ "Mappings": {},
7
+ "Conditions": {},
8
+ "Resources": {
9
+ "MyTable": {
10
+ "Type": "AWS::Glue::Table",
11
+ "Properties": {
12
+ "CatalogId": {
13
+ "Ref": "AWS::AccountId"
14
+ },
15
+ "DatabaseName": "my_database",
16
+ "Name": "my_table",
17
+ "OpenTableFormatInput": {
18
+ "IcebergInput": {
19
+ "MetadataOperation": "CREATE",
20
+ "Version": "2",
21
+ "IcebergTableInput": {
22
+ "Location": "s3://fake/location",
23
+ "Schema": {
24
+ "Type": "struct",
25
+ "Fields": [
26
+ {
27
+ "Name": "column",
28
+ "Type": "string",
29
+ "Id": 1,
30
+ "Required": true
31
+ }
32
+ ]
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
38
+ },
39
+ "MyTableRetentionOptimizer": {
40
+ "Type": "AWS::Glue::TableOptimizer",
41
+ "DependsOn": "MyTable",
42
+ "Properties": {
43
+ "CatalogId": {
44
+ "Ref": "AWS::AccountId"
45
+ },
46
+ "DatabaseName": "my_database",
47
+ "TableName": "my_table",
48
+ "Type": "retention",
49
+ "TableOptimizerConfiguration": {
50
+ "RoleArn": "arn:aws:iam::123456789012:role/RetentionRole",
51
+ "Enabled": true,
52
+ "RetentionConfiguration": {
53
+ "IcebergConfiguration": {
54
+ "SnapshotRetentionPeriodInDays": 5,
55
+ "NumberOfSnapshotsToRetain": 1,
56
+ "CleanExpiredFiles": true
57
+ }
58
+ }
59
+ }
60
+ }
61
+ },
62
+ "MyTableCompactionOptimizer": {
63
+ "Type": "AWS::Glue::TableOptimizer",
64
+ "DependsOn": "MyTable",
65
+ "Properties": {
66
+ "CatalogId": {
67
+ "Ref": "AWS::AccountId"
68
+ },
69
+ "DatabaseName": "my_database",
70
+ "TableName": "my_table",
71
+ "Type": "compaction",
72
+ "TableOptimizerConfiguration": {
73
+ "RoleArn": "arn:aws:iam::123456789012:role/CompactionRole",
74
+ "Enabled": true
75
+ }
76
+ }
77
+ }
78
+ },
79
+ "Outputs": {}
80
+ }
@@ -0,0 +1,68 @@
1
+ {
2
+ "AWSTemplateFormatVersion": "2010-09-09",
3
+ "Metadata": {},
4
+ "Parameters": {},
5
+ "Rules": {},
6
+ "Mappings": {},
7
+ "Conditions": {},
8
+ "Resources": {
9
+ "CompactionRole": {
10
+ "Type": "AWS::IAM::Role",
11
+ "Properties": {
12
+ "AssumeRolePolicyDocument": {}
13
+ }
14
+ },
15
+ "MyTable": {
16
+ "Type": "AWS::Glue::Table",
17
+ "Properties": {
18
+ "CatalogId": {
19
+ "Ref": "AWS::AccountId"
20
+ },
21
+ "DatabaseName": "my_database",
22
+ "Name": "my_table",
23
+ "OpenTableFormatInput": {
24
+ "IcebergInput": {
25
+ "MetadataOperation": "CREATE",
26
+ "Version": "2",
27
+ "IcebergTableInput": {
28
+ "Location": "s3://fake/location",
29
+ "Schema": {
30
+ "Type": "struct",
31
+ "Fields": [
32
+ {
33
+ "Name": "column",
34
+ "Type": "string",
35
+ "Id": 1,
36
+ "Required": true
37
+ }
38
+ ]
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+ },
45
+ "MyTableCompactionOptimizer": {
46
+ "Type": "AWS::Glue::TableOptimizer",
47
+ "DependsOn": "MyTable",
48
+ "Properties": {
49
+ "CatalogId": {
50
+ "Ref": "AWS::AccountId"
51
+ },
52
+ "DatabaseName": "my_database",
53
+ "TableName": "my_table",
54
+ "Type": "compaction",
55
+ "TableOptimizerConfiguration": {
56
+ "RoleArn": {
57
+ "Fn::GetAtt": [
58
+ "CompactionRole",
59
+ "Arn"
60
+ ]
61
+ },
62
+ "Enabled": true
63
+ }
64
+ }
65
+ }
66
+ },
67
+ "Outputs": {}
68
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "AWSTemplateFormatVersion": "2010-09-09",
3
+ "Metadata": {},
4
+ "Parameters": {},
5
+ "Rules": {},
6
+ "Mappings": {},
7
+ "Conditions": {},
8
+ "Resources": {
9
+ "MyTable": {
10
+ "Type": "AWS::Glue::Table",
11
+ "Properties": {
12
+ "CatalogId": {
13
+ "Ref": "AWS::AccountId"
14
+ },
15
+ "DatabaseName": "my_database",
16
+ "Name": "my_table",
17
+ "OpenTableFormatInput": {
18
+ "IcebergInput": {
19
+ "MetadataOperation": "CREATE",
20
+ "Version": "2",
21
+ "IcebergTableInput": {
22
+ "Location": "s3://fake/location",
23
+ "Schema": {
24
+ "Type": "struct",
25
+ "Fields": [
26
+ {
27
+ "Name": "column",
28
+ "Type": "string",
29
+ "Id": 1,
30
+ "Required": true
31
+ }
32
+ ]
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
38
+ },
39
+ "MyTableCompactionOptimizer": {
40
+ "Type": "AWS::Glue::TableOptimizer",
41
+ "DependsOn": "MyTable",
42
+ "Properties": {
43
+ "CatalogId": {
44
+ "Ref": "AWS::AccountId"
45
+ },
46
+ "DatabaseName": "my_database",
47
+ "TableName": "my_table",
48
+ "Type": "compaction",
49
+ "TableOptimizerConfiguration": {
50
+ "RoleArn": "arn:aws:iam::123456789012:role/CompactionRole",
51
+ "Enabled": true
52
+ }
53
+ }
54
+ }
55
+ },
56
+ "Outputs": {}
57
+ }
@@ -0,0 +1,75 @@
1
+ {
2
+ "AWSTemplateFormatVersion": "2010-09-09",
3
+ "Metadata": {},
4
+ "Parameters": {},
5
+ "Rules": {},
6
+ "Mappings": {},
7
+ "Conditions": {},
8
+ "Resources": {
9
+ "OptimizerRole": {
10
+ "Type": "AWS::IAM::Role",
11
+ "Properties": {
12
+ "AssumeRolePolicyDocument": {}
13
+ }
14
+ },
15
+ "MyTable": {
16
+ "Type": "AWS::Glue::Table",
17
+ "Properties": {
18
+ "CatalogId": {
19
+ "Ref": "AWS::AccountId"
20
+ },
21
+ "DatabaseName": "my_database",
22
+ "Name": "my_table",
23
+ "OpenTableFormatInput": {
24
+ "IcebergInput": {
25
+ "MetadataOperation": "CREATE",
26
+ "Version": "2",
27
+ "IcebergTableInput": {
28
+ "Location": "s3://fake/location",
29
+ "Schema": {
30
+ "Type": "struct",
31
+ "Fields": [
32
+ {
33
+ "Name": "column",
34
+ "Type": "string",
35
+ "Id": 1,
36
+ "Required": true
37
+ }
38
+ ]
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+ },
45
+ "MyTableRetentionOptimizer": {
46
+ "Type": "AWS::Glue::TableOptimizer",
47
+ "DependsOn": "MyTable",
48
+ "Properties": {
49
+ "CatalogId": {
50
+ "Ref": "AWS::AccountId"
51
+ },
52
+ "DatabaseName": "my_database",
53
+ "TableName": "my_table",
54
+ "Type": "retention",
55
+ "TableOptimizerConfiguration": {
56
+ "RoleArn": {
57
+ "Fn::GetAtt": [
58
+ "OptimizerRole",
59
+ "Arn"
60
+ ]
61
+ },
62
+ "Enabled": true,
63
+ "RetentionConfiguration": {
64
+ "IcebergConfiguration": {
65
+ "SnapshotRetentionPeriodInDays": 7,
66
+ "NumberOfSnapshotsToRetain": 3,
67
+ "CleanExpiredFiles": false
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ },
74
+ "Outputs": {}
75
+ }
@@ -0,0 +1,64 @@
1
+ {
2
+ "AWSTemplateFormatVersion": "2010-09-09",
3
+ "Metadata": {},
4
+ "Parameters": {},
5
+ "Rules": {},
6
+ "Mappings": {},
7
+ "Conditions": {},
8
+ "Resources": {
9
+ "MyTable": {
10
+ "Type": "AWS::Glue::Table",
11
+ "Properties": {
12
+ "CatalogId": {
13
+ "Ref": "AWS::AccountId"
14
+ },
15
+ "DatabaseName": "my_database",
16
+ "Name": "my_table",
17
+ "OpenTableFormatInput": {
18
+ "IcebergInput": {
19
+ "MetadataOperation": "CREATE",
20
+ "Version": "2",
21
+ "IcebergTableInput": {
22
+ "Location": "s3://fake/location",
23
+ "Schema": {
24
+ "Type": "struct",
25
+ "Fields": [
26
+ {
27
+ "Name": "column",
28
+ "Type": "string",
29
+ "Id": 1,
30
+ "Required": true
31
+ }
32
+ ]
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
38
+ },
39
+ "MyTableRetentionOptimizer": {
40
+ "Type": "AWS::Glue::TableOptimizer",
41
+ "DependsOn": "MyTable",
42
+ "Properties": {
43
+ "CatalogId": {
44
+ "Ref": "AWS::AccountId"
45
+ },
46
+ "DatabaseName": "my_database",
47
+ "TableName": "my_table",
48
+ "Type": "retention",
49
+ "TableOptimizerConfiguration": {
50
+ "RoleArn": "arn:aws:iam::123456789012:role/OptimizerRole",
51
+ "Enabled": true,
52
+ "RetentionConfiguration": {
53
+ "IcebergConfiguration": {
54
+ "SnapshotRetentionPeriodInDays": 5,
55
+ "NumberOfSnapshotsToRetain": 1,
56
+ "CleanExpiredFiles": true
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
63
+ "Outputs": {}
64
+ }
@@ -0,0 +1,74 @@
1
+ {
2
+ "AWSTemplateFormatVersion": "2010-09-09",
3
+ "Metadata": {},
4
+ "Parameters": {},
5
+ "Rules": {},
6
+ "Mappings": {},
7
+ "Conditions": {},
8
+ "Resources": {
9
+ "OrphanFileDeletionRole": {
10
+ "Type": "AWS::IAM::Role",
11
+ "Properties": {
12
+ "AssumeRolePolicyDocument": {}
13
+ }
14
+ },
15
+ "MyTable": {
16
+ "Type": "AWS::Glue::Table",
17
+ "Properties": {
18
+ "CatalogId": {
19
+ "Ref": "AWS::AccountId"
20
+ },
21
+ "DatabaseName": "my_database",
22
+ "Name": "my_table",
23
+ "OpenTableFormatInput": {
24
+ "IcebergInput": {
25
+ "MetadataOperation": "CREATE",
26
+ "Version": "2",
27
+ "IcebergTableInput": {
28
+ "Location": "s3://fake/location",
29
+ "Schema": {
30
+ "Type": "struct",
31
+ "Fields": [
32
+ {
33
+ "Name": "column",
34
+ "Type": "string",
35
+ "Id": 1,
36
+ "Required": true
37
+ }
38
+ ]
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+ },
45
+ "MyTableOrphanFileDeletionOptimizer": {
46
+ "Type": "AWS::Glue::TableOptimizer",
47
+ "DependsOn": "MyTable",
48
+ "Properties": {
49
+ "CatalogId": {
50
+ "Ref": "AWS::AccountId"
51
+ },
52
+ "DatabaseName": "my_database",
53
+ "TableName": "my_table",
54
+ "Type": "orphan_file_deletion",
55
+ "TableOptimizerConfiguration": {
56
+ "RoleArn": {
57
+ "Fn::GetAtt": [
58
+ "OrphanFileDeletionRole",
59
+ "Arn"
60
+ ]
61
+ },
62
+ "Enabled": true,
63
+ "OrphanFileDeletionConfiguration": {
64
+ "IcebergConfiguration": {
65
+ "OrphanFileRetentionPeriodInDays": 7,
66
+ "Location": "s3://fake/location/subdir"
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
72
+ },
73
+ "Outputs": {}
74
+ }
@@ -0,0 +1,62 @@
1
+ {
2
+ "AWSTemplateFormatVersion": "2010-09-09",
3
+ "Metadata": {},
4
+ "Parameters": {},
5
+ "Rules": {},
6
+ "Mappings": {},
7
+ "Conditions": {},
8
+ "Resources": {
9
+ "MyTable": {
10
+ "Type": "AWS::Glue::Table",
11
+ "Properties": {
12
+ "CatalogId": {
13
+ "Ref": "AWS::AccountId"
14
+ },
15
+ "DatabaseName": "my_database",
16
+ "Name": "my_table",
17
+ "OpenTableFormatInput": {
18
+ "IcebergInput": {
19
+ "MetadataOperation": "CREATE",
20
+ "Version": "2",
21
+ "IcebergTableInput": {
22
+ "Location": "s3://fake/location",
23
+ "Schema": {
24
+ "Type": "struct",
25
+ "Fields": [
26
+ {
27
+ "Name": "column",
28
+ "Type": "string",
29
+ "Id": 1,
30
+ "Required": true
31
+ }
32
+ ]
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
38
+ },
39
+ "MyTableOrphanFileDeletionOptimizer": {
40
+ "Type": "AWS::Glue::TableOptimizer",
41
+ "DependsOn": "MyTable",
42
+ "Properties": {
43
+ "CatalogId": {
44
+ "Ref": "AWS::AccountId"
45
+ },
46
+ "DatabaseName": "my_database",
47
+ "TableName": "my_table",
48
+ "Type": "orphan_file_deletion",
49
+ "TableOptimizerConfiguration": {
50
+ "RoleArn": "arn:aws:iam::123456789012:role/OrphanFileDeletionRole",
51
+ "Enabled": true,
52
+ "OrphanFileDeletionConfiguration": {
53
+ "IcebergConfiguration": {
54
+ "OrphanFileRetentionPeriodInDays": 3
55
+ }
56
+ }
57
+ }
58
+ }
59
+ }
60
+ },
61
+ "Outputs": {}
62
+ }
@@ -45,4 +45,4 @@
45
45
  }
46
46
  },
47
47
  "Outputs": {}
48
- }
48
+ }
@@ -69,4 +69,4 @@
69
69
  }
70
70
  },
71
71
  "Outputs": {}
72
- }
72
+ }
@@ -45,4 +45,4 @@
45
45
  }
46
46
  },
47
47
  "Outputs": {}
48
- }
48
+ }
@@ -69,4 +69,4 @@
69
69
  }
70
70
  },
71
71
  "Outputs": {}
72
- }
72
+ }
@@ -49,4 +49,4 @@
49
49
  }
50
50
  },
51
51
  "Outputs": {}
52
- }
52
+ }
@@ -69,4 +69,4 @@
69
69
  }
70
70
  },
71
71
  "Outputs": {}
72
- }
72
+ }
@@ -37,4 +37,4 @@
37
37
  }
38
38
  },
39
39
  "Outputs": {}
40
- }
40
+ }
@@ -69,4 +69,4 @@
69
69
  }
70
70
  },
71
71
  "Outputs": {}
72
- }
72
+ }
@@ -60,4 +60,4 @@
60
60
  }
61
61
  },
62
62
  "Outputs": {}
63
- }
63
+ }
@@ -88,4 +88,4 @@
88
88
  }
89
89
  },
90
90
  "Outputs": {}
91
- }
91
+ }
@@ -434,4 +434,4 @@
434
434
  }
435
435
  }
436
436
  }
437
- }
437
+ }
@@ -426,4 +426,4 @@
426
426
  "Value": "abc123"
427
427
  }
428
428
  }
429
- }
429
+ }
@@ -436,4 +436,4 @@
436
436
  }
437
437
  }
438
438
  }
439
- }
439
+ }
@@ -416,4 +416,4 @@
416
416
  }
417
417
  }
418
418
  }
419
- }
419
+ }
@@ -414,4 +414,4 @@
414
414
  }
415
415
  }
416
416
  }
417
- }
417
+ }
@@ -414,4 +414,4 @@
414
414
  }
415
415
  }
416
416
  }
417
- }
417
+ }
@@ -133,4 +133,4 @@
133
133
  }
134
134
  },
135
135
  "Outputs": {}
136
- }
136
+ }
@@ -131,4 +131,4 @@
131
131
  }
132
132
  },
133
133
  "Outputs": {}
134
- }
134
+ }
@@ -183,4 +183,4 @@
183
183
  }
184
184
  },
185
185
  "Outputs": {}
186
- }
186
+ }
@@ -133,4 +133,4 @@
133
133
  }
134
134
  },
135
135
  "Outputs": {}
136
- }
136
+ }
@@ -132,4 +132,4 @@
132
132
  }
133
133
  },
134
134
  "Outputs": {}
135
- }
135
+ }
@@ -169,4 +169,4 @@
169
169
  }
170
170
  },
171
171
  "Outputs": {}
172
- }
172
+ }
@@ -169,4 +169,4 @@
169
169
  }
170
170
  },
171
171
  "Outputs": {}
172
- }
172
+ }
@@ -104,4 +104,4 @@
104
104
  }
105
105
  },
106
106
  "Outputs": {}
107
- }
107
+ }