--- AWSTemplateFormatVersion: '2010-09-09' Description: "MongoDB Atlas AWS CloudFormation Quick Start (qs-1rkorhef6)." Metadata: cfn-lint: config: ignore_checks: - W9006 # temporary to get rid of warnings QuickStartDocumentation: EntrypointName: "Parameters for deploying MongoDB Atlas without VPC peering." Order: "1" AWS::CloudFormation::Interface: ParameterGroups: - Label: default: MongoDB Atlas API key configuration Parameters: - Profile - OrgId - Label: default: MongoDB Atlas configuration Parameters: - ActivateMongoDBResources - ProjectName - ClusterMongoDBMajorVersion - ClusterName - ClusterRegion - ClusterInstanceSize - DatabaseUserName - DatabasePassword - Label: default: AWS Quick Start configuration Parameters: - QSS3BucketName - QSS3KeyPrefix - QSS3BucketRegion ParameterLabels: Profile: default: "A secret with name cfn/atlas/profile/{Profile}" OrgId: default: MongoDB Atlas API organization ID ActivateMongoDBResources: default: Activate MongoDB Atlas CloudFormation resources ProjectName: default: Name of new Atlas project ClusterMongoDBMajorVersion: default: MongoDB version ClusterName: default: Name of new cluster ClusterRegion: default: AWS Region for Atlas cluster ClusterInstanceSize: default: MongoDB Atlas instance size QSS3BucketName: default: Quick Start S3 bucket name QSS3KeyPrefix: default: Quick Start S3 key prefix QSS3BucketRegion: default: Quick Start S3 bucket Region DatabaseUserName: default: MongoDB Atlas Database User Name DatabasePassword: default: MongoDB Atlas Database User Password Parameters: Profile: Description: "A secret with name cfn/atlas/profile/{Profile}" Type: String Default: "default" OrgId: Description: "MongoDB cloud organization ID." Type: String Default: "OrgId" ProjectName: Description: "Name of the project." Type: String Default: "aws-quickstart" ClusterName: Description: Name of the cluster as it appears in Atlas. This name cannot be changed after the cluster is created. Type: String Default: "Cluster-1" ClusterInstanceSize: Default: "M10" Description: "Atlas provides different cluster tiers, each with a default storage capacity and RAM size. The cluster you choose is used for all data-bearing hosts in your cluster tier (see https://docs.atlas.mongodb.com/reference/amazon-aws/#amazon-aws)." Type: String AllowedValues: - "M10" - "M20" - "M30" - "M40" - "R40" - "M40_NVME" - "M50" - "R50" - "M50_NVME" - "M60" - "R60" - "M60_NVME" - "M80" - "R80" - "M80_NVME" - "M140" - "M200" - "R200" - "M200_NVME" - "M300" - "R300" - "R400" - "M400_NVME" - "R700" ClusterRegion: Default: "US_EAST_1" Description: AWS Region where the Atlas database runs. Type: String AllowedValues: - "US_EAST_1" - "US_EAST_2" - "CA_CENTRAL_1" - "US_WEST_1" - "US_WEST_2" - "SA_EAST_1" - "AP_SOUTH_1" - "AP_EAST_1" - "AP_SOUTHEAST_1" - "AP_SOUTHEAST_2" - "AP_SOUTHEAST_3" - "AP_NORTHEAST_1" - "AP_NORTHEAST_2" - "AP_NORTHEAST_3" - "EU_CENTRAL_1" - "EU_WEST_1" - "EU_NORTH_1" - "EU_WEST_2" - "EU_WEST_3" - "EU_SOUTH_1" - "ME_SOUTH_1" - "AF_SOUTH_1" ClusterMongoDBMajorVersion: Description: MongoDB version. Type: String Default: "5.0" AllowedValues: - "4.4" - "5.0" - "6.0" ActivateMongoDBResources: Description: 'Choose "Yes" to activate MongoDB Atlas CloudFormation resource types. If you already activated resources in your AWS Region, enter "No."' Type: String Default: "Yes" AllowedValues: - "No" - "Yes" QSS3BucketName: AllowedPattern: ^[0-9a-zA-Z]+([0-9a-zA-Z-]*[0-9a-zA-Z])*$ ConstraintDescription: Quick Start bucket name can include numbers, lowercase letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen (-). Default: aws-quickstart Description: S3 bucket name for the Quick Start assets. This string can include numbers, lowercase letters, uppercase letters, and hyphens (-). It cannot start or end with a hyphen (-). Type: String QSS3KeyPrefix: AllowedPattern: ^[0-9a-zA-Z-/.]*$ ConstraintDescription: Quick Start key prefix can include numbers, lowercase letters, uppercase letters, hyphens (-), and forward slashes (/). Default: quickstart-mongodb-atlas/ Description: S3 key prefix for the Quick Start assets. Quick Start key prefix can include numbers, lowercase letters, uppercase letters, hyphens (-), and forward slashes (/). Type: String QSS3BucketRegion: Default: 'us-east-1' Description: AWS Region where the Quick Start S3 bucket (QSS3BucketName) is hosted. If you use your own bucket, you must specify this value. Type: String DatabaseUserName: Description: MongoDB Atlas Database User Name. Type: String Default: "testUser" DatabasePassword: Description: MongoDB Atlas Database User Password. Type: String NoEcho: true Conditions: UsingDefaultBucket: !Equals [!Ref QSS3BucketName, 'aws-quickstart'] ActivateResources: !Equals [!Ref ActivateMongoDBResources, 'Yes'] Resources: ActivateAtlasResources: Condition: ActivateResources Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub - 'https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/activate-mongodb-atlas-resources.template.yaml' - S3Region: !If [UsingDefaultBucket, !Ref 'AWS::Region', !Ref QSS3BucketRegion] S3Bucket: !If [UsingDefaultBucket, !Sub '${QSS3BucketName}-${AWS::Region}', !Ref QSS3BucketName] Parameters: Region: !Ref QSS3BucketRegion Atlas: Type: AWS::CloudFormation::Stack Metadata: PseudoDependsOn: !If - ActivateResources - - !Ref ActivateAtlasResources - '' Properties: TemplateURL: !Sub - 'https://${S3Bucket}.s3.${S3Region}.${AWS::URLSuffix}/${QSS3KeyPrefix}templates/mongodb-atlas.template.yaml' - S3Region: !If [UsingDefaultBucket, !Ref 'AWS::Region', !Ref QSS3BucketRegion] S3Bucket: !If [UsingDefaultBucket, !Sub '${QSS3BucketName}-${AWS::Region}', !Ref QSS3BucketName] Parameters: ClusterInstanceSize: !Ref ClusterInstanceSize ClusterMongoDBMajorVersion: !Ref ClusterMongoDBMajorVersion ProjectName: !Ref ProjectName ClusterName: !Ref ClusterName ClusterRegion: !Ref ClusterRegion OrgId: !Ref OrgId Profile: !Ref Profile DatabaseUserName: !Ref DatabaseUserName DatabasePassword: !Ref DatabasePassword Outputs: AtlasIAMRole: Description: "ARN for AWS IAM role database cluster access." Value: !GetAtt "Atlas.Outputs.AtlasIAMRole" AtlasDatabaseUser: Description: "Atlas database user, configured for AWS IAM role access." Value: !GetAtt "Atlas.Outputs.AtlasDatabaseUser" AtlasProject: Description: "Information about your Atlas deployment." Value: !GetAtt "Atlas.Outputs.AtlasProject" AtlasProjectIPAccessList: Description: "Atlas project IP access list." Value: !GetAtt "Atlas.Outputs.AtlasProjectIPAccessList" AtlasCluster: Description: "Information about your Atlas cluster." Value: !GetAtt "Atlas.Outputs.AtlasCluster" ClusterState: Description: "State of your MongoDB cluster." Value: !GetAtt "Atlas.Outputs.ClusterState" ClusterSrvAddress: Description: "Hostname for the mongodb+srv:// connection string." Value: !GetAtt "Atlas.Outputs.ClusterSrvAddress"