@cdklabs/cdk-amazonmq
Version:
<!--BEGIN STABILITY BANNER-->
96 lines • 15.3 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ActiveMqBrokerConfiguration = 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 broker_deployment_1 = require("../broker-deployment");
const configuration_1 = require("../configuration");
const configuration_association_1 = require("../configuration-association");
class ActiveMqBrokerConfiguration 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 ActiveMqBrokerConfiguration.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: props.authenticationStrategy,
engineVersion: props.engineVersion?.toString(),
engine: broker_deployment_1.BrokerEngine.ACTIVEMQ,
data: props.definition.toString(),
});
// TODO: Add some validation regarding the configuration contents
// with SIMPLE auth strategy we need to have AuthorizationMap in data
// with LDAP auth strategy we need to have CachedLDAPAuthorizationMap in data
}
associateWith(broker) {
return this._associateWith(broker);
}
createRevision(options) {
const revisor = this._createRevisor(options.definition.toString(), options.description);
return ActiveMqBrokerConfiguration.fromAttributes(this, "Revision", {
id: revisor.getResponseField("Id"),
arn: revisor.getResponseField("Arn"),
revision: aws_cdk_lib_1.Token.asNumber(revisor.getResponseField("LatestRevision.Revision")),
});
}
}
exports.ActiveMqBrokerConfiguration = ActiveMqBrokerConfiguration;
_a = JSII_RTTI_SYMBOL_1;
ActiveMqBrokerConfiguration[_a] = { fqn: "@cdklabs/cdk-amazonmq.ActiveMqBrokerConfiguration", version: "0.1.8" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlbXEtYnJva2VyLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aXZlbXEvYWN0aXZlbXEtYnJva2VyLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7O0VBR0U7QUFFRiw2Q0FBeUU7QUFDekUsbUVBS3NDO0FBTXRDLDREQUFvRDtBQUNwRCxvREFJMEI7QUFDMUIsNEVBQXdFO0FBMkJ4RSxNQUFhLDJCQUE0QixTQUFRLG1DQUFtQjtJQUMzRCxNQUFNLENBQUMsY0FBYyxDQUMxQixLQUFnQixFQUNoQixTQUFpQixFQUNqQixLQUFvQztRQUVwQyxJQUFJLEtBQUssQ0FBQyxFQUFFLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUUxQixNQUFNLE1BQU8sU0FBUSxzQkFBUTtZQUkzQjtnQkFDRSxLQUFLLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRztvQkFDWixDQUFDLENBQUMsR0FBRztvQkFDTCxDQUFDLENBQUMsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO3dCQUN2QixPQUFPLEVBQUUsSUFBSTt3QkFDYixRQUFRLEVBQUUsZUFBZTt3QkFDekIsWUFBWSxFQUFFLEVBQUU7d0JBQ2hCLFNBQVMsRUFBRSx1QkFBUyxDQUFDLG1CQUFtQjtxQkFDekMsQ0FBQyxDQUFDO2dCQUNQLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRTtvQkFDVixD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LENBQUM7O0FBOUdILGtFQStHQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4qL1xuXG5pbXBvcnQgeyBBcm4sIEFybkZvcm1hdCwgRm4sIFJlc291cmNlLCBTdGFjaywgVG9rZW4gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIEF3c0N1c3RvbVJlc291cmNlLFxuICBBd3NDdXN0b21SZXNvdXJjZVBvbGljeSxcbiAgQXdzU2RrQ2FsbCxcbiAgUGh5c2ljYWxSZXNvdXJjZUlkLFxufSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEFjdGl2ZU1xQXV0aGVudGljYXRpb25TdHJhdGVneSB9IGZyb20gXCIuL2FjdGl2ZW1xLWF1dGhlbnRpY2F0aW9uLXN0cmF0ZWd5XCI7XG5pbXBvcnQgeyBBY3RpdmVNcUJyb2tlckNvbmZpZ3VyYXRpb25EZWZpbml0aW9uIH0gZnJvbSBcIi4vYWN0aXZlbXEtYnJva2VyLWNvbmZpZ3VyYXRpb24tZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgSUFjdGl2ZU1xQnJva2VyRGVwbG95bWVudCB9IGZyb20gXCIuL2FjdGl2ZW1xLWJyb2tlci1kZXBsb3ltZW50XCI7XG5pbXBvcnQgeyBBY3RpdmVNcUJyb2tlckVuZ2luZVZlcnNpb24gfSBmcm9tIFwiLi9hY3RpdmVtcS1icm9rZXItZW5naW5lLXZlcnNpb25cIjtcbmltcG9ydCB7IEJyb2tlckVuZ2luZSB9IGZyb20gXCIuLi9icm9rZXItZGVwbG95bWVudFwiO1xuaW1wb3J0IHtcbiAgQnJva2VyQ29uZmlndXJhdGlvbixcbiAgQnJva2VyQ29uZmlndXJhdGlvbkF0dHJpYnV0ZXMsXG4gIElCcm9rZXJDb25maWd1cmF0aW9uLFxufSBmcm9tIFwiLi4vY29uZmlndXJhdGlvblwiO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFzc29jaWF0aW9uIH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb24tYXNzb2NpYXRpb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmVNcUJyb2tlckNvbmZpZ3VyYXRpb25PcHRpb25zIHtcbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmluaXRpb246IEFjdGl2ZU1xQnJva2VyQ29uZmlndXJhdGlvbkRlZmluaXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aXZlTXFCcm9rZXJDb25maWd1cmF0aW9uUHJvcHNcbiAgZXh0ZW5kcyBBY3RpdmVNcUJyb2tlckNvbmZpZ3VyYXRpb25PcHRpb25zIHtcbiAgcmVhZG9ubHkgY29uZmlndXJhdGlvbk5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuZ2luZVZlcnNpb246IEFjdGl2ZU1xQnJva2VyRW5naW5lVmVyc2lvbjtcblxuICAvKipcbiAgICogU2V0cyBhdXRoZW50aWNhdGlvbiBzdHJhdGVneSBmb3IgdGhlIGJyb2tlclxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVuZGVmaW5lZDsgYSBTSU1QTEUgYXV0aGVudGljYXRpb24gc3RyYXRlZ3kgd2lsbCBiZSBhcHBsaWVkXG4gICAqL1xuICByZWFkb25seSBhdXRoZW50aWNhdGlvblN0cmF0ZWd5PzogQWN0aXZlTXFBdXRoZW50aWNhdGlvblN0cmF0ZWd5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBY3RpdmVNcUJyb2tlckNvbmZpZ3VyYXRpb24gZXh0ZW5kcyBJQnJva2VyQ29uZmlndXJhdGlvbiB7XG4gIGFzc29jaWF0ZVdpdGgoYnJva2VyOiBJQWN0aXZlTXFCcm9rZXJEZXBsb3ltZW50KTogQ29uZmlndXJhdGlvbkFzc29jaWF0aW9uO1xuICBjcmVhdGVSZXZpc2lvbihcbiAgICBvcHRpb25zOiBBY3RpdmVNcUJyb2tlckNvbmZpZ3VyYXRpb25PcHRpb25zLFxuICApOiBJQWN0aXZlTXFCcm9rZXJDb25maWd1cmF0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgQWN0aXZlTXFCcm9rZXJDb25maWd1cmF0aW9uIGV4dGVuZHMgQnJva2VyQ29uZmlndXJhdGlvbiB7XG4gIHB1YmxpYyBzdGF0aWMgZnJvbUF0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBsb2dpY2FsSWQ6IHN0cmluZyxcbiAgICBhdHRyczogQnJva2VyQ29uZmlndXJhdGlvbkF0dHJpYnV0ZXMsXG4gICk6IElBY3RpdmVNcUJyb2tlckNvbmZpZ3VyYXRpb24ge1xuICAgIGlmIChhdHRycy5pZCA9PT0gdW5kZWZpbmVkICYmIGF0dHJzLmFybiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJFaXRoZXIgaWQgb3IgYXJuIG11c3QgYmUgcHJvdmlkZWRcIik7XG4gICAgfVxuXG4gICAgY29uc3QgeyBpZCwgYXJuIH0gPSBhdHRycztcblxuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSUFjdGl2ZU1xQnJva2VyQ29uZmlndXJhdGlvbiB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgICAgIHB1YmxpYyByZWFkb25seSByZXZpc2lvbjogbnVtYmVyO1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBsb2dpY2FsSWQpO1xuICAgICAgICB0aGlzLnJldmlzaW9uID0gYXR0cnMucmV2aXNpb247XG4gICAgICAgIHRoaXMuYXJuID0gYXJuXG4gICAgICAgICAgPyBhcm5cbiAgICAgICAgICA6IFN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICAgICAgICAgIHNlcnZpY2U6IFwibXFcIixcbiAgICAgICAgICAgICAgcmVzb3VyY2U6IFwiY29uZmlndXJhdGlvblwiLFxuICAgICAgICAgICAgICByZXNvdXJjZU5hbWU6IGlkLFxuICAgICAgICAgICAgICBhcm5Gb3JtYXQ6IEFybkZvcm1hdC5DT0xPTl9SRVNPVVJDRV9OQU1FLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaWQgPSBpZFxuICAgICAgICAgID8gaWRcbiAgICAgICAgICA6IEFybi5zcGxpdChhcm4hLCBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSkucmVzb3VyY2VOYW1lITtcbiAgICAgIH1cblxuICAgICAgYXNzb2NpYXRlV2l0aChcbiAgICAgICAgYnJva2VyOiBJQWN0aXZlTXFCcm9rZXJEZXBsb3ltZW50LFxuICAgICAgKTogQ29uZmlndXJhdGlvbkFzc29jaWF0aW9uIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb25maWd1cmF0aW9uQXNzb2NpYXRpb24odGhpcywgXCJDb25maWd1cmF0aW9uXCIsIHtcbiAgICAgICAgICBicm9rZXIsXG4gICAgICAgICAgY29uZmlndXJhdGlvbjogdGhpcyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGNyZWF0ZVJldmlzaW9uKFxuICAgICAgICBvcHRpb25zOiBBY3RpdmVNcUJyb2tlckNvbmZpZ3VyYXRpb25PcHRpb25zLFxuICAgICAgKTogSUFjdGl2ZU1xQnJva2VyQ29uZmlndXJhdGlvbiB7XG4gICAgICAgIGNvbnN0IGNhbGw6IEF3c1Nka0NhbGwgPSB7XG4gICAgICAgICAgc2VydmljZTogXCJtcVwiLFxuICAgICAgICAgIGFjdGlvbjogXCJVcGRhdGVDb25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgQ29uZmlndXJhdGlvbklkOiB0aGlzLmlkLFxuICAgICAgICAgICAgRGF0YTogRm4uYmFzZTY0KG9wdGlvbnMuZGVmaW5pdGlvbi50b1N0cmluZygpKSxcbiAgICAgICAgICAgIERlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBQaHlzaWNhbFJlc291cmNlSWQuZnJvbVJlc3BvbnNlKFwiSWRcIiksXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmV2aXNvciA9IG5ldyBBd3NDdXN0b21SZXNvdXJjZSh0aGlzLCBcIlJldmlzb3JcIiwge1xuICAgICAgICAgIG9uQ3JlYXRlOiBjYWxsLFxuICAgICAgICAgIHBvbGljeTogQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtcbiAgICAgICAgICAgIHJlc291cmNlczogW3RoaXMuYXJuXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIEFjdGl2ZU1xQnJva2VyQ29uZmlndXJhdGlvbi5mcm9tQXR0cmlidXRlcyh0aGlzLCBcIlJldmlzaW9uXCIsIHtcbiAgICAgICAgICBpZDogcmV2aXNvci5nZXRSZXNwb25zZUZpZWxkKFwiSWRcIiksXG4gICAgICAgICAgYXJuOiByZXZpc29yLmdldFJlc3BvbnNlRmllbGQoXCJBcm5cIiksXG4gICAgICAgICAgcmV2aXNpb246IFRva2VuLmFzTnVtYmVyKFxuICAgICAgICAgICAgcmV2aXNvci5nZXRSZXNwb25zZUZpZWxkKFwiTGF0ZXN0UmV2aXNpb24uUmV2aXNpb25cIiksXG4gICAgICAgICAgKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogQWN0aXZlTXFCcm9rZXJDb25maWd1cmF0aW9uUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBhdXRoZW50aWNhdGlvblN0cmF0ZWd5OiBwcm9wcy5hdXRoZW50aWNhdGlvblN0cmF0ZWd5LFxuICAgICAgZW5naW5lVmVyc2lvbjogcHJvcHMuZW5naW5lVmVyc2lvbj8udG9TdHJpbmcoKSxcbiAgICAgIGVuZ2luZTogQnJva2VyRW5naW5lLkFDVElWRU1RLFxuICAgICAgZGF0YTogcHJvcHMuZGVmaW5pdGlvbi50b1N0cmluZygpLFxuICAgIH0pO1xuXG4gICAgLy8gVE9ETzogQWRkIHNvbWUgdmFsaWRhdGlvbiByZWdhcmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gY29udGVudHNcbiAgICAvLyAgICAgICB3aXRoIFNJTVBMRSBhdXRoIHN0cmF0ZWd5IHdlIG5lZWQgdG8gaGF2ZSBBdXRob3JpemF0aW9uTWFwIGluIGRhdGFcbiAgICAvLyAgICAgICB3aXRoIExEQVAgYXV0aCBzdHJhdGVneSB3ZSBuZWVkIHRvIGhhdmUgQ2FjaGVkTERBUEF1dGhvcml6YXRpb25NYXAgaW4gZGF0YVxuICB9XG5cbiAgcHVibGljIGFzc29jaWF0ZVdpdGgoYnJva2VyOiBJQWN0aXZlTXFCcm9rZXJEZXBsb3ltZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuX2Fzc29jaWF0ZVdpdGgoYnJva2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVSZXZpc2lvbihvcHRpb25zOiBBY3RpdmVNcUJyb2tlckNvbmZpZ3VyYXRpb25PcHRpb25zKSB7XG4gICAgY29uc3QgcmV2aXNvciA9IHRoaXMuX2NyZWF0ZVJldmlzb3IoXG4gICAgICBvcHRpb25zLmRlZmluaXRpb24udG9TdHJpbmcoKSxcbiAgICAgIG9wdGlvbnMuZGVzY3JpcHRpb24sXG4gICAgKTtcblxuICAgIHJldHVybiBBY3RpdmVNcUJyb2tlckNvbmZpZ3VyYXRpb24uZnJvbUF0dHJpYnV0ZXModGhpcywgXCJSZXZpc2lvblwiLCB7XG4gICAgICBpZDogcmV2aXNvci5nZXRSZXNwb25zZUZpZWxkKFwiSWRcIiksXG4gICAgICBhcm46IHJldmlzb3IuZ2V0UmVzcG9uc2VGaWVsZChcIkFyblwiKSxcbiAgICAgIHJldmlzaW9uOiBUb2tlbi5hc051bWJlcihcbiAgICAgICAgcmV2aXNvci5nZXRSZXNwb25zZUZpZWxkKFwiTGF0ZXN0UmV2aXNpb24uUmV2aXNpb25cIiksXG4gICAgICApLFxuICAgIH0pO1xuICB9XG59XG4iXX0=