@gammarers/aws-rds-database-auto-running-protection-stack 2.2.7 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -9,6 +9,7 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "@gammarers/aws-resource-naming": "^0.10.1",
12
+ "@gammarers/aws-sns-slack-message-lambda-subscription": "^0.2.4",
12
13
  "aws-cdk-lib": "^2.120.0",
13
14
  "constructs": "^10.0.5"
14
15
  },
@@ -109,6 +110,21 @@
109
110
  }
110
111
  }
111
112
  },
113
+ "@gammarers/aws-sns-slack-message-lambda-subscription": {
114
+ "targets": {
115
+ "dotnet": {
116
+ "namespace": "Gammarers.CDK.AWS",
117
+ "packageId": "Gammarers.CDK.AWS.SNSSlackMessageLambdaSubscription"
118
+ },
119
+ "js": {
120
+ "npm": "@gammarers/aws-sns-slack-message-lambda-subscription"
121
+ },
122
+ "python": {
123
+ "distName": "gammarers.aws-sns-slack-message-lambda-subscription",
124
+ "module": "gammarers.aws_sns_slack_message_lambda_subscription"
125
+ }
126
+ }
127
+ },
112
128
  "aws-cdk-lib": {
113
129
  "submodules": {
114
130
  "aws-cdk-lib.alexa_ask": {
@@ -3682,7 +3698,7 @@
3682
3698
  "stability": "stable"
3683
3699
  },
3684
3700
  "homepage": "https://github.com/gammarers/aws-rds-database-auto-running-protection-stack.git",
3685
- "jsiiVersion": "5.5.18 (build 78930f2)",
3701
+ "jsiiVersion": "5.7.4 (build fc2a28e)",
3686
3702
  "keywords": [
3687
3703
  "auto",
3688
3704
  "aws",
@@ -3703,7 +3719,7 @@
3703
3719
  },
3704
3720
  "name": "@gammarers/aws-rds-database-auto-running-protection-stack",
3705
3721
  "readme": {
3706
- "markdown": "# AWS RDS Database Auto Running Protection Stack\n\n[![GitHub](https://img.shields.io/github/license/gammarers/aws-rds-database-auto-running-protection-stack?style=flat-square)](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/blob/main/LICENSE)\n[![npm (scoped)](https://img.shields.io/npm/v/@gammarers/aws-rds-database-auto-running-protection-stack?style=flat-square)](https://www.npmjs.com/package/@gammarers/aws-rds-database-auto-running-protection-stack)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/gammarers/aws-rds-database-auto-running-protection-stack/release.yml?branch=main&label=release&style=flat-square)](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/actions/workflows/release.yml)\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/gammarers/aws-rds-database-auto-running-protection-stack?sort=semver&style=flat-square)](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/releases)\n\n[![View on Construct Hub](https://constructs.dev/badge?package=@gammarers/aws-rds-database-auto-running-protection-stack)](https://constructs.dev/packages/@gammarers/aws-rds-database-auto-running-protection-stack)\n\nThis constructor stack includes a function to automatically stop a database or cluster that will automatically start in 7 days.\n\n> [!WARNING]\n> v2.1.0:\n> Stack props add option resourceNamingOption\n> default ResourceNamingType.DEFAULT is cdk generated name\n> if you want to maintain compatibility with versions below `v2.1.0`, please include the following settings (ResourceNamingType.AUTO).\n> ```typescript\n> new RDSDatabaseAutoRunningProtectionStack(app, 'RDSDatabaseAutoRunningProtectionStack', {\n> stackName: 'rds-database-auto-running-protection-stack',\n> targetResource: {\n> tagKey: 'AutoRunningProtection',\n> tagValues: ['YES'],\n> },\n> resourceNamingOption: {\n> type: ResourceNamingType.AUTO, // HERE\n> },\n> });\n> ```\n\n## Resources\n\nThis construct creating resource list.\n\n- StepFunctions(StateMachine)\n- IAM Role (StepFunctions)\n- IAM Policy (StepFunctions)\n- EventBridge\n- IAM Role (EventBridge)\n\n## Install\n\n### TypeScript\n\n#### install by npm\n\n```shell\nnpm install @gammarers/aws-rds-database-auto-running-protection-stack\n```\n\n#### install by yarn\n\n```shell\nyarn add @gammarers/aws-rds-database-auto-running-protection-stack\n```\n\n#### install by pnpm\n\n```shell\npnpm add @gammarers/aws-rds-database-auto-running-protection-stack\n```\n\n#### install by bun\n\n```shell\nbun add @gammarers/aws-rds-database-auto-running-protection-stack\n```\n\n## Example\n\n```typescript\nimport { RDSDatabaseAutoRunningProtectionStack } from '@gammarers/aws-rds-database-auto-running-protection-stack';\n\nnew RDSDatabaseAutoRunningProtectionStack(app, 'RDSDatabaseAutoRunningProtectionStack', {\n stackName: 'rds-database-auto-running-protection-stack',\n targetResource: {\n tagKey: 'AutoRunningProtection',\n tagValues: ['YES'],\n },\n});\n\n```\n\n## License\n\nThis project is licensed under the Apache-2.0 License.\n"
3722
+ "markdown": "# AWS RDS Database Auto Running Protection Stack\n\n[![GitHub](https://img.shields.io/github/license/gammarers/aws-rds-database-auto-running-protection-stack?style=flat-square)](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/blob/main/LICENSE)\n[![npm (scoped)](https://img.shields.io/npm/v/@gammarers/aws-rds-database-auto-running-protection-stack?style=flat-square)](https://www.npmjs.com/package/@gammarers/aws-rds-database-auto-running-protection-stack)\n[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/gammarers/aws-rds-database-auto-running-protection-stack/release.yml?branch=main&label=release&style=flat-square)](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/actions/workflows/release.yml)\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/gammarers/aws-rds-database-auto-running-protection-stack?sort=semver&style=flat-square)](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/releases)\n\n[![View on Construct Hub](https://constructs.dev/badge?package=@gammarers/aws-rds-database-auto-running-protection-stack)](https://constructs.dev/packages/@gammarers/aws-rds-database-auto-running-protection-stack)\n\nThis constructor stack includes a function to automatically stop a database or cluster that will automatically start in 7 days.\n\n> [!WARNING]\n> v2.1.0:\n> Stack props add option resourceNamingOption\n> default ResourceNamingType.DEFAULT is cdk generated name\n> if you want to maintain compatibility with versions below `v2.1.0`, please include the following settings (ResourceNamingType.AUTO).\n> ```typescript\n> new RDSDatabaseAutoRunningProtectionStack(app, 'RDSDatabaseAutoRunningProtectionStack', {\n> stackName: 'rds-database-auto-running-protection-stack',\n> targetResource: {\n> tagKey: 'AutoRunningProtection',\n> tagValues: ['YES'],\n> },\n> resourceNamingOption: {\n> type: RDSDatabaseAutoRunningProtectionStackResourceNamingType.AUTO, // HERE\n> },\n> });\n> ```\n\n## Resources\n\nThis construct creating resource list.\n\n- StepFunctions(StateMachine)\n- IAM Role (StepFunctions)\n- IAM Policy (StepFunctions)\n- EventBridge\n- IAM Role (EventBridge)\n\n## Install\n\n### TypeScript\n\n#### install by npm\n\n```shell\nnpm install @gammarers/aws-rds-database-auto-running-protection-stack\n```\n\n#### install by yarn\n\n```shell\nyarn add @gammarers/aws-rds-database-auto-running-protection-stack\n```\n\n#### install by pnpm\n\n```shell\npnpm add @gammarers/aws-rds-database-auto-running-protection-stack\n```\n\n#### install by bun\n\n```shell\nbun add @gammarers/aws-rds-database-auto-running-protection-stack\n```\n\n## Example\n\n### Code\n\n```typescript\nimport { RDSDatabaseAutoRunningProtectionStack } from '@gammarers/aws-rds-database-auto-running-protection-stack';\n\nnew RDSDatabaseAutoRunningProtectionStack(app, 'RDSDatabaseAutoRunningProtectionStack', {\n stackName: 'rds-database-auto-running-protection-stack',\n targetResource: {\n tagKey: 'AutoRunningProtection',\n tagValues: ['YES'],\n },\n resourceNamingOption: {\n type: RDSDatabaseAutoRunningProtectionStackResourceNamingType.DEFAULT,\n },\n notifications: {\n emails: [ // \"Incoming Sample Message - EMAIL\"\n 'foo@example.com',\n 'bar@example.net',\n ],\n slack: { // \"Incoming Sample Message - Slack\"\n webhookSecretName: 'example/slack/webhook', // Slack webhook secret\n },\n },\n});\n```\n\n### Slack webhook secret\n\nPlease save it in AWS Secrets Manager in the following format.\n\nget your slack webhook url parts\n\n```text\nhttps://hooks.slack.com/services/<workspace>/<channel>/<whebook>\n```\n\n| SecretKey \t | SecretValue \t |\n|-------------|-----------------|\n| Workspace \t | \\<workspace\\> \t |\n| Channel \t | \\<channel\\> \t |\n| Webhook \t | \\<whebook\\> \t |\n\n## Incoming Sample Message\n\n### EMAIL\n\n![](./images/example-email.png)\n\n### Slack\n\n![](./images/example-slack.png)\n\n## License\n\nThis project is licensed under the Apache-2.0 License.\n"
3707
3723
  },
3708
3724
  "repository": {
3709
3725
  "type": "git",
@@ -3716,19 +3732,19 @@
3716
3732
  }
3717
3733
  },
3718
3734
  "types": {
3719
- "@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming": {
3735
+ "@gammarers/aws-rds-database-auto-running-protection-stack.Notifications": {
3720
3736
  "assembly": "@gammarers/aws-rds-database-auto-running-protection-stack",
3721
3737
  "datatype": true,
3722
3738
  "docs": {
3723
3739
  "stability": "stable"
3724
3740
  },
3725
- "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming",
3741
+ "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.Notifications",
3726
3742
  "kind": "interface",
3727
3743
  "locationInModule": {
3728
3744
  "filename": "src/index.ts",
3729
- "line": 29
3745
+ "line": 23
3730
3746
  },
3731
- "name": "CustomNaming",
3747
+ "name": "Notifications",
3732
3748
  "properties": [
3733
3749
  {
3734
3750
  "abstract": true,
@@ -3738,71 +3754,17 @@
3738
3754
  "immutable": true,
3739
3755
  "locationInModule": {
3740
3756
  "filename": "src/index.ts",
3741
- "line": 35
3742
- },
3743
- "name": "startClusterEventCatchRuleName",
3744
- "type": {
3745
- "primitive": "string"
3746
- }
3747
- },
3748
- {
3749
- "abstract": true,
3750
- "docs": {
3751
- "stability": "stable"
3752
- },
3753
- "immutable": true,
3754
- "locationInModule": {
3755
- "filename": "src/index.ts",
3756
- "line": 33
3757
- },
3758
- "name": "startEventCatchRuleRoleName",
3759
- "type": {
3760
- "primitive": "string"
3761
- }
3762
- },
3763
- {
3764
- "abstract": true,
3765
- "docs": {
3766
- "stability": "stable"
3767
- },
3768
- "immutable": true,
3769
- "locationInModule": {
3770
- "filename": "src/index.ts",
3771
- "line": 34
3772
- },
3773
- "name": "startInstanceEventCatchRuleName",
3774
- "type": {
3775
- "primitive": "string"
3776
- }
3777
- },
3778
- {
3779
- "abstract": true,
3780
- "docs": {
3781
- "stability": "stable"
3782
- },
3783
- "immutable": true,
3784
- "locationInModule": {
3785
- "filename": "src/index.ts",
3786
- "line": 31
3787
- },
3788
- "name": "stateMachineName",
3789
- "type": {
3790
- "primitive": "string"
3791
- }
3792
- },
3793
- {
3794
- "abstract": true,
3795
- "docs": {
3796
- "stability": "stable"
3797
- },
3798
- "immutable": true,
3799
- "locationInModule": {
3800
- "filename": "src/index.ts",
3801
- "line": 32
3757
+ "line": 24
3802
3758
  },
3803
- "name": "stateMachineRoleName",
3759
+ "name": "emails",
3760
+ "optional": true,
3804
3761
  "type": {
3805
- "primitive": "string"
3762
+ "collection": {
3763
+ "elementtype": {
3764
+ "primitive": "string"
3765
+ },
3766
+ "kind": "array"
3767
+ }
3806
3768
  }
3807
3769
  },
3808
3770
  {
@@ -3813,49 +3775,12 @@
3813
3775
  "immutable": true,
3814
3776
  "locationInModule": {
3815
3777
  "filename": "src/index.ts",
3816
- "line": 30
3817
- },
3818
- "name": "type",
3819
- "type": {
3820
- "fqn": "@gammarers/aws-resource-naming.ResourceNamingType"
3821
- }
3822
- }
3823
- ],
3824
- "symbolId": "src/index:CustomNaming"
3825
- },
3826
- "@gammarers/aws-rds-database-auto-running-protection-stack.Notifications": {
3827
- "assembly": "@gammarers/aws-rds-database-auto-running-protection-stack",
3828
- "datatype": true,
3829
- "docs": {
3830
- "stability": "stable"
3831
- },
3832
- "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.Notifications",
3833
- "kind": "interface",
3834
- "locationInModule": {
3835
- "filename": "src/index.ts",
3836
- "line": 18
3837
- },
3838
- "name": "Notifications",
3839
- "properties": [
3840
- {
3841
- "abstract": true,
3842
- "docs": {
3843
- "stability": "stable"
3844
- },
3845
- "immutable": true,
3846
- "locationInModule": {
3847
- "filename": "src/index.ts",
3848
- "line": 19
3778
+ "line": 25
3849
3779
  },
3850
- "name": "emails",
3780
+ "name": "slack",
3851
3781
  "optional": true,
3852
3782
  "type": {
3853
- "collection": {
3854
- "elementtype": {
3855
- "primitive": "string"
3856
- },
3857
- "kind": "array"
3858
- }
3783
+ "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.Slack"
3859
3784
  }
3860
3785
  }
3861
3786
  ],
@@ -3874,7 +3799,7 @@
3874
3799
  },
3875
3800
  "locationInModule": {
3876
3801
  "filename": "src/index.ts",
3877
- "line": 41
3802
+ "line": 47
3878
3803
  },
3879
3804
  "parameters": [
3880
3805
  {
@@ -3900,7 +3825,7 @@
3900
3825
  "kind": "class",
3901
3826
  "locationInModule": {
3902
3827
  "filename": "src/index.ts",
3903
- "line": 40
3828
+ "line": 46
3904
3829
  },
3905
3830
  "name": "RDSDatabaseAutoRunningProtectionStack",
3906
3831
  "symbolId": "src/index:RDSDatabaseAutoRunningProtectionStack"
@@ -3918,7 +3843,7 @@
3918
3843
  "kind": "interface",
3919
3844
  "locationInModule": {
3920
3845
  "filename": "src/index.ts",
3921
- "line": 22
3846
+ "line": 28
3922
3847
  },
3923
3848
  "name": "RDSDatabaseAutoRunningProtectionStackProps",
3924
3849
  "properties": [
@@ -3930,11 +3855,11 @@
3930
3855
  "immutable": true,
3931
3856
  "locationInModule": {
3932
3857
  "filename": "src/index.ts",
3933
- "line": 23
3858
+ "line": 29
3934
3859
  },
3935
3860
  "name": "targetResource",
3936
3861
  "type": {
3937
- "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty"
3862
+ "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource"
3938
3863
  }
3939
3864
  },
3940
3865
  {
@@ -3945,7 +3870,7 @@
3945
3870
  "immutable": true,
3946
3871
  "locationInModule": {
3947
3872
  "filename": "src/index.ts",
3948
- "line": 24
3873
+ "line": 30
3949
3874
  },
3950
3875
  "name": "enableRule",
3951
3876
  "optional": true,
@@ -3961,7 +3886,7 @@
3961
3886
  "immutable": true,
3962
3887
  "locationInModule": {
3963
3888
  "filename": "src/index.ts",
3964
- "line": 25
3889
+ "line": 31
3965
3890
  },
3966
3891
  "name": "notifications",
3967
3892
  "optional": true,
@@ -3977,7 +3902,7 @@
3977
3902
  "immutable": true,
3978
3903
  "locationInModule": {
3979
3904
  "filename": "src/index.ts",
3980
- "line": 26
3905
+ "line": 32
3981
3906
  },
3982
3907
  "name": "resourceNamingOption",
3983
3908
  "optional": true,
@@ -3991,7 +3916,7 @@
3991
3916
  "fqn": "@gammarers/aws-resource-naming.ResourceAutoNaming"
3992
3917
  },
3993
3918
  {
3994
- "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming"
3919
+ "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming"
3995
3920
  }
3996
3921
  ]
3997
3922
  }
@@ -4000,19 +3925,19 @@
4000
3925
  ],
4001
3926
  "symbolId": "src/index:RDSDatabaseAutoRunningProtectionStackProps"
4002
3927
  },
4003
- "@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty": {
3928
+ "@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming": {
4004
3929
  "assembly": "@gammarers/aws-rds-database-auto-running-protection-stack",
4005
3930
  "datatype": true,
4006
3931
  "docs": {
4007
3932
  "stability": "stable"
4008
3933
  },
4009
- "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty",
3934
+ "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming",
4010
3935
  "kind": "interface",
4011
3936
  "locationInModule": {
4012
3937
  "filename": "src/index.ts",
4013
- "line": 13
3938
+ "line": 35
4014
3939
  },
4015
- "name": "TargetResourceProperty",
3940
+ "name": "ResourceCustomNaming",
4016
3941
  "properties": [
4017
3942
  {
4018
3943
  "abstract": true,
@@ -4022,13 +3947,137 @@
4022
3947
  "immutable": true,
4023
3948
  "locationInModule": {
4024
3949
  "filename": "src/index.ts",
4025
- "line": 14
3950
+ "line": 41
4026
3951
  },
4027
- "name": "tagKey",
3952
+ "name": "startClusterEventCatchRuleName",
3953
+ "type": {
3954
+ "primitive": "string"
3955
+ }
3956
+ },
3957
+ {
3958
+ "abstract": true,
3959
+ "docs": {
3960
+ "stability": "stable"
3961
+ },
3962
+ "immutable": true,
3963
+ "locationInModule": {
3964
+ "filename": "src/index.ts",
3965
+ "line": 39
3966
+ },
3967
+ "name": "startEventCatchRuleRoleName",
3968
+ "type": {
3969
+ "primitive": "string"
3970
+ }
3971
+ },
3972
+ {
3973
+ "abstract": true,
3974
+ "docs": {
3975
+ "stability": "stable"
3976
+ },
3977
+ "immutable": true,
3978
+ "locationInModule": {
3979
+ "filename": "src/index.ts",
3980
+ "line": 40
3981
+ },
3982
+ "name": "startInstanceEventCatchRuleName",
3983
+ "type": {
3984
+ "primitive": "string"
3985
+ }
3986
+ },
3987
+ {
3988
+ "abstract": true,
3989
+ "docs": {
3990
+ "stability": "stable"
3991
+ },
3992
+ "immutable": true,
3993
+ "locationInModule": {
3994
+ "filename": "src/index.ts",
3995
+ "line": 37
3996
+ },
3997
+ "name": "stateMachineName",
4028
3998
  "type": {
4029
3999
  "primitive": "string"
4030
4000
  }
4031
4001
  },
4002
+ {
4003
+ "abstract": true,
4004
+ "docs": {
4005
+ "stability": "stable"
4006
+ },
4007
+ "immutable": true,
4008
+ "locationInModule": {
4009
+ "filename": "src/index.ts",
4010
+ "line": 38
4011
+ },
4012
+ "name": "stateMachineRoleName",
4013
+ "type": {
4014
+ "primitive": "string"
4015
+ }
4016
+ },
4017
+ {
4018
+ "abstract": true,
4019
+ "docs": {
4020
+ "stability": "stable"
4021
+ },
4022
+ "immutable": true,
4023
+ "locationInModule": {
4024
+ "filename": "src/index.ts",
4025
+ "line": 36
4026
+ },
4027
+ "name": "type",
4028
+ "type": {
4029
+ "fqn": "@gammarers/aws-resource-naming.ResourceNamingType"
4030
+ }
4031
+ }
4032
+ ],
4033
+ "symbolId": "src/index:ResourceCustomNaming"
4034
+ },
4035
+ "@gammarers/aws-rds-database-auto-running-protection-stack.Slack": {
4036
+ "assembly": "@gammarers/aws-rds-database-auto-running-protection-stack",
4037
+ "datatype": true,
4038
+ "docs": {
4039
+ "stability": "stable"
4040
+ },
4041
+ "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.Slack",
4042
+ "kind": "interface",
4043
+ "locationInModule": {
4044
+ "filename": "src/index.ts",
4045
+ "line": 19
4046
+ },
4047
+ "name": "Slack",
4048
+ "properties": [
4049
+ {
4050
+ "abstract": true,
4051
+ "docs": {
4052
+ "stability": "stable"
4053
+ },
4054
+ "immutable": true,
4055
+ "locationInModule": {
4056
+ "filename": "src/index.ts",
4057
+ "line": 20
4058
+ },
4059
+ "name": "webhookSecretName",
4060
+ "type": {
4061
+ "primitive": "string"
4062
+ }
4063
+ }
4064
+ ],
4065
+ "symbolId": "src/index:Slack"
4066
+ },
4067
+ "@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource": {
4068
+ "assembly": "@gammarers/aws-rds-database-auto-running-protection-stack",
4069
+ "datatype": true,
4070
+ "docs": {
4071
+ "stability": "stable"
4072
+ },
4073
+ "fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource",
4074
+ "kind": "interface",
4075
+ "locationInModule": {
4076
+ "filename": "src/index.ts",
4077
+ "line": 14
4078
+ },
4079
+ "name": "TargetResource",
4080
+ "properties": [
4032
4081
  {
4033
4082
  "abstract": true,
4034
4083
  "docs": {
@@ -4039,6 +4088,21 @@
4039
4088
  "filename": "src/index.ts",
4040
4089
  "line": 15
4041
4090
  },
4091
+ "name": "tagKey",
4092
+ "type": {
4093
+ "primitive": "string"
4094
+ }
4095
+ },
4096
+ {
4097
+ "abstract": true,
4098
+ "docs": {
4099
+ "stability": "stable"
4100
+ },
4101
+ "immutable": true,
4102
+ "locationInModule": {
4103
+ "filename": "src/index.ts",
4104
+ "line": 16
4105
+ },
4042
4106
  "name": "tagValues",
4043
4107
  "type": {
4044
4108
  "collection": {
@@ -4050,9 +4114,9 @@
4050
4114
  }
4051
4115
  }
4052
4116
  ],
4053
- "symbolId": "src/index:TargetResourceProperty"
4117
+ "symbolId": "src/index:TargetResource"
4054
4118
  }
4055
4119
  },
4056
- "version": "2.2.7",
4057
- "fingerprint": "CjRJ2KxglvqDdpdYN9hThgpfs+Qoo5C/c3i6nws9LSo="
4120
+ "version": "2.3.1",
4121
+ "fingerprint": "F7VvE49Itz9RrKodmW588iRZH8E0sWuT8cpmEumweFI="
4058
4122
  }
package/API.md CHANGED
@@ -879,89 +879,6 @@ Whether termination protection is enabled for this stack.
879
879
 
880
880
  ## Structs <a name="Structs" id="Structs"></a>
881
881
 
882
- ### CustomNaming <a name="CustomNaming" id="@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming"></a>
883
-
884
- #### Initializer <a name="Initializer" id="@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.Initializer"></a>
885
-
886
- ```typescript
887
- import { CustomNaming } from '@gammarers/aws-rds-database-auto-running-protection-stack'
888
-
889
- const customNaming: CustomNaming = { ... }
890
- ```
891
-
892
- #### Properties <a name="Properties" id="Properties"></a>
893
-
894
- | **Name** | **Type** | **Description** |
895
- | --- | --- | --- |
896
- | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.startClusterEventCatchRuleName">startClusterEventCatchRuleName</a></code> | <code>string</code> | *No description.* |
897
- | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.startEventCatchRuleRoleName">startEventCatchRuleRoleName</a></code> | <code>string</code> | *No description.* |
898
- | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.startInstanceEventCatchRuleName">startInstanceEventCatchRuleName</a></code> | <code>string</code> | *No description.* |
899
- | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.stateMachineName">stateMachineName</a></code> | <code>string</code> | *No description.* |
900
- | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.stateMachineRoleName">stateMachineRoleName</a></code> | <code>string</code> | *No description.* |
901
- | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.type">type</a></code> | <code>@gammarers/aws-resource-naming.ResourceNamingType</code> | *No description.* |
902
-
903
- ---
904
-
905
- ##### `startClusterEventCatchRuleName`<sup>Required</sup> <a name="startClusterEventCatchRuleName" id="@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.startClusterEventCatchRuleName"></a>
906
-
907
- ```typescript
908
- public readonly startClusterEventCatchRuleName: string;
909
- ```
910
-
911
- - *Type:* string
912
-
913
- ---
914
-
915
- ##### `startEventCatchRuleRoleName`<sup>Required</sup> <a name="startEventCatchRuleRoleName" id="@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.startEventCatchRuleRoleName"></a>
916
-
917
- ```typescript
918
- public readonly startEventCatchRuleRoleName: string;
919
- ```
920
-
921
- - *Type:* string
922
-
923
- ---
924
-
925
- ##### `startInstanceEventCatchRuleName`<sup>Required</sup> <a name="startInstanceEventCatchRuleName" id="@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.startInstanceEventCatchRuleName"></a>
926
-
927
- ```typescript
928
- public readonly startInstanceEventCatchRuleName: string;
929
- ```
930
-
931
- - *Type:* string
932
-
933
- ---
934
-
935
- ##### `stateMachineName`<sup>Required</sup> <a name="stateMachineName" id="@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.stateMachineName"></a>
936
-
937
- ```typescript
938
- public readonly stateMachineName: string;
939
- ```
940
-
941
- - *Type:* string
942
-
943
- ---
944
-
945
- ##### `stateMachineRoleName`<sup>Required</sup> <a name="stateMachineRoleName" id="@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.stateMachineRoleName"></a>
946
-
947
- ```typescript
948
- public readonly stateMachineRoleName: string;
949
- ```
950
-
951
- - *Type:* string
952
-
953
- ---
954
-
955
- ##### `type`<sup>Required</sup> <a name="type" id="@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming.property.type"></a>
956
-
957
- ```typescript
958
- public readonly type: ResourceNamingType;
959
- ```
960
-
961
- - *Type:* @gammarers/aws-resource-naming.ResourceNamingType
962
-
963
- ---
964
-
965
882
  ### Notifications <a name="Notifications" id="@gammarers/aws-rds-database-auto-running-protection-stack.Notifications"></a>
966
883
 
967
884
  #### Initializer <a name="Initializer" id="@gammarers/aws-rds-database-auto-running-protection-stack.Notifications.Initializer"></a>
@@ -977,6 +894,7 @@ const notifications: Notifications = { ... }
977
894
  | **Name** | **Type** | **Description** |
978
895
  | --- | --- | --- |
979
896
  | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.Notifications.property.emails">emails</a></code> | <code>string[]</code> | *No description.* |
897
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.Notifications.property.slack">slack</a></code> | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.Slack">Slack</a></code> | *No description.* |
980
898
 
981
899
  ---
982
900
 
@@ -990,6 +908,16 @@ public readonly emails: string[];
990
908
 
991
909
  ---
992
910
 
911
+ ##### `slack`<sup>Optional</sup> <a name="slack" id="@gammarers/aws-rds-database-auto-running-protection-stack.Notifications.property.slack"></a>
912
+
913
+ ```typescript
914
+ public readonly slack: Slack;
915
+ ```
916
+
917
+ - *Type:* <a href="#@gammarers/aws-rds-database-auto-running-protection-stack.Slack">Slack</a>
918
+
919
+ ---
920
+
993
921
  ### RDSDatabaseAutoRunningProtectionStackProps <a name="RDSDatabaseAutoRunningProtectionStackProps" id="@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps"></a>
994
922
 
995
923
  #### Initializer <a name="Initializer" id="@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.Initializer"></a>
@@ -1014,10 +942,10 @@ const rDSDatabaseAutoRunningProtectionStackProps: RDSDatabaseAutoRunningProtecti
1014
942
  | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.synthesizer">synthesizer</a></code> | <code>aws-cdk-lib.IStackSynthesizer</code> | Synthesis method to use while deploying this stack. |
1015
943
  | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.tags">tags</a></code> | <code>{[ key: string ]: string}</code> | Stack tags that will be applied to all the taggable resources and the stack itself. |
1016
944
  | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.terminationProtection">terminationProtection</a></code> | <code>boolean</code> | Whether to enable termination protection for this stack. |
1017
- | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.targetResource">targetResource</a></code> | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty">TargetResourceProperty</a></code> | *No description.* |
945
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.targetResource">targetResource</a></code> | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource">TargetResource</a></code> | *No description.* |
1018
946
  | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.enableRule">enableRule</a></code> | <code>boolean</code> | *No description.* |
1019
947
  | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.notifications">notifications</a></code> | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.Notifications">Notifications</a></code> | *No description.* |
1020
- | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.resourceNamingOption">resourceNamingOption</a></code> | <code>@gammarers/aws-resource-naming.ResourceDefaultNaming \| @gammarers/aws-resource-naming.ResourceAutoNaming \| <a href="#@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming">CustomNaming</a></code> | *No description.* |
948
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.resourceNamingOption">resourceNamingOption</a></code> | <code>@gammarers/aws-resource-naming.ResourceDefaultNaming \| @gammarers/aws-resource-naming.ResourceAutoNaming \| <a href="#@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming">ResourceCustomNaming</a></code> | *No description.* |
1021
949
 
1022
950
  ---
1023
951
 
@@ -1234,10 +1162,10 @@ Whether to enable termination protection for this stack.
1234
1162
  ##### `targetResource`<sup>Required</sup> <a name="targetResource" id="@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.targetResource"></a>
1235
1163
 
1236
1164
  ```typescript
1237
- public readonly targetResource: TargetResourceProperty;
1165
+ public readonly targetResource: TargetResource;
1238
1166
  ```
1239
1167
 
1240
- - *Type:* <a href="#@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty">TargetResourceProperty</a>
1168
+ - *Type:* <a href="#@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource">TargetResource</a>
1241
1169
 
1242
1170
  ---
1243
1171
 
@@ -1264,33 +1192,144 @@ public readonly notifications: Notifications;
1264
1192
  ##### `resourceNamingOption`<sup>Optional</sup> <a name="resourceNamingOption" id="@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.resourceNamingOption"></a>
1265
1193
 
1266
1194
  ```typescript
1267
- public readonly resourceNamingOption: ResourceDefaultNaming | ResourceAutoNaming | CustomNaming;
1195
+ public readonly resourceNamingOption: ResourceDefaultNaming | ResourceAutoNaming | ResourceCustomNaming;
1196
+ ```
1197
+
1198
+ - *Type:* @gammarers/aws-resource-naming.ResourceDefaultNaming | @gammarers/aws-resource-naming.ResourceAutoNaming | <a href="#@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming">ResourceCustomNaming</a>
1199
+
1200
+ ---
1201
+
1202
+ ### ResourceCustomNaming <a name="ResourceCustomNaming" id="@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming"></a>
1203
+
1204
+ #### Initializer <a name="Initializer" id="@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.Initializer"></a>
1205
+
1206
+ ```typescript
1207
+ import { ResourceCustomNaming } from '@gammarers/aws-rds-database-auto-running-protection-stack'
1208
+
1209
+ const resourceCustomNaming: ResourceCustomNaming = { ... }
1210
+ ```
1211
+
1212
+ #### Properties <a name="Properties" id="Properties"></a>
1213
+
1214
+ | **Name** | **Type** | **Description** |
1215
+ | --- | --- | --- |
1216
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.startClusterEventCatchRuleName">startClusterEventCatchRuleName</a></code> | <code>string</code> | *No description.* |
1217
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.startEventCatchRuleRoleName">startEventCatchRuleRoleName</a></code> | <code>string</code> | *No description.* |
1218
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.startInstanceEventCatchRuleName">startInstanceEventCatchRuleName</a></code> | <code>string</code> | *No description.* |
1219
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.stateMachineName">stateMachineName</a></code> | <code>string</code> | *No description.* |
1220
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.stateMachineRoleName">stateMachineRoleName</a></code> | <code>string</code> | *No description.* |
1221
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.type">type</a></code> | <code>@gammarers/aws-resource-naming.ResourceNamingType</code> | *No description.* |
1222
+
1223
+ ---
1224
+
1225
+ ##### `startClusterEventCatchRuleName`<sup>Required</sup> <a name="startClusterEventCatchRuleName" id="@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.startClusterEventCatchRuleName"></a>
1226
+
1227
+ ```typescript
1228
+ public readonly startClusterEventCatchRuleName: string;
1229
+ ```
1230
+
1231
+ - *Type:* string
1232
+
1233
+ ---
1234
+
1235
+ ##### `startEventCatchRuleRoleName`<sup>Required</sup> <a name="startEventCatchRuleRoleName" id="@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.startEventCatchRuleRoleName"></a>
1236
+
1237
+ ```typescript
1238
+ public readonly startEventCatchRuleRoleName: string;
1239
+ ```
1240
+
1241
+ - *Type:* string
1242
+
1243
+ ---
1244
+
1245
+ ##### `startInstanceEventCatchRuleName`<sup>Required</sup> <a name="startInstanceEventCatchRuleName" id="@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.startInstanceEventCatchRuleName"></a>
1246
+
1247
+ ```typescript
1248
+ public readonly startInstanceEventCatchRuleName: string;
1249
+ ```
1250
+
1251
+ - *Type:* string
1252
+
1253
+ ---
1254
+
1255
+ ##### `stateMachineName`<sup>Required</sup> <a name="stateMachineName" id="@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.stateMachineName"></a>
1256
+
1257
+ ```typescript
1258
+ public readonly stateMachineName: string;
1268
1259
  ```
1269
1260
 
1270
- - *Type:* @gammarers/aws-resource-naming.ResourceDefaultNaming | @gammarers/aws-resource-naming.ResourceAutoNaming | <a href="#@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming">CustomNaming</a>
1261
+ - *Type:* string
1262
+
1263
+ ---
1264
+
1265
+ ##### `stateMachineRoleName`<sup>Required</sup> <a name="stateMachineRoleName" id="@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.stateMachineRoleName"></a>
1266
+
1267
+ ```typescript
1268
+ public readonly stateMachineRoleName: string;
1269
+ ```
1270
+
1271
+ - *Type:* string
1272
+
1273
+ ---
1274
+
1275
+ ##### `type`<sup>Required</sup> <a name="type" id="@gammarers/aws-rds-database-auto-running-protection-stack.ResourceCustomNaming.property.type"></a>
1276
+
1277
+ ```typescript
1278
+ public readonly type: ResourceNamingType;
1279
+ ```
1280
+
1281
+ - *Type:* @gammarers/aws-resource-naming.ResourceNamingType
1282
+
1283
+ ---
1284
+
1285
+ ### Slack <a name="Slack" id="@gammarers/aws-rds-database-auto-running-protection-stack.Slack"></a>
1286
+
1287
+ #### Initializer <a name="Initializer" id="@gammarers/aws-rds-database-auto-running-protection-stack.Slack.Initializer"></a>
1288
+
1289
+ ```typescript
1290
+ import { Slack } from '@gammarers/aws-rds-database-auto-running-protection-stack'
1291
+
1292
+ const slack: Slack = { ... }
1293
+ ```
1294
+
1295
+ #### Properties <a name="Properties" id="Properties"></a>
1296
+
1297
+ | **Name** | **Type** | **Description** |
1298
+ | --- | --- | --- |
1299
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.Slack.property.webhookSecretName">webhookSecretName</a></code> | <code>string</code> | *No description.* |
1300
+
1301
+ ---
1302
+
1303
+ ##### `webhookSecretName`<sup>Required</sup> <a name="webhookSecretName" id="@gammarers/aws-rds-database-auto-running-protection-stack.Slack.property.webhookSecretName"></a>
1304
+
1305
+ ```typescript
1306
+ public readonly webhookSecretName: string;
1307
+ ```
1308
+
1309
+ - *Type:* string
1271
1310
 
1272
1311
  ---
1273
1312
 
1274
- ### TargetResourceProperty <a name="TargetResourceProperty" id="@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty"></a>
1313
+ ### TargetResource <a name="TargetResource" id="@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource"></a>
1275
1314
 
1276
- #### Initializer <a name="Initializer" id="@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty.Initializer"></a>
1315
+ #### Initializer <a name="Initializer" id="@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource.Initializer"></a>
1277
1316
 
1278
1317
  ```typescript
1279
- import { TargetResourceProperty } from '@gammarers/aws-rds-database-auto-running-protection-stack'
1318
+ import { TargetResource } from '@gammarers/aws-rds-database-auto-running-protection-stack'
1280
1319
 
1281
- const targetResourceProperty: TargetResourceProperty = { ... }
1320
+ const targetResource: TargetResource = { ... }
1282
1321
  ```
1283
1322
 
1284
1323
  #### Properties <a name="Properties" id="Properties"></a>
1285
1324
 
1286
1325
  | **Name** | **Type** | **Description** |
1287
1326
  | --- | --- | --- |
1288
- | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty.property.tagKey">tagKey</a></code> | <code>string</code> | *No description.* |
1289
- | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty.property.tagValues">tagValues</a></code> | <code>string[]</code> | *No description.* |
1327
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource.property.tagKey">tagKey</a></code> | <code>string</code> | *No description.* |
1328
+ | <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource.property.tagValues">tagValues</a></code> | <code>string[]</code> | *No description.* |
1290
1329
 
1291
1330
  ---
1292
1331
 
1293
- ##### `tagKey`<sup>Required</sup> <a name="tagKey" id="@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty.property.tagKey"></a>
1332
+ ##### `tagKey`<sup>Required</sup> <a name="tagKey" id="@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource.property.tagKey"></a>
1294
1333
 
1295
1334
  ```typescript
1296
1335
  public readonly tagKey: string;
@@ -1300,7 +1339,7 @@ public readonly tagKey: string;
1300
1339
 
1301
1340
  ---
1302
1341
 
1303
- ##### `tagValues`<sup>Required</sup> <a name="tagValues" id="@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty.property.tagValues"></a>
1342
+ ##### `tagValues`<sup>Required</sup> <a name="tagValues" id="@gammarers/aws-rds-database-auto-running-protection-stack.TargetResource.property.tagValues"></a>
1304
1343
 
1305
1344
  ```typescript
1306
1345
  public readonly tagValues: string[];
package/README.md CHANGED
@@ -22,7 +22,7 @@ This constructor stack includes a function to automatically stop a database or c
22
22
  > tagValues: ['YES'],
23
23
  > },
24
24
  > resourceNamingOption: {
25
- > type: ResourceNamingType.AUTO, // HERE
25
+ > type: RDSDatabaseAutoRunningProtectionStackResourceNamingType.AUTO, // HERE
26
26
  > },
27
27
  > });
28
28
  > ```
@@ -67,6 +67,8 @@ bun add @gammarers/aws-rds-database-auto-running-protection-stack
67
67
 
68
68
  ## Example
69
69
 
70
+ ### Code
71
+
70
72
  ```typescript
71
73
  import { RDSDatabaseAutoRunningProtectionStack } from '@gammarers/aws-rds-database-auto-running-protection-stack';
72
74
 
@@ -76,10 +78,47 @@ new RDSDatabaseAutoRunningProtectionStack(app, 'RDSDatabaseAutoRunningProtection
76
78
  tagKey: 'AutoRunningProtection',
77
79
  tagValues: ['YES'],
78
80
  },
81
+ resourceNamingOption: {
82
+ type: RDSDatabaseAutoRunningProtectionStackResourceNamingType.DEFAULT,
83
+ },
84
+ notifications: {
85
+ emails: [ // "Incoming Sample Message - EMAIL"
86
+ 'foo@example.com',
87
+ 'bar@example.net',
88
+ ],
89
+ slack: { // "Incoming Sample Message - Slack"
90
+ webhookSecretName: 'example/slack/webhook', // Slack webhook secret
91
+ },
92
+ },
79
93
  });
94
+ ```
95
+
96
+ ### Slack webhook secret
97
+
98
+ Please save it in AWS Secrets Manager in the following format.
99
+
100
+ get your slack webhook url parts
80
101
 
102
+ ```text
103
+ https://hooks.slack.com/services/<workspace>/<channel>/<whebook>
81
104
  ```
82
105
 
106
+ | SecretKey | SecretValue |
107
+ |-------------|-----------------|
108
+ | Workspace | \<workspace\> |
109
+ | Channel | \<channel\> |
110
+ | Webhook | \<whebook\> |
111
+
112
+ ## Incoming Sample Message
113
+
114
+ ### EMAIL
115
+
116
+ ![](./images/example-email.png)
117
+
118
+ ### Slack
119
+
120
+ ![](./images/example-slack.png)
121
+
83
122
  ## License
84
123
 
85
124
  This project is licensed under the Apache-2.0 License.
Binary file
Binary file
package/lib/index.d.ts CHANGED
@@ -1,29 +1,33 @@
1
- import { ResourceAutoNaming, ResourceDefaultNaming, ResourceNamingType } from '@gammarers/aws-resource-naming';
1
+ import { ResourceAutoNaming, ResourceDefaultNaming, ResourceNamingType as RDSDatabaseAutoRunningProtectionStackResourceNamingType } from '@gammarers/aws-resource-naming';
2
2
  import { Stack, StackProps } from 'aws-cdk-lib';
3
3
  import { Construct } from 'constructs';
4
- export { ResourceAutoNaming, ResourceDefaultNaming, ResourceNamingType as RDSDatabaseAutoRunningProtectionStackResourceNamingType };
5
- export interface TargetResourceProperty {
4
+ export { RDSDatabaseAutoRunningProtectionStackResourceNamingType };
5
+ export interface TargetResource {
6
6
  readonly tagKey: string;
7
7
  readonly tagValues: string[];
8
8
  }
9
+ export interface Slack {
10
+ readonly webhookSecretName: string;
11
+ }
9
12
  export interface Notifications {
10
13
  readonly emails?: string[];
14
+ readonly slack?: Slack;
11
15
  }
12
16
  export interface RDSDatabaseAutoRunningProtectionStackProps extends StackProps {
13
- readonly targetResource: TargetResourceProperty;
17
+ readonly targetResource: TargetResource;
14
18
  readonly enableRule?: boolean;
15
19
  readonly notifications?: Notifications;
16
20
  readonly resourceNamingOption?: ResourceNamingOption;
17
21
  }
18
- export interface CustomNaming {
19
- readonly type: ResourceNamingType.CUSTOM;
22
+ export interface ResourceCustomNaming {
23
+ readonly type: RDSDatabaseAutoRunningProtectionStackResourceNamingType.CUSTOM;
20
24
  readonly stateMachineName: string;
21
25
  readonly stateMachineRoleName: string;
22
26
  readonly startEventCatchRuleRoleName: string;
23
27
  readonly startInstanceEventCatchRuleName: string;
24
28
  readonly startClusterEventCatchRuleName: string;
25
29
  }
26
- export type ResourceNamingOption = ResourceDefaultNaming | ResourceAutoNaming | CustomNaming;
30
+ export type ResourceNamingOption = ResourceDefaultNaming | ResourceAutoNaming | ResourceCustomNaming;
27
31
  export declare class RDSDatabaseAutoRunningProtectionStack extends Stack {
28
32
  constructor(scope: Construct, id: string, props: RDSDatabaseAutoRunningProtectionStackProps);
29
33
  }
package/lib/index.js CHANGED
@@ -5,6 +5,7 @@ exports.RDSDatabaseAutoRunningProtectionStack = exports.RDSDatabaseAutoRunningPr
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const aws_resource_naming_1 = require("@gammarers/aws-resource-naming");
7
7
  Object.defineProperty(exports, "RDSDatabaseAutoRunningProtectionStackResourceNamingType", { enumerable: true, get: function () { return aws_resource_naming_1.ResourceNamingType; } });
8
+ const aws_sns_slack_message_lambda_subscription_1 = require("@gammarers/aws-sns-slack-message-lambda-subscription");
8
9
  const aws_cdk_lib_1 = require("aws-cdk-lib");
9
10
  const events = require("aws-cdk-lib/aws-events");
10
11
  const targets = require("aws-cdk-lib/aws-events-targets");
@@ -36,6 +37,13 @@ class RDSDatabaseAutoRunningProtectionStack extends aws_cdk_lib_1.Stack {
36
37
  for (const email of emails) {
37
38
  topic.addSubscription(new subscriptions.EmailSubscription(email));
38
39
  }
40
+ // 👇 Subscription slack webhook
41
+ if (props.notifications?.slack) {
42
+ new aws_sns_slack_message_lambda_subscription_1.SNSSlackMessageLambdaSubscription(this, 'SNSSlackMessageLambdaSubscription', {
43
+ topic,
44
+ slackWebhookSecretName: props.notifications.slack.webhookSecretName,
45
+ });
46
+ }
39
47
  // 👇 StepFunctions
40
48
  const stateMachine = new protection_state_machine_1.ProtectionStateMachine(this, 'StateMachine', {
41
49
  stateMachineName: names.stateMachineName,
@@ -127,5 +135,5 @@ class RDSDatabaseAutoRunningProtectionStack extends aws_cdk_lib_1.Stack {
127
135
  }
128
136
  exports.RDSDatabaseAutoRunningProtectionStack = RDSDatabaseAutoRunningProtectionStack;
129
137
  _a = JSII_RTTI_SYMBOL_1;
130
- RDSDatabaseAutoRunningProtectionStack[_a] = { fqn: "@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStack", version: "2.2.7" };
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBK0g7QUFVckQsd0lBVk4sd0NBQWtCLE9BVTJDO0FBVGpJLDZDQUF1RDtBQUN2RCxpREFBaUQ7QUFDakQsMERBQTBEO0FBQzFELDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MsbUVBQW1FO0FBRW5FLG1GQUE4RTtBQStCOUUsTUFBYSxxQ0FBc0MsU0FBUSxtQkFBSztJQUM5RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlEO1FBQ3pGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLG1DQUFtQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxvQ0FBYyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsbUJBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksbUJBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JHLGtCQUFrQjtRQUNsQixNQUFNLFVBQVUsR0FBRztZQUNqQixnQkFBZ0IsRUFBRSw0QkFBNEIsTUFBTSxnQkFBZ0I7WUFDcEUsb0JBQW9CLEVBQUUsMENBQTBDLE1BQU0sT0FBTztZQUM3RSwyQkFBMkIsRUFBRSxtQ0FBbUMsTUFBTSxPQUFPO1lBQzdFLCtCQUErQixFQUFFLHVDQUF1QyxNQUFNLE9BQU87WUFDckYsOEJBQThCLEVBQUUsc0NBQXNDLE1BQU0sT0FBTztTQUNwRixDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsb0NBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxvQkFBMkQsQ0FBQyxDQUFDO1FBRW5ILGlDQUFpQztRQUNqQyxNQUFNLEtBQUssR0FBYyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQ2hFLFNBQVMsRUFBRSxLQUFLLENB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvdXJjZUF1dG9OYW1pbmcsIFJlc291cmNlRGVmYXVsdE5hbWluZywgUmVzb3VyY2VOYW1pbmcsIFJlc291cmNlTmFtaW5nVHlwZSB9IGZyb20gJ0BnYW1tYXJlcnMvYXdzLXJlc291cmNlLW5hbWluZyc7XG5pbXBvcnQgeyBOYW1lcywgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgKiBhcyB0YXJnZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgKiBhcyBzdWJzY3JpcHRpb25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMtc3Vic2NyaXB0aW9ucyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IFByb3RlY3Rpb25TdGF0ZU1hY2hpbmUgfSBmcm9tICcuL3Jlc291cmNlcy9wcm90ZWN0aW9uLXN0YXRlLW1hY2hpbmUnO1xuXG5leHBvcnQgeyBSZXNvdXJjZUF1dG9OYW1pbmcsIFJlc291cmNlRGVmYXVsdE5hbWluZywgUmVzb3VyY2VOYW1pbmdUeXBlIGFzIFJEU0RhdGFiYXNlQXV0b1J1bm5pbmdQcm90ZWN0aW9uU3RhY2tSZXNvdXJjZU5hbWluZ1R5cGUgfTtcblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRSZXNvdXJjZVByb3BlcnR5IHtcbiAgcmVhZG9ubHkgdGFnS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhZ1ZhbHVlczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9ucyB7XG4gIHJlYWRvbmx5IGVtYWlscz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJEU0RhdGFiYXNlQXV0b1J1bm5pbmdQcm90ZWN0aW9uU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICByZWFkb25seSB0YXJnZXRSZXNvdXJjZTogVGFyZ2V0UmVzb3VyY2VQcm9wZXJ0eTtcbiAgcmVhZG9ubHkgZW5hYmxlUnVsZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbnM/OiBOb3RpZmljYXRpb25zO1xuICByZWFkb25seSByZXNvdXJjZU5hbWluZ09wdGlvbj86IFJlc291cmNlTmFtaW5nT3B0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU5hbWluZyB7XG4gIHJlYWRvbmx5IHR5cGU6IFJlc291cmNlTmFtaW5nVHlwZS5DVVNUT007XG4gIHJlYWRvbmx5IHN0YXRlTWFjaGluZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhdGVNYWNoaW5lUm9sZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhcnRFdmVudENhdGNoUnVsZVJvbGVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YXJ0SW5zdGFuY2VFdmVudENhdGNoUnVsZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhcnRDbHVzdGVyRXZlbnRDYXRjaFJ1bGVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlTmFtaW5nT3B0aW9uID0gUmVzb3VyY2VEZWZhdWx0TmFtaW5nIHwgUmVzb3VyY2VBdXRvTmFtaW5nIHwgQ3VzdG9tTmFtaW5nO1xuXG5leHBvcnQgY2xhc3MgUkRTRGF0YWJhc2VBdXRvUnVubmluZ1Byb3RlY3Rpb25TdGFjayBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJEU0RhdGFiYXNlQXV0b1J1bm5pbmdQcm90ZWN0aW9uU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgLy8g8J+RhyBDcmVhdGUgcmFuZG9tIDggbGVuZ3RoIHN0cmluZ1xuICAgIGNvbnN0IHJhbmRvbSA9IFJlc291cmNlTmFtaW5nLmNyZWF0ZVJhbmRvbVN0cmluZyhgJHtOYW1lcy51bmlxdWVJZChzY29wZSl9LiR7TmFtZXMudW5pcXVlSWQodGhpcyl9YCk7XG4gICAgLy8g8J+RhyBBdXRvIG5hZW1pbmdcbiAgICBjb25zdCBhdXRvTmFtaW5nID0ge1xuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogYHJkcy1kYi1hdXRvLXJ1bm5pbmctc3RvcC0ke3JhbmRvbX0tc3RhdGUtbWFjaGluZWAsXG4gICAgICBzdGF0ZU1hY2hpbmVSb2xlTmFtZTogYHJkcy1kYi1hdXRvLXJ1bm5pbmctc3RvcC1zdGF0ZS1tYWNoaW5lLSR7cmFuZG9tfS1yb2xlYCxcbiAgICAgIHN0YXJ0RXZlbnRDYXRjaFJ1bGVSb2xlTmFtZTogYHJkcy1kYi1hdXRvLXJ1bm5pbmctY2F0Y2gtZXZlbnQtJHtyYW5kb219LXJvbGVgLFxuICAgICAgc3RhcnRJbnN0YW5jZUV2ZW50Q2F0Y2hSdWxlTmFtZTogYHJkcy1kYi1pbnN0YW5jZS1ydW5uaW5nLWV2ZW50LWNhdGNoLSR7cmFuZG9tfS1ydWxlYCxcbiAgICAgIHN0YXJ0Q2x1c3RlckV2ZW50Q2F0Y2hSdWxlTmFtZTogYHJkcy1kYi1jbHVzdGVyLXJ1bm5pbmctZXZlbnQtY2F0Y2gtJHtyYW5kb219LXJ1bGVgLFxuICAgIH07XG4gICAgY29uc3QgbmFtZXMgPSBSZXNvdXJjZU5hbWluZy5uYW1pbmcoYXV0b05hbWluZywgcHJvcHMucmVzb3VyY2VOYW1pbmdPcHRpb24gYXMgUmVzb3VyY2VOYW1pbmcuUmVzb3VyY2VOYW1pbmdPcHRpb24pO1xuXG4gICAgLy8g8J+RhyBTTlMgVG9waWMgZm9yIG5vdGlmaWNhdGlvbnNcbiAgICBjb25zdCB0b3BpYzogc25zLlRvcGljID0gbmV3IHNucy5Ub3BpYyh0aGlzLCAnTm90aWZpY2F0aW9uVG9waWMnLCB7XG4gICAgICB0b3BpY05hbWU6IG5hbWVzLm5vdGlmaWNhdGlvblRvcGljTmFtZSxcbiAgICAgIGRpc3BsYXlOYW1lOiBuYW1lcy5ub3RpZmljYXRpb25Ub3BpY0Rpc3BsYXlOYW1lLFxuICAgIH0pO1xuXG4gICAgLy8g8J+RhyBTdWJzY3JpYmUgYW4gZW1haWwgZW5kcG9pbnQgdG8gdGhlIHRvcGljXG4gICAgY29uc3QgZW1haWxzID0gcHJvcHMubm90aWZpY2F0aW9ucz8uZW1haWxzID8/IFtdO1xuICAgIGZvciAoY29uc3QgZW1haWwgb2YgZW1haWxzKSB7XG4gICAgICB0b3BpYy5hZGRTdWJzY3JpcHRpb24obmV3IHN1YnNjcmlwdGlvbnMuRW1haWxTdWJzY3JpcHRpb24oZW1haWwpKTtcbiAgICB9XG5cbiAgICAvLyDwn5GHIFN0ZXBGdW5jdGlvbnNcbiAgICBjb25zdCBzdGF0ZU1hY2hpbmUgPSBuZXcgUHJvdGVjdGlvblN0YXRlTWFjaGluZSh0aGlzLCAnU3RhdGVNYWNoaW5lJywge1xuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogbmFtZXMuc3RhdGVNYWNoaW5lTmFtZSxcbiAgICAgIG5vdGlmaWNhdGlvblRvcGljOiB0b3BpYyxcbiAgICB9KTtcbiAgICBpZiAobmFtZXMuc3RhdGVNYWNoaW5lUm9sZU5hbWUpIHtcbiAgICAgIGNvbnN0IHJvbGUgPSBzdGF0ZU1hY2hpbmUubm9kZS5maW5kQ2hpbGQoJ1JvbGUnKSBhcyBpYW0uUm9sZTtcbiAgICAgIGNvbnN0IGNmblJvbGUgPSByb2xlLm5vZGUuZGVmYXVsdENoaWxkIGFzIGlhbS5DZm5Sb2xlO1xuICAgICAgY2ZuUm9sZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdSb2xlTmFtZScsIG5hbWVzLnN0YXRlTWFjaGluZVJvbGVOYW1lKTtcbiAgICAgIGNmblJvbGUuYWRkUHJvcGVydHlPdmVycmlkZSgnRGVzY3JpcHRpb24nLCAncmRzIGRhdGFiYXNlIGF1dG8gcnVubmluZyBzdG9wIHN0YXRlIG1hY2hpbmUgcm9sZS4nKTtcbiAgICAgIGNvbnN0IHBvbGljeSA9IHJvbGUubm9kZS5maW5kQ2hpbGQoJ0RlZmF1bHRQb2xpY3knKSBhcyBpYW0uUG9saWN5O1xuICAgICAgY29uc3QgY2ZuUG9saWN5ID0gcG9saWN5Lm5vZGUuZGVmYXVsdENoaWxkIGFzIGlhbS5DZm5Qb2xpY3k7XG4gICAgICBjZm5Qb2xpY3kuYWRkUHJvcGVydHlPdmVycmlkZSgnUG9saWN5TmFtZScsIGByZHMtZGItYXV0by1ydW5uaW5nLXN0b3Atc3RhdGUtbWFjaGluZS0ke3JhbmRvbX0tcG9saWN5YCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXhlY1JvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ0V2ZW50RXhlY1JvbGUnLCB7XG4gICAgICByb2xlTmFtZTogbmFtZXMuc3RhcnRFdmVudENhdGNoUnVsZVJvbGVOYW1lLFxuICAgICAgZGVzY3JpcHRpb246ICdkYiBhdXRvIHN0YXJ0IGNhdGNoIHdpdGggc3RhcnQgc3RhdGUgbWFjaGluZSBldmVudCByb2xlJyxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdldmVudHMuYW1hem9uYXdzLmNvbScpLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgJ3N0YXRlLW1hY2hpbmUtZXhlYyc6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3N0YXRlczpTdGFydEV4ZWN1dGlvbicsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgICAgIHN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBlbmFibGVSdWxlOiBib29sZWFuID0gKCgpID0+IHtcbiAgICAgIHJldHVybiBwcm9wcy5lbmFibGVSdWxlID09PSB1bmRlZmluZWQgfHwgcHJvcHMuZW5hYmxlUnVsZTtcbiAgICB9KSgpO1xuXG4gICAgLy8g8J+RhyBFdmVudEJyaWRnZSBieSBSRFMgREIgSW5zdGFuY2UgQXV0byBTdGFydCBFdmVudFxuICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnREJJbnN0YW5jZUV2ZW50Jywge1xuICAgICAgcnVsZU5hbWU6IG5hbWVzLnN0YXJ0SW5zdGFuY2VFdmVudENhdGNoUnVsZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogJ3JkcyBkYiBpbnN0YW5jZSBydW5uaW5nIGV2ZW50IGNhdGNoIHJ1bGUuJyxcbiAgICAgIGVuYWJsZWQ6IGVuYWJsZVJ1bGUsXG4gICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgc291cmNlOiBbJ2F3cy5yZHMnXSxcbiAgICAgICAgZGV0YWlsVHlwZTogWydSRFMgREIgSW5zdGFuY2UgRXZlbnQnXSxcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgRXZlbnRJRDogWydSRFMtRVZFTlQtMDE1NCddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgbmV3IHRhcmdldHMuU2ZuU3RhdGVNYWNoaW5lKHN0YXRlTWFjaGluZSwge1xuICAgICAgICAgIHJvbGU6IGV4ZWNSb2xlLFxuICAgICAgICAgIGlucHV0OiBldmVudHMuUnVsZVRhcmdldElucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50cy5FdmVudEZpZWxkLmZyb21QYXRoKCckJyksXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgdGFnS2V5OiBwcm9wcy50YXJnZXRSZXNvdXJjZS50YWdLZXksXG4gICAgICAgICAgICAgIHRhZ1ZhbHVlczogcHJvcHMudGFyZ2V0UmVzb3VyY2UudGFnVmFsdWVzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8g8J+RhyBFdmVudEJyaWRnZSBieSBSRFMgREIgSW5zdGFuY2UgQXV0byBTdGFydCBFdmVudFxuICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnREJDbHVzdGVyRXZlbnQnLCB7XG4gICAgICBydWxlTmFtZTogbmFtZXMuc3RhcnRDbHVzdGVyRXZlbnRDYXRjaFJ1bGVOYW1lLFxuICAgICAgZGVzY3JpcHRpb246ICdkYiBjbHVzdGVyIHJ1bm5pbmcgZXZlbnQgY2F0Y2ggcnVsZScsXG4gICAgICBlbmFibGVkOiBlbmFibGVSdWxlLFxuICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgIHNvdXJjZTogWydhd3MucmRzJ10sXG4gICAgICAgIGRldGFpbFR5cGU6IFsnUkRTIERCIENsdXN0ZXIgRXZlbnQnXSxcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgRXZlbnRJRDogWydSRFMtRVZFTlQtMDE1MyddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgbmV3IHRhcmdldHMuU2ZuU3RhdGVNYWNoaW5lKHN0YXRlTWFjaGluZSwge1xuICAgICAgICAgIHJvbGU6IGV4ZWNSb2xlLFxuICAgICAgICAgIGlucHV0OiBldmVudHMuUnVsZVRhcmdldElucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50cy5FdmVudEZpZWxkLmZyb21QYXRoKCckJyksXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgdGFnS2V5OiBwcm9wcy50YXJnZXRSZXNvdXJjZS50YWdLZXksXG4gICAgICAgICAgICAgIHRhZ1ZhbHVlczogcHJvcHMudGFyZ2V0UmVzb3VyY2UudGFnVmFsdWVzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59Il19
138
+ RDSDatabaseAutoRunningProtectionStack[_a] = { fqn: "@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStack", version: "2.3.1" };
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBMEw7QUFXakwsd0lBWGlGLHdDQUF1RCxPQVdqRjtBQVZoRSxvSEFBeUc7QUFDekcsNkNBQXVEO0FBQ3ZELGlEQUFpRDtBQUNqRCwwREFBMEQ7QUFDMUQsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyxtRUFBbUU7QUFFbkUsbUZBQThFO0FBb0M5RSxNQUFhLHFDQUFzQyxTQUFRLG1CQUFLO0lBQzlELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUQ7UUFDekYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsbUNBQW1DO1FBQ25DLE1BQU0sTUFBTSxHQUFHLG9DQUFjLENBQUMsa0JBQWtCLENBQUMsR0FBRyxtQkFBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxtQkFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckcsa0JBQWtCO1FBQ2xCLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLGdCQUFnQixFQUFFLDRCQUE0QixNQUFNLGdCQUFnQjtZQUNwRSxvQkFBb0IsRUFBRSwwQ0FBMEMsTUFBTSxPQUFPO1lBQzdFLDJCQUEyQixFQUFFLG1DQUFtQyxNQUFNLE9BQU87WUFDN0UsK0JBQStCLEVBQUUsdUNBQXVDLE1BQU0sT0FBTztZQUNyRiw4QkFBOEIsRUFBRSxzQ0FBc0MsTUFBTSxPQUFPO1NBQ3BGLENBQUM7UUFDRixNQUFNLEtBQUssR0FBRyxvQ0FBYyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLG9CQUEyRCxDQUFDLENBQUM7UUFFbkgsaUNBQWlDO1FBQ2pDLE1BQU0sS0FBSyxHQUFjLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDaEUsU0FB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TSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO3dCQUN0QyxNQUFNLEVBQUU7NEJBQ04sTUFBTSxFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTTs0QkFDbkMsU0FBUyxFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBUzt5QkFDMUM7cUJBQ0YsQ0FBQztpQkFDSCxDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQS9ISCxzRkFnSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvdXJjZUF1dG9OYW1pbmcsIFJlc291cmNlRGVmYXVsdE5hbWluZywgUmVzb3VyY2VOYW1pbmcsIFJlc291cmNlTmFtaW5nVHlwZSBhcyBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrUmVzb3VyY2VOYW1pbmdUeXBlIH0gZnJvbSAnQGdhbW1hcmVycy9hd3MtcmVzb3VyY2UtbmFtaW5nJztcbmltcG9ydCB7IFNOU1NsYWNrTWVzc2FnZUxhbWJkYVN1YnNjcmlwdGlvbiB9IGZyb20gJ0BnYW1tYXJlcnMvYXdzLXNucy1zbGFjay1tZXNzYWdlLWxhbWJkYS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgTmFtZXMsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgc3Vic2NyaXB0aW9ucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zLXN1YnNjcmlwdGlvbnMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBQcm90ZWN0aW9uU3RhdGVNYWNoaW5lIH0gZnJvbSAnLi9yZXNvdXJjZXMvcHJvdGVjdGlvbi1zdGF0ZS1tYWNoaW5lJztcblxuZXhwb3J0IHsgUkRTRGF0YWJhc2VBdXRvUnVubmluZ1Byb3RlY3Rpb25TdGFja1Jlc291cmNlTmFtaW5nVHlwZSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFJlc291cmNlIHtcbiAgcmVhZG9ubHkgdGFnS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhZ1ZhbHVlczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhY2sge1xuICByZWFkb25seSB3ZWJob29rU2VjcmV0TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbnMge1xuICByZWFkb25seSBlbWFpbHM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc2xhY2s/OiBTbGFjaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgcmVhZG9ubHkgdGFyZ2V0UmVzb3VyY2U6IFRhcmdldFJlc291cmNlO1xuICByZWFkb25seSBlbmFibGVSdWxlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9ucz86IE5vdGlmaWNhdGlvbnM7XG4gIHJlYWRvbmx5IHJlc291cmNlTmFtaW5nT3B0aW9uPzogUmVzb3VyY2VOYW1pbmdPcHRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VDdXN0b21OYW1pbmcge1xuICByZWFkb25seSB0eXBlOiBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrUmVzb3VyY2VOYW1pbmdUeXBlLkNVU1RPTTtcbiAgcmVhZG9ubHkgc3RhdGVNYWNoaW5lTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzdGF0ZU1hY2hpbmVSb2xlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzdGFydEV2ZW50Q2F0Y2hSdWxlUm9sZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhcnRJbnN0YW5jZUV2ZW50Q2F0Y2hSdWxlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzdGFydENsdXN0ZXJFdmVudENhdGNoUnVsZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VOYW1pbmdPcHRpb24gPSBSZXNvdXJjZURlZmF1bHROYW1pbmcgfCBSZXNvdXJjZUF1dG9OYW1pbmcgfCBSZXNvdXJjZUN1c3RvbU5hbWluZztcblxuZXhwb3J0IGNsYXNzIFJEU0RhdGFiYXNlQXV0b1J1bm5pbmdQcm90ZWN0aW9uU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIC8vIPCfkYcgQ3JlYXRlIHJhbmRvbSA4IGxlbmd0aCBzdHJpbmdcbiAgICBjb25zdCByYW5kb20gPSBSZXNvdXJjZU5hbWluZy5jcmVhdGVSYW5kb21TdHJpbmcoYCR7TmFtZXMudW5pcXVlSWQoc2NvcGUpfS4ke05hbWVzLnVuaXF1ZUlkKHRoaXMpfWApO1xuICAgIC8vIPCfkYcgQXV0byBuYWVtaW5nXG4gICAgY29uc3QgYXV0b05hbWluZyA9IHtcbiAgICAgIHN0YXRlTWFjaGluZU5hbWU6IGByZHMtZGItYXV0by1ydW5uaW5nLXN0b3AtJHtyYW5kb219LXN0YXRlLW1hY2hpbmVgLFxuICAgICAgc3RhdGVNYWNoaW5lUm9sZU5hbWU6IGByZHMtZGItYXV0by1ydW5uaW5nLXN0b3Atc3RhdGUtbWFjaGluZS0ke3JhbmRvbX0tcm9sZWAsXG4gICAgICBzdGFydEV2ZW50Q2F0Y2hSdWxlUm9sZU5hbWU6IGByZHMtZGItYXV0by1ydW5uaW5nLWNhdGNoLWV2ZW50LSR7cmFuZG9tfS1yb2xlYCxcbiAgICAgIHN0YXJ0SW5zdGFuY2VFdmVudENhdGNoUnVsZU5hbWU6IGByZHMtZGItaW5zdGFuY2UtcnVubmluZy1ldmVudC1jYXRjaC0ke3JhbmRvbX0tcnVsZWAsXG4gICAgICBzdGFydENsdXN0ZXJFdmVudENhdGNoUnVsZU5hbWU6IGByZHMtZGItY2x1c3Rlci1ydW5uaW5nLWV2ZW50LWNhdGNoLSR7cmFuZG9tfS1ydWxlYCxcbiAgICB9O1xuICAgIGNvbnN0IG5hbWVzID0gUmVzb3VyY2VOYW1pbmcubmFtaW5nKGF1dG9OYW1pbmcsIHByb3BzLnJlc291cmNlTmFtaW5nT3B0aW9uIGFzIFJlc291cmNlTmFtaW5nLlJlc291cmNlTmFtaW5nT3B0aW9uKTtcblxuICAgIC8vIPCfkYcgU05TIFRvcGljIGZvciBub3RpZmljYXRpb25zXG4gICAgY29uc3QgdG9waWM6IHNucy5Ub3BpYyA9IG5ldyBzbnMuVG9waWModGhpcywgJ05vdGlmaWNhdGlvblRvcGljJywge1xuICAgICAgdG9waWNOYW1lOiBuYW1lcy5ub3RpZmljYXRpb25Ub3BpY05hbWUsXG4gICAgICBkaXNwbGF5TmFtZTogbmFtZXMubm90aWZpY2F0aW9uVG9waWNEaXNwbGF5TmFtZSxcbiAgICB9KTtcblxuICAgIC8vIPCfkYcgU3Vic2NyaWJlIGFuIGVtYWlsIGVuZHBvaW50IHRvIHRoZSB0b3BpY1xuICAgIGNvbnN0IGVtYWlscyA9IHByb3BzLm5vdGlmaWNhdGlvbnM/LmVtYWlscyA/PyBbXTtcbiAgICBmb3IgKGNvbnN0IGVtYWlsIG9mIGVtYWlscykge1xuICAgICAgdG9waWMuYWRkU3Vic2NyaXB0aW9uKG5ldyBzdWJzY3JpcHRpb25zLkVtYWlsU3Vic2NyaXB0aW9uKGVtYWlsKSk7XG4gICAgfVxuXG4gICAgLy8g8J+RhyBTdWJzY3JpcHRpb24gc2xhY2sgd2ViaG9va1xuICAgIGlmIChwcm9wcy5ub3RpZmljYXRpb25zPy5zbGFjaykge1xuICAgICAgbmV3IFNOU1NsYWNrTWVzc2FnZUxhbWJkYVN1YnNjcmlwdGlvbih0aGlzLCAnU05TU2xhY2tNZXNzYWdlTGFtYmRhU3Vic2NyaXB0aW9uJywge1xuICAgICAgICB0b3BpYyxcbiAgICAgICAgc2xhY2tXZWJob29rU2VjcmV0TmFtZTogcHJvcHMubm90aWZpY2F0aW9ucy5zbGFjay53ZWJob29rU2VjcmV0TmFtZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIPCfkYcgU3RlcEZ1bmN0aW9uc1xuICAgIGNvbnN0IHN0YXRlTWFjaGluZSA9IG5ldyBQcm90ZWN0aW9uU3RhdGVNYWNoaW5lKHRoaXMsICdTdGF0ZU1hY2hpbmUnLCB7XG4gICAgICBzdGF0ZU1hY2hpbmVOYW1lOiBuYW1lcy5zdGF0ZU1hY2hpbmVOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uVG9waWM6IHRvcGljLFxuICAgIH0pO1xuICAgIGlmIChuYW1lcy5zdGF0ZU1hY2hpbmVSb2xlTmFtZSkge1xuICAgICAgY29uc3Qgcm9sZSA9IHN0YXRlTWFjaGluZS5ub2RlLmZpbmRDaGlsZCgnUm9sZScpIGFzIGlhbS5Sb2xlO1xuICAgICAgY29uc3QgY2ZuUm9sZSA9IHJvbGUubm9kZS5kZWZhdWx0Q2hpbGQgYXMgaWFtLkNmblJvbGU7XG4gICAgICBjZm5Sb2xlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ1JvbGVOYW1lJywgbmFtZXMuc3RhdGVNYWNoaW5lUm9sZU5hbWUpO1xuICAgICAgY2ZuUm9sZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdEZXNjcmlwdGlvbicsICdyZHMgZGF0YWJhc2UgYXV0byBydW5uaW5nIHN0b3Agc3RhdGUgbWFjaGluZSByb2xlLicpO1xuICAgICAgY29uc3QgcG9saWN5ID0gcm9sZS5ub2RlLmZpbmRDaGlsZCgnRGVmYXVsdFBvbGljeScpIGFzIGlhbS5Qb2xpY3k7XG4gICAgICBjb25zdCBjZm5Qb2xpY3kgPSBwb2xpY3kubm9kZS5kZWZhdWx0Q2hpbGQgYXMgaWFtLkNmblBvbGljeTtcbiAgICAgIGNmblBvbGljeS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdQb2xpY3lOYW1lJywgYHJkcy1kYi1hdXRvLXJ1bm5pbmctc3RvcC1zdGF0ZS1tYWNoaW5lLSR7cmFuZG9tfS1wb2xpY3lgKTtcbiAgICB9XG5cbiAgICBjb25zdCBleGVjUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnRXZlbnRFeGVjUm9sZScsIHtcbiAgICAgIHJvbGVOYW1lOiBuYW1lcy5zdGFydEV2ZW50Q2F0Y2hSdWxlUm9sZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogJ2RiIGF1dG8gc3RhcnQgY2F0Y2ggd2l0aCBzdGFydCBzdGF0ZSBtYWNoaW5lIGV2ZW50IHJvbGUnLFxuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2V2ZW50cy5hbWF6b25hd3MuY29tJyksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICAnc3RhdGUtbWFjaGluZS1leGVjJzogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnc3RhdGVzOlN0YXJ0RXhlY3V0aW9uJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAgc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybixcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGVuYWJsZVJ1bGU6IGJvb2xlYW4gPSAoKCkgPT4ge1xuICAgICAgcmV0dXJuIHByb3BzLmVuYWJsZVJ1bGUgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5lbmFibGVSdWxlO1xuICAgIH0pKCk7XG5cbiAgICAvLyDwn5GHIEV2ZW50QnJpZGdlIGJ5IFJEUyBEQiBJbnN0YW5jZSBBdXRvIFN0YXJ0IEV2ZW50XG4gICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdEQkluc3RhbmNlRXZlbnQnLCB7XG4gICAgICBydWxlTmFtZTogbmFtZXMuc3RhcnRJbnN0YW5jZUV2ZW50Q2F0Y2hSdWxlTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAncmRzIGRiIGluc3RhbmNlIHJ1bm5pbmcgZXZlbnQgY2F0Y2ggcnVsZS4nLFxuICAgICAgZW5hYmxlZDogZW5hYmxlUnVsZSxcbiAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICBzb3VyY2U6IFsnYXdzLnJkcyddLFxuICAgICAgICBkZXRhaWxUeXBlOiBbJ1JEUyBEQiBJbnN0YW5jZSBFdmVudCddLFxuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBFdmVudElEOiBbJ1JEUy1FVkVOVC0wMTU0J10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGFyZ2V0czogW1xuICAgICAgICBuZXcgdGFyZ2V0cy5TZm5TdGF0ZU1hY2hpbmUoc3RhdGVNYWNoaW5lLCB7XG4gICAgICAgICAgcm9sZTogZXhlY1JvbGUsXG4gICAgICAgICAgaW5wdXQ6IGV2ZW50cy5SdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgICAgICBldmVudDogZXZlbnRzLkV2ZW50RmllbGQuZnJvbVBhdGgoJyQnKSxcbiAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICB0YWdLZXk6IHByb3BzLnRhcmdldFJlc291cmNlLnRhZ0tleSxcbiAgICAgICAgICAgICAgdGFnVmFsdWVzOiBwcm9wcy50YXJnZXRSZXNvdXJjZS50YWdWYWx1ZXMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyDwn5GHIEV2ZW50QnJpZGdlIGJ5IFJEUyBEQiBJbnN0YW5jZSBBdXRvIFN0YXJ0IEV2ZW50XG4gICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdEQkNsdXN0ZXJFdmVudCcsIHtcbiAgICAgIHJ1bGVOYW1lOiBuYW1lcy5zdGFydENsdXN0ZXJFdmVudENhdGNoUnVsZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogJ2RiIGNsdXN0ZXIgcnVubmluZyBldmVudCBjYXRjaCBydWxlJyxcbiAgICAgIGVuYWJsZWQ6IGVuYWJsZVJ1bGUsXG4gICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgc291cmNlOiBbJ2F3cy5yZHMnXSxcbiAgICAgICAgZGV0YWlsVHlwZTogWydSRFMgREIgQ2x1c3RlciBFdmVudCddLFxuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBFdmVudElEOiBbJ1JEUy1FVkVOVC0wMTUzJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGFyZ2V0czogW1xuICAgICAgICBuZXcgdGFyZ2V0cy5TZm5TdGF0ZU1hY2hpbmUoc3RhdGVNYWNoaW5lLCB7XG4gICAgICAgICAgcm9sZTogZXhlY1JvbGUsXG4gICAgICAgICAgaW5wdXQ6IGV2ZW50cy5SdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgICAgICBldmVudDogZXZlbnRzLkV2ZW50RmllbGQuZnJvbVBhdGgoJyQnKSxcbiAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICB0YWdLZXk6IHByb3BzLnRhcmdldFJlc291cmNlLnRhZ0tleSxcbiAgICAgICAgICAgICAgdGFnVmFsdWVzOiBwcm9wcy50YXJnZXRSZXNvdXJjZS50YWdWYWx1ZXMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn0iXX0=
@@ -46,10 +46,7 @@ class ProtectionStateMachine extends sfn.StateMachine {
46
46
  attachments: [
47
47
  {
48
48
  color: '#36a64f',
49
- pretext: sfn.JsonPath.format('AWS RDS DB {} Auto Running Protected Notification', sfn.JsonPath.stringAt('$.event.detail.SourceType')),
50
- title: sfn.JsonPath.stringAt('$.event.detail.SourceIdentifier'),
51
- title_link: sfn.JsonPath.stringAt('$.Generate.Link.Value'),
52
- text: sfn.JsonPath.format('AWS RDS DB {} {} Auto Running Protected', sfn.JsonPath.stringAt('$.event.detail.SourceType'), sfn.JsonPath.stringAt('$.event.detail.SourceIdentifier')),
49
+ pretext: sfn.JsonPath.format('😴 Successfully stopped the automatically running RDS {} {}.', sfn.JsonPath.stringAt('$.event.detail.SourceType'), sfn.JsonPath.stringAt('$.event.detail.SourceIdentifier')),
53
50
  fields: [
54
51
  {
55
52
  title: 'Account',
@@ -85,7 +82,7 @@ class ProtectionStateMachine extends sfn.StateMachine {
85
82
  message: sfn.TaskInput.fromObject({
86
83
  default: sfn.JsonPath.stringAt('$.Generate.Topic.TextMessage'),
87
84
  email: sfn.JsonPath.stringAt('$.Generate.Topic.TextMessage'),
88
- lambda: sfn.JsonPath.stringAt('$.Generate.Topic.SlackJsonMessage'),
85
+ lambda: sfn.JsonPath.jsonToString(sfn.JsonPath.objectAt('$.Generate.Topic.SlackJsonMessage')),
89
86
  }),
90
87
  messagePerSubscriptionType: true,
91
88
  resultPath: '$.snsResult',
@@ -189,4 +186,4 @@ class ProtectionStateMachine extends sfn.StateMachine {
189
186
  }
190
187
  }
191
188
  exports.ProtectionStateMachine = ProtectionStateMachine;
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdGVjdGlvbi1zdGF0ZS1tYWNoaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc291cmNlcy9wcm90ZWN0aW9uLXN0YXRlLW1hY2hpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQThDO0FBRTlDLHFEQUFxRDtBQUNyRCw2REFBNkQ7QUFPN0QsTUFBYSxzQkFBdUIsU0FBUSxHQUFHLENBQUMsWUFBWTtJQUMxRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsY0FBYyxFQUFFLENBQUMsR0FBRyxFQUFFO2dCQUVwQixxQkFBcUI7Z0JBQ3JCLE1BQU0sT0FBTyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDeEMsdUNBQXVDO2dCQUV2QyxNQUFNLHVCQUF1QixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUseUJBQXlCLEVBQUU7b0JBQzdFLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQzt3QkFDNUIsVUFBVSxFQUFFOzRCQUNWLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFOzRCQUNwQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTt5QkFDMUM7cUJBQ0YsQ0FBQztvQkFDRixVQUFVLEVBQUUsc0JBQXNCO2lCQUNuQyxDQUFDLENBQUM7Z0JBRUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFO29CQUNqRSxVQUFVLEVBQUUsd0JBQXdCO29CQUNwQyxVQUFVLEVBQUU7d0JBQ1YsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdB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QixDQUFDLENBQ0gsQ0FBQztnQkFFSixxQ0FBcUM7Z0JBQ3JDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDN0Msc0JBQXNCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUU1QyxPQUFPLEdBQUcsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hELENBQUMsQ0FBQyxFQUFFO1NBQ0wsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBdFNELHdEQXNTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIHNucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zJztcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgKiBhcyB0YXNrcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm90ZWN0aW9uU3RhdGVNYWNoaW5lUHJvcHMgZXh0ZW5kcyBzZm4uU3RhdGVNYWNoaW5lUHJvcHMge1xuICBub3RpZmljYXRpb25Ub3BpYzogc25zLklUb3BpYztcbn1cblxuZXhwb3J0IGNsYXNzIFByb3RlY3Rpb25TdGF0ZU1hY2hpbmUgZXh0ZW5kcyBzZm4uU3RhdGVNYWNoaW5lIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb3RlY3Rpb25TdGF0ZU1hY2hpbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkZWZpbml0aW9uQm9keTogKCgpID0+IHtcblxuICAgICAgICAvLyDwn5GHIEdldCBBV1MgYWNjb3VudFxuICAgICAgICBjb25zdCBhY2NvdW50ID0gU3RhY2sub2Yoc2NvcGUpLmFjY291bnQ7XG4gICAgICAgIC8vY29uc3QgcmVnaW9uID0gU3RhY2sub2YodGhpcykucmVnaW9uO1xuXG4gICAgICAgIGNvbnN0IHN0cmluZ01hcHBpbmdEZWZpbml0aW9uID0gbmV3IHNmbi5QYXNzKHNjb3BlLCAnU3RyaW5nTWFwcGluZ0RlZmluaXRpb24nLCB7XG4gICAgICAgICAgcmVzdWx0OiBzZm4uUmVzdWx0LmZyb21PYmplY3Qoe1xuICAgICAgICAgICAgU291cmNlVHlwZTogW1xuICAgICAgICAgICAgICB7IGtleTogJ0NMVVNURVInLCB2YWx1ZTogJ0NsdXN0ZXInIH0sXG4gICAgICAgICAgICAgIHsga2V5OiAnREJfSU5TVEFOQ0UnLCB2YWx1ZTogJ0luc3RhbmNlJyB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICByZXN1bHRQYXRoOiAnJC5kZWZpbml0aW9uLm1hcHBpbmcnLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBwcmVwYXJlVG9waWNWYWx1ZSA9IG5ldyBzZm4uUGFzcyhzY29wZSwgJ1ByZXBhcmVUb3BpY1ZhbHVlJywge1xuICAgICAgICAgIHJlc3VsdFBhdGg6ICckLnByZXBhcmUudG9waWMudmFsdWVzJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBhY2NvdW50OiBzZm4uSnNvblBhdGguYXJyYXlHZXRJdGVtKHNmbi5Kc29uUGF0aC5zdHJpbmdTcGxpdChzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZUFybicpLCAnOicpLCA0KSwgLy8gYWNjb3VudFxuICAgICAgICAgICAgcmVnaW9uOiBzZm4uSnNvblBhdGguYXJyYXlHZXRJdGVtKHNmbi5Kc29uUGF0aC5zdHJpbmdTcGxpdChzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZUFybicpLCAnOicpLCAzKSwgLy8gcmVnaW9uXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8g8J+RhyBHZW5lcmF0ZSBhd3Mgd2ViIGNvbnNvbGUgbGlua1xuICAgICAgICBjb25zdCBnZW5lcmF0ZUNvbnNvbGVMaW5rID0gbmV3IHNmbi5QYXNzKHNjb3BlLCAnR2VuZXJhdGVDb25zb2xlTGluaycsIHtcbiAgICAgICAgICByZXN1bHRQYXRoOiAnJC5HZW5lcmF0ZS5MaW5rJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBWYWx1ZTogc2ZuLkpzb25QYXRoLmZvcm1hdCgnaHR0cHM6Ly97fS5jb25zb2xlLmF3cy5hbWF6b24uY29tL3Jkcy9ob21lI2RhdGFiYXNlJyxcbiAgICAgICAgICAgICAgc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLnByZXBhcmUudG9waWMudmFsdWVzLnJlZ2lvbicpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgcHJlcGFyZVRvcGljVmFsdWUubmV4dChnZW5lcmF0ZUNvbnNvbGVMaW5rKTtcblxuICAgICAgICAvLyDwn5GHIEdlbmVyYXRlIHRvcGljIG1lc3NhZ2VcbiAgICAgICAgY29uc3QgZ2VuZXJhdGVUb3BpY01lc3NhZ2UgPSBuZXcgc2ZuLlBhc3Moc2NvcGUsICdHZW5lcmF0ZVRvcGljTWVzc2FnZScsIHtcbiAgICAgICAgICByZXN1bHRQYXRoOiAnJC5HZW5lcmF0ZS5Ub3BpYycsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgU3ViamVjdDogc2ZuLkpzb25QYXRoLmZvcm1hdCgn8J+YtCBbU1RPUFBFRF0gQVdTIFJEUyBEQiB7fSBBdXRvIFJ1bm5pbmcgUHJvdGVjdGVkIE5vdGlmaWNhdGlvbiBbe31dW3t9XScsXG4gICAgICAgICAgICAgIHNmbi5Kc29uUGF0aC5hcnJheUdldEl0ZW0oc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmRlZmluaXRpb24ubWFwcGluZy5Tb3VyY2VUeXBlWz8oQC5rZXkgPT0gJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZSldLnZhbHVlJyksIDApLFxuICAgICAgICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQucHJlcGFyZS50b3BpYy52YWx1ZXMuYWNjb3VudCcpLFxuICAgICAgICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQucHJlcGFyZS50b3BpYy52YWx1ZXMucmVnaW9uJyksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgVGV4dE1lc3NhZ2U6IHNmbi5Kc29uUGF0aC5mb3JtYXQoJ0FjY291bnQgOiB7fVxcblJlZ2lvbiA6IHt9XFxuVHlwZSA6IHt9XFxuSWRlbnRpZmllciA6IHt9JyxcbiAgICAgICAgICAgICAgc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLnByZXBhcmUudG9waWMudmFsdWVzLmFjY291bnQnKSxcbiAgICAgICAgICAgICAgc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLnByZXBhcmUudG9waWMudmFsdWVzLnJlZ2lvbicpLFxuICAgICAgICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZVR5cGUnKSxcbiAgICAgICAgICAgICAgc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmV2ZW50LmRldGFpbC5Tb3VyY2VJZGVudGlmaWVyJyksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgU2xhY2tKc29uTWVzc2FnZToge1xuICAgICAgICAgICAgICBhdHRhY2htZW50czogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzM2YTY0ZicsXG4gICAgICAgICAgICAgICAgICBwcmV0ZXh0OiBzZm4uSnNvblBhdGguZm9ybWF0KCdBV1MgUkRTIERCIHt9IEF1dG8gUnVubmluZyBQcm90ZWN0ZWQgTm90aWZpY2F0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJyksXG4gICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgdGl0bGU6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlSWRlbnRpZmllcicpLFxuICAgICAgICAgICAgICAgICAgdGl0bGVfbGluazogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLkdlbmVyYXRlLkxpbmsuVmFsdWUnKSxcbiAgICAgICAgICAgICAgICAgIHRleHQ6IHNmbi5Kc29uUGF0aC5mb3JtYXQoJ0FXUyBSRFMgREIge30ge30gQXV0byBSdW5uaW5nIFByb3RlY3RlZCcsXG4gICAgICAgICAgICAgICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZScpLFxuICAgICAgICAgICAgICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZUlkZW50aWZpZXInKSxcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnQWNjb3VudCcsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5wcmVwYXJlLnRvcGljLnZhbHVlcy5hY2NvdW50JyksXG4gICAgICAgICAgICAgICAgICAgICAgc2hvcnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ1JlZ2lvbicsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5wcmVwYXJlLnRvcGljLnZhbHVlcy5yZWdpb24nKSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG9ydDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnVHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZScpLFxuICAgICAgICAgICAgICAgICAgICAgIHNob3J0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdJZGVudGlmaWVyJyxcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmV2ZW50LmRldGFpbC5Tb3VyY2VJZGVudGlmaWVyJyksXG4gICAgICAgICAgICAgICAgICAgICAgc2hvcnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBnZW5lcmF0ZUNvbnNvbGVMaW5rLm5leHQoZ2VuZXJhdGVUb3BpY01lc3NhZ2UpO1xuXG4gICAgICAgIC8vIPCfkYcgU05TIFRvcGljIFB1Ymxpc2hcbiAgICAgICAgY29uc3QgcHVibGlzaE1lc3NhZ2UgPSBuZXcgdGFza3MuU25zUHVibGlzaChzY29wZSwgJ1B1Ymxpc2hNZXNzYWdlJywge1xuICAgICAgICAgIHRvcGljOiBwcm9wcy5ub3RpZmljYXRpb25Ub3BpYyxcbiAgICAgICAgICBzdWJqZWN0OiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuR2VuZXJhdGUuVG9waWMuU3ViamVjdCcpLFxuICAgICAgICAgIG1lc3NhZ2U6IHNmbi5UYXNrSW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgICAgICBkZWZhdWx0OiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuR2VuZXJhdGUuVG9waWMuVGV4dE1lc3NhZ2UnKSxcbiAgICAgICAgICAgIGVtYWlsOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuR2VuZXJhdGUuVG9waWMuVGV4dE1lc3NhZ2UnKSxcbiAgICAgICAgICAgIGxhbWJkYTogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLkdlbmVyYXRlLlRvcGljLlNsYWNrSnNvbk1lc3NhZ2UnKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBtZXNzYWdlUGVyU3Vic2NyaXB0aW9uVHlwZTogdHJ1ZSxcbiAgICAgICAgICByZXN1bHRQYXRoOiAnJC5zbnNSZXN1bHQnLFxuICAgICAgICB9KTtcbiAgICAgICAgZ2VuZXJhdGVUb3BpY01lc3NhZ2UubmV4dChwdWJsaXNoTWVzc2FnZSk7XG5cbiAgICAgICAgY29uc3Qgc3VjY2VlZCA9IG5ldyBzZm4uU3VjY2VlZChzY29wZSwgJ1N1Y2NlZWQnKTtcblxuICAgICAgICBwdWJsaXNoTWVzc2FnZS5uZXh0KHN1Y2NlZWQpO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0aW5nV2FpdCA9IG5ldyBzZm4uV2FpdChzY29wZSwgJ1N0YXJ0aW5nV2FpdCcsIHtcbiAgICAgICAgICB0aW1lOiBzZm4uV2FpdFRpbWUuZHVyYXRpb24oRHVyYXRpb24ubWludXRlcygxKSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0YXJ0aW5nV2FpdC5uZXh0KHN0cmluZ01hcHBpbmdEZWZpbml0aW9uKTtcblxuICAgICAgICBjb25zdCBkZXNjcmliZURCSW5zdGFuY2VzVGFzayA9IG5ldyB0YXNrcy5DYWxsQXdzU2VydmljZShzY29wZSwgJ0Rlc2NyaWJlREJJbnN0YW5jZXMnLCB7XG4gICAgICAgICAgaWFtUmVzb3VyY2VzOiBbYGFybjphd3M6cmRzOio6JHthY2NvdW50fTpkYjoqYF0sXG4gICAgICAgICAgc2VydmljZTogJ3JkcycsXG4gICAgICAgICAgYWN0aW9uOiAnZGVzY3JpYmVEQkluc3RhbmNlcycsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgRGJJbnN0YW5jZUlkZW50aWZpZXI6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlSWRlbnRpZmllcicpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzdWx0UGF0aDogJyQucmVzdWx0LmRlc2NyaWJlJyxcbiAgICAgICAgICByZXN1bHRTZWxlY3Rvcjoge1xuICAgICAgICAgICAgc3RhdHVzOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuRGJJbnN0YW5jZXNbMF0uRGJJbnN0YW5jZVN0YXR1cycpLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLkRiSW5zdGFuY2VzWzBdLkRiSW5zdGFuY2VJZGVudGlmaWVyJyksXG4gICAgICAgICAgICB0YWdzOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuRGJJbnN0YW5jZXNbMF0uVGFnTGlzdCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHN0b3BEQkluc3RhbmNlVGFzayA9IG5ldyB0YXNrcy5DYWxsQXdzU2VydmljZShzY29wZSwgJ1N0b3BEQkluc3RhbmNlJywge1xuICAgICAgICAgIGlhbVJlc291cmNlczogW2Bhcm46YXdzOnJkczoqOiR7YWNjb3VudH06ZGI6KmBdLFxuICAgICAgICAgIHNlcnZpY2U6ICdyZHMnLFxuICAgICAgICAgIGFjdGlvbjogJ3N0b3BEQkluc3RhbmNlJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBEYkluc3RhbmNlSWRlbnRpZmllcjogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmV2ZW50LmRldGFpbC5Tb3VyY2VJZGVudGlmaWVyJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXN1bHRQYXRoOiAnJC5yZXN1bHQuc3RvcCcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGRlc2NyaWJlREJDbHVzdGVyc1Rhc2sgPSBuZXcgdGFza3MuQ2FsbEF3c1NlcnZpY2Uoc2NvcGUsICdEZXNjcmliZURCQ2x1c3RlcnMnLCB7XG4gICAgICAgICAgaWFtUmVzb3VyY2VzOiBbYGFybjphd3M6cmRzOio6JHthY2NvdW50fTpjbHVzdGVyOipgXSxcbiAgICAgICAgICBzZXJ2aWNlOiAncmRzJyxcbiAgICAgICAgICBhY3Rpb246ICdkZXNjcmliZURCQ2x1c3RlcnMnLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIERiQ2x1c3RlcklkZW50aWZpZXI6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlSWRlbnRpZmllcicpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzdWx0UGF0aDogJyQucmVzdWx0LmRlc2NyaWJlJyxcbiAgICAgICAgICByZXN1bHRTZWxlY3Rvcjoge1xuICAgICAgICAgICAgc3RhdHVzOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuRGJDbHVzdGVyc1swXS5TdGF0dXMnKSxcbiAgICAgICAgICAgIGlkZW50aWZpZXI6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5EYkNsdXN0ZXJzWzBdLkRiQ2x1c3RlcklkZW50aWZpZXInKSxcbiAgICAgICAgICAgIHRhZ3M6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5EYkNsdXN0ZXJzWzBdLlRhZ0xpc3QnKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBzdG9wREJDbHVzdGVyVGFzayA9IG5ldyB0YXNrcy5DYWxsQXdzU2VydmljZShzY29wZSwgJ1N0b3BEQkNsdXN0ZXInLCB7XG4gICAgICAgICAgaWFtUmVzb3VyY2VzOiBbYGFybjphd3M6cmRzOio6JHthY2NvdW50fTpjbHVzdGVyOipgXSxcbiAgICAgICAgICBzZXJ2aWNlOiAncmRzJyxcbiAgICAgICAgICBhY3Rpb246ICdzdG9wREJDbHVzdGVyJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBEYkNsdXN0ZXJJZGVudGlmaWVyOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZUlkZW50aWZpZXInKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3VsdFBhdGg6ICckLnJlc3VsdC5zdG9wJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZGVzY3JpYmVUeXBlQ2hvaWNlID0gbmV3IHNmbi5DaG9pY2Uoc2NvcGUsICdEZXNjcmliZVR5cGVDaG9pY2UnKVxuICAgICAgICAgIC53aGVuKFxuICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5hbmQoXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC10eXBlJywgJ1JEUyBEQiBJbnN0YW5jZSBFdmVudCcpLFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZScsICdEQl9JTlNUQU5DRScpLFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuRXZlbnRJRCcsICdSRFMtRVZFTlQtMDE1NCcpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGRlc2NyaWJlREJJbnN0YW5jZXNUYXNrLFxuICAgICAgICAgIClcbiAgICAgICAgICAud2hlbihcbiAgICAgICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwtdHlwZScsICdSRFMgREIgQ2x1c3RlciBFdmVudCcpLFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZScsICdDTFVTVEVSJyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5FdmVudElEJywgJ1JEUy1FVkVOVC0wMTUzJyksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGVzY3JpYmVEQkNsdXN0ZXJzVGFzayxcbiAgICAgICAgICApXG4gICAgICAgICAgLm90aGVyd2lzZShuZXcgc2ZuLkZhaWwoc2NvcGUsICdVbmtub3duVHlwZScpKTtcblxuICAgICAgICBzdHJpbmdNYXBwaW5nRGVmaW5pdGlvbi5uZXh0KGRlc2NyaWJlVHlwZUNob2ljZSk7XG5cbiAgICAgICAgY29uc3Qgc3RhdHVzQ2hhbmdlV2FpdCA9IG5ldyBzZm4uV2FpdChzY29wZSwgJ1N0YXR1c0NoYW5nZVdhaXQnLCB7XG4gICAgICAgICAgdGltZTogc2ZuLldhaXRUaW1lLmR1cmF0aW9uKER1cmF0aW9uLm1pbnV0ZXMoNSkpLFxuICAgICAgICB9KTtcblxuICAgICAgICBzdGF0dXNDaGFuZ2VXYWl0Lm5leHQoZGVzY3JpYmVUeXBlQ2hvaWNlKTtcblxuICAgICAgICBzdG9wREJJbnN0YW5jZVRhc2submV4dChzdGF0dXNDaGFuZ2VXYWl0KTtcblxuICAgICAgICBzdG9wREJDbHVzdGVyVGFzay5uZXh0KHN0YXR1c0NoYW5nZVdhaXQpO1xuXG4gICAgICAgIC8vIPCfkYcgU3RhdHVzIENob2ljZVxuICAgICAgICBjb25zdCBzdGF0dXNDaG9pY2UgPSBuZXcgc2ZuLkNob2ljZShzY29wZSwgJ1N0YXR1c0Nob2ljZScpXG4gICAgICAgICAgLy8gZGIgaW5zdGFuY2Ugc3RvcCBvbiBzdGF0dXMuYXZhaWxhYmxlXG4gICAgICAgICAgLndoZW4oXG4gICAgICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLXR5cGUnLCAnUkRTIERCIEluc3RhbmNlIEV2ZW50JyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJywgJ0RCX0lOU1RBTkNFJyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5FdmVudElEJywgJ1JEUy1FVkVOVC0wMTU0JyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnYXZhaWxhYmxlJyksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RvcERCSW5zdGFuY2VUYXNrLFxuICAgICAgICAgIClcbiAgICAgICAgICAvLyBkYiBjbHVzdGVyIHN0b3Agb24gc3RhdHVzLmF2YWlsYWJsZVxuICAgICAgICAgIC53aGVuKFxuICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5hbmQoXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC10eXBlJywgJ1JEUyBEQiBDbHVzdGVyIEV2ZW50JyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJywgJ0NMVVNURVInKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLkV2ZW50SUQnLCAnUkRTLUVWRU5ULTAxNTMnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQucmVzdWx0LmRlc2NyaWJlLnN0YXR1cycsICdhdmFpbGFibGUnKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdG9wREJDbHVzdGVyVGFzayxcbiAgICAgICAgICApXG4gICAgICAgICAgLndoZW4oXG4gICAgICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5vcihcbiAgICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC10eXBlJywgJ1JEUyBEQiBJbnN0YW5jZSBFdmVudCcpLFxuICAgICAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZVR5cGUnLCAnREJfSU5TVEFOQ0UnKSxcbiAgICAgICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5FdmVudElEJywgJ1JEUy1FVkVOVC0wMTU0JyksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC10eXBlJywgJ1JEUyBEQiBDbHVzdGVyIEV2ZW50JyksXG4gICAgICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZScsICdDTFVTVEVSJyksXG4gICAgICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuRXZlbnRJRCcsICdSRFMtRVZFTlQtMDE1MycpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnc3RvcHBlZCcpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHByZXBhcmVUb3BpY1ZhbHVlLCAvLyBnZW5lcmF0ZWQgJiBwdWJsaXNoIG1lc3NhZ2VcbiAgICAgICAgICApXG4gICAgICAgICAgLndoZW4oXG4gICAgICAgICAgICBzZm4uQ29uZGl0aW9uLm9yKFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5yZXN1bHQuZGVzY3JpYmUuc3RhdHVzJywgJ3N0YXJ0aW5nJyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnY29uZmlndXJpbmctZW5oYW5jZWQtbW9uaXRvcmluZycpLFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5yZXN1bHQuZGVzY3JpYmUuc3RhdHVzJywgJ2JhY2tpbmctdXAnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQucmVzdWx0LmRlc2NyaWJlLnN0YXR1cycsICdtb2RpZnlpbmcnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQucmVzdWx0LmRlc2NyaWJlLnN0YXR1cycsICdzdG9wcGluZycpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXR1c0NoYW5nZVdhaXQsXG4gICAgICAgICAgKVxuICAgICAgICAgIC5vdGhlcndpc2UobmV3IHNmbi5GYWlsKHNjb3BlLCAnU3RhdHVzRmFpbCcsIHtcbiAgICAgICAgICAgIGNhdXNlOiAnZGIgaW5zdGFuY2Ugb3IgY2x1c3RlciBzdGF0dXMgZmFpbC4nLFxuICAgICAgICAgIH0pKTtcblxuICAgICAgICAvLyDwn5GHIFRhZyBNYXRjaFxuICAgICAgICBjb25zdCB0YWdNYXRjaENob2ljZSA9IG5ldyBzZm4uQ2hvaWNlKHNjb3BlLCAnRXhpc3RUYWdDaG9pZGUnKVxuICAgICAgICAgIC53aGVuKFxuICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5pc1ByZXNlbnQoJyQucmVzdWx0LmRlc2NyaWJlLnRhZ3MnKSxcbiAgICAgICAgICAgIG5ldyBzZm4uUGFzcyhzY29wZSwgJ0NvbnRhaW5UYWdWbHVlJywge1xuICAgICAgICAgICAgICByZXN1bHRQYXRoOiAnJC5jaGVjay50YWcnLFxuICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgaXNDb250YWluOiBzZm4uSnNvblBhdGguYXJyYXlDb250YWlucyhcbiAgICAgICAgICAgICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5wYXJhbXMudGFnVmFsdWVzJyksXG4gICAgICAgICAgICAgICAgICBzZm4uSnNvblBhdGguYXJyYXlHZXRJdGVtKHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5yZXN1bHQuZGVzY3JpYmUudGFnc1s/KEAuS2V5ID09ICQucGFyYW1zLnRhZ0tleSldLlZhbHVlJyksIDApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KS5uZXh0KFxuICAgICAgICAgICAgICBuZXcgc2ZuLkNob2ljZShzY29wZSwgJ0ZpbHRlclRhZ0Nob2lzZScpXG4gICAgICAgICAgICAgICAgLndoZW4oXG4gICAgICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLmJvb2xlYW5FcXVhbHMoJyQuY2hlY2sudGFnLmlzQ29udGFpbicsIHRydWUpLFxuICAgICAgICAgICAgICAgICAgc3RhdHVzQ2hvaWNlLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAub3RoZXJ3aXNlKFxuICAgICAgICAgICAgICAgICAgbmV3IHNmbi5QYXNzKHNjb3BlLCAnTm9UYWdNYXRjaCcsIHtcbiAgICAgICAgICAgICAgICAgICAgY29tbWVudDogJ25vIHRhZyBtYXRjaCcsXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLm90aGVyd2lzZShcbiAgICAgICAgICAgIG5ldyBzZm4uUGFzcyhzY29wZSwgJ05vVGFnc0ZvdW5kJywge1xuICAgICAgICAgICAgICBjb21tZW50OiAnbm8gdGFncyBmb3VuZCcsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuXG4gICAgICAgIC8vIPCfkYcgZGVzY3JpYmUgbmV4dCB0YWcgZm91bmQgJiBtYXRjaFxuICAgICAgICBkZXNjcmliZURCSW5zdGFuY2VzVGFzay5uZXh0KHRhZ01hdGNoQ2hvaWNlKTtcbiAgICAgICAgZGVzY3JpYmVEQkNsdXN0ZXJzVGFzay5uZXh0KHRhZ01hdGNoQ2hvaWNlKTtcblxuICAgICAgICByZXR1cm4gc2ZuLkRlZmluaXRpb25Cb2R5LmZyb21DaGFpbmFibGUoc3RhcnRpbmdXYWl0KTtcbiAgICAgIH0pKCksXG4gICAgfSk7XG4gIH1cbn0iXX0=
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdGVjdGlvbi1zdGF0ZS1tYWNoaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc291cmNlcy9wcm90ZWN0aW9uLXN0YXRlLW1hY2hpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQThDO0FBRTlDLHFEQUFxRDtBQUNyRCw2REFBNkQ7QUFPN0QsTUFBYSxzQkFBdUIsU0FBUSxHQUFHLENBQUMsWUFBWTtJQUMxRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWtDO1FBQzFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxLQUFLO1lBQ1IsY0FBYyxFQUFFLENBQUMsR0FBRyxFQUFFO2dCQUVwQixxQkFBcUI7Z0JBQ3JCLE1BQU0sT0FBTyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDeEMsdUNBQXVDO2dCQUV2QyxNQUFNLHVCQUF1QixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUseUJBQXlCLEVBQUU7b0JBQzdFLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQzt3QkFDNUIsVUFBVSxFQUFFOzRCQUNWLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFOzRCQUNwQyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRTt5QkFDMUM7cUJBQ0YsQ0FBQztvQkFDRixVQUFVLEVBQUUsc0JBQXNCO2lCQUNuQyxDQUFDLENBQUM7Z0JBRUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFO29CQUNqRSxVQUFVLEVBQUUsd0JBQXdCO29CQUNwQyxVQUFVLEVBQUU7d0JBQ1YsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsVUFBVTt3QkFDbkksTUFBTSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUztxQkFDbEk7aUJBQ0YsQ0FBQyxDQUFDO2dCQUVILG1DQUFtQztnQkFDbkMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLHFCQUFxQixFQUFFO29CQUNyRSxVQUFVLEVBQUUsaUJBQWlCO29CQUM3QixVQUFVLEVBQUU7d0JBQ1YsS0FBSyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLHFEQUFxRCxFQUM5RSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxDQUN2RDtxQkFDRjtpQkFDRixDQUFDLENBQUM7Z0JBQ0gsaUJBQWlCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBRTVDLDRCQUE0QjtnQkFDNUIsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLHNCQUFzQixFQUFFO29CQUN2RSxVQUFVLEVBQUUsa0JBQWtCO29CQUM5QixVQUFVLEVBQUU7d0JBQ1YsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLHlFQUF5RSxFQUNwRyxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyw4RUFBOEUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNuSSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUN2RCxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxDQUN2RDt3QkFDRCxXQUFXLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsdURBQXVELEVBQ3RGLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGdDQUFnQyxDQUFDLEVBQ3ZELEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLCtCQUErQixDQUFDLEVBQ3RELEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLDJCQUEyQixDQUFDLEVBQ2xELEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLENBQ3pEO3dCQUNELGdCQUFnQixFQUFFOzRCQUNoQixXQUFXLEVBQUU7Z0NBQ1g7b0NBQ0UsS0FBSyxFQUFFLFNBQVM7b0NBQ2hCLE9BQU8sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyw4REFBOEQsRUFDekYsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUMsRUFDbEQsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsaUNBQWlDLENBQUMsQ0FDekQ7b0NBQ0QsTUFBTSxFQUFFO3dDQUNOOzRDQUNFLEtBQUssRUFBRSxTQUFTOzRDQUNoQixLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZ0NBQWdDLENBQUM7NENBQzlELEtBQUssRUFBRSxJQUFJO3lDQUNaO3dDQUNEOzRDQUNFLEtBQUssRUFBRSxRQUFROzRDQUNmLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQzs0Q0FDN0QsS0FBSyxFQUFFLElBQUk7eUNBQ1o7d0NBQ0Q7NENBQ0UsS0FBSyxFQUFFLE1BQU07NENBQ2IsS0FBSyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLDJCQUEyQixDQUFDOzRDQUN6RCxLQUFLLEVBQUUsSUFBSTt5Q0FDWjt3Q0FDRDs0Q0FDRSxLQUFLLEVBQUUsWUFBWTs0Q0FDbkIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDOzRDQUMvRCxLQUFLLEVBQUUsSUFBSTt5Q0FDWjtxQ0FDRjtpQ0FDRjs2QkFDRjt5QkFDRjtxQkFDRjtpQkFDRixDQUFDLENBQUM7Z0JBQ0gsbUJBQW1CLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBRS9DLHVCQUF1QjtnQkFDdkIsTUFBTSxjQUFjLEdBQUcsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtvQkFDbkUsS0FBSyxFQUFFLEtBQUssQ0FBQyxpQkFBaUI7b0JBQzlCLE9BQU8sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQztvQkFDMUQsT0FBTyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO3dCQUNoQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsOEJBQThCLENBQUM7d0JBQzlELEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyw4QkFBOEIsQ0FBQzt3QkFDNUQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7cUJBQzlGLENBQUM7b0JBQ0YsMEJBQTBCLEVBQUUsSUFBSTtvQkFDaEMsVUFBVSxFQUFFLGFBQWE7aUJBQzFCLENBQUMsQ0FBQztnQkFDSCxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBRTFDLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBRWxELGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRTdCLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFO29CQUN2RCxJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2pELENBQUMsQ0FBQztnQkFFSCxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7Z0JBRTNDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxxQkFBcUIsRUFBRTtvQkFDckYsWUFBWSxFQUFFLENBQUMsaUJBQWlCLE9BQU8sT0FBTyxDQUFDO29CQUMvQyxPQUFPLEVBQUUsS0FBSztvQkFDZCxNQUFNLEVBQUUscUJBQXFCO29CQUM3QixVQUFVLEVBQUU7d0JBQ1Ysb0JBQW9CLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsaUNBQWlDLENBQUM7cUJBQy9FO29CQUNELFVBQVUsRUFBRSxtQkFBbUI7b0JBQy9CLGNBQWMsRUFBRTt3QkFDZCxNQUFNLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsbUNBQW1DLENBQUM7d0JBQ2xFLFVBQVUsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyx1Q0FBdUMsQ0FBQzt3QkFDMUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLDBCQUEwQixDQUFDO3FCQUN4RDtpQkFDRixDQUFDLENBQUM7Z0JBRUgsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO29CQUMzRSxZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsT0FBTyxPQUFPLENBQUM7b0JBQy9DLE9BQU8sRUFBRSxLQUFLO29CQUNkLE1BQU0sRUFBRSxnQkFBZ0I7b0JBQ3hCLFVBQVUsRUFBRTt3QkFDVixvQkFBb0IsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQztxQkFDL0U7b0JBQ0QsVUFBVSxFQUFFLGVBQWU7aUJBQzVCLENBQUMsQ0FBQztnQkFFSCxNQUFNLHNCQUFzQixHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLEVBQUU7b0JBQ25GLFlBQVksRUFBRSxDQUFDLGlCQUFpQixPQUFPLFlBQVksQ0FBQztvQkFDcEQsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsTUFBTSxFQUFFLG9CQUFvQjtvQkFDNUIsVUFBVSxFQUFFO3dCQUNWLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGlDQUFpQyxDQUFDO3FCQUM5RTtvQkFDRCxVQUFVLEVBQUUsbUJBQW1CO29CQUMvQixjQUFjLEVBQUU7d0JBQ2QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDO3dCQUN2RCxVQUFVLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMscUNBQXFDLENBQUM7d0JBQ3hFLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQztxQkFDdkQ7aUJBQ0YsQ0FBQyxDQUFDO2dCQUVILE1BQU0saUJBQWlCLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUU7b0JBQ3pFLFlBQVksRUFBRSxDQUFDLGlCQUFpQixPQUFPLFlBQVksQ0FBQztvQkFDcEQsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsTUFBTSxFQUFFLGVBQWU7b0JBQ3ZCLFVBQVUsRUFBRTt3QkFDVixtQkFBbUIsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQztxQkFDOUU7b0JBQ0QsVUFBVSxFQUFFLGVBQWU7aUJBQzVCLENBQUMsQ0FBQztnQkFFSCxNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLENBQUM7cUJBQ25FLElBQUksQ0FDSCxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FDZixHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSx1QkFBdUIsQ0FBQyxFQUMxRSxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQywyQkFBMkIsRUFBRSxhQUFhLENBQUMsRUFDdEUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsd0JBQXdCLEVBQUUsZ0JBQWdCLENBQUMsQ0FDdkUsRUFDRCx1QkFBdUIsQ0FDeEI7cUJBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNmLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLHNCQUFzQixDQUFDLEVBQ3pFLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxFQUNsRSxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUN2RSxFQUNELHNCQUFzQixDQUN2QjtxQkFDQSxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUVqRCx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFFakQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFO29CQUMvRCxJQUFJLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2pELENBQUMsQ0FBQztnQkFFSCxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFFMUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBRTFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUV6QyxtQkFBbUI7Z0JBQ25CLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDO29CQUN4RCx1Q0FBdUM7cUJBQ3RDLElBQUksQ0FDSCxHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FDZixHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSx1QkFBdUIsQ0FBQyxFQUMxRSxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQywyQkFBMkIsRUFBRSxhQUFhLENBQUMsRUFDdEUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsd0JBQXdCLEVBQUUsZ0JBQWdCLENBQUMsRUFDdEUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsMEJBQTBCLEVBQUUsV0FBVyxDQUFDLENBQ3BFLEVBQ0Qsa0JBQWtCLENBQ25CO29CQUNELHNDQUFzQztxQkFDckMsSUFBSSxDQUNILEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNmLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLHNCQUFzQixDQUFDLEVBQ3pFLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxFQUNsRSxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxnQkFBZ0IsQ0FBQyxFQUN0RSxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQywwQkFBMEIsRUFBRSxXQUFXLENBQUMsQ0FDcEUsRUFDRCxpQkFBaUIsQ0FDbEI7cUJBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNmLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUNkLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNmLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLHVCQUF1QixDQUFDLEVBQzFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLDJCQUEyQixFQUFFLGFBQWEsQ0FBQyxFQUN0RSxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUN2RSxFQUNELEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNmLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLHNCQUFzQixDQUFDLEVBQ3pFLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLDJCQUEyQixFQUFFLFNBQVMsQ0FBQyxFQUNsRSxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyx3QkFBd0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUN2RSxDQUNGLEVBQ0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsMEJBQTBCLEVBQUUsU0FBUyxDQUFDLENBQ2xFLEVBQ0QsaUJBQWlCLENBQ2xCO3FCQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FDZCxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQywwQkFBMEIsRUFBRSxVQUFVLENBQUMsRUFDbEUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsMEJBQTBCLEVBQUUsaUNBQWlDLENBQUMsRUFDekYsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsMEJBQTBCLEVBQUUsWUFBWSxDQUFDLEVBQ3BFLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLDBCQUEwQixFQUFFLFdBQVcsQ0FBQyxFQUNuRSxHQUFHLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQywwQkFBMEIsRUFBRSxVQUFVLENBQUMsQ0FDbkUsRUFDRCxnQkFBZ0IsQ0FDakI7cUJBQ0EsU0FBUyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFO29CQUMzQyxLQUFLLEVBQUUscUNBQXFDO2lCQUM3QyxDQUFDLENBQUMsQ0FBQztnQkFFTixlQUFlO2dCQUNmLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUM7cUJBQzNELElBQUksQ0FDSCxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUNqRCxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGdCQUFnQixFQUFFO29CQUNwQyxVQUFVLEVBQUUsYUFBYTtvQkFDekIsVUFBVSxFQUFFO3dCQUNWLFNBQVMsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FDbkMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsRUFDM0MsR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsMkRBQTJELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDakg7cUJBQ0Y7aUJBQ0YsQ0FBQyxDQUFDLElBQUksQ0FDTCxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDO3FCQUNyQyxJQUFJLENBQ0gsR0FBRyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLEVBQzFELFlBQVksQ0FDYjtxQkFDQSxTQUFTLENBQ1IsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUU7b0JBQ2hDLE9BQU8sRUFBRSxjQUFjO2lCQUN4QixDQUFDLENBQ0gsQ0FDSixDQUNGO3FCQUNBLFNBQVMsQ0FDUixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRTtvQkFDakMsT0FBTyxFQUFFLGVBQWU7aUJBQ3pCLENBQUMsQ0FDSCxDQUFDO2dCQUVKLHFDQUFxQztnQkFDckMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM3QyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBRTVDLE9BQU8sR0FBRyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEQsQ0FBQyxDQUFDLEVBQUU7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFqU0Qsd0RBaVNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24sIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgc2ZuIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zJztcbmltcG9ydCAqIGFzIHRhc2tzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zdGVwZnVuY3Rpb25zLXRhc2tzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByb3RlY3Rpb25TdGF0ZU1hY2hpbmVQcm9wcyBleHRlbmRzIHNmbi5TdGF0ZU1hY2hpbmVQcm9wcyB7XG4gIG5vdGlmaWNhdGlvblRvcGljOiBzbnMuSVRvcGljO1xufVxuXG5leHBvcnQgY2xhc3MgUHJvdGVjdGlvblN0YXRlTWFjaGluZSBleHRlbmRzIHNmbi5TdGF0ZU1hY2hpbmUge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvdGVjdGlvblN0YXRlTWFjaGluZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlZmluaXRpb25Cb2R5OiAoKCkgPT4ge1xuXG4gICAgICAgIC8vIPCfkYcgR2V0IEFXUyBhY2NvdW50XG4gICAgICAgIGNvbnN0IGFjY291bnQgPSBTdGFjay5vZihzY29wZSkuYWNjb3VudDtcbiAgICAgICAgLy9jb25zdCByZWdpb24gPSBTdGFjay5vZih0aGlzKS5yZWdpb247XG5cbiAgICAgICAgY29uc3Qgc3RyaW5nTWFwcGluZ0RlZmluaXRpb24gPSBuZXcgc2ZuLlBhc3Moc2NvcGUsICdTdHJpbmdNYXBwaW5nRGVmaW5pdGlvbicsIHtcbiAgICAgICAgICByZXN1bHQ6IHNmbi5SZXN1bHQuZnJvbU9iamVjdCh7XG4gICAgICAgICAgICBTb3VyY2VUeXBlOiBbXG4gICAgICAgICAgICAgIHsga2V5OiAnQ0xVU1RFUicsIHZhbHVlOiAnQ2x1c3RlcicgfSxcbiAgICAgICAgICAgICAgeyBrZXk6ICdEQl9JTlNUQU5DRScsIHZhbHVlOiAnSW5zdGFuY2UnIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHJlc3VsdFBhdGg6ICckLmRlZmluaXRpb24ubWFwcGluZycsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHByZXBhcmVUb3BpY1ZhbHVlID0gbmV3IHNmbi5QYXNzKHNjb3BlLCAnUHJlcGFyZVRvcGljVmFsdWUnLCB7XG4gICAgICAgICAgcmVzdWx0UGF0aDogJyQucHJlcGFyZS50b3BpYy52YWx1ZXMnLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIGFjY291bnQ6IHNmbi5Kc29uUGF0aC5hcnJheUdldEl0ZW0oc2ZuLkpzb25QYXRoLnN0cmluZ1NwbGl0KHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlQXJuJyksICc6JyksIDQpLCAvLyBhY2NvdW50XG4gICAgICAgICAgICByZWdpb246IHNmbi5Kc29uUGF0aC5hcnJheUdldEl0ZW0oc2ZuLkpzb25QYXRoLnN0cmluZ1NwbGl0KHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlQXJuJyksICc6JyksIDMpLCAvLyByZWdpb25cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyDwn5GHIEdlbmVyYXRlIGF3cyB3ZWIgY29uc29sZSBsaW5rXG4gICAgICAgIGNvbnN0IGdlbmVyYXRlQ29uc29sZUxpbmsgPSBuZXcgc2ZuLlBhc3Moc2NvcGUsICdHZW5lcmF0ZUNvbnNvbGVMaW5rJywge1xuICAgICAgICAgIHJlc3VsdFBhdGg6ICckLkdlbmVyYXRlLkxpbmsnLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIFZhbHVlOiBzZm4uSnNvblBhdGguZm9ybWF0KCdodHRwczovL3t9LmNvbnNvbGUuYXdzLmFtYXpvbi5jb20vcmRzL2hvbWUjZGF0YWJhc2UnLFxuICAgICAgICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQucHJlcGFyZS50b3BpYy52YWx1ZXMucmVnaW9uJyksXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBwcmVwYXJlVG9waWNWYWx1ZS5uZXh0KGdlbmVyYXRlQ29uc29sZUxpbmspO1xuXG4gICAgICAgIC8vIPCfkYcgR2VuZXJhdGUgdG9waWMgbWVzc2FnZVxuICAgICAgICBjb25zdCBnZW5lcmF0ZVRvcGljTWVzc2FnZSA9IG5ldyBzZm4uUGFzcyhzY29wZSwgJ0dlbmVyYXRlVG9waWNNZXNzYWdlJywge1xuICAgICAgICAgIHJlc3VsdFBhdGg6ICckLkdlbmVyYXRlLlRvcGljJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBTdWJqZWN0OiBzZm4uSnNvblBhdGguZm9ybWF0KCfwn5i0IFtTVE9QUEVEXSBBV1MgUkRTIERCIHt9IEF1dG8gUnVubmluZyBQcm90ZWN0ZWQgTm90aWZpY2F0aW9uIFt7fV1be31dJyxcbiAgICAgICAgICAgICAgc2ZuLkpzb25QYXRoLmFycmF5R2V0SXRlbShzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZGVmaW5pdGlvbi5tYXBwaW5nLlNvdXJjZVR5cGVbPyhALmtleSA9PSAkLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlKV0udmFsdWUnKSwgMCksXG4gICAgICAgICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5wcmVwYXJlLnRvcGljLnZhbHVlcy5hY2NvdW50JyksXG4gICAgICAgICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5wcmVwYXJlLnRvcGljLnZhbHVlcy5yZWdpb24nKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBUZXh0TWVzc2FnZTogc2ZuLkpzb25QYXRoLmZvcm1hdCgnQWNjb3VudCA6IHt9XFxuUmVnaW9uIDoge31cXG5UeXBlIDoge31cXG5JZGVudGlmaWVyIDoge30nLFxuICAgICAgICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQucHJlcGFyZS50b3BpYy52YWx1ZXMuYWNjb3VudCcpLFxuICAgICAgICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQucHJlcGFyZS50b3BpYy52YWx1ZXMucmVnaW9uJyksXG4gICAgICAgICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZScpLFxuICAgICAgICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZUlkZW50aWZpZXInKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBTbGFja0pzb25NZXNzYWdlOiB7XG4gICAgICAgICAgICAgIGF0dGFjaG1lbnRzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICcjMzZhNjRmJyxcbiAgICAgICAgICAgICAgICAgIHByZXRleHQ6IHNmbi5Kc29uUGF0aC5mb3JtYXQoJ/CfmLQgU3VjY2Vzc2Z1bGx5IHN0b3BwZWQgdGhlIGF1dG9tYXRpY2FsbHkgcnVubmluZyBSRFMge30ge30uJyxcbiAgICAgICAgICAgICAgICAgICAgc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJyksXG4gICAgICAgICAgICAgICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlSWRlbnRpZmllcicpLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdBY2NvdW50JyxcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLnByZXBhcmUudG9waWMudmFsdWVzLmFjY291bnQnKSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG9ydDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnUmVnaW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLnByZXBhcmUudG9waWMudmFsdWVzLnJlZ2lvbicpLFxuICAgICAgICAgICAgICAgICAgICAgIHNob3J0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdUeXBlJyxcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJyksXG4gICAgICAgICAgICAgICAgICAgICAgc2hvcnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0lkZW50aWZpZXInLFxuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZUlkZW50aWZpZXInKSxcbiAgICAgICAgICAgICAgICAgICAgICBzaG9ydDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGdlbmVyYXRlQ29uc29sZUxpbmsubmV4dChnZW5lcmF0ZVRvcGljTWVzc2FnZSk7XG5cbiAgICAgICAgLy8g8J+RhyBTTlMgVG9waWMgUHVibGlzaFxuICAgICAgICBjb25zdCBwdWJsaXNoTWVzc2FnZSA9IG5ldyB0YXNrcy5TbnNQdWJsaXNoKHNjb3BlLCAnUHVibGlzaE1lc3NhZ2UnLCB7XG4gICAgICAgICAgdG9waWM6IHByb3BzLm5vdGlmaWNhdGlvblRvcGljLFxuICAgICAgICAgIHN1YmplY3Q6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5HZW5lcmF0ZS5Ub3BpYy5TdWJqZWN0JyksXG4gICAgICAgICAgbWVzc2FnZTogc2ZuLlRhc2tJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgICAgIGRlZmF1bHQ6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5HZW5lcmF0ZS5Ub3BpYy5UZXh0TWVzc2FnZScpLFxuICAgICAgICAgICAgZW1haWw6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5HZW5lcmF0ZS5Ub3BpYy5UZXh0TWVzc2FnZScpLFxuICAgICAgICAgICAgbGFtYmRhOiBzZm4uSnNvblBhdGguanNvblRvU3RyaW5nKHNmbi5Kc29uUGF0aC5vYmplY3RBdCgnJC5HZW5lcmF0ZS5Ub3BpYy5TbGFja0pzb25NZXNzYWdlJykpLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG1lc3NhZ2VQZXJTdWJzY3JpcHRpb25UeXBlOiB0cnVlLFxuICAgICAgICAgIHJlc3VsdFBhdGg6ICckLnNuc1Jlc3VsdCcsXG4gICAgICAgIH0pO1xuICAgICAgICBnZW5lcmF0ZVRvcGljTWVzc2FnZS5uZXh0KHB1Ymxpc2hNZXNzYWdlKTtcblxuICAgICAgICBjb25zdCBzdWNjZWVkID0gbmV3IHNmbi5TdWNjZWVkKHNjb3BlLCAnU3VjY2VlZCcpO1xuXG4gICAgICAgIHB1Ymxpc2hNZXNzYWdlLm5leHQoc3VjY2VlZCk7XG5cbiAgICAgICAgY29uc3Qgc3RhcnRpbmdXYWl0ID0gbmV3IHNmbi5XYWl0KHNjb3BlLCAnU3RhcnRpbmdXYWl0Jywge1xuICAgICAgICAgIHRpbWU6IHNmbi5XYWl0VGltZS5kdXJhdGlvbihEdXJhdGlvbi5taW51dGVzKDEpKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3RhcnRpbmdXYWl0Lm5leHQoc3RyaW5nTWFwcGluZ0RlZmluaXRpb24pO1xuXG4gICAgICAgIGNvbnN0IGRlc2NyaWJlREJJbnN0YW5jZXNUYXNrID0gbmV3IHRhc2tzLkNhbGxBd3NTZXJ2aWNlKHNjb3BlLCAnRGVzY3JpYmVEQkluc3RhbmNlcycsIHtcbiAgICAgICAgICBpYW1SZXNvdXJjZXM6IFtgYXJuOmF3czpyZHM6Kjoke2FjY291bnR9OmRiOipgXSxcbiAgICAgICAgICBzZXJ2aWNlOiAncmRzJyxcbiAgICAgICAgICBhY3Rpb246ICdkZXNjcmliZURCSW5zdGFuY2VzJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBEYkluc3RhbmNlSWRlbnRpZmllcjogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmV2ZW50LmRldGFpbC5Tb3VyY2VJZGVudGlmaWVyJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXN1bHRQYXRoOiAnJC5yZXN1bHQuZGVzY3JpYmUnLFxuICAgICAgICAgIHJlc3VsdFNlbGVjdG9yOiB7XG4gICAgICAgICAgICBzdGF0dXM6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5EYkluc3RhbmNlc1swXS5EYkluc3RhbmNlU3RhdHVzJyksXG4gICAgICAgICAgICBpZGVudGlmaWVyOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuRGJJbnN0YW5jZXNbMF0uRGJJbnN0YW5jZUlkZW50aWZpZXInKSxcbiAgICAgICAgICAgIHRhZ3M6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5EYkluc3RhbmNlc1swXS5UYWdMaXN0JyksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc3RvcERCSW5zdGFuY2VUYXNrID0gbmV3IHRhc2tzLkNhbGxBd3NTZXJ2aWNlKHNjb3BlLCAnU3RvcERCSW5zdGFuY2UnLCB7XG4gICAgICAgICAgaWFtUmVzb3VyY2VzOiBbYGFybjphd3M6cmRzOio6JHthY2NvdW50fTpkYjoqYF0sXG4gICAgICAgICAgc2VydmljZTogJ3JkcycsXG4gICAgICAgICAgYWN0aW9uOiAnc3RvcERCSW5zdGFuY2UnLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIERiSW5zdGFuY2VJZGVudGlmaWVyOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZUlkZW50aWZpZXInKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3VsdFBhdGg6ICckLnJlc3VsdC5zdG9wJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZGVzY3JpYmVEQkNsdXN0ZXJzVGFzayA9IG5ldyB0YXNrcy5DYWxsQXdzU2VydmljZShzY29wZSwgJ0Rlc2NyaWJlREJDbHVzdGVycycsIHtcbiAgICAgICAgICBpYW1SZXNvdXJjZXM6IFtgYXJuOmF3czpyZHM6Kjoke2FjY291bnR9OmNsdXN0ZXI6KmBdLFxuICAgICAgICAgIHNlcnZpY2U6ICdyZHMnLFxuICAgICAgICAgIGFjdGlvbjogJ2Rlc2NyaWJlREJDbHVzdGVycycsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgRGJDbHVzdGVySWRlbnRpZmllcjogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmV2ZW50LmRldGFpbC5Tb3VyY2VJZGVudGlmaWVyJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXN1bHRQYXRoOiAnJC5yZXN1bHQuZGVzY3JpYmUnLFxuICAgICAgICAgIHJlc3VsdFNlbGVjdG9yOiB7XG4gICAgICAgICAgICBzdGF0dXM6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5EYkNsdXN0ZXJzWzBdLlN0YXR1cycpLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLkRiQ2x1c3RlcnNbMF0uRGJDbHVzdGVySWRlbnRpZmllcicpLFxuICAgICAgICAgICAgdGFnczogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLkRiQ2x1c3RlcnNbMF0uVGFnTGlzdCcpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHN0b3BEQkNsdXN0ZXJUYXNrID0gbmV3IHRhc2tzLkNhbGxBd3NTZXJ2aWNlKHNjb3BlLCAnU3RvcERCQ2x1c3RlcicsIHtcbiAgICAgICAgICBpYW1SZXNvdXJjZXM6IFtgYXJuOmF3czpyZHM6Kjoke2FjY291bnR9OmNsdXN0ZXI6KmBdLFxuICAgICAgICAgIHNlcnZpY2U6ICdyZHMnLFxuICAgICAgICAgIGFjdGlvbjogJ3N0b3BEQkNsdXN0ZXInLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIERiQ2x1c3RlcklkZW50aWZpZXI6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlSWRlbnRpZmllcicpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzdWx0UGF0aDogJyQucmVzdWx0LnN0b3AnLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBkZXNjcmliZVR5cGVDaG9pY2UgPSBuZXcgc2ZuLkNob2ljZShzY29wZSwgJ0Rlc2NyaWJlVHlwZUNob2ljZScpXG4gICAgICAgICAgLndoZW4oXG4gICAgICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLXR5cGUnLCAnUkRTIERCIEluc3RhbmNlIEV2ZW50JyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJywgJ0RCX0lOU1RBTkNFJyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5FdmVudElEJywgJ1JEUy1FVkVOVC0wMTU0JyksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZGVzY3JpYmVEQkluc3RhbmNlc1Rhc2ssXG4gICAgICAgICAgKVxuICAgICAgICAgIC53aGVuKFxuICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5hbmQoXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC10eXBlJywgJ1JEUyBEQiBDbHVzdGVyIEV2ZW50JyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJywgJ0NMVVNURVInKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLkV2ZW50SUQnLCAnUkRTLUVWRU5ULTAxNTMnKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBkZXNjcmliZURCQ2x1c3RlcnNUYXNrLFxuICAgICAgICAgIClcbiAgICAgICAgICAub3RoZXJ3aXNlKG5ldyBzZm4uRmFpbChzY29wZSwgJ1Vua25vd25UeXBlJykpO1xuXG4gICAgICAgIHN0cmluZ01hcHBpbmdEZWZpbml0aW9uLm5leHQoZGVzY3JpYmVUeXBlQ2hvaWNlKTtcblxuICAgICAgICBjb25zdCBzdGF0dXNDaGFuZ2VXYWl0ID0gbmV3IHNmbi5XYWl0KHNjb3BlLCAnU3RhdHVzQ2hhbmdlV2FpdCcsIHtcbiAgICAgICAgICB0aW1lOiBzZm4uV2FpdFRpbWUuZHVyYXRpb24oRHVyYXRpb24ubWludXRlcyg1KSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHN0YXR1c0NoYW5nZVdhaXQubmV4dChkZXNjcmliZVR5cGVDaG9pY2UpO1xuXG4gICAgICAgIHN0b3BEQkluc3RhbmNlVGFzay5uZXh0KHN0YXR1c0NoYW5nZVdhaXQpO1xuXG4gICAgICAgIHN0b3BEQkNsdXN0ZXJUYXNrLm5leHQoc3RhdHVzQ2hhbmdlV2FpdCk7XG5cbiAgICAgICAgLy8g8J+RhyBTdGF0dXMgQ2hvaWNlXG4gICAgICAgIGNvbnN0IHN0YXR1c0Nob2ljZSA9IG5ldyBzZm4uQ2hvaWNlKHNjb3BlLCAnU3RhdHVzQ2hvaWNlJylcbiAgICAgICAgICAvLyBkYiBpbnN0YW5jZSBzdG9wIG9uIHN0YXR1cy5hdmFpbGFibGVcbiAgICAgICAgICAud2hlbihcbiAgICAgICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwtdHlwZScsICdSRFMgREIgSW5zdGFuY2UgRXZlbnQnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZVR5cGUnLCAnREJfSU5TVEFOQ0UnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLkV2ZW50SUQnLCAnUkRTLUVWRU5ULTAxNTQnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQucmVzdWx0LmRlc2NyaWJlLnN0YXR1cycsICdhdmFpbGFibGUnKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdG9wREJJbnN0YW5jZVRhc2ssXG4gICAgICAgICAgKVxuICAgICAgICAgIC8vIGRiIGNsdXN0ZXIgc3RvcCBvbiBzdGF0dXMuYXZhaWxhYmxlXG4gICAgICAgICAgLndoZW4oXG4gICAgICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLXR5cGUnLCAnUkRTIERCIENsdXN0ZXIgRXZlbnQnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZVR5cGUnLCAnQ0xVU1RFUicpLFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuRXZlbnRJRCcsICdSRFMtRVZFTlQtMDE1MycpLFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5yZXN1bHQuZGVzY3JpYmUuc3RhdHVzJywgJ2F2YWlsYWJsZScpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0b3BEQkNsdXN0ZXJUYXNrLFxuICAgICAgICAgIClcbiAgICAgICAgICAud2hlbihcbiAgICAgICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLm9yKFxuICAgICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLXR5cGUnLCAnUkRTIERCIEluc3RhbmNlIEV2ZW50JyksXG4gICAgICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZScsICdEQl9JTlNUQU5DRScpLFxuICAgICAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLkV2ZW50SUQnLCAnUkRTLUVWRU5ULTAxNTQnKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLXR5cGUnLCAnUkRTIERCIENsdXN0ZXIgRXZlbnQnKSxcbiAgICAgICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJywgJ0NMVVNURVInKSxcbiAgICAgICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5FdmVudElEJywgJ1JEUy1FVkVOVC0wMTUzJyksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQucmVzdWx0LmRlc2NyaWJlLnN0YXR1cycsICdzdG9wcGVkJyksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgcHJlcGFyZVRvcGljVmFsdWUsIC8vIGdlbmVyYXRlZCAmIHB1Ymxpc2ggbWVzc2FnZVxuICAgICAgICAgIClcbiAgICAgICAgICAud2hlbihcbiAgICAgICAgICAgIHNmbi5Db25kaXRpb24ub3IoXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnc3RhcnRpbmcnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQucmVzdWx0LmRlc2NyaWJlLnN0YXR1cycsICdjb25maWd1cmluZy1lbmhhbmNlZC1tb25pdG9yaW5nJyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnYmFja2luZy11cCcpLFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5yZXN1bHQuZGVzY3JpYmUuc3RhdHVzJywgJ21vZGlmeWluZycpLFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5yZXN1bHQuZGVzY3JpYmUuc3RhdHVzJywgJ3N0b3BwaW5nJyksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdHVzQ2hhbmdlV2FpdCxcbiAgICAgICAgICApXG4gICAgICAgICAgLm90aGVyd2lzZShuZXcgc2ZuLkZhaWwoc2NvcGUsICdTdGF0dXNGYWlsJywge1xuICAgICAgICAgICAgY2F1c2U6ICdkYiBpbnN0YW5jZSBvciBjbHVzdGVyIHN0YXR1cyBmYWlsLicsXG4gICAgICAgICAgfSkpO1xuXG4gICAgICAgIC8vIPCfkYcgVGFnIE1hdGNoXG4gICAgICAgIGNvbnN0IHRhZ01hdGNoQ2hvaWNlID0gbmV3IHNmbi5DaG9pY2Uoc2NvcGUsICdFeGlzdFRhZ0Nob2lkZScpXG4gICAgICAgICAgLndoZW4oXG4gICAgICAgICAgICBzZm4uQ29uZGl0aW9uLmlzUHJlc2VudCgnJC5yZXN1bHQuZGVzY3JpYmUudGFncycpLFxuICAgICAgICAgICAgbmV3IHNmbi5QYXNzKHNjb3BlLCAnQ29udGFpblRhZ1ZsdWUnLCB7XG4gICAgICAgICAgICAgIHJlc3VsdFBhdGg6ICckLmNoZWNrLnRhZycsXG4gICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICBpc0NvbnRhaW46IHNmbi5Kc29uUGF0aC5hcnJheUNvbnRhaW5zKFxuICAgICAgICAgICAgICAgICAgc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLnBhcmFtcy50YWdWYWx1ZXMnKSxcbiAgICAgICAgICAgICAgICAgIHNmbi5Kc29uUGF0aC5hcnJheUdldEl0ZW0oc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLnJlc3VsdC5kZXNjcmliZS50YWdzWz8oQC5LZXkgPT0gJC5wYXJhbXMudGFnS2V5KV0uVmFsdWUnKSwgMCksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLm5leHQoXG4gICAgICAgICAgICAgIG5ldyBzZm4uQ2hvaWNlKHNjb3BlLCAnRmlsdGVyVGFnQ2hvaXNlJylcbiAgICAgICAgICAgICAgICAud2hlbihcbiAgICAgICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uYm9vbGVhbkVxdWFscygnJC5jaGVjay50YWcuaXNDb250YWluJywgdHJ1ZSksXG4gICAgICAgICAgICAgICAgICBzdGF0dXNDaG9pY2UsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5vdGhlcndpc2UoXG4gICAgICAgICAgICAgICAgICBuZXcgc2ZuLlBhc3Moc2NvcGUsICdOb1RhZ01hdGNoJywge1xuICAgICAgICAgICAgICAgICAgICBjb21tZW50OiAnbm8gdGFnIG1hdGNoJyxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgICAub3RoZXJ3aXNlKFxuICAgICAgICAgICAgbmV3IHNmbi5QYXNzKHNjb3BlLCAnTm9UYWdzRm91bmQnLCB7XG4gICAgICAgICAgICAgIGNvbW1lbnQ6ICdubyB0YWdzIGZvdW5kJyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgLy8g8J+RhyBkZXNjcmliZSBuZXh0IHRhZyBmb3VuZCAmIG1hdGNoXG4gICAgICAgIGRlc2NyaWJlREJJbnN0YW5jZXNUYXNrLm5leHQodGFnTWF0Y2hDaG9pY2UpO1xuICAgICAgICBkZXNjcmliZURCQ2x1c3RlcnNUYXNrLm5leHQodGFnTWF0Y2hDaG9pY2UpO1xuXG4gICAgICAgIHJldHVybiBzZm4uRGVmaW5pdGlvbkJvZHkuZnJvbUNoYWluYWJsZShzdGFydGluZ1dhaXQpO1xuICAgICAgfSkoKSxcbiAgICB9KTtcbiAgfVxufSJdfQ==
package/package.json CHANGED
@@ -48,23 +48,25 @@
48
48
  "eslint-plugin-import": "^2.31.0",
49
49
  "jest": "^29.7.0",
50
50
  "jest-junit": "^16",
51
- "jsii": "5.5.x",
51
+ "jsii": "5.7.x",
52
52
  "jsii-diff": "^1.106.0",
53
53
  "jsii-docgen": "^10.5.0",
54
54
  "jsii-pacmak": "^1.106.0",
55
- "jsii-rosetta": "5.5.x",
55
+ "jsii-rosetta": "5.7.x",
56
56
  "projen": "^0.91.6",
57
57
  "ts-jest": "^29.2.5",
58
58
  "ts-node": "^10.9.2",
59
- "typescript": "5.5.x"
59
+ "typescript": "5.7.x"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "@gammarers/aws-resource-naming": "^0.10.1",
63
+ "@gammarers/aws-sns-slack-message-lambda-subscription": "^0.2.4",
63
64
  "aws-cdk-lib": "^2.120.0",
64
65
  "constructs": "^10.0.5"
65
66
  },
66
67
  "dependencies": {
67
- "@gammarers/aws-resource-naming": "^0.10.1"
68
+ "@gammarers/aws-resource-naming": "^0.10.1",
69
+ "@gammarers/aws-sns-slack-message-lambda-subscription": "^0.2.4"
68
70
  },
69
71
  "keywords": [
70
72
  "auto",
@@ -83,7 +85,7 @@
83
85
  "publishConfig": {
84
86
  "access": "public"
85
87
  },
86
- "version": "2.2.7",
88
+ "version": "2.3.1",
87
89
  "jest": {
88
90
  "coverageProvider": "v8",
89
91
  "testMatch": [