UNPKG

@cdklabs/cdk-amazonmq

Version:
81 lines 13 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.RabbitMqBrokerCluster = 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 RabbitMQ cluster deployment is a logical grouping of three RabbitMQ broker nodes behind a Network Load Balancer, each sharing users, queues, and a distributed state across multiple Availability Zones (AZ). */ class RabbitMqBrokerCluster extends rabbitmq_broker_deployment_1.RabbitMqBrokerDeploymentBase { /** * Reference an existing RabbitMQ Broker Cluster, 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 Cluster 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 Cluster */ static fromRabbitMqBrokerClusterArn(scope, logicalId, arn, securityGroups, urlSuffix) { return RabbitMqBrokerCluster._fromRabbitMqBrokerDeploymentBase(scope, logicalId, arn, undefined, undefined, securityGroups, urlSuffix); } /** * Reference an existing RabbitMQ Broker Cluster, defined outside of the CDK code, by name and id. * * @param scope * @param logicalId the construct's logical ID * @param name the name of the existing RabbitMQ Broker Cluster to be imported * @param id the ID of the existing RabbitMQ Broker Cluster to be imported * @param securityGroups optionally pass security groups for working with network connections * @param urlSuffix (optional) pass urlSuffix for the broker endpoints * @returns a representation of the RabbitMQ Broker Cluster */ static fromRabbitMqBrokerClusterNameAndId(scope, logicalId, name, id, securityGroups, urlSuffix) { return RabbitMqBrokerCluster._fromRabbitMqBrokerDeploymentBase(scope, logicalId, undefined, name, id, securityGroups, urlSuffix); } constructor(scope, id, props) { let subnetSelection = props.vpcSubnets; // This place holder for annotation errors const annotationErrors = []; /* START - Validate subnets and select two with different AZ if more then 2 where found */ // check if subnet selection has been specified if (props.vpcSubnets && props.vpc) { let subnets = props.vpc?.selectSubnets(props.vpcSubnets); if (subnets) { // Get subnets from different AZ. CFN does not have requirement for the number but they need to be in different AZ const selected = subnets?.subnets.reduce((acc, curr) => { if (!acc.find((a) => a.availabilityZone === curr.availabilityZone)) { acc.push(curr); } return acc; }, []); if (selected.length < 1) { annotationErrors.push(`Need at leasts 1 subnet. '${JSON.stringify(props.vpcSubnets)}', please use a different selection.`); } subnetSelection = { subnets: selected }; } } /* END - Validate subnets and select two with different AZ if more then 2 where found */ super(scope, id, { ...props, vpcSubnets: subnetSelection, deploymentMode: broker_deployment_mode_1.BrokerDeploymentMode.CLUSTER_MULTI_AZ, }); // Provide Annotation to the resource. if (annotationErrors.length > 0) { annotationErrors.forEach((msg) => aws_cdk_lib_1.Annotations.of(this).addError(msg)); } } } exports.RabbitMqBrokerCluster = RabbitMqBrokerCluster; _a = JSII_RTTI_SYMBOL_1; RabbitMqBrokerCluster[_a] = { fqn: "@cdklabs/cdk-amazonmq.RabbitMqBrokerCluster", version: "0.1.8" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFiYml0bXEtYnJva2VyLWNsdXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmFiYml0bXEvcmFiYml0bXEtYnJva2VyLWNsdXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7O0VBR0U7QUFDRiw2Q0FBMEM7QUFJMUMsNkVBSXNDO0FBQ3RDLHNFQUFpRTtBQVNqRTs7R0FFRztBQUNILE1BQWEscUJBQ1gsU0FBUSx5REFBNEI7SUFHcEM7Ozs7Ozs7OztPQVNHO0lBQ0ksTUFBTSxDQUFDLDRCQUE0QixDQUN4QyxLQUFnQixFQUNoQixTQUFpQixFQUNqQixHQUFXLEVBQ1gsY0FBaUMsRUFDakMsU0FBa0I7UUFFbEIsT0FBTyxxQkFBcUIsQ0FBQyxpQ0FBaUMsQ0FDNUQsS0FBSyxFQUNMLFNBQVMsRUFDVCxHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxjQUFjLEVBQ2QsU0FBUyxDQUNnQixDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0ksTUFBTSxDQUFDLGtDQUFrQyxDQUM5QyxLQUFnQixFQUNoQixTQUFpQixFQUNqQixJQUFZLEVBQ1osRUFBVSxFQUNWLGNBQWlDLEVBQ2pDLFNBQWtCO1FBRWxCLE9BQU8scUJBQXFCLENBQUMsaUNBQWlDLENBQzVELEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULElBQUksRUFDSixFQUFFLEVBQ0YsY0FBYyxFQUNkLFNBQVMsQ0FDZ0IsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBRXZDLDBDQUEwQztRQUMxQyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUU1QiwwRkFBMEY7UUFFMUYsK0NBQStDO1FBQy9DLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDbEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXpELElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osa0hBQWtIO2dCQUNsSCxNQUFNLFFBQVEsR0FBRyxPQUFPLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBWSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtvQkFDaEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO3dCQUNuRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNqQixDQUFDO29CQUNELE9BQU8sR0FBRyxDQUFDO2dCQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFFUCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3hCLGdCQUFnQixDQUFDLElBQUksQ0FDbkIsNkJBQTZCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxzQ0FBc0MsQ0FDcEcsQ0FBQztnQkFDSixDQUFDO2dCQUVELGVBQWUsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUVELHdGQUF3RjtRQUV4RixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsS0FBSztZQUNSLFVBQVUsRUFBRSxlQUFlO1lBQzNCLGNBQWMsRUFBRSw2Q0FBb0IsQ0FBQyxnQkFBZ0I7U0FDdEQsQ0FBQyxDQUFDO1FBRUgsc0NBQXNDO1FBQ3RDLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMseUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUM7O0FBekdILHNEQTBHQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4qL1xuaW1wb3J0IHsgQW5ub3RhdGlvbnMgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElTdWJuZXQsIElTZWN1cml0eUdyb3VwIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJUmFiYml0TXFCcm9rZXIgfSBmcm9tIFwiLi9yYWJiaXRtcS1icm9rZXJcIjtcbmltcG9ydCB7XG4gIElSYWJiaXRNcUJyb2tlckRlcGxveW1lbnQsXG4gIFJhYmJpdE1xQnJva2VyRGVwbG95bWVudEJhc2UsXG4gIFJhYmJpdE1xQnJva2VyRGVwbG95bWVudFByb3BzLFxufSBmcm9tIFwiLi9yYWJiaXRtcS1icm9rZXItZGVwbG95bWVudFwiO1xuaW1wb3J0IHsgQnJva2VyRGVwbG95bWVudE1vZGUgfSBmcm9tIFwiLi4vYnJva2VyLWRlcGxveW1lbnQtbW9kZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElSYWJiaXRNcUJyb2tlckNsdXN0ZXJcbiAgZXh0ZW5kcyBJUmFiYml0TXFCcm9rZXIsXG4gICAgSVJhYmJpdE1xQnJva2VyRGVwbG95bWVudCB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhYmJpdE1xQnJva2VyQ2x1c3RlclByb3BzXG4gIGV4dGVuZHMgUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50UHJvcHMge31cblxuLyoqXG4gKiBBIHJlcHJlc2VudGF0aW9uIG9mIGEgUmFiYml0TVEgY2x1c3RlciBkZXBsb3ltZW50IGlzIGEgbG9naWNhbCBncm91cGluZyBvZiB0aHJlZSBSYWJiaXRNUSBicm9rZXIgbm9kZXMgYmVoaW5kIGEgTmV0d29yayBMb2FkIEJhbGFuY2VyLCBlYWNoIHNoYXJpbmcgdXNlcnMsIHF1ZXVlcywgYW5kIGEgZGlzdHJpYnV0ZWQgc3RhdGUgYWNyb3NzIG11bHRpcGxlIEF2YWlsYWJpbGl0eSBab25lcyAoQVopLlxuICovXG5leHBvcnQgY2xhc3MgUmFiYml0TXFCcm9rZXJDbHVzdGVyXG4gIGV4dGVuZHMgUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50QmFzZVxuICBpbXBsZW1lbnRzIElSYWJiaXRNcUJyb2tlckNsdXN0ZXJcbntcbiAgLyoqXG4gICAqIFJlZmVyZW5jZSBhbiBleGlzdGluZyBSYWJiaXRNUSBCcm9rZXIgQ2x1c3RlciwgZGVmaW5lZCBvdXRzaWRlIG9mIHRoZSBDREsgY29kZSwgYnkgQVJOLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGVcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCB0aGUgY29uc3RydWN0J3MgbG9naWNhbCBJRFxuICAgKiBAcGFyYW0gYXJuIHRoZSBBUk4gb2YgdGhlIGV4aXN0aW5nIFJhYmJpdE1RIEJyb2tlciBDbHVzdGVyIHRoYXQgaXMgaW1wb3J0ZWRcbiAgICogQHBhcmFtIHNlY3VyaXR5R3JvdXBzIChvcHRpb25hbCkgcGFzcyBzZWN1cml0eSBncm91cHMgZm9yIHdvcmtpbmcgd2l0aCBuZXR3b3JrIGNvbm5lY3Rpb25zXG4gICAqIEBwYXJhbSB1cmxTdWZmaXggKG9wdGlvbmFsKSBwYXNzIHVybFN1ZmZpeCBmb3IgdGhlIGJyb2tlciBlbmRwb2ludHNcbiAgICogQHJldHVybnMgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgUmFiYml0TVEgQnJva2VyIENsdXN0ZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVJhYmJpdE1xQnJva2VyQ2x1c3RlckFybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGxvZ2ljYWxJZDogc3RyaW5nLFxuICAgIGFybjogc3RyaW5nLFxuICAgIHNlY3VyaXR5R3JvdXBzPzogSVNlY3VyaXR5R3JvdXBbXSxcbiAgICB1cmxTdWZmaXg/OiBzdHJpbmcsXG4gICkge1xuICAgIHJldHVybiBSYWJiaXRNcUJyb2tlckNsdXN0ZXIuX2Zyb21SYWJiaXRNcUJyb2tlckRlcGxveW1lbnRCYXNlKFxuICAgICAgc2NvcGUsXG4gICAgICBsb2dpY2FsSWQsXG4gICAgICBhcm4sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBzZWN1cml0eUdyb3VwcyxcbiAgICAgIHVybFN1ZmZpeCxcbiAgICApIGFzIElSYWJiaXRNcUJyb2tlckNsdXN0ZXI7XG4gIH1cblxuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGV4aXN0aW5nIFJhYmJpdE1RIEJyb2tlciBDbHVzdGVyLCBkZWZpbmVkIG91dHNpZGUgb2YgdGhlIENESyBjb2RlLCBieSBuYW1lIGFuZCBpZC5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlXG4gICAqIEBwYXJhbSBsb2dpY2FsSWQgdGhlIGNvbnN0cnVjdCdzIGxvZ2ljYWwgSURcbiAgICogQHBhcmFtIG5hbWUgdGhlIG5hbWUgb2YgdGhlIGV4aXN0aW5nIFJhYmJpdE1RIEJyb2tlciBDbHVzdGVyIHRvIGJlIGltcG9ydGVkXG4gICAqIEBwYXJhbSBpZCB0aGUgSUQgb2YgdGhlIGV4aXN0aW5nIFJhYmJpdE1RIEJyb2tlciBDbHVzdGVyIHRvIGJlIGltcG9ydGVkXG4gICAqIEBwYXJhbSBzZWN1cml0eUdyb3VwcyBvcHRpb25hbGx5IHBhc3Mgc2VjdXJpdHkgZ3JvdXBzIGZvciB3b3JraW5nIHdpdGggbmV0d29yayBjb25uZWN0aW9uc1xuICAgKiBAcGFyYW0gdXJsU3VmZml4IChvcHRpb25hbCkgcGFzcyB1cmxTdWZmaXggZm9yIHRoZSBicm9rZXIgZW5kcG9pbnRzXG4gICAqIEByZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIFJhYmJpdE1RIEJyb2tlciBDbHVzdGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21SYWJiaXRNcUJyb2tlckNsdXN0ZXJOYW1lQW5kSWQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBzZWN1cml0eUdyb3Vwcz86IElTZWN1cml0eUdyb3VwW10sXG4gICAgdXJsU3VmZml4Pzogc3RyaW5nLFxuICApIHtcbiAgICByZXR1cm4gUmFiYml0TXFCcm9rZXJDbHVzdGVyLl9mcm9tUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50QmFzZShcbiAgICAgIHNjb3BlLFxuICAgICAgbG9naWNhbElkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgbmFtZSxcbiAgICAgIGlkLFxuICAgICAgc2VjdXJpdHlHcm91cHMsXG4gICAgICB1cmxTdWZmaXgsXG4gICAgKSBhcyBJUmFiYml0TXFCcm9rZXJDbHVzdGVyO1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFJhYmJpdE1xQnJva2VyQ2x1c3RlclByb3BzKSB7XG4gICAgbGV0IHN1Ym5ldFNlbGVjdGlvbiA9IHByb3BzLnZwY1N1Ym5ldHM7XG5cbiAgICAvLyBUaGlzIHBsYWNlIGhvbGRlciBmb3IgYW5ub3RhdGlvbiBlcnJvcnNcbiAgICBjb25zdCBhbm5vdGF0aW9uRXJyb3JzID0gW107XG5cbiAgICAvKiBTVEFSVCAtIFZhbGlkYXRlIHN1Ym5ldHMgYW5kIHNlbGVjdCB0d28gd2l0aCBkaWZmZXJlbnQgQVogaWYgbW9yZSB0aGVuIDIgd2hlcmUgZm91bmQgKi9cblxuICAgIC8vIGNoZWNrIGlmIHN1Ym5ldCBzZWxlY3Rpb24gaGFzIGJlZW4gc3BlY2lmaWVkXG4gICAgaWYgKHByb3BzLnZwY1N1Ym5ldHMgJiYgcHJvcHMudnBjKSB7XG4gICAgICBsZXQgc3VibmV0cyA9IHByb3BzLnZwYz8uc2VsZWN0U3VibmV0cyhwcm9wcy52cGNTdWJuZXRzKTtcblxuICAgICAgaWYgKHN1Ym5ldHMpIHtcbiAgICAgICAgLy8gR2V0IHN1Ym5ldHMgZnJvbSBkaWZmZXJlbnQgQVouIENGTiBkb2VzIG5vdCBoYXZlIHJlcXVpcmVtZW50IGZvciB0aGUgbnVtYmVyIGJ1dCB0aGV5IG5lZWQgdG8gYmUgaW4gZGlmZmVyZW50IEFaXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gc3VibmV0cz8uc3VibmV0cy5yZWR1Y2U8SVN1Ym5ldFtdPigoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgICAgaWYgKCFhY2MuZmluZCgoYSkgPT4gYS5hdmFpbGFiaWxpdHlab25lID09PSBjdXJyLmF2YWlsYWJpbGl0eVpvbmUpKSB7XG4gICAgICAgICAgICBhY2MucHVzaChjdXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwgW10pO1xuXG4gICAgICAgIGlmIChzZWxlY3RlZC5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgYW5ub3RhdGlvbkVycm9ycy5wdXNoKFxuICAgICAgICAgICAgYE5lZWQgYXQgbGVhc3RzIDEgc3VibmV0LiAnJHtKU09OLnN0cmluZ2lmeShwcm9wcy52cGNTdWJuZXRzKX0nLCBwbGVhc2UgdXNlIGEgZGlmZmVyZW50IHNlbGVjdGlvbi5gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBzdWJuZXRTZWxlY3Rpb24gPSB7IHN1Ym5ldHM6IHNlbGVjdGVkIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyogRU5EIC0gVmFsaWRhdGUgc3VibmV0cyBhbmQgc2VsZWN0IHR3byB3aXRoIGRpZmZlcmVudCBBWiBpZiBtb3JlIHRoZW4gMiB3aGVyZSBmb3VuZCAqL1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIHZwY1N1Ym5ldHM6IHN1Ym5ldFNlbGVjdGlvbixcbiAgICAgIGRlcGxveW1lbnRNb2RlOiBCcm9rZXJEZXBsb3ltZW50TW9kZS5DTFVTVEVSX01VTFRJX0FaLFxuICAgIH0pO1xuXG4gICAgLy8gUHJvdmlkZSBBbm5vdGF0aW9uIHRvIHRoZSByZXNvdXJjZS5cbiAgICBpZiAoYW5ub3RhdGlvbkVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICBhbm5vdGF0aW9uRXJyb3JzLmZvckVhY2goKG1zZykgPT4gQW5ub3RhdGlvbnMub2YodGhpcykuYWRkRXJyb3IobXNnKSk7XG4gICAgfVxuICB9XG59XG4iXX0=