@aws-solutions-constructs/aws-sqs-pipes-stepfunctions 2.85.2 → 2.85.3

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 CHANGED
@@ -8,8 +8,8 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "@aws-solutions-constructs/core": "2.85.2",
12
- "@aws-solutions-constructs/resources": "2.85.2",
11
+ "@aws-solutions-constructs/core": "2.85.3",
12
+ "@aws-solutions-constructs/resources": "2.85.3",
13
13
  "aws-cdk-lib": "^2.193.0",
14
14
  "constructs": "^10.0.0"
15
15
  },
@@ -4019,7 +4019,7 @@
4019
4019
  },
4020
4020
  "name": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions",
4021
4021
  "readme": {
4022
- "markdown": "# aws-sqs-pipes-stepfunctions module\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge)\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 Logo](https://docs.aws.amazon.com/cdk/api/latest/img/python32.png) Python|`aws_solutions_constructs.aws_sqs_pipes_stepfunctions`|\n|![Typescript Logo](https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png) Typescript|`@aws-solutions-constructs/aws-sqs-pipes-stepfunctions`|\n|![Java Logo](https://docs.aws.amazon.com/cdk/api/latest/img/java32.png) Java|`software.amazon.awsconstructs.services.sqspipesstepfunctions`|\n\n## Overview\nThis AWS Solutions Construct implements an AWS SQS queue whose messages are passed to an AWS Step Functions state machine by an Amazon Eventbridge pipe.\n\nHere is a minimal deployable pattern definition:\n\nTypescript\n``` typescript\nimport { Construct } from 'constructs';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport * as sfn from 'aws-cdk-lib/aws-stepfunctions';\nimport { SqsToPipesToStepfunctions, SqsToPipesToStepfunctionsProps } from \"@aws-solutions-constructs/aws-sqs-pipes-stepfunctions\";\n\n const startState = new sfn.Pass(this, 'StartState');\n\n new SqsToPipesToStepfunctions(this, 'SqsToPipesToStepfunctionsPattern', {\n stateMachineProps: {\n definitionBody: sfn.DefinitionBody.fromChainable(sfn.Chain.start(new sfn.Pass(this, 'Pass'))),\n }\n });\n```\n\nPython\n```python\nfrom constructs import Construct\nfrom aws_cdk import (\n aws_stepfunctions as _sfn,\n Stack\n)\nfrom aws_solutions_constructs import (\n aws_sqs_pipes_stepfunctions as sqs_pipes_stepfunctions\n)\n\nsqs_pipes_stepfunctions.SqsToPipesToStepfunctions(\n self, 'SqsToPipesToStepfunctions',\n state_machine_props=_sfn.StateMachineProps(\n definition_body=_sfn.DefinitionBody.from_chainable(_sfn.Chain.start(_sfn.Pass(self, \"pass\")))\n )\n)\n```\n\nJava\n```java\npackage com.myorg;\n\nimport software.constructs.Construct;\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\n\nimport software.amazon.awscdk.services.stepfunctions.*;\nimport software.amazon.awsconstructs.services.sqspipesstepfunctions.SqsToPipesToStepfunctions;\nimport software.amazon.awsconstructs.services.sqspipesstepfunctions.SqsToPipesToStepfunctionsProps;\n\nnew SqsToPipesToStepfunctions(this, \"SqsToLambdaToStepfunctionsPattern\",\n SqsToPipesToStepfunctionsProps.builder()\n .stateMachineProps(StateMachineProps.builder()\n .definitionBody(DefinitionBody.fromChainable(Chain.start(new Pass(scope, \"Pass\"))))\n .build())\n .build());\n```\n\n## Pattern Construct Props\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\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)|Optional user provided properties to override the default properties for the SQS queue.|\n|encryptQueueWithCmk|`boolean`|Whether to encrypt the Queue with a customer managed KMS key (CMK). This is the default behavior, and this property defaults to true - if it is explicitly set to false then the Queue is encrypted with an Amazon managed KMS key. For a completely unencrypted Queue (not recommended), create the Queue separately from the construct and pass it in using the existingQueueObject. Since SNS subscriptions do not currently support SQS queues with AWS managed encryption keys, setting this to false will always result in an error from the underlying CDK - we have still included this property for consistency with topics and to be ready if the services one day support this functionality.|\n|queueEncryptionKeyProps?|[`kms.KeyProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html#construct-props)|An optional subset of key properties to override the default properties used by constructs (`enableKeyRotation: true`). These properties will be used in constructing the CMK used to encrypt the SQS queue.|\n|existingQueueEncryptionKey?|[`kms.Key`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html)|An optional CMK that will be used by the construct to encrypt the new SQS queue.|\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 SQS queue.|\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|stateMachineProps|[`sfn.StateMachineProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.StateMachineProps.html)|User provided props for the sfn.StateMachine.|\n|createCloudWatchAlarms?|`boolean`|Whether to create recommended CloudWatch alarms|\n| logGroupProps? | [logs.logGroupProps ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroupProps.html)| Optional user provided props to override the default props for for the CloudWatchLogs LogGroup for the state machine. |\n|pipeProps?|[ pipes.CfnPipeProps ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_pipes.CfnPipeProps.html)|Optional customer provided settings for the EventBridge pipe. source, target, roleArn and enrichment settings are set by the construct and cannot be overriden here. The construct will generate default sourceParameters, targetParameters and logConfiguration (found [here](link)) that can be overriden by populating those values in these props. If the client wants to implement enrichment or a filter, this is where that information can be provided. Any other props can be freely overridden. If a client wants to set values such as batchSize, that can be done here in the sourceParameters property.|\n| enrichmentFunction? | [lambda.Function ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html) | Optional - Lambda function that the construct will configure to be called to enrich the message between source and target. The construct will configure the pipe IAM role to allow invoking the function (but will not affect the IArole assigned to the function). Specifying both this and enrichmentStateMachine is an error. Default - undefined |\n| enrichmentStateMachine? | [sfn.StateMachine ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.StateMachine.html) | Optional - Step Functions state machine that the construct will configure to be called to enrich the message between source and target. The construct will configure the pipe IAM role to allow executing the state machine (but will not affect the IAM role assigned to the state machine). Specifying both this and enrichmentStateMachine is an error. Default - undefined |\n|logLevel?|PipesLogLevel|Threshold for what messages the new pipe sends to the log, PipesLogLevel.OFF, PipesLogLevel.ERROR, PipesLogLevel.INFO, PipesLogLevel.TRACE. The default is INFO. Setting the level to OFF will prevent any log group from being created. Providing pipeProps.logConfiguration will controls all aspects of logging and any construct provided log configuration is disabled. If pipeProps.logConfiguration is provided then specifying this or pipeLogProps is an error. |\n|pipeLogProps?|[logs.LogGroupProps]()| Default behavior is for the this construct to create a new CloudWatch Logs log group for the pipe. These props are used to override defaults set by AWS or this construct. If there are concerns about the cost of log storage, this is where a client can specify a shorter retention duration (in days) |\n\n## Pattern Properties\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|stateMachine|[`sfn.StateMachine`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.StateMachine.html)|Returns an instance of StateMachine created by the construct.|\n|stateMachineLogGroup|[`logs.ILogGroup`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.ILogGroup.html)|Returns an instance of the ILogGroup created by the construct for StateMachine|\n|cloudwatchAlarms?|[`cloudwatch.Alarm[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch.Alarm.html)|Returns a list of alarms 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 the SQS queue created by the pattern. |\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 queue created by the pattern, if one is deployed.|\n|encryptionKey?|[kms.IKey](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.IKey.html)|Returns an instance of kms.Key used for the SQS queue if key is customer managed.|\n|pipe|[ pipes.CfnPipe](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_pipes.CfnPipe.html)| The L1 pipe construct created by this Solutions Construct. |\n| pipeRole | [iam.Role ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam.Role.html) | The role created that allows the pipe to access both the source and the target. |\n\n## Default settings\n\nOut of the box implementation of the Construct without any override will set the following defaults:\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 AWS Managed KMS Key.\n* Enforce encryption of data in transit\n\n### AWS Step Functions State Machine\n* Deploy Step Functions standard state machine\n* Create CloudWatch log group with /vendedlogs/ prefix in name\n* Deploy best practices CloudWatch Alarms for the Step Functions\n\n### AWS EventBridge Pipe\n* Pipe configured with an SQS queue source and state machine target\n* A least privilege IAM role assigned to the pipe to access the queue and state machine\n* CloudWatch logs set up at the 'INFO' level\n* Encrypted with an AWS managed KMS key\n\n## Architecture\n![Architecture Diagram](architecture.png)\n\n***\n&copy; Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved."
4022
+ "markdown": "Documentation for this pattern can be found [here](https://github.com/awslabs/aws-solutions-constructs/blob/main/source/patterns/%40aws-solutions-constructs/aws-sqs-pipes-stepfunctions/README.adoc)\n"
4023
4023
  },
4024
4024
  "repository": {
4025
4025
  "directory": "source/patterns/@aws-solutions-constructs/aws-sqs-pipes-stepfunctions",
@@ -4529,6 +4529,6 @@
4529
4529
  "symbolId": "lib/index:SqsToPipesToStepfunctionsProps"
4530
4530
  }
4531
4531
  },
4532
- "version": "2.85.2",
4533
- "fingerprint": "7KgEXZn+UKQxr+MEqJpQ9giMnF7BIwAETRdxID5lSPc="
4532
+ "version": "2.85.3",
4533
+ "fingerprint": "ZwJleNNDsvdekcGUcTxGud3DGGPdDN/l5tg6V0yCwwg="
4534
4534
  }
package/README.adoc ADDED
@@ -0,0 +1,290 @@
1
+ //!!NODE_ROOT <section>
2
+ //== aws-sqs-pipes-stepfunctions module
3
+
4
+ [.topic]
5
+ = aws-sqs-pipes-stepfunctions
6
+ :info_doctype: section
7
+ :info_title: aws-sqs-pipes-stepfunctions
8
+
9
+
10
+ image:https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge[Stability:Experimental]
11
+
12
+ [width="100%",cols="<50%,<50%",options="header",]
13
+ |===
14
+ |*Reference Documentation*:
15
+ |https://docs.aws.amazon.com/solutions/latest/constructs/
16
+ |===
17
+
18
+ [width="100%",cols="<46%,54%",options="header",]
19
+ |===
20
+ |*Language* |*Package*
21
+ |image:https://docs.aws.amazon.com/cdk/api/latest/img/python32.png[Python
22
+ Logo] Python
23
+ |`aws_solutions_constructs.aws_sqs_pipes_stepfunctions`
24
+
25
+ |image:https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png[Typescript
26
+ Logo] Typescript
27
+ |`@aws-solutions-constructs/aws-sqs-pipes-stepfunctions`
28
+
29
+ |image:https://docs.aws.amazon.com/cdk/api/latest/img/java32.png[Java
30
+ Logo] Java
31
+ |`software.amazon.awsconstructs.services.sqspipesstepfunctions`
32
+ |===
33
+
34
+ == Overview
35
+
36
+ This AWS Solutions Construct implements an AWS SQS queue whose messages
37
+ are passed to an AWS Step Functions state machine by an Amazon
38
+ Eventbridge pipe.
39
+
40
+ Here is a minimal deployable pattern definition:
41
+
42
+ ====
43
+ [role="tablist"]
44
+ Typescript::
45
+ +
46
+ [source,typescript]
47
+ ----
48
+ import { Construct } from 'constructs';
49
+ import { Stack, StackProps } from 'aws-cdk-lib';
50
+ import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
51
+ import { SqsToPipesToStepfunctions, SqsToPipesToStepfunctionsProps } from "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions";
52
+
53
+ const startState = new sfn.Pass(this, 'StartState');
54
+
55
+ new SqsToPipesToStepfunctions(this, 'SqsToPipesToStepfunctionsPattern', {
56
+ stateMachineProps: {
57
+ definitionBody: sfn.DefinitionBody.fromChainable(sfn.Chain.start(new sfn.Pass(this, 'Pass'))),
58
+ }
59
+ });
60
+ ----
61
+
62
+ Python::
63
+ +
64
+ [source,python]
65
+ ----
66
+ from constructs import Construct
67
+ from aws_cdk import (
68
+ aws_stepfunctions as _sfn,
69
+ Stack
70
+ )
71
+ from aws_solutions_constructs import (
72
+ aws_sqs_pipes_stepfunctions as sqs_pipes_stepfunctions
73
+ )
74
+
75
+ sqs_pipes_stepfunctions.SqsToPipesToStepfunctions(
76
+ self, 'SqsToPipesToStepfunctions',
77
+ state_machine_props=_sfn.StateMachineProps(
78
+ definition_body=_sfn.DefinitionBody.from_chainable(_sfn.Chain.start(_sfn.Pass(self, "pass")))
79
+ )
80
+ )
81
+ ----
82
+
83
+ Java::
84
+ +
85
+ [source,java]
86
+ ----
87
+ package com.myorg;
88
+
89
+ import software.constructs.Construct;
90
+ import software.amazon.awscdk.Stack;
91
+ import software.amazon.awscdk.StackProps;
92
+
93
+ import software.amazon.awscdk.services.stepfunctions.*;
94
+ import software.amazon.awsconstructs.services.sqspipesstepfunctions.SqsToPipesToStepfunctions;
95
+ import software.amazon.awsconstructs.services.sqspipesstepfunctions.SqsToPipesToStepfunctionsProps;
96
+
97
+ new SqsToPipesToStepfunctions(this, "SqsToLambdaToStepfunctionsPattern",
98
+ SqsToPipesToStepfunctionsProps.builder()
99
+ .stateMachineProps(StateMachineProps.builder()
100
+ .definitionBody(DefinitionBody.fromChainable(Chain.start(new Pass(scope, "Pass"))))
101
+ .build())
102
+ .build());
103
+ ----
104
+ ====
105
+
106
+ == Pattern Construct Props
107
+
108
+ [width="100%",cols="<30%,<35%,35%",options="header",]
109
+ |===
110
+ |*Name* |*Type* |*Description*
111
+ |existingQueueObj?
112
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html[`sqs.Queue`]
113
+ |An optional, existing SQS queue to be used instead of the default
114
+ queue. Providing both this and `queueProps` will cause an error.
115
+
116
+ |queueProps?
117
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.QueueProps.html[`sqs.QueueProps`]
118
+ |Optional user provided properties to override the default properties
119
+ for the SQS queue.
120
+
121
+ |encryptQueueWithCmk |`boolean` |Whether to encrypt the Queue with a
122
+ customer managed KMS key (CMK). This is the default behavior, and this
123
+ property defaults to true - if it is explicitly set to false then the
124
+ Queue is encrypted with an Amazon managed KMS key. For a completely
125
+ unencrypted Queue (not recommended), create the Queue separately from
126
+ the construct and pass it in using the existingQueueObject. Since SNS
127
+ subscriptions do not currently support SQS queues with AWS managed
128
+ encryption keys, setting this to false will always result in an error
129
+ from the underlying CDK - we have still included this property for
130
+ consistency with topics and to be ready if the services one day support
131
+ this functionality.
132
+
133
+ |queueEncryptionKeyProps?
134
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html#construct-props[`kms.KeyProps`]
135
+ |An optional subset of key properties to override the default properties
136
+ used by constructs (`enableKeyRotation: true`). These properties will be
137
+ used in constructing the CMK used to encrypt the SQS queue.
138
+
139
+ |existingQueueEncryptionKey?
140
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html[`kms.Key`]
141
+ |An optional CMK that will be used by the construct to encrypt the new
142
+ SQS queue.
143
+
144
+ |deployDeadLetterQueue? |`boolean` |Whether to create a secondary queue
145
+ to be used as a dead letter queue. Defaults to true.
146
+
147
+ |deadLetterQueueProps?
148
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.QueueProps.html[`sqs.QueueProps`]
149
+ |Optional user-provided props to override the default props for the dead
150
+ letter SQS queue.
151
+
152
+ |maxReceiveCount? |`number` |The number of times a message can be
153
+ unsuccessfully dequeued before being moved to the dead letter queue.
154
+ Defaults to 15.
155
+
156
+ |stateMachineProps
157
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.StateMachineProps.html[`sfn.StateMachineProps`]
158
+ |User provided props for the sfn.StateMachine.
159
+
160
+ |createCloudWatchAlarms? |`boolean` |Whether to create recommended
161
+ CloudWatch alarms
162
+
163
+ |logGroupProps?
164
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroupProps.html[logs.logGroupProps]
165
+ |Optional user provided props to override the default props for for the
166
+ CloudWatchLogs LogGroup for the state machine.
167
+
168
+ |pipeProps?
169
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_pipes.CfnPipeProps.html[pipes.CfnPipeProps]
170
+ |Optional customer provided settings for the EventBridge pipe. source,
171
+ target, roleArn and enrichment settings are set by the construct and
172
+ cannot be overriden here. The construct will generate default
173
+ sourceParameters, targetParameters and logConfiguration (found
174
+ link:link[here]) that can be overriden by populating those values in
175
+ these props. If the client wants to implement enrichment or a filter,
176
+ this is where that information can be provided. Any other props can be
177
+ freely overridden. If a client wants to set values such as batchSize,
178
+ that can be done here in the sourceParameters property.
179
+
180
+ |enrichmentFunction?
181
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html[lambda.Function]
182
+ |Optional - Lambda function that the construct will configure to be
183
+ called to enrich the message between source and target. The construct
184
+ will configure the pipe IAM role to allow invoking the function (but
185
+ will not affect the IArole assigned to the function). Specifying both
186
+ this and enrichmentStateMachine is an error. Default - undefined
187
+
188
+ |enrichmentStateMachine?
189
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.StateMachine.html[sfn.StateMachine]
190
+ |Optional - Step Functions state machine that the construct will
191
+ configure to be called to enrich the message between source and target.
192
+ The construct will configure the pipe IAM role to allow executing the
193
+ state machine (but will not affect the IAM role assigned to the state
194
+ machine). Specifying both this and enrichmentStateMachine is an error.
195
+ Default - undefined
196
+
197
+ |logLevel? |PipesLogLevel |Threshold for what messages the new pipe
198
+ sends to the log, PipesLogLevel.OFF, PipesLogLevel.ERROR,
199
+ PipesLogLevel.INFO, PipesLogLevel.TRACE. The default is INFO. Setting
200
+ the level to OFF will prevent any log group from being created.
201
+ Providing pipeProps.logConfiguration will controls all aspects of
202
+ logging and any construct provided log configuration is disabled. If
203
+ pipeProps.logConfiguration is provided then specifying this or
204
+ pipeLogProps is an error.
205
+
206
+ |pipeLogProps? |link:[logs.LogGroupProps] |Default behavior is for the
207
+ this construct to create a new CloudWatch Logs log group for the pipe.
208
+ These props are used to override defaults set by AWS or this construct.
209
+ If there are concerns about the cost of log storage, this is where a
210
+ client can specify a shorter retention duration (in days)
211
+ |===
212
+
213
+ == Pattern Properties
214
+
215
+ [width="100%",cols="<30%,<35%,35%",options="header",]
216
+ |===
217
+ |*Name* |*Type* |*Description*
218
+ |stateMachine
219
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.StateMachine.html[`sfn.StateMachine`]
220
+ |Returns an instance of StateMachine created by the construct.
221
+
222
+ |stateMachineLogGroup
223
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.ILogGroup.html[`logs.ILogGroup`]
224
+ |Returns an instance of the ILogGroup created by the construct for
225
+ StateMachine
226
+
227
+ |cloudwatchAlarms?
228
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch.Alarm.html[`cloudwatch.Alarm[\]`]
229
+ |Returns a list of alarms created by the construct.
230
+
231
+ |sqsQueue
232
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html[`sqs.Queue`]
233
+ |Returns an instance of the SQS queue created by the pattern.
234
+
235
+ |deadLetterQueue?
236
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html[`sqs.Queue`]
237
+ |Returns an instance of the dead letter queue created by the pattern, if
238
+ one is deployed.
239
+
240
+ |encryptionKey?
241
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.IKey.html[kms.IKey]
242
+ |Returns an instance of kms.Key used for the SQS queue if key is
243
+ customer managed.
244
+
245
+ |pipe
246
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_pipes.CfnPipe.html[pipes.CfnPipe]
247
+ |The L1 pipe construct created by this Solutions Construct.
248
+
249
+ |pipeRole
250
+ |https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam.Role.html[iam.Role]
251
+ |The role created that allows the pipe to access both the source and the
252
+ target.
253
+ |===
254
+
255
+ == Default settings
256
+
257
+ Out of the box implementation of the Construct without any override will
258
+ set the following defaults:
259
+
260
+ === Amazon SQS Queue
261
+
262
+ * Deploy SQS dead-letter queue for the source SQS Queue.
263
+ * Enable server-side encryption for source SQS Queue using AWS Managed
264
+ KMS Key.
265
+ * Enforce encryption of data in transit
266
+
267
+ === AWS Step Functions State Machine
268
+
269
+ * Deploy Step Functions standard state machine
270
+ * Create CloudWatch log group with /vendedlogs/ prefix in name
271
+ * Deploy best practices CloudWatch Alarms for the Step Functions
272
+
273
+ === AWS EventBridge Pipe
274
+
275
+ * Pipe configured with an SQS queue source and state machine target
276
+ * A least privilege IAM role assigned to the pipe to access the queue
277
+ and state machine
278
+ * CloudWatch logs set up at the '`INFO`' level
279
+ * Encrypted with an AWS managed KMS key
280
+
281
+ == Architecture
282
+
283
+
284
+ image::aws-sqs-pipes-stepfunctions.png["Diagram showing the SQS queue, CloudWatch log groups, EventBridge pipe, Step Functions state machine and IAM role created by the construct",scaledwidth=100%]
285
+
286
+ // github block
287
+
288
+ '''''
289
+
290
+ © Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
package/README.md CHANGED
@@ -1,139 +1 @@
1
- # aws-sqs-pipes-stepfunctions module
2
- <!--BEGIN STABILITY BANNER-->
3
-
4
- ---
5
-
6
- ![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge)
7
-
8
- ---
9
- <!--END STABILITY BANNER-->
10
-
11
- | **Reference Documentation**:| <span style="font-weight: normal">https://docs.aws.amazon.com/solutions/latest/constructs/</span>|
12
- |:-------------|:-------------|
13
- <div style="height:8px"></div>
14
-
15
- | **Language** | **Package** |
16
- |:-------------|-----------------|
17
- |![Python Logo](https://docs.aws.amazon.com/cdk/api/latest/img/python32.png) Python|`aws_solutions_constructs.aws_sqs_pipes_stepfunctions`|
18
- |![Typescript Logo](https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png) Typescript|`@aws-solutions-constructs/aws-sqs-pipes-stepfunctions`|
19
- |![Java Logo](https://docs.aws.amazon.com/cdk/api/latest/img/java32.png) Java|`software.amazon.awsconstructs.services.sqspipesstepfunctions`|
20
-
21
- ## Overview
22
- This AWS Solutions Construct implements an AWS SQS queue whose messages are passed to an AWS Step Functions state machine by an Amazon Eventbridge pipe.
23
-
24
- Here is a minimal deployable pattern definition:
25
-
26
- Typescript
27
- ``` typescript
28
- import { Construct } from 'constructs';
29
- import { Stack, StackProps } from 'aws-cdk-lib';
30
- import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
31
- import { SqsToPipesToStepfunctions, SqsToPipesToStepfunctionsProps } from "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions";
32
-
33
- const startState = new sfn.Pass(this, 'StartState');
34
-
35
- new SqsToPipesToStepfunctions(this, 'SqsToPipesToStepfunctionsPattern', {
36
- stateMachineProps: {
37
- definitionBody: sfn.DefinitionBody.fromChainable(sfn.Chain.start(new sfn.Pass(this, 'Pass'))),
38
- }
39
- });
40
- ```
41
-
42
- Python
43
- ```python
44
- from constructs import Construct
45
- from aws_cdk import (
46
- aws_stepfunctions as _sfn,
47
- Stack
48
- )
49
- from aws_solutions_constructs import (
50
- aws_sqs_pipes_stepfunctions as sqs_pipes_stepfunctions
51
- )
52
-
53
- sqs_pipes_stepfunctions.SqsToPipesToStepfunctions(
54
- self, 'SqsToPipesToStepfunctions',
55
- state_machine_props=_sfn.StateMachineProps(
56
- definition_body=_sfn.DefinitionBody.from_chainable(_sfn.Chain.start(_sfn.Pass(self, "pass")))
57
- )
58
- )
59
- ```
60
-
61
- Java
62
- ```java
63
- package com.myorg;
64
-
65
- import software.constructs.Construct;
66
- import software.amazon.awscdk.Stack;
67
- import software.amazon.awscdk.StackProps;
68
-
69
- import software.amazon.awscdk.services.stepfunctions.*;
70
- import software.amazon.awsconstructs.services.sqspipesstepfunctions.SqsToPipesToStepfunctions;
71
- import software.amazon.awsconstructs.services.sqspipesstepfunctions.SqsToPipesToStepfunctionsProps;
72
-
73
- new SqsToPipesToStepfunctions(this, "SqsToLambdaToStepfunctionsPattern",
74
- SqsToPipesToStepfunctionsProps.builder()
75
- .stateMachineProps(StateMachineProps.builder()
76
- .definitionBody(DefinitionBody.fromChainable(Chain.start(new Pass(scope, "Pass"))))
77
- .build())
78
- .build());
79
- ```
80
-
81
- ## Pattern Construct Props
82
-
83
- | **Name** | **Type** | **Description** |
84
- |:-------------|:----------------|-----------------|
85
- |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.|
86
- |queueProps?|[`sqs.QueueProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.QueueProps.html)|Optional user provided properties to override the default properties for the SQS queue.|
87
- |encryptQueueWithCmk|`boolean`|Whether to encrypt the Queue with a customer managed KMS key (CMK). This is the default behavior, and this property defaults to true - if it is explicitly set to false then the Queue is encrypted with an Amazon managed KMS key. For a completely unencrypted Queue (not recommended), create the Queue separately from the construct and pass it in using the existingQueueObject. Since SNS subscriptions do not currently support SQS queues with AWS managed encryption keys, setting this to false will always result in an error from the underlying CDK - we have still included this property for consistency with topics and to be ready if the services one day support this functionality.|
88
- |queueEncryptionKeyProps?|[`kms.KeyProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html#construct-props)|An optional subset of key properties to override the default properties used by constructs (`enableKeyRotation: true`). These properties will be used in constructing the CMK used to encrypt the SQS queue.|
89
- |existingQueueEncryptionKey?|[`kms.Key`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.Key.html)|An optional CMK that will be used by the construct to encrypt the new SQS queue.|
90
- |deployDeadLetterQueue?|`boolean`|Whether to create a secondary queue to be used as a dead letter queue. Defaults to true.|
91
- |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 SQS queue.|
92
- |maxReceiveCount?|`number`|The number of times a message can be unsuccessfully dequeued before being moved to the dead letter queue. Defaults to 15.|
93
- |stateMachineProps|[`sfn.StateMachineProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.StateMachineProps.html)|User provided props for the sfn.StateMachine.|
94
- |createCloudWatchAlarms?|`boolean`|Whether to create recommended CloudWatch alarms|
95
- | logGroupProps? | [logs.logGroupProps ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroupProps.html)| Optional user provided props to override the default props for for the CloudWatchLogs LogGroup for the state machine. |
96
- |pipeProps?|[ pipes.CfnPipeProps ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_pipes.CfnPipeProps.html)|Optional customer provided settings for the EventBridge pipe. source, target, roleArn and enrichment settings are set by the construct and cannot be overriden here. The construct will generate default sourceParameters, targetParameters and logConfiguration (found [here](link)) that can be overriden by populating those values in these props. If the client wants to implement enrichment or a filter, this is where that information can be provided. Any other props can be freely overridden. If a client wants to set values such as batchSize, that can be done here in the sourceParameters property.|
97
- | enrichmentFunction? | [lambda.Function ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda.Function.html) | Optional - Lambda function that the construct will configure to be called to enrich the message between source and target. The construct will configure the pipe IAM role to allow invoking the function (but will not affect the IArole assigned to the function). Specifying both this and enrichmentStateMachine is an error. Default - undefined |
98
- | enrichmentStateMachine? | [sfn.StateMachine ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.StateMachine.html) | Optional - Step Functions state machine that the construct will configure to be called to enrich the message between source and target. The construct will configure the pipe IAM role to allow executing the state machine (but will not affect the IAM role assigned to the state machine). Specifying both this and enrichmentStateMachine is an error. Default - undefined |
99
- |logLevel?|PipesLogLevel|Threshold for what messages the new pipe sends to the log, PipesLogLevel.OFF, PipesLogLevel.ERROR, PipesLogLevel.INFO, PipesLogLevel.TRACE. The default is INFO. Setting the level to OFF will prevent any log group from being created. Providing pipeProps.logConfiguration will controls all aspects of logging and any construct provided log configuration is disabled. If pipeProps.logConfiguration is provided then specifying this or pipeLogProps is an error. |
100
- |pipeLogProps?|[logs.LogGroupProps]()| Default behavior is for the this construct to create a new CloudWatch Logs log group for the pipe. These props are used to override defaults set by AWS or this construct. If there are concerns about the cost of log storage, this is where a client can specify a shorter retention duration (in days) |
101
-
102
- ## Pattern Properties
103
-
104
- | **Name** | **Type** | **Description** |
105
- |:-------------|:----------------|-----------------|
106
- |stateMachine|[`sfn.StateMachine`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.StateMachine.html)|Returns an instance of StateMachine created by the construct.|
107
- |stateMachineLogGroup|[`logs.ILogGroup`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.ILogGroup.html)|Returns an instance of the ILogGroup created by the construct for StateMachine|
108
- |cloudwatchAlarms?|[`cloudwatch.Alarm[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_cloudwatch.Alarm.html)|Returns a list of alarms created by the construct.|
109
- |sqsQueue|[`sqs.Queue`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_sqs.Queue.html)|Returns an instance of the SQS queue created by the pattern. |
110
- |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 queue created by the pattern, if one is deployed.|
111
- |encryptionKey?|[kms.IKey](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_kms.IKey.html)|Returns an instance of kms.Key used for the SQS queue if key is customer managed.|
112
- |pipe|[ pipes.CfnPipe](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_pipes.CfnPipe.html)| The L1 pipe construct created by this Solutions Construct. |
113
- | pipeRole | [iam.Role ](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam.Role.html) | The role created that allows the pipe to access both the source and the target. |
114
-
115
- ## Default settings
116
-
117
- Out of the box implementation of the Construct without any override will set the following defaults:
118
-
119
- ### Amazon SQS Queue
120
- * Deploy SQS dead-letter queue for the source SQS Queue.
121
- * Enable server-side encryption for source SQS Queue using AWS Managed KMS Key.
122
- * Enforce encryption of data in transit
123
-
124
- ### AWS Step Functions State Machine
125
- * Deploy Step Functions standard state machine
126
- * Create CloudWatch log group with /vendedlogs/ prefix in name
127
- * Deploy best practices CloudWatch Alarms for the Step Functions
128
-
129
- ### AWS EventBridge Pipe
130
- * Pipe configured with an SQS queue source and state machine target
131
- * A least privilege IAM role assigned to the pipe to access the queue and state machine
132
- * CloudWatch logs set up at the 'INFO' level
133
- * Encrypted with an AWS managed KMS key
134
-
135
- ## Architecture
136
- ![Architecture Diagram](architecture.png)
137
-
138
- ***
139
- &copy; Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
1
+ Documentation for this pattern can be found [here](https://github.com/awslabs/aws-solutions-constructs/blob/main/source/patterns/%40aws-solutions-constructs/aws-sqs-pipes-stepfunctions/README.adoc)
package/lib/index.js CHANGED
@@ -78,5 +78,5 @@ class SqsToPipesToStepfunctions extends constructs_1.Construct {
78
78
  }
79
79
  exports.SqsToPipesToStepfunctions = SqsToPipesToStepfunctions;
80
80
  _a = JSII_RTTI_SYMBOL_1;
81
- SqsToPipesToStepfunctions[_a] = { fqn: "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", version: "2.85.2" };
81
+ SqsToPipesToStepfunctions[_a] = { fqn: "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions.SqsToPipesToStepfunctions", version: "2.85.3" };
82
82
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7OztHQVdHO0FBRUgsMkRBQTJEO0FBVTNELHVEQUErRDtBQUF0RCxxR0FBQSxhQUFhLE9BQUE7QUFDdEIsd0ZBQXdGO0FBQ3hGLDJDQUF1QztBQTBIdkMsTUFBYSx5QkFBMEIsU0FBUSxzQkFBUztJQVN0RDs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFDO1FBQzdFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsUUFBUSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsUUFBUSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoQyxtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLE1BQU0sa0JBQWtCLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQzVELGdCQUFnQixFQUFFLEtBQUssQ0FBQyxnQkFBZ0I7WUFDeEMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQzVCLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUI7WUFDbEQsb0JBQW9CLEVBQUUsS0FBSyxDQUFDLG9CQUFvQjtZQUNoRCxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtZQUNqRSxhQUFhLEVBQUUsS0FBSyxDQUFDLDBCQUEwQjtZQUMvQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsdUJBQXVCO1NBQ2xELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDO1FBRTlDLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDbkMsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUU7Z0JBQ3pGLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxpQkFBa0IsRUFBRyxtRkFBbUY7Z0JBQ2pJLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtnQkFDbEMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLHNCQUFzQjthQUNyRCxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLHlCQUF5QixDQUFDLFlBQVksQ0FBQztZQUMzRCxJQUFJLENBQUMsb0JBQW9CLEdBQUcseUJBQXlCLENBQUMsUUFBUSxDQUFDO1lBQy9ELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNyRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixDQUFDO1FBQ3BELENBQUM7UUFFRCx5REFBeUQ7UUFDekQsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDckQsTUFBTSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDO1lBQ2xGLE1BQU0sRUFBRSxRQUFRLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDO1lBQy9GLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7WUFDNUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLHNCQUFzQjtZQUNwRCxXQUFXLEVBQUUsS0FBSyxDQUFDLFNBQVM7WUFDNUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtTQUNqQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQztRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUMzQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDOztBQWpFSCw4REFrRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaCc7XG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBwaXBlcyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtcGlwZXMnO1xuaW1wb3J0ICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHsgUGlwZXNMb2dMZXZlbCB9IGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5leHBvcnQgeyBQaXBlc0xvZ0xldmVsIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG4vKipcbiAqIEBzdW1tYXJ5IFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgU25zVG9TcXMgY2xhc3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3FzVG9QaXBlc1RvU3RlcGZ1bmN0aW9uc1Byb3BzIHtcblxuICAvLyAqKioqKioqKioqKioqKioqKioqXG4gIC8vIFF1ZXVlIFByb3BzXG4gIC8vICoqKioqKioqKioqKioqKioqKipcblxuICAvKipcbiAgICogQW4gb3B0aW9uYWwsIGV4aXN0aW5nIFNRUyBxdWV1ZSB0byBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgcXVldWUuIFByb3ZpZGluZyBib3RoIHRoaXMgYW5kIHF1ZXVlUHJvcHMgd2lsbCBjYXVzZSBhbiBlcnJvci5cbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nUXVldWVPYmo/OiBzcXMuUXVldWUsXG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcGVydGllcyBmb3IgdGhlIFNRUyBxdWV1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlUHJvcHM/OiBzcXMuUXVldWVQcm9wcyxcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5jcnlwdCB0aGUgUXVldWUgd2l0aCBhIGN1c3RvbWVyIG1hbmFnZWQgS01TIGtleSAoQ01LKS4gVGhpcyBpcyB0aGUgZGVmYXVsdFxuICAgKiBiZWhhdmlvciwgYW5kIHRoaXMgcHJvcGVydHkgZGVmYXVsdHMgdG8gdHJ1ZSAtIGlmIGl0IGlzIGV4cGxpY2l0bHkgc2V0IHRvIGZhbHNlIHRoZW4gdGhlIFF1ZXVlXG4gICAqIGlzIGVuY3J5cHRlZCB3aXRoIGFuIEFtYXpvbiBtYW5hZ2VkIEtNUyBrZXkuIEZvciBhIGNvbXBsZXRlbHkgdW5lbmNyeXB0ZWQgUXVldWUgKG5vdCByZWNvbW1lbmRlZCksXG4gICAqIGNyZWF0ZSB0aGUgUXVldWUgc2VwYXJhdGVseSBmcm9tIHRoZSBjb25zdHJ1Y3QgYW5kIHBhc3MgaXQgaW4gdXNpbmcgdGhlIGV4aXN0aW5nUXVldWVPYmplY3QuIFNpbmNlXG4gICAqIFNOUyBzdWJzY3JpcHRpb25zIGRvIG5vdCBjdXJyZW50bHkgc3VwcG9ydCBTUVMgcXVldWVzIHdpdGggQVdTIG1hbmFnZWQgZW5jcnlwdGlvbiBrZXlzLCBzZXR0aW5nIHRoaXNcbiAgICogdG8gZmFsc2Ugd2lsbCBhbHdheXMgcmVzdWx0IGluIGFuIGVycm9yIGZyb20gdGhlIHVuZGVybHlpbmcgQ0RLIC0gd2UgaGF2ZSBzdGlsbCBpbmNsdWRlZCB0aGlzIHByb3BlcnR5XG4gICAqIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRvcGljcyBhbmQgdG8gYmUgcmVhZHkgaWYgdGhlIHNlcnZpY2VzIG9uZSBkYXkgc3VwcG9ydCB0aGlzIGZ1bmN0aW9uYWxpdHkuXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0UXVldWVXaXRoQ21rPzogYm9vbGVhbixcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIHN1YnNldCBvZiBrZXkgcHJvcGVydGllcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHVzZWQgYnkgY29uc3RydWN0cyAoZW5hYmxlS2V5Um90YXRpb246IHRydWUpLlxuICAgKiBUaGVzZSBwcm9wZXJ0aWVzIHdpbGwgYmUgdXNlZCBpbiBjb25zdHJ1Y3RpbmcgdGhlIENNSyB1c2VkIHRvIGVuY3J5cHQgdGhlIFNRUyBxdWV1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlRW5jcnlwdGlvbktleVByb3BzPzoga21zLktleVByb3BzLFxuICAvKipcbiAgICogQW4gb3B0aW9uYWwgQ01LIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBjb25zdHJ1Y3QgdG8gZW5jcnlwdCB0aGUgbmV3IFNRUyBxdWV1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nUXVldWVFbmNyeXB0aW9uS2V5Pzoga21zLktleSxcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY3JlYXRlIGEgc2Vjb25kYXJ5IHF1ZXVlIHRvIGJlIHVzZWQgYXMgYSBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogZGVmYXVsdCA9IHRydWUuXG4gICAqL1xuICByZWFkb25seSBkZXBsb3lEZWFkTGV0dGVyUXVldWU/OiBib29sZWFuLFxuICAvKipcbiAgICogT3B0aW9uYWwgdXNlci1wcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIGRlYWQgbGV0dGVyIFNRUyBxdWV1ZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZVByb3BzPzogc3FzLlF1ZXVlUHJvcHMsXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHRpbWVzIGEgbWVzc2FnZSBjYW4gYmUgdW5zdWNjZXNzZnVsbHkgZGVxdWV1ZWQgYmVmb3JlIGJlaW5nIG1vdmVkIHRvIHRoZSBkZWFkIGxldHRlclxuICAgKiBxdWV1ZS4gRGVmYXVsdHMgdG8gMTUuXG4gICAqL1xuICByZWFkb25seSBtYXhSZWNlaXZlQ291bnQ/OiBudW1iZXIsXG5cbiAgLy8gKioqKioqKioqKioqKioqKioqKlxuICAvLyBTdGF0ZSBNYWNoaW5lIFByb3BzXG4gIC8vICoqKioqKioqKioqKioqKioqKipcblxuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyBmb3IgdGhlIHNmbi5TdGF0ZU1hY2hpbmUuIFRoaXMgb3IgZXhpc3RpbmdTdGF0ZU1hY2hpbmUgaXMgcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlTWFjaGluZVByb3BzPzogc2ZuLlN0YXRlTWFjaGluZVByb3BzLFxuICAvKipcbiAgICogT3B0aW9uYWwgZXhpc3Rpbmcgc3RhdGUgbWFjaGluZSB0byBpbmNvcnBvcmF0ZSBpbnRvIHRoZSBjb25zdHJ1Y3RcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nU3RhdGVNYWNoaW5lT2JqPzogc2ZuLlN0YXRlTWFjaGluZSxcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY3JlYXRlIHJlY29tbWVuZGVkIENsb3VkV2F0Y2ggYWxhcm1zXG4gICAqXG4gICAqIGRlZmF1bHQgPSB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVDbG91ZFdhdGNoQWxhcm1zPzogYm9vbGVhbixcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIGZvciB0aGUgQ2xvdWRXYXRjaExvZ3MgTG9nR3JvdXAuXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cFByb3BzPzogbG9ncy5Mb2dHcm91cFByb3BzLFxuXG4gIC8vICoqKioqKioqKioqKioqKioqKipcbiAgLy8gUGlwZSBQcm9wc1xuICAvLyAqKioqKioqKioqKioqKioqKioqXG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGN1c3RvbWVyIHByb3ZpZGVkIHNldHRpbmdzIGZvciB0aGUgRXZlbnRCcmlkZ2UgcGlwZS4gc291cmNlLCB0YXJnZXQgYW5kXG4gICAqIHJvbGVBcm4gYXJlIHNldCBieSB0aGUgY29uc3RydWN0IGFuZCBjYW5ub3QgYmUgb3ZlcnJpZGVuLiBUaGUgY29uc3RydWN0IHdpbGwgZ2VuZXJhdGVcbiAgICogZGVmYXVsdCBzb3VyY2VQYXJhbWV0ZXJzLCB0YXJnZXRQYXJhbWV0ZXJzIGFuZCBsb2dDb25maWd1cmF0aW9uIHRoYXQgY2FuIGJlXG4gICAqIG92ZXJyaWRlbiBieSBwb3B1bGF0aW5nIHRob3NlIHZhbHVlcyBpbiB0aGVzZSBwcm9wcy4gSWYgdGhlIGNsaWVudCB3YW50cyB0byBpbXBsZW1lbnRcbiAgICogZW5yaWNobWVudCBvciBhIGZpbHRlciwgdGhpcyBpcyB3aGVyZSB0aGF0IGluZm9ybWF0aW9uIGNhbiBiZSBwcm92aWRlZC4gQW55IG90aGVyIHByb3BzXG4gICAqIGNhbiBiZSBmcmVlbHkgb3ZlcnJpZGRlbi5cbiAgICovXG4gIHJlYWRvbmx5IHBpcGVQcm9wcz86IHBpcGVzLkNmblBpcGVQcm9wcyB8IGFueSxcbiAgLyoqXG4gICAqIERlZmF1bHQgYmVoYXZpb3IgaXMgZm9yIHRoZSB0aGlzIGNvbnN0cnVjdCB0byBjcmVhdGUgYSBuZXcgQ2xvdWRXYXRjaCBMb2dzIGxvZyBncm91cCBmb3IgdGhlIHBpcGUuXG4gICAqIFRoZXNlIHByb3BzIGFyZSB1c2VkIHRvIG92ZXJyaWRlIGRlZmF1bHRzIHNldCBieSBBV1Mgb3IgdGhpcyBjb25zdHJ1Y3QuIElmIHRoZXJlIGFyZSBjb25jZXJucyBhYm91dFxuICAgKiB0aGUgY29zdCBvZiBsb2cgc3RvcmFnZSwgdGhpcyBpcyB3aGVyZSBhIGNsaWVudCBjYW4gc3BlY2lmeSBhIHNob3J0ZXIgcmV0ZW50aW9uIGR1cmF0aW9uIChpbiBkYXlzKVxuICAgKi9cbiAgcmVhZG9ubHkgcGlwZUxvZ1Byb3BzPzogbG9ncy5Mb2dHcm91cFByb3BzLFxuICAvKipcbiAgICogVGhyZXNob2xkIGZvciB3aGF0IG1lc3NhZ2VzIHRoZSBuZXcgcGlwZSBzZW5kcyB0byB0aGUgbG9nLCBQaXBlc0xvZ0xldmVsLk9GRiwgUGlwZXNMb2dMZXZlbC5FUlJPUixcbiAgICogUGlwZXNMb2dMZXZlbC5JTkZPLCBQaXBlc0xvZ0xldmVsLlRSQUNFLiBUaGUgZGVmYXVsdCBpcyBJTkZPLiBTZXR0aW5nIHRoZSBsZXZlbCB0byBPRkYgd2lsbCBwcmV2ZW50XG4gICAqIGFueSBsb2cgZ3JvdXAgZnJvbSBiZWluZyBjcmVhdGVkLiBQcm92aWRpbmcgcGlwZVByb3BzLmxvZ0NvbmZpZ3VyYXRpb24gd2lsbCBjb250cm9scyBhbGwgYXNwZWN0cyBvZlxuICAgKiBsb2dnaW5nIGFuZCBhbnkgY29uc3RydWN0IHByb3ZpZGVkIGxvZyBjb25maWd1cmF0aW9uIGlzIGRpc2FibGVkLiBJZiBwaXBlUHJvcHMubG9nQ29uZmlndXJhdGlvbiBpc1xuICAgKiBwcm92aWRlZCB0aGVuIHNwZWNpZnlpbmcgdGhpcyBvciBwaXBlTG9nUHJvcHMgaXMgYW4gZXJyb3IuXG4gICAqL1xuICByZWFkb25seSBsb2dMZXZlbD86IFBpcGVzTG9nTGV2ZWwsXG4gIC8qKlxuICAgKiBPcHRpb25hbCAtIExhbWJkYSBmdW5jdGlvbiB0aGF0IHRoZSBjb25zdHJ1Y3Qgd2lsbCBjb25maWd1cmUgdG8gYmUgY2FsbGVkIHRvIGVucmljaCB0aGUgbWVzc2FnZVxuICAgKiBiZXR3ZWVuIHNvdXJjZSBhbmQgdGFyZ2V0LiBUaGUgY29uc3RydWN0IHdpbGwgY29uZmlndXJlIHRoZSBwaXBlIElBTSByb2xlIHRvIGFsbG93IGludm9raW5nIHRoZVxuICAgKiBmdW5jdGlvbiAoYnV0IHdpbGwgbm90IGFmZmVjdCB0aGUgSUFyb2xlIGFzc2lnbmVkIHRvIHRoZSBmdW5jdGlvbikuIFNwZWNpZnlpbmcgYm90aCB0aGlzIGFuZFxuICAgKiBlbnJpY2htZW50U3RhdGVNYWNoaW5lIGlzIGFuIGVycm9yLiBEZWZhdWx0IC0gdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBlbnJpY2htZW50RnVuY3Rpb24/OiBsYW1iZGEuRnVuY3Rpb24sXG4gIC8qKlxuICAgKiBPcHRpb25hbCAtIFN0ZXAgRnVuY3Rpb25zIHN0YXRlIG1hY2hpbmUgdGhhdCB0aGUgY29uc3RydWN0IHdpbGwgY29uZmlndXJlIHRvIGJlIGNhbGxlZCB0byBlbnJpY2ggdGhlIG1lc3NhZ2VcbiAgICogYmV0d2VlbiBzb3VyY2UgYW5kIHRhcmdldC4gVGhlIGNvbnN0cnVjdCB3aWxsIGNvbmZpZ3VyZSB0aGUgcGlwZSBJQU0gcm9sZSB0byBhbGxvdyBleGVjdXRpbmcgdGhlIHN0YXRlXG4gICAqIG1hY2hpbmUgKGJ1dCB3aWxsIG5vdCBhZmZlY3QgdGhlIElBTSByb2xlIGFzc2lnbmVkIHRvIHRoZSBzdGF0ZSBtYWNoaW5lKS4gU3BlY2lmeWluZyBib3RoIHRoaXMgYW5kXG4gICAqIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgaXMgYW4gZXJyb3IuIEVucmljaG1lbnQgaXMgaW52b2tlZCBzeW5jaHJvbm91c2x5LCBzbyB0aGlzIG11c3QgYmUgYW4gRVhQUkVTU1xuICAgKiBzdGF0ZSBtYWNoaW4uIERlZmF1bHQgLSB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGVucmljaG1lbnRTdGF0ZU1hY2hpbmU/OiBzZm4uU3RhdGVNYWNoaW5lLFxuXG59XG5cbmV4cG9ydCBjbGFzcyBTcXNUb1BpcGVzVG9TdGVwZnVuY3Rpb25zIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlTWFjaGluZTogc2ZuLlN0YXRlTWFjaGluZTtcbiAgcHVibGljIHJlYWRvbmx5IHN0YXRlTWFjaGluZUxvZ0dyb3VwPzogbG9ncy5JTG9nR3JvdXA7XG4gIHB1YmxpYyByZWFkb25seSBjbG91ZHdhdGNoQWxhcm1zPzogY2xvdWR3YXRjaC5BbGFybVtdO1xuICBwdWJsaWMgcmVhZG9ubHkgc3FzUXVldWU6IHNxcy5RdWV1ZTtcbiAgcHVibGljIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZT86IHNxcy5EZWFkTGV0dGVyUXVldWU7XG4gIHB1YmxpYyByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLklLZXk7XG4gIHB1YmxpYyByZWFkb25seSBwaXBlOiBwaXBlcy5DZm5QaXBlO1xuICBwdWJsaWMgcmVhZG9ubHkgcGlwZVJvbGU6IGlhbS5Sb2xlO1xuICAvKipcbiAgICogQHN1bW1hcnkgQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgU3FzVG9QaXBlc1RvU3RlcGZ1bmN0aW9ucyBjbGFzcy5cbiAgICogQHBhcmFtIHtjZGsuQXBwfSBzY29wZSAtIHJlcHJlc2VudHMgdGhlIHNjb3BlIGZvciBhbGwgdGhlIHJlc291cmNlcy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGlkIC0gdGhpcyBpcyBhIGEgc2NvcGUtdW5pcXVlIGlkLlxuICAgKiBAcGFyYW0ge1Nxc1RvUGlwZXNUb1N0ZXBmdW5jdGlvbnNQcm9wc30gcHJvcHMgLSB1c2VyIHByb3ZpZGVkIHByb3BzIGZvciB0aGUgY29uc3RydWN0LlxuICAgKiBAYWNjZXNzIHB1YmxpY1xuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNxc1RvUGlwZXNUb1N0ZXBmdW5jdGlvbnNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBkZWZhdWx0cy5DaGVja1N0YXRlTWFjaGluZVByb3BzKHByb3BzKTtcbiAgICBkZWZhdWx0cy5DaGVja1Nxc1Byb3BzKHByb3BzKTtcbiAgICBkZWZhdWx0cy5DaGVja1BpcGVzUHJvcHMocHJvcHMpO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBRdWV1ZVxuICAgIC8vIFNldHVwIHRoZSBxdWV1ZVxuICAgIGNvbnN0IGJ1aWxkUXVldWVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUXVldWUodGhpcywgJ3F1ZXVlJywge1xuICAgICAgZXhpc3RpbmdRdWV1ZU9iajogcHJvcHMuZXhpc3RpbmdRdWV1ZU9iaixcbiAgICAgIHF1ZXVlUHJvcHM6IHByb3BzLnF1ZXVlUHJvcHMsXG4gICAgICBkZXBsb3lEZWFkTGV0dGVyUXVldWU6IHByb3BzLmRlcGxveURlYWRMZXR0ZXJRdWV1ZSxcbiAgICAgIGRlYWRMZXR0ZXJRdWV1ZVByb3BzOiBwcm9wcy5kZWFkTGV0dGVyUXVldWVQcm9wcyxcbiAgICAgIG1heFJlY2VpdmVDb3VudDogcHJvcHMubWF4UmVjZWl2ZUNvdW50LFxuICAgICAgZW5hYmxlRW5jcnlwdGlvbldpdGhDdXN0b21lck1hbmFnZWRLZXk6IHByb3BzLmVuY3J5cHRRdWV1ZVdpdGhDbWssXG4gICAgICBlbmNyeXB0aW9uS2V5OiBwcm9wcy5leGlzdGluZ1F1ZXVlRW5jcnlwdGlvbktleSxcbiAgICAgIGVuY3J5cHRpb25LZXlQcm9wczogcHJvcHMucXVldWVFbmNyeXB0aW9uS2V5UHJvcHNcbiAgICB9KTtcbiAgICB0aGlzLnNxc1F1ZXVlID0gYnVpbGRRdWV1ZVJlc3BvbnNlLnF1ZXVlO1xuICAgIHRoaXMuZGVhZExldHRlclF1ZXVlID0gYnVpbGRRdWV1ZVJlc3BvbnNlLmRscTtcblxuICAgIC8vIENyZWF0ZSB0aGUgU3RhdGUgTWFjaGluZVxuICAgIGlmICghcHJvcHMuZXhpc3RpbmdTdGF0ZU1hY2hpbmVPYmopIHtcbiAgICAgIGNvbnN0IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UgPSBkZWZhdWx0cy5idWlsZFN0YXRlTWFjaGluZSh0aGlzLCBkZWZhdWx0cy5pZFBsYWNlaG9sZGVyLCB7XG4gICAgICAgIHN0YXRlTWFjaGluZVByb3BzOiBwcm9wcy5zdGF0ZU1hY2hpbmVQcm9wcyEsICAvLyBDaGVja1N0YXRlTWFjaGluZVByb3BzIGVuc3VyZXMgdGhpcyBpcyBkZWZpbmVkIGlmIGV4aXN0aW5nU3RhdGVNYWNoaW5lT2JqIGlzIG5vdFxuICAgICAgICBsb2dHcm91cFByb3BzOiBwcm9wcy5sb2dHcm91cFByb3BzLFxuICAgICAgICBjcmVhdGVDbG91ZFdhdGNoQWxhcm1zOiBwcm9wcy5jcmVhdGVDbG91ZFdhdGNoQWxhcm1zLFxuICAgICAgfSk7XG4gICAgICB0aGlzLnN0YXRlTWFjaGluZSA9IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2Uuc3RhdGVNYWNoaW5lO1xuICAgICAgdGhpcy5zdGF0ZU1hY2hpbmVMb2dHcm91cCA9IGJ1aWxkU3RhdGVNYWNoaW5lUmVzcG9uc2UubG9nR3JvdXA7XG4gICAgICB0aGlzLmNsb3Vkd2F0Y2hBbGFybXMgPSBidWlsZFN0YXRlTWFjaGluZVJlc3BvbnNlLmNsb3VkV2F0Y2hBbGFybXM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RhdGVNYWNoaW5lID0gcHJvcHMuZXhpc3RpbmdTdGF0ZU1hY2hpbmVPYmo7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBwaXBlIHRvIGNvbm5lY3QgdGhlIHF1ZXVlIGFuZCBzdGF0ZSBtYWNoaW5lXG4gICAgY29uc3QgYnVpbGRQaXBlUmVzcG9uc2UgPSBkZWZhdWx0cy5CdWlsZFBpcGUodGhpcywgaWQsIHtcbiAgICAgIHNvdXJjZTogZGVmYXVsdHMuQ3JlYXRlU3FzU291cmNlKHRoaXMuc3FzUXVldWUsIHByb3BzLnBpcGVQcm9wcz8uc291cmNlUGFyYW1ldGVycyksXG4gICAgICB0YXJnZXQ6IGRlZmF1bHRzLkNyZWF0ZVN0YXRlTWFjaGluZVRhcmdldCh0aGlzLnN0YXRlTWFjaGluZSwgcHJvcHMucGlwZVByb3BzPy50YXJnZXRQYXJhbWV0ZXJzKSxcbiAgICAgIGVucmljaG1lbnRGdW5jdGlvbjogcHJvcHMuZW5yaWNobWVudEZ1bmN0aW9uLFxuICAgICAgZW5yaWNobWVudFN0YXRlTWFjaGluZTogcHJvcHMuZW5yaWNobWVudFN0YXRlTWFjaGluZSxcbiAgICAgIGNsaWVudFByb3BzOiBwcm9wcy5waXBlUHJvcHMsXG4gICAgICBsb2dMZXZlbDogcHJvcHMubG9nTGV2ZWwsXG4gICAgICBwaXBlTG9nUHJvcHM6IHByb3BzLnBpcGVMb2dQcm9wc1xuICAgIH0pO1xuICAgIHRoaXMucGlwZSA9IGJ1aWxkUGlwZVJlc3BvbnNlLnBpcGU7XG4gICAgdGhpcy5waXBlUm9sZSA9IGJ1aWxkUGlwZVJlc3BvbnNlLnBpcGVSb2xlO1xuICAgIGRlZmF1bHRzLmFkZENmbkd1YXJkU3VwcHJlc3NSdWxlcyh0aGlzLnBpcGVSb2xlLCBbXCJJQU1fTk9fSU5MSU5FX1BPTElDWV9DSEVDS1wiXSk7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-solutions-constructs/aws-sqs-pipes-stepfunctions",
3
- "version": "2.85.2",
3
+ "version": "2.85.3",
4
4
  "description": "CDK Constructs for Amazon SQS to AWS Step Functions via Amazon EventBridge Pipes integration.",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -22,12 +22,13 @@
22
22
  "test": "jest --coverage",
23
23
  "clean": "tsc -b --clean",
24
24
  "watch": "tsc -b -w",
25
+ "asciidoc": "asciidoctor --failure-level WARNING -o /dev/null README.adoc",
25
26
  "integ": "integ-runner --update-on-failed",
26
27
  "integ-no-clean": "integ-runner --update-on-failed --no-clean",
27
28
  "integ-assert": "integ-runner",
28
29
  "jsii": "jsii",
29
30
  "jsii-pacmak": "jsii-pacmak",
30
- "build+lint+test": "npm run jsii && npm run lint && npm test && npm run integ-assert",
31
+ "build+lint+test": "npm run jsii && npm run lint && npm run asciidoc && npm test && npm run integ-assert",
31
32
  "blt": "npm run build+lint+test",
32
33
  "snapshot-update": "npm run jsii && npm test -- -u && npm run integ-assert"
33
34
  },
@@ -54,8 +55,8 @@
54
55
  }
55
56
  },
56
57
  "dependencies": {
57
- "@aws-solutions-constructs/core": "2.85.2",
58
- "@aws-solutions-constructs/resources": "2.85.2",
58
+ "@aws-solutions-constructs/core": "2.85.3",
59
+ "@aws-solutions-constructs/resources": "2.85.3",
59
60
  "constructs": "^10.0.0"
60
61
  },
61
62
  "devDependencies": {
@@ -79,8 +80,8 @@
79
80
  ]
80
81
  },
81
82
  "peerDependencies": {
82
- "@aws-solutions-constructs/core": "2.85.2",
83
- "@aws-solutions-constructs/resources": "2.85.2",
83
+ "@aws-solutions-constructs/core": "2.85.3",
84
+ "@aws-solutions-constructs/resources": "2.85.3",
84
85
  "constructs": "^10.0.0",
85
86
  "aws-cdk-lib": "^2.193.0"
86
87
  },