@mapbox/cloudfriend 9.2.0-0 → 9.2.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 (113) hide show
  1. package/changelog.md +8 -0
  2. package/coverage/clover.xml +598 -0
  3. package/coverage/coverage-final.json +32 -0
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +87 -0
  6. package/coverage/lcov-report/cloudfriend/bin/build-template.js.html +130 -0
  7. package/coverage/lcov-report/cloudfriend/bin/index.html +131 -0
  8. package/coverage/lcov-report/cloudfriend/bin/validate-template.js.html +142 -0
  9. package/coverage/lcov-report/cloudfriend/index.html +116 -0
  10. package/coverage/lcov-report/cloudfriend/index.js.html +307 -0
  11. package/coverage/lcov-report/cloudfriend/lib/build.js.html +217 -0
  12. package/coverage/lcov-report/cloudfriend/lib/conditions.js.html +430 -0
  13. package/coverage/lcov-report/cloudfriend/lib/index.html +206 -0
  14. package/coverage/lcov-report/cloudfriend/lib/intrinsic.js.html +979 -0
  15. package/coverage/lcov-report/cloudfriend/lib/merge.js.html +478 -0
  16. package/coverage/lcov-report/cloudfriend/lib/pseudo.js.html +370 -0
  17. package/coverage/lcov-report/cloudfriend/lib/rules.js.html +349 -0
  18. package/coverage/lcov-report/cloudfriend/lib/shortcuts/cross-account-role.js.html +244 -0
  19. package/coverage/lcov-report/cloudfriend/lib/shortcuts/event-lambda.js.html +367 -0
  20. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-database.js.html +286 -0
  21. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-json-table.js.html +235 -0
  22. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-orc-table.js.html +226 -0
  23. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-parquet-table.js.html +268 -0
  24. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-presto-view.js.html +358 -0
  25. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-spark-view.js.html +241 -0
  26. package/coverage/lcov-report/cloudfriend/lib/shortcuts/glue-table.js.html +481 -0
  27. package/coverage/lcov-report/cloudfriend/lib/shortcuts/hookshot.js.html +1504 -0
  28. package/coverage/lcov-report/cloudfriend/lib/shortcuts/index.html +416 -0
  29. package/coverage/lcov-report/cloudfriend/lib/shortcuts/index.js.html +154 -0
  30. package/coverage/lcov-report/cloudfriend/lib/shortcuts/kinesis-firehose-base.js.html +418 -0
  31. package/coverage/lcov-report/cloudfriend/lib/shortcuts/lambda.js.html +832 -0
  32. package/coverage/lcov-report/cloudfriend/lib/shortcuts/log-subscription-lambda.js.html +310 -0
  33. package/coverage/lcov-report/cloudfriend/lib/shortcuts/queue-lambda.js.html +364 -0
  34. package/coverage/lcov-report/cloudfriend/lib/shortcuts/queue.js.html +619 -0
  35. package/coverage/lcov-report/cloudfriend/lib/shortcuts/role.js.html +382 -0
  36. package/coverage/lcov-report/cloudfriend/lib/shortcuts/s3-kinesis-firehose.js.html +568 -0
  37. package/coverage/lcov-report/cloudfriend/lib/shortcuts/scheduled-lambda.js.html +490 -0
  38. package/coverage/lcov-report/cloudfriend/lib/shortcuts/service-role.js.html +307 -0
  39. package/coverage/lcov-report/cloudfriend/lib/shortcuts/stream-lambda.js.html +493 -0
  40. package/coverage/lcov-report/cloudfriend/lib/validate.js.html +154 -0
  41. package/coverage/lcov-report/favicon.png +0 -0
  42. package/coverage/lcov-report/index.html +161 -0
  43. package/coverage/lcov-report/prettify.css +1 -0
  44. package/coverage/lcov-report/prettify.js +2 -0
  45. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  46. package/coverage/lcov-report/sorter.js +210 -0
  47. package/coverage/lcov.info +1240 -0
  48. package/jest.config.js +14 -0
  49. package/lib/shortcuts/api.md +1 -0
  50. package/lib/shortcuts/lambda.js +4 -2
  51. package/package.json +15 -13
  52. package/readme.md +1 -1
  53. package/test/bin.test.js +18 -14
  54. package/test/fixtures/shortcuts/cross-account-role-defaults.json +1 -1
  55. package/test/fixtures/shortcuts/cross-account-role-no-defaults.json +1 -1
  56. package/test/fixtures/shortcuts/event-lambda-defaults.json +3 -1
  57. package/test/fixtures/shortcuts/event-lambda-full.json +3 -1
  58. package/test/fixtures/shortcuts/firehose-defaults.json +1 -1
  59. package/test/fixtures/shortcuts/firehose-with-stream.json +1 -1
  60. package/test/fixtures/shortcuts/glue-database-defaults.json +1 -1
  61. package/test/fixtures/shortcuts/glue-database-no-defaults.json +1 -1
  62. package/test/fixtures/shortcuts/glue-json-table-defaults.json +1 -1
  63. package/test/fixtures/shortcuts/glue-json-table-no-defaults.json +1 -1
  64. package/test/fixtures/shortcuts/glue-orc-table-defaults.json +1 -1
  65. package/test/fixtures/shortcuts/glue-orc-table-no-defaults.json +1 -1
  66. package/test/fixtures/shortcuts/glue-parquet-table-defaults.json +1 -1
  67. package/test/fixtures/shortcuts/glue-parquet-table-no-defaults.json +1 -1
  68. package/test/fixtures/shortcuts/glue-table-defaults.json +1 -1
  69. package/test/fixtures/shortcuts/glue-table-no-defaults.json +1 -1
  70. package/test/fixtures/shortcuts/glue-view-defaults.json +1 -1
  71. package/test/fixtures/shortcuts/glue-view-no-defaults.json +1 -1
  72. package/test/fixtures/shortcuts/hookshot-github-secret-ref.json +8 -4
  73. package/test/fixtures/shortcuts/hookshot-github-secret-string.json +8 -4
  74. package/test/fixtures/shortcuts/hookshot-github.json +8 -4
  75. package/test/fixtures/shortcuts/hookshot-passthrough-access-log-format.json +8 -4
  76. package/test/fixtures/shortcuts/hookshot-passthrough-alarms.json +8 -4
  77. package/test/fixtures/shortcuts/hookshot-passthrough-enhanced-logging.json +8 -4
  78. package/test/fixtures/shortcuts/hookshot-passthrough-full-blown-logging.json +8 -4
  79. package/test/fixtures/shortcuts/hookshot-passthrough-logging.json +8 -4
  80. package/test/fixtures/shortcuts/hookshot-passthrough.json +8 -4
  81. package/test/fixtures/shortcuts/lambda-defaults.json +3 -1
  82. package/test/fixtures/shortcuts/lambda-docker.json +3 -1
  83. package/test/fixtures/shortcuts/lambda-full.json +3 -1
  84. package/test/fixtures/shortcuts/lambda-provided-role.json +3 -1
  85. package/test/fixtures/shortcuts/lambda-zipfile.json +3 -1
  86. package/test/fixtures/shortcuts/log-subscription-lambda-defaults.json +3 -1
  87. package/test/fixtures/shortcuts/log-subscription-lambda-no-defaults.json +3 -1
  88. package/test/fixtures/shortcuts/queue-defaults.json +1 -1
  89. package/test/fixtures/shortcuts/queue-external-topic-ref.json +1 -1
  90. package/test/fixtures/shortcuts/queue-external-topic.json +1 -1
  91. package/test/fixtures/shortcuts/queue-fifo-queuename.json +1 -1
  92. package/test/fixtures/shortcuts/queue-fifo.json +1 -1
  93. package/test/fixtures/shortcuts/queue-full.json +1 -1
  94. package/test/fixtures/shortcuts/queue-lambda-zero.json +3 -1
  95. package/test/fixtures/shortcuts/queue-lambda.json +3 -1
  96. package/test/fixtures/shortcuts/role-defaults.json +1 -1
  97. package/test/fixtures/shortcuts/role-no-defaults.json +1 -1
  98. package/test/fixtures/shortcuts/scheduled-lambda-defaults.json +3 -1
  99. package/test/fixtures/shortcuts/scheduled-lambda-full.json +3 -1
  100. package/test/fixtures/shortcuts/service-role-defaults.json +1 -1
  101. package/test/fixtures/shortcuts/service-role-no-defaults.json +1 -1
  102. package/test/fixtures/shortcuts/service-role-no-url-suffix.json +1 -1
  103. package/test/fixtures/shortcuts/service-role-url-suffix-with-replacement.json +1 -1
  104. package/test/fixtures/shortcuts/service-role-url-suffix.json +1 -1
  105. package/test/fixtures/shortcuts/stream-lambda-defaults.json +3 -1
  106. package/test/fixtures/shortcuts/stream-lambda-no-defaults.json +3 -1
  107. package/test/index.test.js +383 -235
  108. package/test/shortcuts.test.js +1227 -1462
  109. package/.nyc_output/0030e99c-2d96-4ac6-a2b2-bffd93da01bc.json +0 -1
  110. package/.nyc_output/e1868cff-0dd0-46eb-866d-70c3b666dae8.json +0 -1
  111. package/.nyc_output/processinfo/0030e99c-2d96-4ac6-a2b2-bffd93da01bc.json +0 -1
  112. package/.nyc_output/processinfo/e1868cff-0dd0-46eb-866d-70c3b666dae8.json +0 -1
  113. package/.nyc_output/processinfo/index.json +0 -1
package/jest.config.js ADDED
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ testEnvironment: 'node',
5
+ testMatch: ['**/test/*.test.js'],
6
+ collectCoverageFrom: [
7
+ 'index.js',
8
+ 'lib/**/*.js',
9
+ 'bin/**/*.js',
10
+ '!**/node_modules/**'
11
+ ],
12
+ coverageDirectory: 'coverage',
13
+ verbose: true
14
+ };
@@ -425,6 +425,7 @@ Log Group, a Role, an Alarm on function errors, and the Lambda Function itself.
425
425
  | [options.OKActions] | <code>Array.&lt;String&gt;</code> | | See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-okactions). |
426
426
  | [options.LogRetentionInDays] | <code>Number</code> | <code>14</code> | How long to retain CloudWatch logs for this Lambda function. See [AWS Documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html) for allowed values. |
427
427
  | [options.LogPolicyDeletionPolicy] | <code>String</code> | <code>&#x27;Delete&#x27;</code> | DeletionPolicy on the IAM Policy resource used to access Logs. See [AWS Documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html) for allowed values. |
428
+ | [options.LogPolicyName] | <code>String</code> | <code>&#x27;${stack-name}-${logical-name}-lambda-log-access&#x27;</code> | The name of the IAM Policy used to access CloudWatch Logs. |
428
429
 
429
430
  **Example**
430
431
  ```js
@@ -49,6 +49,7 @@ const ServiceRole = require('./service-role');
49
49
  * @param {Array<String>} [options.OKActions=undefined] - See [AWS documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html#cfn-cloudwatch-alarms-okactions).
50
50
  * @param {Number} [options.LogRetentionInDays=14] - How long to retain CloudWatch logs for this Lambda function. See [AWS Documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html) for allowed values.
51
51
  * @param {String} [options.LogPolicyDeletionPolicy='Delete'] - DeletionPolicy on the IAM Policy resource used to access Logs. See [AWS Documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-attribute-deletionpolicy.html) for allowed values.
52
+ * @param {String} [options.LogPolicyName='${stack-name}-${logical-name}-lambda-log-access'] - The name of the IAM Policy used to access CloudWatch Logs.
52
53
  * @example
53
54
  * const cf = require('@mapbox/cloudfriend');
54
55
  *
@@ -109,7 +110,8 @@ class Lambda {
109
110
  ExtendedStatistic,
110
111
  OKActions,
111
112
  LogRetentionInDays = 14,
112
- LogPolicyDeletionPolicy = 'Delete'
113
+ LogPolicyDeletionPolicy = 'Delete',
114
+ LogPolicyName = { 'Fn::Sub': `\${AWS::StackName}-${LogicalName}-lambda-log-access` }
113
115
  } = options;
114
116
 
115
117
  if (options.EvaluationPeriods < Math.ceil(Timeout / Period))
@@ -205,7 +207,7 @@ class Lambda {
205
207
  DependsOn: (RoleArn) ? undefined : `${LogicalName}Role`,
206
208
  DeletionPolicy: LogPolicyDeletionPolicy,
207
209
  Properties: {
208
- PolicyName: { 'Fn::Sub': `\${AWS::StackName}-${LogicalName}-lambda-log-access` },
210
+ PolicyName: LogPolicyName,
209
211
  Roles: [roleName],
210
212
  PolicyDocument: {
211
213
  Version: '2012-10-17',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapbox/cloudfriend",
3
- "version": "9.2.0-0",
3
+ "version": "9.2.1",
4
4
  "description": "Helper functions for assembling CloudFormation templates in JavaScript",
5
5
  "main": "index.js",
6
6
  "engines": {
@@ -8,11 +8,10 @@
8
8
  },
9
9
  "scripts": {
10
10
  "pretest": "npm run lint && npm run shortcuts-api-doc",
11
- "lint": "eslint index.js test lib bin cloudformation",
11
+ "lint": "eslint index.js test lib bin",
12
12
  "lint:fix": "npm run lint -- --fix",
13
- "test": "nyc tape test/*.test.js | tap-spec",
14
- "test:update": "UPDATE=1 npm run test",
15
- "coverage": "nyc --reporter html tape test/*.test.js && opener coverage/index.html",
13
+ "test": "jest --coverage",
14
+ "test:update": "jest --updateSnapshot",
16
15
  "build-ci-template": "bin/build-template.js cloudformation/ci.template.js > cloudformation/ci.template.json",
17
16
  "shortcuts-api-doc": "jsdoc2md lib/shortcuts/*.js > lib/shortcuts/api.md"
18
17
  },
@@ -35,14 +34,11 @@
35
34
  },
36
35
  "homepage": "https://github.com/mapbox/cloudfriend#readme",
37
36
  "devDependencies": {
38
- "@mapbox/eslint-config-mapbox": "^1.2.1",
39
- "eslint": "^4.18.2",
37
+ "@mapbox/eslint-config-mapbox": "^5.0.1",
38
+ "eslint": "^8.57.0",
40
39
  "eslint-plugin-node": "^6.0.1",
41
- "jsdoc-to-markdown": "^7.1.1",
42
- "nyc": "^14.1.0",
43
- "opener": "^1.4.1",
44
- "tap-spec": "^5.0.0",
45
- "tape": "^4.6.0"
40
+ "jest": "^29.7.0",
41
+ "jsdoc-to-markdown": "^7.1.1"
46
42
  },
47
43
  "dependencies": {
48
44
  "@aws-sdk/client-cloudformation": "^3.848.0",
@@ -50,6 +46,12 @@
50
46
  "redent": "^2.0.0"
51
47
  },
52
48
  "eslintConfig": {
53
- "extends": "@mapbox/eslint-config-mapbox"
49
+ "extends": "@mapbox/eslint-config-mapbox",
50
+ "env": {
51
+ "jest": true
52
+ },
53
+ "ignorePatterns": [
54
+ "test/fixtures/malformed.json"
55
+ ]
54
56
  }
55
57
  }
package/readme.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # cloudfriend
2
2
 
3
- [![Build Status](https://travis-ci.com/mapbox/cloudfriend.svg?branch=master)](https://travis-ci.com/mapbox/cloudfriend)
3
+ [![mapbox/cloudfriend](https://github.com/mapbox/cloudfriend/actions/workflows/test.yml/badge.svg)](https://github.com/mapbox/cloudfriend/actions/workflows/test.yml)
4
4
 
5
5
  Helper functions for assembling CloudFormation templates in JavaScript.
6
6
 
package/test/bin.test.js CHANGED
@@ -1,22 +1,26 @@
1
1
  'use strict';
2
2
 
3
3
  const path = require('path');
4
- const exec = require('child_process').exec;
5
- const test = require('tape');
4
+ const { execFile } = require('child_process');
5
+ const { promisify } = require('util');
6
6
 
7
- test('bin/build-template', (t) => {
7
+ const execFileAsync = promisify(execFile);
8
+
9
+ describe('bin/build-template', () => {
8
10
  const script = path.normalize(__dirname + '/../bin/build-template.js');
9
11
  const template = path.normalize(__dirname + '/fixtures/sync-args.js');
10
- t.test('outputs expected', (q) => {
11
- exec([script, template, '--this', 'that', '-r', 'cn-north-1'].join(' '), (err, stdout, stderr) => {
12
- q.error(err);
13
- q.error(stderr);
14
- const result = JSON.parse(stdout);
15
- q.equal('that', result.this);
16
- q.equal('cn-north-1', result.region);
17
- q.end();
18
- });
12
+
13
+ test('outputs expected', async () => {
14
+ const { stdout, stderr } = await execFileAsync(script, [
15
+ template,
16
+ '--this',
17
+ 'that',
18
+ '-r',
19
+ 'cn-north-1'
20
+ ]);
21
+ expect(stderr).toBeFalsy();
22
+ const result = JSON.parse(stdout);
23
+ expect(result.this).toBe('that');
24
+ expect(result.region).toBe('cn-north-1');
19
25
  });
20
- t.end();
21
26
  });
22
-
@@ -30,4 +30,4 @@
30
30
  }
31
31
  },
32
32
  "Outputs": {}
33
- }
33
+ }
@@ -63,4 +63,4 @@
63
63
  }
64
64
  },
65
65
  "Outputs": {}
66
- }
66
+ }
@@ -88,7 +88,9 @@
88
88
  "DependsOn": "MyLambdaRole",
89
89
  "DeletionPolicy": "Delete",
90
90
  "Properties": {
91
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-MyLambda-lambda-log-access" },
91
+ "PolicyName": {
92
+ "Fn::Sub": "${AWS::StackName}-MyLambda-lambda-log-access"
93
+ },
92
94
  "Roles": [
93
95
  {
94
96
  "Ref": "MyLambdaRole"
@@ -88,7 +88,9 @@
88
88
  "DependsOn": "MyLambdaRole",
89
89
  "DeletionPolicy": "Delete",
90
90
  "Properties": {
91
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-MyLambda-lambda-log-access" },
91
+ "PolicyName": {
92
+ "Fn::Sub": "${AWS::StackName}-MyLambda-lambda-log-access"
93
+ },
92
94
  "Roles": [
93
95
  {
94
96
  "Ref": "MyLambdaRole"
@@ -197,4 +197,4 @@
197
197
  }
198
198
  },
199
199
  "Outputs": {}
200
- }
200
+ }
@@ -231,4 +231,4 @@
231
231
  }
232
232
  },
233
233
  "Outputs": {}
234
- }
234
+ }
@@ -22,4 +22,4 @@
22
22
  }
23
23
  },
24
24
  "Outputs": {}
25
- }
25
+ }
@@ -34,4 +34,4 @@
34
34
  }
35
35
  },
36
36
  "Outputs": {}
37
- }
37
+ }
@@ -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
+ }
@@ -28,7 +28,7 @@
28
28
  "Type": "AWS::ApiGateway::Stage",
29
29
  "Properties": {
30
30
  "DeploymentId": {
31
- "Ref": "PassDeploymentbdbc0f16"
31
+ "Ref": "PassDeployment6d7d2c50"
32
32
  },
33
33
  "StageName": "hookshot",
34
34
  "RestApiId": {
@@ -47,7 +47,7 @@
47
47
  ]
48
48
  }
49
49
  },
50
- "PassDeploymentbdbc0f16": {
50
+ "PassDeployment6d7d2c50": {
51
51
  "Type": "AWS::ApiGateway::Deployment",
52
52
  "DependsOn": "PassMethod",
53
53
  "Properties": {
@@ -232,7 +232,9 @@
232
232
  "DependsOn": "PassFunctionRole",
233
233
  "DeletionPolicy": "Delete",
234
234
  "Properties": {
235
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access" },
235
+ "PolicyName": {
236
+ "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access"
237
+ },
236
238
  "Roles": [
237
239
  {
238
240
  "Ref": "PassFunctionRole"
@@ -374,7 +376,9 @@
374
376
  "DependsOn": "DestinationRole",
375
377
  "DeletionPolicy": "Delete",
376
378
  "Properties": {
377
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access" },
379
+ "PolicyName": {
380
+ "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access"
381
+ },
378
382
  "Roles": [
379
383
  {
380
384
  "Ref": "DestinationRole"
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeploymentbdbc0f16"
27
+ "Ref": "PassDeployment6d7d2c50"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeploymentbdbc0f16": {
46
+ "PassDeployment6d7d2c50": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -226,7 +226,9 @@
226
226
  "DependsOn": "PassFunctionRole",
227
227
  "DeletionPolicy": "Delete",
228
228
  "Properties": {
229
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access" },
229
+ "PolicyName": {
230
+ "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access"
231
+ },
230
232
  "Roles": [
231
233
  {
232
234
  "Ref": "PassFunctionRole"
@@ -368,7 +370,9 @@
368
370
  "DependsOn": "DestinationRole",
369
371
  "DeletionPolicy": "Delete",
370
372
  "Properties": {
371
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access" },
373
+ "PolicyName": {
374
+ "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access"
375
+ },
372
376
  "Roles": [
373
377
  {
374
378
  "Ref": "DestinationRole"
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeploymentbdbc0f16"
27
+ "Ref": "PassDeployment6d7d2c50"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeploymentbdbc0f16": {
46
+ "PassDeployment6d7d2c50": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -234,7 +234,9 @@
234
234
  "DependsOn": "PassFunctionRole",
235
235
  "DeletionPolicy": "Delete",
236
236
  "Properties": {
237
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access" },
237
+ "PolicyName": {
238
+ "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access"
239
+ },
238
240
  "Roles": [
239
241
  {
240
242
  "Ref": "PassFunctionRole"
@@ -376,7 +378,9 @@
376
378
  "DependsOn": "DestinationRole",
377
379
  "DeletionPolicy": "Delete",
378
380
  "Properties": {
379
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access" },
381
+ "PolicyName": {
382
+ "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access"
383
+ },
380
384
  "Roles": [
381
385
  {
382
386
  "Ref": "DestinationRole"
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeploymentbdbc0f16"
27
+ "Ref": "PassDeployment6d7d2c50"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -52,7 +52,7 @@
52
52
  }
53
53
  }
54
54
  },
55
- "PassDeploymentbdbc0f16": {
55
+ "PassDeployment6d7d2c50": {
56
56
  "Type": "AWS::ApiGateway::Deployment",
57
57
  "DependsOn": "PassMethod",
58
58
  "Properties": {
@@ -230,7 +230,9 @@
230
230
  "DependsOn": "PassFunctionRole",
231
231
  "DeletionPolicy": "Delete",
232
232
  "Properties": {
233
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access" },
233
+ "PolicyName": {
234
+ "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access"
235
+ },
234
236
  "Roles": [
235
237
  {
236
238
  "Ref": "PassFunctionRole"
@@ -372,7 +374,9 @@
372
374
  "DependsOn": "DestinationRole",
373
375
  "DeletionPolicy": "Delete",
374
376
  "Properties": {
375
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access" },
377
+ "PolicyName": {
378
+ "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access"
379
+ },
376
380
  "Roles": [
377
381
  {
378
382
  "Ref": "DestinationRole"
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeploymentbdbc0f16"
27
+ "Ref": "PassDeployment6d7d2c50"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeploymentbdbc0f16": {
46
+ "PassDeployment6d7d2c50": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -214,7 +214,9 @@
214
214
  "DependsOn": "PassFunctionRole",
215
215
  "DeletionPolicy": "Delete",
216
216
  "Properties": {
217
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access" },
217
+ "PolicyName": {
218
+ "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access"
219
+ },
218
220
  "Roles": [
219
221
  {
220
222
  "Ref": "PassFunctionRole"
@@ -356,7 +358,9 @@
356
358
  "DependsOn": "DestinationRole",
357
359
  "DeletionPolicy": "Delete",
358
360
  "Properties": {
359
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access" },
361
+ "PolicyName": {
362
+ "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access"
363
+ },
360
364
  "Roles": [
361
365
  {
362
366
  "Ref": "DestinationRole"
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeploymentbdbc0f16"
27
+ "Ref": "PassDeployment6d7d2c50"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeploymentbdbc0f16": {
46
+ "PassDeployment6d7d2c50": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -212,7 +212,9 @@
212
212
  "DependsOn": "PassFunctionRole",
213
213
  "DeletionPolicy": "Delete",
214
214
  "Properties": {
215
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access" },
215
+ "PolicyName": {
216
+ "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access"
217
+ },
216
218
  "Roles": [
217
219
  {
218
220
  "Ref": "PassFunctionRole"
@@ -354,7 +356,9 @@
354
356
  "DependsOn": "DestinationRole",
355
357
  "DeletionPolicy": "Delete",
356
358
  "Properties": {
357
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access" },
359
+ "PolicyName": {
360
+ "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access"
361
+ },
358
362
  "Roles": [
359
363
  {
360
364
  "Ref": "DestinationRole"
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeploymentbdbc0f16"
27
+ "Ref": "PassDeployment6d7d2c50"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeploymentbdbc0f16": {
46
+ "PassDeployment6d7d2c50": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -212,7 +212,9 @@
212
212
  "DependsOn": "PassFunctionRole",
213
213
  "DeletionPolicy": "Delete",
214
214
  "Properties": {
215
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access" },
215
+ "PolicyName": {
216
+ "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access"
217
+ },
216
218
  "Roles": [
217
219
  {
218
220
  "Ref": "PassFunctionRole"
@@ -354,7 +356,9 @@
354
356
  "DependsOn": "DestinationRole",
355
357
  "DeletionPolicy": "Delete",
356
358
  "Properties": {
357
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access" },
359
+ "PolicyName": {
360
+ "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access"
361
+ },
358
362
  "Roles": [
359
363
  {
360
364
  "Ref": "DestinationRole"
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeploymentbdbc0f16"
27
+ "Ref": "PassDeployment6d7d2c50"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeploymentbdbc0f16": {
46
+ "PassDeployment6d7d2c50": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -212,7 +212,9 @@
212
212
  "DependsOn": "PassFunctionRole",
213
213
  "DeletionPolicy": "Delete",
214
214
  "Properties": {
215
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access" },
215
+ "PolicyName": {
216
+ "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access"
217
+ },
216
218
  "Roles": [
217
219
  {
218
220
  "Ref": "PassFunctionRole"
@@ -354,7 +356,9 @@
354
356
  "DependsOn": "DestinationRole",
355
357
  "DeletionPolicy": "Delete",
356
358
  "Properties": {
357
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access" },
359
+ "PolicyName": {
360
+ "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access"
361
+ },
358
362
  "Roles": [
359
363
  {
360
364
  "Ref": "DestinationRole"
@@ -24,7 +24,7 @@
24
24
  "Type": "AWS::ApiGateway::Stage",
25
25
  "Properties": {
26
26
  "DeploymentId": {
27
- "Ref": "PassDeploymentbdbc0f16"
27
+ "Ref": "PassDeployment6d7d2c50"
28
28
  },
29
29
  "StageName": "hookshot",
30
30
  "RestApiId": {
@@ -43,7 +43,7 @@
43
43
  ]
44
44
  }
45
45
  },
46
- "PassDeploymentbdbc0f16": {
46
+ "PassDeployment6d7d2c50": {
47
47
  "Type": "AWS::ApiGateway::Deployment",
48
48
  "DependsOn": "PassMethod",
49
49
  "Properties": {
@@ -212,7 +212,9 @@
212
212
  "DependsOn": "PassFunctionRole",
213
213
  "DeletionPolicy": "Delete",
214
214
  "Properties": {
215
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access" },
215
+ "PolicyName": {
216
+ "Fn::Sub": "${AWS::StackName}-PassFunction-lambda-log-access"
217
+ },
216
218
  "Roles": [
217
219
  {
218
220
  "Ref": "PassFunctionRole"
@@ -354,7 +356,9 @@
354
356
  "DependsOn": "DestinationRole",
355
357
  "DeletionPolicy": "Delete",
356
358
  "Properties": {
357
- "PolicyName": { "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access" },
359
+ "PolicyName": {
360
+ "Fn::Sub": "${AWS::StackName}-Destination-lambda-log-access"
361
+ },
358
362
  "Roles": [
359
363
  {
360
364
  "Ref": "DestinationRole"