@btc-embedded/cdk-extensions 0.5.3 → 0.5.5
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 +170 -2
- package/API.md +202 -0
- package/CHANGELOG.md +19 -0
- package/lib/constructs/SecureRestApi.d.ts +7 -3
- package/lib/constructs/SecureRestApi.js +13 -15
- package/lib/constructs/index.d.ts +1 -0
- package/lib/constructs/index.js +18 -0
- package/lib/extensions/ApiGatewayExtension.js +1 -1
- package/lib/extensions/ApplicationLoadBalancerExtension.js +1 -1
- package/lib/extensions/CloudMapExtension.js +1 -1
- package/lib/extensions/DocumentDbAccessExtension.js +1 -1
- package/lib/extensions/DomainEventMessagingExtension.js +1 -1
- package/lib/extensions/ExtraContainerExtension.js +1 -1
- package/lib/extensions/ImportValue.d.ts +2 -0
- package/lib/extensions/ImportValue.js +12 -0
- package/lib/extensions/LogExtension.js +1 -1
- package/lib/extensions/ModifyContainerDefinitionExtension.d.ts +13 -0
- package/lib/extensions/ModifyContainerDefinitionExtension.js +41 -0
- package/lib/extensions/ModifyTaskDefinitionExtension.d.ts +13 -0
- package/lib/extensions/ModifyTaskDefinitionExtension.js +28 -0
- package/lib/extensions/PostgresDbAccessExtension.js +1 -1
- package/lib/extensions/S3BucketAccessExtension.d.ts +13 -0
- package/lib/extensions/S3BucketAccessExtension.js +32 -0
- package/lib/extensions/SharedVolumeExtension.js +1 -1
- package/lib/extensions/TcpKeepAliveExtension.js +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/platform/ApiGateway.js +1 -1
- package/lib/platform/ApplicationLoadBalancer.js +1 -1
- package/lib/platform/AuthenticationStack.d.ts +19 -0
- package/lib/platform/AuthenticationStack.js +92 -0
- package/lib/platform/CloudMap.d.ts +16 -0
- package/lib/platform/CloudMap.js +48 -0
- package/lib/platform/DefaultUserPoolClients.js +1 -1
- package/lib/platform/DocumentDB.js +1 -1
- package/lib/platform/MessageQueue.d.ts +23 -0
- package/lib/platform/MessageQueue.js +166 -0
- package/lib/platform/PrivateDnsNamespace.js +1 -1
- package/lib/platform/Vpc.js +1 -1
- package/package.json +1 -1
|
@@ -75,5 +75,5 @@ class DefaultUserPoolClients extends constructs_1.Construct {
|
|
|
75
75
|
}
|
|
76
76
|
exports.DefaultUserPoolClients = DefaultUserPoolClients;
|
|
77
77
|
_a = JSII_RTTI_SYMBOL_1;
|
|
78
|
-
DefaultUserPoolClients[_a] = { fqn: "@btc-embedded/cdk-extensions.DefaultUserPoolClients", version: "0.5.
|
|
78
|
+
DefaultUserPoolClients[_a] = { fqn: "@btc-embedded/cdk-extensions.DefaultUserPoolClients", version: "0.5.5" };
|
|
79
79
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFVzZXJQb29sQ2xpZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbGF0Zm9ybS9EZWZhdWx0VXNlclBvb2xDbGllbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseURBT2lDO0FBQ2pDLDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFrQzFDOztHQUVHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxzQkFBUztJQUluRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFrQztRQUVsQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sY0FBYyxHQUFHLElBQUksaUNBQW1CLENBQUM7WUFDN0MsU0FBUyxFQUFFLFlBQVk7WUFDdkIsZ0JBQWdCLEVBQUUsNEJBQTRCO1NBQy9DLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLEVBQUU7WUFDdkUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTO1lBQzFCLE1BQU0sRUFBRSxDQUFDLGNBQWMsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FDakIsS0FBSyxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3JELDRDQUE4QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDNUMsSUFBSSxFQUFFLENBQUM7UUFFVixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUU5QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7WUFDakUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLEtBQUssRUFBRTtnQkFDTCxLQUFLLEVBQUU7b0JBQ0wsaUJBQWlCLEVBQUUsSUFBSTtpQkFDeEI7Z0JBQ0QsTUFBTSxFQUFFLENBQUMsd0JBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQzVEO1lBQ0QsMEJBQTBCLEVBQUU7Z0JBQzFCLDRDQUE4QixDQUFDLE9BQU87Z0JBQ3RDLEdBQUcsYUFBYTthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRTtZQUN2RSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFFeEIscURBQXFEO1lBQ3JELGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFNBQVMsRUFBRTtnQkFDVCxZQUFZLEVBQUUsSUFBSTthQUNuQjtZQUVELEtBQUssRUFBRTtnQkFDTCxLQUFLLEVBQUU7b0JBQ0wsc0JBQXNCLEVBQUUsSUFBSTtpQkFDN0I7Z0JBQ0QsTUFBTSxFQUFFLENBQUMsd0JBQVUsQ0FBQyxNQUFNLEVBQUUsd0JBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQy9DLFlBQVksRUFBRTtvQkFDWiwyQkFBMkI7b0JBQzNCLFdBQVcsS0FBSyxDQUFDLElBQUkscUJBQXFCO29CQUMxQyxHQUFHLFlBQVk7aUJBQ2hCO2dCQUNELFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTthQUM3QjtZQUNELDBCQUEwQixFQUFFO2dCQUMxQiw0Q0FBOEIsQ0FBQyxPQUFPO2dCQUN0QyxHQUFHLGFBQWE7YUFDakI7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRyxJQUFBLHNCQUFjLEVBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXBELFdBQVcsQ0FBQztZQUNWLElBQUksRUFBRSwrQkFBK0I7WUFDckMsR0FBRyxFQUFFLHVCQUF1QjtZQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0I7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLDZCQUE2QjtZQUNuQyxHQUFHLEVBQUUscUJBQXFCO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQjtTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQW5GSCx3REFvRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJVXNlclBvb2wsXG4gIElVc2VyUG9vbENsaWVudCxcbiAgT0F1dGhTY29wZSxcbiAgUmVzb3VyY2VTZXJ2ZXJTY29wZSxcbiAgVXNlclBvb2xDbGllbnQsXG4gIFVzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlcixcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgY3JlYXRlRXhwb3J0ZXIgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0VXNlclBvb2xDbGllbnRzUHJvcHMge1xuICAvKipcbiAgICogVGhlIHVzZXIgcG9vbCB3aGljaCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIGNsaWVudHMuXG4gICAqL1xuICByZWFkb25seSB1c2VyUG9vbDogSVVzZXJQb29sO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVsbHkgcXVhbGlmaWVkIGRvbWFpbiBuYW1lIHdoaWNoIHRoZSBBTEIgd2lsbCBsaXN0ZW4gdG8uXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBpcyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgY29ycmVjdCBjYWxsYmFjayBVUkwgZm9yIHVzZXIgcG9vbFxuICAgKiBjbGllbnQgc3VjaCB0aGF0IHRoZSBBTEIgY2FuIHBlcmZvcm0gYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqL1xuICByZWFkb25seSBmcWRuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdmFsaWQgbG9nb3V0IFVSTHMgd2hpY2ggc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBmcm9udGVuZCB1c2VyIHBvb2wgY2xpZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nb3V0VXJscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGFkZGl0aW9uYWwgY2FsbGJhY2sgVVJMcyB3aGljaCB0aGUgZnJvbnRlbmQgdXNlcyBmb3IgT0lEQyBhdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGNhbGxiYWNrVXJscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGFkZGl0aW9uYWwgdXNlciBwb29sIGlkZW50aXR5IHByb3ZpZGVycyB0byBlbmFibGUgZmVkZXJhdGVkIGxvZ2luLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRvbmFsVXNlclBvb2xJZGVudGl0eVByb3ZpZGVycz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIENyZWF0ZSBkZWZhdWx0IHVzZXIgcG9vbCBjbGllbnRzIGZvciB0aGUgZnJvbnRlbmQgYW5kIEFQSSBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZhdWx0VXNlclBvb2xDbGllbnRzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIGZyb250ZW5kQ2xpZW50OiBJVXNlclBvb2xDbGllbnQ7XG4gIHB1YmxpYyBhcGlDbGllbnQ6IElVc2VyUG9vbENsaWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IERlZmF1bHRVc2VyUG9vbENsaWVudHNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGFwaUFjY2Vzc1Njb3BlID0gbmV3IFJlc291cmNlU2VydmVyU2NvcGUoe1xuICAgICAgc2NvcGVOYW1lOiBcImFwaV9hY2Nlc3NcIixcbiAgICAgIHNjb3BlRGVzY3JpcHRpb246IFwiUkVTVCBBUEkgZnVsbCBhY2Nlc3Mgc2NvcGVcIixcbiAgICB9KTtcblxuICAgIGNvbnN0IHNlcnZlciA9IHByb3BzLnVzZXJQb29sLmFkZFJlc291cmNlU2VydmVyKFwiUkVTVEFQSVJlc291cmNlU2VydmVyXCIsIHtcbiAgICAgIGlkZW50aWZpZXI6IGAke2lkfVJFU1RBUElgLFxuICAgICAgc2NvcGVzOiBbYXBpQWNjZXNzU2NvcGVdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvdmlkZXJOYW1lcyA9XG4gICAgICBwcm9wcy5hZGRpdG9uYWxVc2VyUG9vbElkZW50aXR5UHJvdmlkZXJzPy5tYXAoKG5hbWUpID0+XG4gICAgICAgIFVzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5jdXN0b20obmFtZSksXG4gICAgICApID8/IFtdO1xuXG4gICAgY29uc3QgY2FsbGJhY2tVcmxzID0gcHJvcHMuY2FsbGJhY2tVcmxzID8/IFtdO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBuZXcgVXNlclBvb2xDbGllbnQodGhpcywgXCJSRVNUQVBJVXNlclBvb2xDbGllbnRcIiwge1xuICAgICAgdXNlclBvb2w6IHByb3BzLnVzZXJQb29sLFxuICAgICAgZ2VuZXJhdGVTZWNyZXQ6IHRydWUsXG4gICAgICBvQXV0aDoge1xuICAgICAgICBmbG93czoge1xuICAgICAgICAgIGNsaWVudENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBzY29wZXM6IFtPQXV0aFNjb3BlLnJlc291cmNlU2VydmVyKHNlcnZlciwgYXBpQWNjZXNzU2NvcGUpXSxcbiAgICAgIH0sXG4gICAgICBzdXBwb3J0ZWRJZGVudGl0eVByb3ZpZGVyczogW1xuICAgICAgICBVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIuQ09HTklUTyxcbiAgICAgICAgLi4ucHJvdmlkZXJOYW1lcyxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmZyb250ZW5kQ2xpZW50ID0gbmV3IFVzZXJQb29sQ2xpZW50KHRoaXMsIFwiRnJvbnRlbmRVc2VyUG9vbENsaWVudFwiLCB7XG4gICAgICB1c2VyUG9vbDogcHJvcHMudXNlclBvb2wsXG5cbiAgICAgIC8vIFJlcXVpcmVkIG1pbmltYWwgY29uZmlndXJhdGlvbiBmb3IgdXNlIHdpdGggYW4gRUxCXG4gICAgICBnZW5lcmF0ZVNlY3JldDogdHJ1ZSxcbiAgICAgIGF1dGhGbG93czoge1xuICAgICAgICB1c2VyUGFzc3dvcmQ6IHRydWUsXG4gICAgICB9LFxuXG4gICAgICBvQXV0aDoge1xuICAgICAgICBmbG93czoge1xuICAgICAgICAgIGF1dGhvcml6YXRpb25Db2RlR3JhbnQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHNjb3BlczogW09BdXRoU2NvcGUuT1BFTklELCBPQXV0aFNjb3BlLlBST0ZJTEVdLFxuICAgICAgICBjYWxsYmFja1VybHM6IFtcbiAgICAgICAgICAvLyBhZGQgY2FsbGJhY2sgVVJMIGZvciBBTEJcbiAgICAgICAgICBgaHR0cHM6Ly8ke3Byb3BzLmZxZG59L29hdXRoMi9pZHByZXNwb25zZWAsXG4gICAgICAgICAgLi4uY2FsbGJhY2tVcmxzLFxuICAgICAgICBdLFxuICAgICAgICBsb2dvdXRVcmxzOiBwcm9wcy5sb2dvdXRVcmxzLFxuICAgICAgfSxcbiAgICAgIHN1cHBvcnRlZElkZW50aXR5UHJvdmlkZXJzOiBbXG4gICAgICAgIFVzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5DT0dOSVRPLFxuICAgICAgICAuLi5wcm92aWRlck5hbWVzLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGV4cG9ydFZhbHVlID0gY3JlYXRlRXhwb3J0ZXIodGhpcywgXCJjb2duaXRvXCIpO1xuXG4gICAgZXhwb3J0VmFsdWUoe1xuICAgICAgbmFtZTogXCJDb2duaXRvIEZ1bGwgQWNjZXNzIENsaWVudCBJZFwiLFxuICAgICAga2V5OiBcImZ1bGwtYWNjZXNzLWNsaWVudC1pZFwiLFxuICAgICAgdmFsdWU6IHRoaXMuYXBpQ2xpZW50LnVzZXJQb29sQ2xpZW50SWQsXG4gICAgfSk7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIkNvZ25pdG8gVXNlciBQb29sIENsaWVudCBJZFwiLFxuICAgICAga2V5OiBcInVzZXItcG9vbC1jbGllbnQtaWRcIixcbiAgICAgIHZhbHVlOiB0aGlzLmZyb250ZW5kQ2xpZW50LnVzZXJQb29sQ2xpZW50SWQsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -43,5 +43,5 @@ class DocumentDB extends constructs_1.Construct {
|
|
|
43
43
|
}
|
|
44
44
|
exports.DocumentDB = DocumentDB;
|
|
45
45
|
_a = JSII_RTTI_SYMBOL_1;
|
|
46
|
-
DocumentDB[_a] = { fqn: "@btc-embedded/cdk-extensions.DocumentDB", version: "0.5.
|
|
46
|
+
DocumentDB[_a] = { fqn: "@btc-embedded/cdk-extensions.DocumentDB", version: "0.5.5" };
|
|
47
47
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG9jdW1lbnREQi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbGF0Zm9ybS9Eb2N1bWVudERCLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBQzFDLHFEQUF3RDtBQUN4RCxpREFLNkI7QUFDN0IsdUVBQXdEO0FBQ3hELDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFTMUMsTUFBYSxVQUFXLFNBQVEsc0JBQVM7SUFHdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwyQkFBZSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDckQsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDeEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2dCQUM1QixpQkFBaUIsRUFBRSxrQ0FBa0M7YUFDdEQ7WUFDRCxZQUFZLEVBQUUsc0JBQVksQ0FBQyxFQUFFLENBQUMsdUJBQWEsQ0FBQyxFQUFFLEVBQUUsc0JBQVksQ0FBQyxNQUFNLENBQUM7WUFDcEUsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsMkJBQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUM7YUFDdkUsbUJBQW1CLENBQUMsVUFBVSxDQUFDO1lBQ2hDLDRFQUE0RTthQUMzRSxZQUFZLEVBQUUsQ0FBQztRQUVsQixNQUFNLE1BQU0sR0FBRyxJQUFJLDJCQUFNLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUMvQyxpQkFBaUIsRUFBRSxJQUFJLHlCQUFXLENBQ2hDLGFBQWEsS0FBSyxDQUFDLFFBQVEsSUFBSSxRQUFRLElBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFFBQy9CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLCtFQUErRSxDQUMvSDtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLElBQUEsc0JBQWMsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFeEQsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLDhCQUE4QjtZQUNwQyxHQUFHLEVBQUUsbUJBQW1CO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWU7U0FDcEMsQ0FBQyxDQUFDO1FBRUgsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixHQUFHLEVBQUUsWUFBWTtZQUNqQixLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVM7U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUExQ0gsZ0NBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VjcmV0VmFsdWUgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IERhdGFiYXNlQ2x1c3RlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZG9jZGJcIjtcbmltcG9ydCB7XG4gIElWcGMsXG4gIEluc3RhbmNlQ2xhc3MsXG4gIEluc3RhbmNlU2l6ZSxcbiAgSW5zdGFuY2VUeXBlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgU2VjcmV0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGNyZWF0ZUV4cG9ydGVyIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnREQlByb3BzIHtcbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlY3JldE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xufVxuXG5leHBvcnQgY2xhc3MgRG9jdW1lbnREQiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgY2x1c3RlcjogRGF0YWJhc2VDbHVzdGVyO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEb2N1bWVudERCUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5jbHVzdGVyID0gbmV3IERhdGFiYXNlQ2x1c3Rlcih0aGlzLCBgRG9jdW1lbnREYmAsIHtcbiAgICAgIG1hc3RlclVzZXI6IHtcbiAgICAgICAgdXNlcm5hbWU6IHByb3BzLnVzZXJuYW1lLFxuICAgICAgICBzZWNyZXROYW1lOiBwcm9wcy5zZWNyZXROYW1lLFxuICAgICAgICBleGNsdWRlQ2hhcmFjdGVyczogXCJcXFwiQCUmL1xcXFx7fSgpW108PnxgJyw6Oys/fio9IV4jXy1cIixcbiAgICAgIH0sXG4gICAgICBpbnN0YW5jZVR5cGU6IEluc3RhbmNlVHlwZS5vZihJbnN0YW5jZUNsYXNzLlQzLCBJbnN0YW5jZVNpemUuTUVESVVNKSxcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGFzc3dvcmQgPSBTZWNyZXQuZnJvbVNlY3JldE5hbWVWMih0aGlzLCBcIlNlY3JldFwiLCBwcm9wcy5zZWNyZXROYW1lKVxuICAgICAgLnNlY3JldFZhbHVlRnJvbUpzb24oXCJwYXNzd29yZFwiKVxuICAgICAgLy8gVW5zYWZlIHVud3JhcCBpcyBva2F5LCBzaW5jZSB0aGUgb25seSB1c2UgaXMgdG8gd3JhcCBpdCBpbiBhbm90aGVyIHNlY3JldFxuICAgICAgLnVuc2FmZVVud3JhcCgpO1xuXG4gICAgY29uc3Qgc2VjcmV0ID0gbmV3IFNlY3JldCh0aGlzLCBcImRiLXVybC1zZWNyZXRcIiwge1xuICAgICAgc2VjcmV0U3RyaW5nVmFsdWU6IG5ldyBTZWNyZXRWYWx1ZShcbiAgICAgICAgYG1vbmdvZGI6Ly8ke3Byb3BzLnVzZXJuYW1lfToke3Bhc3N3b3JkfUAke1xuICAgICAgICAgIHRoaXMuY2x1c3Rlci5jbHVzdGVyRW5kcG9pbnQuaG9zdG5hbWVcbiAgICAgICAgfToke3RoaXMuY2x1c3Rlci5jbHVzdGVyRW5kcG9pbnQucG9ydEFzU3RyaW5nKCl9Lz90bHM9dHJ1ZSZyZXBsaWNhU2V0PXJzMCZyZWFkUHJlZmVyZW5jZT1zZWNvbmRhcnlQcmVmZXJyZWQmcmV0cnlXcml0ZXM9ZmFsc2VgLFxuICAgICAgKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGV4cG9ydFZhbHVlID0gY3JlYXRlRXhwb3J0ZXIodGhpcywgXCJkb2N1bWVudC1kYlwiKTtcblxuICAgIGV4cG9ydFZhbHVlKHtcbiAgICAgIG5hbWU6IFwiRG9jdW1lbnREQiBTZWN1cml0eSBHcm91cCBJZFwiLFxuICAgICAga2V5OiBcInNlY3VyaXR5LWdyb3VwLWlkXCIsXG4gICAgICB2YWx1ZTogdGhpcy5jbHVzdGVyLnNlY3VyaXR5R3JvdXBJZCxcbiAgICB9KTtcblxuICAgIGV4cG9ydFZhbHVlKHtcbiAgICAgIG5hbWU6IFwiRG9jdW1lbnREQiBTZWNyZXQgQVJOXCIsXG4gICAgICBrZXk6IFwic2VjcmV0LWFyblwiLFxuICAgICAgdmFsdWU6IHNlY3JldC5zZWNyZXRBcm4sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IRole } from "aws-cdk-lib/aws-iam";
|
|
2
|
+
import * as sqs from "aws-cdk-lib/aws-sqs";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
export interface MessageQueueProps {
|
|
5
|
+
readonly scope: Construct;
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly sourceServiceNames: string[];
|
|
8
|
+
readonly eventName: string;
|
|
9
|
+
readonly listenerServiceNames: string[];
|
|
10
|
+
readonly maxReceiveCount?: number;
|
|
11
|
+
readonly timeoutSeconds?: number;
|
|
12
|
+
readonly endlessRetry?: boolean;
|
|
13
|
+
readonly role: IRole;
|
|
14
|
+
}
|
|
15
|
+
export declare class MessageQueue extends Construct {
|
|
16
|
+
readonly queueUrls: Record<string, string>;
|
|
17
|
+
private sourceQueues;
|
|
18
|
+
private listenerQueues;
|
|
19
|
+
constructor(props: MessageQueueProps);
|
|
20
|
+
getListenerQueue(serviceName: string): sqs.Queue;
|
|
21
|
+
getSourceQueue(serviceName: string): sqs.Queue;
|
|
22
|
+
private createQueue;
|
|
23
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.MessageQueue = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
const aws_iam_1 = require("aws-cdk-lib/aws-iam");
|
|
8
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
9
|
+
const aws_lambda_event_sources_1 = require("aws-cdk-lib/aws-lambda-event-sources");
|
|
10
|
+
const aws_lambda_nodejs_1 = require("aws-cdk-lib/aws-lambda-nodejs");
|
|
11
|
+
const sns = require("aws-cdk-lib/aws-sns");
|
|
12
|
+
const aws_sns_subscriptions_1 = require("aws-cdk-lib/aws-sns-subscriptions");
|
|
13
|
+
const sqs = require("aws-cdk-lib/aws-sqs");
|
|
14
|
+
const constructs_1 = require("constructs");
|
|
15
|
+
const lodash_1 = require("lodash");
|
|
16
|
+
const path = require("path");
|
|
17
|
+
class MessageQueue extends constructs_1.Construct {
|
|
18
|
+
constructor(props) {
|
|
19
|
+
super(props.scope, props.id);
|
|
20
|
+
this.sourceQueues = {};
|
|
21
|
+
this.listenerQueues = {};
|
|
22
|
+
const { sourceServiceNames, eventName, listenerServiceNames } = props;
|
|
23
|
+
this.queueUrls = {};
|
|
24
|
+
if (sourceServiceNames.length === 0 || listenerServiceNames.length === 0) {
|
|
25
|
+
throw new Error("At least one source service name and one listener service name must be provided.");
|
|
26
|
+
}
|
|
27
|
+
const maxReceiveCount = props.maxReceiveCount ?? 10;
|
|
28
|
+
if (listenerServiceNames.length === 1) {
|
|
29
|
+
// Simple case, 1-to-1 -> Just one SQS queue
|
|
30
|
+
const listenerServiceName = listenerServiceNames[0];
|
|
31
|
+
// Create a single SQS queue with DLQ for one-to-one communication
|
|
32
|
+
const queueName = `${eventName}-${listenerServiceName}`;
|
|
33
|
+
const queue = this.createQueue({
|
|
34
|
+
queueName,
|
|
35
|
+
maxReceiveCount,
|
|
36
|
+
timeOutSeconds: props.timeoutSeconds,
|
|
37
|
+
endlessRetry: props.endlessRetry,
|
|
38
|
+
});
|
|
39
|
+
queue.grantSendMessages(props.role);
|
|
40
|
+
queue.grantConsumeMessages(props.role);
|
|
41
|
+
queue.addToResourcePolicy(new aws_iam_1.PolicyStatement({
|
|
42
|
+
actions: ["sqs:*"],
|
|
43
|
+
principals: [props.role],
|
|
44
|
+
resources: [queue.queueArn],
|
|
45
|
+
conditions: {
|
|
46
|
+
StringEquals: {
|
|
47
|
+
"aws:SourceArn": "*",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
}));
|
|
51
|
+
sourceServiceNames.forEach((sourceServiceName) => {
|
|
52
|
+
this.queueUrls[sourceServiceName] = queue.queueUrl;
|
|
53
|
+
this.sourceQueues[sourceServiceName] = queue;
|
|
54
|
+
});
|
|
55
|
+
this.queueUrls[listenerServiceName] = queue.queueUrl;
|
|
56
|
+
this.listenerQueues[listenerServiceName] = queue;
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
// More complex case 1-to-N -> SqS to SnS fan-out
|
|
60
|
+
// Create SNS Topic for fan-out
|
|
61
|
+
const topic = new sns.Topic(this, `${eventName}-topic`, {
|
|
62
|
+
topicName: `${eventName}-topic`,
|
|
63
|
+
fifo: true,
|
|
64
|
+
});
|
|
65
|
+
// Create input SQS Queue with DLQ for the emitting service
|
|
66
|
+
const inputQueueName = `${eventName}-input`;
|
|
67
|
+
const inputQueue = this.createQueue({
|
|
68
|
+
queueName: inputQueueName,
|
|
69
|
+
maxReceiveCount,
|
|
70
|
+
timeOutSeconds: props.timeoutSeconds,
|
|
71
|
+
endlessRetry: props.endlessRetry,
|
|
72
|
+
});
|
|
73
|
+
inputQueue.grantSendMessages(props.role);
|
|
74
|
+
inputQueue.addToResourcePolicy(new aws_iam_1.PolicyStatement({
|
|
75
|
+
actions: ["sqs:*"],
|
|
76
|
+
principals: [props.role],
|
|
77
|
+
resources: [inputQueue.queueArn],
|
|
78
|
+
conditions: {
|
|
79
|
+
StringEquals: {
|
|
80
|
+
"aws:SourceArn": "*",
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
}));
|
|
84
|
+
const messageTransferFunc = new aws_lambda_nodejs_1.NodejsFunction(this, "SqsToSnsLambda", {
|
|
85
|
+
runtime: aws_lambda_1.Runtime.NODEJS_18_X,
|
|
86
|
+
entry: path.join(__dirname, "./functions/transfer.ts"),
|
|
87
|
+
handler: "handler",
|
|
88
|
+
environment: {
|
|
89
|
+
TOPIC_ARN: topic.topicArn,
|
|
90
|
+
},
|
|
91
|
+
bundling: {
|
|
92
|
+
minify: false,
|
|
93
|
+
sourceMap: true,
|
|
94
|
+
nodeModules: ["aws-lambda", "@types/aws-lambda"],
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
inputQueue.grantConsumeMessages(messageTransferFunc);
|
|
98
|
+
topic.grantPublish(messageTransferFunc);
|
|
99
|
+
messageTransferFunc.addEventSource(new aws_lambda_event_sources_1.SqsEventSource(inputQueue, {
|
|
100
|
+
batchSize: 1,
|
|
101
|
+
}));
|
|
102
|
+
sourceServiceNames.forEach((sourceServiceName) => {
|
|
103
|
+
this.queueUrls[sourceServiceName] = inputQueue.queueUrl;
|
|
104
|
+
this.sourceQueues[sourceServiceName] = inputQueue;
|
|
105
|
+
});
|
|
106
|
+
// Create SQS Queues with DLQ and subscribe to the topic
|
|
107
|
+
listenerServiceNames.forEach((listenerServiceName) => {
|
|
108
|
+
const listenerQueueName = `${listenerServiceName}-${eventName}-listener`;
|
|
109
|
+
const listenerQueue = this.createQueue({
|
|
110
|
+
queueName: listenerQueueName,
|
|
111
|
+
maxReceiveCount,
|
|
112
|
+
timeOutSeconds: props.timeoutSeconds,
|
|
113
|
+
endlessRetry: props.endlessRetry,
|
|
114
|
+
});
|
|
115
|
+
listenerQueue.grantConsumeMessages(props.role);
|
|
116
|
+
listenerQueue.addToResourcePolicy(new aws_iam_1.PolicyStatement({
|
|
117
|
+
actions: ["sqs:*"],
|
|
118
|
+
principals: [props.role],
|
|
119
|
+
resources: [listenerQueue.queueArn],
|
|
120
|
+
conditions: {
|
|
121
|
+
StringEquals: {
|
|
122
|
+
"aws:SourceArn": "*",
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
}));
|
|
126
|
+
// Subscribe SQS Queue to SNS Topic
|
|
127
|
+
topic.addSubscription(new aws_sns_subscriptions_1.SqsSubscription(listenerQueue, { rawMessageDelivery: true }));
|
|
128
|
+
this.queueUrls[listenerServiceName] = listenerQueue.queueUrl;
|
|
129
|
+
this.listenerQueues[listenerServiceName] = listenerQueue;
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
getListenerQueue(serviceName) {
|
|
134
|
+
return this.listenerQueues[serviceName];
|
|
135
|
+
}
|
|
136
|
+
getSourceQueue(serviceName) {
|
|
137
|
+
return this.sourceQueues[serviceName];
|
|
138
|
+
}
|
|
139
|
+
createQueue({ queueName, maxReceiveCount, endlessRetry, timeOutSeconds, }) {
|
|
140
|
+
const sharedProps = {
|
|
141
|
+
queueName: `${queueName}.fifo`,
|
|
142
|
+
fifo: true,
|
|
143
|
+
visibilityTimeout: (0, lodash_1.isNil)(timeOutSeconds)
|
|
144
|
+
? aws_cdk_lib_1.Duration.seconds(120)
|
|
145
|
+
: aws_cdk_lib_1.Duration.seconds(timeOutSeconds),
|
|
146
|
+
};
|
|
147
|
+
if (endlessRetry) {
|
|
148
|
+
return new sqs.Queue(this, queueName, sharedProps);
|
|
149
|
+
}
|
|
150
|
+
const dlq = new sqs.Queue(this, `${queueName}-dlq.fifo`, {
|
|
151
|
+
queueName: `${queueName}-dlq.fifo`,
|
|
152
|
+
fifo: true,
|
|
153
|
+
});
|
|
154
|
+
return new sqs.Queue(this, queueName, {
|
|
155
|
+
...sharedProps,
|
|
156
|
+
deadLetterQueue: {
|
|
157
|
+
queue: dlq,
|
|
158
|
+
maxReceiveCount,
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.MessageQueue = MessageQueue;
|
|
164
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
165
|
+
MessageQueue[_a] = { fqn: "@btc-embedded/cdk-extensions.MessageQueue", version: "0.3.0" };
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZVF1ZXVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsYXRmb3JtL01lc3NhZ2VRdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QyxpREFBNkQ7QUFDN0QsdURBQWlEO0FBQ2pELG1GQUFzRTtBQUN0RSxxRUFBK0Q7QUFDL0QsMkNBQTJDO0FBQzNDLDZFQUFvRTtBQUNwRSwyQ0FBMkM7QUFDM0MsMkNBQXVDO0FBQ3ZDLG1DQUErQjtBQUMvQiw2QkFBOEI7QUFjOUIsTUFBYSxZQUFhLFNBQVEsc0JBQVM7SUFNekMsWUFBWSxLQUF3QjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFKdkIsaUJBQVksR0FBOEIsRUFBRSxDQUFDO1FBQzdDLG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUtyRCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXBCLElBQUksa0JBQWtCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekUsTUFBTSxJQUFJLEtBQUssQ0FDYixrRkFBa0YsQ0FDbkYsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUVwRCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0Qyw0Q0FBNEM7WUFDNUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRCxrRUFBa0U7WUFDbEUsTUFBTSxTQUFTLEdBQUcsR0FBRyxTQUFTLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN4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UUFDckQsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxTQUFTLFdBQVcsRUFBRTtZQUN2RCxTQUFTLEVBQUUsR0FBRyxTQUFTLFdBQVc7WUFDbEMsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3BDLEdBQUcsV0FBVztZQUNkLGVBQWUsRUFBRTtnQkFDZixLQUFLLEVBQUUsR0FBRztnQkFDVixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6TEgsb0NBMExDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElSb2xlLCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgUnVudGltZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBTcXNFdmVudFNvdXJjZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLWV2ZW50LXNvdXJjZXNcIjtcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zbnNcIjtcbmltcG9ydCB7IFNxc1N1YnNjcmlwdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc25zLXN1YnNjcmlwdGlvbnNcIjtcbmltcG9ydCAqIGFzIHNxcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNxc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlUXVldWVQcm9wcyB7XG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZVNlcnZpY2VOYW1lczogc3RyaW5nW107XG4gIHJlYWRvbmx5IGV2ZW50TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBsaXN0ZW5lclNlcnZpY2VOYW1lczogc3RyaW5nW107XG4gIHJlYWRvbmx5IG1heFJlY2VpdmVDb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgdGltZW91dFNlY29uZHM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGVuZGxlc3NSZXRyeT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHJvbGU6IElSb2xlO1xufVxuXG5leHBvcnQgY2xhc3MgTWVzc2FnZVF1ZXVlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHF1ZXVlVXJsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICBwcml2YXRlIHNvdXJjZVF1ZXVlczogUmVjb3JkPHN0cmluZywgc3FzLlF1ZXVlPiA9IHt9O1xuICBwcml2YXRlIGxpc3RlbmVyUXVldWVzOiBSZWNvcmQ8c3RyaW5nLCBzcXMuUXVldWU+ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IE1lc3NhZ2VRdWV1ZVByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMuc2NvcGUsIHByb3BzLmlkKTtcblxuICAgIGNvbnN0IHsgc291cmNlU2VydmljZU5hbWVzLCBldmVudE5hbWUsIGxpc3RlbmVyU2VydmljZU5hbWVzIH0gPSBwcm9wcztcbiAgICB0aGlzLnF1ZXVlVXJscyA9IHt9O1xuXG4gICAgaWYgKHNvdXJjZVNlcnZpY2VOYW1lcy5sZW5ndGggPT09IDAgfHwgbGlzdGVuZXJTZXJ2aWNlTmFtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQXQgbGVhc3Qgb25lIHNvdXJjZSBzZXJ2aWNlIG5hbWUgYW5kIG9uZSBsaXN0ZW5lciBzZXJ2aWNlIG5hbWUgbXVzdCBiZSBwcm92aWRlZC5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF4UmVjZWl2ZUNvdW50ID0gcHJvcHMubWF4UmVjZWl2ZUNvdW50ID8/IDEwO1xuXG4gICAgaWYgKGxpc3RlbmVyU2VydmljZU5hbWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gU2ltcGxlIGNhc2UsIDEtdG8tMSAtPiBKdXN0IG9uZSBTUVMgcXVldWVcbiAgICAgIGNvbnN0IGxpc3RlbmVyU2VydmljZU5hbWUgPSBsaXN0ZW5lclNlcnZpY2VOYW1lc1swXTtcblxuICAgICAgLy8gQ3JlYXRlIGEgc2luZ2xlIFNRUyBxdWV1ZSB3aXRoIERMUSBmb3Igb25lLXRvLW9uZSBjb21tdW5pY2F0aW9uXG4gICAgICBjb25zdCBxdWV1ZU5hbWUgPSBgJHtldmVudE5hbWV9LSR7bGlzdGVuZXJTZXJ2aWNlTmFtZX1gO1xuICAgICAgY29uc3QgcXVldWUgPSB0aGlzLmNyZWF0ZVF1ZXVlKHtcbiAgICAgICAgcXVldWVOYW1lLFxuICAgICAgICBtYXhSZWNlaXZlQ291bnQsXG4gICAgICAgIHRpbWVPdXRTZWNvbmRzOiBwcm9wcy50aW1lb3V0U2Vjb25kcyxcbiAgICAgICAgZW5kbGVzc1JldHJ5OiBwcm9wcy5lbmRsZXNzUmV0cnksXG4gICAgICB9KTtcbiAgICAgIHF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKHByb3BzLnJvbGUpO1xuICAgICAgcXVldWUuZ3JhbnRDb25zdW1lTWVzc2FnZXMocHJvcHMucm9sZSk7XG4gICAgICBxdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXCJzcXM6KlwiXSxcbiAgICAgICAgICBwcmluY2lwYWxzOiBbcHJvcHMucm9sZV0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbcXVldWUucXVldWVBcm5dLFxuICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgICBcImF3czpTb3VyY2VBcm5cIjogXCIqXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIHNvdXJjZVNlcnZpY2VOYW1lcy5mb3JFYWNoKChzb3VyY2VTZXJ2aWNlTmFtZSkgPT4ge1xuICAgICAgICB0aGlzLnF1ZXVlVXJsc1tzb3VyY2VTZXJ2aWNlTmFtZV0gPSBxdWV1ZS5xdWV1ZVVybDtcbiAgICAgICAgdGhpcy5zb3VyY2VRdWV1ZXNbc291cmNlU2VydmljZU5hbWVdID0gcXVldWU7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucXVldWVVcmxzW2xpc3RlbmVyU2VydmljZU5hbWVdID0gcXVldWUucXVldWVVcmw7XG4gICAgICB0aGlzLmxpc3RlbmVyUXVldWVzW2xpc3RlbmVyU2VydmljZU5hbWVdID0gcXVldWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE1vcmUgY29tcGxleCBjYXNlIDEtdG8tTiAtPiBTcVMgdG8gU25TIGZhbi1vdXRcblxuICAgICAgLy8gQ3JlYXRlIFNOUyBUb3BpYyBmb3IgZmFuLW91dFxuICAgICAgY29uc3QgdG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsIGAke2V2ZW50TmFtZX0tdG9waWNgLCB7XG4gICAgICAgIHRvcGljTmFtZTogYCR7ZXZlbnROYW1lfS10b3BpY2AsXG4gICAgICAgIGZpZm86IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gQ3JlYXRlIGlucHV0IFNRUyBRdWV1ZSB3aXRoIERMUSBmb3IgdGhlIGVtaXR0aW5nIHNlcnZpY2VcbiAgICAgIGNvbnN0IGlucHV0UXVldWVOYW1lID0gYCR7ZXZlbnROYW1lfS1pbnB1dGA7XG4gICAgICBjb25zdCBpbnB1dFF1ZXVlID0gdGhpcy5jcmVhdGVRdWV1ZSh7XG4gICAgICAgIHF1ZXVlTmFtZTogaW5wdXRRdWV1ZU5hbWUsXG4gICAgICAgIG1heFJlY2VpdmVDb3VudCxcbiAgICAgICAgdGltZU91dFNlY29uZHM6IHByb3BzLnRpbWVvdXRTZWNvbmRzLFxuICAgICAgICBlbmRsZXNzUmV0cnk6IHByb3BzLmVuZGxlc3NSZXRyeSxcbiAgICAgIH0pO1xuXG4gICAgICBpbnB1dFF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKHByb3BzLnJvbGUpO1xuICAgICAgaW5wdXRRdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXCJzcXM6KlwiXSxcbiAgICAgICAgICBwcmluY2lwYWxzOiBbcHJvcHMucm9sZV0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbaW5wdXRRdWV1ZS5xdWV1ZUFybl0sXG4gICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgIFwiYXdzOlNvdXJjZUFyblwiOiBcIipcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgY29uc3QgbWVzc2FnZVRyYW5zZmVyRnVuYyA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCBcIlNxc1RvU25zTGFtYmRhXCIsIHtcbiAgICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgICAgZW50cnk6IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi9mdW5jdGlvbnMvdHJhbnNmZXIudHNcIiksXG4gICAgICAgIGhhbmRsZXI6IFwiaGFuZGxlclwiLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIFRPUElDX0FSTjogdG9waWMudG9waWNBcm4sXG4gICAgICAgIH0sXG4gICAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgICAgbWluaWZ5OiBmYWxzZSxcbiAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgbm9kZU1vZHVsZXM6IFtcImF3cy1sYW1iZGFcIiwgXCJAdHlwZXMvYXdzLWxhbWJkYVwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgaW5wdXRRdWV1ZS5ncmFudENvbnN1bWVNZXNzYWdlcyhtZXNzYWdlVHJhbnNmZXJGdW5jKTtcbiAgICAgIHRvcGljLmdyYW50UHVibGlzaChtZXNzYWdlVHJhbnNmZXJGdW5jKTtcbiAgICAgIG1lc3NhZ2VUcmFuc2ZlckZ1bmMuYWRkRXZlbnRTb3VyY2UoXG4gICAgICAgIG5ldyBTcXNFdmVudFNvdXJjZShpbnB1dFF1ZXVlLCB7XG4gICAgICAgICAgYmF0Y2hTaXplOiAxLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIHNvdXJjZVNlcnZpY2VOYW1lcy5mb3JFYWNoKChzb3VyY2VTZXJ2aWNlTmFtZSkgPT4ge1xuICAgICAgICB0aGlzLnF1ZXVlVXJsc1tzb3VyY2VTZXJ2aWNlTmFtZV0gPSBpbnB1dFF1ZXVlLnF1ZXVlVXJsO1xuICAgICAgICB0aGlzLnNvdXJjZVF1ZXVlc1tzb3VyY2VTZXJ2aWNlTmFtZV0gPSBpbnB1dFF1ZXVlO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIENyZWF0ZSBTUVMgUXVldWVzIHdpdGggRExRIGFuZCBzdWJzY3JpYmUgdG8gdGhlIHRvcGljXG4gICAgICBsaXN0ZW5lclNlcnZpY2VOYW1lcy5mb3JFYWNoKChsaXN0ZW5lclNlcnZpY2VOYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3RlbmVyUXVldWVOYW1lID0gYCR7bGlzdGVuZXJTZXJ2aWNlTmFtZX0tJHtldmVudE5hbWV9LWxpc3RlbmVyYDtcbiAgICAgICAgY29uc3QgbGlzdGVuZXJRdWV1ZSA9IHRoaXMuY3JlYXRlUXVldWUoe1xuICAgICAgICAgIHF1ZXVlTmFtZTogbGlzdGVuZXJRdWV1ZU5hbWUsXG4gICAgICAgICAgbWF4UmVjZWl2ZUNvdW50LFxuICAgICAgICAgIHRpbWVPdXRTZWNvbmRzOiBwcm9wcy50aW1lb3V0U2Vjb25kcyxcbiAgICAgICAgICBlbmRsZXNzUmV0cnk6IHByb3BzLmVuZGxlc3NSZXRyeSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGlzdGVuZXJRdWV1ZS5ncmFudENvbnN1bWVNZXNzYWdlcyhwcm9wcy5yb2xlKTtcbiAgICAgICAgbGlzdGVuZXJRdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1wic3FzOipcIl0sXG4gICAgICAgICAgICBwcmluY2lwYWxzOiBbcHJvcHMucm9sZV0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFtsaXN0ZW5lclF1ZXVlLnF1ZXVlQXJuXSxcbiAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICAgXCJhd3M6U291cmNlQXJuXCI6IFwiKlwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgICAgLy8gU3Vic2NyaWJlIFNRUyBRdWV1ZSB0byBTTlMgVG9waWNcbiAgICAgICAgdG9waWMuYWRkU3Vic2NyaXB0aW9uKFxuICAgICAgICAgIG5ldyBTcXNTdWJzY3JpcHRpb24obGlzdGVuZXJRdWV1ZSwgeyByYXdNZXNzYWdlRGVsaXZlcnk6IHRydWUgfSksXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucXVldWVVcmxzW2xpc3RlbmVyU2VydmljZU5hbWVdID0gbGlzdGVuZXJRdWV1ZS5xdWV1ZVVybDtcbiAgICAgICAgdGhpcy5saXN0ZW5lclF1ZXVlc1tsaXN0ZW5lclNlcnZpY2VOYW1lXSA9IGxpc3RlbmVyUXVldWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlzdGVuZXJRdWV1ZShzZXJ2aWNlTmFtZTogc3RyaW5nKTogc3FzLlF1ZXVlIHtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lclF1ZXVlc1tzZXJ2aWNlTmFtZV07XG4gIH1cblxuICBwdWJsaWMgZ2V0U291cmNlUXVldWUoc2VydmljZU5hbWU6IHN0cmluZyk6IHNxcy5RdWV1ZSB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlUXVldWVzW3NlcnZpY2VOYW1lXTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUXVldWUoe1xuICAgIHF1ZXVlTmFtZSxcbiAgICBtYXhSZWNlaXZlQ291bnQsXG4gICAgZW5kbGVzc1JldHJ5LFxuICAgIHRpbWVPdXRTZWNvbmRzLFxuICB9OiB7XG4gICAgcXVldWVOYW1lOiBzdHJpbmc7XG4gICAgbWF4UmVjZWl2ZUNvdW50OiBudW1iZXI7XG4gICAgZW5kbGVzc1JldHJ5PzogYm9vbGVhbjtcbiAgICB0aW1lT3V0U2Vjb25kcz86IG51bWJlcjtcbiAgfSk6IHNxcy5RdWV1ZSB7XG4gICAgY29uc3Qgc2hhcmVkUHJvcHMgPSB7XG4gICAgICBxdWV1ZU5hbWU6IGAke3F1ZXVlTmFtZX0uZmlmb2AsXG4gICAgICBmaWZvOiB0cnVlLFxuICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IGlzTmlsKHRpbWVPdXRTZWNvbmRzKVxuICAgICAgICA/IER1cmF0aW9uLnNlY29uZHMoMTIwKVxuICAgICAgICA6IER1cmF0aW9uLnNlY29uZHModGltZU91dFNlY29uZHMpLFxuICAgIH07XG5cbiAgICBpZiAoZW5kbGVzc1JldHJ5KSB7XG4gICAgICByZXR1cm4gbmV3IHNxcy5RdWV1ZSh0aGlzLCBxdWV1ZU5hbWUsIHNoYXJlZFByb3BzKTtcbiAgICB9XG5cbiAgICBjb25zdCBkbHEgPSBuZXcgc3FzLlF1ZXVlKHRoaXMsIGAke3F1ZXVlTmFtZX0tZGxxLmZpZm9gLCB7XG4gICAgICBxdWV1ZU5hbWU6IGAke3F1ZXVlTmFtZX0tZGxxLmZpZm9gLFxuICAgICAgZmlmbzogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgc3FzLlF1ZXVlKHRoaXMsIHF1ZXVlTmFtZSwge1xuICAgICAgLi4uc2hhcmVkUHJvcHMsXG4gICAgICBkZWFkTGV0dGVyUXVldWU6IHtcbiAgICAgICAgcXVldWU6IGRscSxcbiAgICAgICAgbWF4UmVjZWl2ZUNvdW50LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -46,5 +46,5 @@ class PrivateDnsNamespace extends constructs_1.Construct {
|
|
|
46
46
|
}
|
|
47
47
|
exports.PrivateDnsNamespace = PrivateDnsNamespace;
|
|
48
48
|
_a = JSII_RTTI_SYMBOL_1;
|
|
49
|
-
PrivateDnsNamespace[_a] = { fqn: "@btc-embedded/cdk-extensions.PrivateDnsNamespace", version: "0.5.
|
|
49
|
+
PrivateDnsNamespace[_a] = { fqn: "@btc-embedded/cdk-extensions.PrivateDnsNamespace", version: "0.5.5" };
|
|
50
50
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpdmF0ZURuc05hbWVzcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbGF0Zm9ybS9Qcml2YXRlRG5zTmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsMkVBRzBDO0FBQzFDLDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFjMUMsTUFBYSxtQkFBb0IsU0FBUSxzQkFBUztJQUVoRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLDBDQUFtQixDQUFDLGlDQUFpQyxDQUNwRSxJQUFJLEVBQ0osWUFBWSxFQUNaO2dCQUNFLGFBQWEsRUFBRSxLQUFLLENBQUMsMEJBQTBCLENBQUMsU0FBUztnQkFDekQsV0FBVyxFQUFFLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxFQUFFO2dCQUNoRCxZQUFZLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixDQUFDLEdBQUc7YUFDbkQsQ0FDRixDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSwwQ0FBbUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7Z0JBQ3BFLElBQUksRUFBRSxLQUFLLENBQUMsYUFBYTtnQkFDekIsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO2dCQUNkLFdBQVcsRUFBRSxtQkFBbUI7YUFDakMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUNiLHVFQUF1RSxDQUN4RSxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLElBQUEsc0JBQWMsRUFBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFdEQsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLGVBQWU7WUFDckIsR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZO1NBQ25DLENBQUMsQ0FBQztRQUVILFdBQVcsQ0FBQztZQUNWLElBQUksRUFBRSxjQUFjO1lBQ3BCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVztTQUNsQyxDQUFDLENBQUM7UUFFSCxXQUFXLENBQUM7WUFDVixJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLEdBQUcsRUFBRSxNQUFNO1lBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYTtTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTdDSCxrREE4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVnBjIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7XG4gIFByaXZhdGVEbnNOYW1lc3BhY2UgYXMgQVdTUHJpdmF0ZU5hbWVzcGFjZSxcbiAgSVByaXZhdGVEbnNOYW1lc3BhY2UsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VydmljZWRpc2NvdmVyeVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGNyZWF0ZUV4cG9ydGVyIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGVmaW5lZFByaXZhdGVEbnNOYW1lc3BhY2VQcm9wcyB7XG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlRG5zTmFtZXNwYWNlUHJvcHMge1xuICByZWFkb25seSBkZWZpbmVkUHJpdmF0ZURuc05hbWVzcGFjZT86IFByZWRlZmluZWRQcml2YXRlRG5zTmFtZXNwYWNlUHJvcHM7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZwYzogSVZwYztcbn1cblxuZXhwb3J0IGNsYXNzIFByaXZhdGVEbnNOYW1lc3BhY2UgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlOiBJUHJpdmF0ZURuc05hbWVzcGFjZTtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByaXZhdGVEbnNOYW1lc3BhY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAocHJvcHMuZGVmaW5lZFByaXZhdGVEbnNOYW1lc3BhY2UpIHtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gQVdTUHJpdmF0ZU5hbWVzcGFjZS5mcm9tUHJpdmF0ZURuc05hbWVzcGFjZUF0dHJpYnV0ZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUHJpdmF0ZURuc1wiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZXNwYWNlTmFtZTogcHJvcHMuZGVmaW5lZFByaXZhdGVEbnNOYW1lc3BhY2UubmFtZXNwYWNlLFxuICAgICAgICAgIG5hbWVzcGFjZUlkOiBwcm9wcy5kZWZpbmVkUHJpdmF0ZURuc05hbWVzcGFjZS5pZCxcbiAgICAgICAgICBuYW1lc3BhY2VBcm46IHByb3BzLmRlZmluZWRQcml2YXRlRG5zTmFtZXNwYWNlLmFybixcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5uYW1lc3BhY2VOYW1lKSB7XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IG5ldyBBV1NQcml2YXRlTmFtZXNwYWNlKHRoaXMsIFwiUHJpdmF0ZURuc05hbWVzcGFjZVwiLCB7XG4gICAgICAgIG5hbWU6IHByb3BzLm5hbWVzcGFjZU5hbWUsXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJQcml2YXRlIE5hbWVzcGFjZVwiLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJFaXRoZXIgYSBkZWZpbmVkUHJpdmF0ZURuc05hbWVzcGFjZSBvciBhIG5hbWVzcGFjZU5hbWUgaGFzIHRvIGJlIHNldC5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGV4cG9ydFZhbHVlID0gY3JlYXRlRXhwb3J0ZXIodGhpcywgXCJuYW1lc3BhY2VcIik7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIk5hbWVzcGFjZSBBUk5cIixcbiAgICAgIGtleTogXCJhcm5cIixcbiAgICAgIHZhbHVlOiB0aGlzLm5hbWVzcGFjZS5uYW1lc3BhY2VBcm4sXG4gICAgfSk7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIk5hbWVzcGFjZSBJRFwiLFxuICAgICAga2V5OiBcImlkXCIsXG4gICAgICB2YWx1ZTogdGhpcy5uYW1lc3BhY2UubmFtZXNwYWNlSWQsXG4gICAgfSk7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIk5hbWVzcGFjZSBOYW1lXCIsXG4gICAgICBrZXk6IFwibmFtZVwiLFxuICAgICAgdmFsdWU6IHRoaXMubmFtZXNwYWNlLm5hbWVzcGFjZU5hbWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/platform/Vpc.js
CHANGED
|
@@ -67,5 +67,5 @@ class Vpc extends constructs_1.Construct {
|
|
|
67
67
|
}
|
|
68
68
|
exports.Vpc = Vpc;
|
|
69
69
|
_a = JSII_RTTI_SYMBOL_1;
|
|
70
|
-
Vpc[_a] = { fqn: "@btc-embedded/cdk-extensions.Vpc", version: "0.5.
|
|
70
|
+
Vpc[_a] = { fqn: "@btc-embedded/cdk-extensions.Vpc", version: "0.5.5" };
|
|
71
71
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsYXRmb3JtL1ZwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlEQUF3RTtBQUN4RSxpREFBNEQ7QUFDNUQsaURBQTBDO0FBQzFDLDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFTMUMsTUFBYSxHQUFJLFNBQVEsc0JBQVM7SUFJaEM7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWU7UUFDdkQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLGFBQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtnQkFDaEQsT0FBTyxFQUFFLEtBQUssQ0FBQyxjQUFjO2FBQzlCLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksYUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7Z0JBQ3pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7Z0JBQ3pCLFdBQVcsRUFBRSxLQUFLLENBQUMsT0FBTzthQUMzQixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxLQUFLLENBQUM7UUFDL0QsTUFBTSxZQUFZLEdBQWlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU1RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTFELE1BQU0sV0FBVyxHQUFHLElBQUEsc0JBQWMsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFcEQsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixHQUFHLEVBQUUsUUFBUTtZQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLGNBQWM7WUFDcEIsR0FBRyxFQUFFLE1BQU07WUFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxlQUF3QjtRQUNqRCxNQUFNLFNBQVMsR0FBRztZQUNoQixHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDdEIsQ0FBQztRQUVGLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGFBQUcsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ3ZELGlCQUFpQixFQUFFLElBQUk7YUFDeEIsQ0FBQyxDQUFDO1lBRUgsT0FBTztnQkFDTCxHQUFHLFNBQVM7Z0JBQ1osMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUU7YUFDMUQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOztBQWxFSCxrQkFtRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWcGMgYXMgQVdTVnBjLCBJSXBBZGRyZXNzZXMsIElWcGMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQ2x1c3RlciwgQ2x1c3RlclByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcbmltcG9ydCB7IEtleSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mta21zXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgY3JlYXRlRXhwb3J0ZXIgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBWcGNQcm9wcyB7XG4gIHJlYWRvbmx5IGRlZmluZWRWcGNOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSB2cGNDaWRyPzogSUlwQWRkcmVzc2VzO1xuICByZWFkb25seSBtYXhBenM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNyZWF0ZUttc0V4ZWNDb21tYW5kS2V5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFZwYyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyB2cGNJbnN0YW5jZTogSVZwYztcbiAgcHVibGljIGNsdXN0ZXI6IENsdXN0ZXI7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNvbnN0cnVjdCB0aGlzIGlzIHBhcnQgb2ZcbiAgICogQHBhcmFtIGlkIElkIG9mIHRoaXMgY29uc3RydWN0IGZvciBDbG91ZGZvcm1hdGlvblxuICAgKiBAcGFyYW0gcHJvcHMgUHJvcGVydGllcyBhbGxvd2luZyB0byBzZXQgYSBwcmVkZWZpbmVkIFZQQ05hbWUsIElQQWRyZXNzQmxvZyxcbiAgICogICAgICAgICAgICAgIG1heE51bWJlciBvZiBBWnMgYW5kIGRlY2lzaW9uIHdldGhlciB0byBjcmVhdGUgYSBLTVNLZXkgZm9yIHVzYWdlXG4gICAqICAgICAgICAgICAgICB3aXRoIHRoZSBFeGVjIGV4dGVuc2lvbi4gRGVmYXVsdHMgdG8gYW4gZW1wdHkgb2JqZWN0IGNyZWF0aW5nIGFcbiAgICogICAgICAgICAgICAgIGRlZGljYXRlZCBWUEMsIHdpdGggbWF4IDIgQVpTIGFuZCBOTyBLZXkgZm9yIEV4ZWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBWcGNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAocHJvcHMuZGVmaW5lZFZwY05hbWUpIHtcbiAgICAgIHRoaXMudnBjSW5zdGFuY2UgPSBBV1NWcGMuZnJvbUxvb2t1cCh0aGlzLCBcIlZwY1wiLCB7XG4gICAgICAgIHZwY05hbWU6IHByb3BzLmRlZmluZWRWcGNOYW1lLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy52cGNDaWRyKSB7XG4gICAgICB0aGlzLnZwY0luc3RhbmNlID0gbmV3IEFXU1ZwYyh0aGlzLCBcIlZwY1wiLCB7XG4gICAgICAgIG1heEF6czogcHJvcHMubWF4QXpzID8/IDIsXG4gICAgICAgIGlwQWRkcmVzc2VzOiBwcm9wcy52cGNDaWRyLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IEVycm9yKFwiRWl0aGVyIGRlZmluZWRWcGNOYW1lIG9yIHZwY0NpZHIgaGF2ZSB0byBiZSBzZXQuXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3VsZENyZWF0ZUtleSA9IHByb3BzLmNyZWF0ZUttc0V4ZWNDb21tYW5kS2V5ID8/IGZhbHNlO1xuICAgIGNvbnN0IGNsdXN0ZXJQcm9wczogQ2x1c3RlclByb3BzID0gdGhpcy5jcmVhdGVDbHVzdGVyUHJvcHMoc2hvdWxkQ3JlYXRlS2V5KTtcblxuICAgIHRoaXMuY2x1c3RlciA9IG5ldyBDbHVzdGVyKHRoaXMsIFwiQ2x1c3RlclwiLCBjbHVzdGVyUHJvcHMpO1xuXG4gICAgY29uc3QgZXhwb3J0VmFsdWUgPSBjcmVhdGVFeHBvcnRlcih0aGlzLCBcImNsdXN0ZXJcIik7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIkNsdXN0ZXIgVlBDIElEXCIsXG4gICAgICBrZXk6IFwidnBjLWlkXCIsXG4gICAgICB2YWx1ZTogdGhpcy52cGNJbnN0YW5jZS52cGNJZCxcbiAgICB9KTtcblxuICAgIGV4cG9ydFZhbHVlKHtcbiAgICAgIG5hbWU6IFwiQ2x1c3RlciBOYW1lXCIsXG4gICAgICBrZXk6IFwibmFtZVwiLFxuICAgICAgdmFsdWU6IHRoaXMuY2x1c3Rlci5jbHVzdGVyTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2x1c3RlclByb3BzKHNob3VsZENyZWF0ZUtleTogYm9vbGVhbik6IENsdXN0ZXJQcm9wcyB7XG4gICAgY29uc3QgYmFzZVByb3BzID0ge1xuICAgICAgdnBjOiB0aGlzLnZwY0luc3RhbmNlLFxuICAgIH07XG5cbiAgICBpZiAoc2hvdWxkQ3JlYXRlS2V5KSB7XG4gICAgICBjb25zdCBrbXNFbmNyeXB0aW9uS2V5ID0gbmV3IEtleSh0aGlzLCBcIkNsdXN0ZXJFeGVjS2V5XCIsIHtcbiAgICAgICAgZW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYmFzZVByb3BzLFxuICAgICAgICBleGVjdXRlQ29tbWFuZENvbmZpZ3VyYXRpb246IHsga21zS2V5OiBrbXNFbmNyeXB0aW9uS2V5IH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlUHJvcHM7XG4gIH1cbn1cbiJdfQ==
|