@gammarers/aws-rds-database-auto-running-protection-stack 2.0.6 → 2.1.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 +165 -11
- package/API.md +94 -0
- package/README.md +18 -0
- package/lib/index.d.ts +11 -0
- package/lib/index.js +28 -18
- package/package.json +5 -1
package/.jsii
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
]
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
+
"@gammarers/aws-resource-naming": "^0.10.1",
|
|
11
12
|
"aws-cdk-lib": "^2.120.0",
|
|
12
13
|
"constructs": "^10.0.5"
|
|
13
14
|
},
|
|
@@ -90,6 +91,24 @@
|
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
},
|
|
94
|
+
"@gammarers/aws-resource-naming": {
|
|
95
|
+
"submodules": {
|
|
96
|
+
"@gammarers/aws-resource-naming.ResourceNaming": {}
|
|
97
|
+
},
|
|
98
|
+
"targets": {
|
|
99
|
+
"dotnet": {
|
|
100
|
+
"namespace": "Gammarers.Utils.AWS",
|
|
101
|
+
"packageId": "Gammarers.Utils.AWS.ResourceNaming"
|
|
102
|
+
},
|
|
103
|
+
"js": {
|
|
104
|
+
"npm": "@gammarers/aws-resource-naming"
|
|
105
|
+
},
|
|
106
|
+
"python": {
|
|
107
|
+
"distName": "gammarers.aws-resource-naming",
|
|
108
|
+
"module": "gammarers.aws_resource_naming"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
93
112
|
"aws-cdk-lib": {
|
|
94
113
|
"submodules": {
|
|
95
114
|
"aws-cdk-lib.alexa_ask": {
|
|
@@ -3684,7 +3703,7 @@
|
|
|
3684
3703
|
},
|
|
3685
3704
|
"name": "@gammarers/aws-rds-database-auto-running-protection-stack",
|
|
3686
3705
|
"readme": {
|
|
3687
|
-
"markdown": "# AWS RDS Database Auto Running Protection Stack\n\n[](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/blob/main/LICENSE)\n[](https://www.npmjs.com/package/@gammarers/aws-rds-database-auto-running-protection-stack)\n[](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/actions/workflows/release.yml)\n[](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/releases)\n\n[](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## 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"
|
|
3706
|
+
"markdown": "# AWS RDS Database Auto Running Protection Stack\n\n[](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/blob/main/LICENSE)\n[](https://www.npmjs.com/package/@gammarers/aws-rds-database-auto-running-protection-stack)\n[](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/actions/workflows/release.yml)\n[](https://github.com/gammarers/aws-rds-database-auto-running-protection-stack/releases)\n\n[](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"
|
|
3688
3707
|
},
|
|
3689
3708
|
"repository": {
|
|
3690
3709
|
"type": "git",
|
|
@@ -3697,6 +3716,113 @@
|
|
|
3697
3716
|
}
|
|
3698
3717
|
},
|
|
3699
3718
|
"types": {
|
|
3719
|
+
"@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming": {
|
|
3720
|
+
"assembly": "@gammarers/aws-rds-database-auto-running-protection-stack",
|
|
3721
|
+
"datatype": true,
|
|
3722
|
+
"docs": {
|
|
3723
|
+
"stability": "stable"
|
|
3724
|
+
},
|
|
3725
|
+
"fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming",
|
|
3726
|
+
"kind": "interface",
|
|
3727
|
+
"locationInModule": {
|
|
3728
|
+
"filename": "src/index.ts",
|
|
3729
|
+
"line": 23
|
|
3730
|
+
},
|
|
3731
|
+
"name": "CustomNaming",
|
|
3732
|
+
"properties": [
|
|
3733
|
+
{
|
|
3734
|
+
"abstract": true,
|
|
3735
|
+
"docs": {
|
|
3736
|
+
"stability": "stable"
|
|
3737
|
+
},
|
|
3738
|
+
"immutable": true,
|
|
3739
|
+
"locationInModule": {
|
|
3740
|
+
"filename": "src/index.ts",
|
|
3741
|
+
"line": 29
|
|
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": 27
|
|
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": 28
|
|
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": 25
|
|
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": 26
|
|
3802
|
+
},
|
|
3803
|
+
"name": "stateMachineRoleName",
|
|
3804
|
+
"type": {
|
|
3805
|
+
"primitive": "string"
|
|
3806
|
+
}
|
|
3807
|
+
},
|
|
3808
|
+
{
|
|
3809
|
+
"abstract": true,
|
|
3810
|
+
"docs": {
|
|
3811
|
+
"stability": "stable"
|
|
3812
|
+
},
|
|
3813
|
+
"immutable": true,
|
|
3814
|
+
"locationInModule": {
|
|
3815
|
+
"filename": "src/index.ts",
|
|
3816
|
+
"line": 24
|
|
3817
|
+
},
|
|
3818
|
+
"name": "type",
|
|
3819
|
+
"type": {
|
|
3820
|
+
"fqn": "@gammarers/aws-resource-naming.ResourceNamingType"
|
|
3821
|
+
}
|
|
3822
|
+
}
|
|
3823
|
+
],
|
|
3824
|
+
"symbolId": "src/index:CustomNaming"
|
|
3825
|
+
},
|
|
3700
3826
|
"@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStack": {
|
|
3701
3827
|
"assembly": "@gammarers/aws-rds-database-auto-running-protection-stack",
|
|
3702
3828
|
"base": "aws-cdk-lib.Stack",
|
|
@@ -3710,7 +3836,7 @@
|
|
|
3710
3836
|
},
|
|
3711
3837
|
"locationInModule": {
|
|
3712
3838
|
"filename": "src/index.ts",
|
|
3713
|
-
"line":
|
|
3839
|
+
"line": 33
|
|
3714
3840
|
},
|
|
3715
3841
|
"parameters": [
|
|
3716
3842
|
{
|
|
@@ -3736,7 +3862,7 @@
|
|
|
3736
3862
|
"kind": "class",
|
|
3737
3863
|
"locationInModule": {
|
|
3738
3864
|
"filename": "src/index.ts",
|
|
3739
|
-
"line":
|
|
3865
|
+
"line": 32
|
|
3740
3866
|
},
|
|
3741
3867
|
"name": "RDSDatabaseAutoRunningProtectionStack",
|
|
3742
3868
|
"symbolId": "src/index:RDSDatabaseAutoRunningProtectionStack"
|
|
@@ -3754,7 +3880,7 @@
|
|
|
3754
3880
|
"kind": "interface",
|
|
3755
3881
|
"locationInModule": {
|
|
3756
3882
|
"filename": "src/index.ts",
|
|
3757
|
-
"line":
|
|
3883
|
+
"line": 17
|
|
3758
3884
|
},
|
|
3759
3885
|
"name": "RDSDatabaseAutoRunningProtectionStackProps",
|
|
3760
3886
|
"properties": [
|
|
@@ -3766,7 +3892,7 @@
|
|
|
3766
3892
|
"immutable": true,
|
|
3767
3893
|
"locationInModule": {
|
|
3768
3894
|
"filename": "src/index.ts",
|
|
3769
|
-
"line":
|
|
3895
|
+
"line": 18
|
|
3770
3896
|
},
|
|
3771
3897
|
"name": "targetResource",
|
|
3772
3898
|
"type": {
|
|
@@ -3781,13 +3907,41 @@
|
|
|
3781
3907
|
"immutable": true,
|
|
3782
3908
|
"locationInModule": {
|
|
3783
3909
|
"filename": "src/index.ts",
|
|
3784
|
-
"line":
|
|
3910
|
+
"line": 19
|
|
3785
3911
|
},
|
|
3786
3912
|
"name": "enableRule",
|
|
3787
3913
|
"optional": true,
|
|
3788
3914
|
"type": {
|
|
3789
3915
|
"primitive": "boolean"
|
|
3790
3916
|
}
|
|
3917
|
+
},
|
|
3918
|
+
{
|
|
3919
|
+
"abstract": true,
|
|
3920
|
+
"docs": {
|
|
3921
|
+
"stability": "stable"
|
|
3922
|
+
},
|
|
3923
|
+
"immutable": true,
|
|
3924
|
+
"locationInModule": {
|
|
3925
|
+
"filename": "src/index.ts",
|
|
3926
|
+
"line": 20
|
|
3927
|
+
},
|
|
3928
|
+
"name": "resourceNamingOption",
|
|
3929
|
+
"optional": true,
|
|
3930
|
+
"type": {
|
|
3931
|
+
"union": {
|
|
3932
|
+
"types": [
|
|
3933
|
+
{
|
|
3934
|
+
"fqn": "@gammarers/aws-resource-naming.ResourceDefaultNaming"
|
|
3935
|
+
},
|
|
3936
|
+
{
|
|
3937
|
+
"fqn": "@gammarers/aws-resource-naming.ResourceAutoNaming"
|
|
3938
|
+
},
|
|
3939
|
+
{
|
|
3940
|
+
"fqn": "@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming"
|
|
3941
|
+
}
|
|
3942
|
+
]
|
|
3943
|
+
}
|
|
3944
|
+
}
|
|
3791
3945
|
}
|
|
3792
3946
|
],
|
|
3793
3947
|
"symbolId": "src/index:RDSDatabaseAutoRunningProtectionStackProps"
|
|
@@ -3802,7 +3956,7 @@
|
|
|
3802
3956
|
"kind": "interface",
|
|
3803
3957
|
"locationInModule": {
|
|
3804
3958
|
"filename": "src/index.ts",
|
|
3805
|
-
"line":
|
|
3959
|
+
"line": 12
|
|
3806
3960
|
},
|
|
3807
3961
|
"name": "TargetResourceProperty",
|
|
3808
3962
|
"properties": [
|
|
@@ -3814,7 +3968,7 @@
|
|
|
3814
3968
|
"immutable": true,
|
|
3815
3969
|
"locationInModule": {
|
|
3816
3970
|
"filename": "src/index.ts",
|
|
3817
|
-
"line":
|
|
3971
|
+
"line": 13
|
|
3818
3972
|
},
|
|
3819
3973
|
"name": "tagKey",
|
|
3820
3974
|
"type": {
|
|
@@ -3829,7 +3983,7 @@
|
|
|
3829
3983
|
"immutable": true,
|
|
3830
3984
|
"locationInModule": {
|
|
3831
3985
|
"filename": "src/index.ts",
|
|
3832
|
-
"line":
|
|
3986
|
+
"line": 14
|
|
3833
3987
|
},
|
|
3834
3988
|
"name": "tagValues",
|
|
3835
3989
|
"type": {
|
|
@@ -3845,6 +3999,6 @@
|
|
|
3845
3999
|
"symbolId": "src/index:TargetResourceProperty"
|
|
3846
4000
|
}
|
|
3847
4001
|
},
|
|
3848
|
-
"version": "2.
|
|
3849
|
-
"fingerprint": "
|
|
4002
|
+
"version": "2.1.1",
|
|
4003
|
+
"fingerprint": "2wICo570zn+D8/sCE1Ffii4xS4pQ2u/eF8yGtxGA/u8="
|
|
3850
4004
|
}
|
package/API.md
CHANGED
|
@@ -879,6 +879,89 @@ 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
|
+
|
|
882
965
|
### RDSDatabaseAutoRunningProtectionStackProps <a name="RDSDatabaseAutoRunningProtectionStackProps" id="@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps"></a>
|
|
883
966
|
|
|
884
967
|
#### Initializer <a name="Initializer" id="@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.Initializer"></a>
|
|
@@ -905,6 +988,7 @@ const rDSDatabaseAutoRunningProtectionStackProps: RDSDatabaseAutoRunningProtecti
|
|
|
905
988
|
| <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. |
|
|
906
989
|
| <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.* |
|
|
907
990
|
| <code><a href="#@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.enableRule">enableRule</a></code> | <code>boolean</code> | *No description.* |
|
|
991
|
+
| <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.* |
|
|
908
992
|
|
|
909
993
|
---
|
|
910
994
|
|
|
@@ -1138,6 +1222,16 @@ public readonly enableRule: boolean;
|
|
|
1138
1222
|
|
|
1139
1223
|
---
|
|
1140
1224
|
|
|
1225
|
+
##### `resourceNamingOption`<sup>Optional</sup> <a name="resourceNamingOption" id="@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStackProps.property.resourceNamingOption"></a>
|
|
1226
|
+
|
|
1227
|
+
```typescript
|
|
1228
|
+
public readonly resourceNamingOption: ResourceDefaultNaming | ResourceAutoNaming | CustomNaming;
|
|
1229
|
+
```
|
|
1230
|
+
|
|
1231
|
+
- *Type:* @gammarers/aws-resource-naming.ResourceDefaultNaming | @gammarers/aws-resource-naming.ResourceAutoNaming | <a href="#@gammarers/aws-rds-database-auto-running-protection-stack.CustomNaming">CustomNaming</a>
|
|
1232
|
+
|
|
1233
|
+
---
|
|
1234
|
+
|
|
1141
1235
|
### TargetResourceProperty <a name="TargetResourceProperty" id="@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty"></a>
|
|
1142
1236
|
|
|
1143
1237
|
#### Initializer <a name="Initializer" id="@gammarers/aws-rds-database-auto-running-protection-stack.TargetResourceProperty.Initializer"></a>
|
package/README.md
CHANGED
|
@@ -9,6 +9,24 @@
|
|
|
9
9
|
|
|
10
10
|
This constructor stack includes a function to automatically stop a database or cluster that will automatically start in 7 days.
|
|
11
11
|
|
|
12
|
+
> [!WARNING]
|
|
13
|
+
> v2.1.0:
|
|
14
|
+
> Stack props add option resourceNamingOption
|
|
15
|
+
> default ResourceNamingType.DEFAULT is cdk generated name
|
|
16
|
+
> if you want to maintain compatibility with versions below `v2.1.0`, please include the following settings (ResourceNamingType.AUTO).
|
|
17
|
+
> ```typescript
|
|
18
|
+
> new RDSDatabaseAutoRunningProtectionStack(app, 'RDSDatabaseAutoRunningProtectionStack', {
|
|
19
|
+
> stackName: 'rds-database-auto-running-protection-stack',
|
|
20
|
+
> targetResource: {
|
|
21
|
+
> tagKey: 'AutoRunningProtection',
|
|
22
|
+
> tagValues: ['YES'],
|
|
23
|
+
> },
|
|
24
|
+
> resourceNamingOption: {
|
|
25
|
+
> type: ResourceNamingType.AUTO, // HERE
|
|
26
|
+
> },
|
|
27
|
+
> });
|
|
28
|
+
> ```
|
|
29
|
+
|
|
12
30
|
## Resources
|
|
13
31
|
|
|
14
32
|
This construct creating resource list.
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { ResourceAutoNaming, ResourceDefaultNaming, ResourceNamingType } from '@gammarers/aws-resource-naming';
|
|
1
2
|
import { Stack, StackProps } from 'aws-cdk-lib';
|
|
2
3
|
import { Construct } from 'constructs';
|
|
4
|
+
export type ResourceNamingOption = ResourceDefaultNaming | ResourceAutoNaming | CustomNaming;
|
|
3
5
|
export interface TargetResourceProperty {
|
|
4
6
|
readonly tagKey: string;
|
|
5
7
|
readonly tagValues: string[];
|
|
@@ -7,6 +9,15 @@ export interface TargetResourceProperty {
|
|
|
7
9
|
export interface RDSDatabaseAutoRunningProtectionStackProps extends StackProps {
|
|
8
10
|
readonly targetResource: TargetResourceProperty;
|
|
9
11
|
readonly enableRule?: boolean;
|
|
12
|
+
readonly resourceNamingOption?: ResourceNamingOption;
|
|
13
|
+
}
|
|
14
|
+
export interface CustomNaming {
|
|
15
|
+
readonly type: ResourceNamingType.CUSTOM;
|
|
16
|
+
readonly stateMachineName: string;
|
|
17
|
+
readonly stateMachineRoleName: string;
|
|
18
|
+
readonly startEventCatchRuleRoleName: string;
|
|
19
|
+
readonly startInstanceEventCatchRuleName: string;
|
|
20
|
+
readonly startClusterEventCatchRuleName: string;
|
|
10
21
|
}
|
|
11
22
|
export declare class RDSDatabaseAutoRunningProtectionStack extends Stack {
|
|
12
23
|
constructor(scope: Construct, id: string, props: RDSDatabaseAutoRunningProtectionStackProps);
|
package/lib/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var _a;
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.RDSDatabaseAutoRunningProtectionStack = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
-
const
|
|
6
|
+
const aws_resource_naming_1 = require("@gammarers/aws-resource-naming");
|
|
7
7
|
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
8
8
|
const events = require("aws-cdk-lib/aws-events");
|
|
9
9
|
const targets = require("aws-cdk-lib/aws-events-targets");
|
|
@@ -13,12 +13,20 @@ const tasks = require("aws-cdk-lib/aws-stepfunctions-tasks");
|
|
|
13
13
|
class RDSDatabaseAutoRunningProtectionStack extends aws_cdk_lib_1.Stack {
|
|
14
14
|
constructor(scope, id, props) {
|
|
15
15
|
super(scope, id, props);
|
|
16
|
+
// 👇 Get AWS account
|
|
16
17
|
const account = aws_cdk_lib_1.Stack.of(this).account;
|
|
17
18
|
//const region = Stack.of(this).region;
|
|
18
|
-
// 👇Create random
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
// 👇 Create random 8 length string
|
|
20
|
+
const random = aws_resource_naming_1.ResourceNaming.createRandomString(`${aws_cdk_lib_1.Names.uniqueId(scope)}.${aws_cdk_lib_1.Names.uniqueId(this)}`);
|
|
21
|
+
// 👇 Auto naeming
|
|
22
|
+
const autoNaming = {
|
|
23
|
+
stateMachineName: `rds-db-auto-running-stop-${random}-state-machine`,
|
|
24
|
+
stateMachineRoleName: `rds-db-auto-running-stop-state-machine-${random}-role`,
|
|
25
|
+
startEventCatchRuleRoleName: `rds-db-auto-running-catch-event-${random}-role`,
|
|
26
|
+
startInstanceEventCatchRuleName: `rds-db-instance-running-event-catch-${random}-rule`,
|
|
27
|
+
startClusterEventCatchRuleName: `rds-db-cluster-running-event-catch-${random}-rule`,
|
|
28
|
+
};
|
|
29
|
+
const names = aws_resource_naming_1.ResourceNaming.naming(autoNaming, props.resourceNamingOption);
|
|
22
30
|
const succeed = new sfn.Succeed(this, 'Succeed');
|
|
23
31
|
const startingWait = new sfn.Wait(this, 'StartingWait', {
|
|
24
32
|
time: sfn.WaitTime.duration(aws_cdk_lib_1.Duration.minutes(1)),
|
|
@@ -121,18 +129,20 @@ class RDSDatabaseAutoRunningProtectionStack extends aws_cdk_lib_1.Stack {
|
|
|
121
129
|
describeDBClustersTask.next(tagMatchChoice);
|
|
122
130
|
// 👇 StepFunctions
|
|
123
131
|
const stateMachine = new sfn.StateMachine(this, 'StateMachine', {
|
|
124
|
-
stateMachineName:
|
|
132
|
+
stateMachineName: names.stateMachineName,
|
|
125
133
|
definitionBody: sfn.DefinitionBody.fromChainable(startingWait),
|
|
126
134
|
});
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
135
|
+
if (names.stateMachineRoleName) {
|
|
136
|
+
const role = stateMachine.node.findChild('Role');
|
|
137
|
+
const cfnRole = role.node.defaultChild;
|
|
138
|
+
cfnRole.addPropertyOverride('RoleName', names.stateMachineRoleName);
|
|
139
|
+
cfnRole.addPropertyOverride('Description', 'rds database auto running stop state machine role.');
|
|
140
|
+
const policy = role.node.findChild('DefaultPolicy');
|
|
141
|
+
const cfnPolicy = policy.node.defaultChild;
|
|
142
|
+
cfnPolicy.addPropertyOverride('PolicyName', `rds-db-auto-running-stop-state-machine-${random}-policy`);
|
|
143
|
+
}
|
|
134
144
|
const execRole = new iam.Role(this, 'EventExecRole', {
|
|
135
|
-
roleName:
|
|
145
|
+
roleName: names.startEventCatchRuleRoleName,
|
|
136
146
|
description: 'db auto start catch with start state machine event role',
|
|
137
147
|
assumedBy: new iam.ServicePrincipal('events.amazonaws.com'),
|
|
138
148
|
inlinePolicies: {
|
|
@@ -156,7 +166,7 @@ class RDSDatabaseAutoRunningProtectionStack extends aws_cdk_lib_1.Stack {
|
|
|
156
166
|
})();
|
|
157
167
|
// 👇 EventBridge by RDS DB Instance Auto Start Event
|
|
158
168
|
new events.Rule(this, 'DBInstanceEvent', {
|
|
159
|
-
ruleName:
|
|
169
|
+
ruleName: names.startInstanceEventCatchRuleName,
|
|
160
170
|
description: 'rds db instance running event catch rule.',
|
|
161
171
|
enabled: enableRule,
|
|
162
172
|
eventPattern: {
|
|
@@ -181,7 +191,7 @@ class RDSDatabaseAutoRunningProtectionStack extends aws_cdk_lib_1.Stack {
|
|
|
181
191
|
});
|
|
182
192
|
// 👇 EventBridge by RDS DB Instance Auto Start Event
|
|
183
193
|
new events.Rule(this, 'DBClusterEvent', {
|
|
184
|
-
ruleName:
|
|
194
|
+
ruleName: names.startClusterEventCatchRuleName,
|
|
185
195
|
description: 'db cluster running event catch rule',
|
|
186
196
|
enabled: enableRule,
|
|
187
197
|
eventPattern: {
|
|
@@ -208,5 +218,5 @@ class RDSDatabaseAutoRunningProtectionStack extends aws_cdk_lib_1.Stack {
|
|
|
208
218
|
}
|
|
209
219
|
exports.RDSDatabaseAutoRunningProtectionStack = RDSDatabaseAutoRunningProtectionStack;
|
|
210
220
|
_a = JSII_RTTI_SYMBOL_1;
|
|
211
|
-
RDSDatabaseAutoRunningProtectionStack[_a] = { fqn: "@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStack", version: "2.
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpQ0FBaUM7QUFDakMsNkNBQWlFO0FBQ2pFLGlEQUFpRDtBQUNqRCwwREFBMEQ7QUFDMUQsMkNBQTJDO0FBQzNDLHFEQUFxRDtBQUNyRCw2REFBNkQ7QUFhN0QsTUFBYSxxQ0FBc0MsU0FBUSxtQkFBSztJQUM5RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlEO1FBQ3pGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLE1BQU0sT0FBTyxHQUFHLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUN2Qyx1Q0FBdUM7UUFFdkMsc0JBQXNCO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO2FBQzNELE1BQU0sQ0FBQyxHQUFHLG1CQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLG1CQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7YUFDMUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpCLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFakQsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDdEQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLHNCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pELENBQUMsQ0FBQztRQUVILG9CQUFvQjtRQUNwQixNQUFNLGtCQUFrQixHQUFhLElBQUksR0FBRyxDQUFD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LHFEQUFxRDtRQUNyRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3RDLFFBQVEsRUFBRSxzQ0FBc0MsR0FBRyxPQUFPO1lBQzFELFdBQVcsRUFBRSxxQ0FBcUM7WUFDbEQsT0FBTyxFQUFFLFVBQVU7WUFDbkIsWUFBWSxFQUFFO2dCQUNaLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsVUFBVSxFQUFFLENBQUMsc0JBQXNCLENBQUM7Z0JBQ3BDLE1BQU0sRUFBRTtvQkFDTixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDNUI7YUFDRjtZQUNELE9BQU8sRUFBRTtnQkFDUCxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFO29CQUN4QyxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUM7d0JBQ3ZDLEtBQUssRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7d0JBQ3RDLE1BQU0sRUFBRTs0QkFDTixNQUFNLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNOzRCQUNuQyxTQUFTLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTO3lCQUMxQztxQkFDRixDQUFDO2lCQUNILENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBalNILHNGQWtTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgRHVyYXRpb24sIE5hbWVzLCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzJztcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgKiBhcyB0YXNrcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucy10YXNrcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRSZXNvdXJjZVByb3BlcnR5IHtcbiAgcmVhZG9ubHkgdGFnS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhZ1ZhbHVlczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUkRTRGF0YWJhc2VBdXRvUnVubmluZ1Byb3RlY3Rpb25TdGFja1Byb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIHJlYWRvbmx5IHRhcmdldFJlc291cmNlOiBUYXJnZXRSZXNvdXJjZVByb3BlcnR5O1xuICByZWFkb25seSBlbmFibGVSdWxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFJEU0RhdGFiYXNlQXV0b1J1bm5pbmdQcm90ZWN0aW9uU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGNvbnN0IGFjY291bnQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuICAgIC8vY29uc3QgcmVnaW9uID0gU3RhY2sub2YodGhpcykucmVnaW9uO1xuXG4gICAgLy8g8J+Rh0NyZWF0ZSByYW5kb20ga2V5XG4gICAgY29uc3Qga2V5ID0gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYWtlMjU2JywgeyBvdXRwdXRMZW5ndGg6IDQgfSlcbiAgICAgIC51cGRhdGUoYCR7TmFtZXMudW5pcXVlSWQoc2NvcGUpfS4ke05hbWVzLnVuaXF1ZUlkKHRoaXMpfWApXG4gICAgICAuZGlnZXN0KCdoZXgnKTtcblxuICAgIGNvbnN0IHN1Y2NlZWQgPSBuZXcgc2ZuLlN1Y2NlZWQodGhpcywgJ1N1Y2NlZWQnKTtcblxuICAgIGNvbnN0IHN0YXJ0aW5nV2FpdCA9IG5ldyBzZm4uV2FpdCh0aGlzLCAnU3RhcnRpbmdXYWl0Jywge1xuICAgICAgdGltZTogc2ZuLldhaXRUaW1lLmR1cmF0aW9uKER1cmF0aW9uLm1pbnV0ZXMoMSkpLFxuICAgIH0pO1xuXG4gICAgLy8gU3RhdHVzIGRlZmluaXRpb25cbiAgICBjb25zdCBzdGF0dXNlc0RlZmluaXRpb246IHNmbi5QYXNzID0gbmV3IHNmbi5QYXNzKHRoaXMsICdTdGF0dXNlc0RlZmluaXRpb24nLCB7XG4gICAgICByZXN1bHQ6IHNmbi5SZXN1bHQuZnJvbU9iamVjdChbXG4gICAgICAgIHsgbmFtZTogJ0FWQUlMQUJMRScsIGVtb2ppOiAn8J+kqScsIHN0YXRlOiAnYXZhaWxhYmxlJyB9LFxuICAgICAgICB7IG5hbWU6ICdBVVRPU1RPUFBFRCcsIGVtb2ppOiAn8J+YtCcsIHN0YXRlOiAnc3RvcHBlZCcgfSxcbiAgICAgIF0pLFxuICAgICAgcmVzdWx0UGF0aDogJyQuZGVmaW5pdGlvbi5zdGF0dXNlcycsXG4gICAgfSk7XG5cbiAgICBzdGFydGluZ1dhaXQubmV4dChzdGF0dXNlc0RlZmluaXRpb24pO1xuXG4gICAgY29uc3QgZGVzY3JpYmVEQkluc3RhbmNlc1Rhc2sgPSBuZXcgdGFza3MuQ2FsbEF3c1NlcnZpY2UodGhpcywgJ0Rlc2NyaWJlREJJbnN0YW5jZXMnLCB7XG4gICAgICBpYW1SZXNvdXJjZXM6IFtgYXJuOmF3czpyZHM6Kjoke2FjY291bnR9OmRiOipgXSxcbiAgICAgIHNlcnZpY2U6ICdyZHMnLFxuICAgICAgYWN0aW9uOiAnZGVzY3JpYmVEQkluc3RhbmNlcycsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIERiSW5zdGFuY2VJZGVudGlmaWVyOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZUlkZW50aWZpZXInKSxcbiAgICAgIH0sXG4gICAgICByZXN1bHRQYXRoOiAnJC5yZXN1bHQuZGVzY3JpYmUnLFxuICAgICAgcmVzdWx0U2VsZWN0b3I6IHtcbiAgICAgICAgc3RhdHVzOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuRGJJbnN0YW5jZXNbMF0uRGJJbnN0YW5jZVN0YXR1cycpLFxuICAgICAgICBpZGVudGlmaWVyOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuRGJJbnN0YW5jZXNbMF0uRGJJbnN0YW5jZUlkZW50aWZpZXInKSxcbiAgICAgICAgdGFnczogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLkRiSW5zdGFuY2VzWzBdLlRhZ0xpc3QnKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdG9wREJJbnN0YW5jZVRhc2sgPSBuZXcgdGFza3MuQ2FsbEF3c1NlcnZpY2UodGhpcywgJ1N0b3BEQkluc3RhbmNlJywge1xuICAgICAgaWFtUmVzb3VyY2VzOiBbYGFybjphd3M6cmRzOio6JHthY2NvdW50fTpkYjoqYF0sXG4gICAgICBzZXJ2aWNlOiAncmRzJyxcbiAgICAgIGFjdGlvbjogJ3N0b3BEQkluc3RhbmNlJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgRGJJbnN0YW5jZUlkZW50aWZpZXI6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlSWRlbnRpZmllcicpLFxuICAgICAgfSxcbiAgICAgIHJlc3VsdFBhdGg6ICckLnJlc3VsdC5zdG9wJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlc2NyaWJlREJDbHVzdGVyc1Rhc2sgPSBuZXcgdGFza3MuQ2FsbEF3c1NlcnZpY2UodGhpcywgJ0Rlc2NyaWJlREJDbHVzdGVycycsIHtcbiAgICAgIGlhbVJlc291cmNlczogW2Bhcm46YXdzOnJkczoqOiR7YWNjb3VudH06Y2x1c3RlcjoqYF0sXG4gICAgICBzZXJ2aWNlOiAncmRzJyxcbiAgICAgIGFjdGlvbjogJ2Rlc2NyaWJlREJDbHVzdGVycycsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIERiQ2x1c3RlcklkZW50aWZpZXI6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlSWRlbnRpZmllcicpLFxuICAgICAgfSxcbiAgICAgIHJlc3VsdFBhdGg6ICckLnJlc3VsdC5kZXNjcmliZScsXG4gICAgICByZXN1bHRTZWxlY3Rvcjoge1xuICAgICAgICBzdGF0dXM6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5EYkNsdXN0ZXJzWzBdLlN0YXR1cycpLFxuICAgICAgICBpZGVudGlmaWVyOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuRGJDbHVzdGVyc1swXS5EYkNsdXN0ZXJJZGVudGlmaWVyJyksXG4gICAgICAgIHRhZ3M6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5EYkNsdXN0ZXJzWzBdLlRhZ0xpc3QnKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdG9wREJDbHVzdGVyVGFzayA9IG5ldyB0YXNrcy5DYWxsQXdzU2VydmljZSh0aGlzLCAnU3RvcERCQ2x1c3RlcicsIHtcbiAgICAgIGlhbVJlc291cmNlczogW2Bhcm46YXdzOnJkczoqOiR7YWNjb3VudH06Y2x1c3RlcjoqYF0sXG4gICAgICBzZXJ2aWNlOiAncmRzJyxcbiAgICAgIGFjdGlvbjogJ3N0b3BEQkNsdXN0ZXInLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBEYkNsdXN0ZXJJZGVudGlmaWVyOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZUlkZW50aWZpZXInKSxcbiAgICAgIH0sXG4gICAgICByZXN1bHRQYXRoOiAnJC5yZXN1bHQuc3RvcCcsXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZXNjcmliZVR5cGVDaG9pY2UgPSBuZXcgc2ZuLkNob2ljZSh0aGlzLCAnRGVzY3JpYmVUeXBlQ2hvaWNlJylcbiAgICAgIC53aGVuKFxuICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwtdHlwZScsICdSRFMgREIgSW5zdGFuY2UgRXZlbnQnKSxcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZScsICdEQl9JTlNUQU5DRScpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5FdmVudElEJywgJ1JEUy1FVkVOVC0wMTU0JyksXG4gICAgICAgICksXG4gICAgICAgIGRlc2NyaWJlREJJbnN0YW5jZXNUYXNrLFxuICAgICAgKVxuICAgICAgLndoZW4oXG4gICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC10eXBlJywgJ1JEUyBEQiBDbHVzdGVyIEV2ZW50JyksXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZVR5cGUnLCAnQ0xVU1RFUicpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5FdmVudElEJywgJ1JEUy1FVkVOVC0wMTUzJyksXG4gICAgICAgICksXG4gICAgICAgIGRlc2NyaWJlREJDbHVzdGVyc1Rhc2ssXG4gICAgICApXG4gICAgICAub3RoZXJ3aXNlKG5ldyBzZm4uRmFpbCh0aGlzLCAnVW5rbm93blR5cGUnKSk7XG5cbiAgICBzdGF0dXNlc0RlZmluaXRpb24ubmV4dChkZXNjcmliZVR5cGVDaG9pY2UpO1xuXG4gICAgY29uc3Qgc3RhdHVzQ2hhbmdlV2FpdCA9IG5ldyBzZm4uV2FpdCh0aGlzLCAnU3RhdHVzQ2hhbmdlV2FpdCcsIHtcbiAgICAgIHRpbWU6IHNmbi5XYWl0VGltZS5kdXJhdGlvbihEdXJhdGlvbi5taW51dGVzKDUpKSxcbiAgICB9KTtcblxuICAgIHN0YXR1c0NoYW5nZVdhaXQubmV4dChkZXNjcmliZVR5cGVDaG9pY2UpO1xuXG4gICAgc3RvcERCSW5zdGFuY2VUYXNrLm5leHQoc3RhdHVzQ2hhbmdlV2FpdCk7XG5cbiAgICBzdG9wREJDbHVzdGVyVGFzay5uZXh0KHN0YXR1c0NoYW5nZVdhaXQpO1xuXG4gICAgLy8g8J+RhyBTdGF0dXMgQ2hvaWNlXG4gICAgY29uc3Qgc3RhdHVzQ2hvaWNlID0gbmV3IHNmbi5DaG9pY2UodGhpcywgJ1N0YXR1c0Nob2ljZScpXG4gICAgICAvLyBkYiBpbnN0YW5jZSBzdG9wIG9uIHN0YXR1cy5hdmFpbGFibGVcbiAgICAgIC53aGVuKFxuICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwtdHlwZScsICdSRFMgREIgSW5zdGFuY2UgRXZlbnQnKSxcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZScsICdEQl9JTlNUQU5DRScpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5FdmVudElEJywgJ1JEUy1FVkVOVC0wMTU0JyksXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQucmVzdWx0LmRlc2NyaWJlLnN0YXR1cycsICdhdmFpbGFibGUnKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3RvcERCSW5zdGFuY2VUYXNrLFxuICAgICAgKVxuICAgICAgLy8gZGIgY2x1c3RlciBzdG9wIG9uIHN0YXR1cy5hdmFpbGFibGVcbiAgICAgIC53aGVuKFxuICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwtdHlwZScsICdSRFMgREIgQ2x1c3RlciBFdmVudCcpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJywgJ0NMVVNURVInKSxcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuRXZlbnRJRCcsICdSRFMtRVZFTlQtMDE1MycpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnYXZhaWxhYmxlJyksXG4gICAgICAgICksXG4gICAgICAgIHN0b3BEQkNsdXN0ZXJUYXNrLFxuICAgICAgKVxuICAgICAgLy8gc3RhdHVzIGNoYW5nZSBzdWNjZWVkLCAvLyB0b2RvOiBnZW5lcmF0ZSB0b3BpY1xuICAgICAgLndoZW4oXG4gICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgIHNmbi5Db25kaXRpb24ub3IoXG4gICAgICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLXR5cGUnLCAnUkRTIERCIEluc3RhbmNlIEV2ZW50JyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJywgJ0RCX0lOU1RBTkNFJyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5FdmVudElEJywgJ1JEUy1FVkVOVC0wMTU0JyksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5hbmQoXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC10eXBlJywgJ1JEUyBEQiBDbHVzdGVyIEV2ZW50JyksXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJywgJ0NMVVNURVInKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLkV2ZW50SUQnLCAnUkRTLUVWRU5ULTAxNTMnKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKSxcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5yZXN1bHQuZGVzY3JpYmUuc3RhdHVzJywgJ3N0b3BwZWQnKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3VjY2VlZCxcbiAgICAgIClcbiAgICAgIC53aGVuKFxuICAgICAgICBzZm4uQ29uZGl0aW9uLm9yKFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnc3RhcnRpbmcnKSxcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5yZXN1bHQuZGVzY3JpYmUuc3RhdHVzJywgJ2NvbmZpZ3VyaW5nLWVuaGFuY2VkLW1vbml0b3JpbmcnKSxcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5yZXN1bHQuZGVzY3JpYmUuc3RhdHVzJywgJ2JhY2tpbmctdXAnKSxcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5yZXN1bHQuZGVzY3JpYmUuc3RhdHVzJywgJ21vZGlmeWluZycpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnc3RvcHBpbmcnKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3RhdHVzQ2hhbmdlV2FpdCxcbiAgICAgIClcbiAgICAgIC5vdGhlcndpc2UobmV3IHNmbi5GYWlsKHRoaXMsICdTdGF0dXNGYWlsJywge1xuICAgICAgICBjYXVzZTogJ2RiIGluc3RhbmNlIG9yIGNsdXN0ZXIgc3RhdHVzIGZhaWwuJyxcbiAgICAgIH0pKTtcblxuICAgIC8vIPCfkYcgVGFnIE1hdGNoXG4gICAgY29uc3QgdGFnTWF0Y2hDaG9pY2UgPSBuZXcgc2ZuLkNob2ljZSh0aGlzLCAnRXhpc3RUYWdDaG9pZGUnKVxuICAgICAgLndoZW4oXG4gICAgICAgIHNmbi5Db25kaXRpb24uaXNQcmVzZW50KCckLnJlc3VsdC5kZXNjcmliZS50YWdzJyksXG4gICAgICAgIG5ldyBzZm4uUGFzcyh0aGlzLCAnQ29udGFpblRhZ1ZsdWUnLCB7XG4gICAgICAgICAgcmVzdWx0UGF0aDogJyQuY2hlY2sudGFnJyxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBpc0NvbnRhaW46IHNmbi5Kc29uUGF0aC5hcnJheUNvbnRhaW5zKFxuICAgICAgICAgICAgICBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQucGFyYW1zLnRhZ1ZhbHVlcycpLFxuICAgICAgICAgICAgICBzZm4uSnNvblBhdGguYXJyYXlHZXRJdGVtKHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5yZXN1bHQuZGVzY3JpYmUudGFnc1s/KEAuS2V5ID09ICQucGFyYW1zLnRhZ0tleSldLlZhbHVlJyksIDApLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KS5uZXh0KFxuICAgICAgICAgIG5ldyBzZm4uQ2hvaWNlKHRoaXMsICdGaWx0ZXJUYWdDaG9pc2UnKVxuICAgICAgICAgICAgLndoZW4oXG4gICAgICAgICAgICAgIHNmbi5Db25kaXRpb24uYm9vbGVhbkVxdWFscygnJC5jaGVjay50YWcuaXNDb250YWluJywgdHJ1ZSksXG4gICAgICAgICAgICAgIHN0YXR1c0Nob2ljZSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5vdGhlcndpc2UoXG4gICAgICAgICAgICAgIG5ldyBzZm4uUGFzcyh0aGlzLCAnTm9UYWdNYXRjaCcsIHtcbiAgICAgICAgICAgICAgICBjb21tZW50OiAnbm8gdGFnIG1hdGNoJyxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICAgLm90aGVyd2lzZShcbiAgICAgICAgbmV3IHNmbi5QYXNzKHRoaXMsICdOb1RhZ3NGb3VuZCcsIHtcbiAgICAgICAgICBjb21tZW50OiAnbm8gdGFncyBmb3VuZCcsXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIC8vIPCfkYcgZGVzY3JpYmUgbmV4dCB0YWcgZm91bmQgJiBtYXRjaFxuICAgIGRlc2NyaWJlREJJbnN0YW5jZXNUYXNrLm5leHQodGFnTWF0Y2hDaG9pY2UpO1xuICAgIGRlc2NyaWJlREJDbHVzdGVyc1Rhc2submV4dCh0YWdNYXRjaENob2ljZSk7XG5cbiAgICAvLyDwn5GHIFN0ZXBGdW5jdGlvbnNcbiAgICBjb25zdCBzdGF0ZU1hY2hpbmUgPSBuZXcgc2ZuLlN0YXRlTWFjaGluZSh0aGlzLCAnU3RhdGVNYWNoaW5lJywge1xuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogYHJkcy1kYi1hdXRvLXJ1bm5pbmctc3RvcC0ke2tleX0tc3RhdGUtbWFjaGluZWAsXG4gICAgICBkZWZpbml0aW9uQm9keTogc2ZuLkRlZmluaXRpb25Cb2R5LmZyb21DaGFpbmFibGUoc3RhcnRpbmdXYWl0KSxcbiAgICB9KTtcbiAgICBjb25zdCByb2xlID0gc3RhdGVNYWNoaW5lLm5vZGUuZmluZENoaWxkKCdSb2xlJykgYXMgaWFtLlJvbGU7XG4gICAgY29uc3QgY2ZuUm9sZSA9IHJvbGUubm9kZS5kZWZhdWx0Q2hpbGQgYXMgaWFtLkNmblJvbGU7XG4gICAgY2ZuUm9sZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdSb2xlTmFtZScsIGByZHMtZGItYXV0by1ydW5uaW5nLXN0b3Atc3RhdGUtbWFjaGluZS0ke2tleX0tcm9sZWApO1xuICAgIGNmblJvbGUuYWRkUHJvcGVydHlPdmVycmlkZSgnRGVzY3JpcHRpb24nLCAncmRzIGRhdGFiYXNlIGF1dG8gcnVubmluZyBzdG9wIHN0YXRlIG1hY2hpbmUgcm9sZS4nKTtcbiAgICBjb25zdCBwb2xpY3kgPSByb2xlLm5vZGUuZmluZENoaWxkKCdEZWZhdWx0UG9saWN5JykgYXMgaWFtLlBvbGljeTtcbiAgICBjb25zdCBjZm5Qb2xpY3kgPSBwb2xpY3kubm9kZS5kZWZhdWx0Q2hpbGQgYXMgaWFtLkNmblBvbGljeTtcbiAgICBjZm5Qb2xpY3kuYWRkUHJvcGVydHlPdmVycmlkZSgnUG9saWN5TmFtZScsICdkZWZhdWx0LXBvbGljeScpO1xuXG4gICAgY29uc3QgZXhlY1JvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ0V2ZW50RXhlY1JvbGUnLCB7XG4gICAgICByb2xlTmFtZTogYHJkcy1kYi1hdXRvLXJ1bm5pbmctY2F0Y2gtZXZlbnQtJHtrZXl9LXJvbGVgLFxuICAgICAgZGVzY3JpcHRpb246ICdkYiBhdXRvIHN0YXJ0IGNhdGNoIHdpdGggc3RhcnQgc3RhdGUgbWFjaGluZSBldmVudCByb2xlJyxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdldmVudHMuYW1hem9uYXdzLmNvbScpLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgJ3N0YXRlLW1hY2hpbmUtZXhlYyc6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3N0YXRlczpTdGFydEV4ZWN1dGlvbicsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgICAgIHN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBlbmFibGVSdWxlOiBib29sZWFuID0gKCgpID0+IHtcbiAgICAgIHJldHVybiBwcm9wcy5lbmFibGVSdWxlID09PSB1bmRlZmluZWQgfHwgcHJvcHMuZW5hYmxlUnVsZTtcbiAgICB9KSgpO1xuXG4gICAgLy8g8J+RhyBFdmVudEJyaWRnZSBieSBSRFMgREIgSW5zdGFuY2UgQXV0byBTdGFydCBFdmVudFxuICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnREJJbnN0YW5jZUV2ZW50Jywge1xuICAgICAgcnVsZU5hbWU6IGByZHMtZGItaW5zdGFuY2UtcnVubmluZy1ldmVudC1jYXRjaC0ke2tleX0tcnVsZWAsXG4gICAgICBkZXNjcmlwdGlvbjogJ3JkcyBkYiBpbnN0YW5jZSBydW5uaW5nIGV2ZW50IGNhdGNoIHJ1bGUuJyxcbiAgICAgIGVuYWJsZWQ6IGVuYWJsZVJ1bGUsXG4gICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgc291cmNlOiBbJ2F3cy5yZHMnXSxcbiAgICAgICAgZGV0YWlsVHlwZTogWydSRFMgREIgSW5zdGFuY2UgRXZlbnQnXSxcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgRXZlbnRJRDogWydSRFMtRVZFTlQtMDE1NCddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgbmV3IHRhcmdldHMuU2ZuU3RhdGVNYWNoaW5lKHN0YXRlTWFjaGluZSwge1xuICAgICAgICAgIHJvbGU6IGV4ZWNSb2xlLFxuICAgICAgICAgIGlucHV0OiBldmVudHMuUnVsZVRhcmdldElucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50cy5FdmVudEZpZWxkLmZyb21QYXRoKCckJyksXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgdGFnS2V5OiBwcm9wcy50YXJnZXRSZXNvdXJjZS50YWdLZXksXG4gICAgICAgICAgICAgIHRhZ1ZhbHVlczogcHJvcHMudGFyZ2V0UmVzb3VyY2UudGFnVmFsdWVzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8g8J+RhyBFdmVudEJyaWRnZSBieSBSRFMgREIgSW5zdGFuY2UgQXV0byBTdGFydCBFdmVudFxuICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCAnREJDbHVzdGVyRXZlbnQnLCB7XG4gICAgICBydWxlTmFtZTogYHJkcy1kYi1jbHVzdGVyLXJ1bm5pbmctZXZlbnQtY2F0Y2gtJHtrZXl9LXJ1bGVgLFxuICAgICAgZGVzY3JpcHRpb246ICdkYiBjbHVzdGVyIHJ1bm5pbmcgZXZlbnQgY2F0Y2ggcnVsZScsXG4gICAgICBlbmFibGVkOiBlbmFibGVSdWxlLFxuICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgIHNvdXJjZTogWydhd3MucmRzJ10sXG4gICAgICAgIGRldGFpbFR5cGU6IFsnUkRTIERCIENsdXN0ZXIgRXZlbnQnXSxcbiAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgRXZlbnRJRDogWydSRFMtRVZFTlQtMDE1MyddLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRhcmdldHM6IFtcbiAgICAgICAgbmV3IHRhcmdldHMuU2ZuU3RhdGVNYWNoaW5lKHN0YXRlTWFjaGluZSwge1xuICAgICAgICAgIHJvbGU6IGV4ZWNSb2xlLFxuICAgICAgICAgIGlucHV0OiBldmVudHMuUnVsZVRhcmdldElucHV0LmZyb21PYmplY3Qoe1xuICAgICAgICAgICAgZXZlbnQ6IGV2ZW50cy5FdmVudEZpZWxkLmZyb21QYXRoKCckJyksXG4gICAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgICAgdGFnS2V5OiBwcm9wcy50YXJnZXRSZXNvdXJjZS50YWdLZXksXG4gICAgICAgICAgICAgIHRhZ1ZhbHVlczogcHJvcHMudGFyZ2V0UmVzb3VyY2UudGFnVmFsdWVzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59Il19
|
|
221
|
+
RDSDatabaseAutoRunningProtectionStack[_a] = { fqn: "@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStack", version: "2.1.1" };
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBK0g7QUFDL0gsNkNBQWlFO0FBQ2pFLGlEQUFpRDtBQUNqRCwwREFBMEQ7QUFDMUQsMkNBQTJDO0FBQzNDLHFEQUFxRDtBQUNyRCw2REFBNkQ7QUF5QjdELE1BQWEscUNBQXNDLFNBQVEsbUJBQUs7SUFDOUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpRDtRQUN6RixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixxQkFBcUI7UUFDckIsTUFBTSxPQUFPLEdBQUcsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLHVDQUF1QztRQUV2QyxtQ0FBbUM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsb0NBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLG1CQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLG1CQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRyxrQkFBa0I7UUFDbEIsTUFBTSxVQUFVLEdBQUc7WUFDakIsZ0JBQWdCLEVBQUUsNEJBQTRCLE1BQU0sZ0JBQWdCO1lBQ3BFLG9CQUFvQixFQUFFLDBDQUEwQyxNQUFNLE9BQU87WUFDN0UsMkJBQTJCLEVBQUUsbUNBQW1DLE1BQU0sT0FBTztZQUM3RSwrQkFBK0IsRUFBRSx1Q0FBdUMsTUFBTSxPQUFPO1lBQ3JGLDhCQUE4QixFQUFFLHNDQUFzQyxNQUFNLE9BQU87U0FDcEYsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLG9DQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsb0JBQTJELENBQUMsQ0FBQztRQUVuSCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFB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QztJQUNMLENBQUM7O0FBM1NILHNGQTRTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc291cmNlQXV0b05hbWluZywgUmVzb3VyY2VEZWZhdWx0TmFtaW5nLCBSZXNvdXJjZU5hbWluZywgUmVzb3VyY2VOYW1pbmdUeXBlIH0gZnJvbSAnQGdhbW1hcmVycy9hd3MtcmVzb3VyY2UtbmFtaW5nJztcbmltcG9ydCB7IER1cmF0aW9uLCBOYW1lcywgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBldmVudHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWV2ZW50cyc7XG5pbXBvcnQgKiBhcyB0YXJnZXRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0cyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBzZm4gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMnO1xuaW1wb3J0ICogYXMgdGFza3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlTmFtaW5nT3B0aW9uID0gUmVzb3VyY2VEZWZhdWx0TmFtaW5nIHwgUmVzb3VyY2VBdXRvTmFtaW5nIHwgQ3VzdG9tTmFtaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFJlc291cmNlUHJvcGVydHkge1xuICByZWFkb25seSB0YWdLZXk6IHN0cmluZztcbiAgcmVhZG9ubHkgdGFnVmFsdWVzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgcmVhZG9ubHkgdGFyZ2V0UmVzb3VyY2U6IFRhcmdldFJlc291cmNlUHJvcGVydHk7XG4gIHJlYWRvbmx5IGVuYWJsZVJ1bGU/OiBib29sZWFuO1xuICByZWFkb25seSByZXNvdXJjZU5hbWluZ09wdGlvbj86IFJlc291cmNlTmFtaW5nT3B0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU5hbWluZyB7XG4gIHJlYWRvbmx5IHR5cGU6IFJlc291cmNlTmFtaW5nVHlwZS5DVVNUT007XG4gIHJlYWRvbmx5IHN0YXRlTWFjaGluZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhdGVNYWNoaW5lUm9sZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhcnRFdmVudENhdGNoUnVsZVJvbGVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YXJ0SW5zdGFuY2VFdmVudENhdGNoUnVsZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhcnRDbHVzdGVyRXZlbnRDYXRjaFJ1bGVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrIGV4dGVuZHMgU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUkRTRGF0YWJhc2VBdXRvUnVubmluZ1Byb3RlY3Rpb25TdGFja1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLyDwn5GHIEdldCBBV1MgYWNjb3VudFxuICAgIGNvbnN0IGFjY291bnQgPSBTdGFjay5vZih0aGlzKS5hY2NvdW50O1xuICAgIC8vY29uc3QgcmVnaW9uID0gU3RhY2sub2YodGhpcykucmVnaW9uO1xuXG4gICAgLy8g8J+RhyBDcmVhdGUgcmFuZG9tIDggbGVuZ3RoIHN0cmluZ1xuICAgIGNvbnN0IHJhbmRvbSA9IFJlc291cmNlTmFtaW5nLmNyZWF0ZVJhbmRvbVN0cmluZyhgJHtOYW1lcy51bmlxdWVJZChzY29wZSl9LiR7TmFtZXMudW5pcXVlSWQodGhpcyl9YCk7XG4gICAgLy8g8J+RhyBBdXRvIG5hZW1pbmdcbiAgICBjb25zdCBhdXRvTmFtaW5nID0ge1xuICAgICAgc3RhdGVNYWNoaW5lTmFtZTogYHJkcy1kYi1hdXRvLXJ1bm5pbmctc3RvcC0ke3JhbmRvbX0tc3RhdGUtbWFjaGluZWAsXG4gICAgICBzdGF0ZU1hY2hpbmVSb2xlTmFtZTogYHJkcy1kYi1hdXRvLXJ1bm5pbmctc3RvcC1zdGF0ZS1tYWNoaW5lLSR7cmFuZG9tfS1yb2xlYCxcbiAgICAgIHN0YXJ0RXZlbnRDYXRjaFJ1bGVSb2xlTmFtZTogYHJkcy1kYi1hdXRvLXJ1bm5pbmctY2F0Y2gtZXZlbnQtJHtyYW5kb219LXJvbGVgLFxuICAgICAgc3RhcnRJbnN0YW5jZUV2ZW50Q2F0Y2hSdWxlTmFtZTogYHJkcy1kYi1pbnN0YW5jZS1ydW5uaW5nLWV2ZW50LWNhdGNoLSR7cmFuZG9tfS1ydWxlYCxcbiAgICAgIHN0YXJ0Q2x1c3RlckV2ZW50Q2F0Y2hSdWxlTmFtZTogYHJkcy1kYi1jbHVzdGVyLXJ1bm5pbmctZXZlbnQtY2F0Y2gtJHtyYW5kb219LXJ1bGVgLFxuICAgIH07XG4gICAgY29uc3QgbmFtZXMgPSBSZXNvdXJjZU5hbWluZy5uYW1pbmcoYXV0b05hbWluZywgcHJvcHMucmVzb3VyY2VOYW1pbmdPcHRpb24gYXMgUmVzb3VyY2VOYW1pbmcuUmVzb3VyY2VOYW1pbmdPcHRpb24pO1xuXG4gICAgY29uc3Qgc3VjY2VlZCA9IG5ldyBzZm4uU3VjY2VlZCh0aGlzLCAnU3VjY2VlZCcpO1xuXG4gICAgY29uc3Qgc3RhcnRpbmdXYWl0ID0gbmV3IHNmbi5XYWl0KHRoaXMsICdTdGFydGluZ1dhaXQnLCB7XG4gICAgICB0aW1lOiBzZm4uV2FpdFRpbWUuZHVyYXRpb24oRHVyYXRpb24ubWludXRlcygxKSksXG4gICAgfSk7XG5cbiAgICAvLyBTdGF0dXMgZGVmaW5pdGlvblxuICAgIGNvbnN0IHN0YXR1c2VzRGVmaW5pdGlvbjogc2ZuLlBhc3MgPSBuZXcgc2ZuLlBhc3ModGhpcywgJ1N0YXR1c2VzRGVmaW5pdGlvbicsIHtcbiAgICAgIHJlc3VsdDogc2ZuLlJlc3VsdC5mcm9tT2JqZWN0KFtcbiAgICAgICAgeyBuYW1lOiAnQVZBSUxBQkxFJywgZW1vamk6ICfwn6SpJywgc3RhdGU6ICdhdmFpbGFibGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ0FVVE9TVE9QUEVEJywgZW1vamk6ICfwn5i0Jywgc3RhdGU6ICdzdG9wcGVkJyB9LFxuICAgICAgXSksXG4gICAgICByZXN1bHRQYXRoOiAnJC5kZWZpbml0aW9uLnN0YXR1c2VzJyxcbiAgICB9KTtcblxuICAgIHN0YXJ0aW5nV2FpdC5uZXh0KHN0YXR1c2VzRGVmaW5pdGlvbik7XG5cbiAgICBjb25zdCBkZXNjcmliZURCSW5zdGFuY2VzVGFzayA9IG5ldyB0YXNrcy5DYWxsQXdzU2VydmljZSh0aGlzLCAnRGVzY3JpYmVEQkluc3RhbmNlcycsIHtcbiAgICAgIGlhbVJlc291cmNlczogW2Bhcm46YXdzOnJkczoqOiR7YWNjb3VudH06ZGI6KmBdLFxuICAgICAgc2VydmljZTogJ3JkcycsXG4gICAgICBhY3Rpb246ICdkZXNjcmliZURCSW5zdGFuY2VzJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgRGJJbnN0YW5jZUlkZW50aWZpZXI6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlSWRlbnRpZmllcicpLFxuICAgICAgfSxcbiAgICAgIHJlc3VsdFBhdGg6ICckLnJlc3VsdC5kZXNjcmliZScsXG4gICAgICByZXN1bHRTZWxlY3Rvcjoge1xuICAgICAgICBzdGF0dXM6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5EYkluc3RhbmNlc1swXS5EYkluc3RhbmNlU3RhdHVzJyksXG4gICAgICAgIGlkZW50aWZpZXI6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5EYkluc3RhbmNlc1swXS5EYkluc3RhbmNlSWRlbnRpZmllcicpLFxuICAgICAgICB0YWdzOiBzZm4uSnNvblBhdGguc3RyaW5nQXQoJyQuRGJJbnN0YW5jZXNbMF0uVGFnTGlzdCcpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0b3BEQkluc3RhbmNlVGFzayA9IG5ldyB0YXNrcy5DYWxsQXdzU2VydmljZSh0aGlzLCAnU3RvcERCSW5zdGFuY2UnLCB7XG4gICAgICBpYW1SZXNvdXJjZXM6IFtgYXJuOmF3czpyZHM6Kjoke2FjY291bnR9OmRiOipgXSxcbiAgICAgIHNlcnZpY2U6ICdyZHMnLFxuICAgICAgYWN0aW9uOiAnc3RvcERCSW5zdGFuY2UnLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBEYkluc3RhbmNlSWRlbnRpZmllcjogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmV2ZW50LmRldGFpbC5Tb3VyY2VJZGVudGlmaWVyJyksXG4gICAgICB9LFxuICAgICAgcmVzdWx0UGF0aDogJyQucmVzdWx0LnN0b3AnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZGVzY3JpYmVEQkNsdXN0ZXJzVGFzayA9IG5ldyB0YXNrcy5DYWxsQXdzU2VydmljZSh0aGlzLCAnRGVzY3JpYmVEQkNsdXN0ZXJzJywge1xuICAgICAgaWFtUmVzb3VyY2VzOiBbYGFybjphd3M6cmRzOio6JHthY2NvdW50fTpjbHVzdGVyOipgXSxcbiAgICAgIHNlcnZpY2U6ICdyZHMnLFxuICAgICAgYWN0aW9uOiAnZGVzY3JpYmVEQkNsdXN0ZXJzJyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgRGJDbHVzdGVySWRlbnRpZmllcjogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLmV2ZW50LmRldGFpbC5Tb3VyY2VJZGVudGlmaWVyJyksXG4gICAgICB9LFxuICAgICAgcmVzdWx0UGF0aDogJyQucmVzdWx0LmRlc2NyaWJlJyxcbiAgICAgIHJlc3VsdFNlbGVjdG9yOiB7XG4gICAgICAgIHN0YXR1czogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLkRiQ2x1c3RlcnNbMF0uU3RhdHVzJyksXG4gICAgICAgIGlkZW50aWZpZXI6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5EYkNsdXN0ZXJzWzBdLkRiQ2x1c3RlcklkZW50aWZpZXInKSxcbiAgICAgICAgdGFnczogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLkRiQ2x1c3RlcnNbMF0uVGFnTGlzdCcpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0b3BEQkNsdXN0ZXJUYXNrID0gbmV3IHRhc2tzLkNhbGxBd3NTZXJ2aWNlKHRoaXMsICdTdG9wREJDbHVzdGVyJywge1xuICAgICAgaWFtUmVzb3VyY2VzOiBbYGFybjphd3M6cmRzOio6JHthY2NvdW50fTpjbHVzdGVyOipgXSxcbiAgICAgIHNlcnZpY2U6ICdyZHMnLFxuICAgICAgYWN0aW9uOiAnc3RvcERCQ2x1c3RlcicsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIERiQ2x1c3RlcklkZW50aWZpZXI6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5ldmVudC5kZXRhaWwuU291cmNlSWRlbnRpZmllcicpLFxuICAgICAgfSxcbiAgICAgIHJlc3VsdFBhdGg6ICckLnJlc3VsdC5zdG9wJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlc2NyaWJlVHlwZUNob2ljZSA9IG5ldyBzZm4uQ2hvaWNlKHRoaXMsICdEZXNjcmliZVR5cGVDaG9pY2UnKVxuICAgICAgLndoZW4oXG4gICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC10eXBlJywgJ1JEUyBEQiBJbnN0YW5jZSBFdmVudCcpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJywgJ0RCX0lOU1RBTkNFJyksXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLkV2ZW50SUQnLCAnUkRTLUVWRU5ULTAxNTQnKSxcbiAgICAgICAgKSxcbiAgICAgICAgZGVzY3JpYmVEQkluc3RhbmNlc1Rhc2ssXG4gICAgICApXG4gICAgICAud2hlbihcbiAgICAgICAgc2ZuLkNvbmRpdGlvbi5hbmQoXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLXR5cGUnLCAnUkRTIERCIENsdXN0ZXIgRXZlbnQnKSxcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuU291cmNlVHlwZScsICdDTFVTVEVSJyksXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLkV2ZW50SUQnLCAnUkRTLUVWRU5ULTAxNTMnKSxcbiAgICAgICAgKSxcbiAgICAgICAgZGVzY3JpYmVEQkNsdXN0ZXJzVGFzayxcbiAgICAgIClcbiAgICAgIC5vdGhlcndpc2UobmV3IHNmbi5GYWlsKHRoaXMsICdVbmtub3duVHlwZScpKTtcblxuICAgIHN0YXR1c2VzRGVmaW5pdGlvbi5uZXh0KGRlc2NyaWJlVHlwZUNob2ljZSk7XG5cbiAgICBjb25zdCBzdGF0dXNDaGFuZ2VXYWl0ID0gbmV3IHNmbi5XYWl0KHRoaXMsICdTdGF0dXNDaGFuZ2VXYWl0Jywge1xuICAgICAgdGltZTogc2ZuLldhaXRUaW1lLmR1cmF0aW9uKER1cmF0aW9uLm1pbnV0ZXMoNSkpLFxuICAgIH0pO1xuXG4gICAgc3RhdHVzQ2hhbmdlV2FpdC5uZXh0KGRlc2NyaWJlVHlwZUNob2ljZSk7XG5cbiAgICBzdG9wREJJbnN0YW5jZVRhc2submV4dChzdGF0dXNDaGFuZ2VXYWl0KTtcblxuICAgIHN0b3BEQkNsdXN0ZXJUYXNrLm5leHQoc3RhdHVzQ2hhbmdlV2FpdCk7XG5cbiAgICAvLyDwn5GHIFN0YXR1cyBDaG9pY2VcbiAgICBjb25zdCBzdGF0dXNDaG9pY2UgPSBuZXcgc2ZuLkNob2ljZSh0aGlzLCAnU3RhdHVzQ2hvaWNlJylcbiAgICAgIC8vIGRiIGluc3RhbmNlIHN0b3Agb24gc3RhdHVzLmF2YWlsYWJsZVxuICAgICAgLndoZW4oXG4gICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC10eXBlJywgJ1JEUyBEQiBJbnN0YW5jZSBFdmVudCcpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5Tb3VyY2VUeXBlJywgJ0RCX0lOU1RBTkNFJyksXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLkV2ZW50SUQnLCAnUkRTLUVWRU5ULTAxNTQnKSxcbiAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5yZXN1bHQuZGVzY3JpYmUuc3RhdHVzJywgJ2F2YWlsYWJsZScpLFxuICAgICAgICApLFxuICAgICAgICBzdG9wREJJbnN0YW5jZVRhc2ssXG4gICAgICApXG4gICAgICAvLyBkYiBjbHVzdGVyIHN0b3Agb24gc3RhdHVzLmF2YWlsYWJsZVxuICAgICAgLndoZW4oXG4gICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC10eXBlJywgJ1JEUyBEQiBDbHVzdGVyIEV2ZW50JyksXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZVR5cGUnLCAnQ0xVU1RFUicpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLmV2ZW50LmRldGFpbC5FdmVudElEJywgJ1JEUy1FVkVOVC0wMTUzJyksXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQucmVzdWx0LmRlc2NyaWJlLnN0YXR1cycsICdhdmFpbGFibGUnKSxcbiAgICAgICAgKSxcbiAgICAgICAgc3RvcERCQ2x1c3RlclRhc2ssXG4gICAgICApXG4gICAgICAvLyBzdGF0dXMgY2hhbmdlIHN1Y2NlZWQsIC8vIHRvZG86IGdlbmVyYXRlIHRvcGljXG4gICAgICAud2hlbihcbiAgICAgICAgc2ZuLkNvbmRpdGlvbi5hbmQoXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5vcihcbiAgICAgICAgICAgIHNmbi5Db25kaXRpb24uYW5kKFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwtdHlwZScsICdSRFMgREIgSW5zdGFuY2UgRXZlbnQnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZVR5cGUnLCAnREJfSU5TVEFOQ0UnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLkV2ZW50SUQnLCAnUkRTLUVWRU5ULTAxNTQnKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzZm4uQ29uZGl0aW9uLmFuZChcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLXR5cGUnLCAnUkRTIERCIENsdXN0ZXIgRXZlbnQnKSxcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQuZXZlbnQuZGV0YWlsLlNvdXJjZVR5cGUnLCAnQ0xVU1RFUicpLFxuICAgICAgICAgICAgICBzZm4uQ29uZGl0aW9uLnN0cmluZ0VxdWFscygnJC5ldmVudC5kZXRhaWwuRXZlbnRJRCcsICdSRFMtRVZFTlQtMDE1MycpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnc3RvcHBlZCcpLFxuICAgICAgICApLFxuICAgICAgICBzdWNjZWVkLFxuICAgICAgKVxuICAgICAgLndoZW4oXG4gICAgICAgIHNmbi5Db25kaXRpb24ub3IoXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQucmVzdWx0LmRlc2NyaWJlLnN0YXR1cycsICdzdGFydGluZycpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnY29uZmlndXJpbmctZW5oYW5jZWQtbW9uaXRvcmluZycpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnYmFja2luZy11cCcpLFxuICAgICAgICAgIHNmbi5Db25kaXRpb24uc3RyaW5nRXF1YWxzKCckLnJlc3VsdC5kZXNjcmliZS5zdGF0dXMnLCAnbW9kaWZ5aW5nJyksXG4gICAgICAgICAgc2ZuLkNvbmRpdGlvbi5zdHJpbmdFcXVhbHMoJyQucmVzdWx0LmRlc2NyaWJlLnN0YXR1cycsICdzdG9wcGluZycpLFxuICAgICAgICApLFxuICAgICAgICBzdGF0dXNDaGFuZ2VXYWl0LFxuICAgICAgKVxuICAgICAgLm90aGVyd2lzZShuZXcgc2ZuLkZhaWwodGhpcywgJ1N0YXR1c0ZhaWwnLCB7XG4gICAgICAgIGNhdXNlOiAnZGIgaW5zdGFuY2Ugb3IgY2x1c3RlciBzdGF0dXMgZmFpbC4nLFxuICAgICAgfSkpO1xuXG4gICAgLy8g8J+RhyBUYWcgTWF0Y2hcbiAgICBjb25zdCB0YWdNYXRjaENob2ljZSA9IG5ldyBzZm4uQ2hvaWNlKHRoaXMsICdFeGlzdFRhZ0Nob2lkZScpXG4gICAgICAud2hlbihcbiAgICAgICAgc2ZuLkNvbmRpdGlvbi5pc1ByZXNlbnQoJyQucmVzdWx0LmRlc2NyaWJlLnRhZ3MnKSxcbiAgICAgICAgbmV3IHNmbi5QYXNzKHRoaXMsICdDb250YWluVGFnVmx1ZScsIHtcbiAgICAgICAgICByZXN1bHRQYXRoOiAnJC5jaGVjay50YWcnLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIGlzQ29udGFpbjogc2ZuLkpzb25QYXRoLmFycmF5Q29udGFpbnMoXG4gICAgICAgICAgICAgIHNmbi5Kc29uUGF0aC5zdHJpbmdBdCgnJC5wYXJhbXMudGFnVmFsdWVzJyksXG4gICAgICAgICAgICAgIHNmbi5Kc29uUGF0aC5hcnJheUdldEl0ZW0oc2ZuLkpzb25QYXRoLnN0cmluZ0F0KCckLnJlc3VsdC5kZXNjcmliZS50YWdzWz8oQC5LZXkgPT0gJC5wYXJhbXMudGFnS2V5KV0uVmFsdWUnKSwgMCksXG4gICAgICAgICAgICApLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLm5leHQoXG4gICAgICAgICAgbmV3IHNmbi5DaG9pY2UodGhpcywgJ0ZpbHRlclRhZ0Nob2lzZScpXG4gICAgICAgICAgICAud2hlbihcbiAgICAgICAgICAgICAgc2ZuLkNvbmRpdGlvbi5ib29sZWFuRXF1YWxzKCckLmNoZWNrLnRhZy5pc0NvbnRhaW4nLCB0cnVlKSxcbiAgICAgICAgICAgICAgc3RhdHVzQ2hvaWNlLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLm90aGVyd2lzZShcbiAgICAgICAgICAgICAgbmV3IHNmbi5QYXNzKHRoaXMsICdOb1RhZ01hdGNoJywge1xuICAgICAgICAgICAgICAgIGNvbW1lbnQ6ICdubyB0YWcgbWF0Y2gnLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICApXG4gICAgICAub3RoZXJ3aXNlKFxuICAgICAgICBuZXcgc2ZuLlBhc3ModGhpcywgJ05vVGFnc0ZvdW5kJywge1xuICAgICAgICAgIGNvbW1lbnQ6ICdubyB0YWdzIGZvdW5kJyxcbiAgICAgICAgfSksXG4gICAgICApO1xuXG4gICAgLy8g8J+RhyBkZXNjcmliZSBuZXh0IHRhZyBmb3VuZCAmIG1hdGNoXG4gICAgZGVzY3JpYmVEQkluc3RhbmNlc1Rhc2submV4dCh0YWdNYXRjaENob2ljZSk7XG4gICAgZGVzY3JpYmVEQkNsdXN0ZXJzVGFzay5uZXh0KHRhZ01hdGNoQ2hvaWNlKTtcblxuICAgIC8vIPCfkYcgU3RlcEZ1bmN0aW9uc1xuICAgIGNvbnN0IHN0YXRlTWFjaGluZSA9IG5ldyBzZm4uU3RhdGVNYWNoaW5lKHRoaXMsICdTdGF0ZU1hY2hpbmUnLCB7XG4gICAgICBzdGF0ZU1hY2hpbmVOYW1lOiBuYW1lcy5zdGF0ZU1hY2hpbmVOYW1lLFxuICAgICAgZGVmaW5pdGlvbkJvZHk6IHNmbi5EZWZpbml0aW9uQm9keS5mcm9tQ2hhaW5hYmxlKHN0YXJ0aW5nV2FpdCksXG4gICAgfSk7XG4gICAgaWYgKG5hbWVzLnN0YXRlTWFjaGluZVJvbGVOYW1lKSB7XG4gICAgICBjb25zdCByb2xlID0gc3RhdGVNYWNoaW5lLm5vZGUuZmluZENoaWxkKCdSb2xlJykgYXMgaWFtLlJvbGU7XG4gICAgICBjb25zdCBjZm5Sb2xlID0gcm9sZS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBpYW0uQ2ZuUm9sZTtcbiAgICAgIGNmblJvbGUuYWRkUHJvcGVydHlPdmVycmlkZSgnUm9sZU5hbWUnLCBuYW1lcy5zdGF0ZU1hY2hpbmVSb2xlTmFtZSk7XG4gICAgICBjZm5Sb2xlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ0Rlc2NyaXB0aW9uJywgJ3JkcyBkYXRhYmFzZSBhdXRvIHJ1bm5pbmcgc3RvcCBzdGF0ZSBtYWNoaW5lIHJvbGUuJyk7XG4gICAgICBjb25zdCBwb2xpY3kgPSByb2xlLm5vZGUuZmluZENoaWxkKCdEZWZhdWx0UG9saWN5JykgYXMgaWFtLlBvbGljeTtcbiAgICAgIGNvbnN0IGNmblBvbGljeSA9IHBvbGljeS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBpYW0uQ2ZuUG9saWN5O1xuICAgICAgY2ZuUG9saWN5LmFkZFByb3BlcnR5T3ZlcnJpZGUoJ1BvbGljeU5hbWUnLCBgcmRzLWRiLWF1dG8tcnVubmluZy1zdG9wLXN0YXRlLW1hY2hpbmUtJHtyYW5kb219LXBvbGljeWApO1xuICAgIH1cblxuICAgIGNvbnN0IGV4ZWNSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdFdmVudEV4ZWNSb2xlJywge1xuICAgICAgcm9sZU5hbWU6IG5hbWVzLnN0YXJ0RXZlbnRDYXRjaFJ1bGVSb2xlTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnZGIgYXV0byBzdGFydCBjYXRjaCB3aXRoIHN0YXJ0IHN0YXRlIG1hY2hpbmUgZXZlbnQgcm9sZScsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnZXZlbnRzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgICdzdGF0ZS1tYWNoaW5lLWV4ZWMnOiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzdGF0ZXM6U3RhcnRFeGVjdXRpb24nLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICAgICAgICBzdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgZW5hYmxlUnVsZTogYm9vbGVhbiA9ICgoKSA9PiB7XG4gICAgICByZXR1cm4gcHJvcHMuZW5hYmxlUnVsZSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmVuYWJsZVJ1bGU7XG4gICAgfSkoKTtcblxuICAgIC8vIPCfkYcgRXZlbnRCcmlkZ2UgYnkgUkRTIERCIEluc3RhbmNlIEF1dG8gU3RhcnQgRXZlbnRcbiAgICBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ0RCSW5zdGFuY2VFdmVudCcsIHtcbiAgICAgIHJ1bGVOYW1lOiBuYW1lcy5zdGFydEluc3RhbmNlRXZlbnRDYXRjaFJ1bGVOYW1lLFxuICAgICAgZGVzY3JpcHRpb246ICdyZHMgZGIgaW5zdGFuY2UgcnVubmluZyBldmVudCBjYXRjaCBydWxlLicsXG4gICAgICBlbmFibGVkOiBlbmFibGVSdWxlLFxuICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgIHNvdXJjZTogWydhd3MucmRzJ10sXG4gICAgICAgIGRldGFpbFR5cGU6IFsnUkRTIERCIEluc3RhbmNlIEV2ZW50J10sXG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIEV2ZW50SUQ6IFsnUkRTLUVWRU5ULTAxNTQnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRzOiBbXG4gICAgICAgIG5ldyB0YXJnZXRzLlNmblN0YXRlTWFjaGluZShzdGF0ZU1hY2hpbmUsIHtcbiAgICAgICAgICByb2xlOiBleGVjUm9sZSxcbiAgICAgICAgICBpbnB1dDogZXZlbnRzLlJ1bGVUYXJnZXRJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgICAgIGV2ZW50OiBldmVudHMuRXZlbnRGaWVsZC5mcm9tUGF0aCgnJCcpLFxuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgIHRhZ0tleTogcHJvcHMudGFyZ2V0UmVzb3VyY2UudGFnS2V5LFxuICAgICAgICAgICAgICB0YWdWYWx1ZXM6IHByb3BzLnRhcmdldFJlc291cmNlLnRhZ1ZhbHVlcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIC8vIPCfkYcgRXZlbnRCcmlkZ2UgYnkgUkRTIERCIEluc3RhbmNlIEF1dG8gU3RhcnQgRXZlbnRcbiAgICBuZXcgZXZlbnRzLlJ1bGUodGhpcywgJ0RCQ2x1c3RlckV2ZW50Jywge1xuICAgICAgcnVsZU5hbWU6IG5hbWVzLnN0YXJ0Q2x1c3RlckV2ZW50Q2F0Y2hSdWxlTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnZGIgY2x1c3RlciBydW5uaW5nIGV2ZW50IGNhdGNoIHJ1bGUnLFxuICAgICAgZW5hYmxlZDogZW5hYmxlUnVsZSxcbiAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICBzb3VyY2U6IFsnYXdzLnJkcyddLFxuICAgICAgICBkZXRhaWxUeXBlOiBbJ1JEUyBEQiBDbHVzdGVyIEV2ZW50J10sXG4gICAgICAgIGRldGFpbDoge1xuICAgICAgICAgIEV2ZW50SUQ6IFsnUkRTLUVWRU5ULTAxNTMnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRzOiBbXG4gICAgICAgIG5ldyB0YXJnZXRzLlNmblN0YXRlTWFjaGluZShzdGF0ZU1hY2hpbmUsIHtcbiAgICAgICAgICByb2xlOiBleGVjUm9sZSxcbiAgICAgICAgICBpbnB1dDogZXZlbnRzLlJ1bGVUYXJnZXRJbnB1dC5mcm9tT2JqZWN0KHtcbiAgICAgICAgICAgIGV2ZW50OiBldmVudHMuRXZlbnRGaWVsZC5mcm9tUGF0aCgnJCcpLFxuICAgICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAgIHRhZ0tleTogcHJvcHMudGFyZ2V0UmVzb3VyY2UudGFnS2V5LFxuICAgICAgICAgICAgICB0YWdWYWx1ZXM6IHByb3BzLnRhcmdldFJlc291cmNlLnRhZ1ZhbHVlcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufSJdfQ==
|
package/package.json
CHANGED
|
@@ -59,9 +59,13 @@
|
|
|
59
59
|
"typescript": "5.5.x"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
+
"@gammarers/aws-resource-naming": "^0.10.1",
|
|
62
63
|
"aws-cdk-lib": "^2.120.0",
|
|
63
64
|
"constructs": "^10.0.5"
|
|
64
65
|
},
|
|
66
|
+
"dependencies": {
|
|
67
|
+
"@gammarers/aws-resource-naming": "^0.10.1"
|
|
68
|
+
},
|
|
65
69
|
"keywords": [
|
|
66
70
|
"auto",
|
|
67
71
|
"aws",
|
|
@@ -79,7 +83,7 @@
|
|
|
79
83
|
"publishConfig": {
|
|
80
84
|
"access": "public"
|
|
81
85
|
},
|
|
82
|
-
"version": "2.
|
|
86
|
+
"version": "2.1.1",
|
|
83
87
|
"jest": {
|
|
84
88
|
"coverageProvider": "v8",
|
|
85
89
|
"testMatch": [
|