@mapbox/cloudfriend 9.0.0 → 9.1.1-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.
Files changed (63) hide show
  1. package/.claude/settings.local.json +7 -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/8d7825ff-d255-4e4a-ace8-09ece4986dd0.json +1 -0
  10. package/.nyc_output/a47652f0-6d32-4764-bfc0-35090b7c546a.json +1 -0
  11. package/.nyc_output/processinfo/8d7825ff-d255-4e4a-ace8-09ece4986dd0.json +1 -0
  12. package/.nyc_output/processinfo/a47652f0-6d32-4764-bfc0-35090b7c546a.json +1 -0
  13. package/.nyc_output/processinfo/index.json +1 -1
  14. package/cfniceberg_createtable.yaml +71 -0
  15. package/changelog.md +7 -3
  16. package/lib/shortcuts/api.md +40 -0
  17. package/lib/shortcuts/glue-iceberg-table.js +227 -0
  18. package/lib/shortcuts/index.js +1 -0
  19. package/lib/shortcuts/lambda.js +1 -1
  20. package/package.json +2 -2
  21. package/requirements.dev.txt +2 -2
  22. package/test/fixtures/shortcuts/event-lambda-custom-eventbus.json +1 -1
  23. package/test/fixtures/shortcuts/event-lambda-defaults.json +1 -1
  24. package/test/fixtures/shortcuts/event-lambda-full.json +1 -1
  25. package/test/fixtures/shortcuts/glue-iceberg-table-defaults.json +41 -0
  26. package/test/fixtures/shortcuts/glue-iceberg-table-no-defaults.json +51 -0
  27. package/test/fixtures/shortcuts/glue-iceberg-table-with-all-optimizers.json +101 -0
  28. package/test/fixtures/shortcuts/glue-iceberg-table-with-both-optimizers.json +80 -0
  29. package/test/fixtures/shortcuts/glue-iceberg-table-with-compaction-custom.json +68 -0
  30. package/test/fixtures/shortcuts/glue-iceberg-table-with-compaction-defaults.json +57 -0
  31. package/test/fixtures/shortcuts/glue-iceberg-table-with-optimizer-custom.json +84 -0
  32. package/test/fixtures/shortcuts/glue-iceberg-table-with-optimizer-defaults.json +64 -0
  33. package/test/fixtures/shortcuts/glue-iceberg-table-with-orphan-deletion-custom.json +74 -0
  34. package/test/fixtures/shortcuts/glue-iceberg-table-with-orphan-deletion-defaults.json +62 -0
  35. package/test/fixtures/shortcuts/hookshot-github-compatible-legacy-node-runtimes.json +3 -3
  36. package/test/fixtures/shortcuts/hookshot-github-secret-ref.json +2 -2
  37. package/test/fixtures/shortcuts/hookshot-github-secret-string.json +2 -2
  38. package/test/fixtures/shortcuts/hookshot-github.json +2 -2
  39. package/test/fixtures/shortcuts/hookshot-passthrough-access-log-format.json +2 -2
  40. package/test/fixtures/shortcuts/hookshot-passthrough-alarms.json +2 -2
  41. package/test/fixtures/shortcuts/hookshot-passthrough-compatible-legacy-node-runtimes.json +3 -3
  42. package/test/fixtures/shortcuts/hookshot-passthrough-enhanced-logging.json +2 -2
  43. package/test/fixtures/shortcuts/hookshot-passthrough-full-blown-logging.json +2 -2
  44. package/test/fixtures/shortcuts/hookshot-passthrough-logging.json +2 -2
  45. package/test/fixtures/shortcuts/hookshot-passthrough.json +2 -2
  46. package/test/fixtures/shortcuts/lambda-defaults.json +1 -1
  47. package/test/fixtures/shortcuts/lambda-docker.json +1 -1
  48. package/test/fixtures/shortcuts/lambda-full.json +1 -1
  49. package/test/fixtures/shortcuts/lambda-provided-role.json +1 -1
  50. package/test/fixtures/shortcuts/lambda-zipfile.json +1 -1
  51. package/test/fixtures/shortcuts/log-subscription-lambda-defaults.json +1 -1
  52. package/test/fixtures/shortcuts/log-subscription-lambda-no-defaults.json +1 -1
  53. package/test/fixtures/shortcuts/queue-lambda-zero.json +1 -1
  54. package/test/fixtures/shortcuts/queue-lambda.json +1 -1
  55. package/test/fixtures/shortcuts/scheduled-lambda-defaults.json +1 -1
  56. package/test/fixtures/shortcuts/scheduled-lambda-full.json +1 -1
  57. package/test/fixtures/shortcuts/stream-lambda-defaults.json +1 -1
  58. package/test/fixtures/shortcuts/stream-lambda-no-defaults.json +1 -1
  59. package/test/shortcuts.test.js +298 -3
  60. package/.nyc_output/0030e99c-2d96-4ac6-a2b2-bffd93da01bc.json +0 -1
  61. package/.nyc_output/e1868cff-0dd0-46eb-866d-70c3b666dae8.json +0 -1
  62. package/.nyc_output/processinfo/0030e99c-2d96-4ac6-a2b2-bffd93da01bc.json +0 -1
  63. package/.nyc_output/processinfo/e1868cff-0dd0-46eb-866d-70c3b666dae8.json +0 -1
@@ -0,0 +1,101 @@
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/SharedRole",
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/SharedRole",
74
+ "Enabled": true
75
+ }
76
+ }
77
+ },
78
+ "MyTableOrphanFileDeletionOptimizer": {
79
+ "Type": "AWS::Glue::TableOptimizer",
80
+ "DependsOn": "MyTable",
81
+ "Properties": {
82
+ "CatalogId": {
83
+ "Ref": "AWS::AccountId"
84
+ },
85
+ "DatabaseName": "my_database",
86
+ "TableName": "my_table",
87
+ "Type": "orphan_file_deletion",
88
+ "TableOptimizerConfiguration": {
89
+ "RoleArn": "arn:aws:iam::123456789012:role/SharedRole",
90
+ "Enabled": true,
91
+ "OrphanFileDeletionConfiguration": {
92
+ "IcebergConfiguration": {
93
+ "OrphanFileRetentionPeriodInDays": 3
94
+ }
95
+ }
96
+ }
97
+ }
98
+ }
99
+ },
100
+ "Outputs": {}
101
+ }
@@ -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,84 @@
1
+ {
2
+ "AWSTemplateFormatVersion": "2010-09-09",
3
+ "Metadata": {},
4
+ "Parameters": {},
5
+ "Rules": {},
6
+ "Mappings": {},
7
+ "Conditions": {
8
+ "Always": {
9
+ "Fn::Equals": [
10
+ "1",
11
+ "1"
12
+ ]
13
+ }
14
+ },
15
+ "Resources": {
16
+ "OptimizerRole": {
17
+ "Type": "AWS::IAM::Role",
18
+ "Properties": {
19
+ "AssumeRolePolicyDocument": {}
20
+ }
21
+ },
22
+ "MyTable": {
23
+ "Type": "AWS::Glue::Table",
24
+ "Condition": "Always",
25
+ "Properties": {
26
+ "CatalogId": {
27
+ "Ref": "AWS::AccountId"
28
+ },
29
+ "DatabaseName": "my_database",
30
+ "Name": "my_table",
31
+ "OpenTableFormatInput": {
32
+ "IcebergInput": {
33
+ "MetadataOperation": "CREATE",
34
+ "Version": "2",
35
+ "IcebergTableInput": {
36
+ "Location": "s3://fake/location",
37
+ "Schema": {
38
+ "Type": "struct",
39
+ "Fields": [
40
+ {
41
+ "Name": "column",
42
+ "Type": "string",
43
+ "Id": 1,
44
+ "Required": true
45
+ }
46
+ ]
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
52
+ },
53
+ "MyTableRetentionOptimizer": {
54
+ "Type": "AWS::Glue::TableOptimizer",
55
+ "DependsOn": "MyTable",
56
+ "Properties": {
57
+ "CatalogId": {
58
+ "Ref": "AWS::AccountId"
59
+ },
60
+ "DatabaseName": "my_database",
61
+ "TableName": "my_table",
62
+ "Type": "retention",
63
+ "TableOptimizerConfiguration": {
64
+ "RoleArn": {
65
+ "Fn::GetAtt": [
66
+ "OptimizerRole",
67
+ "Arn"
68
+ ]
69
+ },
70
+ "Enabled": true,
71
+ "RetentionConfiguration": {
72
+ "IcebergConfiguration": {
73
+ "SnapshotRetentionPeriodInDays": 7,
74
+ "NumberOfSnapshotsToRetain": 3,
75
+ "CleanExpiredFiles": false
76
+ }
77
+ }
78
+ }
79
+ },
80
+ "Condition": "Always"
81
+ }
82
+ },
83
+ "Outputs": {}
84
+ }
@@ -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
+ }
@@ -175,7 +175,7 @@
175
175
  },
176
176
  "Handler": "index.lambda",
177
177
  "MemorySize": 128,
178
- "Runtime": "nodejs16.x",
178
+ "Runtime": "nodejs22.x",
179
179
  "Timeout": 30,
180
180
  "Role": {
181
181
  "Fn::GetAtt": [
@@ -225,7 +225,7 @@
225
225
  "Type": "AWS::IAM::Policy",
226
226
  "DependsOn": "PassFunctionRole",
227
227
  "Properties": {
228
- "PolicyName": "lambda-log-access",
228
+ "PolicyName": "PassFunction-lambda-log-access",
229
229
  "Roles": [
230
230
  {
231
231
  "Ref": "PassFunctionRole"
@@ -366,7 +366,7 @@
366
366
  "Type": "AWS::IAM::Policy",
367
367
  "DependsOn": "DestinationRole",
368
368
  "Properties": {
369
- "PolicyName": "lambda-log-access",
369
+ "PolicyName": "Destination-lambda-log-access",
370
370
  "Roles": [
371
371
  {
372
372
  "Ref": "DestinationRole"
@@ -231,7 +231,7 @@
231
231
  "Type": "AWS::IAM::Policy",
232
232
  "DependsOn": "PassFunctionRole",
233
233
  "Properties": {
234
- "PolicyName": "lambda-log-access",
234
+ "PolicyName": "PassFunction-lambda-log-access",
235
235
  "Roles": [
236
236
  {
237
237
  "Ref": "PassFunctionRole"
@@ -372,7 +372,7 @@
372
372
  "Type": "AWS::IAM::Policy",
373
373
  "DependsOn": "DestinationRole",
374
374
  "Properties": {
375
- "PolicyName": "lambda-log-access",
375
+ "PolicyName": "Destination-lambda-log-access",
376
376
  "Roles": [
377
377
  {
378
378
  "Ref": "DestinationRole"
@@ -225,7 +225,7 @@
225
225
  "Type": "AWS::IAM::Policy",
226
226
  "DependsOn": "PassFunctionRole",
227
227
  "Properties": {
228
- "PolicyName": "lambda-log-access",
228
+ "PolicyName": "PassFunction-lambda-log-access",
229
229
  "Roles": [
230
230
  {
231
231
  "Ref": "PassFunctionRole"
@@ -366,7 +366,7 @@
366
366
  "Type": "AWS::IAM::Policy",
367
367
  "DependsOn": "DestinationRole",
368
368
  "Properties": {
369
- "PolicyName": "lambda-log-access",
369
+ "PolicyName": "Destination-lambda-log-access",
370
370
  "Roles": [
371
371
  {
372
372
  "Ref": "DestinationRole"
@@ -233,7 +233,7 @@
233
233
  "Type": "AWS::IAM::Policy",
234
234
  "DependsOn": "PassFunctionRole",
235
235
  "Properties": {
236
- "PolicyName": "lambda-log-access",
236
+ "PolicyName": "PassFunction-lambda-log-access",
237
237
  "Roles": [
238
238
  {
239
239
  "Ref": "PassFunctionRole"
@@ -374,7 +374,7 @@
374
374
  "Type": "AWS::IAM::Policy",
375
375
  "DependsOn": "DestinationRole",
376
376
  "Properties": {
377
- "PolicyName": "lambda-log-access",
377
+ "PolicyName": "Destination-lambda-log-access",
378
378
  "Roles": [
379
379
  {
380
380
  "Ref": "DestinationRole"