@gammarers/aws-rds-database-auto-running-protection-stack 2.3.0 → 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 +3 -3
- package/README.md +39 -0
- package/images/example-email.png +0 -0
- package/images/exapmle-slack.png +0 -0
- package/lib/index.js +1 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -3719,7 +3719,7 @@
|
|
|
3719
3719
|
},
|
|
3720
3720
|
"name": "@gammarers/aws-rds-database-auto-running-protection-stack",
|
|
3721
3721
|
"readme": {
|
|
3722
|
-
"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: 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```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[](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: 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\n\n### Slack\n\n\n\n## License\n\nThis project is licensed under the Apache-2.0 License.\n"
|
|
3723
3723
|
},
|
|
3724
3724
|
"repository": {
|
|
3725
3725
|
"type": "git",
|
|
@@ -4117,6 +4117,6 @@
|
|
|
4117
4117
|
"symbolId": "src/index:TargetResource"
|
|
4118
4118
|
}
|
|
4119
4119
|
},
|
|
4120
|
-
"version": "2.3.
|
|
4121
|
-
"fingerprint": "
|
|
4120
|
+
"version": "2.3.1",
|
|
4121
|
+
"fingerprint": "F7VvE49Itz9RrKodmW588iRZH8E0sWuT8cpmEumweFI="
|
|
4122
4122
|
}
|
package/README.md
CHANGED
|
@@ -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
|
+

|
|
117
|
+
|
|
118
|
+
### Slack
|
|
119
|
+
|
|
120
|
+

|
|
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.js
CHANGED
|
@@ -135,5 +135,5 @@ class RDSDatabaseAutoRunningProtectionStack extends aws_cdk_lib_1.Stack {
|
|
|
135
135
|
}
|
|
136
136
|
exports.RDSDatabaseAutoRunningProtectionStack = RDSDatabaseAutoRunningProtectionStack;
|
|
137
137
|
_a = JSII_RTTI_SYMBOL_1;
|
|
138
|
-
RDSDatabaseAutoRunningProtectionStack[_a] = { fqn: "@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStack", version: "2.3.
|
|
138
|
+
RDSDatabaseAutoRunningProtectionStack[_a] = { fqn: "@gammarers/aws-rds-database-auto-running-protection-stack.RDSDatabaseAutoRunningProtectionStack", version: "2.3.1" };
|
|
139
139
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx3RUFBMEw7QUFXakwsd0lBWGlGLHdDQUF1RCxPQVdqRjtBQVZoRSxvSEFBeUc7QUFDekcsNkNBQXVEO0FBQ3ZELGlEQUFpRDtBQUNqRCwwREFBMEQ7QUFDMUQsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyxtRUFBbUU7QUFFbkUsbUZBQThFO0FBb0M5RSxNQUFhLHFDQUFzQyxTQUFRLG1CQUFLO0lBQzlELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUQ7UUFDekYsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsbUNBQW1DO1FBQ25DLE1BQU0sTUFBTSxHQUFHLG9DQUFjLENBQUMsa0JBQWtCLENBQUMsR0FBRyxtQkFBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxtQkFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckcsa0JBQWtCO1FBQ2xCLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLGdCQUFnQixFQUFFLDRCQUE0QixNQUFNLGdCQUFnQjtZQUNwRSxvQkFBb0IsRUFBRSwwQ0FBMEMsTUFBTSxPQUFPO1lBQzdFLDJCQUEyQixFQUFFLG1DQUFtQyxNQUFNLE9BQU87WUFDN0UsK0JBQStCLEVBQUUsdUNBQXVDLE1BQU0sT0FBTztZQUNyRiw4QkFBOEIsRUFBRSxzQ0FBc0MsTUFBTSxPQUFPO1NBQ3BGLENBQUM7UUFDRixNQUFNLEtBQUssR0FBRyxvQ0FBYyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLG9CQUEyRCxDQUFDLENBQUM7UUFFbkgsaUNBQWlDO1FBQ2pDLE1BQU0sS0FBSyxHQUFjLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDaEUsU0FB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TSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO3dCQUN0QyxNQUFNLEVBQUU7NEJBQ04sTUFBTSxFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTTs0QkFDbkMsU0FBUyxFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBUzt5QkFDMUM7cUJBQ0YsQ0FBQztpQkFDSCxDQUFDO2FBQ0g7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQS9ISCxzRkFnSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvdXJjZUF1dG9OYW1pbmcsIFJlc291cmNlRGVmYXVsdE5hbWluZywgUmVzb3VyY2VOYW1pbmcsIFJlc291cmNlTmFtaW5nVHlwZSBhcyBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrUmVzb3VyY2VOYW1pbmdUeXBlIH0gZnJvbSAnQGdhbW1hcmVycy9hd3MtcmVzb3VyY2UtbmFtaW5nJztcbmltcG9ydCB7IFNOU1NsYWNrTWVzc2FnZUxhbWJkYVN1YnNjcmlwdGlvbiB9IGZyb20gJ0BnYW1tYXJlcnMvYXdzLXNucy1zbGFjay1tZXNzYWdlLWxhbWJkYS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHsgTmFtZXMsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1ldmVudHMnO1xuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHMnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMgc3Vic2NyaXB0aW9ucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc25zLXN1YnNjcmlwdGlvbnMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBQcm90ZWN0aW9uU3RhdGVNYWNoaW5lIH0gZnJvbSAnLi9yZXNvdXJjZXMvcHJvdGVjdGlvbi1zdGF0ZS1tYWNoaW5lJztcblxuZXhwb3J0IHsgUkRTRGF0YWJhc2VBdXRvUnVubmluZ1Byb3RlY3Rpb25TdGFja1Jlc291cmNlTmFtaW5nVHlwZSB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFJlc291cmNlIHtcbiAgcmVhZG9ubHkgdGFnS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhZ1ZhbHVlczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2xhY2sge1xuICByZWFkb25seSB3ZWJob29rU2VjcmV0TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbnMge1xuICByZWFkb25seSBlbWFpbHM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc2xhY2s/OiBTbGFjaztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgcmVhZG9ubHkgdGFyZ2V0UmVzb3VyY2U6IFRhcmdldFJlc291cmNlO1xuICByZWFkb25seSBlbmFibGVSdWxlPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbm90aWZpY2F0aW9ucz86IE5vdGlmaWNhdGlvbnM7XG4gIHJlYWRvbmx5IHJlc291cmNlTmFtaW5nT3B0aW9uPzogUmVzb3VyY2VOYW1pbmdPcHRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VDdXN0b21OYW1pbmcge1xuICByZWFkb25seSB0eXBlOiBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrUmVzb3VyY2VOYW1pbmdUeXBlLkNVU1RPTTtcbiAgcmVhZG9ubHkgc3RhdGVNYWNoaW5lTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzdGF0ZU1hY2hpbmVSb2xlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzdGFydEV2ZW50Q2F0Y2hSdWxlUm9sZU5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhcnRJbnN0YW5jZUV2ZW50Q2F0Y2hSdWxlTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzdGFydENsdXN0ZXJFdmVudENhdGNoUnVsZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VOYW1pbmdPcHRpb24gPSBSZXNvdXJjZURlZmF1bHROYW1pbmcgfCBSZXNvdXJjZUF1dG9OYW1pbmcgfCBSZXNvdXJjZUN1c3RvbU5hbWluZztcblxuZXhwb3J0IGNsYXNzIFJEU0RhdGFiYXNlQXV0b1J1bm5pbmdQcm90ZWN0aW9uU3RhY2sgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSRFNEYXRhYmFzZUF1dG9SdW5uaW5nUHJvdGVjdGlvblN0YWNrUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIC8vIPCfkYcgQ3JlYXRlIHJhbmRvbSA4IGxlbmd0aCBzdHJpbmdcbiAgICBjb25zdCByYW5kb20gPSBSZXNvdXJjZU5hbWluZy5jcmVhdGVSYW5kb21TdHJpbmcoYCR7TmFtZXMudW5pcXVlSWQoc2NvcGUpfS4ke05hbWVzLnVuaXF1ZUlkKHRoaXMpfWApO1xuICAgIC8vIPCfkYcgQXV0byBuYWVtaW5nXG4gICAgY29uc3QgYXV0b05hbWluZyA9IHtcbiAgICAgIHN0YXRlTWFjaGluZU5hbWU6IGByZHMtZGItYXV0by1ydW5uaW5nLXN0b3AtJHtyYW5kb219LXN0YXRlLW1hY2hpbmVgLFxuICAgICAgc3RhdGVNYWNoaW5lUm9sZU5hbWU6IGByZHMtZGItYXV0by1ydW5uaW5nLXN0b3Atc3RhdGUtbWFjaGluZS0ke3JhbmRvbX0tcm9sZWAsXG4gICAgICBzdGFydEV2ZW50Q2F0Y2hSdWxlUm9sZU5hbWU6IGByZHMtZGItYXV0by1ydW5uaW5nLWNhdGNoLWV2ZW50LSR7cmFuZG9tfS1yb2xlYCxcbiAgICAgIHN0YXJ0SW5zdGFuY2VFdmVudENhdGNoUnVsZU5hbWU6IGByZHMtZGItaW5zdGFuY2UtcnVubmluZy1ldmVudC1jYXRjaC0ke3JhbmRvbX0tcnVsZWAsXG4gICAgICBzdGFydENsdXN0ZXJFdmVudENhdGNoUnVsZU5hbWU6IGByZHMtZGItY2x1c3Rlci1ydW5uaW5nLWV2ZW50LWNhdGNoLSR7cmFuZG9tfS1ydWxlYCxcbiAgICB9O1xuICAgIGNvbnN0IG5hbWVzID0gUmVzb3VyY2VOYW1pbmcubmFtaW5nKGF1dG9OYW1pbmcsIHByb3BzLnJlc291cmNlTmFtaW5nT3B0aW9uIGFzIFJlc291cmNlTmFtaW5nLlJlc291cmNlTmFtaW5nT3B0aW9uKTtcblxuICAgIC8vIPCfkYcgU05TIFRvcGljIGZvciBub3RpZmljYXRpb25zXG4gICAgY29uc3QgdG9waWM6IHNucy5Ub3BpYyA9IG5ldyBzbnMuVG9waWModGhpcywgJ05vdGlmaWNhdGlvblRvcGljJywge1xuICAgICAgdG9waWNOYW1lOiBuYW1lcy5ub3RpZmljYXRpb25Ub3BpY05hbWUsXG4gICAgICBkaXNwbGF5TmFtZTogbmFtZXMubm90aWZpY2F0aW9uVG9waWNEaXNwbGF5TmFtZSxcbiAgICB9KTtcblxuICAgIC8vIPCfkYcgU3Vic2NyaWJlIGFuIGVtYWlsIGVuZHBvaW50IHRvIHRoZSB0b3BpY1xuICAgIGNvbnN0IGVtYWlscyA9IHByb3BzLm5vdGlmaWNhdGlvbnM/LmVtYWlscyA/PyBbXTtcbiAgICBmb3IgKGNvbnN0IGVtYWlsIG9mIGVtYWlscykge1xuICAgICAgdG9waWMuYWRkU3Vic2NyaXB0aW9uKG5ldyBzdWJzY3JpcHRpb25zLkVtYWlsU3Vic2NyaXB0aW9uKGVtYWlsKSk7XG4gICAgfVxuXG4gICAgLy8g8J+RhyBTdWJzY3JpcHRpb24gc2xhY2sgd2ViaG9va1xuICAgIGlmIChwcm9wcy5ub3RpZmljYXRpb25zPy5zbGFjaykge1xuICAgICAgbmV3IFNOU1NsYWNrTWVzc2FnZUxhbWJkYVN1YnNjcmlwdGlvbih0aGlzLCAnU05TU2xhY2tNZXNzYWdlTGFtYmRhU3Vic2NyaXB0aW9uJywge1xuICAgICAgICB0b3BpYyxcbiAgICAgICAgc2xhY2tXZWJob29rU2VjcmV0TmFtZTogcHJvcHMubm90aWZpY2F0aW9ucy5zbGFjay53ZWJob29rU2VjcmV0TmFtZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIPCfkYcgU3RlcEZ1bmN0aW9uc1xuICAgIGNvbnN0IHN0YXRlTWFjaGluZSA9IG5ldyBQcm90ZWN0aW9uU3RhdGVNYWNoaW5lKHRoaXMsICdTdGF0ZU1hY2hpbmUnLCB7XG4gICAgICBzdGF0ZU1hY2hpbmVOYW1lOiBuYW1lcy5zdGF0ZU1hY2hpbmVOYW1lLFxuICAgICAgbm90aWZpY2F0aW9uVG9waWM6IHRvcGljLFxuICAgIH0pO1xuICAgIGlmIChuYW1lcy5zdGF0ZU1hY2hpbmVSb2xlTmFtZSkge1xuICAgICAgY29uc3Qgcm9sZSA9IHN0YXRlTWFjaGluZS5ub2RlLmZpbmRDaGlsZCgnUm9sZScpIGFzIGlhbS5Sb2xlO1xuICAgICAgY29uc3QgY2ZuUm9sZSA9IHJvbGUubm9kZS5kZWZhdWx0Q2hpbGQgYXMgaWFtLkNmblJvbGU7XG4gICAgICBjZm5Sb2xlLmFkZFByb3BlcnR5T3ZlcnJpZGUoJ1JvbGVOYW1lJywgbmFtZXMuc3RhdGVNYWNoaW5lUm9sZU5hbWUpO1xuICAgICAgY2ZuUm9sZS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdEZXNjcmlwdGlvbicsICdyZHMgZGF0YWJhc2UgYXV0byBydW5uaW5nIHN0b3Agc3RhdGUgbWFjaGluZSByb2xlLicpO1xuICAgICAgY29uc3QgcG9saWN5ID0gcm9sZS5ub2RlLmZpbmRDaGlsZCgnRGVmYXVsdFBvbGljeScpIGFzIGlhbS5Qb2xpY3k7XG4gICAgICBjb25zdCBjZm5Qb2xpY3kgPSBwb2xpY3kubm9kZS5kZWZhdWx0Q2hpbGQgYXMgaWFtLkNmblBvbGljeTtcbiAgICAgIGNmblBvbGljeS5hZGRQcm9wZXJ0eU92ZXJyaWRlKCdQb2xpY3lOYW1lJywgYHJkcy1kYi1hdXRvLXJ1bm5pbmctc3RvcC1zdGF0ZS1tYWNoaW5lLSR7cmFuZG9tfS1wb2xpY3lgKTtcbiAgICB9XG5cbiAgICBjb25zdCBleGVjUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnRXZlbnRFeGVjUm9sZScsIHtcbiAgICAgIHJvbGVOYW1lOiBuYW1lcy5zdGFydEV2ZW50Q2F0Y2hSdWxlUm9sZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogJ2RiIGF1dG8gc3RhcnQgY2F0Y2ggd2l0aCBzdGFydCBzdGF0ZSBtYWNoaW5lIGV2ZW50IHJvbGUnLFxuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2V2ZW50cy5hbWF6b25hd3MuY29tJyksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICAnc3RhdGUtbWFjaGluZS1leGVjJzogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnc3RhdGVzOlN0YXJ0RXhlY3V0aW9uJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAgc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybixcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGVuYWJsZVJ1bGU6IGJvb2xlYW4gPSAoKCkgPT4ge1xuICAgICAgcmV0dXJuIHByb3BzLmVuYWJsZVJ1bGUgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5lbmFibGVSdWxlO1xuICAgIH0pKCk7XG5cbiAgICAvLyDwn5GHIEV2ZW50QnJpZGdlIGJ5IFJEUyBEQiBJbnN0YW5jZSBBdXRvIFN0YXJ0IEV2ZW50XG4gICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdEQkluc3RhbmNlRXZlbnQnLCB7XG4gICAgICBydWxlTmFtZTogbmFtZXMuc3RhcnRJbnN0YW5jZUV2ZW50Q2F0Y2hSdWxlTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiAncmRzIGRiIGluc3RhbmNlIHJ1bm5pbmcgZXZlbnQgY2F0Y2ggcnVsZS4nLFxuICAgICAgZW5hYmxlZDogZW5hYmxlUnVsZSxcbiAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICBzb3VyY2U6IFsnYXdzLnJkcyddLFxuICAgICAgICBkZXRhaWxUeXBlOiBbJ1JEUyBEQiBJbnN0YW5jZSBFdmVudCddLFxuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBFdmVudElEOiBbJ1JEUy1FVkVOVC0wMTU0J10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGFyZ2V0czogW1xuICAgICAgICBuZXcgdGFyZ2V0cy5TZm5TdGF0ZU1hY2hpbmUoc3RhdGVNYWNoaW5lLCB7XG4gICAgICAgICAgcm9sZTogZXhlY1JvbGUsXG4gICAgICAgICAgaW5wdXQ6IGV2ZW50cy5SdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgICAgICBldmVudDogZXZlbnRzLkV2ZW50RmllbGQuZnJvbVBhdGgoJyQnKSxcbiAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICB0YWdLZXk6IHByb3BzLnRhcmdldFJlc291cmNlLnRhZ0tleSxcbiAgICAgICAgICAgICAgdGFnVmFsdWVzOiBwcm9wcy50YXJnZXRSZXNvdXJjZS50YWdWYWx1ZXMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyDwn5GHIEV2ZW50QnJpZGdlIGJ5IFJEUyBEQiBJbnN0YW5jZSBBdXRvIFN0YXJ0IEV2ZW50XG4gICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsICdEQkNsdXN0ZXJFdmVudCcsIHtcbiAgICAgIHJ1bGVOYW1lOiBuYW1lcy5zdGFydENsdXN0ZXJFdmVudENhdGNoUnVsZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogJ2RiIGNsdXN0ZXIgcnVubmluZyBldmVudCBjYXRjaCBydWxlJyxcbiAgICAgIGVuYWJsZWQ6IGVuYWJsZVJ1bGUsXG4gICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgc291cmNlOiBbJ2F3cy5yZHMnXSxcbiAgICAgICAgZGV0YWlsVHlwZTogWydSRFMgREIgQ2x1c3RlciBFdmVudCddLFxuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICBFdmVudElEOiBbJ1JEUy1FVkVOVC0wMTUzJ10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGFyZ2V0czogW1xuICAgICAgICBuZXcgdGFyZ2V0cy5TZm5TdGF0ZU1hY2hpbmUoc3RhdGVNYWNoaW5lLCB7XG4gICAgICAgICAgcm9sZTogZXhlY1JvbGUsXG4gICAgICAgICAgaW5wdXQ6IGV2ZW50cy5SdWxlVGFyZ2V0SW5wdXQuZnJvbU9iamVjdCh7XG4gICAgICAgICAgICBldmVudDogZXZlbnRzLkV2ZW50RmllbGQuZnJvbVBhdGgoJyQnKSxcbiAgICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgICB0YWdLZXk6IHByb3BzLnRhcmdldFJlc291cmNlLnRhZ0tleSxcbiAgICAgICAgICAgICAgdGFnVmFsdWVzOiBwcm9wcy50YXJnZXRSZXNvdXJjZS50YWdWYWx1ZXMsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn0iXX0=
|