awscdk-resources-mongodbatlas
Version:
MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources
90 lines • 11.9 kB
JavaScript
"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