UNPKG

@cdklabs/cdk-amazonmq

Version:
96 lines 15.3 kB
"use strict"; 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=