UNPKG

awscdk-resources-mongodbatlas

Version:

MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources

90 lines 11.9 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.AtlasServerlessBasic = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); // Copyright 2023 MongoDB Inc // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. const constructs_1 = require("constructs"); const atlas = require("../../index"); /** @type {*} */ const dbDefaults = { dbName: "admin", username: "atlas-user", password: "atlas-pwd", roles: [ { roleName: "atlasAdmin", databaseName: "admin", }, ], }; /** * @description * @export * @class AtlasBasic * @extends {Construct} */ class AtlasServerlessBasic extends constructs_1.Construct { /** * Creates an instance of AtlasServerlessBasic. * @param {Construct} scope * @param {string} id * @param {AtlasServerlessBasicProps} props * @memberof AtlasServerlessBasic */ constructor(scope, id, props) { super(scope, id); //Create a new MongoDB Atlas Project this.mProject = new atlas.CfnProject(this, "project-".concat(id), { profile: props.profile, name: props.projectProps.name ?? `project-${id}`, projectOwnerId: props.projectProps.projectOwnerId, ...props.projectProps, }); // Create a new serverless Instance and pass project ID this.mserverless = new atlas.CfnServerlessInstance(this, "serverless-".concat(id), { projectId: this.mProject.attrId, name: props.serverlessProps.name ?? `serverless-${id}`, providerSettings: props.serverlessProps.providerSettings, profile: props.profile, continuousBackupEnabled: props.serverlessProps.continuousBackupEnabled, ...props.serverlessProps, }); this.mserverless.addDependency(this.mProject); // Create a new MongoDB Atlas Database User this.mDBUser = new atlas.CfnDatabaseUser(this, "db-user-".concat(id), { profile: props.profile, databaseName: props.dbUserProps?.databaseName || dbDefaults.dbName, projectId: this.mProject.attrId, username: props.dbUserProps?.username || dbDefaults.username, roles: props.dbUserProps?.roles || dbDefaults.roles, password: props.dbUserProps?.password || dbDefaults.password, ...props.dbUserProps, }); this.mDBUser.addDependency(this.mProject); // Create a new MongoDB Atlas Project IP Access List this.ipAccessList = new atlas.CfnProjectIpAccessList(this, "ip-access-list-".concat(id), { profile: props.profile, projectId: this.mProject.attrId, accessList: props.ipAccessListProps?.accessList || [], ...props.ipAccessListProps, }); this.ipAccessList.addDependency(this.mProject); } } exports.AtlasServerlessBasic = AtlasServerlessBasic; _a = JSII_RTTI_SYMBOL_1; AtlasServerlessBasic[_a] = { fqn: "awscdk-resources-mongodbatlas.AtlasServerlessBasic", version: "3.13.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbDMtcmVzb3VyY2VzL2F0bGFzLXNlcnZlcmxlc3MtYmFzaWMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxtRUFBbUU7QUFDbkUsMENBQTBDO0FBQzFDLEVBQUU7QUFDRixrREFBa0Q7QUFDbEQsRUFBRTtBQUNGLHNFQUFzRTtBQUN0RSxvRUFBb0U7QUFDcEUsMkVBQTJFO0FBQzNFLHNFQUFzRTtBQUN0RSxpQ0FBaUM7QUFFakMsMkNBQXVDO0FBQ3ZDLHFDQUFxQztBQUdyQyxnQkFBZ0I7QUFDaEIsTUFBTSxVQUFVLEdBQUc7SUFDakIsTUFBTSxFQUFFLE9BQU87SUFDZixRQUFRLEVBQUUsWUFBWTtJQUN0QixRQUFRLEVBQUUsV0FBVztJQUNyQixLQUFLLEVBQUU7UUFDTDtZQUNFLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFlBQVksRUFBRSxPQUFPO1NBQ3RCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxNQUFhLG9CQUFxQixTQUFRLHNCQUFTO0lBMEJqRDs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWdDO1FBQ3hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ2hFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksV0FBVyxFQUFFLEVBQUU7WUFDaEQsY0FBYyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsY0FBYztZQUNqRCxHQUFHLEtBQUssQ0FBQyxZQUFZO1NBQ3RCLENBQUMsQ0FBQztRQUNILHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLHFCQUFxQixDQUNoRCxJQUFJLEVBQ0osYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFDeEI7WUFDRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQy9CLElBQUksRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxjQUFjLEVBQUUsRUFBRTtZQUN0RCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLGdCQUFnQjtZQUN4RCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLGVBQWUsQ0FBQyx1QkFBdUI7WUFDdEUsR0FBRyxLQUFLLENBQUMsZUFBZTtTQUN6QixDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3BFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixZQUFZLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxZQUFZLElBQUksVUFBVSxDQUFDLE1BQU07WUFDbEUsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUMvQixRQUFRLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxRQUFRLElBQUksVUFBVSxDQUFDLFFBQVE7WUFDNUQsS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLO1lBQ25ELFFBQVEsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLFFBQVEsSUFBSSxVQUFVLENBQUMsUUFBUTtZQUM1RCxHQUFHLEtBQUssQ0FBQyxXQUFXO1NBQ3JCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxQyxvREFBb0Q7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FDbEQsSUFBSSxFQUNKLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFDNUI7WUFDRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUMvQixVQUFVLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixFQUFFLFVBQVUsSUFBSSxFQUFFO1lBQ3JELEdBQUcsS0FBSyxDQUFDLGlCQUFpQjtTQUMzQixDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakQsQ0FBQzs7QUEvRUgsb0RBZ0ZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjMgTW9uZ29EQiBJbmNcbi8vXG4vLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4vL1xuLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbi8vXG4vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4vLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbi8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbi8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgYXRsYXMgZnJvbSBcIi4uLy4uL2luZGV4XCI7XG5pbXBvcnQgeyBBdGxhc1NlcnZlcmxlc3NCYXNpY1Byb3BzIH0gZnJvbSBcIi4uL2NvbW1vbi9wcm9wc1wiO1xuXG4vKiogQHR5cGUgeyp9ICovXG5jb25zdCBkYkRlZmF1bHRzID0ge1xuICBkYk5hbWU6IFwiYWRtaW5cIixcbiAgdXNlcm5hbWU6IFwiYXRsYXMtdXNlclwiLFxuICBwYXNzd29yZDogXCJhdGxhcy1wd2RcIixcbiAgcm9sZXM6IFtcbiAgICB7XG4gICAgICByb2xlTmFtZTogXCJhdGxhc0FkbWluXCIsXG4gICAgICBkYXRhYmFzZU5hbWU6IFwiYWRtaW5cIixcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBBdGxhc0Jhc2ljXG4gKiBAZXh0ZW5kcyB7Q29uc3RydWN0fVxuICovXG5leHBvcnQgY2xhc3MgQXRsYXNTZXJ2ZXJsZXNzQmFzaWMgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEB0eXBlIHtwcm9qZWN0LkNmblByb2plY3R9XG4gICAqIEBtZW1iZXJvZiBBdGxhc1NlcnZlcmxlc3NCYXNpY1xuICAgKi9cbiAgcmVhZG9ubHkgbVByb2plY3Q6IGF0bGFzLkNmblByb2plY3Q7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQHR5cGUge2F0bGFzLkNmbkNsdXN0ZXJ9XG4gICAqIEBtZW1iZXJvZiBBdGxhc1NlcnZlcmxlc3NCYXNpY1xuICAgKi9cbiAgcmVhZG9ubHkgbXNlcnZlcmxlc3M6IGF0bGFzLkNmblNlcnZlcmxlc3NJbnN0YW5jZTtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBAdHlwZSB7dXNlci5DZm5EYXRhYmFzZVVzZXJ9XG4gICAqIEBtZW1iZXJvZiBBdGxhc1NlcnZlcmxlc3NCYXNpY1xuICAgKi9cbiAgcmVhZG9ubHkgbURCVXNlcjogYXRsYXMuQ2ZuRGF0YWJhc2VVc2VyO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEB0eXBlIHtpcEFjY2Vzc0xpc3QuQ2ZuUHJvamVjdElwQWNjZXNzTGlzdH1cbiAgICogQG1lbWJlcm9mIEF0bGFzU2VydmVybGVzc0Jhc2ljXG4gICAqL1xuICByZWFkb25seSBpcEFjY2Vzc0xpc3Q6IGF0bGFzLkNmblByb2plY3RJcEFjY2Vzc0xpc3Q7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQXRsYXNTZXJ2ZXJsZXNzQmFzaWMuXG4gICAqIEBwYXJhbSB7Q29uc3RydWN0fSBzY29wZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWRcbiAgICogQHBhcmFtIHtBdGxhc1NlcnZlcmxlc3NCYXNpY1Byb3BzfSBwcm9wc1xuICAgKiBAbWVtYmVyb2YgQXRsYXNTZXJ2ZXJsZXNzQmFzaWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBdGxhc1NlcnZlcmxlc3NCYXNpY1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvL0NyZWF0ZSBhIG5ldyBNb25nb0RCIEF0bGFzIFByb2plY3RcbiAgICB0aGlzLm1Qcm9qZWN0ID0gbmV3IGF0bGFzLkNmblByb2plY3QodGhpcywgXCJwcm9qZWN0LVwiLmNvbmNhdChpZCksIHtcbiAgICAgIHByb2ZpbGU6IHByb3BzLnByb2ZpbGUsXG4gICAgICBuYW1lOiBwcm9wcy5wcm9qZWN0UHJvcHMubmFtZSA/PyBgcHJvamVjdC0ke2lkfWAsXG4gICAgICBwcm9qZWN0T3duZXJJZDogcHJvcHMucHJvamVjdFByb3BzLnByb2plY3RPd25lcklkLFxuICAgICAgLi4ucHJvcHMucHJvamVjdFByb3BzLFxuICAgIH0pO1xuICAgIC8vIENyZWF0ZSBhIG5ldyBzZXJ2ZXJsZXNzIEluc3RhbmNlIGFuZCBwYXNzIHByb2plY3QgSURcbiAgICB0aGlzLm1zZXJ2ZXJsZXNzID0gbmV3IGF0bGFzLkNmblNlcnZlcmxlc3NJbnN0YW5jZShcbiAgICAgIHRoaXMsXG4gICAgICBcInNlcnZlcmxlc3MtXCIuY29uY2F0KGlkKSxcbiAgICAgIHtcbiAgICAgICAgcHJvamVjdElkOiB0aGlzLm1Qcm9qZWN0LmF0dHJJZCxcbiAgICAgICAgbmFtZTogcHJvcHMuc2VydmVybGVzc1Byb3BzLm5hbWUgPz8gYHNlcnZlcmxlc3MtJHtpZH1gLFxuICAgICAgICBwcm92aWRlclNldHRpbmdzOiBwcm9wcy5zZXJ2ZXJsZXNzUHJvcHMucHJvdmlkZXJTZXR0aW5ncyxcbiAgICAgICAgcHJvZmlsZTogcHJvcHMucHJvZmlsZSxcbiAgICAgICAgY29udGludW91c0JhY2t1cEVuYWJsZWQ6IHByb3BzLnNlcnZlcmxlc3NQcm9wcy5jb250aW51b3VzQmFja3VwRW5hYmxlZCxcbiAgICAgICAgLi4ucHJvcHMuc2VydmVybGVzc1Byb3BzLFxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5tc2VydmVybGVzcy5hZGREZXBlbmRlbmN5KHRoaXMubVByb2plY3QpO1xuICAgIC8vIENyZWF0ZSBhIG5ldyBNb25nb0RCIEF0bGFzIERhdGFiYXNlIFVzZXJcbiAgICB0aGlzLm1EQlVzZXIgPSBuZXcgYXRsYXMuQ2ZuRGF0YWJhc2VVc2VyKHRoaXMsIFwiZGItdXNlci1cIi5jb25jYXQoaWQpLCB7XG4gICAgICBwcm9maWxlOiBwcm9wcy5wcm9maWxlLFxuICAgICAgZGF0YWJhc2VOYW1lOiBwcm9wcy5kYlVzZXJQcm9wcz8uZGF0YWJhc2VOYW1lIHx8IGRiRGVmYXVsdHMuZGJOYW1lLFxuICAgICAgcHJvamVjdElkOiB0aGlzLm1Qcm9qZWN0LmF0dHJJZCxcbiAgICAgIHVzZXJuYW1lOiBwcm9wcy5kYlVzZXJQcm9wcz8udXNlcm5hbWUgfHwgZGJEZWZhdWx0cy51c2VybmFtZSxcbiAgICAgIHJvbGVzOiBwcm9wcy5kYlVzZXJQcm9wcz8ucm9sZXMgfHwgZGJEZWZhdWx0cy5yb2xlcyxcbiAgICAgIHBhc3N3b3JkOiBwcm9wcy5kYlVzZXJQcm9wcz8ucGFzc3dvcmQgfHwgZGJEZWZhdWx0cy5wYXNzd29yZCxcbiAgICAgIC4uLnByb3BzLmRiVXNlclByb3BzLFxuICAgIH0pO1xuICAgIHRoaXMubURCVXNlci5hZGREZXBlbmRlbmN5KHRoaXMubVByb2plY3QpO1xuICAgIC8vIENyZWF0ZSBhIG5ldyBNb25nb0RCIEF0bGFzIFByb2plY3QgSVAgQWNjZXNzIExpc3RcbiAgICB0aGlzLmlwQWNjZXNzTGlzdCA9IG5ldyBhdGxhcy5DZm5Qcm9qZWN0SXBBY2Nlc3NMaXN0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiaXAtYWNjZXNzLWxpc3QtXCIuY29uY2F0KGlkKSxcbiAgICAgIHtcbiAgICAgICAgcHJvZmlsZTogcHJvcHMucHJvZmlsZSxcbiAgICAgICAgcHJvamVjdElkOiB0aGlzLm1Qcm9qZWN0LmF0dHJJZCxcbiAgICAgICAgYWNjZXNzTGlzdDogcHJvcHMuaXBBY2Nlc3NMaXN0UHJvcHM/LmFjY2Vzc0xpc3QgfHwgW10sXG4gICAgICAgIC4uLnByb3BzLmlwQWNjZXNzTGlzdFByb3BzLFxuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5pcEFjY2Vzc0xpc3QuYWRkRGVwZW5kZW5jeSh0aGlzLm1Qcm9qZWN0KTtcbiAgfVxufVxuIl19