@orcabus/platform-cdk-constructs 0.0.68 → 0.0.70
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 +253 -4
- package/api-gateway/api-gateway.js +1 -1
- package/deployment-stack-pipeline/artifact-bucket.js +1 -1
- package/deployment-stack-pipeline/pipeline.js +1 -1
- package/dynamodb/index.js +2 -2
- package/ecs/index.js +3 -3
- package/eventbridge-rules/README.md +26 -0
- package/eventbridge-rules/config.d.ts +1 -0
- package/eventbridge-rules/config.js +5 -0
- package/eventbridge-rules/index.d.ts +2 -0
- package/eventbridge-rules/index.js +19 -0
- package/eventbridge-rules/sfn-slack-notification.d.ts +74 -0
- package/eventbridge-rules/sfn-slack-notification.js +58 -0
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/index.ts +1 -0
- package/lambda/index.js +1 -1
- package/lambda/layers/icav2_tools/pyproject.toml +1 -1
- package/monitored-queue/index.js +1 -1
- package/named-lambda-role/index.js +1 -1
- package/package.json +10 -10
- package/provider-function/index.js +1 -1
- package/shared-config/networking.js +2 -2
- package/shared-config/s3.d.ts +6 -6
- package/shared-config/s3.js +8 -16
- package/shared-config/slack.js +1 -1
package/.jsii
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
]
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@aws-cdk/aws-lambda-python-alpha": "^2.
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
10
|
+
"@aws-cdk/aws-lambda-python-alpha": "^2.213.0-alpha.0",
|
|
11
|
+
"aws-cdk-lib": "^2.213.0",
|
|
12
12
|
"constructs": "^10.4.2"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -4142,6 +4142,16 @@
|
|
|
4142
4142
|
},
|
|
4143
4143
|
"symbolId": "ecs/index:"
|
|
4144
4144
|
},
|
|
4145
|
+
"@orcabus/platform-cdk-constructs.eventbridgeRule": {
|
|
4146
|
+
"locationInModule": {
|
|
4147
|
+
"filename": "index.ts",
|
|
4148
|
+
"line": 23
|
|
4149
|
+
},
|
|
4150
|
+
"readme": {
|
|
4151
|
+
"markdown": "# EventBridge Rules\n\n## SfnSlackNotification\n\nThis CDK construct sends Slack notifications when your Step Functions state machine changes status.\n\n### Example\n\n```typescript\nnew SfnSlackNotification(this, \"SfnSlackNotification\", {\n stateMachine: myDev,\n eventStatus: [SfnEventStatus.SUCCEEDED],\n title: `JOB-A: ${EventField.fromPath(\"$.detail.input.jobId\")}`,\n message: [\n \"*Execution Details:*\",\n `• ARN: ${EventField.fromPath(\"$.detail.executionArn\")}`,\n `• Status: ${EventField.fromPath(\"$.detail.status\")}`,\n ],\n includeConsoleLink: true,\n});\n```\n\n### Notes\n\n- Use `EventField.fromPath(\"$.jsonpath\")` to include dynamic event data in your title or message.\n- `includeConsoleLink` adds a link to the AWS Console for the execution.\n"
|
|
4152
|
+
},
|
|
4153
|
+
"symbolId": "eventbridge-rules/index:"
|
|
4154
|
+
},
|
|
4145
4155
|
"@orcabus/platform-cdk-constructs.lambda": {
|
|
4146
4156
|
"locationInModule": {
|
|
4147
4157
|
"filename": "index.ts",
|
|
@@ -5774,6 +5784,245 @@
|
|
|
5774
5784
|
],
|
|
5775
5785
|
"symbolId": "ecs/index:FargateEcsTaskConstructProps"
|
|
5776
5786
|
},
|
|
5787
|
+
"@orcabus/platform-cdk-constructs.eventbridgeRule.SfnEventStatus": {
|
|
5788
|
+
"assembly": "@orcabus/platform-cdk-constructs",
|
|
5789
|
+
"docs": {
|
|
5790
|
+
"stability": "experimental"
|
|
5791
|
+
},
|
|
5792
|
+
"fqn": "@orcabus/platform-cdk-constructs.eventbridgeRule.SfnEventStatus",
|
|
5793
|
+
"kind": "enum",
|
|
5794
|
+
"locationInModule": {
|
|
5795
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
5796
|
+
"line": 14
|
|
5797
|
+
},
|
|
5798
|
+
"members": [
|
|
5799
|
+
{
|
|
5800
|
+
"docs": {
|
|
5801
|
+
"stability": "experimental"
|
|
5802
|
+
},
|
|
5803
|
+
"name": "RUNNING"
|
|
5804
|
+
},
|
|
5805
|
+
{
|
|
5806
|
+
"docs": {
|
|
5807
|
+
"stability": "experimental"
|
|
5808
|
+
},
|
|
5809
|
+
"name": "SUCCEEDED"
|
|
5810
|
+
},
|
|
5811
|
+
{
|
|
5812
|
+
"docs": {
|
|
5813
|
+
"stability": "experimental"
|
|
5814
|
+
},
|
|
5815
|
+
"name": "FAILED"
|
|
5816
|
+
},
|
|
5817
|
+
{
|
|
5818
|
+
"docs": {
|
|
5819
|
+
"stability": "experimental"
|
|
5820
|
+
},
|
|
5821
|
+
"name": "TIMED_OUT"
|
|
5822
|
+
},
|
|
5823
|
+
{
|
|
5824
|
+
"docs": {
|
|
5825
|
+
"stability": "experimental"
|
|
5826
|
+
},
|
|
5827
|
+
"name": "ABORTED"
|
|
5828
|
+
}
|
|
5829
|
+
],
|
|
5830
|
+
"name": "SfnEventStatus",
|
|
5831
|
+
"namespace": "eventbridgeRule",
|
|
5832
|
+
"symbolId": "eventbridge-rules/sfn-slack-notification:SfnEventStatus"
|
|
5833
|
+
},
|
|
5834
|
+
"@orcabus/platform-cdk-constructs.eventbridgeRule.SfnSlackNotification": {
|
|
5835
|
+
"assembly": "@orcabus/platform-cdk-constructs",
|
|
5836
|
+
"base": "constructs.Construct",
|
|
5837
|
+
"docs": {
|
|
5838
|
+
"stability": "experimental"
|
|
5839
|
+
},
|
|
5840
|
+
"fqn": "@orcabus/platform-cdk-constructs.eventbridgeRule.SfnSlackNotification",
|
|
5841
|
+
"initializer": {
|
|
5842
|
+
"docs": {
|
|
5843
|
+
"stability": "experimental"
|
|
5844
|
+
},
|
|
5845
|
+
"locationInModule": {
|
|
5846
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
5847
|
+
"line": 85
|
|
5848
|
+
},
|
|
5849
|
+
"parameters": [
|
|
5850
|
+
{
|
|
5851
|
+
"name": "scope",
|
|
5852
|
+
"type": {
|
|
5853
|
+
"fqn": "constructs.Construct"
|
|
5854
|
+
}
|
|
5855
|
+
},
|
|
5856
|
+
{
|
|
5857
|
+
"name": "id",
|
|
5858
|
+
"type": {
|
|
5859
|
+
"primitive": "string"
|
|
5860
|
+
}
|
|
5861
|
+
},
|
|
5862
|
+
{
|
|
5863
|
+
"name": "props",
|
|
5864
|
+
"type": {
|
|
5865
|
+
"fqn": "@orcabus/platform-cdk-constructs.eventbridgeRule.SfnSlackNotificationProps"
|
|
5866
|
+
}
|
|
5867
|
+
}
|
|
5868
|
+
]
|
|
5869
|
+
},
|
|
5870
|
+
"kind": "class",
|
|
5871
|
+
"locationInModule": {
|
|
5872
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
5873
|
+
"line": 83
|
|
5874
|
+
},
|
|
5875
|
+
"name": "SfnSlackNotification",
|
|
5876
|
+
"namespace": "eventbridgeRule",
|
|
5877
|
+
"properties": [
|
|
5878
|
+
{
|
|
5879
|
+
"docs": {
|
|
5880
|
+
"stability": "experimental"
|
|
5881
|
+
},
|
|
5882
|
+
"immutable": true,
|
|
5883
|
+
"locationInModule": {
|
|
5884
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
5885
|
+
"line": 84
|
|
5886
|
+
},
|
|
5887
|
+
"name": "rule",
|
|
5888
|
+
"type": {
|
|
5889
|
+
"fqn": "aws-cdk-lib.aws_events.Rule"
|
|
5890
|
+
}
|
|
5891
|
+
}
|
|
5892
|
+
],
|
|
5893
|
+
"symbolId": "eventbridge-rules/sfn-slack-notification:SfnSlackNotification"
|
|
5894
|
+
},
|
|
5895
|
+
"@orcabus/platform-cdk-constructs.eventbridgeRule.SfnSlackNotificationProps": {
|
|
5896
|
+
"assembly": "@orcabus/platform-cdk-constructs",
|
|
5897
|
+
"datatype": true,
|
|
5898
|
+
"docs": {
|
|
5899
|
+
"stability": "experimental"
|
|
5900
|
+
},
|
|
5901
|
+
"fqn": "@orcabus/platform-cdk-constructs.eventbridgeRule.SfnSlackNotificationProps",
|
|
5902
|
+
"kind": "interface",
|
|
5903
|
+
"locationInModule": {
|
|
5904
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
5905
|
+
"line": 22
|
|
5906
|
+
},
|
|
5907
|
+
"name": "SfnSlackNotificationProps",
|
|
5908
|
+
"namespace": "eventbridgeRule",
|
|
5909
|
+
"properties": [
|
|
5910
|
+
{
|
|
5911
|
+
"abstract": true,
|
|
5912
|
+
"docs": {
|
|
5913
|
+
"stability": "experimental",
|
|
5914
|
+
"summary": "The event statuses to listen for."
|
|
5915
|
+
},
|
|
5916
|
+
"immutable": true,
|
|
5917
|
+
"locationInModule": {
|
|
5918
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
5919
|
+
"line": 36
|
|
5920
|
+
},
|
|
5921
|
+
"name": "eventStatus",
|
|
5922
|
+
"type": {
|
|
5923
|
+
"collection": {
|
|
5924
|
+
"elementtype": {
|
|
5925
|
+
"fqn": "@orcabus/platform-cdk-constructs.eventbridgeRule.SfnEventStatus"
|
|
5926
|
+
},
|
|
5927
|
+
"kind": "array"
|
|
5928
|
+
}
|
|
5929
|
+
}
|
|
5930
|
+
},
|
|
5931
|
+
{
|
|
5932
|
+
"abstract": true,
|
|
5933
|
+
"docs": {
|
|
5934
|
+
"remarks": "Each array element represents a separate line in the message.\nSupports Slack's message formatting syntax:\nhttps://api.slack.com/reference/surfaces/formatting\n\n**Dynamic Content:**\nTo include dynamic event data, embed JSONPath expressions in strings using `EventField.fromPath`.\nFor example, `EventField.fromPath(\"$.detail.executionArn\")` references the `executionArn` field from the event payload.\nThe `EventField` is imported from `aws-cdk-lib/aws-events`.\n\nExample:\n\n```typescript\nmessage: [\n \"*Execution Details:*\",\n `• ARN: ${EventField.fromPath(\"$.detail.executionArn\")}`,\n `• Status: ${EventField.fromPath(\"$.detail.status\")}`,\n \"\",\n]\n```",
|
|
5935
|
+
"stability": "experimental",
|
|
5936
|
+
"summary": "The detailed message content for the Slack notification."
|
|
5937
|
+
},
|
|
5938
|
+
"immutable": true,
|
|
5939
|
+
"locationInModule": {
|
|
5940
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
5941
|
+
"line": 69
|
|
5942
|
+
},
|
|
5943
|
+
"name": "message",
|
|
5944
|
+
"type": {
|
|
5945
|
+
"collection": {
|
|
5946
|
+
"elementtype": {
|
|
5947
|
+
"primitive": "string"
|
|
5948
|
+
},
|
|
5949
|
+
"kind": "array"
|
|
5950
|
+
}
|
|
5951
|
+
}
|
|
5952
|
+
},
|
|
5953
|
+
{
|
|
5954
|
+
"abstract": true,
|
|
5955
|
+
"docs": {
|
|
5956
|
+
"stability": "experimental",
|
|
5957
|
+
"summary": "The step function state machine to listen to."
|
|
5958
|
+
},
|
|
5959
|
+
"immutable": true,
|
|
5960
|
+
"locationInModule": {
|
|
5961
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
5962
|
+
"line": 26
|
|
5963
|
+
},
|
|
5964
|
+
"name": "stateMachine",
|
|
5965
|
+
"type": {
|
|
5966
|
+
"fqn": "aws-cdk-lib.aws_stepfunctions.IStateMachine"
|
|
5967
|
+
}
|
|
5968
|
+
},
|
|
5969
|
+
{
|
|
5970
|
+
"abstract": true,
|
|
5971
|
+
"docs": {
|
|
5972
|
+
"remarks": "Can include dynamic content from the event payload using JSONPath expressions.\nTo reference event fields, you must use `EventField.fromPath`, e.g.,\n`Job-alpha: ${EventField.fromPath(\"$.detail.input.destinationId\")}`.\nThe `EventField` import is required from `aws-cdk-lib/aws-events`.",
|
|
5973
|
+
"stability": "experimental",
|
|
5974
|
+
"summary": "The title for the Slack notification."
|
|
5975
|
+
},
|
|
5976
|
+
"immutable": true,
|
|
5977
|
+
"locationInModule": {
|
|
5978
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
5979
|
+
"line": 45
|
|
5980
|
+
},
|
|
5981
|
+
"name": "title",
|
|
5982
|
+
"type": {
|
|
5983
|
+
"primitive": "string"
|
|
5984
|
+
}
|
|
5985
|
+
},
|
|
5986
|
+
{
|
|
5987
|
+
"abstract": true,
|
|
5988
|
+
"docs": {
|
|
5989
|
+
"remarks": "Default: The default AWS event bus",
|
|
5990
|
+
"stability": "experimental",
|
|
5991
|
+
"summary": "The event statuses to listen for."
|
|
5992
|
+
},
|
|
5993
|
+
"immutable": true,
|
|
5994
|
+
"locationInModule": {
|
|
5995
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
5996
|
+
"line": 32
|
|
5997
|
+
},
|
|
5998
|
+
"name": "eventBus",
|
|
5999
|
+
"optional": true,
|
|
6000
|
+
"type": {
|
|
6001
|
+
"fqn": "aws-cdk-lib.aws_events.IEventBus"
|
|
6002
|
+
}
|
|
6003
|
+
},
|
|
6004
|
+
{
|
|
6005
|
+
"abstract": true,
|
|
6006
|
+
"docs": {
|
|
6007
|
+
"default": "false",
|
|
6008
|
+
"remarks": "When enabled, adds a clickable console link at the beginning of the Slack message.\nThe link is constructed using the execution ARN from the event payload.\n\nRef: https://stackoverflow.com/a/76008805",
|
|
6009
|
+
"stability": "experimental",
|
|
6010
|
+
"summary": "Whether to include a link to the Step Function execution in the AWS Console."
|
|
6011
|
+
},
|
|
6012
|
+
"immutable": true,
|
|
6013
|
+
"locationInModule": {
|
|
6014
|
+
"filename": "eventbridge-rules/sfn-slack-notification.ts",
|
|
6015
|
+
"line": 80
|
|
6016
|
+
},
|
|
6017
|
+
"name": "includeConsoleLink",
|
|
6018
|
+
"optional": true,
|
|
6019
|
+
"type": {
|
|
6020
|
+
"primitive": "boolean"
|
|
6021
|
+
}
|
|
6022
|
+
}
|
|
6023
|
+
],
|
|
6024
|
+
"symbolId": "eventbridge-rules/sfn-slack-notification:SfnSlackNotificationProps"
|
|
6025
|
+
},
|
|
5777
6026
|
"@orcabus/platform-cdk-constructs.lambda.Icav2ResourcesProps": {
|
|
5778
6027
|
"assembly": "@orcabus/platform-cdk-constructs",
|
|
5779
6028
|
"datatype": true,
|
|
@@ -6914,6 +7163,6 @@
|
|
|
6914
7163
|
"symbolId": "shared-config/slack:SlackAlerts"
|
|
6915
7164
|
}
|
|
6916
7165
|
},
|
|
6917
|
-
"version": "0.0.
|
|
6918
|
-
"fingerprint": "
|
|
7166
|
+
"version": "0.0.70",
|
|
7167
|
+
"fingerprint": "8G/0MzBl8Iium2sgBYIoZrJgl/9VCcfqW1DijaLXxOg="
|
|
6919
7168
|
}
|
|
@@ -15,7 +15,7 @@ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
|
15
15
|
const aws_route53_targets_1 = require("aws-cdk-lib/aws-route53-targets");
|
|
16
16
|
const config_1 = require("./config");
|
|
17
17
|
class OrcaBusApiGateway extends constructs_1.Construct {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.apigateway.OrcaBusApiGateway", version: "0.0.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.apigateway.OrcaBusApiGateway", version: "0.0.70" };
|
|
19
19
|
/**
|
|
20
20
|
* The AWS region where the API Gateway is deployed.
|
|
21
21
|
*/
|
|
@@ -13,7 +13,7 @@ exports.CROSS_DEPLOYMENT_ARTIFACT_BUCKET_NAME = "orcabus-cross-deployment-codepi
|
|
|
13
13
|
exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ALIAS = "orcabus-cross-deployment-codepipeline-artifact";
|
|
14
14
|
exports.CROSS_DEPLOYMENT_ARTIFACT_KMS_ARN_SSM_PARAMETER_NAME = "/orcabus/deployment-stack-pipeline/artifact-bucket/kms-key-arn";
|
|
15
15
|
class CrossDeploymentArtifactBucket extends constructs_1.Construct {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.CrossDeploymentArtifactBucket", version: "0.0.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.CrossDeploymentArtifactBucket", version: "0.0.70" };
|
|
17
17
|
/**
|
|
18
18
|
* The S3 bucket used to store artifacts for cross-deployment pipelines.
|
|
19
19
|
*/
|
|
@@ -32,7 +32,7 @@ exports.DEFAULT_SYNTH_STEP_PARTIAL_BUILD_SPEC = {
|
|
|
32
32
|
* before using this construct.
|
|
33
33
|
*/
|
|
34
34
|
class DeploymentStackPipeline extends constructs_1.Construct {
|
|
35
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.
|
|
35
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.deploymentPipeline.DeploymentStackPipeline", version: "0.0.70" };
|
|
36
36
|
/**
|
|
37
37
|
* The code pipeline construct that is created.
|
|
38
38
|
*/
|
package/dynamodb/index.js
CHANGED
|
@@ -40,7 +40,7 @@ const dynamodb = __importStar(require("aws-cdk-lib/aws-dynamodb"));
|
|
|
40
40
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
41
41
|
const config_1 = require("./config");
|
|
42
42
|
class DynamoDbPartitionedConstruct extends constructs_1.Construct {
|
|
43
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbPartitionedConstruct", version: "0.0.
|
|
43
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbPartitionedConstruct", version: "0.0.70" };
|
|
44
44
|
table;
|
|
45
45
|
constructor(scope, id, props) {
|
|
46
46
|
super(scope, id);
|
|
@@ -75,7 +75,7 @@ class DynamoDbPartitionedConstruct extends constructs_1.Construct {
|
|
|
75
75
|
}
|
|
76
76
|
exports.DynamoDbPartitionedConstruct = DynamoDbPartitionedConstruct;
|
|
77
77
|
class DynamoDbNonPartitionedConstruct extends constructs_1.Construct {
|
|
78
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbNonPartitionedConstruct", version: "0.0.
|
|
78
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.dynamodb.DynamoDbNonPartitionedConstruct", version: "0.0.70" };
|
|
79
79
|
table;
|
|
80
80
|
constructor(scope, id, props) {
|
|
81
81
|
super(scope, id);
|
package/ecs/index.js
CHANGED
|
@@ -55,7 +55,7 @@ exports.LAMBDA_ARCHITECTURE_MAP = {
|
|
|
55
55
|
['ARM64']: lambda.Architecture.ARM_64
|
|
56
56
|
};
|
|
57
57
|
class EcsFargateTaskConstruct extends constructs_1.Construct {
|
|
58
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.ecs.EcsFargateTaskConstruct", version: "0.0.
|
|
58
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.ecs.EcsFargateTaskConstruct", version: "0.0.70" };
|
|
59
59
|
cluster;
|
|
60
60
|
taskDefinition;
|
|
61
61
|
taskExecutionRole;
|
|
@@ -90,7 +90,7 @@ class EcsFargateTaskConstruct extends constructs_1.Construct {
|
|
|
90
90
|
runtimePlatform: {
|
|
91
91
|
cpuArchitecture: props.runtimePlatform ?? exports.CPU_ARCHITECTURE_MAP[architecture],
|
|
92
92
|
},
|
|
93
|
-
executionRole: this.taskExecutionRole
|
|
93
|
+
executionRole: this.taskExecutionRole,
|
|
94
94
|
});
|
|
95
95
|
// Set up the security group
|
|
96
96
|
this.securityGroup = new ec2.SecurityGroup(this, 'FargateSecurityGroup', {
|
|
@@ -113,4 +113,4 @@ class EcsFargateTaskConstruct extends constructs_1.Construct {
|
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
exports.EcsFargateTaskConstruct = EcsFargateTaskConstruct;
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXFDO0FBQ3JDLHFDQUFnRjtBQUNoRix5REFBMkM7QUFDM0MseURBQTJDO0FBQzNDLGlEQUFzRDtBQUN0RCwrREFBaUQ7QUFDakQsc0VBQXdEO0FBQ3hELHlEQUEyQztBQUMzQyxtREFBbUQ7QUFDbkQsNERBQXFEO0FBQ3JELGlEQUF5RDtBQXFCNUMsUUFBQSxvQkFBb0IsR0FBOEM7SUFDM0UsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU07SUFDdEMsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUs7Q0FDdkMsQ0FBQTtBQUVZLFFBQUEsdUJBQXVCLEdBQThDO0lBQzlFLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO0lBQ3RDLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO0NBQ3hDLENBQUE7QUEwQ0QsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUzs7SUFDbEMsT0FBTyxDQUFjO0lBQ3JCLGNBQWMsQ0FBMkI7SUFDekMsaUJBQWlCLENBQU87SUFDeEIsYUFBYSxDQUFvQjtJQUNqQyxtQkFBbUIsQ0FBeUI7SUFFNUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLG1DQUFtQztRQUNuQyxNQUFNLFlBQVksR0FBaUIsS0FBSyxDQUFDLFlBQVksSUFBSSw2QkFBb0IsQ0FBQTtRQUU3RSxzQkFBc0I7UUFDdEIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQzlCLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDYixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxxQkFBUTtTQUNyQyxDQUNKLENBQUE7UUFFRCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ25ELEdBQUcsRUFBRSxPQUFPO1lBQ1osOEJBQThCLEVBQUUsSUFBSTtZQUNwQyxtQkFBbUIsRUFBRSwyQkFBaUIsQ0FBQyxPQUFPO1NBQ2pELENBQUMsQ0FBQTtRQUVGLG1FQUFtRTtRQUNuRSxrSUFBa0k7UUFDbEksOEdBQThHO1FBQzlHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQy9ELFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQztZQUM5RCxlQUFlLEVBQUUsQ0FBQyx1QkFBYSxDQUFDLHdCQUF3QixDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDM0csQ0FBQyxDQUFBO1FBRUYscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3hFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksc0JBQWEsQ0FBQyxHQUFHLElBQUk7WUFDMUMsMERBQTBEO1lBQzFELGNBQWMsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksMEJBQWlCLENBQUMsR0FBRyxJQUFJO1lBQ2xFLGVBQWUsRUFBRTtnQkFDYixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsSUFBSSw0QkFBb0IsQ0FBQyxZQUFZLENBQUM7YUFDL0U7WUFDRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUN4QyxDQUFDLENBQUE7UUFFRiw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQ3JFLEdBQUcsRUFBRSxPQUFPO1lBQ1osV0FBVyxFQUFFLGtDQUFrQztTQUNsRCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUU7WUFDNUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLEtBQUssRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUMxQyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7Z0JBQ3ZELFNBQVMsRUFBRSxLQUFLLENBQUMsVUFBVTtnQkFDM0IsU0FBUyxFQUFFO29CQUNQLGNBQWMsRUFBRSwrQkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxjQUFjO2lCQUN2RTthQUNKLENBQUMsQ0FDTDtZQUNELE9BQU8sRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztnQkFDM0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxhQUFhO2dCQUNqQyxZQUFZLEVBQUUsd0JBQWEsQ0FBQyxRQUFRO2FBQ3ZDLENBQUM7U0FDTCxDQUFDLENBQUM7SUFDUCxDQUFDOztBQW5FTCwwREFvRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7REVGQVVMVF9BUkNISVRFQ1RVUkUsIERFRkFVTFRfTUVNT1JZX0dCLCBERUZBVUxUX1ZDUFVTfSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQge0NvbnRhaW5lckluc2lnaHRzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjc1wiO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgKiBhcyBlY3JBc3NldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3ItYXNzZXRzXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7UmV0ZW50aW9uRGF5c30gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQge1ZQQ19OQU1FfSBmcm9tIFwiLi4vc2hhcmVkLWNvbmZpZy9uZXR3b3JraW5nXCI7XG5pbXBvcnQge0lSb2xlLCBNYW5hZ2VkUG9saWN5fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuXG4vLyBNZW1vcnkgYW5kIENQVSBsaW1pdHMgZm9yIEZhcmdhdGUgdGFza3Ncbi8qXG4yNTYgKC4yNSB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiA1MTIgKDAuNSBHQiksIDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKVxuXG41MTIgKC41IHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKSwgMzA3MiAoMyBHQiksIDQwOTYgKDQgR0IpXG5cbjEwMjQgKDEgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogMjA0OCAoMiBHQiksIDMwNzIgKDMgR0IpLCA0MDk2ICg0IEdCKSwgNTEyMCAoNSBHQiksIDYxNDQgKDYgR0IpLCA3MTY4ICg3IEdCKSwgODE5MiAoOCBHQilcblxuMjA0OCAoMiB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiBCZXR3ZWVuIDQwOTYgKDQgR0IpIGFuZCAxNjM4NCAoMTYgR0IpIGluIGluY3JlbWVudHMgb2YgMTAyNCAoMSBHQilcblxuNDA5NiAoNCB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiBCZXR3ZWVuIDgxOTIgKDggR0IpIGFuZCAzMDcyMCAoMzAgR0IpIGluIGluY3JlbWVudHMgb2YgMTAyNCAoMSBHQilcblxuODE5MiAoOCB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiBCZXR3ZWVuIDE2Mzg0ICgxNiBHQikgYW5kIDYxNDQwICg2MCBHQikgaW4gaW5jcmVtZW50cyBvZiA0MDk2ICg0IEdCKVxuXG4xNjM4NCAoMTYgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogQmV0d2VlbiAzMjc2OCAoMzIgR0IpIGFuZCAxMjI4ODAgKDEyMCBHQikgaW4gaW5jcmVtZW50cyBvZiA4MTkyICg4IEdCKVxuKi9cblxuZXhwb3J0IHR5cGUgQXJjaGl0ZWN0dXJlID0gJ1g4Nl82NCcgfCAnQVJNNjQnXG5cbmV4cG9ydCBjb25zdCBDUFVfQVJDSElURUNUVVJFX01BUDogUmVjb3JkPEFyY2hpdGVjdHVyZSwgZWNzLkNwdUFyY2hpdGVjdHVyZT4gPSB7XG4gICAgWydYODZfNjQnXTogZWNzLkNwdUFyY2hpdGVjdHVyZS5YODZfNjQsXG4gICAgWydBUk02NCddOiBlY3MuQ3B1QXJjaGl0ZWN0dXJlLkFSTTY0XG59XG5cbmV4cG9ydCBjb25zdCBMQU1CREFfQVJDSElURUNUVVJFX01BUDogUmVjb3JkPEFyY2hpdGVjdHVyZSwgbGFtYmRhLkFyY2hpdGVjdHVyZT4gPSB7XG4gICAgWydYODZfNjQnXTogbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjQsXG4gICAgWydBUk02NCddOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZhcmdhdGVFY3NUYXNrQ29uc3RydWN0UHJvcHMge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgdG8gdXNlLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBAREVGQVVMVF9NQUlOX1ZQQ19OQU1FIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSB2cGNOYW1lPzogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcnVudGltZSBDUFUgYXJjaGl0ZWN0dXJlLCBlaXRoZXIgWDg2XzY0IG9yIEFSTTY0LiBJZiBub3QgcHJvdmlkZWQsIHRoZSBkZWZhdWx0IGlzIEBERUZBVUxUX0FSQ0hJVEVDVFVSRS5cbiAgICAgKi9cbiAgICByZWFkb25seSBydW50aW1lUGxhdGZvcm0/OiBlY3MuQ3B1QXJjaGl0ZWN0dXJlXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbnVtYmVyIG9mIENQVXMgdG8gdXNlLCBiZXR3ZWVuIDAuMjUgYW5kIDE2LiBJZiBub3QgcHJvdmlkZWQsIHRoZSBkZWZhdWx0IGlzIEBERUZBVUxUX1ZDUFVTLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5DcHVzOiBudW1iZXIgLy8gTnVtYmVyIG9mIENQVXMgKDAuMjUsIDAuNSwgMSwgMiwgNCwgOCwgMTYpXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWVtb3J5IGxpbWl0IGluIEdpQi4gSWYgbm90IHByb3ZpZGVkLCB0aGUgZGVmYXVsdCBpcyBAREVGQVVMVF9NRU1PUllfR0IuXG4gICAgICogVGhlIG1lbW9yeSBsaW1pdCBtdXN0IGJlIGJldHdlZW4gMC41IGFuZCAxMjAgR2lCLlxuICAgICAqIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoZSBtZW1vcnkgbGltaXQgdmFyaWVzIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIENQVXMsIHBsZWFzZSByZWZlciB0byB0aGUgdGFibGUgYWJvdmUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbWVtb3J5TGltaXRHaUI6IG51bWJlclxuXG4gICAgLyoqXG4gICAgICogVGhlIGFyY2hpdGVjdHVyZSBvZiB0aGUgY29udGFpbmVyLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBkZWZhdWx0IGlzIEBERUZBVUxUX0FSQ0hJVEVDVFVSRS5cbiAgICAgKi9cbiAgICByZWFkb25seSBhcmNoaXRlY3R1cmU/OiBBcmNoaXRlY3R1cmVcblxuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lci4gVGhpcyBpcyBhIHJlcXVpcmVkIHByb3BlcnR5XG4gICAgICovXG4gICAgcmVhZG9ubHkgY29udGFpbmVyTmFtZTogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGF0aCB0byB0aGUgRG9ja2VyZmlsZS4gVGhpcyBpcyBhIHJlcXVpcmVkIHByb3BlcnR5XG4gICAgICovXG4gICAgcmVhZG9ubHkgZG9ja2VyUGF0aDogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBFY3NGYXJnYXRlVGFza0NvbnN0cnVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gICAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXI6IGVjcy5JQ2x1c3RlclxuICAgIHB1YmxpYyByZWFkb25seSB0YXNrRGVmaW5pdGlvbjogZWNzLkZhcmdhdGVUYXNrRGVmaW5pdGlvblxuICAgIHB1YmxpYyByZWFkb25seSB0YXNrRXhlY3V0aW9uUm9sZTogSVJvbGVcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbnRhaW5lckRlZmluaXRpb246IGVjcy5Db250YWluZXJEZWZpbml0aW9uXG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRmFyZ2F0ZUVjc1Rhc2tDb25zdHJ1Y3RQcm9wcykge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgICAgIC8vIFNldCBhcmNoaXRlY3R1cmUgaWYgbm90IHByb3ZpZGVkXG4gICAgICAgIGNvbnN0IGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlID0gcHJvcHMuYXJjaGl0ZWN0dXJlID8/IERFRkFVTFRfQVJDSElURUNUVVJFXG5cbiAgICAgICAgLy8gU2V0IHVwIHRoZSBtYWluIHZwY1xuICAgICAgICBjb25zdCBtYWluVnBjID0gZWMyLlZwYy5mcm9tTG9va3VwKFxuICAgICAgICAgICAgdGhpcywgJ01haW5WcGMnLCB7XG4gICAgICAgICAgICAgICAgdnBjTmFtZTogcHJvcHMudnBjTmFtZSA/PyBWUENfTkFNRVxuICAgICAgICAgICAgfVxuICAgICAgICApXG5cbiAgICAgICAgLy8gU2V0IHVwIHRoZSBFQ1MgY2x1c3RlclxuICAgICAgICB0aGlzLmNsdXN0ZXIgPSBuZXcgZWNzLkNsdXN0ZXIodGhpcywgJ0ZhcmdhdGVDbHVzdGVyJywge1xuICAgICAgICAgICAgdnBjOiBtYWluVnBjLFxuICAgICAgICAgICAgZW5hYmxlRmFyZ2F0ZUNhcGFjaXR5UHJvdmlkZXJzOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbmVySW5zaWdodHNWMjogQ29udGFpbmVySW5zaWdodHMuRU5BQkxFRFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIEFsbG93IHRoZSB0YXNrIGRlZmluaXRpb24gcm9sZSBlY3IgYWNjZXNzIHRvIHRoZSBndWFyZGR1dHkgYWdlbnRcbiAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2d1YXJkZHV0eS9sYXRlc3QvdWcvcHJlcmVxLXJ1bnRpbWUtbW9uaXRvcmluZy1lY3Mtc3VwcG9ydC5odG1sI2JlZm9yZS1lbmFibGUtcnVudGltZS1tb25pdG9yaW5nLWVjc1xuICAgICAgICAvLyBXaGljaCBpcyBpbiBhbm90aGVyIGFjY291bnQgLSAwMDUyNTc4MjU0NzEuZGtyLmVjci5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL2F3cy1ndWFyZGR1dHktYWdlbnQtZmFyZ2F0ZVxuICAgICAgICB0aGlzLnRhc2tFeGVjdXRpb25Sb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIGBUYXNrRXhlY3V0aW9uUm9sZWAsIHtcbiAgICAgICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZWNzLXRhc2tzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgICAgICBtYW5hZ2VkUG9saWNpZXM6IFtNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FtYXpvbkVDU1Rhc2tFeGVjdXRpb25Sb2xlUG9saWN5JyldLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIFNldCB1cCB0aGUgRmFyZ2F0ZSB0YXNrIGRlZmluaXRpb25cbiAgICAgICAgdGhpcy50YXNrRGVmaW5pdGlvbiA9IG5ldyBlY3MuRmFyZ2F0ZVRhc2tEZWZpbml0aW9uKHRoaXMsICdGYXJnYXRlVGFza0RlZicsIHtcbiAgICAgICAgICAgIGNwdTogKHByb3BzLm5DcHVzID8/IERFRkFVTFRfVkNQVVMpICogMTAyNCxcbiAgICAgICAgICAgIC8vIENvbnZlcnQgbWVtb3J5IGxpbWl0IGZyb20gR2lCIHRvIE1pQiAoMSBHaUIgPSAxMDI0IE1pQilcbiAgICAgICAgICAgIG1lbW9yeUxpbWl0TWlCOiAocHJvcHMubWVtb3J5TGltaXRHaUIgPz8gREVGQVVMVF9NRU1PUllfR0IpICogMTAyNCxcbiAgICAgICAgICAgIHJ1bnRpbWVQbGF0Zm9ybToge1xuICAgICAgICAgICAgICAgIGNwdUFyY2hpdGVjdHVyZTogcHJvcHMucnVudGltZVBsYXRmb3JtID8/IENQVV9BUkNISVRFQ1RVUkVfTUFQW2FyY2hpdGVjdHVyZV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhlY3V0aW9uUm9sZTogdGhpcy50YXNrRXhlY3V0aW9uUm9sZVxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIFNldCB1cCB0aGUgc2VjdXJpdHkgZ3JvdXBcbiAgICAgICAgdGhpcy5zZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHRoaXMsICdGYXJnYXRlU2VjdXJpdHlHcm91cCcsIHtcbiAgICAgICAgICAgIHZwYzogbWFpblZwYyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnU2VjdXJpdHkgZ3JvdXAgZm9yIEZhcmdhdGUgdGFza3MnXG4gICAgICAgIH0pXG5cbiAgICAgICAgdGhpcy5jb250YWluZXJEZWZpbml0aW9uID0gdGhpcy50YXNrRGVmaW5pdGlvbi5hZGRDb250YWluZXIoJ0ZhcmdhdGVDb250YWluZXInLCB7XG4gICAgICAgICAgICBjb250YWluZXJOYW1lOiBwcm9wcy5jb250YWluZXJOYW1lLFxuICAgICAgICAgICAgaW1hZ2U6IGVjcy5Db250YWluZXJJbWFnZS5mcm9tRG9ja2VySW1hZ2VBc3NldChcbiAgICAgICAgICAgICAgICBuZXcgZWNyQXNzZXRzLkRvY2tlckltYWdlQXNzZXQodGhpcywgJ0ZhcmdhdGVEb2NrZXJJbWFnZScsIHtcbiAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5OiBwcm9wcy5kb2NrZXJQYXRoLFxuICAgICAgICAgICAgICAgICAgICBidWlsZEFyZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRBUkdFVFBMQVRGT1JNOiBMQU1CREFfQVJDSElURUNUVVJFX01BUFthcmNoaXRlY3R1cmVdLmRvY2tlclBsYXRmb3JtXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGxvZ2dpbmc6IGVjcy5Mb2dEcml2ZXIuYXdzTG9ncyh7XG4gICAgICAgICAgICAgICAgc3RyZWFtUHJlZml4OiBwcm9wcy5jb250YWluZXJOYW1lLFxuICAgICAgICAgICAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5PTkVfV0VFS1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXFDO0FBQ3JDLHFDQUFnRjtBQUNoRix5REFBMkM7QUFDM0MseURBQTJDO0FBQzNDLGlEQUFzRDtBQUN0RCwrREFBaUQ7QUFDakQsc0VBQXdEO0FBQ3hELHlEQUEyQztBQUMzQyxtREFBbUQ7QUFDbkQsNERBQXFEO0FBQ3JELGlEQUF5RDtBQXFCNUMsUUFBQSxvQkFBb0IsR0FBOEM7SUFDM0UsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU07SUFDdEMsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUs7Q0FDdkMsQ0FBQTtBQUVZLFFBQUEsdUJBQXVCLEdBQThDO0lBQzlFLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO0lBQ3RDLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNO0NBQ3hDLENBQUE7QUEwQ0QsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUzs7SUFDbEMsT0FBTyxDQUFjO0lBQ3JCLGNBQWMsQ0FBMkI7SUFDekMsaUJBQWlCLENBQU87SUFDeEIsYUFBYSxDQUFvQjtJQUNqQyxtQkFBbUIsQ0FBeUI7SUFFNUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLG1DQUFtQztRQUNuQyxNQUFNLFlBQVksR0FBaUIsS0FBSyxDQUFDLFlBQVksSUFBSSw2QkFBb0IsQ0FBQTtRQUU3RSxzQkFBc0I7UUFDdEIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQzlCLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDYixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxxQkFBUTtTQUNyQyxDQUNKLENBQUE7UUFFRCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ25ELEdBQUcsRUFBRSxPQUFPO1lBQ1osOEJBQThCLEVBQUUsSUFBSTtZQUNwQyxtQkFBbUIsRUFBRSwyQkFBaUIsQ0FBQyxPQUFPO1NBQ2pELENBQUMsQ0FBQTtRQUVGLG1FQUFtRTtRQUNuRSxrSUFBa0k7UUFDbEksOEdBQThHO1FBQzlHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQy9ELFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQztZQUM5RCxlQUFlLEVBQUUsQ0FBQyx1QkFBYSxDQUFDLHdCQUF3QixDQUFDLCtDQUErQyxDQUFDLENBQUM7U0FDM0csQ0FBQyxDQUFBO1FBRUYscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxHQUFHLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3hFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksc0JBQWEsQ0FBQyxHQUFHLElBQUk7WUFDMUMsMERBQTBEO1lBQzFELGNBQWMsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLElBQUksMEJBQWlCLENBQUMsR0FBRyxJQUFJO1lBQ2xFLGVBQWUsRUFBRTtnQkFDYixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWUsSUFBSSw0QkFBb0IsQ0FBQyxZQUFZLENBQUM7YUFDL0U7WUFDRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUN4QyxDQUFDLENBQUE7UUFFRiw0QkFBNEI7UUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFO1lBQ3JFLEdBQUcsRUFBRSxPQUFPO1lBQ1osV0FBVyxFQUFFLGtDQUFrQztTQUNsRCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLEVBQUU7WUFDNUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLEtBQUssRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUMxQyxJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7Z0JBQ3ZELFNBQVMsRUFBRSxLQUFLLENBQUMsVUFBVTtnQkFDM0IsU0FBUyxFQUFFO29CQUNQLGNBQWMsRUFBRSwrQkFBdUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxjQUFjO2lCQUN2RTthQUNKLENBQUMsQ0FDTDtZQUNELE9BQU8sRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztnQkFDM0IsWUFBWSxFQUFFLEtBQUssQ0FBQyxhQUFhO2dCQUNqQyxZQUFZLEVBQUUsd0JBQWEsQ0FBQyxRQUFRO2FBQ3ZDLENBQUM7U0FDTCxDQUFDLENBQUM7SUFDUCxDQUFDOztBQW5FTCwwREFvRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7REVGQVVMVF9BUkNISVRFQ1RVUkUsIERFRkFVTFRfTUVNT1JZX0dCLCBERUZBVUxUX1ZDUFVTfSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0ICogYXMgZWNzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWNzXCI7XG5pbXBvcnQge0NvbnRhaW5lckluc2lnaHRzfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjc1wiO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgKiBhcyBlY3JBc3NldHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3ItYXNzZXRzXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7UmV0ZW50aW9uRGF5c30gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQge1ZQQ19OQU1FfSBmcm9tIFwiLi4vc2hhcmVkLWNvbmZpZy9uZXR3b3JraW5nXCI7XG5pbXBvcnQge0lSb2xlLCBNYW5hZ2VkUG9saWN5fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuXG4vLyBNZW1vcnkgYW5kIENQVSBsaW1pdHMgZm9yIEZhcmdhdGUgdGFza3Ncbi8qXG4yNTYgKC4yNSB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiA1MTIgKDAuNSBHQiksIDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKVxuXG41MTIgKC41IHZDUFUpIC0gQXZhaWxhYmxlIG1lbW9yeSB2YWx1ZXM6IDEwMjQgKDEgR0IpLCAyMDQ4ICgyIEdCKSwgMzA3MiAoMyBHQiksIDQwOTYgKDQgR0IpXG5cbjEwMjQgKDEgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogMjA0OCAoMiBHQiksIDMwNzIgKDMgR0IpLCA0MDk2ICg0IEdCKSwgNTEyMCAoNSBHQiksIDYxNDQgKDYgR0IpLCA3MTY4ICg3IEdCKSwgODE5MiAoOCBHQilcblxuMjA0OCAoMiB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiBCZXR3ZWVuIDQwOTYgKDQgR0IpIGFuZCAxNjM4NCAoMTYgR0IpIGluIGluY3JlbWVudHMgb2YgMTAyNCAoMSBHQilcblxuNDA5NiAoNCB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiBCZXR3ZWVuIDgxOTIgKDggR0IpIGFuZCAzMDcyMCAoMzAgR0IpIGluIGluY3JlbWVudHMgb2YgMTAyNCAoMSBHQilcblxuODE5MiAoOCB2Q1BVKSAtIEF2YWlsYWJsZSBtZW1vcnkgdmFsdWVzOiBCZXR3ZWVuIDE2Mzg0ICgxNiBHQikgYW5kIDYxNDQwICg2MCBHQikgaW4gaW5jcmVtZW50cyBvZiA0MDk2ICg0IEdCKVxuXG4xNjM4NCAoMTYgdkNQVSkgLSBBdmFpbGFibGUgbWVtb3J5IHZhbHVlczogQmV0d2VlbiAzMjc2OCAoMzIgR0IpIGFuZCAxMjI4ODAgKDEyMCBHQikgaW4gaW5jcmVtZW50cyBvZiA4MTkyICg4IEdCKVxuKi9cblxuZXhwb3J0IHR5cGUgQXJjaGl0ZWN0dXJlID0gJ1g4Nl82NCcgfCAnQVJNNjQnXG5cbmV4cG9ydCBjb25zdCBDUFVfQVJDSElURUNUVVJFX01BUDogUmVjb3JkPEFyY2hpdGVjdHVyZSwgZWNzLkNwdUFyY2hpdGVjdHVyZT4gPSB7XG4gICAgWydYODZfNjQnXTogZWNzLkNwdUFyY2hpdGVjdHVyZS5YODZfNjQsXG4gICAgWydBUk02NCddOiBlY3MuQ3B1QXJjaGl0ZWN0dXJlLkFSTTY0XG59XG5cbmV4cG9ydCBjb25zdCBMQU1CREFfQVJDSElURUNUVVJFX01BUDogUmVjb3JkPEFyY2hpdGVjdHVyZSwgbGFtYmRhLkFyY2hpdGVjdHVyZT4gPSB7XG4gICAgWydYODZfNjQnXTogbGFtYmRhLkFyY2hpdGVjdHVyZS5YODZfNjQsXG4gICAgWydBUk02NCddOiBsYW1iZGEuQXJjaGl0ZWN0dXJlLkFSTV82NFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZhcmdhdGVFY3NUYXNrQ29uc3RydWN0UHJvcHMge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBWUEMgdG8gdXNlLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBAREVGQVVMVF9NQUlOX1ZQQ19OQU1FIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSB2cGNOYW1lPzogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcnVudGltZSBDUFUgYXJjaGl0ZWN0dXJlLCBlaXRoZXIgWDg2XzY0IG9yIEFSTTY0LiBJZiBub3QgcHJvdmlkZWQsIHRoZSBkZWZhdWx0IGlzIEBERUZBVUxUX0FSQ0hJVEVDVFVSRS5cbiAgICAgKi9cbiAgICByZWFkb25seSBydW50aW1lUGxhdGZvcm0/OiBlY3MuQ3B1QXJjaGl0ZWN0dXJlXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbnVtYmVyIG9mIENQVXMgdG8gdXNlLCBiZXR3ZWVuIDAuMjUgYW5kIDE2LiBJZiBub3QgcHJvdmlkZWQsIHRoZSBkZWZhdWx0IGlzIEBERUZBVUxUX1ZDUFVTLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5DcHVzOiBudW1iZXIgLy8gTnVtYmVyIG9mIENQVXMgKDAuMjUsIDAuNSwgMSwgMiwgNCwgOCwgMTYpXG5cbiAgICAvKipcbiAgICAgKiBUaGUgbWVtb3J5IGxpbWl0IGluIEdpQi4gSWYgbm90IHByb3ZpZGVkLCB0aGUgZGVmYXVsdCBpcyBAREVGQVVMVF9NRU1PUllfR0IuXG4gICAgICogVGhlIG1lbW9yeSBsaW1pdCBtdXN0IGJlIGJldHdlZW4gMC41IGFuZCAxMjAgR2lCLlxuICAgICAqIEJ1dCBwbGVhc2Ugbm90ZSB0aGF0IHRoZSBtZW1vcnkgbGltaXQgdmFyaWVzIGRlcGVuZGluZyBvbiB0aGUgbnVtYmVyIG9mIENQVXMsIHBsZWFzZSByZWZlciB0byB0aGUgdGFibGUgYWJvdmUuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbWVtb3J5TGltaXRHaUI6IG51bWJlclxuXG4gICAgLyoqXG4gICAgICogVGhlIGFyY2hpdGVjdHVyZSBvZiB0aGUgY29udGFpbmVyLiBJZiBub3QgcHJvdmlkZWQsIHRoZSBkZWZhdWx0IGlzIEBERUZBVUxUX0FSQ0hJVEVDVFVSRS5cbiAgICAgKi9cbiAgICByZWFkb25seSBhcmNoaXRlY3R1cmU/OiBBcmNoaXRlY3R1cmVcblxuXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lci4gVGhpcyBpcyBhIHJlcXVpcmVkIHByb3BlcnR5XG4gICAgICovXG4gICAgcmVhZG9ubHkgY29udGFpbmVyTmFtZTogc3RyaW5nXG5cbiAgICAvKipcbiAgICAgKiBUaGUgcGF0aCB0byB0aGUgRG9ja2VyZmlsZS4gVGhpcyBpcyBhIHJlcXVpcmVkIHByb3BlcnR5XG4gICAgICovXG4gICAgcmVhZG9ubHkgZG9ja2VyUGF0aDogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBFY3NGYXJnYXRlVGFza0NvbnN0cnVjdCBleHRlbmRzIENvbnN0cnVjdCB7XG4gICAgcHVibGljIHJlYWRvbmx5IGNsdXN0ZXI6IGVjcy5JQ2x1c3RlclxuICAgIHB1YmxpYyByZWFkb25seSB0YXNrRGVmaW5pdGlvbjogZWNzLkZhcmdhdGVUYXNrRGVmaW5pdGlvblxuICAgIHB1YmxpYyByZWFkb25seSB0YXNrRXhlY3V0aW9uUm9sZTogSVJvbGVcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VjdXJpdHlHcm91cDogZWMyLklTZWN1cml0eUdyb3VwXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbnRhaW5lckRlZmluaXRpb246IGVjcy5Db250YWluZXJEZWZpbml0aW9uXG5cbiAgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRmFyZ2F0ZUVjc1Rhc2tDb25zdHJ1Y3RQcm9wcykge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgICAgIC8vIFNldCBhcmNoaXRlY3R1cmUgaWYgbm90IHByb3ZpZGVkXG4gICAgICAgIGNvbnN0IGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlID0gcHJvcHMuYXJjaGl0ZWN0dXJlID8/IERFRkFVTFRfQVJDSElURUNUVVJFXG5cbiAgICAgICAgLy8gU2V0IHVwIHRoZSBtYWluIHZwY1xuICAgICAgICBjb25zdCBtYWluVnBjID0gZWMyLlZwYy5mcm9tTG9va3VwKFxuICAgICAgICAgICAgdGhpcywgJ01haW5WcGMnLCB7XG4gICAgICAgICAgICAgICAgdnBjTmFtZTogcHJvcHMudnBjTmFtZSA/PyBWUENfTkFNRVxuICAgICAgICAgICAgfVxuICAgICAgICApXG5cbiAgICAgICAgLy8gU2V0IHVwIHRoZSBFQ1MgY2x1c3RlclxuICAgICAgICB0aGlzLmNsdXN0ZXIgPSBuZXcgZWNzLkNsdXN0ZXIodGhpcywgJ0ZhcmdhdGVDbHVzdGVyJywge1xuICAgICAgICAgICAgdnBjOiBtYWluVnBjLFxuICAgICAgICAgICAgZW5hYmxlRmFyZ2F0ZUNhcGFjaXR5UHJvdmlkZXJzOiB0cnVlLFxuICAgICAgICAgICAgY29udGFpbmVySW5zaWdodHNWMjogQ29udGFpbmVySW5zaWdodHMuRU5BQkxFRFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIEFsbG93IHRoZSB0YXNrIGRlZmluaXRpb24gcm9sZSBlY3IgYWNjZXNzIHRvIHRoZSBndWFyZGR1dHkgYWdlbnRcbiAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2d1YXJkZHV0eS9sYXRlc3QvdWcvcHJlcmVxLXJ1bnRpbWUtbW9uaXRvcmluZy1lY3Mtc3VwcG9ydC5odG1sI2JlZm9yZS1lbmFibGUtcnVudGltZS1tb25pdG9yaW5nLWVjc1xuICAgICAgICAvLyBXaGljaCBpcyBpbiBhbm90aGVyIGFjY291bnQgLSAwMDUyNTc4MjU0NzEuZGtyLmVjci5hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tL2F3cy1ndWFyZGR1dHktYWdlbnQtZmFyZ2F0ZVxuICAgICAgICB0aGlzLnRhc2tFeGVjdXRpb25Sb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIGBUYXNrRXhlY3V0aW9uUm9sZWAsIHtcbiAgICAgICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZWNzLXRhc2tzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgICAgICBtYW5hZ2VkUG9saWNpZXM6IFtNYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FtYXpvbkVDU1Rhc2tFeGVjdXRpb25Sb2xlUG9saWN5JyldLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIFNldCB1cCB0aGUgRmFyZ2F0ZSB0YXNrIGRlZmluaXRpb25cbiAgICAgICAgdGhpcy50YXNrRGVmaW5pdGlvbiA9IG5ldyBlY3MuRmFyZ2F0ZVRhc2tEZWZpbml0aW9uKHRoaXMsICdGYXJnYXRlVGFza0RlZicsIHtcbiAgICAgICAgICAgIGNwdTogKHByb3BzLm5DcHVzID8/IERFRkFVTFRfVkNQVVMpICogMTAyNCxcbiAgICAgICAgICAgIC8vIENvbnZlcnQgbWVtb3J5IGxpbWl0IGZyb20gR2lCIHRvIE1pQiAoMSBHaUIgPSAxMDI0IE1pQilcbiAgICAgICAgICAgIG1lbW9yeUxpbWl0TWlCOiAocHJvcHMubWVtb3J5TGltaXRHaUIgPz8gREVGQVVMVF9NRU1PUllfR0IpICogMTAyNCxcbiAgICAgICAgICAgIHJ1bnRpbWVQbGF0Zm9ybToge1xuICAgICAgICAgICAgICAgIGNwdUFyY2hpdGVjdHVyZTogcHJvcHMucnVudGltZVBsYXRmb3JtID8/IENQVV9BUkNISVRFQ1RVUkVfTUFQW2FyY2hpdGVjdHVyZV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXhlY3V0aW9uUm9sZTogdGhpcy50YXNrRXhlY3V0aW9uUm9sZSxcbiAgICAgICAgfSlcblxuICAgICAgICAvLyBTZXQgdXAgdGhlIHNlY3VyaXR5IGdyb3VwXG4gICAgICAgIHRoaXMuc2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cCh0aGlzLCAnRmFyZ2F0ZVNlY3VyaXR5R3JvdXAnLCB7XG4gICAgICAgICAgICB2cGM6IG1haW5WcGMsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NlY3VyaXR5IGdyb3VwIGZvciBGYXJnYXRlIHRhc2tzJ1xuICAgICAgICB9KVxuXG4gICAgICAgIHRoaXMuY29udGFpbmVyRGVmaW5pdGlvbiA9IHRoaXMudGFza0RlZmluaXRpb24uYWRkQ29udGFpbmVyKCdGYXJnYXRlQ29udGFpbmVyJywge1xuICAgICAgICAgICAgY29udGFpbmVyTmFtZTogcHJvcHMuY29udGFpbmVyTmFtZSxcbiAgICAgICAgICAgIGltYWdlOiBlY3MuQ29udGFpbmVySW1hZ2UuZnJvbURvY2tlckltYWdlQXNzZXQoXG4gICAgICAgICAgICAgICAgbmV3IGVjckFzc2V0cy5Eb2NrZXJJbWFnZUFzc2V0KHRoaXMsICdGYXJnYXRlRG9ja2VySW1hZ2UnLCB7XG4gICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeTogcHJvcHMuZG9ja2VyUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgYnVpbGRBcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBUQVJHRVRQTEFURk9STTogTEFNQkRBX0FSQ0hJVEVDVFVSRV9NQVBbYXJjaGl0ZWN0dXJlXS5kb2NrZXJQbGF0Zm9ybVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsb2dnaW5nOiBlY3MuTG9nRHJpdmVyLmF3c0xvZ3Moe1xuICAgICAgICAgICAgICAgIHN0cmVhbVByZWZpeDogcHJvcHMuY29udGFpbmVyTmFtZSxcbiAgICAgICAgICAgICAgICBsb2dSZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX1dFRUtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# EventBridge Rules
|
|
2
|
+
|
|
3
|
+
## SfnSlackNotification
|
|
4
|
+
|
|
5
|
+
This CDK construct sends Slack notifications when your Step Functions state machine changes status.
|
|
6
|
+
|
|
7
|
+
### Example
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
new SfnSlackNotification(this, "SfnSlackNotification", {
|
|
11
|
+
stateMachine: myDev,
|
|
12
|
+
eventStatus: [SfnEventStatus.SUCCEEDED],
|
|
13
|
+
title: `JOB-A: ${EventField.fromPath("$.detail.input.jobId")}`,
|
|
14
|
+
message: [
|
|
15
|
+
"*Execution Details:*",
|
|
16
|
+
`• ARN: ${EventField.fromPath("$.detail.executionArn")}`,
|
|
17
|
+
`• Status: ${EventField.fromPath("$.detail.status")}`,
|
|
18
|
+
],
|
|
19
|
+
includeConsoleLink: true,
|
|
20
|
+
});
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Notes
|
|
24
|
+
|
|
25
|
+
- Use `EventField.fromPath("$.jsonpath")` to include dynamic event data in your title or message.
|
|
26
|
+
- `includeConsoleLink` adds a link to the AWS Console for the execution.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SNS_ALERTS_TOPIC_ARN = "/chatbot/slack/umccr/alerts-topic-arn";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SNS_ALERTS_TOPIC_ARN = void 0;
|
|
4
|
+
exports.SNS_ALERTS_TOPIC_ARN = "/chatbot/slack/umccr/alerts-topic-arn";
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsb0JBQW9CLEdBQUcsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU05TX0FMRVJUU19UT1BJQ19BUk4gPSBcIi9jaGF0Ym90L3NsYWNrL3VtY2NyL2FsZXJ0cy10b3BpYy1hcm5cIjtcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./config"), exports);
|
|
18
|
+
__exportStar(require("./sfn-slack-notification"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQXlCO0FBQ3pCLDJEQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbmZpZ1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2ZuLXNsYWNrLW5vdGlmaWNhdGlvblwiO1xuIl19
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { IEventBus, Rule } from "aws-cdk-lib/aws-events";
|
|
2
|
+
import { IStateMachine } from "aws-cdk-lib/aws-stepfunctions";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
export declare enum SfnEventStatus {
|
|
5
|
+
RUNNING = "RUNNING",
|
|
6
|
+
SUCCEEDED = "SUCCEEDED",
|
|
7
|
+
FAILED = "FAILED",
|
|
8
|
+
TIMED_OUT = "TIMED_OUT",
|
|
9
|
+
ABORTED = "ABORTED"
|
|
10
|
+
}
|
|
11
|
+
export interface SfnSlackNotificationProps {
|
|
12
|
+
/**
|
|
13
|
+
* The step function state machine to listen to.
|
|
14
|
+
*/
|
|
15
|
+
readonly stateMachine: IStateMachine;
|
|
16
|
+
/**
|
|
17
|
+
* The event statuses to listen for.
|
|
18
|
+
*
|
|
19
|
+
* Default: The default AWS event bus
|
|
20
|
+
*/
|
|
21
|
+
readonly eventBus?: IEventBus;
|
|
22
|
+
/**
|
|
23
|
+
* The event statuses to listen for.
|
|
24
|
+
*/
|
|
25
|
+
readonly eventStatus: SfnEventStatus[];
|
|
26
|
+
/**
|
|
27
|
+
* The title for the Slack notification.
|
|
28
|
+
*
|
|
29
|
+
* Can include dynamic content from the event payload using JSONPath expressions.
|
|
30
|
+
* To reference event fields, you must use `EventField.fromPath`, e.g.,
|
|
31
|
+
* `Job-alpha: ${EventField.fromPath("$.detail.input.destinationId")}`.
|
|
32
|
+
* The `EventField` import is required from `aws-cdk-lib/aws-events`.
|
|
33
|
+
*/
|
|
34
|
+
readonly title: string;
|
|
35
|
+
/**
|
|
36
|
+
* The detailed message content for the Slack notification.
|
|
37
|
+
*
|
|
38
|
+
* Each array element represents a separate line in the message.
|
|
39
|
+
* Supports Slack's message formatting syntax:
|
|
40
|
+
* https://api.slack.com/reference/surfaces/formatting
|
|
41
|
+
*
|
|
42
|
+
* **Dynamic Content:**
|
|
43
|
+
* To include dynamic event data, embed JSONPath expressions in strings using `EventField.fromPath`.
|
|
44
|
+
* For example, `EventField.fromPath("$.detail.executionArn")` references the `executionArn` field from the event payload.
|
|
45
|
+
* The `EventField` is imported from `aws-cdk-lib/aws-events`.
|
|
46
|
+
*
|
|
47
|
+
* Example:
|
|
48
|
+
*
|
|
49
|
+
* ```typescript
|
|
50
|
+
* message: [
|
|
51
|
+
* "*Execution Details:*",
|
|
52
|
+
* `• ARN: ${EventField.fromPath("$.detail.executionArn")}`,
|
|
53
|
+
* `• Status: ${EventField.fromPath("$.detail.status")}`,
|
|
54
|
+
* "",
|
|
55
|
+
* ]
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
readonly message: string[];
|
|
59
|
+
/**
|
|
60
|
+
* Whether to include a link to the Step Function execution in the AWS Console.
|
|
61
|
+
*
|
|
62
|
+
* When enabled, adds a clickable console link at the beginning of the Slack message.
|
|
63
|
+
* The link is constructed using the execution ARN from the event payload.
|
|
64
|
+
*
|
|
65
|
+
* Ref: https://stackoverflow.com/a/76008805
|
|
66
|
+
*
|
|
67
|
+
* @default false
|
|
68
|
+
*/
|
|
69
|
+
readonly includeConsoleLink?: boolean;
|
|
70
|
+
}
|
|
71
|
+
export declare class SfnSlackNotification extends Construct {
|
|
72
|
+
readonly rule: Rule;
|
|
73
|
+
constructor(scope: Construct, id: string, props: SfnSlackNotificationProps);
|
|
74
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SfnSlackNotification = exports.SfnEventStatus = void 0;
|
|
4
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
5
|
+
const aws_events_1 = require("aws-cdk-lib/aws-events");
|
|
6
|
+
const aws_sns_1 = require("aws-cdk-lib/aws-sns");
|
|
7
|
+
const aws_ssm_1 = require("aws-cdk-lib/aws-ssm");
|
|
8
|
+
const constructs_1 = require("constructs");
|
|
9
|
+
const config_1 = require("./config");
|
|
10
|
+
const aws_events_targets_1 = require("aws-cdk-lib/aws-events-targets");
|
|
11
|
+
var SfnEventStatus;
|
|
12
|
+
(function (SfnEventStatus) {
|
|
13
|
+
SfnEventStatus["RUNNING"] = "RUNNING";
|
|
14
|
+
SfnEventStatus["SUCCEEDED"] = "SUCCEEDED";
|
|
15
|
+
SfnEventStatus["FAILED"] = "FAILED";
|
|
16
|
+
SfnEventStatus["TIMED_OUT"] = "TIMED_OUT";
|
|
17
|
+
SfnEventStatus["ABORTED"] = "ABORTED";
|
|
18
|
+
})(SfnEventStatus || (exports.SfnEventStatus = SfnEventStatus = {}));
|
|
19
|
+
class SfnSlackNotification extends constructs_1.Construct {
|
|
20
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.eventbridgeRule.SfnSlackNotification", version: "0.0.70" };
|
|
21
|
+
rule;
|
|
22
|
+
constructor(scope, id, props) {
|
|
23
|
+
super(scope, id);
|
|
24
|
+
this.rule = new aws_events_1.Rule(this, "SfnSlackNotificationRule", {
|
|
25
|
+
eventBus: props.eventBus,
|
|
26
|
+
description: `Slack notification for Step Function state machine `,
|
|
27
|
+
eventPattern: {
|
|
28
|
+
source: ["aws.states"],
|
|
29
|
+
detailType: ["Step Functions Execution Status Change"],
|
|
30
|
+
detail: {
|
|
31
|
+
stateMachineArn: [props.stateMachine.stateMachineArn],
|
|
32
|
+
status: props.eventStatus,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
// get SNS topic ARN from SSM Parameter Store
|
|
37
|
+
const slackTopicArn = aws_ssm_1.StringParameter.valueForStringParameter(this, config_1.SNS_ALERTS_TOPIC_ARN);
|
|
38
|
+
const slackSnsTopic = aws_sns_1.Topic.fromTopicArn(this, "SlackAlertTopic", slackTopicArn);
|
|
39
|
+
this.rule.addTarget(new aws_events_targets_1.SnsTopic(slackSnsTopic, {
|
|
40
|
+
message: aws_events_1.RuleTargetInput.fromObject({
|
|
41
|
+
version: "1.0",
|
|
42
|
+
source: "custom",
|
|
43
|
+
content: {
|
|
44
|
+
textType: "client-markdown",
|
|
45
|
+
title: props.title,
|
|
46
|
+
description: [
|
|
47
|
+
props.includeConsoleLink
|
|
48
|
+
? `<https://console.aws.amazon.com/states/home?#/v2/executions/details/${aws_events_1.EventField.fromPath("$.detail.executionArn")}|View in Console>\n`
|
|
49
|
+
: "",
|
|
50
|
+
...props.message,
|
|
51
|
+
].join("\n"),
|
|
52
|
+
},
|
|
53
|
+
}),
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.SfnSlackNotification = SfnSlackNotification;
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ZuLXNsYWNrLW5vdGlmaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNmbi1zbGFjay1ub3RpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHVEQUtnQztBQUNoQyxpREFBNEM7QUFDNUMsaURBQXNEO0FBRXRELDJDQUF1QztBQUN2QyxxQ0FBZ0Q7QUFDaEQsdUVBQTBEO0FBRTFELElBQVksY0FNWDtBQU5ELFdBQVksY0FBYztJQUN4QixxQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBdUIsQ0FBQTtJQUN2QixtQ0FBaUIsQ0FBQTtJQUNqQix5Q0FBdUIsQ0FBQTtJQUN2QixxQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTlcsY0FBYyw4QkFBZCxjQUFjLFFBTXpCO0FBK0RELE1BQWEsb0JBQXFCLFNBQVEsc0JBQVM7O0lBQ2pDLElBQUksQ0FBTztJQUMzQixZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGlCQUFJLENBQUMsSUFBSSxFQUFFLDBCQUEwQixFQUFFO1lBQ3JELFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixXQUFXLEVBQUUscURBQXFEO1lBQ2xFLFlBQVksRUFBRTtnQkFDWixNQUFNLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3RCLFVBQVUsRUFBRSxDQUFDLHdDQUF3QyxDQUFDO2dCQUN0RCxNQUFNLEVBQUU7b0JBQ04sZUFBZSxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7b0JBQ3JELE1BQU0sRUFBRSxLQUFLLENBQUMsV0FBVztpQkFDMUI7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILDZDQUE2QztRQUM3QyxNQUFNLGFBQWEsR0FBRyx5QkFBZSxDQUFDLHVCQUF1QixDQUMzRCxJQUFJLEVBQ0osNkJBQW9CLENBQ3JCLENBQUM7UUFFRixNQUFNLGFBQWEsR0FBRyxlQUFLLENBQUMsWUFBWSxDQUN0QyxJQUFJLEVBQ0osaUJBQWlCLEVBQ2pCLGFBQWEsQ0FDZCxDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQ2pCLElBQUksNkJBQVEsQ0FBQyxhQUFhLEVBQUU7WUFDMUIsT0FBTyxFQUFFLDRCQUFlLENBQUMsVUFBVSxDQUFDO2dCQUNsQyxPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsUUFBUTtnQkFDaEIsT0FBTyxFQUFFO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztvQkFDbEIsV0FBVyxFQUFFO3dCQUNYLEtBQUssQ0FBQyxrQkFBa0I7NEJBQ3RCLENBQUMsQ0FBQyx1RUFBdUUsdUJBQVUsQ0FBQyxRQUFRLENBQ3hGLHVCQUF1QixDQUN4QixxQkFBcUI7NEJBQ3hCLENBQUMsQ0FBQyxFQUFFO3dCQUNOLEdBQUcsS0FBSyxDQUFDLE9BQU87cUJBQ2pCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDYjthQUNGLENBQUM7U0FDSCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O0FBakRILG9EQWtEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEV2ZW50RmllbGQsXG4gIElFdmVudEJ1cyxcbiAgUnVsZSxcbiAgUnVsZVRhcmdldElucHV0LFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50c1wiO1xuaW1wb3J0IHsgVG9waWMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNuc1wiO1xuaW1wb3J0IHsgU3RyaW5nUGFyYW1ldGVyIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc21cIjtcbmltcG9ydCB7IElTdGF0ZU1hY2hpbmUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnNcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBTTlNfQUxFUlRTX1RPUElDX0FSTiB9IGZyb20gXCIuL2NvbmZpZ1wiO1xuaW1wb3J0IHsgU25zVG9waWMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzXCI7XG5cbmV4cG9ydCBlbnVtIFNmbkV2ZW50U3RhdHVzIHtcbiAgUlVOTklORyA9IFwiUlVOTklOR1wiLFxuICBTVUNDRUVERUQgPSBcIlNVQ0NFRURFRFwiLFxuICBGQUlMRUQgPSBcIkZBSUxFRFwiLFxuICBUSU1FRF9PVVQgPSBcIlRJTUVEX09VVFwiLFxuICBBQk9SVEVEID0gXCJBQk9SVEVEXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ZuU2xhY2tOb3RpZmljYXRpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgc3RlcCBmdW5jdGlvbiBzdGF0ZSBtYWNoaW5lIHRvIGxpc3RlbiB0by5cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlTWFjaGluZTogSVN0YXRlTWFjaGluZTtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBzdGF0dXNlcyB0byBsaXN0ZW4gZm9yLlxuICAgKlxuICAgKiAgRGVmYXVsdDogVGhlIGRlZmF1bHQgQVdTIGV2ZW50IGJ1c1xuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXM/OiBJRXZlbnRCdXM7XG4gIC8qKlxuICAgKiBUaGUgZXZlbnQgc3RhdHVzZXMgdG8gbGlzdGVuIGZvci5cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50U3RhdHVzOiBTZm5FdmVudFN0YXR1c1tdO1xuICAvKipcbiAgICogVGhlIHRpdGxlIGZvciB0aGUgU2xhY2sgbm90aWZpY2F0aW9uLlxuICAgKlxuICAgKiBDYW4gaW5jbHVkZSBkeW5hbWljIGNvbnRlbnQgZnJvbSB0aGUgZXZlbnQgcGF5bG9hZCB1c2luZyBKU09OUGF0aCBleHByZXNzaW9ucy5cbiAgICogVG8gcmVmZXJlbmNlIGV2ZW50IGZpZWxkcywgeW91IG11c3QgdXNlIGBFdmVudEZpZWxkLmZyb21QYXRoYCwgZS5nLixcbiAgICogYEpvYi1hbHBoYTogJHtFdmVudEZpZWxkLmZyb21QYXRoKFwiJC5kZXRhaWwuaW5wdXQuZGVzdGluYXRpb25JZFwiKX1gLlxuICAgKiBUaGUgYEV2ZW50RmllbGRgIGltcG9ydCBpcyByZXF1aXJlZCBmcm9tIGBhd3MtY2RrLWxpYi9hd3MtZXZlbnRzYC5cbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGV0YWlsZWQgbWVzc2FnZSBjb250ZW50IGZvciB0aGUgU2xhY2sgbm90aWZpY2F0aW9uLlxuICAgKlxuICAgKiBFYWNoIGFycmF5IGVsZW1lbnQgcmVwcmVzZW50cyBhIHNlcGFyYXRlIGxpbmUgaW4gdGhlIG1lc3NhZ2UuXG4gICAqIFN1cHBvcnRzIFNsYWNrJ3MgbWVzc2FnZSBmb3JtYXR0aW5nIHN5bnRheDpcbiAgICogaHR0cHM6Ly9hcGkuc2xhY2suY29tL3JlZmVyZW5jZS9zdXJmYWNlcy9mb3JtYXR0aW5nXG4gICAqXG4gICAqICoqRHluYW1pYyBDb250ZW50OioqXG4gICAqIFRvIGluY2x1ZGUgZHluYW1pYyBldmVudCBkYXRhLCBlbWJlZCBKU09OUGF0aCBleHByZXNzaW9ucyBpbiBzdHJpbmdzIHVzaW5nIGBFdmVudEZpZWxkLmZyb21QYXRoYC5cbiAgICogRm9yIGV4YW1wbGUsIGBFdmVudEZpZWxkLmZyb21QYXRoKFwiJC5kZXRhaWwuZXhlY3V0aW9uQXJuXCIpYCByZWZlcmVuY2VzIHRoZSBgZXhlY3V0aW9uQXJuYCBmaWVsZCBmcm9tIHRoZSBldmVudCBwYXlsb2FkLlxuICAgKiBUaGUgYEV2ZW50RmllbGRgIGlzIGltcG9ydGVkIGZyb20gYGF3cy1jZGstbGliL2F3cy1ldmVudHNgLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIG1lc3NhZ2U6IFtcbiAgICogICBcIipFeGVjdXRpb24gRGV0YWlsczoqXCIsXG4gICAqICAgYOKAoiBBUk46ICR7RXZlbnRGaWVsZC5mcm9tUGF0aChcIiQuZGV0YWlsLmV4ZWN1dGlvbkFyblwiKX1gLFxuICAgKiAgIGDigKIgU3RhdHVzOiAke0V2ZW50RmllbGQuZnJvbVBhdGgoXCIkLmRldGFpbC5zdGF0dXNcIil9YCxcbiAgICogICBcIlwiLFxuICAgKiBdXG4gICAqIGBgYFxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nW107XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGluY2x1ZGUgYSBsaW5rIHRvIHRoZSBTdGVwIEZ1bmN0aW9uIGV4ZWN1dGlvbiBpbiB0aGUgQVdTIENvbnNvbGUuXG4gICAqXG4gICAqIFdoZW4gZW5hYmxlZCwgYWRkcyBhIGNsaWNrYWJsZSBjb25zb2xlIGxpbmsgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgU2xhY2sgbWVzc2FnZS5cbiAgICogVGhlIGxpbmsgaXMgY29uc3RydWN0ZWQgdXNpbmcgdGhlIGV4ZWN1dGlvbiBBUk4gZnJvbSB0aGUgZXZlbnQgcGF5bG9hZC5cbiAgICpcbiAgICogUmVmOiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL2EvNzYwMDg4MDVcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGVDb25zb2xlTGluaz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBTZm5TbGFja05vdGlmaWNhdGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBydWxlOiBSdWxlO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU2ZuU2xhY2tOb3RpZmljYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnJ1bGUgPSBuZXcgUnVsZSh0aGlzLCBcIlNmblNsYWNrTm90aWZpY2F0aW9uUnVsZVwiLCB7XG4gICAgICBldmVudEJ1czogcHJvcHMuZXZlbnRCdXMsXG4gICAgICBkZXNjcmlwdGlvbjogYFNsYWNrIG5vdGlmaWNhdGlvbiBmb3IgU3RlcCBGdW5jdGlvbiBzdGF0ZSBtYWNoaW5lIGAsXG4gICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgc291cmNlOiBbXCJhd3Muc3RhdGVzXCJdLFxuICAgICAgICBkZXRhaWxUeXBlOiBbXCJTdGVwIEZ1bmN0aW9ucyBFeGVjdXRpb24gU3RhdHVzIENoYW5nZVwiXSxcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgc3RhdGVNYWNoaW5lQXJuOiBbcHJvcHMuc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybl0sXG4gICAgICAgICAgc3RhdHVzOiBwcm9wcy5ldmVudFN0YXR1cyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBnZXQgU05TIHRvcGljIEFSTiBmcm9tIFNTTSBQYXJhbWV0ZXIgU3RvcmVcbiAgICBjb25zdCBzbGFja1RvcGljQXJuID0gU3RyaW5nUGFyYW1ldGVyLnZhbHVlRm9yU3RyaW5nUGFyYW1ldGVyKFxuICAgICAgdGhpcyxcbiAgICAgIFNOU19BTEVSVFNfVE9QSUNfQVJOLFxuICAgICk7XG5cbiAgICBjb25zdCBzbGFja1Nuc1RvcGljID0gVG9waWMuZnJvbVRvcGljQXJuKFxuICAgICAgdGhpcyxcbiAgICAgIFwiU2xhY2tBbGVydFRvcGljXCIsXG4gICAgICBzbGFja1RvcGljQXJuLFxuICAgICk7XG4gICAgdGhpcy5ydWxlLmFkZFRhcmdldChcbiAgICAgIG5ldyBTbnNUb3BpYyhzbGFja1Nuc1RvcGljLCB7XG4gICAgICAgIG1lc3NhZ2U6IFJ1bGVUYXJnZXRJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgICB2ZXJzaW9uOiBcIjEuMFwiLFxuICAgICAgICAgIHNvdXJjZTogXCJjdXN0b21cIixcbiAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICB0ZXh0VHlwZTogXCJjbGllbnQtbWFya2Rvd25cIixcbiAgICAgICAgICAgIHRpdGxlOiBwcm9wcy50aXRsZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbXG4gICAgICAgICAgICAgIHByb3BzLmluY2x1ZGVDb25zb2xlTGlua1xuICAgICAgICAgICAgICAgID8gYDxodHRwczovL2NvbnNvbGUuYXdzLmFtYXpvbi5jb20vc3RhdGVzL2hvbWU/Iy92Mi9leGVjdXRpb25zL2RldGFpbHMvJHtFdmVudEZpZWxkLmZyb21QYXRoKFxuICAgICAgICAgICAgICAgICAgICBcIiQuZGV0YWlsLmV4ZWN1dGlvbkFyblwiLFxuICAgICAgICAgICAgICAgICAgKX18VmlldyBpbiBDb25zb2xlPlxcbmBcbiAgICAgICAgICAgICAgICA6IFwiXCIsXG4gICAgICAgICAgICAgIC4uLnByb3BzLm1lc3NhZ2UsXG4gICAgICAgICAgICBdLmpvaW4oXCJcXG5cIiksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iXX0=
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.monitoredQueue = exports.sharedConfig = exports.namedLambdaRole = exports.provider = exports.lambda = exports.ecs = exports.dynamodb = exports.apigateway = exports.deploymentPipeline = exports.utils = void 0;
|
|
36
|
+
exports.eventbridgeRule = exports.monitoredQueue = exports.sharedConfig = exports.namedLambdaRole = exports.provider = exports.lambda = exports.ecs = exports.dynamodb = exports.apigateway = exports.deploymentPipeline = exports.utils = void 0;
|
|
37
37
|
// Get stage name
|
|
38
38
|
exports.utils = __importStar(require("./utils"));
|
|
39
39
|
// Deployment pipeline constructs
|
|
@@ -50,4 +50,5 @@ exports.provider = __importStar(require("./provider-function"));
|
|
|
50
50
|
exports.namedLambdaRole = __importStar(require("./named-lambda-role"));
|
|
51
51
|
exports.sharedConfig = __importStar(require("./shared-config"));
|
|
52
52
|
exports.monitoredQueue = __importStar(require("./monitored-queue"));
|
|
53
|
-
|
|
53
|
+
exports.eventbridgeRule = __importStar(require("./eventbridge-rules"));
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpQkFBaUI7QUFDakIsaURBQWlDO0FBRWpDLGlDQUFpQztBQUNqQyxrRkFBa0U7QUFFbEUseUJBQXlCO0FBQ3pCLDREQUE0QztBQUU1QyxzQkFBc0I7QUFDdEIsdURBQXVDO0FBRXZDLDJCQUEyQjtBQUMzQiw2Q0FBNkI7QUFFN0Isb0JBQW9CO0FBQ3BCLG1EQUFtQztBQUVuQyxnRUFBZ0Q7QUFDaEQsdUVBQXVEO0FBQ3ZELGdFQUFnRDtBQUNoRCxvRUFBb0Q7QUFDcEQsdUVBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gR2V0IHN0YWdlIG5hbWVcbmV4cG9ydCAqIGFzIHV0aWxzIGZyb20gXCIuL3V0aWxzXCI7XG5cbi8vIERlcGxveW1lbnQgcGlwZWxpbmUgY29uc3RydWN0c1xuZXhwb3J0ICogYXMgZGVwbG95bWVudFBpcGVsaW5lIGZyb20gXCIuL2RlcGxveW1lbnQtc3RhY2stcGlwZWxpbmVcIjtcblxuLy8gQXBpIEdhdGV3YXkgY29uc3RydWN0c1xuZXhwb3J0ICogYXMgYXBpZ2F0ZXdheSBmcm9tIFwiLi9hcGktZ2F0ZXdheVwiO1xuXG4vLyBEeW5hbW9EQiBDb25zdHJ1Y3RzXG5leHBvcnQgKiBhcyBkeW5hbW9kYiBmcm9tIFwiLi9keW5hbW9kYlwiO1xuXG4vLyBFQ1MgLyBGYXJnYXRlIENvbnN0cnVjdHNcbmV4cG9ydCAqIGFzIGVjcyBmcm9tIFwiLi9lY3NcIjtcblxuLy8gTGFtYmRhIENvbnN0cnVjdHNcbmV4cG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiLi9sYW1iZGFcIjtcblxuZXhwb3J0ICogYXMgcHJvdmlkZXIgZnJvbSBcIi4vcHJvdmlkZXItZnVuY3Rpb25cIjtcbmV4cG9ydCAqIGFzIG5hbWVkTGFtYmRhUm9sZSBmcm9tIFwiLi9uYW1lZC1sYW1iZGEtcm9sZVwiO1xuZXhwb3J0ICogYXMgc2hhcmVkQ29uZmlnIGZyb20gXCIuL3NoYXJlZC1jb25maWdcIjtcbmV4cG9ydCAqIGFzIG1vbml0b3JlZFF1ZXVlIGZyb20gXCIuL21vbml0b3JlZC1xdWV1ZVwiO1xuZXhwb3J0ICogYXMgZXZlbnRicmlkZ2VSdWxlIGZyb20gXCIuL2V2ZW50YnJpZGdlLXJ1bGVzXCI7XG4iXX0=
|
package/index.ts
CHANGED
|
@@ -20,3 +20,4 @@ export * as provider from "./provider-function";
|
|
|
20
20
|
export * as namedLambdaRole from "./named-lambda-role";
|
|
21
21
|
export * as sharedConfig from "./shared-config";
|
|
22
22
|
export * as monitoredQueue from "./monitored-queue";
|
|
23
|
+
export * as eventbridgeRule from "./eventbridge-rules";
|
package/lambda/index.js
CHANGED
|
@@ -57,7 +57,7 @@ function getPythonUvDockerImage() {
|
|
|
57
57
|
return aws_cdk_lib_1.DockerImage.fromBuild(path_1.default.join(__dirname, 'build_python'));
|
|
58
58
|
}
|
|
59
59
|
class PythonUvFunction extends aws_lambda_python_alpha_1.PythonFunction {
|
|
60
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.lambda.PythonUvFunction", version: "0.0.
|
|
60
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.lambda.PythonUvFunction", version: "0.0.70" };
|
|
61
61
|
// Class constructs, to be used for caching the layers
|
|
62
62
|
// This means that if there are multiple lambdas throughout the stack
|
|
63
63
|
// They will all use the same layer
|
package/monitored-queue/index.js
CHANGED
|
@@ -13,7 +13,7 @@ const aws_cloudwatch_actions_1 = require("aws-cdk-lib/aws-cloudwatch-actions");
|
|
|
13
13
|
* SNS topic.
|
|
14
14
|
*/
|
|
15
15
|
class MonitoredQueue extends constructs_1.Construct {
|
|
16
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.monitoredQueue.MonitoredQueue", version: "0.0.
|
|
16
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.monitoredQueue.MonitoredQueue", version: "0.0.70" };
|
|
17
17
|
queue;
|
|
18
18
|
deadLetterQueue;
|
|
19
19
|
alarm;
|
|
@@ -7,7 +7,7 @@ const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
|
7
7
|
* A construct which represents a named role that a Lambda function can assume.
|
|
8
8
|
*/
|
|
9
9
|
class NamedLambdaRole extends aws_iam_1.Role {
|
|
10
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRole", version: "0.0.
|
|
10
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.namedLambdaRole.NamedLambdaRole", version: "0.0.70" };
|
|
11
11
|
constructor(scope, id, props) {
|
|
12
12
|
super(scope, id, {
|
|
13
13
|
assumedBy: new aws_iam_1.ServicePrincipal("lambda.amazonaws.com"),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orcabus/platform-cdk-constructs",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.70",
|
|
4
4
|
"description": "CDK Package for OrcaBus infrastructure.",
|
|
5
5
|
"main": "index.ts",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -23,24 +23,24 @@
|
|
|
23
23
|
"organization": true
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@aws-cdk/aws-lambda-python-alpha": "2.
|
|
26
|
+
"@aws-cdk/aws-lambda-python-alpha": "2.213.0-alpha.0",
|
|
27
27
|
"@types/jest": "^29.5.14",
|
|
28
|
-
"@types/node": "^22.
|
|
29
|
-
"aws-cdk": "^2.
|
|
30
|
-
"cdk-
|
|
31
|
-
"
|
|
28
|
+
"@types/node": "^22.18.0",
|
|
29
|
+
"aws-cdk": "^2.1027.0",
|
|
30
|
+
"aws-cdk-lib": "2.213.0",
|
|
31
|
+
"cdk-nag": "^2.37.11",
|
|
32
32
|
"constructs": "10.4.2",
|
|
33
33
|
"jest": "^29.7.0",
|
|
34
34
|
"jsii": "^5.9.3",
|
|
35
35
|
"jsii-pacmak": "^1.113.0",
|
|
36
|
-
"publib": "^0.2.
|
|
36
|
+
"publib": "^0.2.1013",
|
|
37
37
|
"ts-jest": "^29.4.1",
|
|
38
|
-
"typedoc": "^0.28.
|
|
38
|
+
"typedoc": "^0.28.11",
|
|
39
39
|
"typedoc-plugin-markdown": "^4.8.1"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@aws-cdk/aws-lambda-python-alpha": "^2.
|
|
43
|
-
"aws-cdk-lib": "^2.
|
|
42
|
+
"@aws-cdk/aws-lambda-python-alpha": "^2.213.0-alpha.0",
|
|
43
|
+
"aws-cdk-lib": "^2.213.0",
|
|
44
44
|
"constructs": "^10.4.2"
|
|
45
45
|
},
|
|
46
46
|
"stability": "experimental",
|
|
@@ -15,7 +15,7 @@ const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
|
15
15
|
* to the provider framework.
|
|
16
16
|
*/
|
|
17
17
|
class ProviderFunction extends constructs_1.Construct {
|
|
18
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.provider.ProviderFunction", version: "0.0.
|
|
18
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.provider.ProviderFunction", version: "0.0.70" };
|
|
19
19
|
_function;
|
|
20
20
|
_response;
|
|
21
21
|
constructor(scope, id, props) {
|
|
@@ -23,7 +23,7 @@ exports.VPC_LOOKUP_PROPS = {
|
|
|
23
23
|
* Helper for looking up the shared OrcaBus VPC.
|
|
24
24
|
*/
|
|
25
25
|
class OrcaBusVpc {
|
|
26
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusVpc", version: "0.0.
|
|
26
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusVpc", version: "0.0.70" };
|
|
27
27
|
/**
|
|
28
28
|
* The shared VPC that is used by OrcaBus.
|
|
29
29
|
* @param scope
|
|
@@ -42,7 +42,7 @@ exports.SHARED_SECURITY_GROUP_NAME = "OrcaBusSharedComputeSecurityGroup";
|
|
|
42
42
|
* Helper for looking up the shared compute security group by name.
|
|
43
43
|
*/
|
|
44
44
|
class OrcaBusSharedComputeSecurityGroup {
|
|
45
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusSharedComputeSecurityGroup", version: "0.0.
|
|
45
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.networking.OrcaBusSharedComputeSecurityGroup", version: "0.0.70" };
|
|
46
46
|
/**
|
|
47
47
|
* The shared security group that is used by compute resources to access the database.
|
|
48
48
|
* @param scope
|
package/shared-config/s3.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { StageName } from "./accounts";
|
|
2
|
-
/**
|
|
3
|
-
* @deprecated Use PIPELINE_CACHE_BUCKET instead
|
|
4
|
-
*/
|
|
5
|
-
export declare const pipelineCacheBucket: Record<StageName, string>;
|
|
6
2
|
/**
|
|
7
3
|
* The default S3 bucket names used for pipeline data.
|
|
8
4
|
*/
|
|
9
5
|
export declare const PIPELINE_CACHE_BUCKET: Record<StageName, string>;
|
|
10
6
|
/**
|
|
11
|
-
*
|
|
7
|
+
* The reference data bucket
|
|
8
|
+
*/
|
|
9
|
+
export declare const REFERENCE_DATA_BUCKET = "reference-data-503977275616-ap-southeast-2";
|
|
10
|
+
/**
|
|
11
|
+
* The test data bucket
|
|
12
12
|
*/
|
|
13
|
-
export declare const
|
|
13
|
+
export declare const TEST_DATA_BUCKET = "test-data-503977275616-ap-southeast-2";
|
|
14
14
|
/**
|
|
15
15
|
* The default S3 prefixes used for pipeline data.
|
|
16
16
|
*/
|
package/shared-config/s3.js
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PIPELINE_CACHE_PREFIX = exports.
|
|
4
|
-
/**
|
|
5
|
-
* @deprecated Use PIPELINE_CACHE_BUCKET instead
|
|
6
|
-
*/
|
|
7
|
-
exports.pipelineCacheBucket = {
|
|
8
|
-
BETA: "pipeline-dev-cache-503977275616-ap-southeast-2",
|
|
9
|
-
GAMMA: "pipeline-stg-cache-503977275616-ap-southeast-2",
|
|
10
|
-
PROD: "pipeline-prod-cache-503977275616-ap-southeast-2",
|
|
11
|
-
};
|
|
3
|
+
exports.PIPELINE_CACHE_PREFIX = exports.TEST_DATA_BUCKET = exports.REFERENCE_DATA_BUCKET = exports.PIPELINE_CACHE_BUCKET = void 0;
|
|
12
4
|
/**
|
|
13
5
|
* The default S3 bucket names used for pipeline data.
|
|
14
6
|
*/
|
|
@@ -18,13 +10,13 @@ exports.PIPELINE_CACHE_BUCKET = {
|
|
|
18
10
|
PROD: "pipeline-prod-cache-503977275616-ap-southeast-2",
|
|
19
11
|
};
|
|
20
12
|
/**
|
|
21
|
-
*
|
|
13
|
+
* The reference data bucket
|
|
22
14
|
*/
|
|
23
|
-
exports.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
15
|
+
exports.REFERENCE_DATA_BUCKET = "reference-data-503977275616-ap-southeast-2";
|
|
16
|
+
/**
|
|
17
|
+
* The test data bucket
|
|
18
|
+
*/
|
|
19
|
+
exports.TEST_DATA_BUCKET = "test-data-503977275616-ap-southeast-2";
|
|
28
20
|
/**
|
|
29
21
|
* The default S3 prefixes used for pipeline data.
|
|
30
22
|
*/
|
|
@@ -33,4 +25,4 @@ exports.PIPELINE_CACHE_PREFIX = {
|
|
|
33
25
|
GAMMA: "byob-icav2/staging/",
|
|
34
26
|
PROD: "byob-icav2/production/",
|
|
35
27
|
};
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzMy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQThCO0lBQzlELElBQUksRUFBRSxnREFBZ0Q7SUFDdEQsS0FBSyxFQUFFLGdEQUFnRDtJQUN2RCxJQUFJLEVBQUUsaURBQWlEO0NBQ3hELENBQUE7QUFFRDs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQUcsNENBQTRDLENBQUE7QUFFakY7O0dBRUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHLHVDQUF1QyxDQUFBO0FBRXZFOztHQUVHO0FBQ1UsUUFBQSxxQkFBcUIsR0FBOEI7SUFDOUQsSUFBSSxFQUFFLHlCQUF5QjtJQUMvQixLQUFLLEVBQUUscUJBQXFCO0lBQzVCLElBQUksRUFBRSx3QkFBd0I7Q0FDL0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U3RhZ2VOYW1lfSBmcm9tIFwiLi9hY2NvdW50c1wiO1xuXG4vKipcbiAqIFRoZSBkZWZhdWx0IFMzIGJ1Y2tldCBuYW1lcyB1c2VkIGZvciBwaXBlbGluZSBkYXRhLlxuICovXG5leHBvcnQgY29uc3QgUElQRUxJTkVfQ0FDSEVfQlVDS0VUOiBSZWNvcmQ8U3RhZ2VOYW1lLCBzdHJpbmc+ID0ge1xuICBCRVRBOiBcInBpcGVsaW5lLWRldi1jYWNoZS01MDM5NzcyNzU2MTYtYXAtc291dGhlYXN0LTJcIixcbiAgR0FNTUE6IFwicGlwZWxpbmUtc3RnLWNhY2hlLTUwMzk3NzI3NTYxNi1hcC1zb3V0aGVhc3QtMlwiLFxuICBQUk9EOiBcInBpcGVsaW5lLXByb2QtY2FjaGUtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCIsXG59XG5cbi8qKlxuICogVGhlIHJlZmVyZW5jZSBkYXRhIGJ1Y2tldFxuICovXG5leHBvcnQgY29uc3QgUkVGRVJFTkNFX0RBVEFfQlVDS0VUID0gXCJyZWZlcmVuY2UtZGF0YS01MDM5NzcyNzU2MTYtYXAtc291dGhlYXN0LTJcIlxuXG4vKipcbiAqIFRoZSB0ZXN0IGRhdGEgYnVja2V0XG4gKi9cbmV4cG9ydCBjb25zdCBURVNUX0RBVEFfQlVDS0VUID0gXCJ0ZXN0LWRhdGEtNTAzOTc3Mjc1NjE2LWFwLXNvdXRoZWFzdC0yXCJcblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBTMyBwcmVmaXhlcyB1c2VkIGZvciBwaXBlbGluZSBkYXRhLlxuICovXG5leHBvcnQgY29uc3QgUElQRUxJTkVfQ0FDSEVfUFJFRklYOiBSZWNvcmQ8U3RhZ2VOYW1lLCBzdHJpbmc+ID0ge1xuICBCRVRBOiBcImJ5b2ItaWNhdjIvZGV2ZWxvcG1lbnQvXCIsXG4gIEdBTU1BOiBcImJ5b2ItaWNhdjIvc3RhZ2luZy9cIixcbiAgUFJPRDogXCJieW9iLWljYXYyL3Byb2R1Y3Rpb24vXCIsXG59XG5cbiJdfQ==
|
package/shared-config/slack.js
CHANGED
|
@@ -11,7 +11,7 @@ exports.SLACK_ALERTS_SNS_TOPIC = "AwsChatBotTopic-alerts";
|
|
|
11
11
|
* A helper class to construct the arn for the slack SNS topic.
|
|
12
12
|
*/
|
|
13
13
|
class SlackAlerts {
|
|
14
|
-
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.slack.SlackAlerts", version: "0.0.
|
|
14
|
+
static [JSII_RTTI_SYMBOL_1] = { fqn: "@orcabus/platform-cdk-constructs.sharedConfig.slack.SlackAlerts", version: "0.0.70" };
|
|
15
15
|
/**
|
|
16
16
|
* Format the ARN for the slack alerts SNS topic for the current stack.
|
|
17
17
|
* @param stack
|