@mapbox/cloudfriend 8.3.0 → 9.0.0-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 (42) hide show
  1. package/.github/workflows/test.yml +2 -2
  2. package/.nyc_output/0030e99c-2d96-4ac6-a2b2-bffd93da01bc.json +1 -0
  3. package/.nyc_output/e1868cff-0dd0-46eb-866d-70c3b666dae8.json +1 -0
  4. package/.nyc_output/processinfo/{3129d911-ae18-4550-9ed8-077e4d8442fb.json → 0030e99c-2d96-4ac6-a2b2-bffd93da01bc.json} +1 -1
  5. package/.nyc_output/processinfo/{713d29d9-ffc7-41fd-b87a-23479319de91.json → e1868cff-0dd0-46eb-866d-70c3b666dae8.json} +1 -1
  6. package/.nyc_output/processinfo/index.json +1 -1
  7. package/changelog.md +15 -0
  8. package/lib/shortcuts/api.md +2 -1
  9. package/lib/shortcuts/lambda.js +5 -2
  10. package/lib/validate.js +3 -4
  11. package/package.json +3 -3
  12. package/requirements.dev.txt +2 -2
  13. package/test/fixtures/shortcuts/event-lambda-custom-eventbus.json +1 -1
  14. package/test/fixtures/shortcuts/event-lambda-defaults.json +1 -1
  15. package/test/fixtures/shortcuts/event-lambda-full.json +1 -1
  16. package/test/fixtures/shortcuts/hookshot-github-compatible-legacy-node-runtimes.json +1 -1
  17. package/test/fixtures/shortcuts/hookshot-github-secret-ref.json +4 -4
  18. package/test/fixtures/shortcuts/hookshot-github-secret-string.json +4 -4
  19. package/test/fixtures/shortcuts/hookshot-github.json +4 -4
  20. package/test/fixtures/shortcuts/hookshot-passthrough-access-log-format.json +4 -4
  21. package/test/fixtures/shortcuts/hookshot-passthrough-alarms.json +4 -4
  22. package/test/fixtures/shortcuts/hookshot-passthrough-compatible-legacy-node-runtimes.json +1 -1
  23. package/test/fixtures/shortcuts/hookshot-passthrough-enhanced-logging.json +4 -4
  24. package/test/fixtures/shortcuts/hookshot-passthrough-full-blown-logging.json +4 -4
  25. package/test/fixtures/shortcuts/hookshot-passthrough-logging.json +4 -4
  26. package/test/fixtures/shortcuts/hookshot-passthrough.json +4 -4
  27. package/test/fixtures/shortcuts/lambda-defaults.json +1 -1
  28. package/test/fixtures/shortcuts/lambda-full.json +4 -4
  29. package/test/fixtures/shortcuts/lambda-provided-role.json +1 -1
  30. package/test/fixtures/shortcuts/lambda-zipfile.json +1 -1
  31. package/test/fixtures/shortcuts/log-subscription-lambda-defaults.json +1 -1
  32. package/test/fixtures/shortcuts/log-subscription-lambda-no-defaults.json +1 -1
  33. package/test/fixtures/shortcuts/queue-full.json +0 -1
  34. package/test/fixtures/shortcuts/queue-lambda-zero.json +1 -1
  35. package/test/fixtures/shortcuts/queue-lambda.json +1 -1
  36. package/test/fixtures/shortcuts/scheduled-lambda-defaults.json +1 -1
  37. package/test/fixtures/shortcuts/scheduled-lambda-full.json +1 -1
  38. package/test/fixtures/shortcuts/stream-lambda-defaults.json +1 -1
  39. package/test/fixtures/shortcuts/stream-lambda-no-defaults.json +1 -1
  40. package/test/shortcuts.test.js +4 -5
  41. package/.nyc_output/3129d911-ae18-4550-9ed8-077e4d8442fb.json +0 -1
  42. package/.nyc_output/713d29d9-ffc7-41fd-b87a-23479319de91.json +0 -1
package/changelog.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.0.0
4
+
5
+ - Removes:
6
+ - aws-sdk as a runtime dependency.
7
+ - All node support prior to version 20.
8
+ - Adds:
9
+ - `@aws-sdk/client-cloudformation` as a runtime dependency.
10
+ - Updates:
11
+ - bin/validate-template to use `@aws-sdk/client-cloudformation`.
12
+ - Lambda shortcut lambda runtime default to use `node22.x`
13
+
14
+ ## 8.4.0
15
+
16
+ - Support `ImageConfig` property for Lambda
17
+
3
18
  ## 8.3.0
4
19
 
5
20
  - Support a default value for cf.findInMap (Fn::FindInMap).
@@ -391,6 +391,7 @@ Log Group, a Role, an Alarm on function errors, and the Lambda Function itself.
391
391
  | options | <code>Object</code> | | Options. |
392
392
  | options.LogicalName | <code>String</code> | | The logical name of the Lambda function within the CloudFormation template. This is used to construct the logical names of the other resources, as well as the Lambda function's name. |
393
393
  | options.Code | <code>Object</code> | | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html). |
394
+ | [options.ImageConfig] | <code>Object</code> | | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig). |
394
395
  | [options.DeadLetterConfig] | <code>Object</code> | | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-deadletterconfig). |
395
396
  | [options.Description] | <code>String</code> | <code>&#x27;${logical name} in the ${stack name} stack&#x27;</code> | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description). |
396
397
  | [options.Environment] | <code>Object</code> | | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-environment). |
@@ -400,7 +401,7 @@ Log Group, a Role, an Alarm on function errors, and the Lambda Function itself.
400
401
  | [options.Layers] | <code>Array.&lt;String&gt;</code> | | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers). |
401
402
  | [options.MemorySize] | <code>Number</code> | <code>128</code> | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize). |
402
403
  | [options.ReservedConcurrentExecutions] | <code>Number</code> | | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions). |
403
- | [options.Runtime] | <code>String</code> | <code>&#x27;nodejs18.x&#x27;</code> | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime). |
404
+ | [options.Runtime] | <code>String</code> | <code>&#x27;nodejs22.x&#x27;</code> | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime). |
404
405
  | [options.Tags] | <code>Array.&lt;Object&gt;</code> | | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags). |
405
406
  | [options.Timeout] | <code>Number</code> | <code>300</code> | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout). |
406
407
  | [options.TracingConfig] | <code>Object</code> | | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig). |
@@ -12,6 +12,7 @@ const ServiceRole = require('./service-role');
12
12
  * within the CloudFormation template. This is used to construct the logical
13
13
  * names of the other resources, as well as the Lambda function's name.
14
14
  * @param {Object} options.Code - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html).
15
+ * @param {Object} [options.ImageConfig=undefined] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-imageconfig).
15
16
  * @param {Object} [options.DeadLetterConfig=undefined] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-deadletterconfig).
16
17
  * @param {String} [options.Description='${logical name} in the ${stack name} stack'] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-description).
17
18
  * @param {Object} [options.Environment=undefined] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-environment).
@@ -21,7 +22,7 @@ const ServiceRole = require('./service-role');
21
22
  * @param {Array<String>} [options.Layers=undefined] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-layers).
22
23
  * @param {Number} [options.MemorySize=128] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-memorysize).
23
24
  * @param {Number} [options.ReservedConcurrentExecutions=undefined] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-reservedconcurrentexecutions).
24
- * @param {String} [options.Runtime='nodejs18.x'] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime).
25
+ * @param {String} [options.Runtime='nodejs22.x'] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-runtime).
25
26
  * @param {Array<Object>} [options.Tags=undefined] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tags).
26
27
  * @param {Number} [options.Timeout=300] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-timeout).
27
28
  * @param {Object} [options.TracingConfig=undefined] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-tracingconfig).
@@ -70,6 +71,7 @@ class Lambda {
70
71
  const {
71
72
  LogicalName,
72
73
  Code,
74
+ ImageConfig,
73
75
  DeadLetterConfig,
74
76
  Description = { 'Fn::Sub': `${LogicalName} in the \${AWS::StackName} stack` },
75
77
  Environment,
@@ -79,7 +81,7 @@ class Lambda {
79
81
  Layers,
80
82
  MemorySize = 128,
81
83
  ReservedConcurrentExecutions,
82
- Runtime = 'nodejs18.x',
84
+ Runtime = 'nodejs22.x',
83
85
  Tags,
84
86
  Timeout = 300,
85
87
  TracingConfig,
@@ -150,6 +152,7 @@ class Lambda {
150
152
  DependsOn,
151
153
  Properties: {
152
154
  Code,
155
+ ImageConfig,
153
156
  DeadLetterConfig,
154
157
  Description,
155
158
  Environment,
package/lib/validate.js CHANGED
@@ -1,7 +1,6 @@
1
1
  'use strict';
2
2
 
3
- require('aws-sdk/lib/maintenance_mode_message').suppress = true;
4
- const AWS = require('aws-sdk');
3
+ const { CloudFormationClient, ValidateTemplateCommand } = require('@aws-sdk/client-cloudformation');
5
4
  const build = require('./build');
6
5
 
7
6
  /**
@@ -16,9 +15,9 @@ const build = require('./build');
16
15
  * reject if it is not.
17
16
  */
18
17
  module.exports = (templatePath, region) => {
19
- const cfn = new AWS.CloudFormation({ region: region || 'us-east-1' });
18
+ const cfn = new CloudFormationClient({ region: region || 'us-east-1' });
20
19
 
21
20
  return build(templatePath, { region: region || 'us-east-1' }).then((template) => {
22
- return cfn.validateTemplate({ TemplateBody: JSON.stringify(template) }).promise();
21
+ return cfn.send(new ValidateTemplateCommand({ TemplateBody: JSON.stringify(template) }));
23
22
  });
24
23
  };
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@mapbox/cloudfriend",
3
- "version": "8.3.0",
3
+ "version": "9.0.0-0",
4
4
  "description": "Helper functions for assembling CloudFormation templates in JavaScript",
5
5
  "main": "index.js",
6
6
  "engines": {
7
- "node": ">=14"
7
+ "node": ">=20"
8
8
  },
9
9
  "scripts": {
10
10
  "pretest": "npm run lint && npm run shortcuts-api-doc",
@@ -45,7 +45,7 @@
45
45
  "tape": "^4.6.0"
46
46
  },
47
47
  "dependencies": {
48
- "aws-sdk": "^2.1425.0",
48
+ "@aws-sdk/client-cloudformation": "^3.848.0",
49
49
  "minimist": "^1.2.6",
50
50
  "redent": "^2.0.0"
51
51
  },
@@ -1,2 +1,2 @@
1
- aws-sam-cli==1.94.0
2
- cfn-lint==0.78.1
1
+ aws-sam-cli==1.142.1
2
+ cfn-lint==1.36.1
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
- "Runtime": "nodejs18.x",
40
+ "Runtime": "nodejs22.x",
41
41
  "Timeout": 300,
42
42
  "Role": {
43
43
  "Fn::GetAtt": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
- "Runtime": "nodejs18.x",
40
+ "Runtime": "nodejs22.x",
41
41
  "Timeout": 300,
42
42
  "Role": {
43
43
  "Fn::GetAtt": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
- "Runtime": "nodejs18.x",
40
+ "Runtime": "nodejs22.x",
41
41
  "Timeout": 300,
42
42
  "Role": {
43
43
  "Fn::GetAtt": [
@@ -316,7 +316,7 @@
316
316
  },
317
317
  "Handler": "index.handler",
318
318
  "MemorySize": 128,
319
- "Runtime": "nodejs18.x",
319
+ "Runtime": "nodejs22.x",
320
320
  "Timeout": 300,
321
321
  "Role": {
322
322
  "Fn::GetAtt": [
@@ -28,7 +28,7 @@
28
28
  "Type": "AWS::ApiGateway::Stage",
29
29
  "Properties": {
30
30
  "DeploymentId": {
31
- "Ref": "PassDeployment2a35d33e"
31
+ "Ref": "PassDeploymentbdbc0f16"
32
32
  },
33
33
  "StageName": "hookshot",
34
34
  "RestApiId": {
@@ -47,7 +47,7 @@
47
47
  ]
48
48
  }
49
49
  },
50
- "PassDeployment2a35d33e": {
50
+ "PassDeploymentbdbc0f16": {
51
51
  "Type": "AWS::ApiGateway::Deployment",
52
52
  "DependsOn": "PassMethod",
53
53
  "Properties": {
@@ -181,7 +181,7 @@
181
181
  },
182
182
  "Handler": "index.lambda",
183
183
  "MemorySize": 128,
184
- "Runtime": "nodejs18.x",
184
+ "Runtime": "nodejs22.x",
185
185
  "Timeout": 30,
186
186
  "Role": {
187
187
  "Fn::GetAtt": [
@@ -322,7 +322,7 @@
322
322
  },
323
323
  "Handler": "index.handler",
324
324
  "MemorySize": 128,
325
- "Runtime": "nodejs18.x",
325
+ "Runtime": "nodejs22.x",
326
326
  "Timeout": 300,
327
327
  "Role": {
328
328
  "Fn::GetAtt": [
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeployment2a35d33e"
27
+ "Ref": "PassDeploymentbdbc0f16"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeployment2a35d33e": {
46
+ "PassDeploymentbdbc0f16": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -175,7 +175,7 @@
175
175
  },
176
176
  "Handler": "index.lambda",
177
177
  "MemorySize": 128,
178
- "Runtime": "nodejs18.x",
178
+ "Runtime": "nodejs22.x",
179
179
  "Timeout": 30,
180
180
  "Role": {
181
181
  "Fn::GetAtt": [
@@ -316,7 +316,7 @@
316
316
  },
317
317
  "Handler": "index.handler",
318
318
  "MemorySize": 128,
319
- "Runtime": "nodejs18.x",
319
+ "Runtime": "nodejs22.x",
320
320
  "Timeout": 300,
321
321
  "Role": {
322
322
  "Fn::GetAtt": [
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeployment2a35d33e"
27
+ "Ref": "PassDeploymentbdbc0f16"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeployment2a35d33e": {
46
+ "PassDeploymentbdbc0f16": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -183,7 +183,7 @@
183
183
  },
184
184
  "Handler": "index.lambda",
185
185
  "MemorySize": 128,
186
- "Runtime": "nodejs18.x",
186
+ "Runtime": "nodejs22.x",
187
187
  "Timeout": 30,
188
188
  "Role": {
189
189
  "Fn::GetAtt": [
@@ -324,7 +324,7 @@
324
324
  },
325
325
  "Handler": "index.handler",
326
326
  "MemorySize": 128,
327
- "Runtime": "nodejs18.x",
327
+ "Runtime": "nodejs22.x",
328
328
  "Timeout": 300,
329
329
  "Role": {
330
330
  "Fn::GetAtt": [
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeployment2a35d33e"
27
+ "Ref": "PassDeploymentbdbc0f16"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -52,7 +52,7 @@
52
52
  }
53
53
  }
54
54
  },
55
- "PassDeployment2a35d33e": {
55
+ "PassDeploymentbdbc0f16": {
56
56
  "Type": "AWS::ApiGateway::Deployment",
57
57
  "DependsOn": "PassMethod",
58
58
  "Properties": {
@@ -179,7 +179,7 @@
179
179
  },
180
180
  "Handler": "index.lambda",
181
181
  "MemorySize": 128,
182
- "Runtime": "nodejs18.x",
182
+ "Runtime": "nodejs22.x",
183
183
  "Timeout": 30,
184
184
  "Role": {
185
185
  "Fn::GetAtt": [
@@ -320,7 +320,7 @@
320
320
  },
321
321
  "Handler": "index.handler",
322
322
  "MemorySize": 128,
323
- "Runtime": "nodejs18.x",
323
+ "Runtime": "nodejs22.x",
324
324
  "Timeout": 300,
325
325
  "Role": {
326
326
  "Fn::GetAtt": [
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeployment2a35d33e"
27
+ "Ref": "PassDeploymentbdbc0f16"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeployment2a35d33e": {
46
+ "PassDeploymentbdbc0f16": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -161,7 +161,7 @@
161
161
  },
162
162
  "Handler": "index.lambda",
163
163
  "MemorySize": 128,
164
- "Runtime": "nodejs18.x",
164
+ "Runtime": "nodejs22.x",
165
165
  "Timeout": 30,
166
166
  "Role": {
167
167
  "Fn::GetAtt": [
@@ -304,7 +304,7 @@
304
304
  },
305
305
  "Handler": "index.handler",
306
306
  "MemorySize": 128,
307
- "Runtime": "nodejs18.x",
307
+ "Runtime": "nodejs22.x",
308
308
  "Timeout": 300,
309
309
  "Role": {
310
310
  "Fn::GetAtt": [
@@ -302,7 +302,7 @@
302
302
  },
303
303
  "Handler": "index.handler",
304
304
  "MemorySize": 128,
305
- "Runtime": "nodejs18.x",
305
+ "Runtime": "nodejs22.x",
306
306
  "Timeout": 300,
307
307
  "Role": {
308
308
  "Fn::GetAtt": [
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeployment2a35d33e"
27
+ "Ref": "PassDeploymentbdbc0f16"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeployment2a35d33e": {
46
+ "PassDeploymentbdbc0f16": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -161,7 +161,7 @@
161
161
  },
162
162
  "Handler": "index.lambda",
163
163
  "MemorySize": 128,
164
- "Runtime": "nodejs18.x",
164
+ "Runtime": "nodejs22.x",
165
165
  "Timeout": 30,
166
166
  "Role": {
167
167
  "Fn::GetAtt": [
@@ -302,7 +302,7 @@
302
302
  },
303
303
  "Handler": "index.handler",
304
304
  "MemorySize": 128,
305
- "Runtime": "nodejs18.x",
305
+ "Runtime": "nodejs22.x",
306
306
  "Timeout": 300,
307
307
  "Role": {
308
308
  "Fn::GetAtt": [
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeployment2a35d33e"
27
+ "Ref": "PassDeploymentbdbc0f16"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeployment2a35d33e": {
46
+ "PassDeploymentbdbc0f16": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -161,7 +161,7 @@
161
161
  },
162
162
  "Handler": "index.lambda",
163
163
  "MemorySize": 128,
164
- "Runtime": "nodejs18.x",
164
+ "Runtime": "nodejs22.x",
165
165
  "Timeout": 30,
166
166
  "Role": {
167
167
  "Fn::GetAtt": [
@@ -302,7 +302,7 @@
302
302
  },
303
303
  "Handler": "index.handler",
304
304
  "MemorySize": 128,
305
- "Runtime": "nodejs18.x",
305
+ "Runtime": "nodejs22.x",
306
306
  "Timeout": 300,
307
307
  "Role": {
308
308
  "Fn::GetAtt": [
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeployment2a35d33e"
27
+ "Ref": "PassDeploymentbdbc0f16"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeployment2a35d33e": {
46
+ "PassDeploymentbdbc0f16": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -161,7 +161,7 @@
161
161
  },
162
162
  "Handler": "index.lambda",
163
163
  "MemorySize": 128,
164
- "Runtime": "nodejs18.x",
164
+ "Runtime": "nodejs22.x",
165
165
  "Timeout": 30,
166
166
  "Role": {
167
167
  "Fn::GetAtt": [
@@ -302,7 +302,7 @@
302
302
  },
303
303
  "Handler": "index.handler",
304
304
  "MemorySize": 128,
305
- "Runtime": "nodejs18.x",
305
+ "Runtime": "nodejs22.x",
306
306
  "Timeout": 300,
307
307
  "Role": {
308
308
  "Fn::GetAtt": [
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeployment2a35d33e"
27
+ "Ref": "PassDeploymentbdbc0f16"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeployment2a35d33e": {
46
+ "PassDeploymentbdbc0f16": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -161,7 +161,7 @@
161
161
  },
162
162
  "Handler": "index.lambda",
163
163
  "MemorySize": 128,
164
- "Runtime": "nodejs18.x",
164
+ "Runtime": "nodejs22.x",
165
165
  "Timeout": 30,
166
166
  "Role": {
167
167
  "Fn::GetAtt": [
@@ -302,7 +302,7 @@
302
302
  },
303
303
  "Handler": "index.handler",
304
304
  "MemorySize": 128,
305
- "Runtime": "nodejs18.x",
305
+ "Runtime": "nodejs22.x",
306
306
  "Timeout": 300,
307
307
  "Role": {
308
308
  "Fn::GetAtt": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
- "Runtime": "nodejs18.x",
40
+ "Runtime": "nodejs22.x",
41
41
  "Timeout": 300,
42
42
  "Role": {
43
43
  "Fn::GetAtt": [
@@ -46,25 +46,25 @@
46
46
  "Description": "my description",
47
47
  "Environment": {
48
48
  "Variables": {
49
- "A": "a"
49
+ "MyCoolEnv": "a"
50
50
  }
51
51
  },
52
52
  "FunctionName": "my-function",
53
53
  "Handler": "index.something",
54
54
  "KmsKeyArn": "arn:aws:kms:us-east-1:123456789012:key/fake",
55
55
  "Layers": [
56
- "arn:aws:fake:layer/abc"
56
+ "arn:aws:lambda:us-east-2:590474943231:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
57
57
  ],
58
58
  "MemorySize": 512,
59
59
  "ReservedConcurrentExecutions": 10,
60
- "Runtime": "nodejs18.x",
60
+ "Runtime": "nodejs22.x",
61
61
  "Timeout": 30,
62
62
  "TracingConfig": {
63
63
  "Mode": "Active"
64
64
  },
65
65
  "VpcConfig": {
66
66
  "SecurityGroupIds": [
67
- "sg-12345"
67
+ "sg-12345678"
68
68
  ],
69
69
  "SubnetIds": [
70
70
  "fake"
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
- "Runtime": "nodejs18.x",
40
+ "Runtime": "nodejs22.x",
41
41
  "Timeout": 300,
42
42
  "Role": {
43
43
  "Fn::GetAtt": [
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "Handler": "index.handler",
38
38
  "MemorySize": 128,
39
- "Runtime": "nodejs18.x",
39
+ "Runtime": "nodejs22.x",
40
40
  "Timeout": 300,
41
41
  "Role": {
42
42
  "Fn::GetAtt": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
- "Runtime": "nodejs18.x",
40
+ "Runtime": "nodejs22.x",
41
41
  "Timeout": 300,
42
42
  "Role": {
43
43
  "Fn::GetAtt": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
- "Runtime": "nodejs18.x",
40
+ "Runtime": "nodejs22.x",
41
41
  "Timeout": 300,
42
42
  "Role": {
43
43
  "Fn::GetAtt": [
@@ -21,7 +21,6 @@
21
21
  "Condition": "Always",
22
22
  "DependsOn": "AnotherThing",
23
23
  "Properties": {
24
- "ContentBasedDeduplication": true,
25
24
  "DelaySeconds": 60,
26
25
  "KmsMasterKeyId": "alias/my-key",
27
26
  "MaximumMessageSize": 1024,
@@ -38,7 +38,7 @@
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
40
  "ReservedConcurrentExecutions": 0,
41
- "Runtime": "nodejs18.x",
41
+ "Runtime": "nodejs22.x",
42
42
  "Timeout": 300,
43
43
  "Role": {
44
44
  "Fn::GetAtt": [
@@ -38,7 +38,7 @@
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
40
  "ReservedConcurrentExecutions": 10,
41
- "Runtime": "nodejs18.x",
41
+ "Runtime": "nodejs22.x",
42
42
  "Timeout": 300,
43
43
  "Role": {
44
44
  "Fn::GetAtt": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
- "Runtime": "nodejs18.x",
40
+ "Runtime": "nodejs22.x",
41
41
  "Timeout": 300,
42
42
  "Role": {
43
43
  "Fn::GetAtt": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
- "Runtime": "nodejs18.x",
40
+ "Runtime": "nodejs22.x",
41
41
  "Timeout": 300,
42
42
  "Role": {
43
43
  "Fn::GetAtt": [
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "Handler": "index.handler",
39
39
  "MemorySize": 128,
40
- "Runtime": "nodejs18.x",
40
+ "Runtime": "nodejs22.x",
41
41
  "Timeout": 300,
42
42
  "Role": {
43
43
  "Fn::GetAtt": [