UNPKG

@cdklabs/cdk-amazonmq

Version:
78 lines 12.1 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.RabbitMqBrokerInstance = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); /* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 */ const aws_cdk_lib_1 = require("aws-cdk-lib"); const rabbitmq_broker_deployment_1 = require("./rabbitmq-broker-deployment"); const broker_deployment_mode_1 = require("../broker-deployment-mode"); /** * A representation of a single-instance broker comprised of one broker in one Availability Zone behind a Network Load Balancer (NLB) * * Additional optimizations: * - When subnet selection returns more then 1 subnets. A first one is picked. Warning is annotated */ class RabbitMqBrokerInstance extends rabbitmq_broker_deployment_1.RabbitMqBrokerDeploymentBase { /** * Reference an existing RabbitMQ Broker Instance, defined outside of the CDK code, by ARN. * * @param scope * @param logicalId the construct's logical ID * @param arn the ARN of the existing RabbitMQ Broker Instance that is imported * @param securityGroups (optional) pass security groups for working with network connections * @param urlSuffix (optional) pass urlSuffix for the broker endpoints * @returns a representation of the RabbitMQ Broker Instance */ static fromRabbitMqBrokerInstanceArn(scope, logicalId, arn, securityGroups, urlSuffix) { return RabbitMqBrokerInstance._fromRabbitMqBrokerDeploymentBase(scope, logicalId, arn, undefined, undefined, securityGroups, urlSuffix); } /** * Reference an existing RabbitMQ Broker Instance, defined outside of the CDK code, by its name and id. * * @param scope * @param logicalId * @param name the name of the existing RabbitMQ Broker Instance to be imported * @param id the ID of the existing RabbitMQ Broker Instance to be imported * @param securityGroups (optional) pass security groups for working with network connections * @param urlSuffix (optional) pass urlSuffix for the broker endpoints * @returns a representation of the RabbitMQ Broker Instance */ static fromRabbitMqBrokerInstanceNameAndId(scope, logicalId, name, id, securityGroups, urlSuffix) { return RabbitMqBrokerInstance._fromRabbitMqBrokerDeploymentBase(scope, logicalId, undefined, name, id, securityGroups, urlSuffix); } constructor(scope, id, props) { let subnetSelection = props.vpcSubnets; // This flag is used to determine if a annotation needs to be done const annotationWarnings = []; // check if subnet selection has been specified if (props.vpcSubnets && props.vpc) { const subnets = props.vpc?.selectSubnets(props.vpcSubnets); // if selection is valid for a vpc if (subnets) { // single instance allows only one subnet take the first one subnetSelection = { subnets: [subnets.subnets[0]] }; if (subnets.subnets.length > 1) { // Annotate the fact of taking first one when more then one were selected annotationWarnings.push(`Exactly 1 subnet in [SINGLE_INSTANCE] deployment mode is needed. vpcSubnets selection returned ${subnets.subnets.length}. Taking first one from the selection`); } } } super(scope, id, { ...props, vpcSubnets: subnetSelection, deploymentMode: broker_deployment_mode_1.BrokerDeploymentMode.SINGLE_INSTANCE, }); // Provide Annotation to the resource. if (annotationWarnings.length > 0) { annotationWarnings.forEach((msg) => aws_cdk_lib_1.Annotations.of(this).addWarning(msg)); } } } exports.RabbitMqBrokerInstance = RabbitMqBrokerInstance; _a = JSII_RTTI_SYMBOL_1; RabbitMqBrokerInstance[_a] = { fqn: "@cdklabs/cdk-amazonmq.RabbitMqBrokerInstance", version: "0.1.8" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFiYml0bXEtYnJva2VyLWluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JhYmJpdG1xL3JhYmJpdG1xLWJyb2tlci1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7RUFHRTtBQUNGLDZDQUEwQztBQUkxQyw2RUFJc0M7QUFDdEMsc0VBQWlFO0FBU2pFOzs7OztHQUtHO0FBQ0gsTUFBYSxzQkFDWCxTQUFRLHlEQUE0QjtJQUdwQzs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsNkJBQTZCLENBQ3pDLEtBQWdCLEVBQ2hCLFNBQWlCLEVBQ2pCLEdBQVcsRUFDWCxjQUFpQyxFQUNqQyxTQUFrQjtRQUVsQixPQUFPLHNCQUFzQixDQUFDLGlDQUFpQyxDQUM3RCxLQUFLLEVBQ0wsU0FBUyxFQUNULEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsRUFDZCxTQUFTLENBQ2lCLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsbUNBQW1DLENBQy9DLEtBQWdCLEVBQ2hCLFNBQWlCLEVBQ2pCLElBQVksRUFDWixFQUFVLEVBQ1YsY0FBaUMsRUFDakMsU0FBa0I7UUFFbEIsT0FBTyxzQkFBc0IsQ0FBQyxpQ0FBaUMsQ0FDN0QsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxFQUNKLEVBQUUsRUFDRixjQUFjLEVBQ2QsU0FBUyxDQUNpQixDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFrQztRQUVsQyxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBRXZDLGtFQUFrRTtRQUNsRSxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUU5QiwrQ0FBK0M7UUFDL0MsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFM0Qsa0NBQWtDO1lBQ2xDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osNERBQTREO2dCQUM1RCxlQUFlLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFFcEQsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDL0IseUVBQXlFO29CQUN6RSxrQkFBa0IsQ0FBQyxJQUFJLENBQ3JCLGtHQUFrRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sdUNBQXVDLENBQ2hLLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixVQUFVLEVBQUUsZUFBZTtZQUMzQixjQUFjLEVBQUUsNkNBQW9CLENBQUMsZUFBZTtTQUNyRCxDQUFDLENBQUM7UUFFSCxzQ0FBc0M7UUFDdEMsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyx5QkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDO0lBQ0gsQ0FBQzs7QUFwR0gsd0RBcUdDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG5pbXBvcnQgeyBBbm5vdGF0aW9ucyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSVNlY3VyaXR5R3JvdXAgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElSYWJiaXRNcUJyb2tlciB9IGZyb20gXCIuL3JhYmJpdG1xLWJyb2tlclwiO1xuaW1wb3J0IHtcbiAgSVJhYmJpdE1xQnJva2VyRGVwbG95bWVudCxcbiAgUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50QmFzZSxcbiAgUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50UHJvcHMsXG59IGZyb20gXCIuL3JhYmJpdG1xLWJyb2tlci1kZXBsb3ltZW50XCI7XG5pbXBvcnQgeyBCcm9rZXJEZXBsb3ltZW50TW9kZSB9IGZyb20gXCIuLi9icm9rZXItZGVwbG95bWVudC1tb2RlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJhYmJpdE1xQnJva2VySW5zdGFuY2VcbiAgZXh0ZW5kcyBJUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50LFxuICAgIElSYWJiaXRNcUJyb2tlciB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhYmJpdE1xQnJva2VySW5zdGFuY2VQcm9wc1xuICBleHRlbmRzIFJhYmJpdE1xQnJva2VyRGVwbG95bWVudFByb3BzIHt9XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIHNpbmdsZS1pbnN0YW5jZSBicm9rZXIgY29tcHJpc2VkIG9mIG9uZSBicm9rZXIgaW4gb25lIEF2YWlsYWJpbGl0eSBab25lIGJlaGluZCBhIE5ldHdvcmsgTG9hZCBCYWxhbmNlciAoTkxCKVxuICpcbiAqIEFkZGl0aW9uYWwgb3B0aW1pemF0aW9uczpcbiAqIC0gV2hlbiBzdWJuZXQgc2VsZWN0aW9uIHJldHVybnMgbW9yZSB0aGVuIDEgc3VibmV0cy4gQSBmaXJzdCBvbmUgaXMgcGlja2VkLiBXYXJuaW5nIGlzIGFubm90YXRlZFxuICovXG5leHBvcnQgY2xhc3MgUmFiYml0TXFCcm9rZXJJbnN0YW5jZVxuICBleHRlbmRzIFJhYmJpdE1xQnJva2VyRGVwbG95bWVudEJhc2VcbiAgaW1wbGVtZW50cyBJUmFiYml0TXFCcm9rZXJJbnN0YW5jZVxue1xuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGV4aXN0aW5nIFJhYmJpdE1RIEJyb2tlciBJbnN0YW5jZSwgZGVmaW5lZCBvdXRzaWRlIG9mIHRoZSBDREsgY29kZSwgYnkgQVJOLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGVcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCB0aGUgY29uc3RydWN0J3MgbG9naWNhbCBJRFxuICAgKiBAcGFyYW0gYXJuIHRoZSBBUk4gb2YgdGhlIGV4aXN0aW5nIFJhYmJpdE1RIEJyb2tlciBJbnN0YW5jZSB0aGF0IGlzIGltcG9ydGVkXG4gICAqIEBwYXJhbSBzZWN1cml0eUdyb3VwcyAob3B0aW9uYWwpIHBhc3Mgc2VjdXJpdHkgZ3JvdXBzIGZvciB3b3JraW5nIHdpdGggbmV0d29yayBjb25uZWN0aW9uc1xuICAgKiBAcGFyYW0gdXJsU3VmZml4IChvcHRpb25hbCkgcGFzcyB1cmxTdWZmaXggZm9yIHRoZSBicm9rZXIgZW5kcG9pbnRzXG4gICAqIEByZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIFJhYmJpdE1RIEJyb2tlciBJbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUmFiYml0TXFCcm9rZXJJbnN0YW5jZUFybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGxvZ2ljYWxJZDogc3RyaW5nLFxuICAgIGFybjogc3RyaW5nLFxuICAgIHNlY3VyaXR5R3JvdXBzPzogSVNlY3VyaXR5R3JvdXBbXSxcbiAgICB1cmxTdWZmaXg/OiBzdHJpbmcsXG4gICkge1xuICAgIHJldHVybiBSYWJiaXRNcUJyb2tlckluc3RhbmNlLl9mcm9tUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50QmFzZShcbiAgICAgIHNjb3BlLFxuICAgICAgbG9naWNhbElkLFxuICAgICAgYXJuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgc2VjdXJpdHlHcm91cHMsXG4gICAgICB1cmxTdWZmaXgsXG4gICAgKSBhcyBJUmFiYml0TXFCcm9rZXJJbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgYW4gZXhpc3RpbmcgUmFiYml0TVEgQnJva2VyIEluc3RhbmNlLCBkZWZpbmVkIG91dHNpZGUgb2YgdGhlIENESyBjb2RlLCBieSBpdHMgbmFtZSBhbmQgaWQuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZVxuICAgKiBAcGFyYW0gbG9naWNhbElkXG4gICAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIG9mIHRoZSBleGlzdGluZyBSYWJiaXRNUSBCcm9rZXIgSW5zdGFuY2UgdG8gYmUgaW1wb3J0ZWRcbiAgICogQHBhcmFtIGlkIHRoZSBJRCBvZiB0aGUgZXhpc3RpbmcgUmFiYml0TVEgQnJva2VyIEluc3RhbmNlIHRvIGJlIGltcG9ydGVkXG4gICAqIEBwYXJhbSBzZWN1cml0eUdyb3VwcyAob3B0aW9uYWwpIHBhc3Mgc2VjdXJpdHkgZ3JvdXBzIGZvciB3b3JraW5nIHdpdGggbmV0d29yayBjb25uZWN0aW9uc1xuICAgKiBAcGFyYW0gdXJsU3VmZml4IChvcHRpb25hbCkgcGFzcyB1cmxTdWZmaXggZm9yIHRoZSBicm9rZXIgZW5kcG9pbnRzXG4gICAqIEByZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIFJhYmJpdE1RIEJyb2tlciBJbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUmFiYml0TXFCcm9rZXJJbnN0YW5jZU5hbWVBbmRJZChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGxvZ2ljYWxJZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nLFxuICAgIHNlY3VyaXR5R3JvdXBzPzogSVNlY3VyaXR5R3JvdXBbXSxcbiAgICB1cmxTdWZmaXg/OiBzdHJpbmcsXG4gICkge1xuICAgIHJldHVybiBSYWJiaXRNcUJyb2tlckluc3RhbmNlLl9mcm9tUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50QmFzZShcbiAgICAgIHNjb3BlLFxuICAgICAgbG9naWNhbElkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgbmFtZSxcbiAgICAgIGlkLFxuICAgICAgc2VjdXJpdHlHcm91cHMsXG4gICAgICB1cmxTdWZmaXgsXG4gICAgKSBhcyBJUmFiYml0TXFCcm9rZXJJbnN0YW5jZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogUmFiYml0TXFCcm9rZXJJbnN0YW5jZVByb3BzLFxuICApIHtcbiAgICBsZXQgc3VibmV0U2VsZWN0aW9uID0gcHJvcHMudnBjU3VibmV0cztcblxuICAgIC8vIFRoaXMgZmxhZyBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhIGFubm90YXRpb24gbmVlZHMgdG8gYmUgZG9uZVxuICAgIGNvbnN0IGFubm90YXRpb25XYXJuaW5ncyA9IFtdO1xuXG4gICAgLy8gY2hlY2sgaWYgc3VibmV0IHNlbGVjdGlvbiBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICBpZiAocHJvcHMudnBjU3VibmV0cyAmJiBwcm9wcy52cGMpIHtcbiAgICAgIGNvbnN0IHN1Ym5ldHMgPSBwcm9wcy52cGM/LnNlbGVjdFN1Ym5ldHMocHJvcHMudnBjU3VibmV0cyk7XG5cbiAgICAgIC8vIGlmIHNlbGVjdGlvbiBpcyB2YWxpZCBmb3IgYSB2cGNcbiAgICAgIGlmIChzdWJuZXRzKSB7XG4gICAgICAgIC8vIHNpbmdsZSBpbnN0YW5jZSBhbGxvd3Mgb25seSBvbmUgc3VibmV0IHRha2UgdGhlIGZpcnN0IG9uZVxuICAgICAgICBzdWJuZXRTZWxlY3Rpb24gPSB7IHN1Ym5ldHM6IFtzdWJuZXRzLnN1Ym5ldHNbMF1dIH07XG5cbiAgICAgICAgaWYgKHN1Ym5ldHMuc3VibmV0cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgLy8gQW5ub3RhdGUgdGhlIGZhY3Qgb2YgdGFraW5nIGZpcnN0IG9uZSB3aGVuIG1vcmUgdGhlbiBvbmUgd2VyZSBzZWxlY3RlZFxuICAgICAgICAgIGFubm90YXRpb25XYXJuaW5ncy5wdXNoKFxuICAgICAgICAgICAgYEV4YWN0bHkgMSBzdWJuZXQgaW4gW1NJTkdMRV9JTlNUQU5DRV0gZGVwbG95bWVudCBtb2RlIGlzIG5lZWRlZC4gdnBjU3VibmV0cyBzZWxlY3Rpb24gcmV0dXJuZWQgJHtzdWJuZXRzLnN1Ym5ldHMubGVuZ3RofS4gVGFraW5nIGZpcnN0IG9uZSBmcm9tIHRoZSBzZWxlY3Rpb25gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgdnBjU3VibmV0czogc3VibmV0U2VsZWN0aW9uLFxuICAgICAgZGVwbG95bWVudE1vZGU6IEJyb2tlckRlcGxveW1lbnRNb2RlLlNJTkdMRV9JTlNUQU5DRSxcbiAgICB9KTtcblxuICAgIC8vIFByb3ZpZGUgQW5ub3RhdGlvbiB0byB0aGUgcmVzb3VyY2UuXG4gICAgaWYgKGFubm90YXRpb25XYXJuaW5ncy5sZW5ndGggPiAwKSB7XG4gICAgICBhbm5vdGF0aW9uV2FybmluZ3MuZm9yRWFjaCgobXNnKSA9PiBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKG1zZykpO1xuICAgIH1cbiAgfVxufVxuIl19