@cdklabs/cdk-amazonmq
Version:
<!--BEGIN STABILITY BANNER-->
94 lines • 14.6 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RabbitMqBrokerConfiguration = 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 custom_resources_1 = require("aws-cdk-lib/custom-resources");
const activemq_authentication_strategy_1 = require("../activemq/activemq-authentication-strategy");
const broker_deployment_1 = require("../broker-deployment");
const configuration_1 = require("../configuration");
const configuration_association_1 = require("../configuration-association");
class RabbitMqBrokerConfiguration extends configuration_1.BrokerConfiguration {
static fromAttributes(scope, logicalId, attrs) {
if (attrs.id === undefined && attrs.arn === undefined) {
throw new Error("Either id or arn must be provided");
}
const { id, arn } = attrs;
class Import extends aws_cdk_lib_1.Resource {
constructor() {
super(scope, logicalId);
this.revision = attrs.revision;
this.arn = arn
? arn
: aws_cdk_lib_1.Stack.of(this).formatArn({
service: "mq",
resource: "configuration",
resourceName: id,
arnFormat: aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME,
});
this.id = id
? id
: aws_cdk_lib_1.Arn.split(arn, aws_cdk_lib_1.ArnFormat.COLON_RESOURCE_NAME).resourceName;
}
associateWith(broker) {
return new configuration_association_1.ConfigurationAssociation(this, "Configuration", {
broker,
configuration: this,
});
}
createRevision(options) {
const call = {
service: "mq",
action: "UpdateConfiguration",
parameters: {
ConfigurationId: this.id,
Data: aws_cdk_lib_1.Fn.base64(options.definition.toString()),
Description: options.description,
},
physicalResourceId: custom_resources_1.PhysicalResourceId.fromResponse("Id"),
};
const revisor = new custom_resources_1.AwsCustomResource(this, "Revisor", {
onCreate: call,
policy: custom_resources_1.AwsCustomResourcePolicy.fromSdkCalls({
resources: [this.arn],
}),
});
return RabbitMqBrokerConfiguration.fromAttributes(this, "Revision", {
id: revisor.getResponseField("Id"),
arn: revisor.getResponseField("Arn"),
revision: aws_cdk_lib_1.Token.asNumber(revisor.getResponseField("LatestRevision.Revision")),
});
}
}
return new Import();
}
constructor(scope, id, props) {
super(scope, id, {
...props,
authenticationStrategy: activemq_authentication_strategy_1.ActiveMqAuthenticationStrategy.SIMPLE,
engineVersion: props.engineVersion?.toString(),
engine: broker_deployment_1.BrokerEngine.RABBITMQ,
data: props.definition.toString(),
});
}
associateWith(broker) {
return this._associateWith(broker);
}
createRevision(options) {
const revisor = this._createRevisor(options.definition.toString(), options.description);
return RabbitMqBrokerConfiguration.fromAttributes(this, "Revision", {
id: revisor.getResponseField("Id"),
arn: revisor.getResponseField("Arn"),
revision: aws_cdk_lib_1.Token.asNumber(revisor.getResponseField("LatestRevision.Revision")),
});
}
}
exports.RabbitMqBrokerConfiguration = RabbitMqBrokerConfiguration;
_a = JSII_RTTI_SYMBOL_1;
RabbitMqBrokerConfiguration[_a] = { fqn: "@cdklabs/cdk-amazonmq.RabbitMqBrokerConfiguration", version: "0.1.6" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFiYml0bXEtYnJva2VyLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmFiYml0bXEvcmFiYml0bXEtYnJva2VyLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7O0VBR0U7QUFDRiw2Q0FBeUU7QUFDekUsbUVBS3NDO0FBS3RDLG1HQUE4RjtBQUM5Riw0REFBb0Q7QUFDcEQsb0RBSTBCO0FBQzFCLDRFQUF3RTtBQW9CeEUsTUFBYSwyQkFBNEIsU0FBUSxtQ0FBbUI7SUFDM0QsTUFBTSxDQUFDLGNBQWMsQ0FDMUIsS0FBZ0IsRUFDaEIsU0FBaUIsRUFDakIsS0FBb0M7UUFFcEMsSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RELE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBRUQsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFMUIsTUFBTSxNQUFPLFNBQVEsc0JBQVE7WUFJM0I7Z0JBQ0UsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO2dCQUMvQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUc7b0JBQ1osQ0FBQyxDQUFDLEdBQUc7b0JBQ0wsQ0FBQyxDQUFDLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQzt3QkFDdkIsT0FBTyxFQUFFLElBQUk7d0JBQ2IsUUFBUSxFQUFFLGVBQWU7d0JBQ3pCLFlBQVksRUFBRSxFQUFFO3dCQUNoQixTQUFTLEVBQUUsdUJBQVMsQ0FBQyxtQkFBbUI7cUJBQ3pDLENBQUMsQ0FBQztnQkFDUCxJQUFJLENBQUMsRUFBRSxHQUFH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Y2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuKi9cbmltcG9ydCB7IEFybiwgQXJuRm9ybWF0LCBGbiwgUmVzb3VyY2UsIFN0YWNrLCBUb2tlbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQXdzQ3VzdG9tUmVzb3VyY2UsXG4gIEF3c0N1c3RvbVJlc291cmNlUG9saWN5LFxuICBBd3NTZGtDYWxsLFxuICBQaHlzaWNhbFJlc291cmNlSWQsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgUmFiYml0TXFCcm9rZXJDb25maWd1cmF0aW9uRGVmaW5pdGlvbiB9IGZyb20gXCIuL3JhYmJpdG1xLWJyb2tlci1jb25maWd1cmF0aW9uLWRlZmluaXRpb25cIjtcbmltcG9ydCB7IElSYWJiaXRNcUJyb2tlckRlcGxveW1lbnQgfSBmcm9tIFwiLi9yYWJiaXRtcS1icm9rZXItZGVwbG95bWVudFwiO1xuaW1wb3J0IHsgUmFiYml0TXFCcm9rZXJFbmdpbmVWZXJzaW9uIH0gZnJvbSBcIi4vcmFiYml0bXEtYnJva2VyLWVuZ2luZS12ZXJzaW9uXCI7XG5pbXBvcnQgeyBBY3RpdmVNcUF1dGhlbnRpY2F0aW9uU3RyYXRlZ3kgfSBmcm9tIFwiLi4vYWN0aXZlbXEvYWN0aXZlbXEtYXV0aGVudGljYXRpb24tc3RyYXRlZ3lcIjtcbmltcG9ydCB7IEJyb2tlckVuZ2luZSB9IGZyb20gXCIuLi9icm9rZXItZGVwbG95bWVudFwiO1xuaW1wb3J0IHtcbiAgQnJva2VyQ29uZmlndXJhdGlvbixcbiAgQnJva2VyQ29uZmlndXJhdGlvbkF0dHJpYnV0ZXMsXG4gIElCcm9rZXJDb25maWd1cmF0aW9uLFxufSBmcm9tIFwiLi4vY29uZmlndXJhdGlvblwiO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFzc29jaWF0aW9uIH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb24tYXNzb2NpYXRpb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBSYWJiaXRNcUJyb2tlckNvbmZpZ3VyYXRpb25PcHRpb25zIHtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmluaXRpb246IFJhYmJpdE1xQnJva2VyQ29uZmlndXJhdGlvbkRlZmluaXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmFiYml0TXFCcm9rZXJDb25maWd1cmF0aW9uUHJvcHNcbiAgZXh0ZW5kcyBSYWJiaXRNcUJyb2tlckNvbmZpZ3VyYXRpb25PcHRpb25zIHtcbiAgcmVhZG9ubHkgY29uZmlndXJhdGlvbk5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuZ2luZVZlcnNpb246IFJhYmJpdE1xQnJva2VyRW5naW5lVmVyc2lvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmFiYml0TXFCcm9rZXJDb25maWd1cmF0aW9uIGV4dGVuZHMgSUJyb2tlckNvbmZpZ3VyYXRpb24ge1xuICBhc3NvY2lhdGVXaXRoKGJyb2tlcjogSVJhYmJpdE1xQnJva2VyRGVwbG95bWVudCk6IENvbmZpZ3VyYXRpb25Bc3NvY2lhdGlvbjtcbiAgY3JlYXRlUmV2aXNpb24oXG4gICAgb3B0aW9uczogUmFiYml0TXFCcm9rZXJDb25maWd1cmF0aW9uT3B0aW9ucyxcbiAgKTogSVJhYmJpdE1xQnJva2VyQ29uZmlndXJhdGlvbjtcbn1cblxuZXhwb3J0IGNsYXNzIFJhYmJpdE1xQnJva2VyQ29uZmlndXJhdGlvbiBleHRlbmRzIEJyb2tlckNvbmZpZ3VyYXRpb24ge1xuICBwdWJsaWMgc3RhdGljIGZyb21BdHRyaWJ1dGVzKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgbG9naWNhbElkOiBzdHJpbmcsXG4gICAgYXR0cnM6IEJyb2tlckNvbmZpZ3VyYXRpb25BdHRyaWJ1dGVzLFxuICApOiBJUmFiYml0TXFCcm9rZXJDb25maWd1cmF0aW9uIHtcbiAgICBpZiAoYXR0cnMuaWQgPT09IHVuZGVmaW5lZCAmJiBhdHRycy5hcm4gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRWl0aGVyIGlkIG9yIGFybiBtdXN0IGJlIHByb3ZpZGVkXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgaWQsIGFybiB9ID0gYXR0cnM7XG5cbiAgICBjbGFzcyBJbXBvcnQgZXh0ZW5kcyBSZXNvdXJjZSBpbXBsZW1lbnRzIElSYWJiaXRNcUJyb2tlckNvbmZpZ3VyYXRpb24ge1xuICAgICAgcHVibGljIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuICAgICAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgcmV2aXNpb246IG51bWJlcjtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihzY29wZSwgbG9naWNhbElkKTtcbiAgICAgICAgdGhpcy5yZXZpc2lvbiA9IGF0dHJzLnJldmlzaW9uO1xuICAgICAgICB0aGlzLmFybiA9IGFyblxuICAgICAgICAgID8gYXJuXG4gICAgICAgICAgOiBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgICBzZXJ2aWNlOiBcIm1xXCIsXG4gICAgICAgICAgICAgIHJlc291cmNlOiBcImNvbmZpZ3VyYXRpb25cIixcbiAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiBpZCxcbiAgICAgICAgICAgICAgYXJuRm9ybWF0OiBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLmlkID0gaWRcbiAgICAgICAgICA/IGlkXG4gICAgICAgICAgOiBBcm4uc3BsaXQoYXJuISwgQXJuRm9ybWF0LkNPTE9OX1JFU09VUkNFX05BTUUpLnJlc291cmNlTmFtZSE7XG4gICAgICB9XG5cbiAgICAgIGFzc29jaWF0ZVdpdGgoXG4gICAgICAgIGJyb2tlcjogSVJhYmJpdE1xQnJva2VyRGVwbG95bWVudCxcbiAgICAgICk6IENvbmZpZ3VyYXRpb25Bc3NvY2lhdGlvbiB7XG4gICAgICAgIHJldHVybiBuZXcgQ29uZmlndXJhdGlvbkFzc29jaWF0aW9uKHRoaXMsIFwiQ29uZmlndXJhdGlvblwiLCB7XG4gICAgICAgICAgYnJva2VyLFxuICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBjcmVhdGVSZXZpc2lvbihcbiAgICAgICAgb3B0aW9uczogUmFiYml0TXFCcm9rZXJDb25maWd1cmF0aW9uT3B0aW9ucyxcbiAgICAgICk6IElSYWJiaXRNcUJyb2tlckNvbmZpZ3VyYXRpb24ge1xuICAgICAgICBjb25zdCBjYWxsOiBBd3NTZGtDYWxsID0ge1xuICAgICAgICAgIHNlcnZpY2U6IFwibXFcIixcbiAgICAgICAgICBhY3Rpb246IFwiVXBkYXRlQ29uZmlndXJhdGlvblwiLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIENvbmZpZ3VyYXRpb25JZDogdGhpcy5pZCxcbiAgICAgICAgICAgIERhdGE6IEZuLmJhc2U2NChvcHRpb25zLmRlZmluaXRpb24udG9TdHJpbmcoKSksXG4gICAgICAgICAgICBEZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogUGh5c2ljYWxSZXNvdXJjZUlkLmZyb21SZXNwb25zZShcIklkXCIpLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJldmlzb3IgPSBuZXcgQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJSZXZpc29yXCIsIHtcbiAgICAgICAgICBvbkNyZWF0ZTogY2FsbCxcbiAgICAgICAgICBwb2xpY3k6IEF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7XG4gICAgICAgICAgICByZXNvdXJjZXM6IFt0aGlzLmFybl0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBSYWJiaXRNcUJyb2tlckNvbmZpZ3VyYXRpb24uZnJvbUF0dHJpYnV0ZXModGhpcywgXCJSZXZpc2lvblwiLCB7XG4gICAgICAgICAgaWQ6IHJldmlzb3IuZ2V0UmVzcG9uc2VGaWVsZChcIklkXCIpLFxuICAgICAgICAgIGFybjogcmV2aXNvci5nZXRSZXNwb25zZUZpZWxkKFwiQXJuXCIpLFxuICAgICAgICAgIHJldmlzaW9uOiBUb2tlbi5hc051bWJlcihcbiAgICAgICAgICAgIHJldmlzb3IuZ2V0UmVzcG9uc2VGaWVsZChcIkxhdGVzdFJldmlzaW9uLlJldmlzaW9uXCIpLFxuICAgICAgICAgICksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgSW1wb3J0KCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFJhYmJpdE1xQnJva2VyQ29uZmlndXJhdGlvblByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgYXV0aGVudGljYXRpb25TdHJhdGVneTogQWN0aXZlTXFBdXRoZW50aWNhdGlvblN0cmF0ZWd5LlNJTVBMRSxcbiAgICAgIGVuZ2luZVZlcnNpb246IHByb3BzLmVuZ2luZVZlcnNpb24/LnRvU3RyaW5nKCksXG4gICAgICBlbmdpbmU6IEJyb2tlckVuZ2luZS5SQUJCSVRNUSxcbiAgICAgIGRhdGE6IHByb3BzLmRlZmluaXRpb24udG9TdHJpbmcoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3NvY2lhdGVXaXRoKGJyb2tlcjogSVJhYmJpdE1xQnJva2VyRGVwbG95bWVudCkge1xuICAgIHJldHVybiB0aGlzLl9hc3NvY2lhdGVXaXRoKGJyb2tlcik7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlUmV2aXNpb24ob3B0aW9uczogUmFiYml0TXFCcm9rZXJDb25maWd1cmF0aW9uT3B0aW9ucykge1xuICAgIGNvbnN0IHJldmlzb3IgPSB0aGlzLl9jcmVhdGVSZXZpc29yKFxuICAgICAgb3B0aW9ucy5kZWZpbml0aW9uLnRvU3RyaW5nKCksXG4gICAgICBvcHRpb25zLmRlc2NyaXB0aW9uLFxuICAgICk7XG5cbiAgICByZXR1cm4gUmFiYml0TXFCcm9rZXJDb25maWd1cmF0aW9uLmZyb21BdHRyaWJ1dGVzKHRoaXMsIFwiUmV2aXNpb25cIiwge1xuICAgICAgaWQ6IHJldmlzb3IuZ2V0UmVzcG9uc2VGaWVsZChcIklkXCIpLFxuICAgICAgYXJuOiByZXZpc29yLmdldFJlc3BvbnNlRmllbGQoXCJBcm5cIiksXG4gICAgICByZXZpc2lvbjogVG9rZW4uYXNOdW1iZXIoXG4gICAgICAgIHJldmlzb3IuZ2V0UmVzcG9uc2VGaWVsZChcIkxhdGVzdFJldmlzaW9uLlJldmlzaW9uXCIpLFxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxufVxuIl19