awscdk-resources-mongodbatlas
Version:
MongoDB Atlas CDK Construct Library for AWS CloudFormation Resources
1,196 lines (749 loc) • 2 MB
Markdown
# MongoDB Atlas AWS CDK Resources
[](https://github.com/mongodb/awscdk-resources-mongodbatlas/actions/workflows/code-health.yml)
[](https://github.com/mongodb/awscdk-resources-mongodbatlas/actions/workflows/package.yml)
[](https://badge.fury.io/js/awscdk-resources-mongodbatlas)
[](https://badge.fury.io/py/awscdk-resources-mongodbatlas)
[](https://badge.fury.io/nu/MongoDB.AWSCDKResourcesMongoDBAtlas)
[](https://central.sonatype.com/artifact/org.mongodb/awscdk-resources-mongodbatlas)
[](https://pkg.go.dev/github.com/mongodb/awscdk-resources-mongodbatlas-go/awscdkresourcesmongodbatlas)
[](https://constructs.dev/packages/awscdk-resources-mongodbatlas)
Use MongoDB Atlas [AWS CDK](https://aws.amazon.com/cdk/) (or Cloud Development Kit) constructs to manage [MongoDB Atlas](https://www.mongodb.com/cloud/atlas). The AWS CDK is a framework for defining infrastructure as code (IaC). It allows developers to write code in their preferred programming language, such as TypeScript for example, to define and deploy infrastructure. AWS CDK gets synthesized down into [AWS CloudFormation](https://aws.amazon.com/cloudformation/) templates at deployment so users no longer have to write or maintain YAML/JSON based CloudFormation templates.
## Available Packages
### NPM
The npm package is available at [awscdk-resources-mongodbatlas](https://www.npmjs.com/package/awscdk-resources-mongodbatlas)
```bash
npm i awscdk-resources-mongodbatlas
```
### PyPI
The PyPI package is available at [awscdk-resources-mongodbatlas](https://pypi.org/project/awscdk-resources-mongodbatlas/)
```bash
pip install awscdk-resources-mongodbatlas
```
### Nuget
The Nuget package is available at [MongoDB.AWSCDKResourcesMongoDBAtlas](https://www.nuget.org/packages/MongoDB.AWSCDKResourcesMongoDBAtlas)
```bash
dotnet add package MongoDB.AWSCDKResourcesMongoDBAtlas --version 1.0.0
```
### Maven
The Maven package is available at [awscdk-resources-mongodbatlas](https://central.sonatype.com/artifact/org.mongodb/awscdk-resources-mongodbatlas/1.0.0)
```Maven
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>awscdk-resources-mongodbatlas</artifactId>
<version>1.0.0</version>
</dependency>
```
### Go
The go package is generated into the [github.com/mongodb/awscdk-resources-mongodbatlas-go](https://github.com/mongodb/awscdk-resources-mongodbatlas-go) package.
```bash
go get github.com/mongodb/awscdk-resources-mongodbatlas-go/awscdkresourcesmongodbatlas
```
## Available Constructors
MongoDB Atlas AWS CDK Resources provides L1, L2 and L3 CDK constructors. Please, have a look at [README.md](src/README.md#cdk-constructors) for a full lists of constructors and examples.
## Getting Started
See the [cdk examples](examples/README.md) for how to setup prerequisites & get started with your first cluster, using our AWS CDK sample code. We also provide a quick guide on [How to Deploy MongoDB Atlas with AWS CDK in TypeScript](https://www.mongodb.com/developer/products/atlas/deploy-mongodb-atlas-aws-cdk-typescript/).
## Support, Bugs, Feature Requests
Feature requests can be submitted at [feedback.mongodb.com](https://feedback.mongodb.com/forums/924145-atlas/category/392596-atlas-cloudformation-resources) - just select "Atlas CloudFormation Resources" as the category or vote for an already suggested feature.
Support for the MongoDB Atlas Resource Provider for CloudFormation is provided under MongoDB Atlas support plans, starting with Developer. Please submit support questions within the Atlas UI. In addition, support questions submitted under the Issues section of this repo are also being monitored. Bugs should be filed under the Issues section of this repo.
## MongoDB Atlas API Keys Credential Management
Atlas API keys Configuration are required for both CloudFormation and CDK resources, and this Atlas API key pair are provided as input by the use of a Profile.
AWS CloudFormation limits Third Parties from using non-AWS API Keys as either hardcoded secrets in CloudFormation templates or via CDK, hence we now require all the users store MongoDB Atlas API Keys via [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/).
`NOTE: the process for configuring the PROFILE is the same and is required both for CloudFormation and CDK`
### 1. Configure your MongoDB Atlas API Keys
You'll need to generate an API key pair (public and private keys) for your Atlas organization and configure them to grant CloudFormation access to your Atlas project.
Refer to the [Atlas documentation](https://www.mongodb.com/docs/atlas/configure-api-access/#manage-programmatic-access-to-an-organization) for detailed instructions.
### 2. Configure your Profile
To use Atlas CloudFormation resources, you must configure a "profile" with your API keys using [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/).
The secret should follow this format:
```
SecretName: cfn/atlas/profile/{ProfileName}
SecretValue: {"PublicKey": "YourPublicKey", "PrivateKey": "YourPrivateKey"}
```
To create a new secret for a default profile, use the [PROFILE SECRET TEMPLATE](/examples/profile-secret.yaml) file provided in this repository.
Here are some examples of how to use this template:
#### example 1:
```
ProfileName: default
SecretName: cfn/atlas/profile/default
SecretValue: {"PublicKey": "YourPublicKey", "PrivateKey": "YourPrivateKey"}
```
#### example 2:
```
ProfileName: testProfile
SecretName: cfn/atlas/profile/testProfile
SecretValue: {"PublicKey": "YourPublicKey", "PrivateKey": "YourPrivateKey"}
```
## Contributing
See our [CONTRIBUTING.md](CONTRIBUTING.md) guide.
## Issues
### Autoclose stale issues and PRs
- After 5 days of no activity (no comments or commits on an issue/PR) we automatically tag it as "stale" and add a message: ```This issue/PR has gone 5 days without any activity and meets the project's definition of "stale". This will be auto-closed if there is no new activity over the next 5 days. If the issue is still relevant and active, you can simply comment with a "bump" to keep it open, or add the label "not_stale". Thanks for keeping our repository healthy!```
- After 5 more days of no activity we automatically close the issue/PR.
### One-click reproducible issues principle
Our support will prioritise issues that contain all the required information that follows the following principles:
* We should be able to make no changes to your provided script and **successfully run a local execution reproducing the issue**.
* This means that you should kindly **provide all the required instructions**. This includes but not limited to:
* AWS CDK package version used to reproduce the issue
* CFN resource version and AWS region used to reproduce the issue
* Issues that **cannot be properly reproduced will be de-prioritised** in favour of the ones that succeed.
* Before opening an issue, you have to try to specifically isolate it to the **CDK MongoDB Atlas constructor** by **removing as many dependencies** as possible. If the issue only happens with other dependencies, then:
* If other CDK constructors are required, please make sure you also include those. _Same "one-click reproducible issue" principle applies_.
* If external components are required to replicate it, please make sure you also provides instructions on those parts.
# API Reference <a name="API Reference" id="api-reference"></a>
## Constructs <a name="Constructs" id="Constructs"></a>
### AtlasBasic <a name="AtlasBasic" id="awscdk-resources-mongodbatlas.AtlasBasic"></a>
#### Initializers <a name="Initializers" id="awscdk-resources-mongodbatlas.AtlasBasic.Initializer"></a>
```typescript
import { AtlasBasic } from 'awscdk-resources-mongodbatlas'
new AtlasBasic(scope: Construct, id: string, props: AtlasBasicProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic.Initializer.parameter.props">props</a></code> | <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicProps">AtlasBasicProps</a></code> | *No description.* |
---
##### `scope`<sup>Required</sup> <a name="scope" id="awscdk-resources-mongodbatlas.AtlasBasic.Initializer.parameter.scope"></a>
- *Type:* constructs.Construct
---
##### `id`<sup>Required</sup> <a name="id" id="awscdk-resources-mongodbatlas.AtlasBasic.Initializer.parameter.id"></a>
- *Type:* string
---
##### `props`<sup>Required</sup> <a name="props" id="awscdk-resources-mongodbatlas.AtlasBasic.Initializer.parameter.props"></a>
- *Type:* <a href="#awscdk-resources-mongodbatlas.AtlasBasicProps">AtlasBasicProps</a>
---
#### Methods <a name="Methods" id="Methods"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic.toString">toString</a></code> | Returns a string representation of this construct. |
---
##### `toString` <a name="toString" id="awscdk-resources-mongodbatlas.AtlasBasic.toString"></a>
```typescript
public toString(): string
```
Returns a string representation of this construct.
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~ <a name="isConstruct" id="awscdk-resources-mongodbatlas.AtlasBasic.isConstruct"></a>
```typescript
import { AtlasBasic } from 'awscdk-resources-mongodbatlas'
AtlasBasic.isConstruct(x: any)
```
Checks if `x` is a construct.
###### `x`<sup>Required</sup> <a name="x" id="awscdk-resources-mongodbatlas.AtlasBasic.isConstruct.parameter.x"></a>
- *Type:* any
Any object.
---
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic.property.ipAccessList">ipAccessList</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnProjectIpAccessList">CfnProjectIpAccessList</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic.property.mCluster">mCluster</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnCluster">CfnCluster</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic.property.mDBUser">mDBUser</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnDatabaseUser">CfnDatabaseUser</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic.property.mProject">mProject</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnProject">CfnProject</a></code> | *No description.* |
---
##### `node`<sup>Required</sup> <a name="node" id="awscdk-resources-mongodbatlas.AtlasBasic.property.node"></a>
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `ipAccessList`<sup>Required</sup> <a name="ipAccessList" id="awscdk-resources-mongodbatlas.AtlasBasic.property.ipAccessList"></a>
```typescript
public readonly ipAccessList: CfnProjectIpAccessList;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnProjectIpAccessList">CfnProjectIpAccessList</a>
---
##### `mCluster`<sup>Required</sup> <a name="mCluster" id="awscdk-resources-mongodbatlas.AtlasBasic.property.mCluster"></a>
```typescript
public readonly mCluster: CfnCluster;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnCluster">CfnCluster</a>
---
##### `mDBUser`<sup>Required</sup> <a name="mDBUser" id="awscdk-resources-mongodbatlas.AtlasBasic.property.mDBUser"></a>
```typescript
public readonly mDBUser: CfnDatabaseUser;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnDatabaseUser">CfnDatabaseUser</a>
---
##### `mProject`<sup>Required</sup> <a name="mProject" id="awscdk-resources-mongodbatlas.AtlasBasic.property.mProject"></a>
```typescript
public readonly mProject: CfnProject;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnProject">CfnProject</a>
---
### AtlasBasicPrivateEndpoint <a name="AtlasBasicPrivateEndpoint" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint"></a>
#### Initializers <a name="Initializers" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.Initializer"></a>
```typescript
import { AtlasBasicPrivateEndpoint } from 'awscdk-resources-mongodbatlas'
new AtlasBasicPrivateEndpoint(scope: Construct, id: string, props: AtlasBasicPrivateEndpointProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.Initializer.parameter.props">props</a></code> | <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpointProps">AtlasBasicPrivateEndpointProps</a></code> | *No description.* |
---
##### `scope`<sup>Required</sup> <a name="scope" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.Initializer.parameter.scope"></a>
- *Type:* constructs.Construct
---
##### `id`<sup>Required</sup> <a name="id" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.Initializer.parameter.id"></a>
- *Type:* string
---
##### `props`<sup>Required</sup> <a name="props" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.Initializer.parameter.props"></a>
- *Type:* <a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpointProps">AtlasBasicPrivateEndpointProps</a>
---
#### Methods <a name="Methods" id="Methods"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.toString">toString</a></code> | Returns a string representation of this construct. |
---
##### `toString` <a name="toString" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.toString"></a>
```typescript
public toString(): string
```
Returns a string representation of this construct.
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~ <a name="isConstruct" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.isConstruct"></a>
```typescript
import { AtlasBasicPrivateEndpoint } from 'awscdk-resources-mongodbatlas'
AtlasBasicPrivateEndpoint.isConstruct(x: any)
```
Checks if `x` is a construct.
###### `x`<sup>Required</sup> <a name="x" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.isConstruct.parameter.x"></a>
- *Type:* any
Any object.
---
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.property.atlasBasic">atlasBasic</a></code> | <code><a href="#awscdk-resources-mongodbatlas.AtlasBasic">AtlasBasic</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.property.awsPrivateEndpoint">awsPrivateEndpoint</a></code> | <code>aws-cdk-lib.aws_ec2.CfnVPCEndpoint</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.property.privateEndpointAws">privateEndpointAws</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnPrivateEndpointAws">CfnPrivateEndpointAws</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.property.privateEndpointService">privateEndpointService</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnPrivateEndpointService">CfnPrivateEndpointService</a></code> | *No description.* |
---
##### `node`<sup>Required</sup> <a name="node" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.property.node"></a>
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `atlasBasic`<sup>Required</sup> <a name="atlasBasic" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.property.atlasBasic"></a>
```typescript
public readonly atlasBasic: AtlasBasic;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.AtlasBasic">AtlasBasic</a>
---
##### `awsPrivateEndpoint`<sup>Required</sup> <a name="awsPrivateEndpoint" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.property.awsPrivateEndpoint"></a>
```typescript
public readonly awsPrivateEndpoint: CfnVPCEndpoint;
```
- *Type:* aws-cdk-lib.aws_ec2.CfnVPCEndpoint
---
##### `privateEndpointAws`<sup>Required</sup> <a name="privateEndpointAws" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.property.privateEndpointAws"></a>
```typescript
public readonly privateEndpointAws: CfnPrivateEndpointAws;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnPrivateEndpointAws">CfnPrivateEndpointAws</a>
---
##### `privateEndpointService`<sup>Required</sup> <a name="privateEndpointService" id="awscdk-resources-mongodbatlas.AtlasBasicPrivateEndpoint.property.privateEndpointService"></a>
```typescript
public readonly privateEndpointService: CfnPrivateEndpointService;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnPrivateEndpointService">CfnPrivateEndpointService</a>
---
### AtlasEncryptionAtRest <a name="AtlasEncryptionAtRest" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRest"></a>
#### Initializers <a name="Initializers" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.Initializer"></a>
```typescript
import { AtlasEncryptionAtRest } from 'awscdk-resources-mongodbatlas'
new AtlasEncryptionAtRest(scope: Construct, id: string, props: AtlasEncryptionAtRestProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.Initializer.parameter.props">props</a></code> | <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestProps">AtlasEncryptionAtRestProps</a></code> | *No description.* |
---
##### `scope`<sup>Required</sup> <a name="scope" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.Initializer.parameter.scope"></a>
- *Type:* constructs.Construct
---
##### `id`<sup>Required</sup> <a name="id" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.Initializer.parameter.id"></a>
- *Type:* string
---
##### `props`<sup>Required</sup> <a name="props" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.Initializer.parameter.props"></a>
- *Type:* <a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestProps">AtlasEncryptionAtRestProps</a>
---
#### Methods <a name="Methods" id="Methods"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.toString">toString</a></code> | Returns a string representation of this construct. |
---
##### `toString` <a name="toString" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.toString"></a>
```typescript
public toString(): string
```
Returns a string representation of this construct.
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~ <a name="isConstruct" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.isConstruct"></a>
```typescript
import { AtlasEncryptionAtRest } from 'awscdk-resources-mongodbatlas'
AtlasEncryptionAtRest.isConstruct(x: any)
```
Checks if `x` is a construct.
###### `x`<sup>Required</sup> <a name="x" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.isConstruct.parameter.x"></a>
- *Type:* any
Any object.
---
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.property.cfnEncryptionAtRest">cfnEncryptionAtRest</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnEncryptionAtRest">CfnEncryptionAtRest</a></code> | *No description.* |
---
##### `node`<sup>Required</sup> <a name="node" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.property.node"></a>
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `cfnEncryptionAtRest`<sup>Required</sup> <a name="cfnEncryptionAtRest" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRest.property.cfnEncryptionAtRest"></a>
```typescript
public readonly cfnEncryptionAtRest: CfnEncryptionAtRest;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnEncryptionAtRest">CfnEncryptionAtRest</a>
---
### AtlasEncryptionAtRestExpress <a name="AtlasEncryptionAtRestExpress" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress"></a>
#### Initializers <a name="Initializers" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.Initializer"></a>
```typescript
import { AtlasEncryptionAtRestExpress } from 'awscdk-resources-mongodbatlas'
new AtlasEncryptionAtRestExpress(scope: Construct, id: string, props: AtlasEncryptionAtRestExpressProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.Initializer.parameter.props">props</a></code> | <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpressProps">AtlasEncryptionAtRestExpressProps</a></code> | *No description.* |
---
##### `scope`<sup>Required</sup> <a name="scope" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.Initializer.parameter.scope"></a>
- *Type:* constructs.Construct
---
##### `id`<sup>Required</sup> <a name="id" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.Initializer.parameter.id"></a>
- *Type:* string
---
##### `props`<sup>Required</sup> <a name="props" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.Initializer.parameter.props"></a>
- *Type:* <a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpressProps">AtlasEncryptionAtRestExpressProps</a>
---
#### Methods <a name="Methods" id="Methods"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.toString">toString</a></code> | Returns a string representation of this construct. |
---
##### `toString` <a name="toString" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.toString"></a>
```typescript
public toString(): string
```
Returns a string representation of this construct.
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~ <a name="isConstruct" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.isConstruct"></a>
```typescript
import { AtlasEncryptionAtRestExpress } from 'awscdk-resources-mongodbatlas'
AtlasEncryptionAtRestExpress.isConstruct(x: any)
```
Checks if `x` is a construct.
###### `x`<sup>Required</sup> <a name="x" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.isConstruct.parameter.x"></a>
- *Type:* any
Any object.
---
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.property.encryptionAtRest">encryptionAtRest</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnEncryptionAtRest">CfnEncryptionAtRest</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.property.accessList">accessList</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnProjectIpAccessList">CfnProjectIpAccessList</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.property.cluster">cluster</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnCluster">CfnCluster</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.property.databaseUser">databaseUser</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnDatabaseUser">CfnDatabaseUser</a></code> | *No description.* |
---
##### `node`<sup>Required</sup> <a name="node" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.property.node"></a>
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `encryptionAtRest`<sup>Required</sup> <a name="encryptionAtRest" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.property.encryptionAtRest"></a>
```typescript
public readonly encryptionAtRest: CfnEncryptionAtRest;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnEncryptionAtRest">CfnEncryptionAtRest</a>
---
##### `accessList`<sup>Optional</sup> <a name="accessList" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.property.accessList"></a>
```typescript
public readonly accessList: CfnProjectIpAccessList;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnProjectIpAccessList">CfnProjectIpAccessList</a>
---
##### `cluster`<sup>Optional</sup> <a name="cluster" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.property.cluster"></a>
```typescript
public readonly cluster: CfnCluster;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnCluster">CfnCluster</a>
---
##### `databaseUser`<sup>Optional</sup> <a name="databaseUser" id="awscdk-resources-mongodbatlas.AtlasEncryptionAtRestExpress.property.databaseUser"></a>
```typescript
public readonly databaseUser: CfnDatabaseUser;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnDatabaseUser">CfnDatabaseUser</a>
---
### AtlasServerlessBasic <a name="AtlasServerlessBasic" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic"></a>
#### Initializers <a name="Initializers" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.Initializer"></a>
```typescript
import { AtlasServerlessBasic } from 'awscdk-resources-mongodbatlas'
new AtlasServerlessBasic(scope: Construct, id: string, props: AtlasServerlessBasicProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasic.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasic.Initializer.parameter.id">id</a></code> | <code>string</code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasic.Initializer.parameter.props">props</a></code> | <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasicProps">AtlasServerlessBasicProps</a></code> | *No description.* |
---
##### `scope`<sup>Required</sup> <a name="scope" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.Initializer.parameter.scope"></a>
- *Type:* constructs.Construct
---
##### `id`<sup>Required</sup> <a name="id" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.Initializer.parameter.id"></a>
- *Type:* string
---
##### `props`<sup>Required</sup> <a name="props" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.Initializer.parameter.props"></a>
- *Type:* <a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasicProps">AtlasServerlessBasicProps</a>
---
#### Methods <a name="Methods" id="Methods"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasic.toString">toString</a></code> | Returns a string representation of this construct. |
---
##### `toString` <a name="toString" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.toString"></a>
```typescript
public toString(): string
```
Returns a string representation of this construct.
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasic.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
---
##### ~~`isConstruct`~~ <a name="isConstruct" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.isConstruct"></a>
```typescript
import { AtlasServerlessBasic } from 'awscdk-resources-mongodbatlas'
AtlasServerlessBasic.isConstruct(x: any)
```
Checks if `x` is a construct.
###### `x`<sup>Required</sup> <a name="x" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.isConstruct.parameter.x"></a>
- *Type:* any
Any object.
---
#### Properties <a name="Properties" id="Properties"></a>
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasic.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasic.property.ipAccessList">ipAccessList</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnProjectIpAccessList">CfnProjectIpAccessList</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasic.property.mDBUser">mDBUser</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnDatabaseUser">CfnDatabaseUser</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasic.property.mProject">mProject</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnProject">CfnProject</a></code> | *No description.* |
| <code><a href="#awscdk-resources-mongodbatlas.AtlasServerlessBasic.property.mserverless">mserverless</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnServerlessInstance">CfnServerlessInstance</a></code> | *No description.* |
---
##### `node`<sup>Required</sup> <a name="node" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.property.node"></a>
```typescript
public readonly node: Node;
```
- *Type:* constructs.Node
The tree node.
---
##### `ipAccessList`<sup>Required</sup> <a name="ipAccessList" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.property.ipAccessList"></a>
```typescript
public readonly ipAccessList: CfnProjectIpAccessList;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnProjectIpAccessList">CfnProjectIpAccessList</a>
---
##### `mDBUser`<sup>Required</sup> <a name="mDBUser" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.property.mDBUser"></a>
```typescript
public readonly mDBUser: CfnDatabaseUser;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnDatabaseUser">CfnDatabaseUser</a>
---
##### `mProject`<sup>Required</sup> <a name="mProject" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.property.mProject"></a>
```typescript
public readonly mProject: CfnProject;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnProject">CfnProject</a>
---
##### `mserverless`<sup>Required</sup> <a name="mserverless" id="awscdk-resources-mongodbatlas.AtlasServerlessBasic.property.mserverless"></a>
```typescript
public readonly mserverless: CfnServerlessInstance;
```
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnServerlessInstance">CfnServerlessInstance</a>
---
### CfnAccessListApiKey <a name="CfnAccessListApiKey" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey"></a>
A CloudFormation `MongoDB::Atlas::AccessListAPIKey`.
#### Initializers <a name="Initializers" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.Initializer"></a>
```typescript
import { CfnAccessListApiKey } from 'awscdk-resources-mongodbatlas'
new CfnAccessListApiKey(scope: Construct, id: string, props: CfnAccessListApiKeyProps)
```
| **Name** | **Type** | **Description** |
| --- | --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.Initializer.parameter.scope">scope</a></code> | <code>constructs.Construct</code> | - scope in which this resource is defined. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.Initializer.parameter.id">id</a></code> | <code>string</code> | - scoped id of the resource. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.Initializer.parameter.props">props</a></code> | <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKeyProps">CfnAccessListApiKeyProps</a></code> | - resource properties. |
---
##### `scope`<sup>Required</sup> <a name="scope" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.Initializer.parameter.scope"></a>
- *Type:* constructs.Construct
scope in which this resource is defined.
---
##### `id`<sup>Required</sup> <a name="id" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.Initializer.parameter.id"></a>
- *Type:* string
scoped id of the resource.
---
##### `props`<sup>Required</sup> <a name="props" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.Initializer.parameter.props"></a>
- *Type:* <a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKeyProps">CfnAccessListApiKeyProps</a>
resource properties.
---
#### Methods <a name="Methods" id="Methods"></a>
| **Name** | **Description** |
| --- | --- |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.toString">toString</a></code> | Returns a string representation of this construct. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.overrideLogicalId">overrideLogicalId</a></code> | Overrides the auto-generated logical ID with a specific ID. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.addDeletionOverride">addDeletionOverride</a></code> | Syntactic sugar for `addOverride(path, undefined)`. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.addDependency">addDependency</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.addDependsOn">addDependsOn</a></code> | Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.addMetadata">addMetadata</a></code> | Add a value to the CloudFormation Resource Metadata. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.addOverride">addOverride</a></code> | Adds an override to the synthesized CloudFormation resource. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.addPropertyDeletionOverride">addPropertyDeletionOverride</a></code> | Adds an override that deletes the value of a property from the resource definition. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.addPropertyOverride">addPropertyOverride</a></code> | Adds an override to a resource property. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.applyRemovalPolicy">applyRemovalPolicy</a></code> | Sets the deletion policy of the resource based on the removal policy specified. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.getAtt">getAtt</a></code> | Returns a token for an runtime attribute of this resource. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.getMetadata">getMetadata</a></code> | Retrieve a value value from the CloudFormation Resource Metadata. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.obtainDependencies">obtainDependencies</a></code> | Retrieves an array of resources this resource depends on. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.obtainResourceDependencies">obtainResourceDependencies</a></code> | Get a shallow copy of dependencies between this resource and other resources in the same stack. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.removeDependency">removeDependency</a></code> | Indicates that this resource no longer depends on another resource. |
| <code><a href="#awscdk-resources-mongodbatlas.CfnAccessListApiKey.replaceDependency">replaceDependency</a></code> | Replaces one dependency with another. |
---
##### `toString` <a name="toString" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.toString"></a>
```typescript
public toString(): string
```
Returns a string representation of this construct.
##### `overrideLogicalId` <a name="overrideLogicalId" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.overrideLogicalId"></a>
```typescript
public overrideLogicalId(newLogicalId: string): void
```
Overrides the auto-generated logical ID with a specific ID.
###### `newLogicalId`<sup>Required</sup> <a name="newLogicalId" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.overrideLogicalId.parameter.newLogicalId"></a>
- *Type:* string
The new logical ID to use for this stack element.
---
##### `addDeletionOverride` <a name="addDeletionOverride" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addDeletionOverride"></a>
```typescript
public addDeletionOverride(path: string): void
```
Syntactic sugar for `addOverride(path, undefined)`.
###### `path`<sup>Required</sup> <a name="path" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addDeletionOverride.parameter.path"></a>
- *Type:* string
The path of the value to delete.
---
##### `addDependency` <a name="addDependency" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addDependency"></a>
```typescript
public addDependency(target: CfnResource): void
```
Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
This can be used for resources across stacks (or nested stack) boundaries
and the dependency will automatically be transferred to the relevant scope.
###### `target`<sup>Required</sup> <a name="target" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addDependency.parameter.target"></a>
- *Type:* aws-cdk-lib.CfnResource
---
##### ~~`addDependsOn`~~ <a name="addDependsOn" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addDependsOn"></a>
```typescript
public addDependsOn(target: CfnResource): void
```
Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.
###### `target`<sup>Required</sup> <a name="target" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addDependsOn.parameter.target"></a>
- *Type:* aws-cdk-lib.CfnResource
---
##### `addMetadata` <a name="addMetadata" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addMetadata"></a>
```typescript
public addMetadata(key: string, value: any): void
```
Add a value to the CloudFormation Resource Metadata.
> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)
###### `key`<sup>Required</sup> <a name="key" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addMetadata.parameter.key"></a>
- *Type:* string
---
###### `value`<sup>Required</sup> <a name="value" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addMetadata.parameter.value"></a>
- *Type:* any
---
##### `addOverride` <a name="addOverride" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addOverride"></a>
```typescript
public addOverride(path: string, value: any): void
```
Adds an override to the synthesized CloudFormation resource.
To add a
property override, either use `addPropertyOverride` or prefix `path` with
"Properties." (i.e. `Properties.TopicName`).
If the override is nested, separate each nested level using a dot (.) in the path parameter.
If there is an array as part of the nesting, specify the index in the path.
To include a literal `.` in the property name, prefix with a `\`. In most
programming languages you will need to write this as `"\\."` because the
`\` itself will need to be escaped.
For example,
```typescript
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']);
cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE');
```
would add the overrides
```json
"Properties": {
"GlobalSecondaryIndexes": [
{
"Projection": {
"NonKeyAttributes": [ "myattribute" ]
...
}
...
},
{
"ProjectionType": "INCLUDE"
...
},
]
...
}
```
The `value` argument to `addOverride` will not be processed or translated
in any way. Pass raw JSON values in here with the correct capitalization
for CloudFormation. If you pass CDK classes or structs, they will be
rendered with lowercased key names, and CloudFormation will reject the
template.
###### `path`<sup>Required</sup> <a name="path" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addOverride.parameter.path"></a>
- *Type:* string
The path of the property, you can use dot notation to override values in complex types.
Any intermediate keys
will be created as needed.
---
###### `value`<sup>Required</sup> <a name="value" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addOverride.parameter.value"></a>
- *Type:* any
The value.
Could be primitive or complex.
---
##### `addPropertyDeletionOverride` <a name="addPropertyDeletionOverride" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addPropertyDeletionOverride"></a>
```typescript
public addPropertyDeletionOverride(propertyPath: string): void
```
Adds an override that deletes the value of a property from the resource definition.
###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addPropertyDeletionOverride.parameter.propertyPath"></a>
- *Type:* string
The path to the property.
---
##### `addPropertyOverride` <a name="addPropertyOverride" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addPropertyOverride"></a>
```typescript
public addPropertyOverride(propertyPath: string, value: any): void
```
Adds an override to a resource property.
Syntactic sugar for `addOverride("Properties.<...>", value)`.
###### `propertyPath`<sup>Required</sup> <a name="propertyPath" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addPropertyOverride.parameter.propertyPath"></a>
- *Type:* string
The path of the property.
---
###### `value`<sup>Required</sup> <a name="value" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.addPropertyOverride.parameter.value"></a>
- *Type:* any
The value.
---
##### `applyRemovalPolicy` <a name="applyRemovalPolicy" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.applyRemovalPolicy"></a>
```typescript
public applyRemovalPolicy(policy?: RemovalPolicy, options?: RemovalPolicyOptions): void
```
Sets the deletion policy of the resource based on the removal policy specified.
The Removal Policy controls what happens to this resource when it stops
being managed by CloudFormation, either because you've removed it from the
CDK application or because you've made a change that requires the resource
to be replaced.
The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS
account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some
cases, a snapshot can be taken of the resource prior to deletion
(`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy
can be found in the following link:
> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options)
###### `policy`<sup>Optional</sup> <a name="policy" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.applyRemovalPolicy.parameter.policy"></a>
- *Type:* aws-cdk-lib.RemovalPolicy
---
###### `options`<sup>Optional</sup> <a name="options" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.applyRemovalPolicy.parameter.options"></a>
- *Type:* aws-cdk-lib.RemovalPolicyOptions
---
##### `getAtt` <a name="getAtt" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.getAtt"></a>
```typescript
public getAtt(attributeName: string, typeHint?: ResolutionTypeHint): Reference
```
Returns a token for an runtime attribute of this resource.
Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility
in case there is no generated attribute.
###### `attributeName`<sup>Required</sup> <a name="attributeName" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.getAtt.parameter.attributeName"></a>
- *Type:* string
The name of the attribute.
---
###### `typeHint`<sup>Optional</sup> <a name="typeHint" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.getAtt.parameter.typeHint"></a>
- *Type:* aws-cdk-lib.ResolutionTypeHint
---
##### `getMetadata` <a name="getMetadata" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.getMetadata"></a>
```typescript
public getMetadata(key: string): any
```
Retrieve a value value from the CloudFormation Resource Metadata.
> [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html
Note that this is a different set of metadata from CDK node metadata; this
metadata ends up in the stack template under the resource, whereas CDK
node metadata ends up in the Cloud Assembly.)
###### `key`<sup>Required</sup> <a name="key" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.getMetadata.parameter.key"></a>
- *Type:* string
---
##### `obtainDependencies` <a name="obtainDependencies" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.obtainDependencies"></a>
```typescript
public obtainDependencies(): Stack | CfnResource[]
```
Retrieves an array of resources this resource depends on.
This assembles dependencies on resources across stacks (including nested stacks)
automatically.
##### `obtainResourceDependencies` <a name="obtainResourceDependencies" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.obtainResourceDependencies"></a>
```typescript
public obtainResourceDependencies(): CfnResource[]
```
Get a shallow copy of dependencies between this resource and other resources in the same stack.
##### `removeDependency` <a name="removeDependency" id="awscdk-resources-mongodbatlas.CfnAccessListApiKey.removeDependency"></a>
```typescript
public removeDependency(target: CfnResource): void
```
Indicates that this reso