@rio-cloud/cdk-v2-constructs 6.21.1 → 6.22.0-alpha.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 (33) hide show
  1. package/.jsii +1088 -154
  2. package/docs/API.md +1636 -65
  3. package/docs/changelog.md +19 -0
  4. package/lib/contributions/team-claid/aws-glue/csv-table.d.ts +74 -0
  5. package/lib/contributions/team-claid/aws-glue/csv-table.js +64 -0
  6. package/lib/contributions/team-claid/aws-glue/index.d.ts +3 -0
  7. package/lib/contributions/team-claid/aws-glue/index.js +20 -0
  8. package/lib/contributions/team-claid/aws-glue/schema.d.ts +27 -0
  9. package/lib/contributions/team-claid/aws-glue/schema.js +74 -0
  10. package/lib/contributions/team-claid/aws-glue/view-table.d.ts +126 -0
  11. package/lib/contributions/team-claid/aws-glue/view-table.js +142 -0
  12. package/lib/contributions/team-claid/index.d.ts +3 -0
  13. package/lib/contributions/team-claid/index.js +20 -0
  14. package/lib/contributions/team-transport-two/datadog-synthetics/datadog-synthetics-test.d.ts +2 -2
  15. package/lib/contributions/team-transport-two/datadog-synthetics/datadog-synthetics-test.js +1 -1
  16. package/lib/index.d.ts +1 -2
  17. package/lib/index.js +2 -3
  18. package/package.json +10 -2
  19. package/version.json +1 -1
  20. package/lib/contributions/team-transport-two/datadog-synthetics/datadog-synthetics-test-custom-resource/handler.d.ts +0 -4
  21. package/lib/contributions/team-transport-two/datadog-synthetics/datadog-synthetics-test-custom-resource/handler.js +0 -101
  22. package/lib/datadogv2/secret-locator-custom-resource/on-create.d.ts +0 -2
  23. package/lib/datadogv2/secret-locator-custom-resource/on-create.js +0 -45
  24. package/lib/datadogv2/service-catalog-custom-resource/on-create.d.ts +0 -12
  25. package/lib/datadogv2/service-catalog-custom-resource/on-create.js +0 -69
  26. package/lib/fargate/codedeploy-custom-resources/create-deployment-is-complete.d.ts +0 -39
  27. package/lib/fargate/codedeploy-custom-resources/create-deployment-is-complete.js +0 -102
  28. package/lib/fargate/codedeploy-custom-resources/create-deployment-on-create.d.ts +0 -10
  29. package/lib/fargate/codedeploy-custom-resources/create-deployment-on-create.js +0 -75
  30. package/lib/fargate/codedeploy-custom-resources/run-monitoring-test-suite-runner.d.ts +0 -1
  31. package/lib/fargate/codedeploy-custom-resources/run-monitoring-test-suite-runner.js +0 -85
  32. package/lib/ses/lambda/ses-logger.d.ts +0 -2
  33. package/lib/ses/lambda/ses-logger.js +0 -28
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handler = void 0;
4
- const codedeploy = require("@aws-sdk/client-codedeploy");
5
- const handler = async (event) => {
6
- const codedeployClient = new codedeploy.CodeDeployClient();
7
- console.info('Received event:', JSON.stringify(event, null, 2));
8
- if (event.RequestType === 'Create' || event.RequestType === 'Update') {
9
- const appSpecContent = {
10
- Version: '0.0.1',
11
- Hooks: [],
12
- Resources: [
13
- {
14
- TargetService: {
15
- Type: 'AWS::ECS::Service',
16
- Properties: {
17
- TaskDefinition: event.ResourceProperties.TaskDefinitionArn,
18
- LoadBalancerInfo: {
19
- ContainerName: event.ResourceProperties.ContainerName,
20
- ContainerPort: event.ResourceProperties.ContainerPort,
21
- },
22
- },
23
- },
24
- },
25
- ],
26
- };
27
- if (event.ResourceProperties.AfterAllowTestTrafficHook) {
28
- appSpecContent.Hooks.push({ AfterAllowTestTraffic: event.ResourceProperties.AfterAllowTestTrafficHook });
29
- }
30
- const createDeploymentCommand = new codedeploy.CreateDeploymentCommand({
31
- applicationName: event.ResourceProperties.ApplicationName,
32
- deploymentGroupName: event.ResourceProperties.DeploymentGroupName,
33
- revision: {
34
- revisionType: codedeploy.RevisionLocationType.AppSpecContent,
35
- appSpecContent: {
36
- content: JSON.stringify(appSpecContent),
37
- },
38
- },
39
- });
40
- try {
41
- const result = await codedeployClient.send(createDeploymentCommand);
42
- console.log(result);
43
- return {
44
- PhysicalResourceId: result.deploymentId,
45
- Data: {
46
- DeploymentId: result.deploymentId, // Also adding deployment id as an attribute to support any future use cases where the id is needed by another resource in the stack. At the moment it is not used.
47
- },
48
- };
49
- }
50
- catch (error) {
51
- console.error(error);
52
- throw error;
53
- ;
54
- }
55
- }
56
- else if (event.RequestType === 'Delete') {
57
- console.log('Delete event');
58
- try {
59
- await codedeployClient.send(new codedeploy.StopDeploymentCommand({
60
- deploymentId: event.PhysicalResourceId,
61
- autoRollbackEnabled: true,
62
- }));
63
- }
64
- catch (error) {
65
- console.error('Caught error while stopping deployment', error);
66
- }
67
- return {};
68
- }
69
- else {
70
- console.error('Invalid request type');
71
- throw new Error('Invalid request type');
72
- }
73
- };
74
- exports.handler = handler;
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWRlcGxveW1lbnQtb24tY3JlYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ZhcmdhdGUvY29kZWRlcGxveS1jdXN0b20tcmVzb3VyY2VzL2NyZWF0ZS1kZXBsb3ltZW50LW9uLWNyZWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5REFBeUQ7QUFHbEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQXlELEVBQUMsRUFBRTtJQUN4RixNQUFNLGdCQUFnQixHQUFHLElBQUksVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDM0QsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDckUsTUFBTSxjQUFjLEdBQVE7WUFDMUIsT0FBTyxFQUFFLE9BQU87WUFDaEIsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsYUFBYSxFQUFFO3dCQUNiLElBQUksRUFBRSxtQkFBbUI7d0JBQ3pCLFVBQVUsRUFBRTs0QkFDVixjQUFjLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQjs0QkFDMUQsZ0JBQWdCLEVBQUU7Z0NBQ2hCLGFBQWEsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsYUFBYTtnQ0FDckQsYUFBYSxFQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhOzZCQUN0RDt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQztRQUNGLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixFQUFFLENBQUM7WUFDdkQsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBQzNHLENBQUM7UUFDRCxNQUFNLHVCQUF1QixHQUFHLElBQUksVUFBVSxDQUFDLHVCQUF1QixDQUFDO1lBQ3JFLGVBQWUsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsZUFBZTtZQUN6RCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CO1lBQ2pFLFFBQVEsRUFBRTtnQkFDUixZQUFZLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLGNBQWM7Z0JBQzVELGNBQWMsRUFBRTtvQkFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7aUJBQ3hDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUM7WUFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLGdCQUFnQixDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3BFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEIsT0FBTztnQkFDTCxrQkFBa0IsRUFBRSxNQUFNLENBQUMsWUFBWTtnQkFDdkMsSUFBSSxFQUFFO29CQUNKLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLG1LQUFtSztpQkFDdk07YUFDRixDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLE1BQU0sS0FBSyxDQUFDO1lBQ1osQ0FBQztRQUVILENBQUM7SUFDSCxDQUFDO1NBQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMscUJBQXFCLENBQUM7Z0JBQy9ELFlBQVksRUFBRSxLQUFLLENBQUMsa0JBQWtCO2dCQUN0QyxtQkFBbUIsRUFBRSxJQUFJO2FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBbkVXLFFBQUEsT0FBTyxXQW1FbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb2RlZGVwbG95IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jb2RlZGVwbG95JztcbmltcG9ydCAqIGFzIGxhbWJkYUV2ZW50VHlwZXMgZnJvbSAnYXdzLWxhbWJkYSc7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGV2ZW50OiBsYW1iZGFFdmVudFR5cGVzLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCk9PiB7XG4gIGNvbnN0IGNvZGVkZXBsb3lDbGllbnQgPSBuZXcgY29kZWRlcGxveS5Db2RlRGVwbG95Q2xpZW50KCk7XG4gIGNvbnNvbGUuaW5mbygnUmVjZWl2ZWQgZXZlbnQ6JywgSlNPTi5zdHJpbmdpZnkoZXZlbnQsIG51bGwsIDIpKTtcblxuICBpZiAoZXZlbnQuUmVxdWVzdFR5cGUgPT09ICdDcmVhdGUnIHx8IGV2ZW50LlJlcXVlc3RUeXBlID09PSAnVXBkYXRlJykge1xuICAgIGNvbnN0IGFwcFNwZWNDb250ZW50OiBhbnkgPSB7XG4gICAgICBWZXJzaW9uOiAnMC4wLjEnLFxuICAgICAgSG9va3M6IFtdLFxuICAgICAgUmVzb3VyY2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBUYXJnZXRTZXJ2aWNlOiB7XG4gICAgICAgICAgICBUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnLFxuICAgICAgICAgICAgUHJvcGVydGllczoge1xuICAgICAgICAgICAgICBUYXNrRGVmaW5pdGlvbjogZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLlRhc2tEZWZpbml0aW9uQXJuLFxuICAgICAgICAgICAgICBMb2FkQmFsYW5jZXJJbmZvOiB7XG4gICAgICAgICAgICAgICAgQ29udGFpbmVyTmFtZTogZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkNvbnRhaW5lck5hbWUsXG4gICAgICAgICAgICAgICAgQ29udGFpbmVyUG9ydDogZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkNvbnRhaW5lclBvcnQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gICAgaWYgKGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5BZnRlckFsbG93VGVzdFRyYWZmaWNIb29rKSB7XG4gICAgICBhcHBTcGVjQ29udGVudC5Ib29rcy5wdXNoKHsgQWZ0ZXJBbGxvd1Rlc3RUcmFmZmljOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuQWZ0ZXJBbGxvd1Rlc3RUcmFmZmljSG9vayB9KTtcbiAgICB9XG4gICAgY29uc3QgY3JlYXRlRGVwbG95bWVudENvbW1hbmQgPSBuZXcgY29kZWRlcGxveS5DcmVhdGVEZXBsb3ltZW50Q29tbWFuZCh7XG4gICAgICBhcHBsaWNhdGlvbk5hbWU6IGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5BcHBsaWNhdGlvbk5hbWUsXG4gICAgICBkZXBsb3ltZW50R3JvdXBOYW1lOiBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRGVwbG95bWVudEdyb3VwTmFtZSxcbiAgICAgIHJldmlzaW9uOiB7XG4gICAgICAgIHJldmlzaW9uVHlwZTogY29kZWRlcGxveS5SZXZpc2lvbkxvY2F0aW9uVHlwZS5BcHBTcGVjQ29udGVudCxcbiAgICAgICAgYXBwU3BlY0NvbnRlbnQ6IHtcbiAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeShhcHBTcGVjQ29udGVudCksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvZGVkZXBsb3lDbGllbnQuc2VuZChjcmVhdGVEZXBsb3ltZW50Q29tbWFuZCk7XG4gICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUGh5c2ljYWxSZXNvdXJjZUlkOiByZXN1bHQuZGVwbG95bWVudElkLFxuICAgICAgICBEYXRhOiB7XG4gICAgICAgICAgRGVwbG95bWVudElkOiByZXN1bHQuZGVwbG95bWVudElkLCAvLyBBbHNvIGFkZGluZyBkZXBsb3ltZW50IGlkIGFzIGFuIGF0dHJpYnV0ZSB0byBzdXBwb3J0IGFueSBmdXR1cmUgdXNlIGNhc2VzIHdoZXJlIHRoZSBpZCBpcyBuZWVkZWQgYnkgYW5vdGhlciByZXNvdXJjZSBpbiB0aGUgc3RhY2suIEF0IHRoZSBtb21lbnQgaXQgaXMgbm90IHVzZWQuXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIHRocm93IGVycm9yO1xuICAgICAgO1xuXG4gICAgfVxuICB9IGVsc2UgaWYgKGV2ZW50LlJlcXVlc3RUeXBlID09PSAnRGVsZXRlJykge1xuICAgIGNvbnNvbGUubG9nKCdEZWxldGUgZXZlbnQnKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY29kZWRlcGxveUNsaWVudC5zZW5kKG5ldyBjb2RlZGVwbG95LlN0b3BEZXBsb3ltZW50Q29tbWFuZCh7XG4gICAgICAgIGRlcGxveW1lbnRJZDogZXZlbnQuUGh5c2ljYWxSZXNvdXJjZUlkLFxuICAgICAgICBhdXRvUm9sbGJhY2tFbmFibGVkOiB0cnVlLFxuICAgICAgfSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDYXVnaHQgZXJyb3Igd2hpbGUgc3RvcHBpbmcgZGVwbG95bWVudCcsIGVycm9yKTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9IGVsc2Uge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgcmVxdWVzdCB0eXBlJyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHJlcXVlc3QgdHlwZScpO1xuICB9XG59OyJdfQ==
@@ -1 +0,0 @@
1
- export declare const handler: (event: any) => Promise<void>;
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handler = void 0;
4
- const ecs = require("@aws-sdk/client-ecs");
5
- const handler = async (event) => {
6
- console.info('Received event:', JSON.stringify(event, null, 2));
7
- const lifecycleEventHookExecutionId = event.LifecycleEventHookExecutionId;
8
- const deploymentId = event.DeploymentId;
9
- const ecsClient = new ecs.ECSClient();
10
- const serviceName = 'monitoring-testsuite-runner';
11
- const clusterName = await getClusterName(ecsClient, serviceName);
12
- const taskDefinition = await getTaskDefinition(ecsClient, serviceName);
13
- const subnets = getRequiredEnvVar('SUBNETS').split(',');
14
- try {
15
- await ecsClient.send(new ecs.RunTaskCommand({
16
- taskDefinition,
17
- cluster: clusterName,
18
- networkConfiguration: {
19
- awsvpcConfiguration: {
20
- subnets,
21
- assignPublicIp: ecs.AssignPublicIp.DISABLED,
22
- },
23
- },
24
- launchType: ecs.LaunchType.FARGATE,
25
- overrides: {
26
- containerOverrides: [
27
- {
28
- name: serviceName,
29
- environment: [
30
- {
31
- name: 'DEPLOYMENT_ID',
32
- value: deploymentId,
33
- },
34
- {
35
- name: 'LIFECYCLE_EVENT_HOOK_EXECUTION_ID',
36
- value: lifecycleEventHookExecutionId,
37
- },
38
- {
39
- name: 'BLUE_GREEN_DEPLOYMENT_TEST',
40
- value: 'true',
41
- },
42
- {
43
- name: 'CAPABILITIES_NAME',
44
- value: getRequiredEnvVar('CAPABILITIES_NAME'),
45
- },
46
- ],
47
- },
48
- ],
49
- },
50
- }));
51
- }
52
- catch (error) {
53
- console.error('Error running task:', error);
54
- throw error;
55
- }
56
- };
57
- exports.handler = handler;
58
- const getClusterName = async (ecsClient, clusterNamePrefix) => {
59
- const clusters = await ecsClient.send(new ecs.ListClustersCommand({}));
60
- for (const clusterArns of clusters.clusterArns ?? []) {
61
- const clusterName = clusterArns.split('/').pop();
62
- console.info('Cluster name:', clusterName);
63
- if (clusterName && clusterName.includes(clusterNamePrefix)) {
64
- return clusterName;
65
- }
66
- }
67
- throw new Error('No cluster found');
68
- };
69
- const getTaskDefinition = async (ecsClient, taskDefinitionName) => {
70
- const taskDefinitions = await ecsClient.send(new ecs.ListTaskDefinitionsCommand({ status: ecs.TaskDefinitionStatus.ACTIVE }));
71
- for (const taskDefinition of taskDefinitions.taskDefinitionArns ?? []) {
72
- if (taskDefinition.includes(taskDefinitionName)) {
73
- return taskDefinition;
74
- }
75
- }
76
- throw new Error('No task definition found');
77
- };
78
- const getRequiredEnvVar = (envVar) => {
79
- const value = process.env[envVar];
80
- if (!value) {
81
- throw new Error(`Missing required environment variable: ${envVar}`);
82
- }
83
- return value;
84
- };
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLW1vbml0b3JpbmctdGVzdC1zdWl0ZS1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmFyZ2F0ZS9jb2RlZGVwbG95LWN1c3RvbS1yZXNvdXJjZXMvcnVuLW1vbml0b3JpbmctdGVzdC1zdWl0ZS1ydW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkNBQTJDO0FBR3BDLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxLQUFVLEVBQUMsRUFBRTtJQUN6QyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sNkJBQTZCLEdBQUcsS0FBSyxDQUFDLDZCQUE2QixDQUFDO0lBQzFFLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFFeEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEMsTUFBTSxXQUFXLEdBQUcsNkJBQTZCLENBQUM7SUFDbEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxjQUFjLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sY0FBYyxHQUFHLE1BQU0saUJBQWlCLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4RCxJQUFJLENBQUM7UUFDSCxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQzFDLGNBQWM7WUFDZCxPQUFPLEVBQUUsV0FBVztZQUNwQixvQkFBb0IsRUFBRTtnQkFDcEIsbUJBQW1CLEVBQUU7b0JBQ25CLE9BQU87b0JBQ1AsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsUUFBUTtpQkFDNUM7YUFDRjtZQUNELFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDbEMsU0FBUyxFQUFFO2dCQUNULGtCQUFrQixFQUFFO29CQUNsQjt3QkFDRSxJQUFJLEVBQUUsV0FBVzt3QkFDakIsV0FBVyxFQUFFOzRCQUNYO2dDQUNFLElBQUksRUFBRSxlQUFlO2dDQUNyQixLQUFLLEVBQUUsWUFBWTs2QkFDcEI7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLG1DQUFtQztnQ0FDekMsS0FBSyxFQUFFLDZCQUE2Qjs2QkFDckM7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLDRCQUE0QjtnQ0FDbEMsS0FBSyxFQUFFLE1BQU07NkJBQ2Q7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLG1CQUFtQjtnQ0FDekIsS0FBSyxFQUFFLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDOzZCQUM5Qzt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUMsTUFBTSxLQUFLLENBQUM7SUFDZCxDQUFDO0FBRUgsQ0FBQyxDQUFDO0FBcERXLFFBQUEsT0FBTyxXQW9EbEI7QUFFRixNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsU0FBd0IsRUFBRSxpQkFBeUIsRUFBRSxFQUFFO0lBQ25GLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLEtBQUssTUFBTSxXQUFXLElBQUksUUFBUSxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1lBQzNELE9BQU8sV0FBVyxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ3RDLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUFFLFNBQXdCLEVBQUUsa0JBQTBCLEVBQUUsRUFBRTtJQUN2RixNQUFNLGVBQWUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsMEJBQTBCLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5SCxLQUFLLE1BQU0sY0FBYyxJQUFJLGVBQWUsQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUN0RSxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQ2hELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBQzlDLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtJQUMzQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZWNzIGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1lY3MnO1xuXG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gYXN5bmMgKGV2ZW50OiBhbnkpPT4ge1xuICBjb25zb2xlLmluZm8oJ1JlY2VpdmVkIGV2ZW50OicsIEpTT04uc3RyaW5naWZ5KGV2ZW50LCBudWxsLCAyKSk7XG4gIGNvbnN0IGxpZmVjeWNsZUV2ZW50SG9va0V4ZWN1dGlvbklkID0gZXZlbnQuTGlmZWN5Y2xlRXZlbnRIb29rRXhlY3V0aW9uSWQ7XG4gIGNvbnN0IGRlcGxveW1lbnRJZCA9IGV2ZW50LkRlcGxveW1lbnRJZDtcblxuICBjb25zdCBlY3NDbGllbnQgPSBuZXcgZWNzLkVDU0NsaWVudCgpO1xuICBjb25zdCBzZXJ2aWNlTmFtZSA9ICdtb25pdG9yaW5nLXRlc3RzdWl0ZS1ydW5uZXInO1xuICBjb25zdCBjbHVzdGVyTmFtZSA9IGF3YWl0IGdldENsdXN0ZXJOYW1lKGVjc0NsaWVudCwgc2VydmljZU5hbWUpO1xuICBjb25zdCB0YXNrRGVmaW5pdGlvbiA9IGF3YWl0IGdldFRhc2tEZWZpbml0aW9uKGVjc0NsaWVudCwgc2VydmljZU5hbWUpO1xuICBjb25zdCBzdWJuZXRzID0gZ2V0UmVxdWlyZWRFbnZWYXIoJ1NVQk5FVFMnKS5zcGxpdCgnLCcpO1xuICB0cnkge1xuICAgIGF3YWl0IGVjc0NsaWVudC5zZW5kKG5ldyBlY3MuUnVuVGFza0NvbW1hbmQoe1xuICAgICAgdGFza0RlZmluaXRpb24sXG4gICAgICBjbHVzdGVyOiBjbHVzdGVyTmFtZSxcbiAgICAgIG5ldHdvcmtDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGF3c3ZwY0NvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBzdWJuZXRzLFxuICAgICAgICAgIGFzc2lnblB1YmxpY0lwOiBlY3MuQXNzaWduUHVibGljSXAuRElTQUJMRUQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbGF1bmNoVHlwZTogZWNzLkxhdW5jaFR5cGUuRkFSR0FURSxcbiAgICAgIG92ZXJyaWRlczoge1xuICAgICAgICBjb250YWluZXJPdmVycmlkZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBzZXJ2aWNlTmFtZSxcbiAgICAgICAgICAgIGVudmlyb25tZW50OiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnREVQTE9ZTUVOVF9JRCcsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGRlcGxveW1lbnRJZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdMSUZFQ1lDTEVfRVZFTlRfSE9PS19FWEVDVVRJT05fSUQnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBsaWZlY3ljbGVFdmVudEhvb2tFeGVjdXRpb25JZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdCTFVFX0dSRUVOX0RFUExPWU1FTlRfVEVTVCcsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICd0cnVlJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDQVBBQklMSVRJRVNfTkFNRScsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGdldFJlcXVpcmVkRW52VmFyKCdDQVBBQklMSVRJRVNfTkFNRScpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignRXJyb3IgcnVubmluZyB0YXNrOicsIGVycm9yKTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG59O1xuXG5jb25zdCBnZXRDbHVzdGVyTmFtZSA9IGFzeW5jIChlY3NDbGllbnQ6IGVjcy5FQ1NDbGllbnQsIGNsdXN0ZXJOYW1lUHJlZml4OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgY2x1c3RlcnMgPSBhd2FpdCBlY3NDbGllbnQuc2VuZChuZXcgZWNzLkxpc3RDbHVzdGVyc0NvbW1hbmQoe30pKTtcbiAgZm9yIChjb25zdCBjbHVzdGVyQXJucyBvZiBjbHVzdGVycy5jbHVzdGVyQXJucyA/PyBbXSkge1xuICAgIGNvbnN0IGNsdXN0ZXJOYW1lID0gY2x1c3RlckFybnMuc3BsaXQoJy8nKS5wb3AoKTtcbiAgICBjb25zb2xlLmluZm8oJ0NsdXN0ZXIgbmFtZTonLCBjbHVzdGVyTmFtZSk7XG4gICAgaWYgKGNsdXN0ZXJOYW1lICYmIGNsdXN0ZXJOYW1lLmluY2x1ZGVzKGNsdXN0ZXJOYW1lUHJlZml4KSkge1xuICAgICAgcmV0dXJuIGNsdXN0ZXJOYW1lO1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ05vIGNsdXN0ZXIgZm91bmQnKTtcbn07XG5cbmNvbnN0IGdldFRhc2tEZWZpbml0aW9uID0gYXN5bmMgKGVjc0NsaWVudDogZWNzLkVDU0NsaWVudCwgdGFza0RlZmluaXRpb25OYW1lOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgdGFza0RlZmluaXRpb25zID0gYXdhaXQgZWNzQ2xpZW50LnNlbmQobmV3IGVjcy5MaXN0VGFza0RlZmluaXRpb25zQ29tbWFuZCh7IHN0YXR1czogZWNzLlRhc2tEZWZpbml0aW9uU3RhdHVzLkFDVElWRSB9KSk7XG4gIGZvciAoY29uc3QgdGFza0RlZmluaXRpb24gb2YgdGFza0RlZmluaXRpb25zLnRhc2tEZWZpbml0aW9uQXJucyA/PyBbXSkge1xuICAgIGlmICh0YXNrRGVmaW5pdGlvbi5pbmNsdWRlcyh0YXNrRGVmaW5pdGlvbk5hbWUpKSB7XG4gICAgICByZXR1cm4gdGFza0RlZmluaXRpb247XG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcignTm8gdGFzayBkZWZpbml0aW9uIGZvdW5kJyk7XG59O1xuXG5jb25zdCBnZXRSZXF1aXJlZEVudlZhciA9IChlbnZWYXI6IHN0cmluZykgPT4ge1xuICBjb25zdCB2YWx1ZSA9IHByb2Nlc3MuZW52W2VudlZhcl07XG4gIGlmICghdmFsdWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgZW52aXJvbm1lbnQgdmFyaWFibGU6ICR7ZW52VmFyfWApO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn07Il19
@@ -1,2 +0,0 @@
1
- import { SNSEvent } from 'aws-lambda';
2
- export declare const handler: (event: SNSEvent) => Promise<void>;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.handler = void 0;
4
- const handler = async (event) => {
5
- try {
6
- // Parse and write one log per event/email
7
- const perEmailEvents = event.Records.map(({ Sns, ...rest }) => ({
8
- ...event,
9
- Records: undefined,
10
- Record: {
11
- ...rest,
12
- Sns: {
13
- ...Sns,
14
- Message: JSON.parse(Sns.Message),
15
- },
16
- },
17
- }));
18
- perEmailEvents.forEach((perEmailEvent) => {
19
- console.log(perEmailEvent);
20
- });
21
- }
22
- catch (err) {
23
- console.error(err);
24
- console.log(event);
25
- }
26
- };
27
- exports.handler = handler;
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VzLWxvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXMvbGFtYmRhL3Nlcy1sb2dnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQWUsRUFBRSxFQUFFO0lBQy9DLElBQUksQ0FBQztRQUNILDBDQUEwQztRQUMxQyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUQsR0FBRyxLQUFLO1lBQ1IsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTSxFQUFFO2dCQUNOLEdBQUcsSUFBSTtnQkFDUCxHQUFHLEVBQUU7b0JBQ0gsR0FBRyxHQUFHO29CQUNOLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQVc7aUJBQzNDO2FBQ0Y7U0FDRixDQUFDLENBQUMsQ0FBQztRQUNKLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUMsQ0FBQztBQXJCVyxRQUFBLE9BQU8sV0FxQmxCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU05TRXZlbnQgfSBmcm9tICdhd3MtbGFtYmRhJztcblxuZXhwb3J0IGNvbnN0IGhhbmRsZXIgPSBhc3luYyAoZXZlbnQ6IFNOU0V2ZW50KSA9PiB7XG4gIHRyeSB7XG4gICAgLy8gUGFyc2UgYW5kIHdyaXRlIG9uZSBsb2cgcGVyIGV2ZW50L2VtYWlsXG4gICAgY29uc3QgcGVyRW1haWxFdmVudHMgPSBldmVudC5SZWNvcmRzLm1hcCgoeyBTbnMsIC4uLnJlc3QgfSkgPT4gKHtcbiAgICAgIC4uLmV2ZW50LFxuICAgICAgUmVjb3JkczogdW5kZWZpbmVkLFxuICAgICAgUmVjb3JkOiB7XG4gICAgICAgIC4uLnJlc3QsXG4gICAgICAgIFNuczoge1xuICAgICAgICAgIC4uLlNucyxcbiAgICAgICAgICBNZXNzYWdlOiBKU09OLnBhcnNlKFNucy5NZXNzYWdlKSBhcyBvYmplY3QsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pKTtcbiAgICBwZXJFbWFpbEV2ZW50cy5mb3JFYWNoKChwZXJFbWFpbEV2ZW50KSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhwZXJFbWFpbEV2ZW50KTtcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIGNvbnNvbGUubG9nKGV2ZW50KTtcbiAgfVxufTtcbiJdfQ==