@cdklabs/cdk-amazonmq
Version:
<!--BEGIN STABILITY BANNER-->
77 lines • 12 kB
JavaScript
;
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.6" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFiYml0bXEtYnJva2VyLWluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JhYmJpdG1xL3JhYmJpdG1xLWJyb2tlci1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7RUFHRTtBQUNGLDZDQUEwQztBQUkxQyw2RUFJc0M7QUFDdEMsc0VBQWlFO0FBU2pFOzs7OztHQUtHO0FBQ0gsTUFBYSxzQkFDWCxTQUFRLHlEQUE0QjtJQUdwQzs7Ozs7Ozs7O09BU0c7SUFDSSxNQUFNLENBQUMsNkJBQTZCLENBQ3pDLEtBQWdCLEVBQ2hCLFNBQWlCLEVBQ2pCLEdBQVcsRUFDWCxjQUFpQyxFQUNqQyxTQUFrQjtRQUVsQixPQUFPLHNCQUFzQixDQUFDLGlDQUFpQyxDQUM3RCxLQUFLLEVBQ0wsU0FBUyxFQUNULEdBQUcsRUFDSCxTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsRUFDZCxTQUFTLENBQ2lCLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsbUNBQW1DLENBQy9DLEtBQWdCLEVBQ2hCLFNBQWlCLEVBQ2pCLElBQVksRUFDWixFQUFVLEVBQ1YsY0FBaUMsRUFDakMsU0FBa0I7UUFFbEIsT0FBTyxzQkFBc0IsQ0FBQyxpQ0FBaUMsQ0FDN0QsS0FBSyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxFQUNKLEVBQUUsRUFDRixjQUFjLEVBQ2QsU0FBUyxDQUNpQixDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFrQztRQUVsQyxJQUFJLGVBQWUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBRXZDLGtFQUFrRTtRQUNsRSxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUU5QiwrQ0FBK0M7UUFDL0MsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFM0Qsa0NBQWtDO1lBQ2xDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osNERBQTREO2dCQUM1RCxlQUFlLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFFcEQsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO29CQUM1Qix5RUFBeUU7b0JBQ3pFLGtCQUFrQixDQUFDLElBQUksQ0FDckIsa0dBQWtHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSx1Q0FBdUMsQ0FDaEssQ0FBQztZQUNOLENBQUM7UUFDSCxDQUFDO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixVQUFVLEVBQUUsZUFBZTtZQUMzQixjQUFjLEVBQUUsNkNBQW9CLENBQUMsZUFBZTtTQUNyRCxDQUFDLENBQUM7UUFFSCxzQ0FBc0M7UUFDdEMsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyx5QkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RSxDQUFDO0lBQ0gsQ0FBQzs7QUFuR0gsd0RBb0dDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiovXG5pbXBvcnQgeyBBbm5vdGF0aW9ucyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgSVNlY3VyaXR5R3JvdXAgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IElSYWJiaXRNcUJyb2tlciB9IGZyb20gXCIuL3JhYmJpdG1xLWJyb2tlclwiO1xuaW1wb3J0IHtcbiAgSVJhYmJpdE1xQnJva2VyRGVwbG95bWVudCxcbiAgUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50QmFzZSxcbiAgUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50UHJvcHMsXG59IGZyb20gXCIuL3JhYmJpdG1xLWJyb2tlci1kZXBsb3ltZW50XCI7XG5pbXBvcnQgeyBCcm9rZXJEZXBsb3ltZW50TW9kZSB9IGZyb20gXCIuLi9icm9rZXItZGVwbG95bWVudC1tb2RlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJhYmJpdE1xQnJva2VySW5zdGFuY2VcbiAgZXh0ZW5kcyBJUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50LFxuICAgIElSYWJiaXRNcUJyb2tlciB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFJhYmJpdE1xQnJva2VySW5zdGFuY2VQcm9wc1xuICBleHRlbmRzIFJhYmJpdE1xQnJva2VyRGVwbG95bWVudFByb3BzIHt9XG5cbi8qKlxuICogQSByZXByZXNlbnRhdGlvbiBvZiBhIHNpbmdsZS1pbnN0YW5jZSBicm9rZXIgY29tcHJpc2VkIG9mIG9uZSBicm9rZXIgaW4gb25lIEF2YWlsYWJpbGl0eSBab25lIGJlaGluZCBhIE5ldHdvcmsgTG9hZCBCYWxhbmNlciAoTkxCKVxuICpcbiAqIEFkZGl0aW9uYWwgb3B0aW1pemF0aW9uczpcbiAqIC0gV2hlbiBzdWJuZXQgc2VsZWN0aW9uIHJldHVybnMgbW9yZSB0aGVuIDEgc3VibmV0cy4gQSBmaXJzdCBvbmUgaXMgcGlja2VkLiBXYXJuaW5nIGlzIGFubm90YXRlZFxuICovXG5leHBvcnQgY2xhc3MgUmFiYml0TXFCcm9rZXJJbnN0YW5jZVxuICBleHRlbmRzIFJhYmJpdE1xQnJva2VyRGVwbG95bWVudEJhc2VcbiAgaW1wbGVtZW50cyBJUmFiYml0TXFCcm9rZXJJbnN0YW5jZVxue1xuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGV4aXN0aW5nIFJhYmJpdE1RIEJyb2tlciBJbnN0YW5jZSwgZGVmaW5lZCBvdXRzaWRlIG9mIHRoZSBDREsgY29kZSwgYnkgQVJOLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGVcbiAgICogQHBhcmFtIGxvZ2ljYWxJZCB0aGUgY29uc3RydWN0J3MgbG9naWNhbCBJRFxuICAgKiBAcGFyYW0gYXJuIHRoZSBBUk4gb2YgdGhlIGV4aXN0aW5nIFJhYmJpdE1RIEJyb2tlciBJbnN0YW5jZSB0aGF0IGlzIGltcG9ydGVkXG4gICAqIEBwYXJhbSBzZWN1cml0eUdyb3VwcyAob3B0aW9uYWwpIHBhc3Mgc2VjdXJpdHkgZ3JvdXBzIGZvciB3b3JraW5nIHdpdGggbmV0d29yayBjb25uZWN0aW9uc1xuICAgKiBAcGFyYW0gdXJsU3VmZml4IChvcHRpb25hbCkgcGFzcyB1cmxTdWZmaXggZm9yIHRoZSBicm9rZXIgZW5kcG9pbnRzXG4gICAqIEByZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIFJhYmJpdE1RIEJyb2tlciBJbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUmFiYml0TXFCcm9rZXJJbnN0YW5jZUFybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGxvZ2ljYWxJZDogc3RyaW5nLFxuICAgIGFybjogc3RyaW5nLFxuICAgIHNlY3VyaXR5R3JvdXBzPzogSVNlY3VyaXR5R3JvdXBbXSxcbiAgICB1cmxTdWZmaXg/OiBzdHJpbmcsXG4gICkge1xuICAgIHJldHVybiBSYWJiaXRNcUJyb2tlckluc3RhbmNlLl9mcm9tUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50QmFzZShcbiAgICAgIHNjb3BlLFxuICAgICAgbG9naWNhbElkLFxuICAgICAgYXJuLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgc2VjdXJpdHlHcm91cHMsXG4gICAgICB1cmxTdWZmaXgsXG4gICAgKSBhcyBJUmFiYml0TXFCcm9rZXJJbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZlcmVuY2UgYW4gZXhpc3RpbmcgUmFiYml0TVEgQnJva2VyIEluc3RhbmNlLCBkZWZpbmVkIG91dHNpZGUgb2YgdGhlIENESyBjb2RlLCBieSBpdHMgbmFtZSBhbmQgaWQuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZVxuICAgKiBAcGFyYW0gbG9naWNhbElkXG4gICAqIEBwYXJhbSBuYW1lIHRoZSBuYW1lIG9mIHRoZSBleGlzdGluZyBSYWJiaXRNUSBCcm9rZXIgSW5zdGFuY2UgdG8gYmUgaW1wb3J0ZWRcbiAgICogQHBhcmFtIGlkIHRoZSBJRCBvZiB0aGUgZXhpc3RpbmcgUmFiYml0TVEgQnJva2VyIEluc3RhbmNlIHRvIGJlIGltcG9ydGVkXG4gICAqIEBwYXJhbSBzZWN1cml0eUdyb3VwcyAob3B0aW9uYWwpIHBhc3Mgc2VjdXJpdHkgZ3JvdXBzIGZvciB3b3JraW5nIHdpdGggbmV0d29yayBjb25uZWN0aW9uc1xuICAgKiBAcGFyYW0gdXJsU3VmZml4IChvcHRpb25hbCkgcGFzcyB1cmxTdWZmaXggZm9yIHRoZSBicm9rZXIgZW5kcG9pbnRzXG4gICAqIEByZXR1cm5zIGEgcmVwcmVzZW50YXRpb24gb2YgdGhlIFJhYmJpdE1RIEJyb2tlciBJbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tUmFiYml0TXFCcm9rZXJJbnN0YW5jZU5hbWVBbmRJZChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGxvZ2ljYWxJZDogc3RyaW5nLFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBpZDogc3RyaW5nLFxuICAgIHNlY3VyaXR5R3JvdXBzPzogSVNlY3VyaXR5R3JvdXBbXSxcbiAgICB1cmxTdWZmaXg/OiBzdHJpbmcsXG4gICkge1xuICAgIHJldHVybiBSYWJiaXRNcUJyb2tlckluc3RhbmNlLl9mcm9tUmFiYml0TXFCcm9rZXJEZXBsb3ltZW50QmFzZShcbiAgICAgIHNjb3BlLFxuICAgICAgbG9naWNhbElkLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgbmFtZSxcbiAgICAgIGlkLFxuICAgICAgc2VjdXJpdHlHcm91cHMsXG4gICAgICB1cmxTdWZmaXgsXG4gICAgKSBhcyBJUmFiYml0TXFCcm9rZXJJbnN0YW5jZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogUmFiYml0TXFCcm9rZXJJbnN0YW5jZVByb3BzLFxuICApIHtcbiAgICBsZXQgc3VibmV0U2VsZWN0aW9uID0gcHJvcHMudnBjU3VibmV0cztcblxuICAgIC8vIFRoaXMgZmxhZyBpcyB1c2VkIHRvIGRldGVybWluZSBpZiBhIGFubm90YXRpb24gbmVlZHMgdG8gYmUgZG9uZVxuICAgIGNvbnN0IGFubm90YXRpb25XYXJuaW5ncyA9IFtdO1xuXG4gICAgLy8gY2hlY2sgaWYgc3VibmV0IHNlbGVjdGlvbiBoYXMgYmVlbiBzcGVjaWZpZWRcbiAgICBpZiAocHJvcHMudnBjU3VibmV0cyAmJiBwcm9wcy52cGMpIHtcbiAgICAgIGNvbnN0IHN1Ym5ldHMgPSBwcm9wcy52cGM/LnNlbGVjdFN1Ym5ldHMocHJvcHMudnBjU3VibmV0cyk7XG5cbiAgICAgIC8vIGlmIHNlbGVjdGlvbiBpcyB2YWxpZCBmb3IgYSB2cGNcbiAgICAgIGlmIChzdWJuZXRzKSB7XG4gICAgICAgIC8vIHNpbmdsZSBpbnN0YW5jZSBhbGxvd3Mgb25seSBvbmUgc3VibmV0IHRha2UgdGhlIGZpcnN0IG9uZVxuICAgICAgICBzdWJuZXRTZWxlY3Rpb24gPSB7IHN1Ym5ldHM6IFtzdWJuZXRzLnN1Ym5ldHNbMF1dIH07XG5cbiAgICAgICAgaWYgKHN1Ym5ldHMuc3VibmV0cy5sZW5ndGggPiAxKVxuICAgICAgICAgIC8vIEFubm90YXRlIHRoZSBmYWN0IG9mIHRha2luZyBmaXJzdCBvbmUgd2hlbiBtb3JlIHRoZW4gb25lIHdlcmUgc2VsZWN0ZWRcbiAgICAgICAgICBhbm5vdGF0aW9uV2FybmluZ3MucHVzaChcbiAgICAgICAgICAgIGBFeGFjdGx5IDEgc3VibmV0IGluIFtTSU5HTEVfSU5TVEFOQ0VdIGRlcGxveW1lbnQgbW9kZSBpcyBuZWVkZWQuIHZwY1N1Ym5ldHMgc2VsZWN0aW9uIHJldHVybmVkICR7c3VibmV0cy5zdWJuZXRzLmxlbmd0aH0uIFRha2luZyBmaXJzdCBvbmUgZnJvbSB0aGUgc2VsZWN0aW9uYCxcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICB2cGNTdWJuZXRzOiBzdWJuZXRTZWxlY3Rpb24sXG4gICAgICBkZXBsb3ltZW50TW9kZTogQnJva2VyRGVwbG95bWVudE1vZGUuU0lOR0xFX0lOU1RBTkNFLFxuICAgIH0pO1xuXG4gICAgLy8gUHJvdmlkZSBBbm5vdGF0aW9uIHRvIHRoZSByZXNvdXJjZS5cbiAgICBpZiAoYW5ub3RhdGlvbldhcm5pbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIGFubm90YXRpb25XYXJuaW5ncy5mb3JFYWNoKChtc2cpID0+IEFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmcobXNnKSk7XG4gICAgfVxuICB9XG59XG4iXX0=