@liflig/cdk 2.17.0 → 2.18.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 (140) hide show
  1. package/package.json +12 -12
  2. package/assets/cloudtrail-slack-integration-lambda/main.py +0 -267
  3. package/assets/pipeline-slack-notification-lambda/index.py +0 -300
  4. package/assets/prepare-cdk-source-lambda/index.py +0 -159
  5. package/assets/slack-alarm-lambda/index.py +0 -103
  6. package/lib/alarms/database-alarms.d.ts +0 -125
  7. package/lib/alarms/database-alarms.js +0 -171
  8. package/lib/alarms/index.d.ts +0 -3
  9. package/lib/alarms/index.js +0 -10
  10. package/lib/alarms/service-alarms.d.ts +0 -145
  11. package/lib/alarms/service-alarms.js +0 -148
  12. package/lib/alarms/ses-alarms.d.ts +0 -67
  13. package/lib/alarms/ses-alarms.js +0 -49
  14. package/lib/alarms/slack-alarm.d.ts +0 -25
  15. package/lib/alarms/slack-alarm.js +0 -47
  16. package/lib/bastion-host.d.ts +0 -41
  17. package/lib/bastion-host.js +0 -86
  18. package/lib/bin/cdk-create-snapshots.d.ts +0 -2
  19. package/lib/bin/fetch-pipeline-variables.d.ts +0 -2
  20. package/lib/build-artifacts/index.d.ts +0 -68
  21. package/lib/build-artifacts/index.js +0 -118
  22. package/lib/cdk-deploy/cdk-deploy.d.ts +0 -63
  23. package/lib/cdk-deploy/cdk-deploy.js +0 -175
  24. package/lib/cdk-deploy/index.d.ts +0 -1
  25. package/lib/cdk-deploy/index.js +0 -6
  26. package/lib/cdk-deploy/start-deploy-handler.d.ts +0 -8
  27. package/lib/cdk-deploy/start-deploy-handler.js +0 -72
  28. package/lib/cdk-deploy/status-handler.d.ts +0 -6
  29. package/lib/cdk-deploy/status-handler.js +0 -83
  30. package/lib/cdk-pipelines/cloud-assembly-lookup-handler.d.ts +0 -6
  31. package/lib/cdk-pipelines/cloud-assembly-lookup-handler.js +0 -63
  32. package/lib/cdk-pipelines/index.d.ts +0 -3
  33. package/lib/cdk-pipelines/index.js +0 -10
  34. package/lib/cdk-pipelines/liflig-cdk-pipeline.d.ts +0 -110
  35. package/lib/cdk-pipelines/liflig-cdk-pipeline.js +0 -232
  36. package/lib/cdk-pipelines/slack-notification.d.ts +0 -51
  37. package/lib/cdk-pipelines/slack-notification.js +0 -54
  38. package/lib/cdk-pipelines/variables.d.ts +0 -15
  39. package/lib/cdk-pipelines/variables.js +0 -80
  40. package/lib/cloudtrail-slack-integration/cloudtrail-slack-integration.d.ts +0 -47
  41. package/lib/cloudtrail-slack-integration/cloudtrail-slack-integration.js +0 -211
  42. package/lib/cloudtrail-slack-integration/index.d.ts +0 -1
  43. package/lib/cloudtrail-slack-integration/index.js +0 -6
  44. package/lib/configure-parameters/configure-parameters.d.ts +0 -61
  45. package/lib/configure-parameters/configure-parameters.js +0 -94
  46. package/lib/configure-parameters/index.d.ts +0 -1
  47. package/lib/configure-parameters/index.js +0 -6
  48. package/lib/cross-region-ssm-parameter.d.ts +0 -13
  49. package/lib/cross-region-ssm-parameter.js +0 -46
  50. package/lib/ecs/cluster.d.ts +0 -25
  51. package/lib/ecs/cluster.js +0 -70
  52. package/lib/ecs/fargate-service.d.ts +0 -62
  53. package/lib/ecs/fargate-service.js +0 -99
  54. package/lib/ecs/index.d.ts +0 -3
  55. package/lib/ecs/index.js +0 -10
  56. package/lib/ecs/listener-rule.d.ts +0 -25
  57. package/lib/ecs/listener-rule.js +0 -27
  58. package/lib/ecs-update-image/artifact-status.d.ts +0 -39
  59. package/lib/ecs-update-image/artifact-status.js +0 -41
  60. package/lib/ecs-update-image/ecs-update-image.d.ts +0 -41
  61. package/lib/ecs-update-image/ecs-update-image.js +0 -98
  62. package/lib/ecs-update-image/index.d.ts +0 -3
  63. package/lib/ecs-update-image/index.js +0 -10
  64. package/lib/ecs-update-image/start-deploy-handler.d.ts +0 -6
  65. package/lib/ecs-update-image/start-deploy-handler.js +0 -104
  66. package/lib/ecs-update-image/status-handler.d.ts +0 -11
  67. package/lib/ecs-update-image/status-handler.js +0 -74
  68. package/lib/ecs-update-image/tag.d.ts +0 -47
  69. package/lib/ecs-update-image/tag.js +0 -67
  70. package/lib/feature-flags.d.ts +0 -18
  71. package/lib/feature-flags.js +0 -48
  72. package/lib/griid/artefact-bucket.d.ts +0 -7
  73. package/lib/griid/artefact-bucket.js +0 -30
  74. package/lib/griid/index.d.ts +0 -4
  75. package/lib/griid/index.js +0 -18
  76. package/lib/hosted-zone-with-param.d.ts +0 -29
  77. package/lib/hosted-zone-with-param.js +0 -65
  78. package/lib/index.d.ts +0 -32
  79. package/lib/kinesis/index.d.ts +0 -1
  80. package/lib/kinesis/index.js +0 -6
  81. package/lib/kinesis/kinesis-to-datadog-stream.d.ts +0 -28
  82. package/lib/kinesis/kinesis-to-datadog-stream.js +0 -126
  83. package/lib/load-balancer/index.d.ts +0 -1
  84. package/lib/load-balancer/index.js +0 -6
  85. package/lib/load-balancer/load-balancer.d.ts +0 -16
  86. package/lib/load-balancer/load-balancer.js +0 -60
  87. package/lib/pipelines/conventions.d.ts +0 -14
  88. package/lib/pipelines/conventions.js +0 -24
  89. package/lib/pipelines/deploy-env.d.ts +0 -18
  90. package/lib/pipelines/deploy-env.js +0 -96
  91. package/lib/pipelines/index.d.ts +0 -2
  92. package/lib/pipelines/index.js +0 -8
  93. package/lib/pipelines/liflig-cdk-deployer-deps.d.ts +0 -13
  94. package/lib/pipelines/liflig-cdk-deployer-deps.js +0 -35
  95. package/lib/pipelines/pipeline.d.ts +0 -78
  96. package/lib/pipelines/pipeline.js +0 -224
  97. package/lib/platform/index.d.ts +0 -1
  98. package/lib/platform/index.js +0 -7
  99. package/lib/platform/platform.d.ts +0 -37
  100. package/lib/platform/platform.js +0 -57
  101. package/lib/rds/database.d.ts +0 -49
  102. package/lib/rds/database.js +0 -60
  103. package/lib/rds/index.d.ts +0 -1
  104. package/lib/rds/index.js +0 -6
  105. package/lib/ses/configurationsetdeliveryoptions/index.d.ts +0 -26
  106. package/lib/ses/configurationsetdeliveryoptions/index.js +0 -48
  107. package/lib/ses/configurationsetsnsdestination/handler.d.ts +0 -17
  108. package/lib/ses/configurationsetsnsdestination/handler.js +0 -75
  109. package/lib/ses/configurationsetsnsdestination/index.d.ts +0 -29
  110. package/lib/ses/configurationsetsnsdestination/index.js +0 -75
  111. package/lib/ses/index.d.ts +0 -4
  112. package/lib/ses/index.js +0 -12
  113. package/lib/ses/sesdomain/handler.d.ts +0 -10
  114. package/lib/ses/sesdomain/handler.js +0 -82
  115. package/lib/ses/sesdomain/index.d.ts +0 -57
  116. package/lib/ses/sesdomain/index.js +0 -94
  117. package/lib/ses/sesverifyemail/handler.d.ts +0 -9
  118. package/lib/ses/sesverifyemail/handler.js +0 -25
  119. package/lib/ses/sesverifyemail/index.d.ts +0 -13
  120. package/lib/ses/sesverifyemail/index.js +0 -51
  121. package/lib/snapshots.d.ts +0 -4
  122. package/lib/snapshots.js +0 -214
  123. package/lib/ssm-parameter-backed-resource.d.ts +0 -45
  124. package/lib/ssm-parameter-backed-resource.js +0 -67
  125. package/lib/ssm-parameter-reader.d.ts +0 -21
  126. package/lib/ssm-parameter-reader.js +0 -48
  127. package/lib/tags.d.ts +0 -8
  128. package/lib/tags.js +0 -36
  129. package/lib/utils.d.ts +0 -2
  130. package/lib/utils.js +0 -17
  131. package/lib/webapp/index.d.ts +0 -3
  132. package/lib/webapp/index.js +0 -10
  133. package/lib/webapp/monitor.d.ts +0 -187
  134. package/lib/webapp/monitor.js +0 -156
  135. package/lib/webapp/security-headers.d.ts +0 -38
  136. package/lib/webapp/security-headers.js +0 -129
  137. package/lib/webapp/webapp.d.ts +0 -116
  138. package/lib/webapp/webapp.js +0 -118
  139. package/lib/webapp-deploy-via-role.d.ts +0 -25
  140. package/lib/webapp-deploy-via-role.js +0 -32
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.configurationSetSnsDestinationHandler = void 0;
4
- // This function is inline-compiled for the lambda.
5
- // It must be self-contained.
6
- const configurationSetSnsDestinationHandler = async (event) => {
7
- const AWS = require("aws-sdk");
8
- const ses = new AWS.SESV2();
9
- const configurationSetName = event.ResourceProperties.ConfigurationSetName;
10
- const eventDestinationName = event.ResourceProperties.EventDestinationName;
11
- const snsTopicArn = event.ResourceProperties.SnsTopicArn;
12
- const matchingEventTypes = event.ResourceProperties.MatchingEventTypes;
13
- const eventDestination = {
14
- MatchingEventTypes: matchingEventTypes,
15
- Enabled: true,
16
- SnsDestination: {
17
- TopicArn: snsTopicArn,
18
- },
19
- };
20
- console.log(`EventDestination ${JSON.stringify(eventDestination)}`);
21
- switch (event.RequestType) {
22
- case "Delete":
23
- const deleteResponse = await ses
24
- .deleteConfigurationSetEventDestination({
25
- ConfigurationSetName: configurationSetName,
26
- EventDestinationName: eventDestinationName,
27
- })
28
- .promise();
29
- console.log(`ses.deleteConfigurationSetEventDestination: ${JSON.stringify(deleteResponse)}`);
30
- return {
31
- PhysicalResourceId: event.PhysicalResourceId,
32
- };
33
- case "Create":
34
- const createResponse = await ses
35
- .createConfigurationSetEventDestination({
36
- ConfigurationSetName: configurationSetName,
37
- EventDestinationName: eventDestinationName,
38
- EventDestination: eventDestination,
39
- })
40
- .promise();
41
- console.log(`ses.createConfigurationSetEventDestination: ${JSON.stringify(createResponse)}`);
42
- return {
43
- PhysicalResourceId: `ConfigurationSetSnsDestination-${configurationSetName}-${eventDestinationName}`,
44
- };
45
- case "Update":
46
- const previousEventDestinationName = event.OldResourceProperties.EventDestinationName;
47
- const previousConfigurationSetName = event.OldResourceProperties.ConfigurationSetName;
48
- if (configurationSetName !== previousConfigurationSetName ||
49
- eventDestinationName !== previousEventDestinationName) {
50
- const createResponse = await ses
51
- .createConfigurationSetEventDestination({
52
- ConfigurationSetName: configurationSetName,
53
- EventDestinationName: eventDestinationName,
54
- EventDestination: eventDestination,
55
- })
56
- .promise();
57
- console.log(`ses.createConfigurationSetEventDestination: ${JSON.stringify(createResponse)}`);
58
- }
59
- else {
60
- const updateResponse = await ses
61
- .updateConfigurationSetEventDestination({
62
- ConfigurationSetName: configurationSetName,
63
- EventDestinationName: eventDestinationName,
64
- EventDestination: eventDestination,
65
- })
66
- .promise();
67
- console.log(`ses.UpdateConfigurationSetEventDestination: ${JSON.stringify(updateResponse)}`);
68
- }
69
- return {
70
- PhysicalResourceId: `ConfigurationSetSnsDestination-${configurationSetName}-${eventDestinationName}`,
71
- };
72
- }
73
- };
74
- exports.configurationSetSnsDestinationHandler = configurationSetSnsDestinationHandler;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXMvY29uZmlndXJhdGlvbnNldHNuc2Rlc3RpbmF0aW9uL2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0JBLG1EQUFtRDtBQUNuRCw2QkFBNkI7QUFDdEIsTUFBTSxxQ0FBcUMsR0FBbUIsS0FBSyxFQUN4RSxLQUFLLEVBQ0wsRUFBRTtJQUNGLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUU5QixNQUFNLEdBQUcsR0FBYyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQWdCLENBQUE7SUFFcEQsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUE7SUFDMUUsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUE7SUFDMUUsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQTtJQUN4RCxNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQTtJQUV0RSxNQUFNLGdCQUFnQixHQUFnRDtRQUNwRSxrQkFBa0IsRUFBRSxrQkFBa0I7UUFDdEMsT0FBTyxFQUFFLElBQUk7UUFDYixjQUFjLEVBQUU7WUFDZCxRQUFRLEVBQUUsV0FBVztTQUN0QjtLQUNGLENBQUE7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRW5FLFFBQVEsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFCLEtBQUssUUFBUTtZQUNYLE1BQU0sY0FBYyxHQUFHLE1BQU0sR0FBRztpQkFDN0Isc0NBQXNDLENBQUM7Z0JBQ3RDLG9CQUFvQixFQUFFLG9CQUFvQjtnQkFDMUMsb0JBQW9CLEVBQUUsb0JBQW9CO2FBQzNDLENBQUM7aUJBQ0QsT0FBTyxFQUFFLENBQUE7WUFDWixPQUFPLENBQUMsR0FBRyxDQUNULCtDQUErQyxJQUFJLENBQUMsU0FBUyxDQUMzRCxjQUFjLENBQ2YsRUFBRSxDQUNKLENBQUE7WUFFRCxPQUFPO2dCQUNMLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7YUFDN0MsQ0FBQTtRQUVILEtBQUssUUFBUTtZQUNYLE1BQU0sY0FBYyxHQUFHLE1BQU0sR0FBRztpQkFDN0Isc0NBQXNDLENBQUM7Z0JBQ3RDLG9CQUFvQixFQUFFLG9CQUFvQjtnQkFDMUMsb0JBQW9CLEVBQUUsb0JBQW9CO2dCQUMxQyxnQkFBZ0IsRUFBRSxnQkFBZ0I7YUFDbkMsQ0FBQztpQkFDRCxPQUFPLEVBQUUsQ0FBQTtZQUNaLE9BQU8sQ0FBQyxHQUFHLENBQ1QsK0NBQStDLElBQUksQ0FBQyxTQUFTLENBQzNELGNBQWMsQ0FDZixFQUFFLENBQ0osQ0FBQTtZQUNELE9BQU87Z0JBQ0wsa0JBQWtCLEVBQUUsa0NBQWtDLG9CQUFvQixJQUFJLG9CQUFvQixFQUFFO2FBQ3JHLENBQUE7UUFFSCxLQUFLLFFBQVE7WUFDWCxNQUFNLDRCQUE0QixHQUNoQyxLQUFLLENBQUMscUJBQXNCLENBQUMsb0JBQW9CLENBQUE7WUFDbkQsTUFBTSw0QkFBNEIsR0FDaEMsS0FBSyxDQUFDLHFCQUFzQixDQUFDLG9CQUFvQixDQUFBO1lBRW5ELElBQ0Usb0JBQW9CLEtBQUssNEJBQTRCO2dCQUNyRCxvQkFBb0IsS0FBSyw0QkFBNEIsRUFDckQsQ0FBQztnQkFDRCxNQUFNLGNBQWMsR0FBRyxNQUFNLEdBQUc7cUJBQzdCLHNDQUFzQyxDQUFDO29CQUN0QyxvQkFBb0IsRUFBRSxvQkFBb0I7b0JBQzFDLG9CQUFvQixFQUFFLG9CQUFvQjtvQkFDMUMsZ0JBQWdCLEVBQUUsZ0JBQWdCO2lCQUNuQyxDQUFDO3FCQUNELE9BQU8sRUFBRSxDQUFBO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQ1QsK0NBQStDLElBQUksQ0FBQyxTQUFTLENBQzNELGNBQWMsQ0FDZixFQUFFLENBQ0osQ0FBQTtZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLGNBQWMsR0FBRyxNQUFNLEdBQUc7cUJBQzdCLHNDQUFzQyxDQUFDO29CQUN0QyxvQkFBb0IsRUFBRSxvQkFBb0I7b0JBQzFDLG9CQUFvQixFQUFFLG9CQUFvQjtvQkFDMUMsZ0JBQWdCLEVBQUUsZ0JBQWdCO2lCQUNuQyxDQUFDO3FCQUNELE9BQU8sRUFBRSxDQUFBO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQ1QsK0NBQStDLElBQUksQ0FBQyxTQUFTLENBQzNELGNBQWMsQ0FDZixFQUFFLENBQ0osQ0FBQTtZQUNILENBQUM7WUFFRCxPQUFPO2dCQUNMLGtCQUFrQixFQUFFLGtDQUFrQyxvQkFBb0IsSUFBSSxvQkFBb0IsRUFBRTthQUNyRyxDQUFBO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQTtBQWxHWSxRQUFBLHFDQUFxQyx5Q0FrR2pEIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGwgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlcyAqL1xuaW1wb3J0IHR5cGUgKiBhcyBfQVdTIGZyb20gXCJhd3Mtc2RrXCJcblxuaW50ZXJmYWNlIFJlc291cmNlUHJvcHMge1xuICBDb25maWd1cmF0aW9uU2V0TmFtZTogc3RyaW5nXG4gIEV2ZW50RGVzdGluYXRpb25OYW1lOiBzdHJpbmdcbiAgU25zVG9waWNBcm46IHN0cmluZ1xuICBNYXRjaGluZ0V2ZW50VHlwZXM6IHN0cmluZ1tdXG59XG5cbnR5cGUgT25FdmVudEhhbmRsZXIgPSAoZXZlbnQ6IHtcbiAgUGh5c2ljYWxSZXNvdXJjZUlkPzogc3RyaW5nXG4gIFJlcXVlc3RUeXBlOiBcIkNyZWF0ZVwiIHwgXCJVcGRhdGVcIiB8IFwiRGVsZXRlXCJcbiAgUmVzb3VyY2VQcm9wZXJ0aWVzOiBSZXNvdXJjZVByb3BzXG4gIE9sZFJlc291cmNlUHJvcGVydGllcz86IFJlc291cmNlUHJvcHNcbn0pID0+IFByb21pc2U8e1xuICBQaHlzaWNhbFJlc291cmNlSWQ/OiBzdHJpbmdcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgRGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT5cbn0+XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgaW5saW5lLWNvbXBpbGVkIGZvciB0aGUgbGFtYmRhLlxuLy8gSXQgbXVzdCBiZSBzZWxmLWNvbnRhaW5lZC5cbmV4cG9ydCBjb25zdCBjb25maWd1cmF0aW9uU2V0U25zRGVzdGluYXRpb25IYW5kbGVyOiBPbkV2ZW50SGFuZGxlciA9IGFzeW5jIChcbiAgZXZlbnQsXG4pID0+IHtcbiAgY29uc3QgQVdTID0gcmVxdWlyZShcImF3cy1zZGtcIilcblxuICBjb25zdCBzZXM6IEFXUy5TRVNWMiA9IG5ldyBBV1MuU0VTVjIoKSBhcyBfQVdTLlNFU1YyXG5cbiAgY29uc3QgY29uZmlndXJhdGlvblNldE5hbWUgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuQ29uZmlndXJhdGlvblNldE5hbWVcbiAgY29uc3QgZXZlbnREZXN0aW5hdGlvbk5hbWUgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRXZlbnREZXN0aW5hdGlvbk5hbWVcbiAgY29uc3Qgc25zVG9waWNBcm4gPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuU25zVG9waWNBcm5cbiAgY29uc3QgbWF0Y2hpbmdFdmVudFR5cGVzID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLk1hdGNoaW5nRXZlbnRUeXBlc1xuXG4gIGNvbnN0IGV2ZW50RGVzdGluYXRpb246IF9BV1MuU0VTVjIuVHlwZXMuRXZlbnREZXN0aW5hdGlvbkRlZmluaXRpb24gPSB7XG4gICAgTWF0Y2hpbmdFdmVudFR5cGVzOiBtYXRjaGluZ0V2ZW50VHlwZXMsXG4gICAgRW5hYmxlZDogdHJ1ZSxcbiAgICBTbnNEZXN0aW5hdGlvbjoge1xuICAgICAgVG9waWNBcm46IHNuc1RvcGljQXJuLFxuICAgIH0sXG4gIH1cblxuICBjb25zb2xlLmxvZyhgRXZlbnREZXN0aW5hdGlvbiAke0pTT04uc3RyaW5naWZ5KGV2ZW50RGVzdGluYXRpb24pfWApXG5cbiAgc3dpdGNoIChldmVudC5SZXF1ZXN0VHlwZSkge1xuICAgIGNhc2UgXCJEZWxldGVcIjpcbiAgICAgIGNvbnN0IGRlbGV0ZVJlc3BvbnNlID0gYXdhaXQgc2VzXG4gICAgICAgIC5kZWxldGVDb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvbih7XG4gICAgICAgICAgQ29uZmlndXJhdGlvblNldE5hbWU6IGNvbmZpZ3VyYXRpb25TZXROYW1lLFxuICAgICAgICAgIEV2ZW50RGVzdGluYXRpb25OYW1lOiBldmVudERlc3RpbmF0aW9uTmFtZSxcbiAgICAgICAgfSlcbiAgICAgICAgLnByb21pc2UoKVxuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBzZXMuZGVsZXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb246ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgZGVsZXRlUmVzcG9uc2UsXG4gICAgICAgICl9YCxcbiAgICAgIClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBldmVudC5QaHlzaWNhbFJlc291cmNlSWQsXG4gICAgICB9XG5cbiAgICBjYXNlIFwiQ3JlYXRlXCI6XG4gICAgICBjb25zdCBjcmVhdGVSZXNwb25zZSA9IGF3YWl0IHNlc1xuICAgICAgICAuY3JlYXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb24oe1xuICAgICAgICAgIENvbmZpZ3VyYXRpb25TZXROYW1lOiBjb25maWd1cmF0aW9uU2V0TmFtZSxcbiAgICAgICAgICBFdmVudERlc3RpbmF0aW9uTmFtZTogZXZlbnREZXN0aW5hdGlvbk5hbWUsXG4gICAgICAgICAgRXZlbnREZXN0aW5hdGlvbjogZXZlbnREZXN0aW5hdGlvbixcbiAgICAgICAgfSlcbiAgICAgICAgLnByb21pc2UoKVxuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBzZXMuY3JlYXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb246ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgY3JlYXRlUmVzcG9uc2UsXG4gICAgICAgICl9YCxcbiAgICAgIClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIFBoeXNpY2FsUmVzb3VyY2VJZDogYENvbmZpZ3VyYXRpb25TZXRTbnNEZXN0aW5hdGlvbi0ke2NvbmZpZ3VyYXRpb25TZXROYW1lfS0ke2V2ZW50RGVzdGluYXRpb25OYW1lfWAsXG4gICAgICB9XG5cbiAgICBjYXNlIFwiVXBkYXRlXCI6XG4gICAgICBjb25zdCBwcmV2aW91c0V2ZW50RGVzdGluYXRpb25OYW1lID1cbiAgICAgICAgZXZlbnQuT2xkUmVzb3VyY2VQcm9wZXJ0aWVzIS5FdmVudERlc3RpbmF0aW9uTmFtZVxuICAgICAgY29uc3QgcHJldmlvdXNDb25maWd1cmF0aW9uU2V0TmFtZSA9XG4gICAgICAgIGV2ZW50Lk9sZFJlc291cmNlUHJvcGVydGllcyEuQ29uZmlndXJhdGlvblNldE5hbWVcblxuICAgICAgaWYgKFxuICAgICAgICBjb25maWd1cmF0aW9uU2V0TmFtZSAhPT0gcHJldmlvdXNDb25maWd1cmF0aW9uU2V0TmFtZSB8fFxuICAgICAgICBldmVudERlc3RpbmF0aW9uTmFtZSAhPT0gcHJldmlvdXNFdmVudERlc3RpbmF0aW9uTmFtZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZVJlc3BvbnNlID0gYXdhaXQgc2VzXG4gICAgICAgICAgLmNyZWF0ZUNvbmZpZ3VyYXRpb25TZXRFdmVudERlc3RpbmF0aW9uKHtcbiAgICAgICAgICAgIENvbmZpZ3VyYXRpb25TZXROYW1lOiBjb25maWd1cmF0aW9uU2V0TmFtZSxcbiAgICAgICAgICAgIEV2ZW50RGVzdGluYXRpb25OYW1lOiBldmVudERlc3RpbmF0aW9uTmFtZSxcbiAgICAgICAgICAgIEV2ZW50RGVzdGluYXRpb246IGV2ZW50RGVzdGluYXRpb24sXG4gICAgICAgICAgfSlcbiAgICAgICAgICAucHJvbWlzZSgpXG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBzZXMuY3JlYXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb246ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBjcmVhdGVSZXNwb25zZSxcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZVJlc3BvbnNlID0gYXdhaXQgc2VzXG4gICAgICAgICAgLnVwZGF0ZUNvbmZpZ3VyYXRpb25TZXRFdmVudERlc3RpbmF0aW9uKHtcbiAgICAgICAgICAgIENvbmZpZ3VyYXRpb25TZXROYW1lOiBjb25maWd1cmF0aW9uU2V0TmFtZSxcbiAgICAgICAgICAgIEV2ZW50RGVzdGluYXRpb25OYW1lOiBldmVudERlc3RpbmF0aW9uTmFtZSxcbiAgICAgICAgICAgIEV2ZW50RGVzdGluYXRpb246IGV2ZW50RGVzdGluYXRpb24sXG4gICAgICAgICAgfSlcbiAgICAgICAgICAucHJvbWlzZSgpXG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBzZXMuVXBkYXRlQ29uZmlndXJhdGlvblNldEV2ZW50RGVzdGluYXRpb246ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICB1cGRhdGVSZXNwb25zZSxcbiAgICAgICAgICApfWAsXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBgQ29uZmlndXJhdGlvblNldFNuc0Rlc3RpbmF0aW9uLSR7Y29uZmlndXJhdGlvblNldE5hbWV9LSR7ZXZlbnREZXN0aW5hdGlvbk5hbWV9YCxcbiAgICAgIH1cbiAgfVxufVxuIl19
@@ -1,29 +0,0 @@
1
- import * as constructs from "constructs";
2
- import * as sns from "aws-cdk-lib/aws-sns";
3
- export type ConfigurationSetSnsDestinationEventType = "SEND" | "REJECT" | "BOUNCE" | "COMPLAINT" | "DELIVERY" | "OPEN" | "CLICK" | "RENDERING_FAILURE" | "DELIVERY_DELAY" | "SUBSCRIPTION";
4
- export interface ConfigurationSetSnsDestinationProps {
5
- /**
6
- * Whether SES events will be logged to CloudWatch
7
- * @default true
8
- */
9
- logEvents?: boolean;
10
- /**
11
- * The SES configuration set name
12
- */
13
- configurationSetName: string;
14
- /**
15
- * The SES configuration set event destination name
16
- */
17
- eventDestinationName: string;
18
- /**
19
- * SNS topic to send bounces to
20
- */
21
- snsTopic: sns.ITopic;
22
- /**
23
- * Event types to match
24
- */
25
- matchingEventTypes: ConfigurationSetSnsDestinationEventType[];
26
- }
27
- export declare class ConfigurationSetSnsDestination extends constructs.Construct {
28
- constructor(scope: constructs.Construct, id: string, props: ConfigurationSetSnsDestinationProps);
29
- }
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConfigurationSetSnsDestination = void 0;
4
- const constructs = require("constructs");
5
- const iam = require("aws-cdk-lib/aws-iam");
6
- const lambda = require("aws-cdk-lib/aws-lambda");
7
- const cdk = require("aws-cdk-lib");
8
- const cr = require("aws-cdk-lib/custom-resources");
9
- const handler_1 = require("./handler");
10
- const aws_logs_1 = require("aws-cdk-lib/aws-logs");
11
- const snsSubscriptions = require("aws-cdk-lib/aws-sns-subscriptions");
12
- class ConfigurationSetSnsDestination extends constructs.Construct {
13
- constructor(scope, id, props) {
14
- var _a;
15
- super(scope, id);
16
- new cdk.CustomResource(this, "Resource", {
17
- serviceToken: ConfigurationSetSnsDestinationProvider.getOrCreate(this).serviceToken,
18
- properties: {
19
- ConfigurationSetName: props.configurationSetName,
20
- EventDestinationName: props.eventDestinationName,
21
- SnsTopicArn: props.snsTopic.topicArn,
22
- MatchingEventTypes: props.matchingEventTypes,
23
- Serial: 1,
24
- },
25
- });
26
- const sesEventLoggerFunction = new lambda.Function(this, "EventsHandler", {
27
- code: new lambda.InlineCode(`exports.handler = ${sesEventLoggerHandler.toString()};`),
28
- handler: "index.handler",
29
- runtime: lambda.Runtime.NODEJS_16_X,
30
- logRetention: aws_logs_1.RetentionDays.THREE_MONTHS,
31
- });
32
- if ((_a = props.logEvents) !== null && _a !== void 0 ? _a : true) {
33
- props.snsTopic.addSubscription(new snsSubscriptions.LambdaSubscription(sesEventLoggerFunction));
34
- }
35
- }
36
- }
37
- exports.ConfigurationSetSnsDestination = ConfigurationSetSnsDestination;
38
- const sesEventLoggerHandler = (event) => {
39
- event.Records.forEach((record) => console.log(`SES event message from SNS: ${record.Sns.Message}`));
40
- };
41
- class ConfigurationSetSnsDestinationProvider extends constructs.Construct {
42
- /**
43
- * Returns the singleton provider.
44
- */
45
- static getOrCreate(scope) {
46
- const stack = cdk.Stack.of(scope);
47
- const id = "liflig-cdk.configuration-set-sns-destination";
48
- return (stack.node.tryFindChild(id) ||
49
- new ConfigurationSetSnsDestinationProvider(stack, id));
50
- }
51
- constructor(scope, id) {
52
- super(scope, id);
53
- this.provider = new cr.Provider(this, "Provider", {
54
- onEventHandler: new lambda.Function(this, "Function", {
55
- code: new lambda.InlineCode(`exports.handler = ${handler_1.configurationSetSnsDestinationHandler.toString()};`),
56
- handler: "index.handler",
57
- runtime: lambda.Runtime.NODEJS_16_X,
58
- timeout: cdk.Duration.minutes(5),
59
- initialPolicy: [
60
- new iam.PolicyStatement({
61
- actions: [
62
- "ses:CreateConfigurationSetEventDestination",
63
- "ses:UpdateConfigurationSetEventDestination",
64
- "ses:DeleteConfigurationSetEventDestination",
65
- "ses:GetConfigurationSetEventDestinations",
66
- ],
67
- resources: ["*"],
68
- }),
69
- ],
70
- }),
71
- });
72
- this.serviceToken = this.provider.serviceToken;
73
- }
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VzL2NvbmZpZ3VyYXRpb25zZXRzbnNkZXN0aW5hdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBd0M7QUFDeEMsMkNBQTBDO0FBQzFDLGlEQUFnRDtBQUVoRCxtQ0FBa0M7QUFDbEMsbURBQWtEO0FBQ2xELHVDQUFpRTtBQUNqRSxtREFBb0Q7QUFDcEQsc0VBQXFFO0FBdUNyRSxNQUFhLDhCQUErQixTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ3RFLFlBQ0UsS0FBMkIsRUFDM0IsRUFBVSxFQUNWLEtBQTBDOztRQUUxQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3ZDLFlBQVksRUFDVixzQ0FBc0MsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWTtZQUN2RSxVQUFVLEVBQUU7Z0JBQ1Ysb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtnQkFDaEQsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtnQkFDaEQsV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUTtnQkFDcEMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtnQkFDNUMsTUFBTSxFQUFFLENBQUM7YUFDVjtTQUNGLENBQUMsQ0FBQTtRQUVGLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDeEUsSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FDekIscUJBQXFCLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLENBQ3pEO1lBQ0QsT0FBTyxFQUFFLGVBQWU7WUFDeEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNuQyxZQUFZLEVBQUUsd0JBQWEsQ0FBQyxZQUFZO1NBQ3pDLENBQUMsQ0FBQTtRQUVGLElBQUksTUFBQSxLQUFLLENBQUMsU0FBUyxtQ0FBSSxJQUFJLEVBQUUsQ0FBQztZQUM1QixLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FDNUIsSUFBSSxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUNoRSxDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRjtBQW5DRCx3RUFtQ0M7QUFFRCxNQUFNLHFCQUFxQixHQUFlLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDbEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQ2pFLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRCxNQUFNLHNDQUF1QyxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ3ZFOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUEyQjtRQUNuRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNqQyxNQUFNLEVBQUUsR0FBRyw4Q0FBOEMsQ0FBQTtRQUN6RCxPQUFPLENBQ0osS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUE0QztZQUN2RSxJQUFJLHNDQUFzQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDdEQsQ0FBQTtJQUNILENBQUM7SUFLRCxZQUFZLEtBQTJCLEVBQUUsRUFBVTtRQUNqRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDaEQsY0FBYyxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNwRCxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUN6QixxQkFBcUIsK0NBQXFDLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FDekU7Z0JBQ0QsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7Z0JBQ25DLE9BQU8sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLGFBQWEsRUFBRTtvQkFDYixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7d0JBQ3RCLE9BQU8sRUFBRTs0QkFDUCw0Q0FBNEM7NEJBQzVDLDRDQUE0Qzs0QkFDNUMsNENBQTRDOzRCQUM1QywwQ0FBMEM7eUJBQzNDO3dCQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztxQkFDakIsQ0FBQztpQkFDSDthQUNGLENBQUM7U0FDSCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFBO0lBQ2hELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgKiBhcyBzbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zbnNcIlxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBjciBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiXG5pbXBvcnQgeyBjb25maWd1cmF0aW9uU2V0U25zRGVzdGluYXRpb25IYW5kbGVyIH0gZnJvbSBcIi4vaGFuZGxlclwiXG5pbXBvcnQgeyBSZXRlbnRpb25EYXlzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCJcbmltcG9ydCAqIGFzIHNuc1N1YnNjcmlwdGlvbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9uc1wiXG5pbXBvcnQgeyBTTlNIYW5kbGVyIH0gZnJvbSBcImF3cy1sYW1iZGFcIlxuXG5leHBvcnQgdHlwZSBDb25maWd1cmF0aW9uU2V0U25zRGVzdGluYXRpb25FdmVudFR5cGUgPVxuICB8IFwiU0VORFwiXG4gIHwgXCJSRUpFQ1RcIlxuICB8IFwiQk9VTkNFXCJcbiAgfCBcIkNPTVBMQUlOVFwiXG4gIHwgXCJERUxJVkVSWVwiXG4gIHwgXCJPUEVOXCJcbiAgfCBcIkNMSUNLXCJcbiAgfCBcIlJFTkRFUklOR19GQUlMVVJFXCJcbiAgfCBcIkRFTElWRVJZX0RFTEFZXCJcbiAgfCBcIlNVQlNDUklQVElPTlwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJhdGlvblNldFNuc0Rlc3RpbmF0aW9uUHJvcHMge1xuICAvKipcbiAgICogV2hldGhlciBTRVMgZXZlbnRzIHdpbGwgYmUgbG9nZ2VkIHRvIENsb3VkV2F0Y2hcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgbG9nRXZlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogVGhlIFNFUyBjb25maWd1cmF0aW9uIHNldCBuYW1lXG4gICAqL1xuICBjb25maWd1cmF0aW9uU2V0TmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgU0VTIGNvbmZpZ3VyYXRpb24gc2V0IGV2ZW50IGRlc3RpbmF0aW9uIG5hbWVcbiAgICovXG4gIGV2ZW50RGVzdGluYXRpb25OYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFNOUyB0b3BpYyB0byBzZW5kIGJvdW5jZXMgdG9cbiAgICovXG4gIHNuc1RvcGljOiBzbnMuSVRvcGljXG4gIC8qKlxuICAgKiBFdmVudCB0eXBlcyB0byBtYXRjaFxuICAgKi9cbiAgbWF0Y2hpbmdFdmVudFR5cGVzOiBDb25maWd1cmF0aW9uU2V0U25zRGVzdGluYXRpb25FdmVudFR5cGVbXVxufVxuXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvblNldFNuc0Rlc3RpbmF0aW9uIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogQ29uZmlndXJhdGlvblNldFNuc0Rlc3RpbmF0aW9uUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46XG4gICAgICAgIENvbmZpZ3VyYXRpb25TZXRTbnNEZXN0aW5hdGlvblByb3ZpZGVyLmdldE9yQ3JlYXRlKHRoaXMpLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgQ29uZmlndXJhdGlvblNldE5hbWU6IHByb3BzLmNvbmZpZ3VyYXRpb25TZXROYW1lLFxuICAgICAgICBFdmVudERlc3RpbmF0aW9uTmFtZTogcHJvcHMuZXZlbnREZXN0aW5hdGlvbk5hbWUsXG4gICAgICAgIFNuc1RvcGljQXJuOiBwcm9wcy5zbnNUb3BpYy50b3BpY0FybixcbiAgICAgICAgTWF0Y2hpbmdFdmVudFR5cGVzOiBwcm9wcy5tYXRjaGluZ0V2ZW50VHlwZXMsXG4gICAgICAgIFNlcmlhbDogMSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIGNvbnN0IHNlc0V2ZW50TG9nZ2VyRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwiRXZlbnRzSGFuZGxlclwiLCB7XG4gICAgICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoXG4gICAgICAgIGBleHBvcnRzLmhhbmRsZXIgPSAke3Nlc0V2ZW50TG9nZ2VySGFuZGxlci50b1N0cmluZygpfTtgLFxuICAgICAgKSxcbiAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE2X1gsXG4gICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuVEhSRUVfTU9OVEhTLFxuICAgIH0pXG5cbiAgICBpZiAocHJvcHMubG9nRXZlbnRzID8/IHRydWUpIHtcbiAgICAgIHByb3BzLnNuc1RvcGljLmFkZFN1YnNjcmlwdGlvbihcbiAgICAgICAgbmV3IHNuc1N1YnNjcmlwdGlvbnMuTGFtYmRhU3Vic2NyaXB0aW9uKHNlc0V2ZW50TG9nZ2VyRnVuY3Rpb24pLFxuICAgICAgKVxuICAgIH1cbiAgfVxufVxuXG5jb25zdCBzZXNFdmVudExvZ2dlckhhbmRsZXI6IFNOU0hhbmRsZXIgPSAoZXZlbnQpID0+IHtcbiAgZXZlbnQuUmVjb3Jkcy5mb3JFYWNoKChyZWNvcmQpID0+XG4gICAgY29uc29sZS5sb2coYFNFUyBldmVudCBtZXNzYWdlIGZyb20gU05TOiAke3JlY29yZC5TbnMuTWVzc2FnZX1gKSxcbiAgKVxufVxuXG5jbGFzcyBDb25maWd1cmF0aW9uU2V0U25zRGVzdGluYXRpb25Qcm92aWRlciBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNpbmdsZXRvbiBwcm92aWRlci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ2V0T3JDcmVhdGUoc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0KSB7XG4gICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpXG4gICAgY29uc3QgaWQgPSBcImxpZmxpZy1jZGsuY29uZmlndXJhdGlvbi1zZXQtc25zLWRlc3RpbmF0aW9uXCJcbiAgICByZXR1cm4gKFxuICAgICAgKHN0YWNrLm5vZGUudHJ5RmluZENoaWxkKGlkKSBhcyBDb25maWd1cmF0aW9uU2V0U25zRGVzdGluYXRpb25Qcm92aWRlcikgfHxcbiAgICAgIG5ldyBDb25maWd1cmF0aW9uU2V0U25zRGVzdGluYXRpb25Qcm92aWRlcihzdGFjaywgaWQpXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlcjogY3IuUHJvdmlkZXJcbiAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2VUb2tlbjogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5wcm92aWRlciA9IG5ldyBjci5Qcm92aWRlcih0aGlzLCBcIlByb3ZpZGVyXCIsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwiRnVuY3Rpb25cIiwge1xuICAgICAgICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoXG4gICAgICAgICAgYGV4cG9ydHMuaGFuZGxlciA9ICR7Y29uZmlndXJhdGlvblNldFNuc0Rlc3RpbmF0aW9uSGFuZGxlci50b1N0cmluZygpfTtgLFxuICAgICAgICApLFxuICAgICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE2X1gsXG4gICAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgICBpbml0aWFsUG9saWN5OiBbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICBcInNlczpDcmVhdGVDb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvblwiLFxuICAgICAgICAgICAgICBcInNlczpVcGRhdGVDb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvblwiLFxuICAgICAgICAgICAgICBcInNlczpEZWxldGVDb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvblwiLFxuICAgICAgICAgICAgICBcInNlczpHZXRDb25maWd1cmF0aW9uU2V0RXZlbnREZXN0aW5hdGlvbnNcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICB9KVxuXG4gICAgdGhpcy5zZXJ2aWNlVG9rZW4gPSB0aGlzLnByb3ZpZGVyLnNlcnZpY2VUb2tlblxuICB9XG59XG4iXX0=
@@ -1,4 +0,0 @@
1
- export { SesDomain } from "./sesdomain";
2
- export { SesVerifyEmail } from "./sesverifyemail";
3
- export { ConfigurationSetSnsDestinationProps, ConfigurationSetSnsDestinationEventType, ConfigurationSetSnsDestination, } from "./configurationsetsnsdestination";
4
- export { ConfigurationSetDeliveryOptions } from "./configurationsetdeliveryoptions";
package/lib/ses/index.js DELETED
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConfigurationSetDeliveryOptions = exports.ConfigurationSetSnsDestination = exports.SesVerifyEmail = exports.SesDomain = void 0;
4
- var sesdomain_1 = require("./sesdomain");
5
- Object.defineProperty(exports, "SesDomain", { enumerable: true, get: function () { return sesdomain_1.SesDomain; } });
6
- var sesverifyemail_1 = require("./sesverifyemail");
7
- Object.defineProperty(exports, "SesVerifyEmail", { enumerable: true, get: function () { return sesverifyemail_1.SesVerifyEmail; } });
8
- var configurationsetsnsdestination_1 = require("./configurationsetsnsdestination");
9
- Object.defineProperty(exports, "ConfigurationSetSnsDestination", { enumerable: true, get: function () { return configurationsetsnsdestination_1.ConfigurationSetSnsDestination; } });
10
- var configurationsetdeliveryoptions_1 = require("./configurationsetdeliveryoptions");
11
- Object.defineProperty(exports, "ConfigurationSetDeliveryOptions", { enumerable: true, get: function () { return configurationsetdeliveryoptions_1.ConfigurationSetDeliveryOptions; } });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF1QztBQUE5QixzR0FBQSxTQUFTLE9BQUE7QUFDbEIsbURBQWlEO0FBQXhDLGdIQUFBLGNBQWMsT0FBQTtBQUN2QixtRkFJeUM7QUFEdkMsZ0pBQUEsOEJBQThCLE9BQUE7QUFFaEMscUZBQW1GO0FBQTFFLGtKQUFBLCtCQUErQixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU2VzRG9tYWluIH0gZnJvbSBcIi4vc2VzZG9tYWluXCJcbmV4cG9ydCB7IFNlc1ZlcmlmeUVtYWlsIH0gZnJvbSBcIi4vc2VzdmVyaWZ5ZW1haWxcIlxuZXhwb3J0IHtcbiAgQ29uZmlndXJhdGlvblNldFNuc0Rlc3RpbmF0aW9uUHJvcHMsXG4gIENvbmZpZ3VyYXRpb25TZXRTbnNEZXN0aW5hdGlvbkV2ZW50VHlwZSxcbiAgQ29uZmlndXJhdGlvblNldFNuc0Rlc3RpbmF0aW9uLFxufSBmcm9tIFwiLi9jb25maWd1cmF0aW9uc2V0c25zZGVzdGluYXRpb25cIlxuZXhwb3J0IHsgQ29uZmlndXJhdGlvblNldERlbGl2ZXJ5T3B0aW9ucyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25zZXRkZWxpdmVyeW9wdGlvbnNcIlxuIl19
@@ -1,10 +0,0 @@
1
- type OnEventHandler = (event: {
2
- PhysicalResourceId?: string;
3
- RequestType: "Create" | "Update" | "Delete";
4
- ResourceProperties: Record<string, string>;
5
- }) => Promise<{
6
- PhysicalResourceId?: string;
7
- Data?: Record<string, any>;
8
- }>;
9
- export declare const sesDomainHandler: OnEventHandler;
10
- export {};
@@ -1,82 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sesDomainHandler = void 0;
4
- // This function is inline-compiled for the lambda.
5
- // It must be self-contained.
6
- const sesDomainHandler = async (event) => {
7
- const AWS = require("aws-sdk");
8
- const ttl = "1800";
9
- const ses = new AWS.SES();
10
- const sesv2 = new AWS.SESV2();
11
- const domainName = event.ResourceProperties["DomainName"];
12
- const includeVerificationRecord = event.ResourceProperties["IncludeVerificationRecord"] == "true";
13
- const defaultConfigurationSetName = event.ResourceProperties["DefaultConfigurationSetName"];
14
- if (!includeVerificationRecord) {
15
- console.log("Excluding verification TXT record");
16
- }
17
- function createRoute53RecordSets(verificationToken, dkimTokens) {
18
- const records = [];
19
- if (includeVerificationRecord) {
20
- records.push({
21
- Name: `_amazonses.${domainName}.`,
22
- Type: "TXT",
23
- ResourceRecords: [`"${verificationToken}"`],
24
- TTL: ttl,
25
- });
26
- }
27
- for (const token of dkimTokens) {
28
- records.push({
29
- Name: `${token}._domainkey.${domainName}.`,
30
- Type: "CNAME",
31
- ResourceRecords: [`${token}.dkim.amazonses.com.`],
32
- TTL: ttl,
33
- });
34
- }
35
- return records;
36
- }
37
- switch (event.RequestType) {
38
- case "Delete":
39
- const response = await ses
40
- .deleteIdentity({ Identity: domainName })
41
- .promise();
42
- console.log(`ses.deleteIdentity: ${JSON.stringify(response)}`);
43
- return {
44
- PhysicalResourceId: event.PhysicalResourceId,
45
- };
46
- case "Create":
47
- case "Update":
48
- // Idempotent.
49
- const response1 = await ses
50
- .verifyDomainIdentity({
51
- Domain: domainName,
52
- })
53
- .promise();
54
- console.log(`ses.verifyDomainIdentity: ${JSON.stringify(response1)}`);
55
- const verificationToken = response1["VerificationToken"];
56
- // Idempotent.
57
- const response2 = await ses
58
- .verifyDomainDkim({ Domain: domainName })
59
- .promise();
60
- console.log(`ses.verifyDomainDkim: ${JSON.stringify(response2)}`);
61
- const dkimTokens = response2["DkimTokens"];
62
- // Idempotent.
63
- const response3 = await sesv2
64
- .putEmailIdentityConfigurationSetAttributes({
65
- EmailIdentity: domainName,
66
- // ConfigurationSetName can be set to undefined to remove
67
- // the default configuration set from the identity.
68
- ConfigurationSetName: defaultConfigurationSetName,
69
- })
70
- .promise();
71
- console.log(`sesv2.putEmailIdentityConfigurationSetAttributes ${JSON.stringify(response3)}`);
72
- return {
73
- PhysicalResourceId: `SesDomain${domainName}`,
74
- Data: {
75
- Route53RecordSets: createRoute53RecordSets(verificationToken, dkimTokens),
76
- VerificationToken: verificationToken,
77
- },
78
- };
79
- }
80
- };
81
- exports.sesDomainHandler = sesDomainHandler;
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXMvc2VzZG9tYWluL2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBd0JBLG1EQUFtRDtBQUNuRCw2QkFBNkI7QUFDdEIsTUFBTSxnQkFBZ0IsR0FBbUIsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO0lBQzlELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUU5QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUE7SUFFbEIsTUFBTSxHQUFHLEdBQVksSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFjLENBQUE7SUFDOUMsTUFBTSxLQUFLLEdBQWMsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFnQixDQUFBO0lBRXRELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUN6RCxNQUFNLHlCQUF5QixHQUM3QixLQUFLLENBQUMsa0JBQWtCLENBQUMsMkJBQTJCLENBQUMsSUFBSSxNQUFNLENBQUE7SUFFakUsTUFBTSwyQkFBMkIsR0FDL0IsS0FBSyxDQUFDLGtCQUFrQixDQUFDLDZCQUE2QixDQUFDLENBQUE7SUFFekQsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFRCxTQUFTLHVCQUF1QixDQUM5QixpQkFBeUIsRUFDekIsVUFBb0I7UUFFcEIsTUFBTSxPQUFPLEdBQXdCLEVBQUUsQ0FBQTtRQUV2QyxJQUFJLHlCQUF5QixFQUFFLENBQUM7WUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxJQUFJLEVBQUUsY0FBYyxVQUFVLEdBQUc7Z0JBQ2pDLElBQUksRUFBRSxLQUFLO2dCQUNYLGVBQWUsRUFBRSxDQUFDLElBQUksaUJBQWlCLEdBQUcsQ0FBQztnQkFDM0MsR0FBRyxFQUFFLEdBQUc7YUFDVCxDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsS0FBSyxNQUFNLEtBQUssSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUMvQixPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLElBQUksRUFBRSxHQUFHLEtBQUssZUFBZSxVQUFVLEdBQUc7Z0JBQzFDLElBQUksRUFBRSxPQUFPO2dCQUNiLGVBQWUsRUFBRSxDQUFDLEdBQUcsS0FBSyxzQkFBc0IsQ0FBQztnQkFDakQsR0FBRyxFQUFFLEdBQUc7YUFDVCxDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELFFBQVEsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFCLEtBQUssUUFBUTtZQUNYLE1BQU0sUUFBUSxHQUFHLE1BQU0sR0FBRztpQkFDdkIsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO2lCQUN4QyxPQUFPLEVBQUUsQ0FBQTtZQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRTlELE9BQU87Z0JBQ0wsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjthQUM3QyxDQUFBO1FBRUgsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLFFBQVE7WUFDWCxjQUFjO1lBQ2QsTUFBTSxTQUFTLEdBQUcsTUFBTSxHQUFHO2lCQUN4QixvQkFBb0IsQ0FBQztnQkFDcEIsTUFBTSxFQUFFLFVBQVU7YUFDbkIsQ0FBQztpQkFDRCxPQUFPLEVBQUUsQ0FBQTtZQUVaLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBQ3JFLE1BQU0saUJBQWlCLEdBQUcsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUE7WUFFeEQsY0FBYztZQUNkLE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRztpQkFDeEIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7aUJBQ3hDLE9BQU8sRUFBRSxDQUFBO1lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDakUsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFBO1lBRTFDLGNBQWM7WUFDZCxNQUFNLFNBQVMsR0FBRyxNQUFNLEtBQUs7aUJBQzFCLDBDQUEwQyxDQUFDO2dCQUMxQyxhQUFhLEVBQUUsVUFBVTtnQkFDekIseURBQXlEO2dCQUN6RCxtREFBbUQ7Z0JBQ25ELG9CQUFvQixFQUFFLDJCQUEyQjthQUNsRCxDQUFDO2lCQUNELE9BQU8sRUFBRSxDQUFBO1lBQ1osT0FBTyxDQUFDLEdBQUcsQ0FDVCxvREFBb0QsSUFBSSxDQUFDLFNBQVMsQ0FDaEUsU0FBUyxDQUNWLEVBQUUsQ0FDSixDQUFBO1lBRUQsT0FBTztnQkFDTCxrQkFBa0IsRUFBRSxZQUFZLFVBQVUsRUFBRTtnQkFDNUMsSUFBSSxFQUFFO29CQUNKLGlCQUFpQixFQUFFLHVCQUF1QixDQUN4QyxpQkFBaUIsRUFDakIsVUFBVSxDQUNYO29CQUNELGlCQUFpQixFQUFFLGlCQUFpQjtpQkFDckM7YUFDRixDQUFBO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQTtBQXJHWSxRQUFBLGdCQUFnQixvQkFxRzVCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGwgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlcyAqL1xuaW1wb3J0IHR5cGUgKiBhcyBfQVdTIGZyb20gXCJhd3Mtc2RrXCJcblxudHlwZSBPbkV2ZW50SGFuZGxlciA9IChldmVudDoge1xuICBQaHlzaWNhbFJlc291cmNlSWQ/OiBzdHJpbmdcbiAgUmVxdWVzdFR5cGU6IFwiQ3JlYXRlXCIgfCBcIlVwZGF0ZVwiIHwgXCJEZWxldGVcIlxuICBSZXNvdXJjZVByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn0pID0+IFByb21pc2U8e1xuICBQaHlzaWNhbFJlc291cmNlSWQ/OiBzdHJpbmdcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgRGF0YT86IFJlY29yZDxzdHJpbmcsIGFueT5cbn0+XG5cbi8vIFR5cGUgdG8gbWFjaCBDbG91ZEZvcm1hdGlvbiBBV1M6OlJvdXRlNTM6OlJlY29yZFNldEdyb3VwIFJlY29yZFNldFxuaW50ZXJmYWNlIFJlY29yZFNldFByb3BlcnR5IHtcbiAgTmFtZTogc3RyaW5nXG4gIFR5cGU6IHN0cmluZ1xuICBSZXNvdXJjZVJlY29yZHM6IHN0cmluZ1tdXG4gIFRUTDogc3RyaW5nXG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgaW5saW5lLWNvbXBpbGVkIGZvciB0aGUgbGFtYmRhLlxuLy8gSXQgbXVzdCBiZSBzZWxmLWNvbnRhaW5lZC5cbmV4cG9ydCBjb25zdCBzZXNEb21haW5IYW5kbGVyOiBPbkV2ZW50SGFuZGxlciA9IGFzeW5jIChldmVudCkgPT4ge1xuICBjb25zdCBBV1MgPSByZXF1aXJlKFwiYXdzLXNka1wiKVxuXG4gIGNvbnN0IHR0bCA9IFwiMTgwMFwiXG5cbiAgY29uc3Qgc2VzOiBBV1MuU0VTID0gbmV3IEFXUy5TRVMoKSBhcyBfQVdTLlNFU1xuICBjb25zdCBzZXN2MjogQVdTLlNFU1YyID0gbmV3IEFXUy5TRVNWMigpIGFzIF9BV1MuU0VTVjJcblxuICBjb25zdCBkb21haW5OYW1lID0gZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzW1wiRG9tYWluTmFtZVwiXVxuICBjb25zdCBpbmNsdWRlVmVyaWZpY2F0aW9uUmVjb3JkID1cbiAgICBldmVudC5SZXNvdXJjZVByb3BlcnRpZXNbXCJJbmNsdWRlVmVyaWZpY2F0aW9uUmVjb3JkXCJdID09IFwidHJ1ZVwiXG5cbiAgY29uc3QgZGVmYXVsdENvbmZpZ3VyYXRpb25TZXROYW1lID1cbiAgICBldmVudC5SZXNvdXJjZVByb3BlcnRpZXNbXCJEZWZhdWx0Q29uZmlndXJhdGlvblNldE5hbWVcIl1cblxuICBpZiAoIWluY2x1ZGVWZXJpZmljYXRpb25SZWNvcmQpIHtcbiAgICBjb25zb2xlLmxvZyhcIkV4Y2x1ZGluZyB2ZXJpZmljYXRpb24gVFhUIHJlY29yZFwiKVxuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlUm91dGU1M1JlY29yZFNldHMoXG4gICAgdmVyaWZpY2F0aW9uVG9rZW46IHN0cmluZyxcbiAgICBka2ltVG9rZW5zOiBzdHJpbmdbXSxcbiAgKSB7XG4gICAgY29uc3QgcmVjb3JkczogUmVjb3JkU2V0UHJvcGVydHlbXSA9IFtdXG5cbiAgICBpZiAoaW5jbHVkZVZlcmlmaWNhdGlvblJlY29yZCkge1xuICAgICAgcmVjb3Jkcy5wdXNoKHtcbiAgICAgICAgTmFtZTogYF9hbWF6b25zZXMuJHtkb21haW5OYW1lfS5gLFxuICAgICAgICBUeXBlOiBcIlRYVFwiLFxuICAgICAgICBSZXNvdXJjZVJlY29yZHM6IFtgXCIke3ZlcmlmaWNhdGlvblRva2VufVwiYF0sXG4gICAgICAgIFRUTDogdHRsLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRva2VuIG9mIGRraW1Ub2tlbnMpIHtcbiAgICAgIHJlY29yZHMucHVzaCh7XG4gICAgICAgIE5hbWU6IGAke3Rva2VufS5fZG9tYWlua2V5LiR7ZG9tYWluTmFtZX0uYCxcbiAgICAgICAgVHlwZTogXCJDTkFNRVwiLFxuICAgICAgICBSZXNvdXJjZVJlY29yZHM6IFtgJHt0b2tlbn0uZGtpbS5hbWF6b25zZXMuY29tLmBdLFxuICAgICAgICBUVEw6IHR0bCxcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiByZWNvcmRzXG4gIH1cblxuICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgY2FzZSBcIkRlbGV0ZVwiOlxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBzZXNcbiAgICAgICAgLmRlbGV0ZUlkZW50aXR5KHsgSWRlbnRpdHk6IGRvbWFpbk5hbWUgfSlcbiAgICAgICAgLnByb21pc2UoKVxuICAgICAgY29uc29sZS5sb2coYHNlcy5kZWxldGVJZGVudGl0eTogJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZSl9YClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBldmVudC5QaHlzaWNhbFJlc291cmNlSWQsXG4gICAgICB9XG5cbiAgICBjYXNlIFwiQ3JlYXRlXCI6XG4gICAgY2FzZSBcIlVwZGF0ZVwiOlxuICAgICAgLy8gSWRlbXBvdGVudC5cbiAgICAgIGNvbnN0IHJlc3BvbnNlMSA9IGF3YWl0IHNlc1xuICAgICAgICAudmVyaWZ5RG9tYWluSWRlbnRpdHkoe1xuICAgICAgICAgIERvbWFpbjogZG9tYWluTmFtZSxcbiAgICAgICAgfSlcbiAgICAgICAgLnByb21pc2UoKVxuXG4gICAgICBjb25zb2xlLmxvZyhgc2VzLnZlcmlmeURvbWFpbklkZW50aXR5OiAke0pTT04uc3RyaW5naWZ5KHJlc3BvbnNlMSl9YClcbiAgICAgIGNvbnN0IHZlcmlmaWNhdGlvblRva2VuID0gcmVzcG9uc2UxW1wiVmVyaWZpY2F0aW9uVG9rZW5cIl1cblxuICAgICAgLy8gSWRlbXBvdGVudC5cbiAgICAgIGNvbnN0IHJlc3BvbnNlMiA9IGF3YWl0IHNlc1xuICAgICAgICAudmVyaWZ5RG9tYWluRGtpbSh7IERvbWFpbjogZG9tYWluTmFtZSB9KVxuICAgICAgICAucHJvbWlzZSgpXG4gICAgICBjb25zb2xlLmxvZyhgc2VzLnZlcmlmeURvbWFpbkRraW06ICR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UyKX1gKVxuICAgICAgY29uc3QgZGtpbVRva2VucyA9IHJlc3BvbnNlMltcIkRraW1Ub2tlbnNcIl1cblxuICAgICAgLy8gSWRlbXBvdGVudC5cbiAgICAgIGNvbnN0IHJlc3BvbnNlMyA9IGF3YWl0IHNlc3YyXG4gICAgICAgIC5wdXRFbWFpbElkZW50aXR5Q29uZmlndXJhdGlvblNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgIEVtYWlsSWRlbnRpdHk6IGRvbWFpbk5hbWUsXG4gICAgICAgICAgLy8gQ29uZmlndXJhdGlvblNldE5hbWUgY2FuIGJlIHNldCB0byB1bmRlZmluZWQgdG8gcmVtb3ZlXG4gICAgICAgICAgLy8gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBzZXQgZnJvbSB0aGUgaWRlbnRpdHkuXG4gICAgICAgICAgQ29uZmlndXJhdGlvblNldE5hbWU6IGRlZmF1bHRDb25maWd1cmF0aW9uU2V0TmFtZSxcbiAgICAgICAgfSlcbiAgICAgICAgLnByb21pc2UoKVxuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBzZXN2Mi5wdXRFbWFpbElkZW50aXR5Q29uZmlndXJhdGlvblNldEF0dHJpYnV0ZXMgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICByZXNwb25zZTMsXG4gICAgICAgICl9YCxcbiAgICAgIClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiBgU2VzRG9tYWluJHtkb21haW5OYW1lfWAsXG4gICAgICAgIERhdGE6IHtcbiAgICAgICAgICBSb3V0ZTUzUmVjb3JkU2V0czogY3JlYXRlUm91dGU1M1JlY29yZFNldHMoXG4gICAgICAgICAgICB2ZXJpZmljYXRpb25Ub2tlbixcbiAgICAgICAgICAgIGRraW1Ub2tlbnMsXG4gICAgICAgICAgKSxcbiAgICAgICAgICBWZXJpZmljYXRpb25Ub2tlbjogdmVyaWZpY2F0aW9uVG9rZW4sXG4gICAgICAgIH0sXG4gICAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,57 +0,0 @@
1
- import * as constructs from "constructs";
2
- import * as r53 from "aws-cdk-lib/aws-route53";
3
- import * as cdk from "aws-cdk-lib";
4
- interface Props {
5
- /**
6
- * The domain name to register in SES.
7
- */
8
- domainName: string;
9
- /**
10
- * Hosted Zone to attach DNS records. If not given it must
11
- * be performed manually.
12
- */
13
- hostedZone?: r53.IHostedZone;
14
- /**
15
- * Include or exclude verification TXT record.
16
- *
17
- * CNAME records for DKIM tokens will still be created.
18
- *
19
- * Route 53 will not allow multiple TXT records with the same name.
20
- * This option allows to "opt-out" of the records and leaving
21
- * the caller responsible of handling it.
22
- *
23
- * @default true
24
- */
25
- includeVerificationRecord?: boolean;
26
- /**
27
- * Default configuration set for emails sent from this domain.
28
- */
29
- defaultConfigurationSetName?: string;
30
- /**
31
- * Configuration for an SPF record.
32
- *
33
- * @default - an SPF record with a default value is created.
34
- */
35
- spfRecord?: {
36
- /**
37
- * Whether to create the record or not.
38
- *
39
- * @default true
40
- */
41
- include?: boolean;
42
- /**
43
- * The value of the SPF record.
44
- *
45
- * NOTE: The value will be enclosed in double quotes for you.
46
- *
47
- * @default "v=spf1 include:amazonses.com ~all"
48
- */
49
- value?: string;
50
- };
51
- }
52
- export declare class SesDomain extends constructs.Construct {
53
- route53RecordSets: cdk.IResolvable;
54
- verificationToken: string;
55
- constructor(scope: constructs.Construct, id: string, props: Props);
56
- }
57
- export {};
@@ -1,94 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SesDomain = void 0;
4
- const constructs = require("constructs");
5
- const iam = require("aws-cdk-lib/aws-iam");
6
- const lambda = require("aws-cdk-lib/aws-lambda");
7
- const r53 = require("aws-cdk-lib/aws-route53");
8
- const cdk = require("aws-cdk-lib");
9
- const cr = require("aws-cdk-lib/custom-resources");
10
- const handler_1 = require("./handler");
11
- class SesDomain extends constructs.Construct {
12
- constructor(scope, id, props) {
13
- var _a, _b, _c, _d;
14
- super(scope, id);
15
- const resource = new cdk.CustomResource(this, "Resource", {
16
- serviceToken: SesDomainProvider.getOrCreate(this).serviceToken,
17
- properties: {
18
- DomainName: props.domainName,
19
- IncludeVerificationRecord: ((_a = props.includeVerificationRecord) !== null && _a !== void 0 ? _a : true).toString(),
20
- DefaultConfigurationSetName: props.defaultConfigurationSetName,
21
- // Bump this if changing logic in the lambda that should be
22
- // re-evaluated.
23
- Serial: 1,
24
- },
25
- });
26
- const staticRecordSets = ((_c = (_b = props.spfRecord) === null || _b === void 0 ? void 0 : _b.include) !== null && _c !== void 0 ? _c : true)
27
- ? [
28
- {
29
- name: props.domainName,
30
- type: r53.RecordType.TXT,
31
- ttl: "60",
32
- resourceRecords: [
33
- JSON.stringify(((_d = props.spfRecord) === null || _d === void 0 ? void 0 : _d.value) || "v=spf1 include:amazonses.com ~all"),
34
- ],
35
- },
36
- ]
37
- : [];
38
- this.route53RecordSets = resource.getAtt("Route53RecordSets");
39
- this.verificationToken = resource.getAttString("VerificationToken");
40
- if (props.hostedZone) {
41
- new r53.CfnRecordSetGroup(this, "RecordSetGroup", {
42
- hostedZoneId: props.hostedZone.hostedZoneId,
43
- recordSets: this.route53RecordSets,
44
- });
45
- if (staticRecordSets.length) {
46
- new r53.CfnRecordSetGroup(this, "StaticRecordSetGroup", {
47
- hostedZoneId: props.hostedZone.hostedZoneId,
48
- recordSets: staticRecordSets,
49
- });
50
- }
51
- }
52
- }
53
- }
54
- exports.SesDomain = SesDomain;
55
- class SesDomainProvider extends constructs.Construct {
56
- /**
57
- * Returns the singleton provider.
58
- */
59
- static getOrCreate(scope) {
60
- const stack = cdk.Stack.of(scope);
61
- const id = "liflig-cdk.ses-domain.provider";
62
- return (stack.node.tryFindChild(id) ||
63
- new SesDomainProvider(stack, id));
64
- }
65
- constructor(scope, id) {
66
- super(scope, id);
67
- this.provider = new cr.Provider(this, "Provider", {
68
- onEventHandler: new lambda.Function(this, "Function", {
69
- code: new lambda.InlineCode(`exports.handler = ${handler_1.sesDomainHandler.toString()};`),
70
- handler: "index.handler",
71
- runtime: lambda.Runtime.NODEJS_16_X,
72
- timeout: cdk.Duration.minutes(5),
73
- initialPolicy: [
74
- new iam.PolicyStatement({
75
- actions: [
76
- "ses:DeleteIdentity",
77
- "ses:GetIdentityDkimAttributes",
78
- "ses:GetIdentityMailFromDomainAttributes",
79
- "ses:GetIdentityVerificationAttributes",
80
- "ses:SetIdentityDkimEnabled",
81
- "ses:SetIdentityMailFromDomain",
82
- "ses:VerifyDomainDkim",
83
- "ses:VerifyDomainIdentity",
84
- "ses:PutEmailIdentityConfigurationSetAttributes",
85
- ],
86
- resources: ["*"],
87
- }),
88
- ],
89
- }),
90
- });
91
- this.serviceToken = this.provider.serviceToken;
92
- }
93
- }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VzL3Nlc2RvbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBd0M7QUFDeEMsMkNBQTBDO0FBQzFDLGlEQUFnRDtBQUNoRCwrQ0FBOEM7QUFDOUMsbUNBQWtDO0FBQ2xDLG1EQUFrRDtBQUNsRCx1Q0FBNEM7QUFtRDVDLE1BQWEsU0FBVSxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBSWpELFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBWTs7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN4RCxZQUFZLEVBQUUsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVk7WUFDOUQsVUFBVSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTtnQkFDNUIseUJBQXlCLEVBQUUsQ0FDekIsTUFBQSxLQUFLLENBQUMseUJBQXlCLG1DQUFJLElBQUksQ0FDeEMsQ0FBQyxRQUFRLEVBQUU7Z0JBQ1osMkJBQTJCLEVBQUUsS0FBSyxDQUFDLDJCQUEyQjtnQkFDOUQsMkRBQTJEO2dCQUMzRCxnQkFBZ0I7Z0JBQ2hCLE1BQU0sRUFBRSxDQUFDO2FBQ1Y7U0FDRixDQUFDLENBQUE7UUFFRixNQUFNLGdCQUFnQixHQUNwQixDQUFBLE1BQUEsTUFBQSxLQUFLLENBQUMsU0FBUywwQ0FBRSxPQUFPLG1DQUFJLElBQUk7WUFDOUIsQ0FBQyxDQUFDO2dCQUNFO29CQUNFLElBQUksRUFBRSxLQUFLLENBQUMsVUFBVTtvQkFDdEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRztvQkFDeEIsR0FBRyxFQUFFLElBQUk7b0JBQ1QsZUFBZSxFQUFFO3dCQUNmLElBQUksQ0FBQyxTQUFTLENBQ1osQ0FBQSxNQUFBLEtBQUssQ0FBQyxTQUFTLDBDQUFFLEtBQUssS0FBSSxtQ0FBbUMsQ0FDOUQ7cUJBQ0Y7aUJBQ0Y7YUFDRjtZQUNILENBQUMsQ0FBQyxFQUFFLENBQUE7UUFFUixJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBQzdELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFFbkUsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsSUFBSSxHQUFHLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNoRCxZQUFZLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxZQUFZO2dCQUMzQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjthQUNuQyxDQUFDLENBQUE7WUFDRixJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1QixJQUFJLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7b0JBQ3RELFlBQVksRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLFlBQVk7b0JBQzNDLFVBQVUsRUFBRSxnQkFBZ0I7aUJBQzdCLENBQUMsQ0FBQTtZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBckRELDhCQXFEQztBQUVELE1BQU0saUJBQWtCLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFDbEQ7O09BRUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQTJCO1FBQ25ELE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2pDLE1BQU0sRUFBRSxHQUFHLGdDQUFnQyxDQUFBO1FBQzNDLE9BQU8sQ0FDSixLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQXVCO1lBQ2xELElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUNqQyxDQUFBO0lBQ0gsQ0FBQztJQUtELFlBQVksS0FBMkIsRUFBRSxFQUFVO1FBQ2pELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRCxjQUFjLEVBQUUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3BELElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQ3pCLHFCQUFxQiwwQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUNwRDtnQkFDRCxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztnQkFDbkMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsYUFBYSxFQUFFO29CQUNiLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQzt3QkFDdEIsT0FBTyxFQUFFOzRCQUNQLG9CQUFvQjs0QkFDcEIsK0JBQStCOzRCQUMvQix5Q0FBeUM7NEJBQ3pDLHVDQUF1Qzs0QkFDdkMsNEJBQTRCOzRCQUM1QiwrQkFBK0I7NEJBQy9CLHNCQUFzQjs0QkFDdEIsMEJBQTBCOzRCQUMxQixnREFBZ0Q7eUJBQ2pEO3dCQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztxQkFDakIsQ0FBQztpQkFDSDthQUNGLENBQUM7U0FDSCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFBO0lBQ2hELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgKiBhcyByNTMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCJcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgY3IgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIlxuaW1wb3J0IHsgc2VzRG9tYWluSGFuZGxlciB9IGZyb20gXCIuL2hhbmRsZXJcIlxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICAvKipcbiAgICogVGhlIGRvbWFpbiBuYW1lIHRvIHJlZ2lzdGVyIGluIFNFUy5cbiAgICovXG4gIGRvbWFpbk5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogSG9zdGVkIFpvbmUgdG8gYXR0YWNoIEROUyByZWNvcmRzLiBJZiBub3QgZ2l2ZW4gaXQgbXVzdFxuICAgKiBiZSBwZXJmb3JtZWQgbWFudWFsbHkuXG4gICAqL1xuICBob3N0ZWRab25lPzogcjUzLklIb3N0ZWRab25lXG4gIC8qKlxuICAgKiBJbmNsdWRlIG9yIGV4Y2x1ZGUgdmVyaWZpY2F0aW9uIFRYVCByZWNvcmQuXG4gICAqXG4gICAqIENOQU1FIHJlY29yZHMgZm9yIERLSU0gdG9rZW5zIHdpbGwgc3RpbGwgYmUgY3JlYXRlZC5cbiAgICpcbiAgICogUm91dGUgNTMgd2lsbCBub3QgYWxsb3cgbXVsdGlwbGUgVFhUIHJlY29yZHMgd2l0aCB0aGUgc2FtZSBuYW1lLlxuICAgKiBUaGlzIG9wdGlvbiBhbGxvd3MgdG8gXCJvcHQtb3V0XCIgb2YgdGhlIHJlY29yZHMgYW5kIGxlYXZpbmdcbiAgICogdGhlIGNhbGxlciByZXNwb25zaWJsZSBvZiBoYW5kbGluZyBpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaW5jbHVkZVZlcmlmaWNhdGlvblJlY29yZD86IGJvb2xlYW5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBzZXQgZm9yIGVtYWlscyBzZW50IGZyb20gdGhpcyBkb21haW4uXG4gICAqL1xuICBkZWZhdWx0Q29uZmlndXJhdGlvblNldE5hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIFNQRiByZWNvcmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYW4gU1BGIHJlY29yZCB3aXRoIGEgZGVmYXVsdCB2YWx1ZSBpcyBjcmVhdGVkLlxuICAgKi9cbiAgc3BmUmVjb3JkPzoge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gY3JlYXRlIHRoZSByZWNvcmQgb3Igbm90LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGluY2x1ZGU/OiBib29sZWFuXG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBTUEYgcmVjb3JkLlxuICAgICAqXG4gICAgICogTk9URTogVGhlIHZhbHVlIHdpbGwgYmUgZW5jbG9zZWQgaW4gZG91YmxlIHF1b3RlcyBmb3IgeW91LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCJ2PXNwZjEgaW5jbHVkZTphbWF6b25zZXMuY29tIH5hbGxcIlxuICAgICAqL1xuICAgIHZhbHVlPzogc3RyaW5nXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNlc0RvbWFpbiBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHVibGljIHJvdXRlNTNSZWNvcmRTZXRzOiBjZGsuSVJlc29sdmFibGVcbiAgcHVibGljIHZlcmlmaWNhdGlvblRva2VuOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IHJlc291cmNlID0gbmV3IGNkay5DdXN0b21SZXNvdXJjZSh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIHNlcnZpY2VUb2tlbjogU2VzRG9tYWluUHJvdmlkZXIuZ2V0T3JDcmVhdGUodGhpcykuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBEb21haW5OYW1lOiBwcm9wcy5kb21haW5OYW1lLFxuICAgICAgICBJbmNsdWRlVmVyaWZpY2F0aW9uUmVjb3JkOiAoXG4gICAgICAgICAgcHJvcHMuaW5jbHVkZVZlcmlmaWNhdGlvblJlY29yZCA/PyB0cnVlXG4gICAgICAgICkudG9TdHJpbmcoKSxcbiAgICAgICAgRGVmYXVsdENvbmZpZ3VyYXRpb25TZXROYW1lOiBwcm9wcy5kZWZhdWx0Q29uZmlndXJhdGlvblNldE5hbWUsXG4gICAgICAgIC8vIEJ1bXAgdGhpcyBpZiBjaGFuZ2luZyBsb2dpYyBpbiB0aGUgbGFtYmRhIHRoYXQgc2hvdWxkIGJlXG4gICAgICAgIC8vIHJlLWV2YWx1YXRlZC5cbiAgICAgICAgU2VyaWFsOiAxLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgY29uc3Qgc3RhdGljUmVjb3JkU2V0czogcjUzLkNmblJlY29yZFNldEdyb3VwLlJlY29yZFNldFByb3BlcnR5W10gPVxuICAgICAgcHJvcHMuc3BmUmVjb3JkPy5pbmNsdWRlID8/IHRydWVcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IHByb3BzLmRvbWFpbk5hbWUsXG4gICAgICAgICAgICAgIHR5cGU6IHI1My5SZWNvcmRUeXBlLlRYVCxcbiAgICAgICAgICAgICAgdHRsOiBcIjYwXCIsXG4gICAgICAgICAgICAgIHJlc291cmNlUmVjb3JkczogW1xuICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICAgICAgcHJvcHMuc3BmUmVjb3JkPy52YWx1ZSB8fCBcInY9c3BmMSBpbmNsdWRlOmFtYXpvbnNlcy5jb20gfmFsbFwiLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXVxuXG4gICAgdGhpcy5yb3V0ZTUzUmVjb3JkU2V0cyA9IHJlc291cmNlLmdldEF0dChcIlJvdXRlNTNSZWNvcmRTZXRzXCIpXG4gICAgdGhpcy52ZXJpZmljYXRpb25Ub2tlbiA9IHJlc291cmNlLmdldEF0dFN0cmluZyhcIlZlcmlmaWNhdGlvblRva2VuXCIpXG5cbiAgICBpZiAocHJvcHMuaG9zdGVkWm9uZSkge1xuICAgICAgbmV3IHI1My5DZm5SZWNvcmRTZXRHcm91cCh0aGlzLCBcIlJlY29yZFNldEdyb3VwXCIsIHtcbiAgICAgICAgaG9zdGVkWm9uZUlkOiBwcm9wcy5ob3N0ZWRab25lLmhvc3RlZFpvbmVJZCxcbiAgICAgICAgcmVjb3JkU2V0czogdGhpcy5yb3V0ZTUzUmVjb3JkU2V0cyxcbiAgICAgIH0pXG4gICAgICBpZiAoc3RhdGljUmVjb3JkU2V0cy5sZW5ndGgpIHtcbiAgICAgICAgbmV3IHI1My5DZm5SZWNvcmRTZXRHcm91cCh0aGlzLCBcIlN0YXRpY1JlY29yZFNldEdyb3VwXCIsIHtcbiAgICAgICAgICBob3N0ZWRab25lSWQ6IHByb3BzLmhvc3RlZFpvbmUuaG9zdGVkWm9uZUlkLFxuICAgICAgICAgIHJlY29yZFNldHM6IHN0YXRpY1JlY29yZFNldHMsXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmNsYXNzIFNlc0RvbWFpblByb3ZpZGVyIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2luZ2xldG9uIHByb3ZpZGVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRPckNyZWF0ZShzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QpIHtcbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZihzY29wZSlcbiAgICBjb25zdCBpZCA9IFwibGlmbGlnLWNkay5zZXMtZG9tYWluLnByb3ZpZGVyXCJcbiAgICByZXR1cm4gKFxuICAgICAgKHN0YWNrLm5vZGUudHJ5RmluZENoaWxkKGlkKSBhcyBTZXNEb21haW5Qcm92aWRlcikgfHxcbiAgICAgIG5ldyBTZXNEb21haW5Qcm92aWRlcihzdGFjaywgaWQpXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlcjogY3IuUHJvdmlkZXJcbiAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2VUb2tlbjogc3RyaW5nXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5wcm92aWRlciA9IG5ldyBjci5Qcm92aWRlcih0aGlzLCBcIlByb3ZpZGVyXCIsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwiRnVuY3Rpb25cIiwge1xuICAgICAgICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoXG4gICAgICAgICAgYGV4cG9ydHMuaGFuZGxlciA9ICR7c2VzRG9tYWluSGFuZGxlci50b1N0cmluZygpfTtgLFxuICAgICAgICApLFxuICAgICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE2X1gsXG4gICAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgICBpbml0aWFsUG9saWN5OiBbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICBcInNlczpEZWxldGVJZGVudGl0eVwiLFxuICAgICAgICAgICAgICBcInNlczpHZXRJZGVudGl0eURraW1BdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgICAgIFwic2VzOkdldElkZW50aXR5TWFpbEZyb21Eb21haW5BdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgICAgIFwic2VzOkdldElkZW50aXR5VmVyaWZpY2F0aW9uQXR0cmlidXRlc1wiLFxuICAgICAgICAgICAgICBcInNlczpTZXRJZGVudGl0eURraW1FbmFibGVkXCIsXG4gICAgICAgICAgICAgIFwic2VzOlNldElkZW50aXR5TWFpbEZyb21Eb21haW5cIixcbiAgICAgICAgICAgICAgXCJzZXM6VmVyaWZ5RG9tYWluRGtpbVwiLFxuICAgICAgICAgICAgICBcInNlczpWZXJpZnlEb21haW5JZGVudGl0eVwiLFxuICAgICAgICAgICAgICBcInNlczpQdXRFbWFpbElkZW50aXR5Q29uZmlndXJhdGlvblNldEF0dHJpYnV0ZXNcIixcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICB9KVxuXG4gICAgdGhpcy5zZXJ2aWNlVG9rZW4gPSB0aGlzLnByb3ZpZGVyLnNlcnZpY2VUb2tlblxuICB9XG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- type OnEventHandler = (event: {
2
- PhysicalResourceId?: string;
3
- RequestType: "Create" | "Update" | "Delete";
4
- ResourceProperties: Record<string, string>;
5
- }) => Promise<{
6
- PhysicalResourceId?: string;
7
- }>;
8
- export declare const sesVerifyEmailHandler: OnEventHandler;
9
- export {};
@@ -1,25 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sesVerifyEmailHandler = void 0;
4
- // This function is inline-compiled for the lambda.
5
- // It must be self-contained.
6
- const sesVerifyEmailHandler = async (event) => {
7
- const AWS = require("aws-sdk");
8
- const ses = new AWS.SES();
9
- const emailAddress = event.ResourceProperties["EmailAddress"];
10
- switch (event.RequestType) {
11
- case "Delete":
12
- await ses.deleteIdentity({ Identity: emailAddress }).promise();
13
- return {
14
- PhysicalResourceId: event.PhysicalResourceId,
15
- };
16
- case "Create":
17
- case "Update":
18
- await ses.verifyEmailIdentity({ EmailAddress: emailAddress }).promise();
19
- return {
20
- PhysicalResourceId: `SesVerifyEmail:${emailAddress}`,
21
- };
22
- }
23
- };
24
- exports.sesVerifyEmailHandler = sesVerifyEmailHandler;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXMvc2VzdmVyaWZ5ZW1haWwvaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFjQSxtREFBbUQ7QUFDbkQsNkJBQTZCO0FBQ3RCLE1BQU0scUJBQXFCLEdBQW1CLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtJQUNuRSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7SUFFOUIsTUFBTSxHQUFHLEdBQVksSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFjLENBQUE7SUFFOUMsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBRTdELFFBQVEsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFCLEtBQUssUUFBUTtZQUNYLE1BQU0sR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBRTlELE9BQU87Z0JBQ0wsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjthQUM3QyxDQUFBO1FBRUgsS0FBSyxRQUFRLENBQUM7UUFDZCxLQUFLLFFBQVE7WUFDWCxNQUFNLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBRXZFLE9BQU87Z0JBQ0wsa0JBQWtCLEVBQUUsa0JBQWtCLFlBQVksRUFBRTthQUNyRCxDQUFBO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQTtBQXZCWSxRQUFBLHFCQUFxQix5QkF1QmpDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1hc3NpZ25tZW50ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWNhbGwgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXZhci1yZXF1aXJlcyAqL1xuaW1wb3J0IHR5cGUgKiBhcyBfQVdTIGZyb20gXCJhd3Mtc2RrXCJcblxudHlwZSBPbkV2ZW50SGFuZGxlciA9IChldmVudDoge1xuICBQaHlzaWNhbFJlc291cmNlSWQ/OiBzdHJpbmdcbiAgUmVxdWVzdFR5cGU6IFwiQ3JlYXRlXCIgfCBcIlVwZGF0ZVwiIHwgXCJEZWxldGVcIlxuICBSZXNvdXJjZVByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn0pID0+IFByb21pc2U8e1xuICBQaHlzaWNhbFJlc291cmNlSWQ/OiBzdHJpbmdcbn0+XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgaW5saW5lLWNvbXBpbGVkIGZvciB0aGUgbGFtYmRhLlxuLy8gSXQgbXVzdCBiZSBzZWxmLWNvbnRhaW5lZC5cbmV4cG9ydCBjb25zdCBzZXNWZXJpZnlFbWFpbEhhbmRsZXI6IE9uRXZlbnRIYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IEFXUyA9IHJlcXVpcmUoXCJhd3Mtc2RrXCIpXG5cbiAgY29uc3Qgc2VzOiBBV1MuU0VTID0gbmV3IEFXUy5TRVMoKSBhcyBfQVdTLlNFU1xuXG4gIGNvbnN0IGVtYWlsQWRkcmVzcyA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllc1tcIkVtYWlsQWRkcmVzc1wiXVxuXG4gIHN3aXRjaCAoZXZlbnQuUmVxdWVzdFR5cGUpIHtcbiAgICBjYXNlIFwiRGVsZXRlXCI6XG4gICAgICBhd2FpdCBzZXMuZGVsZXRlSWRlbnRpdHkoeyBJZGVudGl0eTogZW1haWxBZGRyZXNzIH0pLnByb21pc2UoKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGV2ZW50LlBoeXNpY2FsUmVzb3VyY2VJZCxcbiAgICAgIH1cblxuICAgIGNhc2UgXCJDcmVhdGVcIjpcbiAgICBjYXNlIFwiVXBkYXRlXCI6XG4gICAgICBhd2FpdCBzZXMudmVyaWZ5RW1haWxJZGVudGl0eSh7IEVtYWlsQWRkcmVzczogZW1haWxBZGRyZXNzIH0pLnByb21pc2UoKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBQaHlzaWNhbFJlc291cmNlSWQ6IGBTZXNWZXJpZnlFbWFpbDoke2VtYWlsQWRkcmVzc31gLFxuICAgICAgfVxuICB9XG59XG4iXX0=
@@ -1,13 +0,0 @@
1
- import * as constructs from "constructs";
2
- import * as cdk from "aws-cdk-lib";
3
- interface Props {
4
- /**
5
- * The email address to add as a verified email in SES.
6
- */
7
- emailAddress: string;
8
- }
9
- export declare class SesVerifyEmail extends constructs.Construct {
10
- route53RecordSets: cdk.IResolvable;
11
- constructor(scope: constructs.Construct, id: string, props: Props);
12
- }
13
- export {};
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SesVerifyEmail = void 0;
4
- const constructs = require("constructs");
5
- const iam = require("aws-cdk-lib/aws-iam");
6
- const lambda = require("aws-cdk-lib/aws-lambda");
7
- const cdk = require("aws-cdk-lib");
8
- const cr = require("aws-cdk-lib/custom-resources");
9
- const handler_1 = require("./handler");
10
- class SesVerifyEmail extends constructs.Construct {
11
- constructor(scope, id, props) {
12
- super(scope, id);
13
- new cdk.CustomResource(this, "Resource", {
14
- serviceToken: SesVerifyEmailProvider.getOrCreate(this).serviceToken,
15
- properties: {
16
- EmailAddress: props.emailAddress,
17
- },
18
- });
19
- }
20
- }
21
- exports.SesVerifyEmail = SesVerifyEmail;
22
- class SesVerifyEmailProvider extends constructs.Construct {
23
- /**
24
- * Returns the singleton provider.
25
- */
26
- static getOrCreate(scope) {
27
- const stack = cdk.Stack.of(scope);
28
- const id = "liflig-cdk.ses-verify-email.provider";
29
- return (stack.node.tryFindChild(id) ||
30
- new SesVerifyEmailProvider(stack, id));
31
- }
32
- constructor(scope, id) {
33
- super(scope, id);
34
- this.provider = new cr.Provider(this, "Provider", {
35
- onEventHandler: new lambda.Function(this, "Function", {
36
- code: new lambda.InlineCode(`exports.handler = ${handler_1.sesVerifyEmailHandler.toString()};`),
37
- handler: "index.handler",
38
- runtime: lambda.Runtime.NODEJS_16_X,
39
- timeout: cdk.Duration.minutes(5),
40
- initialPolicy: [
41
- new iam.PolicyStatement({
42
- actions: ["ses:DeleteIdentity", "ses:VerifyEmailIdentity"],
43
- resources: ["*"],
44
- }),
45
- ],
46
- }),
47
- });
48
- this.serviceToken = this.provider.serviceToken;
49
- }
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VzL3Nlc3ZlcmlmeWVtYWlsL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUN4QywyQ0FBMEM7QUFDMUMsaURBQWdEO0FBQ2hELG1DQUFrQztBQUNsQyxtREFBa0Q7QUFDbEQsdUNBQWlEO0FBU2pELE1BQWEsY0FBZSxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBR3RELFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBWTtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3ZDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWTtZQUNuRSxVQUFVLEVBQUU7Z0JBQ1YsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO2FBQ2pDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBYkQsd0NBYUM7QUFFRCxNQUFNLHNCQUF1QixTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ3ZEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUEyQjtRQUNuRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNqQyxNQUFNLEVBQUUsR0FBRyxzQ0FBc0MsQ0FBQTtRQUNqRCxPQUFPLENBQ0osS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUE0QjtZQUN2RCxJQUFJLHNCQUFzQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDdEMsQ0FBQTtJQUNILENBQUM7SUFLRCxZQUFZLEtBQTJCLEVBQUUsRUFBVTtRQUNqRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDaEQsY0FBYyxFQUFFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNwRCxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUN6QixxQkFBcUIsK0JBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FDekQ7Z0JBQ0QsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7Z0JBQ25DLE9BQU8sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLGFBQWEsRUFBRTtvQkFDYixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7d0JBQ3RCLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLHlCQUF5QixDQUFDO3dCQUMxRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7cUJBQ2pCLENBQUM7aUJBQ0g7YUFDRixDQUFDO1NBQ0gsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQTtJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIlxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBjciBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiXG5pbXBvcnQgeyBzZXNWZXJpZnlFbWFpbEhhbmRsZXIgfSBmcm9tIFwiLi9oYW5kbGVyXCJcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBlbWFpbCBhZGRyZXNzIHRvIGFkZCBhcyBhIHZlcmlmaWVkIGVtYWlsIGluIFNFUy5cbiAgICovXG4gIGVtYWlsQWRkcmVzczogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBTZXNWZXJpZnlFbWFpbCBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHVibGljIHJvdXRlNTNSZWNvcmRTZXRzOiBjZGsuSVJlc29sdmFibGVcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIG5ldyBjZGsuQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IFNlc1ZlcmlmeUVtYWlsUHJvdmlkZXIuZ2V0T3JDcmVhdGUodGhpcykuc2VydmljZVRva2VuLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBFbWFpbEFkZHJlc3M6IHByb3BzLmVtYWlsQWRkcmVzcyxcbiAgICAgIH0sXG4gICAgfSlcbiAgfVxufVxuXG5jbGFzcyBTZXNWZXJpZnlFbWFpbFByb3ZpZGVyIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgc2luZ2xldG9uIHByb3ZpZGVyLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRPckNyZWF0ZShzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QpIHtcbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZihzY29wZSlcbiAgICBjb25zdCBpZCA9IFwibGlmbGlnLWNkay5zZXMtdmVyaWZ5LWVtYWlsLnByb3ZpZGVyXCJcbiAgICByZXR1cm4gKFxuICAgICAgKHN0YWNrLm5vZGUudHJ5RmluZENoaWxkKGlkKSBhcyBTZXNWZXJpZnlFbWFpbFByb3ZpZGVyKSB8fFxuICAgICAgbmV3IFNlc1ZlcmlmeUVtYWlsUHJvdmlkZXIoc3RhY2ssIGlkKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZXI6IGNyLlByb3ZpZGVyXG4gIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlVG9rZW46IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMucHJvdmlkZXIgPSBuZXcgY3IuUHJvdmlkZXIodGhpcywgXCJQcm92aWRlclwiLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcIkZ1bmN0aW9uXCIsIHtcbiAgICAgICAgY29kZTogbmV3IGxhbWJkYS5JbmxpbmVDb2RlKFxuICAgICAgICAgIGBleHBvcnRzLmhhbmRsZXIgPSAke3Nlc1ZlcmlmeUVtYWlsSGFuZGxlci50b1N0cmluZygpfTtgLFxuICAgICAgICApLFxuICAgICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE2X1gsXG4gICAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgICBpbml0aWFsUG9saWN5OiBbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1wic2VzOkRlbGV0ZUlkZW50aXR5XCIsIFwic2VzOlZlcmlmeUVtYWlsSWRlbnRpdHlcIl0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICB9KVxuXG4gICAgdGhpcy5zZXJ2aWNlVG9rZW4gPSB0aGlzLnByb3ZpZGVyLnNlcnZpY2VUb2tlblxuICB9XG59XG4iXX0=
@@ -1,4 +0,0 @@
1
- /**
2
- * Convert a Cloud Assembly to a snapshot.
3
- */
4
- export declare function createCloudAssemblySnapshot(src: string, dst: string): Promise<void>;