@aws-solutions-constructs/aws-eventbridge-sqs 2.76.0 → 2.78.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.
- package/.jsii +155 -39
- package/README.md +5 -0
- package/lib/index.d.ts +27 -0
- package/lib/index.js +26 -10
- package/package.json +9 -8
- package/test/eventbridge-sqs-queue.test.js +142 -3
- package/test/integ.evtsqs-custom-target.d.ts +13 -0
- package/test/integ.evtsqs-custom-target.js +36 -0
- package/test/integ.evtsqs-custom-target.js.snapshot/cdk.out +1 -0
- package/test/integ.evtsqs-custom-target.js.snapshot/evtsqs-custom-target.assets.json +19 -0
- package/test/integ.evtsqs-custom-target.js.snapshot/evtsqs-custom-target.template.json +312 -0
- package/test/integ.evtsqs-custom-target.js.snapshot/evtsqscustomtargetIntegDefaultTestDeployAssertD220243E.assets.json +19 -0
- package/test/integ.evtsqs-custom-target.js.snapshot/evtsqscustomtargetIntegDefaultTestDeployAssertD220243E.template.json +36 -0
- package/test/integ.evtsqs-custom-target.js.snapshot/integ.json +12 -0
- package/test/integ.evtsqs-custom-target.js.snapshot/manifest.json +149 -0
- package/test/integ.evtsqs-custom-target.js.snapshot/tree.json +487 -0
- package/test/integ.evtsqs-exist-bus.js.snapshot/cdk.out +1 -1
- package/test/integ.evtsqs-exist-bus.js.snapshot/evtsqs-exist-bus.assets.json +3 -3
- package/test/integ.evtsqs-exist-bus.js.snapshot/evtsqs-exist-bus.template.json +15 -6
- package/test/integ.evtsqs-exist-bus.js.snapshot/evtsqsexistbusIntegDefaultTestDeployAssertD6166996.assets.json +1 -1
- package/test/integ.evtsqs-exist-bus.js.snapshot/integ.json +1 -1
- package/test/integ.evtsqs-exist-bus.js.snapshot/manifest.json +2 -2
- package/test/integ.evtsqs-exist-bus.js.snapshot/tree.json +38 -29
- package/test/integ.evtsqs-exist-queue.js.snapshot/cdk.out +1 -1
- package/test/integ.evtsqs-exist-queue.js.snapshot/evtsqs-exist-queue.assets.json +3 -3
- package/test/integ.evtsqs-exist-queue.js.snapshot/evtsqs-exist-queue.template.json +15 -6
- package/test/integ.evtsqs-exist-queue.js.snapshot/evtsqsexistqueueIntegDefaultTestDeployAssert4E2D04AB.assets.json +1 -1
- package/test/integ.evtsqs-exist-queue.js.snapshot/integ.json +1 -1
- package/test/integ.evtsqs-exist-queue.js.snapshot/manifest.json +2 -2
- package/test/integ.evtsqs-exist-queue.js.snapshot/tree.json +36 -27
- package/test/integ.evtsqs-new-bus.js.snapshot/cdk.out +1 -1
- package/test/integ.evtsqs-new-bus.js.snapshot/evtsqs-new-bus.assets.json +3 -3
- package/test/integ.evtsqs-new-bus.js.snapshot/evtsqs-new-bus.template.json +15 -6
- package/test/integ.evtsqs-new-bus.js.snapshot/evtsqsnewbusIntegDefaultTestDeployAssertA45AD5F2.assets.json +1 -1
- package/test/integ.evtsqs-new-bus.js.snapshot/integ.json +1 -1
- package/test/integ.evtsqs-new-bus.js.snapshot/manifest.json +2 -20
- package/test/integ.evtsqs-new-bus.js.snapshot/tree.json +42 -33
- package/test/integ.evtsqs-no-arg.js.snapshot/cdk.out +1 -1
- package/test/integ.evtsqs-no-arg.js.snapshot/evtsqs-no-arg.assets.json +3 -3
- package/test/integ.evtsqs-no-arg.js.snapshot/evtsqs-no-arg.template.json +15 -6
- package/test/integ.evtsqs-no-arg.js.snapshot/evtsqsnoargIntegDefaultTestDeployAssertB5DFB718.assets.json +1 -1
- package/test/integ.evtsqs-no-arg.js.snapshot/integ.json +1 -1
- package/test/integ.evtsqs-no-arg.js.snapshot/manifest.json +2 -20
- package/test/integ.evtsqs-no-arg.js.snapshot/tree.json +40 -31
- package/test/integ.evtsqs-rule-dlq.d.ts +13 -0
- package/test/integ.evtsqs-rule-dlq.js +36 -0
- package/test/integ.evtsqs-rule-dlq.js.snapshot/cdk.out +1 -0
- package/test/integ.evtsqs-rule-dlq.js.snapshot/evtsqs-rule-dlq.assets.json +19 -0
- package/test/integ.evtsqs-rule-dlq.js.snapshot/evtsqs-rule-dlq.template.json +485 -0
- package/test/integ.evtsqs-rule-dlq.js.snapshot/evtsqsruledlqIntegDefaultTestDeployAssertE0D1E1C2.assets.json +19 -0
- package/test/integ.evtsqs-rule-dlq.js.snapshot/evtsqsruledlqIntegDefaultTestDeployAssertE0D1E1C2.template.json +36 -0
- package/test/integ.evtsqs-rule-dlq.js.snapshot/integ.json +12 -0
- package/test/integ.evtsqs-rule-dlq.js.snapshot/manifest.json +179 -0
- package/test/integ.evtsqs-rule-dlq.js.snapshot/tree.json +728 -0
- package/.eslintignore +0 -6
package/.jsii
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@aws-solutions-constructs/core": "2.
|
|
12
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"@aws-solutions-constructs/core": "2.78.0",
|
|
12
|
+
"aws-cdk-lib": "^2.177.0",
|
|
13
13
|
"constructs": "^10.0.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencyClosure": {
|
|
@@ -1903,19 +1903,6 @@
|
|
|
1903
1903
|
}
|
|
1904
1904
|
}
|
|
1905
1905
|
},
|
|
1906
|
-
"aws-cdk-lib.aws_iot1click": {
|
|
1907
|
-
"targets": {
|
|
1908
|
-
"dotnet": {
|
|
1909
|
-
"namespace": "Amazon.CDK.AWS.IoT1Click"
|
|
1910
|
-
},
|
|
1911
|
-
"java": {
|
|
1912
|
-
"package": "software.amazon.awscdk.services.iot1click"
|
|
1913
|
-
},
|
|
1914
|
-
"python": {
|
|
1915
|
-
"module": "aws_cdk.aws_iot1click"
|
|
1916
|
-
}
|
|
1917
|
-
}
|
|
1918
|
-
},
|
|
1919
1906
|
"aws-cdk-lib.aws_iotanalytics": {
|
|
1920
1907
|
"targets": {
|
|
1921
1908
|
"dotnet": {
|
|
@@ -2605,6 +2592,32 @@
|
|
|
2605
2592
|
}
|
|
2606
2593
|
}
|
|
2607
2594
|
},
|
|
2595
|
+
"aws-cdk-lib.aws_notifications": {
|
|
2596
|
+
"targets": {
|
|
2597
|
+
"dotnet": {
|
|
2598
|
+
"package": "Amazon.CDK.AWS.Notifications"
|
|
2599
|
+
},
|
|
2600
|
+
"java": {
|
|
2601
|
+
"package": "software.amazon.awscdk.services.notifications"
|
|
2602
|
+
},
|
|
2603
|
+
"python": {
|
|
2604
|
+
"module": "aws_cdk.aws_notifications"
|
|
2605
|
+
}
|
|
2606
|
+
}
|
|
2607
|
+
},
|
|
2608
|
+
"aws-cdk-lib.aws_notificationscontacts": {
|
|
2609
|
+
"targets": {
|
|
2610
|
+
"dotnet": {
|
|
2611
|
+
"package": "Amazon.CDK.AWS.NotificationsContacts"
|
|
2612
|
+
},
|
|
2613
|
+
"java": {
|
|
2614
|
+
"package": "software.amazon.awscdk.services.notificationscontacts"
|
|
2615
|
+
},
|
|
2616
|
+
"python": {
|
|
2617
|
+
"module": "aws_cdk.aws_notificationscontacts"
|
|
2618
|
+
}
|
|
2619
|
+
}
|
|
2620
|
+
},
|
|
2608
2621
|
"aws-cdk-lib.aws_oam": {
|
|
2609
2622
|
"targets": {
|
|
2610
2623
|
"dotnet": {
|
|
@@ -2761,6 +2774,19 @@
|
|
|
2761
2774
|
}
|
|
2762
2775
|
}
|
|
2763
2776
|
},
|
|
2777
|
+
"aws-cdk-lib.aws_pcs": {
|
|
2778
|
+
"targets": {
|
|
2779
|
+
"dotnet": {
|
|
2780
|
+
"package": "Amazon.CDK.AWS.PCS"
|
|
2781
|
+
},
|
|
2782
|
+
"java": {
|
|
2783
|
+
"package": "software.amazon.awscdk.services.pcs"
|
|
2784
|
+
},
|
|
2785
|
+
"python": {
|
|
2786
|
+
"module": "aws_cdk.aws_pcs"
|
|
2787
|
+
}
|
|
2788
|
+
}
|
|
2789
|
+
},
|
|
2764
2790
|
"aws-cdk-lib.aws_personalize": {
|
|
2765
2791
|
"targets": {
|
|
2766
2792
|
"dotnet": {
|
|
@@ -3216,6 +3242,19 @@
|
|
|
3216
3242
|
}
|
|
3217
3243
|
}
|
|
3218
3244
|
},
|
|
3245
|
+
"aws-cdk-lib.aws_s3tables": {
|
|
3246
|
+
"targets": {
|
|
3247
|
+
"dotnet": {
|
|
3248
|
+
"package": "Amazon.CDK.AWS.S3Tables"
|
|
3249
|
+
},
|
|
3250
|
+
"java": {
|
|
3251
|
+
"package": "software.amazon.awscdk.services.s3tables"
|
|
3252
|
+
},
|
|
3253
|
+
"python": {
|
|
3254
|
+
"module": "aws_cdk.aws_s3tables"
|
|
3255
|
+
}
|
|
3256
|
+
}
|
|
3257
|
+
},
|
|
3219
3258
|
"aws-cdk-lib.aws_sagemaker": {
|
|
3220
3259
|
"targets": {
|
|
3221
3260
|
"dotnet": {
|
|
@@ -3922,7 +3961,7 @@
|
|
|
3922
3961
|
},
|
|
3923
3962
|
"description": "CDK Constructs for deploying AWS Eventbridge that invokes AWS SQS",
|
|
3924
3963
|
"homepage": "https://github.com/awslabs/aws-solutions-constructs.git",
|
|
3925
|
-
"jsiiVersion": "5.
|
|
3964
|
+
"jsiiVersion": "5.7.7 (build 79515e6)",
|
|
3926
3965
|
"keywords": [
|
|
3927
3966
|
"aws",
|
|
3928
3967
|
"cdk",
|
|
@@ -3941,7 +3980,7 @@
|
|
|
3941
3980
|
},
|
|
3942
3981
|
"name": "@aws-solutions-constructs/aws-eventbridge-sqs",
|
|
3943
3982
|
"readme": {
|
|
3944
|
-
"markdown": "# aws-eventbridge-sqs module\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n---\n<!--END STABILITY BANNER-->\n\n| **Reference Documentation**:| <span style=\"font-weight: normal\">https://docs.aws.amazon.com/solutions/latest/constructs/</span>|\n|:-------------|:-------------|\n<div style=\"height:8px\"></div>\n\n| **Language** | **Package** |\n|:-------------|-----------------|\n| Python|`aws_solutions_constructs.aws_eventbridge_sqs`|\n| Typescript|`@aws-solutions-constructs/aws-eventbridge-sqs`|\n| Java|`software.amazon.awsconstructs.services.eventbridgesqs`|\n\n## Overview\nThis AWS Solutions Construct implements an Amazon EventBridge rule and an AWS SQS Queue.\n\nHere is a minimal deployable pattern definition:\n\nTypescript\n``` typescript\nimport { Construct } from 'constructs';\nimport { Stack, StackProps, Duration } from 'aws-cdk-lib';\nimport * as events from 'aws-cdk-lib/aws-events';\nimport * as iam from 'aws-cdk-lib/aws-iam';\nimport { EventbridgeToSqsProps, EventbridgeToSqs } from \"@aws-solutions-constructs/aws-eventbridge-sqs\";\n\nconst constructProps: EventbridgeToSqsProps = {\n eventRuleProps: {\n schedule: events.Schedule.rate(Duration.minutes(5))\n }\n};\n\nconst constructStack = new EventbridgeToSqs(this, 'test-construct', constructProps);\n\n// Grant yourself permissions to use the Customer Managed KMS Key\nconst policyStatement = new iam.PolicyStatement({\n actions: [\"kms:Encrypt\", \"kms:Decrypt\"],\n effect: iam.Effect.ALLOW,\n principals: [new iam.AccountRootPrincipal()],\n resources: [\"*\"]\n});\n\nconstructStack.encryptionKey?.addToResourcePolicy(policyStatement);\n```\n\nPython\n``` Python\nfrom aws_solutions_constructs.aws_eventbridge_sqs import EventbridgeToSqsProps, EventbridgeToSqs\nfrom aws_cdk import (\n aws_events as events,\n aws_iam as iam,\n Duration,\n Stack\n)\nfrom constructs import Construct\n\nconstruct_stack = EventbridgeToSqs(self, 'test-construct',\n event_rule_props=events.RuleProps(\n schedule=events.Schedule.rate(\n Duration.minutes(5))\n ))\n\n# Grant yourself permissions to use the Customer Managed KMS Key\npolicy_statement = iam.PolicyStatement(\n actions=[\"kms:Encrypt\", \"kms:Decrypt\"],\n effect=iam.Effect.ALLOW,\n principals=[iam.AccountRootPrincipal()],\n resources=[\"*\"]\n)\n\nconstruct_stack.encryption_key.add_to_resource_policy(policy_statement)\n```\n\nJava\n``` java\nimport software.constructs.Construct;\nimport java.util.List;\n\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.amazon.awscdk.Duration;\nimport software.amazon.awscdk.services.events.*;\nimport software.amazon.awscdk.services.iam.*;\nimport software.amazon.awsconstructs.services.eventbridgesqs.*;\n\nfinal EventbridgeToSqs constructStack = new EventbridgeToSqs(this, \"test-construct\",\n new EventbridgeToSqsProps.Builder()\n .eventRuleProps(new RuleProps.Builder()\n .schedule(Schedule.rate(Duration.minutes(5)))\n .build())\n .build());\n\n// Grant yourself permissions to use the Customer Managed KMS Key\nfinal PolicyStatement policyStatement = PolicyStatement.Builder.create()\n .actions(List.of(\"kms:Encrypt\", \"kms:Decrypt\"))\n .effect(Effect.ALLOW)\n .principals(List.of(new AccountRootPrincipal()))\n .resources(List.of(\"*\"))\n .build();\n\nconstructStack.getEncryptionKey().addToResourcePolicy(policyStatement);\n```\n\n## Pattern Construct Props\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|existingEventBusInterface?|[`events.IEventBus`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.IEventBus.html)| Optional user-provided custom EventBus for construct to use. Providing both this and `eventBusProps` results an error.|\n|eventBusProps?|[`events.EventBusProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.EventBusProps.html)|Optional user-provided properties to override the default properties when creating a custom EventBus. Setting this value to `{}` will create a custom EventBus using all default properties. If neither this nor `existingEventBusInterface` is provided the construct will use the `default` EventBus. Providing both this and `existingEventBusInterface` results an error.|\n|eventRuleProps|[`events.RuleProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.RuleProps.html)|User provided eventRuleProps to override the defaults. |\n|existingQueueObj?|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|An optional, existing SQS queue to be used instead of the default queue. Providing both this and `queueProps` will cause an error.|\n|queueProps?|[`sqs.QueueProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.QueueProps.html)|User provided props to override the default props for the SQS Queue. |\n|enableQueuePurging?|`boolean`|Whether to grant additional permissions to the Lambda function enabling it to purge the SQS queue. Defaults to `false`.|\n|deployDeadLetterQueue?|`boolean`|Whether to create a secondary queue to be used as a dead letter queue. Defaults to `true`.|\n|deadLetterQueueProps?|[`sqs.QueueProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.QueueProps.html)|Optional user-provided props to override the default props for the dead letter queue. Only used if the `deployDeadLetterQueue` property is set to true.|\n|maxReceiveCount?|`number`|The number of times a message can be unsuccessfully dequeued before being moved to the dead letter queue. Defaults to `15`.|\n|enableEncryptionWithCustomerManagedKey?|`boolean`|If no key is provided, this flag determines whether the queue is encrypted with a new CMK or an AWS managed key. This flag is ignored if any of the following are defined: queueProps.encryptionMasterKey, encryptionKey or encryptionKeyProps.|\n|encryptionKey?|[`kms.Key`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html)|An optional, imported encryption key to encrypt the SQS Queue with.|\n|encryptionKeyProps?|[`kms.KeyProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html#construct-props)|Optional user provided properties to override the default properties for the KMS encryption key used to encrypt the SQS queue with.|\n\n## Pattern Properties\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|eventBus?|[`events.IEventBus`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.IEventBus.html)|Returns the instance of events.IEventBus used by the construct|\n|eventsRule|[`events.Rule`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Rule.html)|Returns an instance of events.Rule created by the construct|\n|sqsQueue|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|Returns an instance of sqs.Queue created by the construct|\n|encryptionKey?|[`kms.Key`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html)|Returns an instance of kms Key used for the SQS queue.|\n|deadLetterQueue?|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|Returns an instance of the dead-letter SQS queue created by the pattern.|\n\n## Default settings\n\nOut of the box implementation of the Construct without any override will set the following defaults:\n\n### Amazon EventBridge Rule\n* Grant least privilege permissions to EventBridge rule to publish to the SQS Queue.\n\n### Amazon SQS Queue\n* Deploy SQS dead-letter queue for the source SQS Queue.\n* Enable server-side encryption for source SQS Queue using Customer managed KMS Key.\n* Enforce encryption of data in transit.\n\n## Architecture\n\n\n***\n© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n"
|
|
3983
|
+
"markdown": "# aws-eventbridge-sqs module\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n---\n<!--END STABILITY BANNER-->\n\n| **Reference Documentation**:| <span style=\"font-weight: normal\">https://docs.aws.amazon.com/solutions/latest/constructs/</span>|\n|:-------------|:-------------|\n<div style=\"height:8px\"></div>\n\n| **Language** | **Package** |\n|:-------------|-----------------|\n| Python|`aws_solutions_constructs.aws_eventbridge_sqs`|\n| Typescript|`@aws-solutions-constructs/aws-eventbridge-sqs`|\n| Java|`software.amazon.awsconstructs.services.eventbridgesqs`|\n\n## Overview\nThis AWS Solutions Construct implements an Amazon EventBridge rule and an AWS SQS Queue.\n\nHere is a minimal deployable pattern definition:\n\nTypescript\n``` typescript\nimport { Construct } from 'constructs';\nimport { Stack, StackProps, Duration } from 'aws-cdk-lib';\nimport * as events from 'aws-cdk-lib/aws-events';\nimport * as iam from 'aws-cdk-lib/aws-iam';\nimport { EventbridgeToSqsProps, EventbridgeToSqs } from \"@aws-solutions-constructs/aws-eventbridge-sqs\";\n\nconst constructProps: EventbridgeToSqsProps = {\n eventRuleProps: {\n schedule: events.Schedule.rate(Duration.minutes(5))\n }\n};\n\nconst constructStack = new EventbridgeToSqs(this, 'test-construct', constructProps);\n\n// Grant yourself permissions to use the Customer Managed KMS Key\nconst policyStatement = new iam.PolicyStatement({\n actions: [\"kms:Encrypt\", \"kms:Decrypt\"],\n effect: iam.Effect.ALLOW,\n principals: [new iam.AccountRootPrincipal()],\n resources: [\"*\"]\n});\n\nconstructStack.encryptionKey?.addToResourcePolicy(policyStatement);\n```\n\nPython\n``` Python\nfrom aws_solutions_constructs.aws_eventbridge_sqs import EventbridgeToSqsProps, EventbridgeToSqs\nfrom aws_cdk import (\n aws_events as events,\n aws_iam as iam,\n Duration,\n Stack\n)\nfrom constructs import Construct\n\nconstruct_stack = EventbridgeToSqs(self, 'test-construct',\n event_rule_props=events.RuleProps(\n schedule=events.Schedule.rate(\n Duration.minutes(5))\n ))\n\n# Grant yourself permissions to use the Customer Managed KMS Key\npolicy_statement = iam.PolicyStatement(\n actions=[\"kms:Encrypt\", \"kms:Decrypt\"],\n effect=iam.Effect.ALLOW,\n principals=[iam.AccountRootPrincipal()],\n resources=[\"*\"]\n)\n\nconstruct_stack.encryption_key.add_to_resource_policy(policy_statement)\n```\n\nJava\n``` java\nimport software.constructs.Construct;\nimport java.util.List;\n\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.amazon.awscdk.Duration;\nimport software.amazon.awscdk.services.events.*;\nimport software.amazon.awscdk.services.iam.*;\nimport software.amazon.awsconstructs.services.eventbridgesqs.*;\n\nfinal EventbridgeToSqs constructStack = new EventbridgeToSqs(this, \"test-construct\",\n new EventbridgeToSqsProps.Builder()\n .eventRuleProps(new RuleProps.Builder()\n .schedule(Schedule.rate(Duration.minutes(5)))\n .build())\n .build());\n\n// Grant yourself permissions to use the Customer Managed KMS Key\nfinal PolicyStatement policyStatement = PolicyStatement.Builder.create()\n .actions(List.of(\"kms:Encrypt\", \"kms:Decrypt\"))\n .effect(Effect.ALLOW)\n .principals(List.of(new AccountRootPrincipal()))\n .resources(List.of(\"*\"))\n .build();\n\nconstructStack.getEncryptionKey().addToResourcePolicy(policyStatement);\n```\n\n## Pattern Construct Props\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|existingEventBusInterface?|[`events.IEventBus`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.IEventBus.html)| Optional user-provided custom EventBus for construct to use. Providing both this and `eventBusProps` results an error.|\n|eventBusProps?|[`events.EventBusProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.EventBusProps.html)|Optional user-provided properties to override the default properties when creating a custom EventBus. Setting this value to `{}` will create a custom EventBus using all default properties. If neither this nor `existingEventBusInterface` is provided the construct will use the `default` EventBus. Providing both this and `existingEventBusInterface` results an error.|\n|eventRuleProps|[`events.RuleProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.RuleProps.html)|User provided eventRuleProps to override the defaults. |\n|targetProps?|[`eventtargets.SqsQueueProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events_targets.SqsQueueProps.html)|Optional user provided properties to define the SQS target on the Event Rule. If you specify a deadLetterQueue for the rule here, you are responsible for adding a resource policy to the queue allowing events.amazonaws.com permission to SendMessage, GetQueueUrl and GetQueueAttributes. You cannot send a DLQ in this property and set deployEventRuleDlq to true. Default is undefined and all system defaults are used.|\n|eventRuleDlqKeyProps|[kms.KeyProps](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.KeyProps.html)|Optional properties to define the key created to protect the ruleDlq. Only valid if deployRuleDlq is set to true. Defaults to CloudFormation defaults.|\n| deployEventRuleDlq?|boolean|Whether to deploy a DLQ for the Event Rule. If set to `true`, this DLQ will receive any messages that can't be delivered to the target SQS queue. Defaults to `false`.|\n|existingQueueObj?|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|An optional, existing SQS queue to be used instead of the default queue. Providing both this and `queueProps` will cause an error.|\n|queueProps?|[`sqs.QueueProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.QueueProps.html)|User provided props to override the default props for the SQS Queue. |\n|enableQueuePurging?|`boolean`|Whether to grant additional permissions to the Lambda function enabling it to purge the SQS queue. Defaults to `false`.|\n|deployDeadLetterQueue?|`boolean`|Whether to create a secondary queue to be used as a dead letter queue. Defaults to `true`.|\n|deadLetterQueueProps?|[`sqs.QueueProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.QueueProps.html)|Optional user-provided props to override the default props for the dead letter queue. Only used if the `deployDeadLetterQueue` property is set to true.|\n|maxReceiveCount?|`number`|The number of times a message can be unsuccessfully dequeued before being moved to the dead letter queue. Defaults to `15`.|\n|enableEncryptionWithCustomerManagedKey?|`boolean`|If no key is provided, this flag determines whether the queue is encrypted with a new CMK or an AWS managed key. This flag is ignored if any of the following are defined: queueProps.encryptionMasterKey, encryptionKey or encryptionKeyProps.|\n|encryptionKey?|[`kms.Key`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html)|An optional, imported encryption key to encrypt the SQS Queue with.|\n|encryptionKeyProps?|[`kms.KeyProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html#construct-props)|Optional user provided properties to override the default properties for the KMS encryption key used to encrypt the SQS queue with.|\n\n## Pattern Properties\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|eventBus?|[`events.IEventBus`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.IEventBus.html)|Returns the instance of events.IEventBus used by the construct|\n|eventsRule|[`events.Rule`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Rule.html)|Returns an instance of events.Rule created by the construct|\n|eventRuleDlq?|`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|If the client sets deployEventRuleDlq to 'true', then this value will contain the DLQ set up for the rule.|\n|eventRuleDlqKey|[kms.IKey](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.IKey.html)|The key created to encrypt the eventRuleDlq.|\n|sqsQueue|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|Returns an instance of sqs.Queue created by the construct|\n|encryptionKey?|[`kms.Key`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html)|Returns an instance of kms Key used for the SQS queue.|\n|deadLetterQueue?|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|Returns an instance of the dead-letter SQS queue created by the pattern.|\n\n## Default settings\n\nOut of the box implementation of the Construct without any override will set the following defaults:\n\n### Amazon EventBridge Rule\n* Grant least privilege permissions to EventBridge rule to publish to the SQS Queue.\n\n### Amazon SQS Queue\n* Deploy SQS dead-letter queue for the source SQS Queue.\n* Enable server-side encryption for source SQS Queue using Customer managed KMS Key.\n* Enforce encryption of data in transit.\n\n## Architecture\n\n\n***\n© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n"
|
|
3945
3984
|
},
|
|
3946
3985
|
"repository": {
|
|
3947
3986
|
"directory": "source/patterns/@aws-solutions-constructs/aws-eventbridge-sqs",
|
|
@@ -3986,7 +4025,7 @@
|
|
|
3986
4025
|
},
|
|
3987
4026
|
"locationInModule": {
|
|
3988
4027
|
"filename": "lib/index.ts",
|
|
3989
|
-
"line":
|
|
4028
|
+
"line": 144
|
|
3990
4029
|
},
|
|
3991
4030
|
"parameters": [
|
|
3992
4031
|
{
|
|
@@ -4021,7 +4060,7 @@
|
|
|
4021
4060
|
"kind": "class",
|
|
4022
4061
|
"locationInModule": {
|
|
4023
4062
|
"filename": "lib/index.ts",
|
|
4024
|
-
"line":
|
|
4063
|
+
"line": 127
|
|
4025
4064
|
},
|
|
4026
4065
|
"name": "EventbridgeToSqs",
|
|
4027
4066
|
"properties": [
|
|
@@ -4029,7 +4068,7 @@
|
|
|
4029
4068
|
"immutable": true,
|
|
4030
4069
|
"locationInModule": {
|
|
4031
4070
|
"filename": "lib/index.ts",
|
|
4032
|
-
"line":
|
|
4071
|
+
"line": 131
|
|
4033
4072
|
},
|
|
4034
4073
|
"name": "eventsRule",
|
|
4035
4074
|
"type": {
|
|
@@ -4040,7 +4079,7 @@
|
|
|
4040
4079
|
"immutable": true,
|
|
4041
4080
|
"locationInModule": {
|
|
4042
4081
|
"filename": "lib/index.ts",
|
|
4043
|
-
"line":
|
|
4082
|
+
"line": 128
|
|
4044
4083
|
},
|
|
4045
4084
|
"name": "sqsQueue",
|
|
4046
4085
|
"type": {
|
|
@@ -4051,7 +4090,7 @@
|
|
|
4051
4090
|
"immutable": true,
|
|
4052
4091
|
"locationInModule": {
|
|
4053
4092
|
"filename": "lib/index.ts",
|
|
4054
|
-
"line":
|
|
4093
|
+
"line": 129
|
|
4055
4094
|
},
|
|
4056
4095
|
"name": "deadLetterQueue",
|
|
4057
4096
|
"optional": true,
|
|
@@ -4063,7 +4102,7 @@
|
|
|
4063
4102
|
"immutable": true,
|
|
4064
4103
|
"locationInModule": {
|
|
4065
4104
|
"filename": "lib/index.ts",
|
|
4066
|
-
"line":
|
|
4105
|
+
"line": 132
|
|
4067
4106
|
},
|
|
4068
4107
|
"name": "encryptionKey",
|
|
4069
4108
|
"optional": true,
|
|
@@ -4075,13 +4114,37 @@
|
|
|
4075
4114
|
"immutable": true,
|
|
4076
4115
|
"locationInModule": {
|
|
4077
4116
|
"filename": "lib/index.ts",
|
|
4078
|
-
"line":
|
|
4117
|
+
"line": 130
|
|
4079
4118
|
},
|
|
4080
4119
|
"name": "eventBus",
|
|
4081
4120
|
"optional": true,
|
|
4082
4121
|
"type": {
|
|
4083
4122
|
"fqn": "aws-cdk-lib.aws_events.IEventBus"
|
|
4084
4123
|
}
|
|
4124
|
+
},
|
|
4125
|
+
{
|
|
4126
|
+
"immutable": true,
|
|
4127
|
+
"locationInModule": {
|
|
4128
|
+
"filename": "lib/index.ts",
|
|
4129
|
+
"line": 133
|
|
4130
|
+
},
|
|
4131
|
+
"name": "eventRuleDlq",
|
|
4132
|
+
"optional": true,
|
|
4133
|
+
"type": {
|
|
4134
|
+
"fqn": "aws-cdk-lib.aws_sqs.Queue"
|
|
4135
|
+
}
|
|
4136
|
+
},
|
|
4137
|
+
{
|
|
4138
|
+
"immutable": true,
|
|
4139
|
+
"locationInModule": {
|
|
4140
|
+
"filename": "lib/index.ts",
|
|
4141
|
+
"line": 134
|
|
4142
|
+
},
|
|
4143
|
+
"name": "eventRuleDlqKey",
|
|
4144
|
+
"optional": true,
|
|
4145
|
+
"type": {
|
|
4146
|
+
"fqn": "aws-cdk-lib.aws_kms.IKey"
|
|
4147
|
+
}
|
|
4085
4148
|
}
|
|
4086
4149
|
],
|
|
4087
4150
|
"symbolId": "lib/index:EventbridgeToSqs"
|
|
@@ -4098,7 +4161,7 @@
|
|
|
4098
4161
|
"kind": "interface",
|
|
4099
4162
|
"locationInModule": {
|
|
4100
4163
|
"filename": "lib/index.ts",
|
|
4101
|
-
"line":
|
|
4164
|
+
"line": 27
|
|
4102
4165
|
},
|
|
4103
4166
|
"name": "EventbridgeToSqsProps",
|
|
4104
4167
|
"properties": [
|
|
@@ -4111,7 +4174,7 @@
|
|
|
4111
4174
|
"immutable": true,
|
|
4112
4175
|
"locationInModule": {
|
|
4113
4176
|
"filename": "lib/index.ts",
|
|
4114
|
-
"line":
|
|
4177
|
+
"line": 45
|
|
4115
4178
|
},
|
|
4116
4179
|
"name": "eventRuleProps",
|
|
4117
4180
|
"type": {
|
|
@@ -4127,7 +4190,7 @@
|
|
|
4127
4190
|
"immutable": true,
|
|
4128
4191
|
"locationInModule": {
|
|
4129
4192
|
"filename": "lib/index.ts",
|
|
4130
|
-
"line":
|
|
4193
|
+
"line": 93
|
|
4131
4194
|
},
|
|
4132
4195
|
"name": "deadLetterQueueProps",
|
|
4133
4196
|
"optional": true,
|
|
@@ -4144,7 +4207,7 @@
|
|
|
4144
4207
|
"immutable": true,
|
|
4145
4208
|
"locationInModule": {
|
|
4146
4209
|
"filename": "lib/index.ts",
|
|
4147
|
-
"line":
|
|
4210
|
+
"line": 99
|
|
4148
4211
|
},
|
|
4149
4212
|
"name": "deployDeadLetterQueue",
|
|
4150
4213
|
"optional": true,
|
|
@@ -4152,6 +4215,24 @@
|
|
|
4152
4215
|
"primitive": "boolean"
|
|
4153
4216
|
}
|
|
4154
4217
|
},
|
|
4218
|
+
{
|
|
4219
|
+
"abstract": true,
|
|
4220
|
+
"docs": {
|
|
4221
|
+
"default": "- false",
|
|
4222
|
+
"remarks": "If set to `true`, this DLQ will\nreceive any messages that can't be delivered to the target SQS queue.",
|
|
4223
|
+
"summary": "Whether to deploy a DLQ for the Event Rule."
|
|
4224
|
+
},
|
|
4225
|
+
"immutable": true,
|
|
4226
|
+
"locationInModule": {
|
|
4227
|
+
"filename": "lib/index.ts",
|
|
4228
|
+
"line": 52
|
|
4229
|
+
},
|
|
4230
|
+
"name": "deployEventRuleDlq",
|
|
4231
|
+
"optional": true,
|
|
4232
|
+
"type": {
|
|
4233
|
+
"primitive": "boolean"
|
|
4234
|
+
}
|
|
4235
|
+
},
|
|
4155
4236
|
{
|
|
4156
4237
|
"abstract": true,
|
|
4157
4238
|
"docs": {
|
|
@@ -4162,7 +4243,7 @@
|
|
|
4162
4243
|
"immutable": true,
|
|
4163
4244
|
"locationInModule": {
|
|
4164
4245
|
"filename": "lib/index.ts",
|
|
4165
|
-
"line":
|
|
4246
|
+
"line": 112
|
|
4166
4247
|
},
|
|
4167
4248
|
"name": "enableEncryptionWithCustomerManagedKey",
|
|
4168
4249
|
"optional": true,
|
|
@@ -4179,7 +4260,7 @@
|
|
|
4179
4260
|
"immutable": true,
|
|
4180
4261
|
"locationInModule": {
|
|
4181
4262
|
"filename": "lib/index.ts",
|
|
4182
|
-
"line":
|
|
4263
|
+
"line": 77
|
|
4183
4264
|
},
|
|
4184
4265
|
"name": "enableQueuePurging",
|
|
4185
4266
|
"optional": true,
|
|
@@ -4196,7 +4277,7 @@
|
|
|
4196
4277
|
"immutable": true,
|
|
4197
4278
|
"locationInModule": {
|
|
4198
4279
|
"filename": "lib/index.ts",
|
|
4199
|
-
"line":
|
|
4280
|
+
"line": 118
|
|
4200
4281
|
},
|
|
4201
4282
|
"name": "encryptionKey",
|
|
4202
4283
|
"optional": true,
|
|
@@ -4213,7 +4294,7 @@
|
|
|
4213
4294
|
"immutable": true,
|
|
4214
4295
|
"locationInModule": {
|
|
4215
4296
|
"filename": "lib/index.ts",
|
|
4216
|
-
"line":
|
|
4297
|
+
"line": 124
|
|
4217
4298
|
},
|
|
4218
4299
|
"name": "encryptionKeyProps",
|
|
4219
4300
|
"optional": true,
|
|
@@ -4230,7 +4311,7 @@
|
|
|
4230
4311
|
"immutable": true,
|
|
4231
4312
|
"locationInModule": {
|
|
4232
4313
|
"filename": "lib/index.ts",
|
|
4233
|
-
"line":
|
|
4314
|
+
"line": 39
|
|
4234
4315
|
},
|
|
4235
4316
|
"name": "eventBusProps",
|
|
4236
4317
|
"optional": true,
|
|
@@ -4238,6 +4319,23 @@
|
|
|
4238
4319
|
"fqn": "aws-cdk-lib.aws_events.EventBusProps"
|
|
4239
4320
|
}
|
|
4240
4321
|
},
|
|
4322
|
+
{
|
|
4323
|
+
"abstract": true,
|
|
4324
|
+
"docs": {
|
|
4325
|
+
"default": "- default props are used",
|
|
4326
|
+
"summary": "Properties to define the key created to protect the ruleDlq Only valid if deployEventRuleDlq is set to true."
|
|
4327
|
+
},
|
|
4328
|
+
"immutable": true,
|
|
4329
|
+
"locationInModule": {
|
|
4330
|
+
"filename": "lib/index.ts",
|
|
4331
|
+
"line": 59
|
|
4332
|
+
},
|
|
4333
|
+
"name": "eventRuleDlqKeyProps",
|
|
4334
|
+
"optional": true,
|
|
4335
|
+
"type": {
|
|
4336
|
+
"fqn": "aws-cdk-lib.aws_kms.KeyProps"
|
|
4337
|
+
}
|
|
4338
|
+
},
|
|
4241
4339
|
{
|
|
4242
4340
|
"abstract": true,
|
|
4243
4341
|
"docs": {
|
|
@@ -4247,7 +4345,7 @@
|
|
|
4247
4345
|
"immutable": true,
|
|
4248
4346
|
"locationInModule": {
|
|
4249
4347
|
"filename": "lib/index.ts",
|
|
4250
|
-
"line":
|
|
4348
|
+
"line": 33
|
|
4251
4349
|
},
|
|
4252
4350
|
"name": "existingEventBusInterface",
|
|
4253
4351
|
"optional": true,
|
|
@@ -4264,7 +4362,7 @@
|
|
|
4264
4362
|
"immutable": true,
|
|
4265
4363
|
"locationInModule": {
|
|
4266
4364
|
"filename": "lib/index.ts",
|
|
4267
|
-
"line":
|
|
4365
|
+
"line": 65
|
|
4268
4366
|
},
|
|
4269
4367
|
"name": "existingQueueObj",
|
|
4270
4368
|
"optional": true,
|
|
@@ -4281,7 +4379,7 @@
|
|
|
4281
4379
|
"immutable": true,
|
|
4282
4380
|
"locationInModule": {
|
|
4283
4381
|
"filename": "lib/index.ts",
|
|
4284
|
-
"line":
|
|
4382
|
+
"line": 105
|
|
4285
4383
|
},
|
|
4286
4384
|
"name": "maxReceiveCount",
|
|
4287
4385
|
"optional": true,
|
|
@@ -4298,18 +4396,36 @@
|
|
|
4298
4396
|
"immutable": true,
|
|
4299
4397
|
"locationInModule": {
|
|
4300
4398
|
"filename": "lib/index.ts",
|
|
4301
|
-
"line":
|
|
4399
|
+
"line": 71
|
|
4302
4400
|
},
|
|
4303
4401
|
"name": "queueProps",
|
|
4304
4402
|
"optional": true,
|
|
4305
4403
|
"type": {
|
|
4306
4404
|
"fqn": "aws-cdk-lib.aws_sqs.QueueProps"
|
|
4307
4405
|
}
|
|
4406
|
+
},
|
|
4407
|
+
{
|
|
4408
|
+
"abstract": true,
|
|
4409
|
+
"docs": {
|
|
4410
|
+
"default": "- undefined (all default values are used)",
|
|
4411
|
+
"remarks": "If you specify a deadLetterQueue for the rule here, you are responsible for adding a resource policy\nto the queue allowing events.amazonaws.com permission to SendMessage, GetQueueUrl and GetQueueAttributes. You\ncannot send a DLQ in this property and set deployRuleDlq to true",
|
|
4412
|
+
"summary": "Optional user provided properties to define the SQS target on the Event Rule."
|
|
4413
|
+
},
|
|
4414
|
+
"immutable": true,
|
|
4415
|
+
"locationInModule": {
|
|
4416
|
+
"filename": "lib/index.ts",
|
|
4417
|
+
"line": 87
|
|
4418
|
+
},
|
|
4419
|
+
"name": "targetProps",
|
|
4420
|
+
"optional": true,
|
|
4421
|
+
"type": {
|
|
4422
|
+
"fqn": "aws-cdk-lib.aws_events_targets.SqsQueueProps"
|
|
4423
|
+
}
|
|
4308
4424
|
}
|
|
4309
4425
|
],
|
|
4310
4426
|
"symbolId": "lib/index:EventbridgeToSqsProps"
|
|
4311
4427
|
}
|
|
4312
4428
|
},
|
|
4313
|
-
"version": "2.
|
|
4314
|
-
"fingerprint": "
|
|
4429
|
+
"version": "2.78.0",
|
|
4430
|
+
"fingerprint": "HjkjtOgU3WMtShH2gcoJj3PQyM/ptW3JaqEoKXbBepg="
|
|
4315
4431
|
}
|
package/README.md
CHANGED
|
@@ -115,6 +115,9 @@ constructStack.getEncryptionKey().addToResourcePolicy(policyStatement);
|
|
|
115
115
|
|existingEventBusInterface?|[`events.IEventBus`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.IEventBus.html)| Optional user-provided custom EventBus for construct to use. Providing both this and `eventBusProps` results an error.|
|
|
116
116
|
|eventBusProps?|[`events.EventBusProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.EventBusProps.html)|Optional user-provided properties to override the default properties when creating a custom EventBus. Setting this value to `{}` will create a custom EventBus using all default properties. If neither this nor `existingEventBusInterface` is provided the construct will use the `default` EventBus. Providing both this and `existingEventBusInterface` results an error.|
|
|
117
117
|
|eventRuleProps|[`events.RuleProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.RuleProps.html)|User provided eventRuleProps to override the defaults. |
|
|
118
|
+
|targetProps?|[`eventtargets.SqsQueueProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events_targets.SqsQueueProps.html)|Optional user provided properties to define the SQS target on the Event Rule. If you specify a deadLetterQueue for the rule here, you are responsible for adding a resource policy to the queue allowing events.amazonaws.com permission to SendMessage, GetQueueUrl and GetQueueAttributes. You cannot send a DLQ in this property and set deployEventRuleDlq to true. Default is undefined and all system defaults are used.|
|
|
119
|
+
|eventRuleDlqKeyProps|[kms.KeyProps](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.KeyProps.html)|Optional properties to define the key created to protect the ruleDlq. Only valid if deployRuleDlq is set to true. Defaults to CloudFormation defaults.|
|
|
120
|
+
| deployEventRuleDlq?|boolean|Whether to deploy a DLQ for the Event Rule. If set to `true`, this DLQ will receive any messages that can't be delivered to the target SQS queue. Defaults to `false`.|
|
|
118
121
|
|existingQueueObj?|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|An optional, existing SQS queue to be used instead of the default queue. Providing both this and `queueProps` will cause an error.|
|
|
119
122
|
|queueProps?|[`sqs.QueueProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.QueueProps.html)|User provided props to override the default props for the SQS Queue. |
|
|
120
123
|
|enableQueuePurging?|`boolean`|Whether to grant additional permissions to the Lambda function enabling it to purge the SQS queue. Defaults to `false`.|
|
|
@@ -131,6 +134,8 @@ constructStack.getEncryptionKey().addToResourcePolicy(policyStatement);
|
|
|
131
134
|
|:-------------|:----------------|-----------------|
|
|
132
135
|
|eventBus?|[`events.IEventBus`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.IEventBus.html)|Returns the instance of events.IEventBus used by the construct|
|
|
133
136
|
|eventsRule|[`events.Rule`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_events.Rule.html)|Returns an instance of events.Rule created by the construct|
|
|
137
|
+
|eventRuleDlq?|`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|If the client sets deployEventRuleDlq to 'true', then this value will contain the DLQ set up for the rule.|
|
|
138
|
+
|eventRuleDlqKey|[kms.IKey](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.IKey.html)|The key created to encrypt the eventRuleDlq.|
|
|
134
139
|
|sqsQueue|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|Returns an instance of sqs.Queue created by the construct|
|
|
135
140
|
|encryptionKey?|[`kms.Key`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html)|Returns an instance of kms Key used for the SQS queue.|
|
|
136
141
|
|deadLetterQueue?|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|Returns an instance of the dead-letter SQS queue created by the pattern.|
|
package/lib/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import * as sqs from 'aws-cdk-lib/aws-sqs';
|
|
14
14
|
import * as events from 'aws-cdk-lib/aws-events';
|
|
15
|
+
import * as eventtargets from 'aws-cdk-lib/aws-events-targets';
|
|
15
16
|
import * as kms from 'aws-cdk-lib/aws-kms';
|
|
16
17
|
import { Construct } from 'constructs';
|
|
17
18
|
/**
|
|
@@ -36,6 +37,20 @@ export interface EventbridgeToSqsProps {
|
|
|
36
37
|
* @default - None
|
|
37
38
|
*/
|
|
38
39
|
readonly eventRuleProps: events.RuleProps;
|
|
40
|
+
/**
|
|
41
|
+
* Whether to deploy a DLQ for the Event Rule. If set to `true`, this DLQ will
|
|
42
|
+
* receive any messages that can't be delivered to the target SQS queue.
|
|
43
|
+
*
|
|
44
|
+
* @default - false
|
|
45
|
+
*/
|
|
46
|
+
readonly deployEventRuleDlq?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Properties to define the key created to protect the ruleDlq
|
|
49
|
+
* Only valid if deployEventRuleDlq is set to true
|
|
50
|
+
*
|
|
51
|
+
* @default - default props are used
|
|
52
|
+
*/
|
|
53
|
+
readonly eventRuleDlqKeyProps?: kms.KeyProps;
|
|
39
54
|
/**
|
|
40
55
|
* Existing instance of SQS queue object, providing both this and queueProps will cause an error.
|
|
41
56
|
*
|
|
@@ -54,6 +69,16 @@ export interface EventbridgeToSqsProps {
|
|
|
54
69
|
* @default - "false", disabled by default.
|
|
55
70
|
*/
|
|
56
71
|
readonly enableQueuePurging?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Optional user provided properties to define the SQS target on the Event Rule
|
|
74
|
+
*
|
|
75
|
+
* If you specify a deadLetterQueue for the rule here, you are responsible for adding a resource policy
|
|
76
|
+
* to the queue allowing events.amazonaws.com permission to SendMessage, GetQueueUrl and GetQueueAttributes. You
|
|
77
|
+
* cannot send a DLQ in this property and set deployRuleDlq to true
|
|
78
|
+
*
|
|
79
|
+
* @default - undefined (all default values are used)
|
|
80
|
+
*/
|
|
81
|
+
readonly targetProps?: eventtargets.SqsQueueProps;
|
|
57
82
|
/**
|
|
58
83
|
* Optional user provided properties for the dead letter queue
|
|
59
84
|
*
|
|
@@ -98,6 +123,8 @@ export declare class EventbridgeToSqs extends Construct {
|
|
|
98
123
|
readonly eventBus?: events.IEventBus;
|
|
99
124
|
readonly eventsRule: events.Rule;
|
|
100
125
|
readonly encryptionKey?: kms.IKey;
|
|
126
|
+
readonly eventRuleDlq?: sqs.Queue;
|
|
127
|
+
readonly eventRuleDlqKey?: kms.IKey;
|
|
101
128
|
/**
|
|
102
129
|
* @summary Constructs a new instance of the EventbridgeToSqs class.
|
|
103
130
|
* @param {cdk.App} scope - represents the scope for all the resources.
|
package/lib/index.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.EventbridgeToSqs = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const events = require("aws-cdk-lib/aws-events");
|
|
7
|
+
const eventtargets = require("aws-cdk-lib/aws-events-targets");
|
|
7
8
|
const defaults = require("@aws-solutions-constructs/core");
|
|
8
9
|
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
9
10
|
// Note: To ensure CDKv2 compatibility, keep the import statement for Construct separate
|
|
@@ -22,6 +23,14 @@ class EventbridgeToSqs extends constructs_1.Construct {
|
|
|
22
23
|
super(scope, id);
|
|
23
24
|
defaults.CheckSqsProps(props);
|
|
24
25
|
defaults.CheckEventBridgeProps(props);
|
|
26
|
+
// SqsQueueProps does not implement any common interface, so is unique to this construct,
|
|
27
|
+
// so we will check it here rather than in core
|
|
28
|
+
if ((props.targetProps?.deadLetterQueue) && (props.deployEventRuleDlq)) {
|
|
29
|
+
throw new Error('Cannot specify both targetProps.deadLetterQueue and deployDeadLetterQueue == true\n');
|
|
30
|
+
}
|
|
31
|
+
if (props.eventRuleDlqKeyProps && !props.deployEventRuleDlq) {
|
|
32
|
+
throw new Error('Cannot specify eventRuleDlqKeyProps without setting deployEventRuleDlq=true\n');
|
|
33
|
+
}
|
|
25
34
|
let enableEncryptionParam = props.enableEncryptionWithCustomerManagedKey;
|
|
26
35
|
if (props.enableEncryptionWithCustomerManagedKey === undefined ||
|
|
27
36
|
props.enableEncryptionWithCustomerManagedKey === true) {
|
|
@@ -41,12 +50,21 @@ class EventbridgeToSqs extends constructs_1.Construct {
|
|
|
41
50
|
this.sqsQueue = buildQueueResponse.queue;
|
|
42
51
|
this.encryptionKey = buildQueueResponse.key;
|
|
43
52
|
this.deadLetterQueue = buildQueueResponse.dlq;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
53
|
+
let constructEventTargetProps = {};
|
|
54
|
+
if (defaults.CheckBooleanWithDefault(props.deployEventRuleDlq, false)) {
|
|
55
|
+
const buildRuleDlqResponse = defaults.buildQueue(this, 'ruleDlq', {
|
|
56
|
+
deployDeadLetterQueue: false,
|
|
57
|
+
enableEncryptionWithCustomerManagedKey: enableEncryptionParam,
|
|
58
|
+
encryptionKeyProps: props.eventRuleDlqKeyProps
|
|
59
|
+
});
|
|
60
|
+
this.eventRuleDlq = buildRuleDlqResponse.queue;
|
|
61
|
+
const ruleDlqKey = buildRuleDlqResponse.key;
|
|
62
|
+
ruleDlqKey?.grantEncryptDecrypt(new aws_iam_1.ServicePrincipal('events.amazonaws.com'));
|
|
63
|
+
this.eventRuleDlqKey = ruleDlqKey;
|
|
64
|
+
constructEventTargetProps = defaults.consolidateProps(constructEventTargetProps, { deadLetterQueue: this.eventRuleDlq });
|
|
65
|
+
}
|
|
66
|
+
const sqsEventTargetProps = defaults.consolidateProps({}, props.targetProps, constructEventTargetProps);
|
|
67
|
+
const sqsEventTarget = new eventtargets.SqsQueue(this.sqsQueue, sqsEventTargetProps);
|
|
50
68
|
// build an event bus if existingEventBus is provided or eventBusProps are provided
|
|
51
69
|
this.eventBus = defaults.buildEventBus(this, {
|
|
52
70
|
existingEventBusInterface: props.existingEventBusInterface,
|
|
@@ -59,11 +77,9 @@ class EventbridgeToSqs extends constructs_1.Construct {
|
|
|
59
77
|
if (props.enableQueuePurging) {
|
|
60
78
|
this.sqsQueue.grantPurge(new aws_iam_1.ServicePrincipal('events.amazonaws.com'));
|
|
61
79
|
}
|
|
62
|
-
// Policy for event to be able to send messages to the queue and Grant Event Bridge service access to the SQS queue encryption key
|
|
63
|
-
this.sqsQueue.grantSendMessages(new aws_iam_1.ServicePrincipal('events.amazonaws.com'));
|
|
64
80
|
}
|
|
65
81
|
}
|
|
66
82
|
exports.EventbridgeToSqs = EventbridgeToSqs;
|
|
67
83
|
_a = JSII_RTTI_SYMBOL_1;
|
|
68
|
-
EventbridgeToSqs[_a] = { fqn: "@aws-solutions-constructs/aws-eventbridge-sqs.EventbridgeToSqs", version: "2.
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWNBLGlEQUFpRDtBQUVqRCwyREFBMkQ7QUFDM0QsaURBQXVEO0FBQ3ZELHdGQUF3RjtBQUN4RiwyQ0FBdUM7QUFDdkMseURBQStEO0FBaUYvRCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBTzdDOzs7Ozs7O09BT0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixRQUFRLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdEMsSUFBSSxxQkFBcUIsR0FBRyxLQUFLLENBQUMsc0NBQXNDLENBQUM7UUFDekUsSUFBSSxLQUFLLENBQUMsc0NBQXNDLEtBQUssU0FBUztZQUM1RCxLQUFLLENBQUMsc0NBQXNDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDeEQscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLENBQUM7UUFFRCxrQkFBa0I7UUFDbEIsTUFBTSxrQkFBa0IsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDNUQsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIscUJBQXFCLEVBQUUsS0FBSyxDQUFDLHFCQUFxQjtZQUNsRCxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CO1lBQ2hELGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxzQ0FBc0MsRUFBRSxxQkFBcUI7WUFDN0QsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7U0FDN0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7UUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7UUFFOUMsTUFBTSxjQUFjLEdBQXVCO1lBQ3pDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUNYLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVM7Z0JBQzNCLEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVE7YUFDNUIsQ0FBQztTQUNILENBQUM7UUFFRixtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRTtZQUMzQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMseUJBQXlCO1lBQzFELGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtTQUNuQyxDQUFDLENBQUM7UUFFSCxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRyxNQUFNLGVBQWUsR0FBRyxJQUFBLG9CQUFhLEVBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUUxRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBRXZFLGtFQUFrRTtRQUNsRSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksMEJBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxrSUFBa0k7UUFDbEksSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLDBCQUFnQixDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDOztBQWxFSCw0Q0FtRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0IHsgU2VydmljZVByaW5jaXBhbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUgcHJvcGVydGllcyBmb3IgdGhlIEV2ZW50YnJpZGdlVG9TcXMgQ29uc3RydWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRicmlkZ2VUb1Nxc1Byb3BzIHtcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIGEgY3VzdG9tIEV2ZW50QnVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nRXZlbnRCdXNJbnRlcmZhY2U/OiBldmVudHMuSUV2ZW50QnVzO1xuICAvKipcbiAgICogQSBuZXcgY3VzdG9tIEV2ZW50QnVzIGlzIGNyZWF0ZWQgd2l0aCBwcm92aWRlZCBwcm9wcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c1Byb3BzPzogZXZlbnRzLkV2ZW50QnVzUHJvcHM7XG4gIC8qKlxuICAgKiBVc2VyIHByb3ZpZGVkIGV2ZW50UnVsZVByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0c1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50UnVsZVByb3BzOiBldmVudHMuUnVsZVByb3BzO1xuICAvKipcbiAgICogRXhpc3RpbmcgaW5zdGFuY2Ugb2YgU1FTIHF1ZXVlIG9iamVjdCwgcHJvdmlkaW5nIGJvdGggdGhpcyBhbmQgcXVldWVQcm9wcyB3aWxsIGNhdXNlIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nUXVldWVPYmo/OiBzcXMuUXVldWU7XG4gIC8qKlxuICAgKiBVc2VyIHByb3ZpZGVkIHByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BzIGZvciB0aGUgU1FTIHF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlUHJvcHM/OiBzcXMuUXVldWVQcm9wcztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZ3JhbnQgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyB0byB0aGUgTGFtYmRhIGZ1bmN0aW9uIGVuYWJsaW5nIGl0IHRvIHB1cmdlIHRoZSBTUVMgcXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gXCJmYWxzZVwiLCBkaXNhYmxlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlUXVldWVQdXJnaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcGVydGllcyBmb3IgdGhlIGRlYWQgbGV0dGVyIHF1ZXVlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlUHJvcHM/OiBzcXMuUXVldWVQcm9wcztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZGVwbG95IGEgc2Vjb25kYXJ5IHF1ZXVlIHRvIGJlIHVzZWQgYXMgYSBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95RGVhZExldHRlclF1ZXVlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgdGltZXMgYSBtZXNzYWdlIGNhbiBiZSB1bnN1Y2Nlc3NmdWxseSBkZXF1ZXVlZCBiZWZvcmUgYmVpbmcgbW92ZWQgdG8gdGhlIGRlYWQtbGV0dGVyIHF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHJlcXVpcmVkIGZpZWxkIGlmIGRlcGxveURlYWRMZXR0ZXJRdWV1ZT10cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4UmVjZWl2ZUNvdW50PzogbnVtYmVyO1xuICAvKipcbiAgICogSWYgbm8ga2V5IGlzIHByb3ZpZGVkLCB0aGlzIGZsYWcgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBxdWV1ZSBpcyBlbmNyeXB0ZWQgd2l0aCBhIG5ldyBDTUsgb3IgYW4gQVdTIG1hbmFnZWQga2V5LlxuICAgKiBUaGlzIGZsYWcgaXMgaWdub3JlZCBpZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBhcmUgZGVmaW5lZDogcXVldWVQcm9wcy5lbmNyeXB0aW9uTWFzdGVyS2V5LCBlbmNyeXB0aW9uS2V5IG9yIGVuY3J5cHRpb25LZXlQcm9wcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUcnVlIGlmIHF1ZXVlUHJvcHMuZW5jcnlwdGlvbk1hc3RlcktleSwgZW5jcnlwdGlvbktleSwgYW5kIGVuY3J5cHRpb25LZXlQcm9wcyBhcmUgYWxsIHVuZGVmaW5lZC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUVuY3J5cHRpb25XaXRoQ3VzdG9tZXJNYW5hZ2VkS2V5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsLCBpbXBvcnRlZCBlbmNyeXB0aW9uIGtleSB0byBlbmNyeXB0IHRoZSBTUVMgcXVldWUgd2l0aC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLktleTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcGVydGllcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIGZvciB0aGUgS01TIGVuY3J5cHRpb24ga2V5IHVzZWQgdG8gIGVuY3J5cHQgdGhlIFNRUyBxdWV1ZSB3aXRoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXlQcm9wcz86IGttcy5LZXlQcm9wcztcbn1cblxuZXhwb3J0IGNsYXNzIEV2ZW50YnJpZGdlVG9TcXMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgc3FzUXVldWU6IHNxcy5RdWV1ZTtcbiAgcHVibGljIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZT86IHNxcy5EZWFkTGV0dGVyUXVldWU7XG4gIHB1YmxpYyByZWFkb25seSBldmVudEJ1cz86IGV2ZW50cy5JRXZlbnRCdXM7XG4gIHB1YmxpYyByZWFkb25seSBldmVudHNSdWxlOiBldmVudHMuUnVsZTtcbiAgcHVibGljIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcblxuICAvKipcbiAgICogQHN1bW1hcnkgQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgRXZlbnRicmlkZ2VUb1NxcyBjbGFzcy5cbiAgICogQHBhcmFtIHtjZGsuQXBwfSBzY29wZSAtIHJlcHJlc2VudHMgdGhlIHNjb3BlIGZvciBhbGwgdGhlIHJlc291cmNlcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkIC0gdGhpcyBpcyBhIGEgc2NvcGUtdW5pcXVlIGlkLlxuICAgKiBAcGFyYW0ge0V2ZW50YnJpZGdlVG9TcXNQcm9wc30gcHJvcHMgLSB1c2VyIHByb3ZpZGVkIHByb3BzIGZvciB0aGUgY29uc3RydWN0XG4gICAqIEBzaW5jZSAxLjYyLjBcbiAgICogQGFjY2VzcyBwdWJsaWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFdmVudGJyaWRnZVRvU3FzUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGRlZmF1bHRzLkNoZWNrU3FzUHJvcHMocHJvcHMpO1xuICAgIGRlZmF1bHRzLkNoZWNrRXZlbnRCcmlkZ2VQcm9wcyhwcm9wcyk7XG5cbiAgICBsZXQgZW5hYmxlRW5jcnlwdGlvblBhcmFtID0gcHJvcHMuZW5hYmxlRW5jcnlwdGlvbldpdGhDdXN0b21lck1hbmFnZWRLZXk7XG4gICAgaWYgKHByb3BzLmVuYWJsZUVuY3J5cHRpb25XaXRoQ3VzdG9tZXJNYW5hZ2VkS2V5ID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHByb3BzLmVuYWJsZUVuY3J5cHRpb25XaXRoQ3VzdG9tZXJNYW5hZ2VkS2V5ID09PSB0cnVlKSB7XG4gICAgICBlbmFibGVFbmNyeXB0aW9uUGFyYW0gPSB0cnVlO1xuICAgIH1cblxuICAgIC8vIFNldHVwIHRoZSBxdWV1ZVxuICAgIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUXVldWUodGhpcywgJ3F1ZXVlJywge1xuICAgICAgZXhpc3RpbmdRdWV1ZU9iajogcHJvcHMuZXhpc3RpbmdRdWV1ZU9iaixcbiAgICAgIHF1ZXVlUHJvcHM6IHByb3BzLnF1ZXVlUHJvcHMsXG4gICAgICBkZXBsb3lEZWFkTGV0dGVyUXVldWU6IHByb3BzLmRlcGxveURlYWRMZXR0ZXJRdWV1ZSxcbiAgICAgIGRlYWRMZXR0ZXJRdWV1ZVByb3BzOiBwcm9wcy5kZWFkTGV0dGVyUXVldWVQcm9wcyxcbiAgICAgIG1heFJlY2VpdmVDb3VudDogcHJvcHMubWF4UmVjZWl2ZUNvdW50LFxuICAgICAgZW5hYmxlRW5jcnlwdGlvbldpdGhDdXN0b21lck1hbmFnZWRLZXk6IGVuYWJsZUVuY3J5cHRpb25QYXJhbSxcbiAgICAgIGVuY3J5cHRpb25LZXk6IHByb3BzLmVuY3J5cHRpb25LZXksXG4gICAgICBlbmNyeXB0aW9uS2V5UHJvcHM6IHByb3BzLmVuY3J5cHRpb25LZXlQcm9wc1xuICAgIH0pO1xuICAgIHRoaXMuc3FzUXVldWUgPSBidWlsZFF1ZXVlUmVzcG9uc2UucXVldWU7XG4gICAgdGhpcy5lbmNyeXB0aW9uS2V5ID0gYnVpbGRRdWV1ZVJlc3BvbnNlLmtleTtcbiAgICB0aGlzLmRlYWRMZXR0ZXJRdWV1ZSA9IGJ1aWxkUXVldWVSZXNwb25zZS5kbHE7XG5cbiAgICBjb25zdCBzcXNFdmVudFRhcmdldDogZXZlbnRzLklSdWxlVGFyZ2V0ID0ge1xuICAgICAgYmluZDogKCkgPT4gKHtcbiAgICAgICAgaWQ6IHRoaXMuc3FzUXVldWUucXVldWVOYW1lLFxuICAgICAgICBhcm46IHRoaXMuc3FzUXVldWUucXVldWVBcm5cbiAgICAgIH0pXG4gICAgfTtcblxuICAgIC8vIGJ1aWxkIGFuIGV2ZW50IGJ1cyBpZiBleGlzdGluZ0V2ZW50QnVzIGlzIHByb3ZpZGVkIG9yIGV2ZW50QnVzUHJvcHMgYXJlIHByb3ZpZGVkXG4gICAgdGhpcy5ldmVudEJ1cyA9IGRlZmF1bHRzLmJ1aWxkRXZlbnRCdXModGhpcywge1xuICAgICAgZXhpc3RpbmdFdmVudEJ1c0ludGVyZmFjZTogcHJvcHMuZXhpc3RpbmdFdmVudEJ1c0ludGVyZmFjZSxcbiAgICAgIGV2ZW50QnVzUHJvcHM6IHByb3BzLmV2ZW50QnVzUHJvcHNcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlZmF1bHRFdmVudHNSdWxlUHJvcHMgPSBkZWZhdWx0cy5EZWZhdWx0RXZlbnRzUnVsZVByb3BzKFtzcXNFdmVudFRhcmdldF0sIHRoaXMuZXZlbnRCdXMpO1xuICAgIGNvbnN0IGV2ZW50c1J1bGVQcm9wcyA9IG92ZXJyaWRlUHJvcHMoZGVmYXVsdEV2ZW50c1J1bGVQcm9wcywgcHJvcHMuZXZlbnRSdWxlUHJvcHMsIHRydWUpO1xuXG4gICAgdGhpcy5ldmVudHNSdWxlID0gbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdFdmVudHNSdWxlJywgZXZlbnRzUnVsZVByb3BzKTtcblxuICAgIC8vIEVuYWJsZSBxdWV1ZSBwdXJnaW5nIHBlcm1pc3Npb25zIGZvciB0aGUgZXZlbnQgcnVsZSwgaWYgZW5hYmxlZFxuICAgIGlmIChwcm9wcy5lbmFibGVRdWV1ZVB1cmdpbmcpIHtcbiAgICAgIHRoaXMuc3FzUXVldWUuZ3JhbnRQdXJnZShuZXcgU2VydmljZVByaW5jaXBhbCgnZXZlbnRzLmFtYXpvbmF3cy5jb20nKSk7XG4gICAgfVxuXG4gICAgLy8gUG9saWN5IGZvciBldmVudCB0byBiZSBhYmxlIHRvIHNlbmQgbWVzc2FnZXMgdG8gdGhlIHF1ZXVlIGFuZCBHcmFudCBFdmVudCBCcmlkZ2Ugc2VydmljZSBhY2Nlc3MgdG8gdGhlIFNRUyBxdWV1ZSBlbmNyeXB0aW9uIGtleVxuICAgIHRoaXMuc3FzUXVldWUuZ3JhbnRTZW5kTWVzc2FnZXMobmV3IFNlcnZpY2VQcmluY2lwYWwoJ2V2ZW50cy5hbWF6b25hd3MuY29tJykpO1xuICB9XG59Il19
|
|
84
|
+
EventbridgeToSqs[_a] = { fqn: "@aws-solutions-constructs/aws-eventbridge-sqs.EventbridgeToSqs", version: "2.78.0" };
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWNBLGlEQUFpRDtBQUNqRCwrREFBK0Q7QUFFL0QsMkRBQTJEO0FBQzNELGlEQUF1RDtBQUN2RCx3RkFBd0Y7QUFDeEYsMkNBQXVDO0FBQ3ZDLHlEQUErRDtBQXlHL0QsTUFBYSxnQkFBaUIsU0FBUSxzQkFBUztJQVM3Qzs7Ozs7OztPQU9HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE0QjtRQUNwRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsUUFBUSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLHlGQUF5RjtRQUN6RiwrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLE1BQU0sSUFBSSxLQUFLLENBQUMsc0ZBQXNGLENBQUMsQ0FBQztRQUMxRyxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsb0JBQW9CLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1RCxNQUFNLElBQUksS0FBSyxDQUFDLCtFQUErRSxDQUFDLENBQUM7UUFDbkcsQ0FBQztRQUVELElBQUkscUJBQXFCLEdBQUcsS0FBSyxDQUFDLHNDQUFzQyxDQUFDO1FBQ3pFLElBQUksS0FBSyxDQUFDLHNDQUFzQyxLQUFLLFNBQVM7WUFDNUQsS0FBSyxDQUFDLHNDQUFzQyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3hELHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO1FBRUQsa0JBQWtCO1FBQ2xCLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQzVELGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUI7WUFDbEQsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtZQUNoRCxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsc0NBQXNDLEVBQUUscUJBQXFCO1lBQzdELGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtZQUNsQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsa0JBQWtCO1NBQzdDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDO1FBQzVDLElBQUksQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDO1FBRTlDLElBQUkseUJBQXlCLEdBQStCLEVBQUUsQ0FBQztRQUUvRCxJQUFJLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUV0RSxNQUFNLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRTtnQkFDaEUscUJBQXFCLEVBQUUsS0FBSztnQkFDNUIsc0NBQXNDLEVBQUUscUJBQXFCO2dCQUM3RCxrQkFBa0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CO2FBQy9DLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDO1lBQy9DLE1BQU0sVUFBVSxHQUFHLG9CQUFvQixDQUFDLEdBQUcsQ0FBQztZQUM1QyxVQUFVLEVBQUUsbUJBQW1CLENBQUMsSUFBSSwwQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLENBQUM7WUFFbEMseUJBQXlCLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLHlCQUF5QixFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzNILENBQUM7UUFFRCxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3hHLE1BQU0sY0FBYyxHQUFHLElBQUksWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFckYsbUZBQW1GO1FBQ25GLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUU7WUFDM0MseUJBQXlCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjtZQUMxRCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7U0FDbkMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEcsTUFBTSxlQUFlLEdBQUcsSUFBQSxvQkFBYSxFQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFMUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUV2RSxrRUFBa0U7UUFDbEUsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLDBCQUFnQixDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBRUgsQ0FBQzs7QUF4RkgsNENBeUZDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgc3FzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zcXMnO1xuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0ICogYXMgZXZlbnR0YXJnZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0IHsgU2VydmljZVByaW5jaXBhbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcblxuLyoqXG4gKiBAc3VtbWFyeSBUaGUgcHJvcGVydGllcyBmb3IgdGhlIEV2ZW50YnJpZGdlVG9TcXMgQ29uc3RydWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRicmlkZ2VUb1Nxc1Byb3BzIHtcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIGEgY3VzdG9tIEV2ZW50QnVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nRXZlbnRCdXNJbnRlcmZhY2U/OiBldmVudHMuSUV2ZW50QnVzO1xuICAvKipcbiAgICogQSBuZXcgY3VzdG9tIEV2ZW50QnVzIGlzIGNyZWF0ZWQgd2l0aCBwcm92aWRlZCBwcm9wcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c1Byb3BzPzogZXZlbnRzLkV2ZW50QnVzUHJvcHM7XG4gIC8qKlxuICAgKiBVc2VyIHByb3ZpZGVkIGV2ZW50UnVsZVByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0c1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50UnVsZVByb3BzOiBldmVudHMuUnVsZVByb3BzO1xuICAvKipcbiAgICogV2hldGhlciB0byBkZXBsb3kgYSBETFEgZm9yIHRoZSBFdmVudCBSdWxlLiBJZiBzZXQgdG8gYHRydWVgLCB0aGlzIERMUSB3aWxsXG4gICAqIHJlY2VpdmUgYW55IG1lc3NhZ2VzIHRoYXQgY2FuJ3QgYmUgZGVsaXZlcmVkIHRvIHRoZSB0YXJnZXQgU1FTIHF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lFdmVudFJ1bGVEbHE/OiBib29sZWFuO1xuICAvKipcbiAgICogUHJvcGVydGllcyB0byBkZWZpbmUgdGhlIGtleSBjcmVhdGVkIHRvIHByb3RlY3QgdGhlIHJ1bGVEbHFcbiAgICogT25seSB2YWxpZCBpZiBkZXBsb3lFdmVudFJ1bGVEbHEgaXMgc2V0IHRvIHRydWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBkZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBldmVudFJ1bGVEbHFLZXlQcm9wcz86IGttcy5LZXlQcm9wcztcbiAgLyoqXG4gICAqIEV4aXN0aW5nIGluc3RhbmNlIG9mIFNRUyBxdWV1ZSBvYmplY3QsIHByb3ZpZGluZyBib3RoIHRoaXMgYW5kIHF1ZXVlUHJvcHMgd2lsbCBjYXVzZSBhbiBlcnJvci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ1F1ZXVlT2JqPzogc3FzLlF1ZXVlO1xuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIFNRUyBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBxdWV1ZVByb3BzPzogc3FzLlF1ZXVlUHJvcHM7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGdyYW50IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgdG8gdGhlIExhbWJkYSBmdW5jdGlvbiBlbmFibGluZyBpdCB0byBwdXJnZSB0aGUgU1FTIHF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFwiZmFsc2VcIiwgZGlzYWJsZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVF1ZXVlUHVyZ2luZz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BlcnRpZXMgdG8gZGVmaW5lIHRoZSBTUVMgdGFyZ2V0IG9uIHRoZSBFdmVudCBSdWxlXG4gICAqXG4gICAqIElmIHlvdSBzcGVjaWZ5IGEgZGVhZExldHRlclF1ZXVlIGZvciB0aGUgcnVsZSBoZXJlLCB5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBhZGRpbmcgYSByZXNvdXJjZSBwb2xpY3lcbiAgICogdG8gdGhlIHF1ZXVlIGFsbG93aW5nIGV2ZW50cy5hbWF6b25hd3MuY29tIHBlcm1pc3Npb24gdG8gU2VuZE1lc3NhZ2UsIEdldFF1ZXVlVXJsIGFuZCBHZXRRdWV1ZUF0dHJpYnV0ZXMuIFlvdVxuICAgKiBjYW5ub3Qgc2VuZCBhIERMUSBpbiB0aGlzIHByb3BlcnR5IGFuZCBzZXQgZGVwbG95UnVsZURscSB0byB0cnVlXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdW5kZWZpbmVkIChhbGwgZGVmYXVsdCB2YWx1ZXMgYXJlIHVzZWQpXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRQcm9wcz86IGV2ZW50dGFyZ2V0cy5TcXNRdWV1ZVByb3BzO1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wZXJ0aWVzIGZvciB0aGUgZGVhZCBsZXR0ZXIgcXVldWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBkZWFkTGV0dGVyUXVldWVQcm9wcz86IHNxcy5RdWV1ZVByb3BzO1xuICAvKipcbiAgICogV2hldGhlciB0byBkZXBsb3kgYSBzZWNvbmRhcnkgcXVldWUgdG8gYmUgdXNlZCBhcyBhIGRlYWQgbGV0dGVyIHF1ZXVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRydWUuXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lEZWFkTGV0dGVyUXVldWU/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiB0aW1lcyBhIG1lc3NhZ2UgY2FuIGJlIHVuc3VjY2Vzc2Z1bGx5IGRlcXVldWVkIGJlZm9yZSBiZWluZyBtb3ZlZCB0byB0aGUgZGVhZC1sZXR0ZXIgcXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gcmVxdWlyZWQgZmllbGQgaWYgZGVwbG95RGVhZExldHRlclF1ZXVlPXRydWUuXG4gICAqL1xuICByZWFkb25seSBtYXhSZWNlaXZlQ291bnQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJZiBubyBrZXkgaXMgcHJvdmlkZWQsIHRoaXMgZmxhZyBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHF1ZXVlIGlzIGVuY3J5cHRlZCB3aXRoIGEgbmV3IENNSyBvciBhbiBBV1MgbWFuYWdlZCBrZXkuXG4gICAqIFRoaXMgZmxhZyBpcyBpZ25vcmVkIGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFyZSBkZWZpbmVkOiBxdWV1ZVByb3BzLmVuY3J5cHRpb25NYXN0ZXJLZXksIGVuY3J5cHRpb25LZXkgb3IgZW5jcnlwdGlvbktleVByb3BzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRydWUgaWYgcXVldWVQcm9wcy5lbmNyeXB0aW9uTWFzdGVyS2V5LCBlbmNyeXB0aW9uS2V5LCBhbmQgZW5jcnlwdGlvbktleVByb3BzIGFyZSBhbGwgdW5kZWZpbmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRW5jcnlwdGlvbldpdGhDdXN0b21lck1hbmFnZWRLZXk/OiBib29sZWFuO1xuICAvKipcbiAgICogQW4gb3B0aW9uYWwsIGltcG9ydGVkIGVuY3J5cHRpb24ga2V5IHRvIGVuY3J5cHQgdGhlIFNRUyBxdWV1ZSB3aXRoLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuS2V5O1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wZXJ0aWVzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgZm9yIHRoZSBLTVMgZW5jcnlwdGlvbiBrZXkgdXNlZCB0byAgZW5jcnlwdCB0aGUgU1FTIHF1ZXVlIHdpdGguXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleVByb3BzPzoga21zLktleVByb3BzO1xufVxuXG5leHBvcnQgY2xhc3MgRXZlbnRicmlkZ2VUb1NxcyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBzcXNRdWV1ZTogc3FzLlF1ZXVlO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlPzogc3FzLkRlYWRMZXR0ZXJRdWV1ZTtcbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50QnVzPzogZXZlbnRzLklFdmVudEJ1cztcbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50c1J1bGU6IGV2ZW50cy5SdWxlO1xuICBwdWJsaWMgcmVhZG9ubHkgZW5jcnlwdGlvbktleT86IGttcy5JS2V5O1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRSdWxlRGxxPzogc3FzLlF1ZXVlO1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRSdWxlRGxxS2V5Pzoga21zLklLZXk7XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIEV2ZW50YnJpZGdlVG9TcXMgY2xhc3MuXG4gICAqIEBwYXJhbSB7Y2RrLkFwcH0gc2NvcGUgLSByZXByZXNlbnRzIHRoZSBzY29wZSBmb3IgYWxsIHRoZSByZXNvdXJjZXMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBpZCAtIHRoaXMgaXMgYSBhIHNjb3BlLXVuaXF1ZSBpZC5cbiAgICogQHBhcmFtIHtFdmVudGJyaWRnZVRvU3FzUHJvcHN9IHByb3BzIC0gdXNlciBwcm92aWRlZCBwcm9wcyBmb3IgdGhlIGNvbnN0cnVjdFxuICAgKiBAc2luY2UgMS42Mi4wXG4gICAqIEBhY2Nlc3MgcHVibGljXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXZlbnRicmlkZ2VUb1Nxc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBkZWZhdWx0cy5DaGVja1Nxc1Byb3BzKHByb3BzKTtcbiAgICBkZWZhdWx0cy5DaGVja0V2ZW50QnJpZGdlUHJvcHMocHJvcHMpO1xuICAgIC8vIFNxc1F1ZXVlUHJvcHMgZG9lcyBub3QgaW1wbGVtZW50IGFueSBjb21tb24gaW50ZXJmYWNlLCBzbyBpcyB1bmlxdWUgdG8gdGhpcyBjb25zdHJ1Y3QsXG4gICAgLy8gc28gd2Ugd2lsbCBjaGVjayBpdCBoZXJlIHJhdGhlciB0aGFuIGluIGNvcmVcbiAgICBpZiAoKHByb3BzLnRhcmdldFByb3BzPy5kZWFkTGV0dGVyUXVldWUpICYmIChwcm9wcy5kZXBsb3lFdmVudFJ1bGVEbHEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBzcGVjaWZ5IGJvdGggdGFyZ2V0UHJvcHMuZGVhZExldHRlclF1ZXVlIGFuZCBkZXBsb3lEZWFkTGV0dGVyUXVldWUgPT0gIHRydWVcXG4nKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmV2ZW50UnVsZURscUtleVByb3BzICYmICFwcm9wcy5kZXBsb3lFdmVudFJ1bGVEbHEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHNwZWNpZnkgZXZlbnRSdWxlRGxxS2V5UHJvcHMgd2l0aG91dCBzZXR0aW5nIGRlcGxveUV2ZW50UnVsZURscT10cnVlXFxuJyk7XG4gICAgfVxuXG4gICAgbGV0IGVuYWJsZUVuY3J5cHRpb25QYXJhbSA9IHByb3BzLmVuYWJsZUVuY3J5cHRpb25XaXRoQ3VzdG9tZXJNYW5hZ2VkS2V5O1xuICAgIGlmIChwcm9wcy5lbmFibGVFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBwcm9wcy5lbmFibGVFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleSA9PT0gdHJ1ZSkge1xuICAgICAgZW5hYmxlRW5jcnlwdGlvblBhcmFtID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBTZXR1cCB0aGUgcXVldWVcbiAgICBjb25zdCBidWlsZFF1ZXVlUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFF1ZXVlKHRoaXMsICdxdWV1ZScsIHtcbiAgICAgIGV4aXN0aW5nUXVldWVPYmo6IHByb3BzLmV4aXN0aW5nUXVldWVPYmosXG4gICAgICBxdWV1ZVByb3BzOiBwcm9wcy5xdWV1ZVByb3BzLFxuICAgICAgZGVwbG95RGVhZExldHRlclF1ZXVlOiBwcm9wcy5kZXBsb3lEZWFkTGV0dGVyUXVldWUsXG4gICAgICBkZWFkTGV0dGVyUXVldWVQcm9wczogcHJvcHMuZGVhZExldHRlclF1ZXVlUHJvcHMsXG4gICAgICBtYXhSZWNlaXZlQ291bnQ6IHByb3BzLm1heFJlY2VpdmVDb3VudCxcbiAgICAgIGVuYWJsZUVuY3J5cHRpb25XaXRoQ3VzdG9tZXJNYW5hZ2VkS2V5OiBlbmFibGVFbmNyeXB0aW9uUGFyYW0sXG4gICAgICBlbmNyeXB0aW9uS2V5OiBwcm9wcy5lbmNyeXB0aW9uS2V5LFxuICAgICAgZW5jcnlwdGlvbktleVByb3BzOiBwcm9wcy5lbmNyeXB0aW9uS2V5UHJvcHNcbiAgICB9KTtcbiAgICB0aGlzLnNxc1F1ZXVlID0gYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlO1xuICAgIHRoaXMuZW5jcnlwdGlvbktleSA9IGJ1aWxkUXVldWVSZXNwb25zZS5rZXk7XG4gICAgdGhpcy5kZWFkTGV0dGVyUXVldWUgPSBidWlsZFF1ZXVlUmVzcG9uc2UuZGxxO1xuXG4gICAgbGV0IGNvbnN0cnVjdEV2ZW50VGFyZ2V0UHJvcHM6IGV2ZW50dGFyZ2V0cy5TcXNRdWV1ZVByb3BzID0ge307XG5cbiAgICBpZiAoZGVmYXVsdHMuQ2hlY2tCb29sZWFuV2l0aERlZmF1bHQocHJvcHMuZGVwbG95RXZlbnRSdWxlRGxxLCBmYWxzZSkpIHtcblxuICAgICAgY29uc3QgYnVpbGRSdWxlRGxxUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFF1ZXVlKHRoaXMsICdydWxlRGxxJywge1xuICAgICAgICBkZXBsb3lEZWFkTGV0dGVyUXVldWU6IGZhbHNlLFxuICAgICAgICBlbmFibGVFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleTogZW5hYmxlRW5jcnlwdGlvblBhcmFtLFxuICAgICAgICBlbmNyeXB0aW9uS2V5UHJvcHM6IHByb3BzLmV2ZW50UnVsZURscUtleVByb3BzXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5ldmVudFJ1bGVEbHEgPSBidWlsZFJ1bGVEbHFSZXNwb25zZS5xdWV1ZTtcbiAgICAgIGNvbnN0IHJ1bGVEbHFLZXkgPSBidWlsZFJ1bGVEbHFSZXNwb25zZS5rZXk7XG4gICAgICBydWxlRGxxS2V5Py5ncmFudEVuY3J5cHREZWNyeXB0KG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdldmVudHMuYW1hem9uYXdzLmNvbScpKTtcbiAgICAgIHRoaXMuZXZlbnRSdWxlRGxxS2V5ID0gcnVsZURscUtleTtcblxuICAgICAgY29uc3RydWN0RXZlbnRUYXJnZXRQcm9wcyA9IGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoY29uc3RydWN0RXZlbnRUYXJnZXRQcm9wcywgeyBkZWFkTGV0dGVyUXVldWU6IHRoaXMuZXZlbnRSdWxlRGxxIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHNxc0V2ZW50VGFyZ2V0UHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKHt9LCBwcm9wcy50YXJnZXRQcm9wcywgY29uc3RydWN0RXZlbnRUYXJnZXRQcm9wcyk7XG4gICAgY29uc3Qgc3FzRXZlbnRUYXJnZXQgPSBuZXcgZXZlbnR0YXJnZXRzLlNxc1F1ZXVlKHRoaXMuc3FzUXVldWUsIHNxc0V2ZW50VGFyZ2V0UHJvcHMpO1xuXG4gICAgLy8gYnVpbGQgYW4gZXZlbnQgYnVzIGlmIGV4aXN0aW5nRXZlbnRCdXMgaXMgcHJvdmlkZWQgb3IgZXZlbnRCdXNQcm9wcyBhcmUgcHJvdmlkZWRcbiAgICB0aGlzLmV2ZW50QnVzID0gZGVmYXVsdHMuYnVpbGRFdmVudEJ1cyh0aGlzLCB7XG4gICAgICBleGlzdGluZ0V2ZW50QnVzSW50ZXJmYWNlOiBwcm9wcy5leGlzdGluZ0V2ZW50QnVzSW50ZXJmYWNlLFxuICAgICAgZXZlbnRCdXNQcm9wczogcHJvcHMuZXZlbnRCdXNQcm9wc1xuICAgIH0pO1xuXG4gICAgY29uc3QgZGVmYXVsdEV2ZW50c1J1bGVQcm9wcyA9IGRlZmF1bHRzLkRlZmF1bHRFdmVudHNSdWxlUHJvcHMoW3Nxc0V2ZW50VGFyZ2V0XSwgdGhpcy5ldmVudEJ1cyk7XG4gICAgY29uc3QgZXZlbnRzUnVsZVByb3BzID0gb3ZlcnJpZGVQcm9wcyhkZWZhdWx0RXZlbnRzUnVsZVByb3BzLCBwcm9wcy5ldmVudFJ1bGVQcm9wcywgdHJ1ZSk7XG5cbiAgICB0aGlzLmV2ZW50c1J1bGUgPSBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ0V2ZW50c1J1bGUnLCBldmVudHNSdWxlUHJvcHMpO1xuXG4gICAgLy8gRW5hYmxlIHF1ZXVlIHB1cmdpbmcgcGVybWlzc2lvbnMgZm9yIHRoZSBldmVudCBydWxlLCBpZiBlbmFibGVkXG4gICAgaWYgKHByb3BzLmVuYWJsZVF1ZXVlUHVyZ2luZykge1xuICAgICAgdGhpcy5zcXNRdWV1ZS5ncmFudFB1cmdlKG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdldmVudHMuYW1hem9uYXdzLmNvbScpKTtcbiAgICB9XG5cbiAgfVxufSJdfQ==
|