{"name":"mongodbatlas","version":"4.5.0","description":"A Pulumi package for creating and managing mongodbatlas cloud resources.","keywords":["pulumi","mongodbatlas"],"homepage":"https://pulumi.io","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`mongodbatlas` Terraform Provider](https://github.com/mongodb/terraform-provider-mongodbatlas).","repository":"https://github.com/pulumi/pulumi-mongodbatlas","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"compatibility":"tfbridge20","respectSchemaVersion":true},"go":{"importBasePath":"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas","generateResourceContainerTypes":true,"generateExtraInputTypes":true,"respectSchemaVersion":true},"nodejs":{"packageDescription":"A Pulumi package for creating and managing mongodbatlas cloud resources.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/mongodb/terraform-provider-mongodbatlas)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-mongodbatlas` repo](https://github.com/pulumi/pulumi-mongodbatlas/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-mongodbatlas` repo](https://github.com/mongodb/terraform-provider-mongodbatlas/issues).","devDependencies":{"@types/mime":"^2.0.0","@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true,"respectSchemaVersion":true},"python":{"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/mongodb/terraform-provider-mongodbatlas)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-mongodbatlas` repo](https://github.com/pulumi/pulumi-mongodbatlas/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-mongodbatlas` repo](https://github.com/mongodb/terraform-provider-mongodbatlas/issues).","compatibility":"tfbridge20","respectSchemaVersion":true,"pyproject":{"enabled":true}}},"config":{"variables":{"accessToken":{"type":"string","description":"MongoDB Atlas Access Token for Service Account."},"assumeRole":{"$ref":"#/types/mongodbatlas:config/assumeRole:assumeRole"},"awsAccessKeyId":{"type":"string","description":"AWS API Access Key."},"awsSecretAccessKey":{"type":"string","description":"AWS API Access Secret Key."},"awsSessionToken":{"type":"string","description":"AWS Security Token Service provided session token."},"baseUrl":{"type":"string","description":"MongoDB Atlas Base URL"},"clientId":{"type":"string","description":"MongoDB Atlas Client ID for Service Account."},"clientSecret":{"type":"string","description":"MongoDB Atlas Client Secret for Service Account."},"isMongodbgovCloud":{"type":"boolean","description":"MongoDB Atlas Base URL default to gov"},"privateKey":{"type":"string","description":"MongoDB Atlas Programmatic Private Key","secret":true},"publicKey":{"type":"string","description":"MongoDB Atlas Programmatic Public Key"},"realmBaseUrl":{"type":"string","description":"MongoDB Realm Base URL"},"region":{"type":"string","description":"Region where secret is stored as part of AWS Secret Manager."},"secretName":{"type":"string","description":"Name of secret stored in AWS Secret Manager."},"stsEndpoint":{"type":"string","description":"AWS Security Token Service endpoint. Required for cross-AWS region or cross-AWS account secrets."}}},"types":{"mongodbatlas:config/assumeRole:assumeRole":{"properties":{"roleArn":{"type":"string","description":"Amazon Resource Name (ARN) of an IAM Role to assume prior to making API calls.\n"}},"type":"object"},"mongodbatlas:index/AdvancedClusterAdvancedConfiguration:AdvancedClusterAdvancedConfiguration":{"properties":{"changeStreamOptionsPreAndPostImagesExpireAfterSeconds":{"type":"integer","description":"The minimum pre- and post-image retention time in seconds.\n"},"customOpensslCipherConfigTls12s":{"type":"array","items":{"type":"string"},"description":"The custom OpenSSL cipher suite list for TLS 1.2. This field is only valid when \u003cspan pulumi-lang-nodejs=\"`tlsCipherConfigMode`\" pulumi-lang-dotnet=\"`TlsCipherConfigMode`\" pulumi-lang-go=\"`tlsCipherConfigMode`\" pulumi-lang-python=\"`tls_cipher_config_mode`\" pulumi-lang-yaml=\"`tlsCipherConfigMode`\" pulumi-lang-java=\"`tlsCipherConfigMode`\"\u003e`tls_cipher_config_mode`\u003c/span\u003e is set to `CUSTOM`.\n"},"customOpensslCipherConfigTls13s":{"type":"array","items":{"type":"string"},"description":"The custom OpenSSL cipher suite list for TLS 1.3. This field is only valid when \u003cspan pulumi-lang-nodejs=\"`tlsCipherConfigMode`\" pulumi-lang-dotnet=\"`TlsCipherConfigMode`\" pulumi-lang-go=\"`tlsCipherConfigMode`\" pulumi-lang-python=\"`tls_cipher_config_mode`\" pulumi-lang-yaml=\"`tlsCipherConfigMode`\" pulumi-lang-java=\"`tlsCipherConfigMode`\"\u003e`tls_cipher_config_mode`\u003c/span\u003e is set to `CUSTOM`.\n"},"defaultMaxTimeMs":{"type":"integer","description":"Default time limit in milliseconds for individual read operations to complete. This parameter is supported only for MongoDB version 8.0 and above.\n"},"defaultWriteConcern":{"type":"string","description":"Default level of acknowledgment requested from MongoDB for write operations when none is specified by the driver.\n"},"javascriptEnabled":{"type":"boolean","description":"Flag that indicates whether the cluster allows execution of operations that perform server-side executions of JavaScript. When using 8.0+, we recommend disabling server-side JavaScript and using operators of aggregation pipeline as more performant alternative.\n"},"minimumEnabledTlsProtocol":{"type":"string","description":"Minimum Transport Layer Security (TLS) version that the cluster accepts for incoming connections. Clusters using TLS 1.0 or 1.1 should consider setting TLS 1.2 as the minimum TLS protocol version.\n"},"noTableScan":{"type":"boolean","description":"Flag that indicates whether the cluster disables executing any query that requires a collection scan to return results.\n"},"oplogMinRetentionHours":{"type":"number","description":"Minimum retention window for cluster's oplog expressed in hours. A value of null indicates that the cluster uses the default minimum oplog window that MongoDB Cloud calculates.\n"},"oplogSizeMb":{"type":"integer","description":"Storage limit of cluster's oplog expressed in megabytes. A value of null indicates that the cluster uses the default oplog size that MongoDB Cloud calculates.\n"},"sampleRefreshIntervalBiConnector":{"type":"integer","description":"Interval in seconds at which the mongosqld process re-samples data to create its relational schema.\n"},"sampleSizeBiConnector":{"type":"integer","description":"Number of documents per database to sample when gathering schema information.\n"},"tlsCipherConfigMode":{"type":"string","description":"The TLS cipher suite configuration mode. Valid values include `CUSTOM` or `DEFAULT`. The `DEFAULT` mode uses the default cipher suites. The `CUSTOM` mode allows you to specify custom cipher suites for both TLS 1.2 and TLS 1.3. To unset, this should be set back to `DEFAULT`.\n"},"transactionLifetimeLimitSeconds":{"type":"integer","description":"Lifetime, in seconds, of multi-document transactions. Atlas considers the transactions that exceed this limit as expired and so aborts them through a periodic cleanup process.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["changeStreamOptionsPreAndPostImagesExpireAfterSeconds","customOpensslCipherConfigTls12s","customOpensslCipherConfigTls13s","defaultMaxTimeMs","defaultWriteConcern","javascriptEnabled","minimumEnabledTlsProtocol","noTableScan","oplogMinRetentionHours","oplogSizeMb","sampleRefreshIntervalBiConnector","sampleSizeBiConnector","tlsCipherConfigMode","transactionLifetimeLimitSeconds"]}}},"mongodbatlas:index/AdvancedClusterBiConnectorConfig:AdvancedClusterBiConnectorConfig":{"properties":{"enabled":{"type":"boolean","description":"Specifies whether or not BI Connector for Atlas is enabled on the cluster.\n*\n- Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable BI Connector for Atlas.\n- Set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to disable BI Connector for Atlas.\n"},"readPreference":{"type":"string","description":"Specifies the read preference to be used by BI Connector for Atlas on the cluster. Each BI Connector for Atlas read preference contains a distinct combination of [readPreference](https://docs.mongodb.com/manual/core/read-preference/) and [readPreferenceTags](https://docs.mongodb.com/manual/core/read-preference/#tag-sets) options. For details on BI Connector for Atlas read preferences, refer to the [BI Connector Read Preferences Table](https://docs.atlas.mongodb.com/tutorial/create-global-writes-cluster/#bic-read-preferences).\n\n- Set to \"primary\" to have BI Connector for Atlas read from the primary.\n\n- Set to \"secondary\" to have BI Connector for Atlas read from a secondary member. Default if there are no analytics nodes in the cluster.\n\n- Set to \"analytics\" to have BI Connector for Atlas read from an analytics node. Default if the cluster contains analytics nodes.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","readPreference"]}}},"mongodbatlas:index/AdvancedClusterConnectionStrings:AdvancedClusterConnectionStrings":{"properties":{"private":{"type":"string","description":"[Network-peering-endpoint-aware](https://docs.atlas.mongodb.com/security-vpc-peering/#vpc-peering) mongodb://connection strings for each interface VPC endpoint you configured to connect to this cluster. Returned only if you created a network peering connection to this cluster.\n"},"privateEndpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterConnectionStringsPrivateEndpoint:AdvancedClusterConnectionStringsPrivateEndpoint"},"description":"Private endpoint connection strings. Each object describes the connection strings you can use to connect to this cluster through a private endpoint. Atlas returns this parameter only if you deployed a private endpoint to all regions to which you deployed this cluster's nodes.\n- `connection_strings.private_endpoint[#].connection_string` - Private-endpoint-aware `mongodb://`connection string for this private endpoint.\n- `connection_strings.private_endpoint[#].srv_connection_string` - Private-endpoint-aware `mongodb+srv://` connection string for this private endpoint. The `mongodb+srv` protocol tells the driver to look up the seed list of hosts in DNS . Atlas synchronizes this list with the nodes in a cluster. If the connection string uses this URI format, you don't need to: Append the seed list or Change the URI if the nodes change. Use this URI format if your driver supports it. If it doesn't, use `connection_strings.private_endpoint[#].connection_string`\n- `connection_strings.private_endpoint[#].srv_shard_optimized_connection_string` - Private endpoint-aware connection string optimized for sharded clusters that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application and Atlas cluster support it. If it doesn't, use and consult the documentation for `connection_strings.private_endpoint[#].srv_connection_string`.\n- `connection_strings.private_endpoint[#].type` - Type of MongoDB process that you connect to with the connection strings. Atlas returns `MONGOD` for replica sets, or `MONGOS` for sharded clusters.\n- `connection_strings.private_endpoint[#].endpoints` - Private endpoint through which you connect to Atlas when you use `connection_strings.private_endpoint[#].connection_string` or `connection_strings.private_endpoint[#].srv_connection_string`\n- `connection_strings.private_endpoint[#].endpoints[#].endpoint_id` - Unique identifier of the private endpoint.\n- `connection_strings.private_endpoint[#].endpoints[#].provider_name` - Cloud provider to which you deployed the private endpoint. Atlas returns `AWS` or `AZURE`.\n- `connection_strings.private_endpoint[#].endpoints[#].region` - Region to which you deployed the private endpoint.\n"},"privateSrv":{"type":"string","description":"[Network-peering-endpoint-aware](https://docs.atlas.mongodb.com/security-vpc-peering/#vpc-peering) mongodb+srv://connection strings for each interface VPC endpoint you configured to connect to this cluster. Returned only if you created a network peering connection to this cluster.\n"},"standard":{"type":"string","description":"Public mongodb:// connection string for this cluster.\n"},"standardSrv":{"type":"string","description":"Public mongodb+srv:// connection string for this cluster. The mongodb+srv protocol tells the driver to look up the seed list of hosts in DNS. Atlas synchronizes this list with the nodes in a cluster. If the connection string uses this URI format, you don’t need to append the seed list or change the URI if the nodes change. Use this URI format if your driver supports it. If it doesn’t  , use connectionStrings.standard.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["private","privateEndpoints","privateSrv","standard","standardSrv"]}}},"mongodbatlas:index/AdvancedClusterConnectionStringsPrivateEndpoint:AdvancedClusterConnectionStringsPrivateEndpoint":{"properties":{"connectionString":{"type":"string","description":"Private endpoint-aware connection string that uses the `mongodb://` protocol to connect to MongoDB Cloud through a private endpoint.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterConnectionStringsPrivateEndpointEndpoint:AdvancedClusterConnectionStringsPrivateEndpointEndpoint"},"description":"List that contains the private endpoints through which you connect to MongoDB Cloud when you use **connectionStrings.privateEndpoint[n].connectionString** or **connectionStrings.privateEndpoint[n].srvConnectionString**.\n"},"srvConnectionString":{"type":"string","description":"Private endpoint-aware connection string that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint. The `mongodb+srv` protocol tells the driver to look up the seed list of hosts in the Domain Name System (DNS). This list synchronizes with the nodes in a cluster. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to append the seed list or change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application supports it. If it doesn't, use connectionStrings.privateEndpoint[n].connectionString.\n"},"srvShardOptimizedConnectionString":{"type":"string","description":"Private endpoint-aware connection string optimized for sharded clusters that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application and Atlas cluster supports it. If it doesn't, use and consult the documentation for connectionStrings.privateEndpoint[n].srvConnectionString.\n"},"type":{"type":"string","description":"MongoDB process type to which your application connects. Use `MONGOD` for replica sets and `MONGOS` for sharded clusters.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectionString","endpoints","srvConnectionString","srvShardOptimizedConnectionString","type"]}}},"mongodbatlas:index/AdvancedClusterConnectionStringsPrivateEndpointEndpoint:AdvancedClusterConnectionStringsPrivateEndpointEndpoint":{"properties":{"endpointId":{"type":"string","description":"Unique string that the cloud provider uses to identify the private endpoint.\n"},"providerName":{"type":"string","description":"Cloud provider in which MongoDB Cloud deploys the private endpoint.\n"},"region":{"type":"string","description":"Region where the private endpoint is deployed.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpointId","providerName","region"]}}},"mongodbatlas:index/AdvancedClusterPinnedFcv:AdvancedClusterPinnedFcv":{"properties":{"expirationDate":{"type":"string","description":"Expiration date of the fixed FCV. This value is in the ISO 8601 timestamp format (e.g. \"2024-12-04T16:25:00Z\"). Note that this field cannot exceed 4 weeks from the pinned date.\n"},"version":{"type":"string","description":"Feature compatibility version of the cluster.\n"}},"type":"object","required":["expirationDate"],"language":{"nodejs":{"requiredOutputs":["expirationDate","version"]}}},"mongodbatlas:index/AdvancedClusterReplicationSpec:AdvancedClusterReplicationSpec":{"properties":{"containerId":{"type":"object","additionalProperties":{"type":"string"},"description":"A key-value map of the Network Peering Container ID(s) for the configuration specified in region_configs. The Container ID is the id of the container created when the first cluster in the region (AWS/Azure) or project (GCP) was created.\n"},"externalId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the replication object for a shard in a Cluster. This value corresponds to Shard ID displayed in the UI.\n"},"regionConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfig:AdvancedClusterReplicationSpecRegionConfig"},"description":"Configuration for the hardware specifications for nodes set for a given region. Each \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e object describes the region's priority in elections and the number and type of MongoDB nodes that Atlas deploys to the region. Each \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e object must have either an \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e object, \u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e object, or \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e object. See below.\n"},"zoneId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the zone in a Global Cluster. If clusterType is GEOSHARDED, this value indicates the zone that the given shard belongs to and can be used to configure Global Cluster backup policies.\n"},"zoneName":{"type":"string","description":"Name for the zone in a Global Cluster.\n"}},"type":"object","required":["regionConfigs"],"language":{"nodejs":{"requiredOutputs":["containerId","externalId","regionConfigs","zoneId","zoneName"]}}},"mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfig:AdvancedClusterReplicationSpecRegionConfig":{"properties":{"analyticsAutoScaling":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfigAnalyticsAutoScaling:AdvancedClusterReplicationSpecRegionConfigAnalyticsAutoScaling","description":"Configuration for the Collection of settings that configures analytics-auto-scaling information for the cluster. The values for the \u003cspan pulumi-lang-nodejs=\"`analyticsAutoScaling`\" pulumi-lang-dotnet=\"`AnalyticsAutoScaling`\" pulumi-lang-go=\"`analyticsAutoScaling`\" pulumi-lang-python=\"`analytics_auto_scaling`\" pulumi-lang-yaml=\"`analyticsAutoScaling`\" pulumi-lang-java=\"`analyticsAutoScaling`\"\u003e`analytics_auto_scaling`\u003c/span\u003e attribute must be the same for all \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e of a cluster. See below.\n"},"analyticsSpecs":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfigAnalyticsSpecs:AdvancedClusterReplicationSpecRegionConfigAnalyticsSpecs","description":"Hardware specifications for [analytics nodes](https://docs.atlas.mongodb.com/reference/faq/deployment/#std-label-analytics-nodes-overview) needed in the region. Analytics nodes handle analytic data such as reporting queries from BI Connector for Atlas. Analytics nodes are read-only and can never become the [primary](https://docs.atlas.mongodb.com/reference/glossary/#std-term-primary). If you don't specify this parameter, no analytics nodes deploy to this region. See below.\n"},"autoScaling":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfigAutoScaling:AdvancedClusterReplicationSpecRegionConfigAutoScaling","description":"Configuration for the collection of settings that configures auto-scaling information for the cluster. The values for the \u003cspan pulumi-lang-nodejs=\"`autoScaling`\" pulumi-lang-dotnet=\"`AutoScaling`\" pulumi-lang-go=\"`autoScaling`\" pulumi-lang-python=\"`auto_scaling`\" pulumi-lang-yaml=\"`autoScaling`\" pulumi-lang-java=\"`autoScaling`\"\u003e`auto_scaling`\u003c/span\u003e attribute must be the same for all \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e of a cluster. See below.\n"},"backingProviderName":{"type":"string","description":"Cloud service provider on which you provision the host for a multi-tenant cluster. Use this only when the \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e is `TENANT` and \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e is `M0`, or when the \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e is `FLEX`.\n"},"electableSpecs":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfigElectableSpecs:AdvancedClusterReplicationSpecRegionConfigElectableSpecs","description":"Hardware specifications for electable nodes in the region. All \u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e of a \u003cspan pulumi-lang-nodejs=\"`replicationSpecs`\" pulumi-lang-dotnet=\"`ReplicationSpecs`\" pulumi-lang-go=\"`replicationSpecs`\" pulumi-lang-python=\"`replication_specs`\" pulumi-lang-yaml=\"`replicationSpecs`\" pulumi-lang-java=\"`replicationSpecs`\"\u003e`replication_specs`\u003c/span\u003e must have the same \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e. Electable nodes can become the [primary](https://docs.atlas.mongodb.com/reference/glossary/#std-term-primary) and can enable local reads. If you do not specify this option, no electable nodes are deployed to the region. See below.\n"},"priority":{"type":"integer","description":"Election priority of the region. For regions with only read-only nodes, set this value to 0.\n* If you have multiple \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e objects (your cluster is multi-region or multi-cloud), they must have priorities in descending order. The highest priority is 7.\n* If your region has set `region_configs[#].electable_specs.node_count` to 1 or higher, it must have a priority of exactly one (1) less than another region in the `replication_specs[#].region_configs[#]` array. The highest-priority region must have a priority of 7. The lowest possible priority is 1.\n"},"providerName":{"type":"string","description":"Cloud service provider on which the servers are provisioned.\nThe possible values are:\n- `AWS` - Amazon AWS\n- `GCP` - Google Cloud Platform\n- `AZURE` - Microsoft Azure\n- `TENANT` - M0 multi-tenant cluster. Use `replication_specs.[0].region_configs[0].backing_provider_name` to set the cloud service provider.\n- `FLEX` - Flex cluster. Use `replication_specs.[0].region_configs[0].backing_provider_name` to set the cloud service provider.\n"},"readOnlySpecs":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfigReadOnlySpecs:AdvancedClusterReplicationSpecRegionConfigReadOnlySpecs","description":"Hardware specifications for read-only nodes in the region. All \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e in the \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e of a \u003cspan pulumi-lang-nodejs=\"`replicationSpecs`\" pulumi-lang-dotnet=\"`ReplicationSpecs`\" pulumi-lang-go=\"`replicationSpecs`\" pulumi-lang-python=\"`replication_specs`\" pulumi-lang-yaml=\"`replicationSpecs`\" pulumi-lang-java=\"`replicationSpecs`\"\u003e`replication_specs`\u003c/span\u003e must have the same \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e as \u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e. Read-only nodes can become the [primary](https://docs.atlas.mongodb.com/reference/glossary/#std-term-primary) and can enable local reads. If you don't specify this parameter, no read-only nodes are deployed to the region. See below.\n"},"regionName":{"type":"string","description":"Physical location of your MongoDB cluster. The region you choose can affect network latency for clients accessing your databases.  Requires the **Atlas region name**, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n"}},"type":"object","required":["priority","providerName","regionName"],"language":{"nodejs":{"requiredOutputs":["analyticsAutoScaling","analyticsSpecs","autoScaling","electableSpecs","priority","providerName","readOnlySpecs","regionName"]}}},"mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfigAnalyticsAutoScaling:AdvancedClusterReplicationSpecRegionConfigAnalyticsAutoScaling":{"properties":{"computeEnabled":{"type":"boolean","description":"Flag that indicates whether analytics instance size auto-scaling is enabled. This parameter defaults to false. If a sharded cluster is making use of the New Sharding Configuration, auto-scaling of analytics instance size will be independent for each individual shard. Please reference the Use Auto-Scaling Per Shard section for more details.\n"},"computeMaxInstanceSize":{"type":"string","description":"Maximum instance size to which your cluster can automatically scale (such as M40). Atlas requires this parameter if `replication_specs[#].region_configs[#].analytics_auto_scaling.compute_enabled` is true.\n\n**Note:** The configuration options and considerations for analytics auto-scaling are similar to those described in auto_scaling. When using \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields \" pulumi-lang-dotnet=\"`UseEffectiveFields \" pulumi-lang-go=\"`useEffectiveFields \" pulumi-lang-python=\"`use_effective_fields \" pulumi-lang-yaml=\"`useEffectiveFields \" pulumi-lang-java=\"`useEffectiveFields \"\u003e`use_effective_fields \u003c/span\u003e= true`, you can read scaled values using \u003cspan pulumi-lang-nodejs=\"`effectiveAnalyticsSpecs`\" pulumi-lang-dotnet=\"`EffectiveAnalyticsSpecs`\" pulumi-lang-go=\"`effectiveAnalyticsSpecs`\" pulumi-lang-python=\"`effective_analytics_specs`\" pulumi-lang-yaml=\"`effectiveAnalyticsSpecs`\" pulumi-lang-java=\"`effectiveAnalyticsSpecs`\"\u003e`effective_analytics_specs`\u003c/span\u003e in the data source. When not using \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e, you may need lifecycle ignore customizations for \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e fields similar to the example shown in the\u003cspan pulumi-lang-nodejs=\" autoScaling \" pulumi-lang-dotnet=\" AutoScaling \" pulumi-lang-go=\" autoScaling \" pulumi-lang-python=\" auto_scaling \" pulumi-lang-yaml=\" autoScaling \" pulumi-lang-java=\" autoScaling \"\u003e auto_scaling \u003c/span\u003esection.\n"},"computeMinInstanceSize":{"type":"string","description":"Minimum instance size to which your cluster can automatically scale (such as M10). Atlas requires this parameter if `replication_specs[#].region_configs[#].analytics_auto_scaling.compute_scale_down_enabled` is true.\n"},"computeScaleDownEnabled":{"type":"boolean","description":"Flag that indicates whether the instance size may scale down. Atlas requires this parameter if `replication_specs[#].region_configs[#].analytics_auto_scaling.compute_enabled` : true. If you enable this option, specify a value for `replication_specs[#].region_configs[#].analytics_auto_scaling.compute_min_instance_size`.\n"},"diskGbEnabled":{"type":"boolean","description":"Flag that indicates whether this cluster enables disk auto-scaling. This parameter defaults to false.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["computeEnabled","computeMaxInstanceSize","computeMinInstanceSize","computeScaleDownEnabled","diskGbEnabled"]}}},"mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfigAnalyticsSpecs:AdvancedClusterReplicationSpecRegionConfigAnalyticsSpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. Define this attribute only if you selected AWS as your cloud service provider, \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e is set to \"M30\" or greater (not including \"Mxx_NVME\" tiers), and \u003cspan pulumi-lang-nodejs=\"`ebsVolumeType`\" pulumi-lang-dotnet=\"`EbsVolumeType`\" pulumi-lang-go=\"`ebsVolumeType`\" pulumi-lang-python=\"`ebs_volume_type`\" pulumi-lang-yaml=\"`ebsVolumeType`\" pulumi-lang-java=\"`ebsVolumeType`\"\u003e`ebs_volume_type`\u003c/span\u003e is \"PROVISIONED\". You can't set this attribute for a multi-cloud cluster.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. This value must be equal for all shards and node types. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier. **Note:** Using \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e with Standard IOPS could lead to errors and configuration issues. Therefore, it should be used only with the Provisioned IOPS volume type. When using Provisioned IOPS, the\u003cspan pulumi-lang-nodejs=\" diskSizeGb \" pulumi-lang-dotnet=\" DiskSizeGb \" pulumi-lang-go=\" diskSizeGb \" pulumi-lang-python=\" disk_size_gb \" pulumi-lang-yaml=\" diskSizeGb \" pulumi-lang-java=\" diskSizeGb \"\u003e disk_size_gb \u003c/span\u003eparameter specifies the storage capacity, but the IOPS are set independently. Ensuring that \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e is used exclusively with Provisioned IOPS will help avoid these issues.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster. Set only if you selected AWS as your cloud service provider. You can't set this parameter for a multi-cloud cluster. Valid values are:\n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region. Each instance size has a default storage and memory capacity. The instance size you select applies to all the data-bearing hosts in your instance size. Electable nodes and read-only nodes (known as \"base nodes\") within a single shard must use the same instance size. Analytics nodes can scale independently from base nodes within a shard. Both base nodes and analytics nodes can scale independently from their equivalents in other shards.\n\n\u003e **NOTE:** Cluster tier names in the \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e attribute are prepended with `R` instead of `M` if they run a low-CPU version of the cluster, for example `R40`. For a complete list of Low-CPU instance clusters see Cluster Configuration Options under each [Cloud Provider](https://www.mongodb.com/docs/atlas/reference/cloud-providers).\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"]}}},"mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfigAutoScaling:AdvancedClusterReplicationSpecRegionConfigAutoScaling":{"properties":{"computeEnabled":{"type":"boolean","description":"Flag that indicates whether instance size auto-scaling is enabled. This parameter defaults to false. If a sharded cluster is making use of the New Sharding Configuration, auto-scaling of the instance size will be independent for each individual shard. Please reference the Use Auto-Scaling Per Shard section for more details.\n"},"computeMaxInstanceSize":{"type":"string","description":"Maximum instance size to which your cluster can automatically scale (such as M40). Atlas requires this parameter if `replication_specs[#].region_configs[#].auto_scaling.compute_enabled` is true.\n\n\u003e **NOTE:** MongoDB recommends enabling both [cluster tier (compute) and storage auto-scaling](https://www.mongodb.com/docs/atlas/cluster-autoscaling/#cluster-tier-and-cluster-storage-might-scale-in-parallel) together for optimal performance and cost efficiency. When only one type of auto-scaling is enabled, Atlas may still adjust both compute and storage resources to maintain optimal cluster performance. See the [Atlas Auto-Scaling documentation](https://www.mongodb.com/docs/atlas/cluster-autoscaling/) and [Scalability Best Practices](https://www.mongodb.com/docs/atlas/architecture/current/scalability/#all-deployment-paradigm-recommendations) for more information.\n\nWhen auto-scaling is enabled, there are two approaches to manage your cluster configuration with Terraform:\n\n**Option 1 (Recommended):** Use \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields \" pulumi-lang-dotnet=\"`UseEffectiveFields \" pulumi-lang-go=\"`useEffectiveFields \" pulumi-lang-python=\"`use_effective_fields \" pulumi-lang-yaml=\"`useEffectiveFields \" pulumi-lang-java=\"`useEffectiveFields \"\u003e`use_effective_fields \u003c/span\u003e= true` to enable the new effective fields behavior. With this option, Atlas-managed auto-scaling changes won't cause plan drift, eliminating the need for \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e ignore customizations. When either compute or disk auto-scaling is enabled (or both), all three fields (\u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e) are ignored in the Terraform configuration, as Atlas may adjust any of these resources to maintain optimal cluster performance. You can read the actual scaled values using the \u003cspan pulumi-lang-nodejs=\"`effectiveElectableSpecs`\" pulumi-lang-dotnet=\"`EffectiveElectableSpecs`\" pulumi-lang-go=\"`effectiveElectableSpecs`\" pulumi-lang-python=\"`effective_electable_specs`\" pulumi-lang-yaml=\"`effectiveElectableSpecs`\" pulumi-lang-java=\"`effectiveElectableSpecs`\"\u003e`effective_electable_specs`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`effectiveReadOnlySpecs`\" pulumi-lang-dotnet=\"`EffectiveReadOnlySpecs`\" pulumi-lang-go=\"`effectiveReadOnlySpecs`\" pulumi-lang-python=\"`effective_read_only_specs`\" pulumi-lang-yaml=\"`effectiveReadOnlySpecs`\" pulumi-lang-java=\"`effectiveReadOnlySpecs`\"\u003e`effective_read_only_specs`\u003c/span\u003e attributes in the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e data source. See Auto-Scaling with Effective Fields for details.\n\n**Important:** If you're enabling this flag on an existing cluster that has `lifecycle.ignore_changes` blocks for spec fields, enable the flag and remove the blocks in the same apply. The blocks are no longer needed and may interfere with the new behavior. If you previously removed \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e attributes, you may encounter a validation error. This is a safety check to prevent accidental node loss. To resolve: add the blocks back (to keep nodes) or with \u003cspan pulumi-lang-nodejs=\"`nodeCount \" pulumi-lang-dotnet=\"`NodeCount \" pulumi-lang-go=\"`nodeCount \" pulumi-lang-python=\"`node_count \" pulumi-lang-yaml=\"`nodeCount \" pulumi-lang-java=\"`nodeCount \"\u003e`node_count \u003c/span\u003e= 0` (to delete nodes), apply without toggling the flag, then toggle in a separate apply.\n\nTo manually update \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e with Option 1, you must temporarily disable auto-scaling. See Manually Updating Specs with\u003cspan pulumi-lang-nodejs=\" useEffectiveFields \" pulumi-lang-dotnet=\" UseEffectiveFields \" pulumi-lang-go=\" useEffectiveFields \" pulumi-lang-python=\" use_effective_fields \" pulumi-lang-yaml=\" useEffectiveFields \" pulumi-lang-java=\" useEffectiveFields \"\u003e use_effective_fields \u003c/span\u003efor the detailed workflow.\n\n**Option 2:** If not using \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e, use a lifecycle ignore customization to prevent unintended changes. When auto-scaling is enabled, you must ignore all three fields (\u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e) as Atlas may adjust any of these resources regardless of which auto-scaling type is enabled.\n\n"},"computeMinInstanceSize":{"type":"string","description":"Minimum instance size to which your cluster can automatically scale (such as M10). Atlas requires this parameter if `replication_specs[#].region_configs[#].auto_scaling.compute_scale_down_enabled` is true.\n"},"computeScaleDownEnabled":{"type":"boolean","description":"Flag that indicates whether the instance size may scale down. Atlas requires this parameter if `replication_specs[#].region_configs[#].auto_scaling.compute_enabled` : true. If you enable this option, specify a value for `replication_specs[#].region_configs[#].auto_scaling.compute_min_instance_size`.\n"},"diskGbEnabled":{"type":"boolean","description":"Flag that indicates whether this cluster enables disk auto-scaling. This parameter defaults to false.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["computeEnabled","computeMaxInstanceSize","computeMinInstanceSize","computeScaleDownEnabled","diskGbEnabled"]}}},"mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfigElectableSpecs:AdvancedClusterReplicationSpecRegionConfigElectableSpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. Define this attribute only if you selected AWS as your cloud service provider, \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e is set to \"M30\" or greater (not including \"Mxx_NVME\" tiers), and \u003cspan pulumi-lang-nodejs=\"`ebsVolumeType`\" pulumi-lang-dotnet=\"`EbsVolumeType`\" pulumi-lang-go=\"`ebsVolumeType`\" pulumi-lang-python=\"`ebs_volume_type`\" pulumi-lang-yaml=\"`ebsVolumeType`\" pulumi-lang-java=\"`ebsVolumeType`\"\u003e`ebs_volume_type`\u003c/span\u003e is \"PROVISIONED\". You can't set this attribute for a multi-cloud cluster.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. This value must be equal for all shards and node types. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier. **Note:** Using \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e with Standard IOPS could lead to errors and configuration issues. Therefore, it should be used only with the Provisioned IOPS volume type. When using Provisioned IOPS, the\u003cspan pulumi-lang-nodejs=\" diskSizeGb \" pulumi-lang-dotnet=\" DiskSizeGb \" pulumi-lang-go=\" diskSizeGb \" pulumi-lang-python=\" disk_size_gb \" pulumi-lang-yaml=\" diskSizeGb \" pulumi-lang-java=\" diskSizeGb \"\u003e disk_size_gb \u003c/span\u003eparameter specifies the storage capacity, but the IOPS are set independently. Ensuring that \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e is used exclusively with Provisioned IOPS will help avoid these issues.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster. Set only if you selected AWS as your cloud service provider. You can't set this parameter for a multi-cloud cluster. Valid values are:\n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region. Each instance size has a default storage and memory capacity. The instance size you select applies to all the data-bearing hosts in your instance size. Electable nodes and read-only nodes (known as \"base nodes\") within a single shard must use the same instance size. Analytics nodes can scale independently from base nodes within a shard. Both base nodes and analytics nodes can scale independently from their equivalents in other shards.\n\n\u003e **NOTE:** Cluster tier names in the \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e attribute are prepended with `R` instead of `M` if they run a low-CPU version of the cluster, for example `R40`. For a complete list of Low-CPU instance clusters see Cluster Configuration Options under each [Cloud Provider](https://www.mongodb.com/docs/atlas/reference/cloud-providers).\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"]}}},"mongodbatlas:index/AdvancedClusterReplicationSpecRegionConfigReadOnlySpecs:AdvancedClusterReplicationSpecRegionConfigReadOnlySpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. Define this attribute only if you selected AWS as your cloud service provider, \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e is set to \"M30\" or greater (not including \"Mxx_NVME\" tiers), and \u003cspan pulumi-lang-nodejs=\"`ebsVolumeType`\" pulumi-lang-dotnet=\"`EbsVolumeType`\" pulumi-lang-go=\"`ebsVolumeType`\" pulumi-lang-python=\"`ebs_volume_type`\" pulumi-lang-yaml=\"`ebsVolumeType`\" pulumi-lang-java=\"`ebsVolumeType`\"\u003e`ebs_volume_type`\u003c/span\u003e is \"PROVISIONED\". You can't set this attribute for a multi-cloud cluster. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. This value must be equal for all shards and node types. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier. **Note:** Using \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e with Standard IOPS could lead to errors and configuration issues. Therefore, it should be used only with the Provisioned IOPS volume type. When using Provisioned IOPS, the\u003cspan pulumi-lang-nodejs=\" diskSizeGb \" pulumi-lang-dotnet=\" DiskSizeGb \" pulumi-lang-go=\" diskSizeGb \" pulumi-lang-python=\" disk_size_gb \" pulumi-lang-yaml=\" diskSizeGb \" pulumi-lang-java=\" diskSizeGb \"\u003e disk_size_gb \u003c/span\u003eparameter specifies the storage capacity, but the IOPS are set independently. Ensuring that \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e is used exclusively with Provisioned IOPS will help avoid these issues.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster. Set only if you selected AWS as your cloud service provider. You can't set this parameter for a multi-cloud cluster. Valid values are:\n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region. Each instance size has a default storage and memory capacity. The instance size you select applies to all the data-bearing hosts in your instance size. Electable nodes and read-only nodes (known as \"base nodes\") within a single shard must use the same instance size. Analytics nodes can scale independently from base nodes within a shard. Both base nodes and analytics nodes can scale independently from their equivalents in other shards.\n\n\u003e **NOTE:** Cluster tier names in the \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e attribute are prepended with `R` instead of `M` if they run a low-CPU version of the cluster, for example `R40`. For a complete list of Low-CPU instance clusters see Cluster Configuration Options under each [Cloud Provider](https://www.mongodb.com/docs/atlas/reference/cloud-providers).\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"]}}},"mongodbatlas:index/AdvancedClusterTimeouts:AdvancedClusterTimeouts":{"properties":{"create":{"type":"string","description":"(String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"},"delete":{"type":"string","description":"(String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"},"update":{"type":"string","description":"(String) A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"}},"type":"object"},"mongodbatlas:index/AlertConfigurationMatcher:AlertConfigurationMatcher":{"properties":{"fieldName":{"type":"string","description":"Name of the field in the target object to match on.\n\n| Host alerts         | Replica set alerts  |  Sharded cluster alerts |\n|:----------           |:-------------       |:------                 |\n| `TYPE_NAME`         | `REPLICA_SET_NAME`  | `CLUSTER_NAME`          |\n| `HOSTNAME`          | `SHARD_NAME`        | `SHARD_NAME`            |\n| `PORT`              | `CLUSTER_NAME`      |                         |\n| `HOSTNAME_AND_PORT` |                     |                         |\n| `REPLICA_SET_NAME`  |                     |                         |\n\n\n\nAll other types of alerts do not support matchers.\n"},"operator":{"type":"string"},"value":{"type":"string","description":"Value to test with the specified operator. If \u003cspan pulumi-lang-nodejs=\"`fieldName`\" pulumi-lang-dotnet=\"`FieldName`\" pulumi-lang-go=\"`fieldName`\" pulumi-lang-python=\"`field_name`\" pulumi-lang-yaml=\"`fieldName`\" pulumi-lang-java=\"`fieldName`\"\u003e`field_name`\u003c/span\u003e is set to TYPE_NAME, you can match on the following values:\n- `PRIMARY`\n- `SECONDARY`\n- `STANDALONE`\n- `CONFIG`\n- `MONGOS`\n"}},"type":"object","required":["fieldName","operator","value"]},"mongodbatlas:index/AlertConfigurationMetricThresholdConfig:AlertConfigurationMetricThresholdConfig":{"properties":{"metricName":{"type":"string","description":"Name of the metric to check. The full list being quite large, please refer to atlas docs [here for general metrics](https://docs.atlas.mongodb.com/reference/alert-host-metrics/#measurement-types) and [here for serverless metrics](https://www.mongodb.com/docs/atlas/reference/api/alert-configurations-create-config/#serverless-measurements)\n"},"mode":{"type":"string","description":"This must be set to AVERAGE. Atlas computes the current metric value as an average.\n"},"operator":{"type":"string"},"threshold":{"type":"number"},"units":{"type":"string"}},"type":"object","required":["metricName"],"language":{"nodejs":{"requiredOutputs":["metricName","threshold"]}}},"mongodbatlas:index/AlertConfigurationNotification:AlertConfigurationNotification":{"properties":{"apiToken":{"type":"string","description":"Slack API token. Required for the SLACK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.\n","secret":true},"channelName":{"type":"string","description":"Slack channel name. Required for the SLACK notifications type.\n"},"datadogApiKey":{"type":"string","description":"Datadog API Key. Found in the Datadog dashboard. Required for the DATADOG notifications type.\n","secret":true},"datadogRegion":{"type":"string","description":"Region that indicates which API URL to use. See the `datadogRegion` field in the \u003cspan pulumi-lang-nodejs=\"`notifications`\" pulumi-lang-dotnet=\"`Notifications`\" pulumi-lang-go=\"`notifications`\" pulumi-lang-python=\"`notifications`\" pulumi-lang-yaml=\"`notifications`\" pulumi-lang-java=\"`notifications`\"\u003e`notifications`\u003c/span\u003e request parameter of [MongoDB API Alert Configuration documentation](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createalertconfiguration) for more details. The default Datadog region is US.\n"},"delayMin":{"type":"integer","description":"Number of minutes to wait after an alert condition is detected before sending out the first notification.\n"},"emailAddress":{"type":"string","description":"Email address to which alert notifications are sent. Required for the EMAIL notifications type.\n"},"emailEnabled":{"type":"boolean","description":"Flag indicating email notifications should be sent. This flag is only valid if \u003cspan pulumi-lang-nodejs=\"`typeName`\" pulumi-lang-dotnet=\"`TypeName`\" pulumi-lang-go=\"`typeName`\" pulumi-lang-python=\"`type_name`\" pulumi-lang-yaml=\"`typeName`\" pulumi-lang-java=\"`typeName`\"\u003e`type_name`\u003c/span\u003e is set to `ORG`, `GROUP`, or `USER`.\n"},"integrationId":{"type":"string","description":"The ID of the associated integration, the credentials of which to use for requests.\n"},"intervalMin":{"type":"integer","description":"Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved. The minimum value is 5. **NOTE** `PAGER_DUTY`, `VICTOR_OPS`, and `OPS_GENIE` notifications do not return this value. The notification interval must be configured and managed within each external service.\n"},"microsoftTeamsWebhookUrl":{"type":"string","description":"Microsoft Teams Webhook Uniform Resource Locator (URL) that MongoDB Cloud needs to send this notification via Microsoft Teams. Required if \u003cspan pulumi-lang-nodejs=\"`typeName`\" pulumi-lang-dotnet=\"`TypeName`\" pulumi-lang-go=\"`typeName`\" pulumi-lang-python=\"`type_name`\" pulumi-lang-yaml=\"`typeName`\" pulumi-lang-java=\"`typeName`\"\u003e`type_name`\u003c/span\u003e is `MICROSOFT_TEAMS`. If the URL later becomes invalid, MongoDB Cloud sends an email to the project owners. If the key remains invalid, MongoDB Cloud removes it.\n","secret":true},"mobileNumber":{"type":"string","description":"Mobile number to which alert notifications are sent. Required for the SMS notifications type.\n"},"notifierId":{"type":"string","description":"The notifier ID is a system-generated unique identifier assigned to each notification method. This is needed when updating third-party notifications without requiring explicit authentication credentials.\n"},"opsGenieApiKey":{"type":"string","description":"Opsgenie API Key. Required for the `OPS_GENIE` notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.\n","secret":true},"opsGenieRegion":{"type":"string","description":"Region that indicates which API URL to use. Accepted regions are: `US` ,`EU`. The default Opsgenie region is US.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Optional. One or more roles that receive the configured alert. If you include this field, Atlas sends alerts only to users assigned the roles you specify in the array. If you omit this field, Atlas sends alerts to users assigned any role. This parameter is only valid if \u003cspan pulumi-lang-nodejs=\"`typeName`\" pulumi-lang-dotnet=\"`TypeName`\" pulumi-lang-go=\"`typeName`\" pulumi-lang-python=\"`type_name`\" pulumi-lang-yaml=\"`typeName`\" pulumi-lang-java=\"`typeName`\"\u003e`type_name`\u003c/span\u003e is set to `ORG`, `GROUP`, or `USER`.\nAccepted values are:\n\n| Project roles                   | Organization roles  |\n|:----------                      |:-----------         |\n| `GROUP_CLUSTER_MANAGER`         | `ORG_OWNER`         |\n| `GROUP_DATA_ACCESS_ADMIN`       | `ORG_MEMBER`        |\n| `GROUP_DATA_ACCESS_READ_ONLY`   | `ORG_GROUP_CREATOR` |\n| `GROUP_DATA_ACCESS_READ_WRITE`  | `ORG_BILLING_ADMIN` |\n| `GROUP_OWNER`                   | `ORG_READ_ONLY`     |\n| `GROUP_READ_ONLY`               |                     |\n"},"serviceKey":{"type":"string","description":"PagerDuty service key. Required for the PAGER_DUTY notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.\n","secret":true},"smsEnabled":{"type":"boolean","description":"Flag indicating if text message notifications should be sent to this user's mobile phone. This flag is only valid if \u003cspan pulumi-lang-nodejs=\"`typeName`\" pulumi-lang-dotnet=\"`TypeName`\" pulumi-lang-go=\"`typeName`\" pulumi-lang-python=\"`type_name`\" pulumi-lang-yaml=\"`typeName`\" pulumi-lang-java=\"`typeName`\"\u003e`type_name`\u003c/span\u003e is set to `ORG`, `GROUP`, or `USER`.\n"},"teamId":{"type":"string","description":"Unique identifier of a team.\n"},"teamName":{"type":"string","description":"Label for the team that receives this notification.\n"},"typeName":{"type":"string","description":"Type of alert notification.\nAccepted values are:\n- `DATADOG`\n- `EMAIL`\n- `GROUP` (Project)\n- `OPS_GENIE`\n- `ORG`\n- `PAGER_DUTY`\n- `SLACK`\n- `SMS`\n- `TEAM`\n- `USER`\n- `VICTOR_OPS`\n- `WEBHOOK`\n- `MICROSOFT_TEAMS`\n"},"username":{"type":"string","description":"Name of the Atlas user to which to send notifications. Only a user in the project that owns the alert configuration is allowed here. Required for the `USER` notifications type.\n"},"victorOpsApiKey":{"type":"string","description":"VictorOps API key. Required for the `VICTOR_OPS` notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.\n","secret":true},"victorOpsRoutingKey":{"type":"string","description":"VictorOps routing key. Optional for the `VICTOR_OPS` notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.\n","secret":true},"webhookSecret":{"type":"string","description":"Optional authentication secret for the `WEBHOOK` notifications type.\n","secret":true},"webhookUrl":{"type":"string","description":"Target URL  for the `WEBHOOK` notifications type.\n","secret":true}},"type":"object","required":["typeName"],"language":{"nodejs":{"requiredOutputs":["delayMin","emailEnabled","integrationId","intervalMin","notifierId","smsEnabled","teamName","typeName"]}}},"mongodbatlas:index/AlertConfigurationThresholdConfig:AlertConfigurationThresholdConfig":{"properties":{"operator":{"type":"string"},"threshold":{"type":"number"},"units":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["threshold"]}}},"mongodbatlas:index/BackupCompliancePolicyOnDemandPolicyItem:BackupCompliancePolicyOnDemandPolicyItem":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/BackupCompliancePolicyPolicyItemDaily:BackupCompliancePolicyPolicyItemDaily":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/BackupCompliancePolicyPolicyItemHourly:BackupCompliancePolicyPolicyItemHourly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/BackupCompliancePolicyPolicyItemMonthly:BackupCompliancePolicyPolicyItemMonthly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/BackupCompliancePolicyPolicyItemWeekly:BackupCompliancePolicyPolicyItemWeekly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/BackupCompliancePolicyPolicyItemYearly:BackupCompliancePolicyPolicyItemYearly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/CloudBackupScheduleCopySetting:CloudBackupScheduleCopySetting":{"properties":{"cloudProvider":{"type":"string","description":"Human-readable label that identifies the cloud provider that stores the snapshot copy. i.e. \"AWS\" \"AZURE\" \"GCP\"\n"},"frequencies":{"type":"array","items":{"type":"string"},"description":"List that describes which types of snapshots to copy. i.e. \"HOURLY\" \"DAILY\" \"WEEKLY\" \"MONTHLY\" \"ON_DEMAND\"\n"},"regionName":{"type":"string","description":"Target region to copy snapshots belonging to replicationSpecId to. Please supply the 'Atlas Region' which can be found under https://www.mongodb.com/docs/atlas/reference/cloud-providers/ 'regions' link\n"},"shouldCopyOplogs":{"type":"boolean","description":"Flag that indicates whether to copy the oplogs to the target region. You can use the oplogs to perform point-in-time restores.\n"},"zoneId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the zone in a cluster. For global clusters, there can be multiple zones to choose from. For sharded clusters and replica set clusters, there is only one zone in the cluster. To find appropriate value for \u003cspan pulumi-lang-nodejs=\"`zoneId`\" pulumi-lang-dotnet=\"`ZoneId`\" pulumi-lang-go=\"`zoneId`\" pulumi-lang-python=\"`zone_id`\" pulumi-lang-yaml=\"`zoneId`\" pulumi-lang-java=\"`zoneId`\"\u003e`zone_id`\u003c/span\u003e, do a GET request to Return One Cluster from One Project and consult the replicationSpecs array Return One Cluster From One Project. Alternately, use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e data source or resource and reference `replication_specs.#.zone_id`.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudProvider","frequencies","regionName","shouldCopyOplogs","zoneId"]}}},"mongodbatlas:index/CloudBackupScheduleExport:CloudBackupScheduleExport":{"properties":{"exportBucketId":{"type":"string","description":"Unique identifier of the\u003cspan pulumi-lang-nodejs=\" mongodbatlas.CloudBackupSnapshotExportBucket \" pulumi-lang-dotnet=\" mongodbatlas.CloudBackupSnapshotExportBucket \" pulumi-lang-go=\" CloudBackupSnapshotExportBucket \" pulumi-lang-python=\" CloudBackupSnapshotExportBucket \" pulumi-lang-yaml=\" mongodbatlas.CloudBackupSnapshotExportBucket \" pulumi-lang-java=\" mongodbatlas.CloudBackupSnapshotExportBucket \"\u003e mongodbatlas.CloudBackupSnapshotExportBucket \u003c/span\u003eexport_bucket_id value.\n"},"frequencyType":{"type":"string","description":"Frequency associated with the export snapshot item: \u003cspan pulumi-lang-nodejs=\"`weekly`\" pulumi-lang-dotnet=\"`Weekly`\" pulumi-lang-go=\"`weekly`\" pulumi-lang-python=\"`weekly`\" pulumi-lang-yaml=\"`weekly`\" pulumi-lang-java=\"`weekly`\"\u003e`weekly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`monthly`\" pulumi-lang-dotnet=\"`Monthly`\" pulumi-lang-go=\"`monthly`\" pulumi-lang-python=\"`monthly`\" pulumi-lang-yaml=\"`monthly`\" pulumi-lang-java=\"`monthly`\"\u003e`monthly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`daily`\" pulumi-lang-dotnet=\"`Daily`\" pulumi-lang-go=\"`daily`\" pulumi-lang-python=\"`daily`\" pulumi-lang-yaml=\"`daily`\" pulumi-lang-java=\"`daily`\"\u003e`daily`\u003c/span\u003e (requires reaching out to Customer Support)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["exportBucketId","frequencyType"]}}},"mongodbatlas:index/CloudBackupSchedulePolicyItemDaily:CloudBackupSchedulePolicyItemDaily":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (daily in this case). The only supported value for daily policies is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e day.\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For daily policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`daily`\" pulumi-lang-dotnet=\"`Daily`\" pulumi-lang-go=\"`daily`\" pulumi-lang-python=\"`daily`\" pulumi-lang-yaml=\"`daily`\" pulumi-lang-java=\"`daily`\"\u003e`daily`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e.  Note that for less frequent policy items, Atlas requires that you specify a retention period greater than or equal to the retention period specified for more frequent policy items. For example: If the hourly policy item specifies a retention of two days, the daily retention policy must specify two days or greater.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/CloudBackupSchedulePolicyItemHourly:CloudBackupSchedulePolicyItemHourly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (hourly in this case). The supported values for hourly policies are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`2`\" pulumi-lang-dotnet=\"`2`\" pulumi-lang-go=\"`2`\" pulumi-lang-python=\"`2`\" pulumi-lang-yaml=\"`2`\" pulumi-lang-java=\"`2`\"\u003e`2`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`4`\" pulumi-lang-dotnet=\"`4`\" pulumi-lang-go=\"`4`\" pulumi-lang-python=\"`4`\" pulumi-lang-yaml=\"`4`\" pulumi-lang-java=\"`4`\"\u003e`4`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`6`\" pulumi-lang-dotnet=\"`6`\" pulumi-lang-go=\"`6`\" pulumi-lang-python=\"`6`\" pulumi-lang-yaml=\"`6`\" pulumi-lang-java=\"`6`\"\u003e`6`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`8`\" pulumi-lang-dotnet=\"`8`\" pulumi-lang-go=\"`8`\" pulumi-lang-python=\"`8`\" pulumi-lang-yaml=\"`8`\" pulumi-lang-java=\"`8`\"\u003e`8`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e hours. Note that \u003cspan pulumi-lang-nodejs=\"`12`\" pulumi-lang-dotnet=\"`12`\" pulumi-lang-go=\"`12`\" pulumi-lang-python=\"`12`\" pulumi-lang-yaml=\"`12`\" pulumi-lang-java=\"`12`\"\u003e`12`\u003c/span\u003e hours is the only accepted value for NVMe clusters.\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For hourly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`hourly`\" pulumi-lang-dotnet=\"`Hourly`\" pulumi-lang-go=\"`hourly`\" pulumi-lang-python=\"`hourly`\" pulumi-lang-yaml=\"`hourly`\" pulumi-lang-java=\"`hourly`\"\u003e`hourly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/CloudBackupSchedulePolicyItemMonthly:CloudBackupSchedulePolicyItemMonthly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (monthly in this case). The supported values for weekly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For monthly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`monthly`\" pulumi-lang-dotnet=\"`Monthly`\" pulumi-lang-go=\"`monthly`\" pulumi-lang-python=\"`monthly`\" pulumi-lang-yaml=\"`monthly`\" pulumi-lang-java=\"`monthly`\"\u003e`monthly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Monthly policy must have retention days of at least 31 days or 5 weeks or 1 month. Note that for less frequent policy items, Atlas requires that you specify a retention period greater than or equal to the retention period specified for more frequent policy items. For example: If the weekly policy item specifies a retention of two weeks, the montly retention policy must specify two weeks or greater.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/CloudBackupSchedulePolicyItemWeekly:CloudBackupSchedulePolicyItemWeekly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (weekly in this case). The supported values for weekly policies are \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e through \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e, where \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e represents Monday and \u003cspan pulumi-lang-nodejs=\"`7`\" pulumi-lang-dotnet=\"`7`\" pulumi-lang-go=\"`7`\" pulumi-lang-python=\"`7`\" pulumi-lang-yaml=\"`7`\" pulumi-lang-java=\"`7`\"\u003e`7`\u003c/span\u003e represents Sunday.\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For weekly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`weekly`\" pulumi-lang-dotnet=\"`Weekly`\" pulumi-lang-go=\"`weekly`\" pulumi-lang-python=\"`weekly`\" pulumi-lang-yaml=\"`weekly`\" pulumi-lang-java=\"`weekly`\"\u003e`weekly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Weekly policy must have retention of at least 7 days or 1 week. Note that for less frequent policy items, Atlas requires that you specify a retention period greater than or equal to the retention period specified for more frequent policy items. For example: If the daily policy item specifies a retention of two weeks, the weekly retention policy must specify two weeks or greater.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/CloudBackupSchedulePolicyItemYearly:CloudBackupSchedulePolicyItemYearly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/CloudBackupSnapshotExportJobComponent:CloudBackupSnapshotExportJobComponent":{"properties":{"exportId":{"type":"string","description":"_Returned for sharded clusters only._ Export job details for each replica set in the sharded cluster.\n"},"replicaSetName":{"type":"string","description":"_Returned for sharded clusters only._ Unique identifier of the export job for the replica set.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["exportId","replicaSetName"]}}},"mongodbatlas:index/CloudBackupSnapshotExportJobCustomData:CloudBackupSnapshotExportJobCustomData":{"properties":{"key":{"type":"string","description":"Required if you want to include custom data using \u003cspan pulumi-lang-nodejs=\"`customData`\" pulumi-lang-dotnet=\"`CustomData`\" pulumi-lang-go=\"`customData`\" pulumi-lang-python=\"`custom_data`\" pulumi-lang-yaml=\"`customData`\" pulumi-lang-java=\"`customData`\"\u003e`custom_data`\u003c/span\u003e in the metadata file uploaded to the bucket. Key to include in the metadata file that Atlas uploads to the bucket when the export job finishes.\n","willReplaceOnChanges":true},"value":{"type":"string","description":"Required if you specify \u003cspan pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\"\u003e`key`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object","required":["key","value"]},"mongodbatlas:index/CloudBackupSnapshotMember:CloudBackupSnapshotMember":{"properties":{"cloudProvider":{"type":"string","description":"Cloud provider that stores this snapshot.\n"},"id":{"type":"string","description":"Unique identifier for the sharded cluster snapshot.\n"},"replicaSetName":{"type":"string","description":"Label given to a shard or config server from which Atlas took this snapshot.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudProvider","id","replicaSetName"]}}},"mongodbatlas:index/CloudBackupSnapshotRestoreJobDeliveryTypeConfig:CloudBackupSnapshotRestoreJobDeliveryTypeConfig":{"properties":{"automated":{"type":"boolean","willReplaceOnChanges":true},"download":{"type":"boolean","willReplaceOnChanges":true},"oplogInc":{"type":"integer","willReplaceOnChanges":true},"oplogTs":{"type":"integer","willReplaceOnChanges":true},"pointInTime":{"type":"boolean","willReplaceOnChanges":true},"pointInTimeUtcSeconds":{"type":"integer","willReplaceOnChanges":true},"targetClusterName":{"type":"string","description":"Name of the target Atlas cluster to which the restore job restores the snapshot. Only visible if deliveryType is automated.\n","willReplaceOnChanges":true},"targetProjectId":{"type":"string","description":"Name of the target Atlas project of the restore job. Only visible if deliveryType is automated.\n","willReplaceOnChanges":true}},"type":"object"},"mongodbatlas:index/CloudProviderAccessAuthorizationAws:CloudProviderAccessAuthorizationAws":{"properties":{"iamAssumedRoleArn":{"type":"string","description":"ARN of the IAM Role that Atlas assumes when accessing resources in your AWS account. This value is required after the creation (register of the role) as part of [Set Up Unified AWS Access](https://docs.atlas.mongodb.com/security/set-up-unified-aws-access/#set-up-unified-aws-access).\n"}},"type":"object","required":["iamAssumedRoleArn"]},"mongodbatlas:index/CloudProviderAccessAuthorizationAzure:CloudProviderAccessAuthorizationAzure":{"properties":{"atlasAzureAppId":{"type":"string","description":"Azure Active Directory Application ID of Atlas.\n"},"servicePrincipalId":{"type":"string","description":"UUID string that identifies the Azure Service Principal.\n"},"tenantId":{"type":"string","description":"UUID String that identifies the Azure Active Directory Tenant ID.\n"}},"type":"object","required":["atlasAzureAppId","servicePrincipalId","tenantId"]},"mongodbatlas:index/CloudProviderAccessAuthorizationFeatureUsage:CloudProviderAccessAuthorizationFeatureUsage":{"properties":{"featureId":{"type":"object","additionalProperties":{"type":"string"}},"featureType":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["featureId","featureType"]}}},"mongodbatlas:index/CloudProviderAccessAuthorizationGcp:CloudProviderAccessAuthorizationGcp":{"properties":{"serviceAccountForAtlas":{"type":"string","description":"Email address for the Google Service Account created by Atlas.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceAccountForAtlas"]}}},"mongodbatlas:index/CloudProviderAccessSetupAwsConfig:CloudProviderAccessSetupAwsConfig":{"properties":{"atlasAssumedRoleExternalId":{"type":"string","description":"Unique external ID Atlas uses when assuming the IAM role in your AWS account.\n"},"atlasAwsAccountArn":{"type":"string","description":"ARN associated with the Atlas AWS account used to assume IAM roles in your AWS account.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["atlasAssumedRoleExternalId","atlasAwsAccountArn"]}}},"mongodbatlas:index/CloudProviderAccessSetupAzureConfig:CloudProviderAccessSetupAzureConfig":{"properties":{"atlasAzureAppId":{"type":"string","description":"Azure Active Directory Application ID of Atlas. This property is required when \u003cspan pulumi-lang-nodejs=\"`providerName \" pulumi-lang-dotnet=\"`ProviderName \" pulumi-lang-go=\"`providerName \" pulumi-lang-python=\"`provider_name \" pulumi-lang-yaml=\"`providerName \" pulumi-lang-java=\"`providerName \"\u003e`provider_name \u003c/span\u003e= \"AZURE\".`\n"},"servicePrincipalId":{"type":"string","description":"UUID string that identifies the Azure Service Principal. This property is required when \u003cspan pulumi-lang-nodejs=\"`providerName \" pulumi-lang-dotnet=\"`ProviderName \" pulumi-lang-go=\"`providerName \" pulumi-lang-python=\"`provider_name \" pulumi-lang-yaml=\"`providerName \" pulumi-lang-java=\"`providerName \"\u003e`provider_name \u003c/span\u003e= \"AZURE\".`\n"},"tenantId":{"type":"string","description":"UUID String that identifies the Azure Active Directory Tenant ID. This property is required when \u003cspan pulumi-lang-nodejs=\"`providerName \" pulumi-lang-dotnet=\"`ProviderName \" pulumi-lang-go=\"`providerName \" pulumi-lang-python=\"`provider_name \" pulumi-lang-yaml=\"`providerName \" pulumi-lang-java=\"`providerName \"\u003e`provider_name \u003c/span\u003e= \"AZURE\".`\n"}},"type":"object","required":["atlasAzureAppId","servicePrincipalId","tenantId"]},"mongodbatlas:index/CloudProviderAccessSetupGcpConfig:CloudProviderAccessSetupGcpConfig":{"properties":{"serviceAccountForAtlas":{"type":"string","description":"The GCP service account email that Atlas uses.\n"},"status":{"type":"string","description":"The status of the GCP cloud provider access setup. See [MongoDB Atlas API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getgroupcloudprovideraccess#operation-getgroupcloudprovideraccess-200-body-application-vnd-atlas-2023-01-01-json-gcp-object-status).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["serviceAccountForAtlas","status"]}}},"mongodbatlas:index/CloudUserOrgAssignmentRoles:CloudUserOrgAssignmentRoles":{"properties":{"orgRoles":{"type":"array","items":{"type":"string"},"description":"One or more organization level roles to assign the MongoDB Cloud user.\n"},"projectRoleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudUserOrgAssignmentRolesProjectRoleAssignment:CloudUserOrgAssignmentRolesProjectRoleAssignment"},"description":"List of project level role assignments to assign the MongoDB Cloud user.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["projectRoleAssignments"]}}},"mongodbatlas:index/CloudUserOrgAssignmentRolesProjectRoleAssignment:CloudUserOrgAssignmentRolesProjectRoleAssignment":{"properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project to which these roles belong.\n"},"projectRoles":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles assigned to the MongoDB Cloud user.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["projectId","projectRoles"]}}},"mongodbatlas:index/CloudUserTeamAssignmentRoles:CloudUserTeamAssignmentRoles":{"properties":{"orgRoles":{"type":"array","items":{"type":"string"},"description":"One or more organization level roles to assign the MongoDB Cloud user.\n"},"projectRoleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudUserTeamAssignmentRolesProjectRoleAssignment:CloudUserTeamAssignmentRolesProjectRoleAssignment"},"description":"List of project level role assignments to assign the MongoDB Cloud user.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["orgRoles","projectRoleAssignments"]}}},"mongodbatlas:index/CloudUserTeamAssignmentRolesProjectRoleAssignment:CloudUserTeamAssignmentRolesProjectRoleAssignment":{"properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project to which these roles belong.\n"},"projectRoles":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles assigned to the MongoDB Cloud user.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["projectId","projectRoles"]}}},"mongodbatlas:index/ClusterAdvancedConfiguration:ClusterAdvancedConfiguration":{"properties":{"changeStreamOptionsPreAndPostImagesExpireAfterSeconds":{"type":"integer","description":"The minimum pre- and post-image retention time in seconds. This option corresponds to the `changeStreamOptions.preAndPostImages.expireAfterSeconds` cluster parameter. Defaults to `-1`(off). This setting controls the retention policy of change stream pre- and post-images. Pre- and post-images are the versions of a document before and after document modification, respectively.`expireAfterSeconds` controls how long MongoDB retains pre- and post-images. When set to -1 (off), MongoDB uses the default retention policy: pre- and post-images are retained until the corresponding change stream events are removed from the oplog. To set the minimum pre- and post-image retention time, specify an integer value greater than zero. Setting this too low could increase the risk of interrupting Realm sync or triggers processing. This parameter is only supported for MongoDB version 6.0 and above.\n"},"customOpensslCipherConfigTls12s":{"type":"array","items":{"type":"string"},"description":"The custom OpenSSL cipher suite list for TLS 1.2. This field is only valid when \u003cspan pulumi-lang-nodejs=\"`tlsCipherConfigMode`\" pulumi-lang-dotnet=\"`TlsCipherConfigMode`\" pulumi-lang-go=\"`tlsCipherConfigMode`\" pulumi-lang-python=\"`tls_cipher_config_mode`\" pulumi-lang-yaml=\"`tlsCipherConfigMode`\" pulumi-lang-java=\"`tlsCipherConfigMode`\"\u003e`tls_cipher_config_mode`\u003c/span\u003e is set to `CUSTOM`.\n"},"defaultMaxTimeMs":{"type":"integer"},"defaultReadConcern":{"type":"string","description":"[Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. **(DEPRECATED)** MongoDB 6.0 and later clusters default to \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e. To use a custom read concern level, please refer to your driver documentation.\n","deprecationMessage":"This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide"},"defaultWriteConcern":{"type":"string","description":"[Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 6.0 clusters default to [majority](https://docs.mongodb.com/manual/reference/write-concern/).\n"},"failIndexKeyTooLong":{"type":"boolean","description":"**(DEPRECATED)** (Optional) When true, documents can only be updated or inserted if, for all indexed fields on the target collection, the corresponding index entries do not exceed 1024 bytes. When false, mongod writes documents that exceed the limit but does not index them.\n","deprecationMessage":"This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide"},"javascriptEnabled":{"type":"boolean","description":"When true, the cluster allows execution of operations that perform server-side executions of JavaScript. When false, the cluster disables execution of those operations.\n"},"minimumEnabledTlsProtocol":{"type":"string","description":"Sets the minimum Transport Layer Security (TLS) version the cluster accepts for incoming connections. Valid values are:\n- TLS1_2\n- TLS1_3\n"},"noTableScan":{"type":"boolean","description":"When true, the cluster disables the execution of any query that requires a collection scan to return results. When false, the cluster allows the execution of those operations.\n"},"oplogMinRetentionHours":{"type":"number","description":"Minimum retention window for cluster's oplog expressed in hours. A value of null indicates that the cluster uses the default minimum oplog window that MongoDB Cloud calculates.\n* **Note**  A minimum oplog retention is required when seeking to change a cluster's class to Local NVMe SSD. To learn more and for latest guidance see  [`oplogMinRetentionHours`](https://www.mongodb.com/docs/manual/core/replica-set-oplog/#std-label-replica-set-minimum-oplog-size)\n"},"oplogSizeMb":{"type":"integer","description":"The custom oplog size of the cluster. Without a value that indicates that the cluster uses the default oplog size calculated by Atlas.\n"},"sampleRefreshIntervalBiConnector":{"type":"integer","description":"Interval in seconds at which the mongosqld process re-samples data to create its relational schema. The default value is 300. The specified value must be a positive integer. Available only for Atlas deployments in which BI Connector for Atlas is enabled.\n"},"sampleSizeBiConnector":{"type":"integer","description":"Number of documents per database to sample when gathering schema information. Defaults to 100. Available only for Atlas deployments in which BI Connector for Atlas is enabled.\n"},"tlsCipherConfigMode":{"type":"string","description":"The TLS cipher suite configuration mode. Valid values include `CUSTOM` or `DEFAULT`. The `DEFAULT` mode uses the default cipher suites. The `CUSTOM` mode allows you to specify custom cipher suites for both TLS 1.2 and TLS 1.3. To unset, this should be set back to `DEFAULT`.\n"},"transactionLifetimeLimitSeconds":{"type":"integer","description":"Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["defaultReadConcern","defaultWriteConcern","failIndexKeyTooLong","javascriptEnabled","minimumEnabledTlsProtocol","noTableScan","oplogSizeMb","sampleRefreshIntervalBiConnector","sampleSizeBiConnector","tlsCipherConfigMode","transactionLifetimeLimitSeconds"]}}},"mongodbatlas:index/ClusterBiConnectorConfig:ClusterBiConnectorConfig":{"properties":{"enabled":{"type":"boolean","description":"Specifies whether or not BI Connector for Atlas is enabled on the cluster.\n*\n- Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable BI Connector for Atlas.\n- Set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to disable BI Connector for Atlas.\n"},"readPreference":{"type":"string","description":"Specifies the read preference to be used by BI Connector for Atlas on the cluster. Each BI Connector for Atlas read preference contains a distinct combination of [readPreference](https://docs.mongodb.com/manual/core/read-preference/) and [readPreferenceTags](https://docs.mongodb.com/manual/core/read-preference/#tag-sets) options. For details on BI Connector for Atlas read preferences, refer to the [BI Connector Read Preferences Table](https://docs.atlas.mongodb.com/tutorial/create-global-writes-cluster/#bic-read-preferences).\n\n- Set to \"primary\" to have BI Connector for Atlas read from the primary.\n\n- Set to \"secondary\" to have BI Connector for Atlas read from a secondary member. Default if there are no analytics nodes in the cluster.\n\n- Set to \"analytics\" to have BI Connector for Atlas read from an analytics node. Default if the cluster contains analytics nodes.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","readPreference"]}}},"mongodbatlas:index/ClusterConnectionString:ClusterConnectionString":{"properties":{"private":{"type":"string"},"privateEndpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterConnectionStringPrivateEndpoint:ClusterConnectionStringPrivateEndpoint"}},"privateSrv":{"type":"string"},"standard":{"type":"string"},"standardSrv":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["private","privateEndpoints","privateSrv","standard","standardSrv"]}}},"mongodbatlas:index/ClusterConnectionStringPrivateEndpoint:ClusterConnectionStringPrivateEndpoint":{"properties":{"connectionString":{"type":"string"},"endpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterConnectionStringPrivateEndpointEndpoint:ClusterConnectionStringPrivateEndpointEndpoint"}},"srvConnectionString":{"type":"string"},"srvShardOptimizedConnectionString":{"type":"string"},"type":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["connectionString","endpoints","srvConnectionString","srvShardOptimizedConnectionString","type"]}}},"mongodbatlas:index/ClusterConnectionStringPrivateEndpointEndpoint:ClusterConnectionStringPrivateEndpointEndpoint":{"properties":{"endpointId":{"type":"string"},"providerName":{"type":"string","description":"Cloud service provider on which the servers are provisioned.\n\nThe possible values are:\n\n- `AWS` - Amazon AWS\n- `GCP` - Google Cloud Platform\n- `AZURE` - Microsoft Azure\n- `TENANT` - A multi-tenant deployment on one of the supported cloud service providers. Only valid when providerSettings.instanceSizeName is M0.\n"},"region":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["endpointId","providerName","region"]}}},"mongodbatlas:index/ClusterLabel:ClusterLabel":{"properties":{"key":{"type":"string","description":"The key that you want to write.\n"},"value":{"type":"string","description":"The value that you want to write.\n\n\u003e **NOTE:** MongoDB Atlas doesn't display your labels.\n"}},"type":"object"},"mongodbatlas:index/ClusterOutageSimulationOutageFilter:ClusterOutageSimulationOutageFilter":{"properties":{"cloudProvider":{"type":"string","description":"The cloud provider of the region that undergoes the outage simulation. Following values are supported:\n* `AWS`\n* `GCP`\n* `AZURE`\n"},"regionName":{"type":"string","description":"The Atlas name of the region to undergo an outage simulation.\n"},"type":{"type":"string","description":"The type of cluster outage simulation. Following values are supported:\n* `REGION` - Simulates a cluster outage for a region\n"}},"type":"object","required":["cloudProvider","regionName"],"language":{"nodejs":{"requiredOutputs":["cloudProvider","regionName","type"]}}},"mongodbatlas:index/ClusterPinnedFcv:ClusterPinnedFcv":{"properties":{"expirationDate":{"type":"string","description":"Expiration date of the fixed FCV. This value is in the ISO 8601 timestamp format (e.g. \"2024-12-04T16:25:00Z\"). Note that this field cannot exceed 4 weeks from the pinned date.\n"},"version":{"type":"string","description":"Feature compatibility version of the cluster.\n"}},"type":"object","required":["expirationDate"],"language":{"nodejs":{"requiredOutputs":["expirationDate","version"]}}},"mongodbatlas:index/ClusterReplicationSpec:ClusterReplicationSpec":{"properties":{"id":{"type":"string","description":"The Terraform's unique identifier used internally for state management.\n"},"numShards":{"type":"integer","description":"Selects whether the cluster is a replica set or a sharded cluster. If you use the replicationSpecs parameter, you must set num_shards.\n"},"regionsConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterReplicationSpecRegionsConfig:ClusterReplicationSpecRegionsConfig"},"description":"Physical location of the region. Each regionsConfig document describes the region’s priority in elections and the number and type of MongoDB nodes Atlas deploys to the region. You must order each regionsConfigs document by regionsConfig.priority, descending. See Region Config below for more details.\n"},"zoneName":{"type":"string","description":"Name for the zone in a Global Cluster.\n\n\n**Region Config**\n"}},"type":"object","required":["numShards"],"language":{"nodejs":{"requiredOutputs":["id","numShards","regionsConfigs"]}}},"mongodbatlas:index/ClusterReplicationSpecRegionsConfig:ClusterReplicationSpecRegionsConfig":{"properties":{"analyticsNodes":{"type":"integer","description":"The number of analytics nodes for Atlas to deploy to the region. Analytics nodes are useful for handling analytic data such as reporting queries from BI Connector for Atlas. Analytics nodes are read-only, and can never become the primary. If you do not specify this option, no analytics nodes are deployed to the region.\n"},"electableNodes":{"type":"integer","description":"Number of electable nodes for Atlas to deploy to the region. Electable nodes can become the primary and can facilitate local reads.\n* The total number of electableNodes across all replication spec regions  must total 3, 5, or 7.\n* Specify 0 if you do not want any electable nodes in the region.\n* You cannot create electable nodes in a region if \u003cspan pulumi-lang-nodejs=\"`priority`\" pulumi-lang-dotnet=\"`Priority`\" pulumi-lang-go=\"`priority`\" pulumi-lang-python=\"`priority`\" pulumi-lang-yaml=\"`priority`\" pulumi-lang-java=\"`priority`\"\u003e`priority`\u003c/span\u003e is 0.\n"},"priority":{"type":"integer","description":"Election priority of the region. For regions with only read-only nodes, set this value to 0.\n* For regions where \u003cspan pulumi-lang-nodejs=\"`electableNodes`\" pulumi-lang-dotnet=\"`ElectableNodes`\" pulumi-lang-go=\"`electableNodes`\" pulumi-lang-python=\"`electable_nodes`\" pulumi-lang-yaml=\"`electableNodes`\" pulumi-lang-java=\"`electableNodes`\"\u003e`electable_nodes`\u003c/span\u003e is at least 1, each region must have a priority of exactly one (1) less than the previous region. The first region must have a priority of 7. The lowest possible priority is 1.\n* The priority 7 region identifies the Preferred Region of the cluster. Atlas places the primary node in the Preferred Region. Priorities 1 through 7 are exclusive - no more than one region per cluster can be assigned a given priority.\n* Example: If you have three regions, their priorities would be 7, 6, and 5 respectively. If you added two more regions for supporting electable nodes, the priorities of those regions would be 4 and 3 respectively.\n"},"readOnlyNodes":{"type":"integer","description":"Number of read-only nodes for Atlas to deploy to the region. Read-only nodes can never become the primary, but can facilitate local-reads. Specify 0 if you do not want any read-only nodes in the region.\n"},"regionName":{"type":"string","description":"Physical location of your MongoDB cluster. The region you choose can affect network latency for clients accessing your databases.  Requires the **Atlas region name**, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n"}},"type":"object","required":["regionName"],"language":{"nodejs":{"requiredOutputs":["electableNodes","priority","regionName"]}}},"mongodbatlas:index/ClusterSnapshotBackupPolicy:ClusterSnapshotBackupPolicy":{"properties":{"clusterId":{"type":"string","description":"The cluster ID.\n"},"clusterName":{"type":"string"},"nextSnapshot":{"type":"string"},"policies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterSnapshotBackupPolicyPolicy:ClusterSnapshotBackupPolicyPolicy"}},"referenceHourOfDay":{"type":"integer"},"referenceMinuteOfHour":{"type":"integer"},"restoreWindowDays":{"type":"integer"},"updateSnapshots":{"type":"boolean"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clusterId","clusterName","nextSnapshot","policies","referenceHourOfDay","referenceMinuteOfHour","restoreWindowDays","updateSnapshots"]}}},"mongodbatlas:index/ClusterSnapshotBackupPolicyPolicy:ClusterSnapshotBackupPolicyPolicy":{"properties":{"id":{"type":"string","description":"The Terraform's unique identifier used internally for state management.\n"},"policyItems":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterSnapshotBackupPolicyPolicyPolicyItem:ClusterSnapshotBackupPolicyPolicyPolicyItem"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","policyItems"]}}},"mongodbatlas:index/ClusterSnapshotBackupPolicyPolicyPolicyItem:ClusterSnapshotBackupPolicyPolicyPolicyItem":{"properties":{"frequencyInterval":{"type":"integer"},"frequencyType":{"type":"string"},"id":{"type":"string","description":"The Terraform's unique identifier used internally for state management.\n"},"retentionUnit":{"type":"string"},"retentionValue":{"type":"integer"}},"type":"object","language":{"nodejs":{"requiredOutputs":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"]}}},"mongodbatlas:index/ClusterTag:ClusterTag":{"properties":{"key":{"type":"string","description":"Constant that defines the set of the tag.\n"},"value":{"type":"string","description":"Variable that belongs to the set of the tag.\n\nTo learn more, see [Resource Tags](https://dochub.mongodb.org/core/add-cluster-tag-atlas).\n"}},"type":"object","required":["key","value"]},"mongodbatlas:index/CustomDbRoleAction:CustomDbRoleAction":{"properties":{"action":{"type":"string","description":"Name of the privilege action. For a complete list of actions available in the Atlas API, see [Custom Role Actions](https://docs.atlas.mongodb.com/reference/api/custom-role-actions)\n\u003e **Note**: The privilege actions available to the Custom Roles API resource represent a subset of the privilege actions available in the Atlas Custom Roles UI.\n"},"resources":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CustomDbRoleActionResource:CustomDbRoleActionResource"},"description":"Contains information on where the action is granted. Each object in the array either indicates a database and collection on which the action is granted, or indicates that the action is granted on the cluster resource.\n\n* `resources.#.collection_name` - (Optional) Collection on which the action is granted. If this value is an empty string, the action is granted on all collections within the database specified in the actions.resources.db field.\n\n\u003e **NOTE** This field is mutually exclusive with the `actions.resources.cluster` field.\n\n* `resources.#.database_name` Database on which the action is granted. Use the empty string (\"\") to allow an action on all databases.\n\n\u003e **NOTE** This field is mutually exclusive with the `actions.resources.cluster` field.\n\n* `resources.#.cluster`\t(Optional) Set to true to indicate that the action is granted on the cluster resource.\n\n\u003e **NOTE** This field is mutually exclusive with the `actions.resources.collection` and `actions.resources.db fields`.\n"}},"type":"object","required":["action","resources"]},"mongodbatlas:index/CustomDbRoleActionResource:CustomDbRoleActionResource":{"properties":{"cluster":{"type":"boolean"},"collectionName":{"type":"string"},"databaseName":{"type":"string","description":"Database on which the inherited role is granted.\n\n\u003e **NOTE** This value should be admin for all roles except read and readWrite.\n"}},"type":"object"},"mongodbatlas:index/CustomDbRoleInheritedRole:CustomDbRoleInheritedRole":{"properties":{"databaseName":{"type":"string","description":"Database on which the inherited role is granted.\n\n\u003e **NOTE** This value should be admin for all roles except read and readWrite.\n"},"roleName":{"type":"string","description":"Name of the inherited role. This can either be another custom role or a built-in role.\n\n\u003e **NOTE** Built-in roles are present in clusters by default and do not need to be redefined for their properties to be inherited by a custom role.\n"}},"type":"object","required":["databaseName","roleName"]},"mongodbatlas:index/DatabaseUserLabel:DatabaseUserLabel":{"properties":{"key":{"type":"string","description":"The key that you want to write.\n"},"value":{"type":"string","description":"The value that you want to write.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["key","value"]}}},"mongodbatlas:index/DatabaseUserRole:DatabaseUserRole":{"properties":{"collectionName":{"type":"string","description":"Collection for which the role applies. You can specify a collection for the \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e and `readWrite` roles. If you do not specify a collection for \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e and `readWrite`, the role applies to all collections in the database (excluding some collections in the \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e. database).\n"},"databaseName":{"type":"string","description":"Database on which the user has the specified role. A role on the \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e database can include privileges that apply to the other databases. This field should be set to \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e for a custom MongoDB role.\n"},"roleName":{"type":"string","description":"Name of the role to grant. See [Create a Database User](https://docs.atlas.mongodb.com/reference/api/database-users-create-a-user/) `roles.roleName` for valid values and restrictions.\n"}},"type":"object","required":["databaseName","roleName"]},"mongodbatlas:index/DatabaseUserScope:DatabaseUserScope":{"properties":{"name":{"type":"string","description":"Name of the cluster or Atlas Data Federation that the user has access to.\n"},"type":{"type":"string","description":"Type of resource that the user has access to. See [Database User API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createdatabaseuser) for the list of valid values.\n"}},"type":"object"},"mongodbatlas:index/EncryptionAtRestAwsKmsConfig:EncryptionAtRestAwsKmsConfig":{"properties":{"accessKeyId":{"type":"string","description":"Unique alphanumeric string that identifies an Identity and Access Management (IAM) access key with permissions required to access your Amazon Web Services (AWS) Customer Master Key (CMK).\n","secret":true},"customerMasterKeyId":{"type":"string","description":"Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys.\n","secret":true},"enabled":{"type":"boolean","description":"Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). Setting this field to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e might lead to an inconsistent Terraform state. To disable encryption at rest, remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-go=\"`EncryptionAtRest`\" pulumi-lang-python=\"`EncryptionAtRest`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRest`\"\u003e`mongodbatlas.EncryptionAtRest`\u003c/span\u003e resource and reapply your configuration.\n"},"region":{"type":"string","description":"Physical location where MongoDB Atlas deploys your AWS-hosted MongoDB cluster nodes. The region you choose can affect network latency for clients accessing your databases. When MongoDB Cloud deploys a dedicated cluster, it checks if a VPC or VPC connection exists for that provider and region. If not, MongoDB Atlas creates them as part of the deployment. MongoDB Atlas assigns the VPC a CIDR block. To limit a new VPC peering connection to one CIDR block and region, create the connection first. Deploy the cluster after the connection starts.\n"},"requirePrivateNetworking":{"type":"boolean","description":"Enable connection to your Amazon Web Services (AWS) Key Management Service (KMS) over private networking.\n"},"roleId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies an Amazon Web Services (AWS) Identity and Access Management (IAM) role. This IAM role has the permissions required to manage your AWS customer master key.\n"},"secretAccessKey":{"type":"string","description":"Human-readable label of the Identity and Access Management (IAM) secret access key with permissions required to access your Amazon Web Services (AWS) customer master key.\n","secret":true},"valid":{"type":"boolean","description":"Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","requirePrivateNetworking","valid"]}}},"mongodbatlas:index/EncryptionAtRestAzureKeyVaultConfig:EncryptionAtRestAzureKeyVaultConfig":{"properties":{"azureEnvironment":{"type":"string","description":"Azure environment in which your account credentials reside.\n"},"clientId":{"type":"string","description":"Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant.\n","secret":true},"enabled":{"type":"boolean","description":"Flag that indicates whether someone enabled encryption at rest for the specified  project. Setting this field to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e might lead to an inconsistent Terraform state. To disable encryption at rest, remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-go=\"`EncryptionAtRest`\" pulumi-lang-python=\"`EncryptionAtRest`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRest`\"\u003e`mongodbatlas.EncryptionAtRest`\u003c/span\u003e resource and reapply your configuration.\n"},"keyIdentifier":{"type":"string","description":"Web address with a unique key that identifies for your Azure Key Vault.\n","secret":true},"keyVaultName":{"type":"string","description":"Unique string that identifies the Azure Key Vault that contains your key.\n"},"requirePrivateNetworking":{"type":"boolean","description":"Enable connection to your Azure Key Vault over private networking.\n"},"resourceGroupName":{"type":"string","description":"Name of the Azure resource group that contains your Azure Key Vault.\n"},"roleId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Azure Service Principal that Atlas uses to access the Azure Key Vault.\n"},"secret":{"type":"string","description":"Private data that you need secured and that belongs to the specified Azure Key Vault (AKV) tenant (**azureKeyVault.tenantID**). This data can include any type of sensitive data such as passwords, database connection strings, API keys, and the like. AKV stores this information as encrypted binary data.\n","secret":true},"subscriptionId":{"type":"string","description":"Unique 36-hexadecimal character string that identifies your Azure subscription.\n","secret":true},"tenantId":{"type":"string","description":"Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription.\n","secret":true},"valid":{"type":"boolean","description":"Flag that indicates whether the Azure encryption key can encrypt and decrypt data.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["clientId","enabled","requirePrivateNetworking","tenantId","valid"]}}},"mongodbatlas:index/EncryptionAtRestGoogleCloudKmsConfig:EncryptionAtRestGoogleCloudKmsConfig":{"properties":{"enabled":{"type":"boolean","description":"Flag that indicates whether someone enabled encryption at rest for the specified  project. Setting this field to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e might lead to an inconsistent Terraform state. To disable encryption at rest, remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-go=\"`EncryptionAtRest`\" pulumi-lang-python=\"`EncryptionAtRest`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRest`\"\u003e`mongodbatlas.EncryptionAtRest`\u003c/span\u003e resource and reapply your configuration.\n"},"keyVersionResourceId":{"type":"string","description":"Resource path that displays the key version resource ID for your Google Cloud KMS.\n","secret":true},"roleId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Google Cloud Provider Access Role that MongoDB Cloud uses to access the Google Cloud KMS.\n"},"serviceAccountKey":{"type":"string","description":"JavaScript Object Notation (JSON) object that contains the Google Cloud Key Management Service (KMS). Format the JSON as a string and not as an object.\n","secret":true},"valid":{"type":"boolean","description":"Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled","valid"]}}},"mongodbatlas:index/EncryptionAtRestPrivateEndpointTimeouts:EncryptionAtRestPrivateEndpointTimeouts":{"properties":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"}},"type":"object"},"mongodbatlas:index/EventTriggerEventProcessors:EventTriggerEventProcessors":{"properties":{"awsEventbridge":{"$ref":"#/types/mongodbatlas:index/EventTriggerEventProcessorsAwsEventbridge:EventTriggerEventProcessorsAwsEventbridge"}},"type":"object"},"mongodbatlas:index/EventTriggerEventProcessorsAwsEventbridge:EventTriggerEventProcessorsAwsEventbridge":{"properties":{"configAccountId":{"type":"string"},"configRegion":{"type":"string"}},"type":"object"},"mongodbatlas:index/FederatedDatabaseInstanceCloudProviderConfig:FederatedDatabaseInstanceCloudProviderConfig":{"properties":{"aws":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceCloudProviderConfigAws:FederatedDatabaseInstanceCloudProviderConfigAws","description":"Name of the cloud service that hosts the Atlas Data Federation data stores.\n"},"azure":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceCloudProviderConfigAzure:FederatedDatabaseInstanceCloudProviderConfigAzure","description":"Microsoft Azure cloud service configuration.\n"}},"type":"object"},"mongodbatlas:index/FederatedDatabaseInstanceCloudProviderConfigAws:FederatedDatabaseInstanceCloudProviderConfigAws":{"properties":{"externalId":{"type":"string","description":"Unique identifier associated with the IAM Role that the Federated Database Instance assumes when accessing the data stores.\n"},"iamAssumedRoleArn":{"type":"string","description":"Amazon Resource Name (ARN) of the IAM Role that the Federated Database Instance assumes when accessing S3 Bucket data stores. The IAM Role must support the following actions against each S3 bucket:\n* `s3:GetObject`\n* `s3:ListBucket`\n* `s3:GetObjectVersion`\n"},"iamUserArn":{"type":"string","description":"Amazon Resource Name (ARN) of the user that the Federated Database Instance assumes when accessing S3 Bucket data stores.\n"},"roleId":{"type":"string"},"testS3Bucket":{"type":"string"}},"type":"object","required":["roleId","testS3Bucket"],"language":{"nodejs":{"requiredOutputs":["externalId","iamAssumedRoleArn","iamUserArn","roleId","testS3Bucket"]}}},"mongodbatlas:index/FederatedDatabaseInstanceCloudProviderConfigAzure:FederatedDatabaseInstanceCloudProviderConfigAzure":{"properties":{"atlasAppId":{"type":"string"},"roleId":{"type":"string"},"servicePrincipalId":{"type":"string","description":"Unique identifier of the Azure service principal that the Federated Database instance uses to access Azure Blob Storage.\n"},"tenantId":{"type":"string","description":"Unique identifier of the Azure Active Directory tenant where the service principal resides.\n"}},"type":"object","required":["roleId"],"language":{"nodejs":{"requiredOutputs":["atlasAppId","roleId","servicePrincipalId","tenantId"]}}},"mongodbatlas:index/FederatedDatabaseInstanceDataProcessRegion:FederatedDatabaseInstanceDataProcessRegion":{"properties":{"cloudProvider":{"type":"string"},"region":{"type":"string"}},"type":"object","required":["cloudProvider","region"]},"mongodbatlas:index/FederatedDatabaseInstanceStorageDatabase:FederatedDatabaseInstanceStorageDatabase":{"properties":{"collections":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageDatabaseCollection:FederatedDatabaseInstanceStorageDatabaseCollection"}},"maxWildcardCollections":{"type":"integer"},"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"views":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageDatabaseView:FederatedDatabaseInstanceStorageDatabaseView"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["collections","maxWildcardCollections","name","views"]}}},"mongodbatlas:index/FederatedDatabaseInstanceStorageDatabaseCollection:FederatedDatabaseInstanceStorageDatabaseCollection":{"properties":{"dataSources":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageDatabaseCollectionDataSource:FederatedDatabaseInstanceStorageDatabaseCollectionDataSource"}},"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name"]}}},"mongodbatlas:index/FederatedDatabaseInstanceStorageDatabaseCollectionDataSource:FederatedDatabaseInstanceStorageDatabaseCollectionDataSource":{"properties":{"allowInsecure":{"type":"boolean"},"collection":{"type":"string"},"collectionRegex":{"type":"string"},"database":{"type":"string"},"databaseRegex":{"type":"string"},"datasetName":{"type":"string"},"defaultFormat":{"type":"string"},"path":{"type":"string"},"provenanceFieldName":{"type":"string"},"storeName":{"type":"string"},"urls":{"type":"array","items":{"type":"string"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["allowInsecure","collection","collectionRegex","database","databaseRegex","datasetName","defaultFormat","path","provenanceFieldName","storeName","urls"]}}},"mongodbatlas:index/FederatedDatabaseInstanceStorageDatabaseView:FederatedDatabaseInstanceStorageDatabaseView":{"properties":{"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"pipeline":{"type":"string"},"source":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","pipeline","source"]}}},"mongodbatlas:index/FederatedDatabaseInstanceStorageStore:FederatedDatabaseInstanceStorageStore":{"properties":{"additionalStorageClasses":{"type":"array","items":{"type":"string"}},"allowInsecure":{"type":"boolean"},"bucket":{"type":"string"},"clusterName":{"type":"string"},"defaultFormat":{"type":"string"},"delimiter":{"type":"string"},"includeTags":{"type":"boolean"},"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"prefix":{"type":"string"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"provider":{"type":"string"},"public":{"type":"string"},"readPreference":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageStoreReadPreference:FederatedDatabaseInstanceStorageStoreReadPreference"},"region":{"type":"string"},"urls":{"type":"array","items":{"type":"string"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["additionalStorageClasses","allowInsecure","bucket","clusterName","defaultFormat","delimiter","includeTags","name","prefix","projectId","provider","public","readPreference","region","urls"]}}},"mongodbatlas:index/FederatedDatabaseInstanceStorageStoreReadPreference:FederatedDatabaseInstanceStorageStoreReadPreference":{"properties":{"maxStalenessSeconds":{"type":"integer"},"mode":{"type":"string"},"tagSets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageStoreReadPreferenceTagSet:FederatedDatabaseInstanceStorageStoreReadPreferenceTagSet"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxStalenessSeconds","mode","tagSets"]}}},"mongodbatlas:index/FederatedDatabaseInstanceStorageStoreReadPreferenceTagSet:FederatedDatabaseInstanceStorageStoreReadPreferenceTagSet":{"properties":{"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageStoreReadPreferenceTagSetTag:FederatedDatabaseInstanceStorageStoreReadPreferenceTagSetTag"}}},"type":"object","required":["tags"]},"mongodbatlas:index/FederatedDatabaseInstanceStorageStoreReadPreferenceTagSetTag:FederatedDatabaseInstanceStorageStoreReadPreferenceTagSetTag":{"properties":{"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"value":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","value"]}}},"mongodbatlas:index/FederatedSettingsOrgConfigUserConflict:FederatedSettingsOrgConfigUserConflict":{"properties":{"emailAddress":{"type":"string","description":"Email address of the the user that conflicts with selected domains.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"firstName":{"type":"string","description":"First name of the the user that conflicts with selected domains.\n"},"lastName":{"type":"string","description":"Last name of the the user that conflicts with selected domains.\n"},"userId":{"type":"string","description":"Name of the Atlas user that conflicts with selected domains.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["emailAddress","federationSettingsId","firstName","lastName","userId"]}}},"mongodbatlas:index/FederatedSettingsOrgRoleMappingRoleAssignment:FederatedSettingsOrgRoleMappingRoleAssignment":{"properties":{"groupId":{"type":"string","description":"Unique identifier of the project to which you want the role mapping to apply.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Specifies the Roles that are attached to the Role Mapping. Available role IDs can be found on [the User Roles\nReference](https://www.mongodb.com/docs/atlas/reference/user-roles/).\n"}},"type":"object"},"mongodbatlas:index/FlexClusterBackupSettings:FlexClusterBackupSettings":{"properties":{"enabled":{"type":"boolean","description":"Flag that indicates whether backups are performed for this flex cluster. Backup uses [flex cluster backups](https://www.mongodb.com/docs/atlas/backup/cloud-backup/flex-cluster-backup/).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["enabled"]}}},"mongodbatlas:index/FlexClusterConnectionStrings:FlexClusterConnectionStrings":{"properties":{"standard":{"type":"string","description":"Public connection string that you can use to connect to this cluster. This connection string uses the mongodb:// protocol.\n"},"standardSrv":{"type":"string","description":"Public connection string that you can use to connect to this flex cluster. This connection string uses the `mongodb+srv://` protocol.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["standard","standardSrv"]}}},"mongodbatlas:index/FlexClusterProviderSettings:FlexClusterProviderSettings":{"properties":{"backingProviderName":{"type":"string","description":"Cloud service provider on which MongoDB Cloud provisioned the flex cluster.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity available to the flex cluster expressed in gigabytes.\n"},"providerName":{"type":"string","description":"Human-readable label that identifies the cloud service provider.\n"},"regionName":{"type":"string","description":"Human-readable label that identifies the geographic location of your MongoDB flex cluster. The region you choose can affect network latency for clients accessing your databases. For a complete list of region names, see [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/#std-label-amazon-aws), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), and [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n"}},"type":"object","required":["backingProviderName","regionName"],"language":{"nodejs":{"requiredOutputs":["backingProviderName","diskSizeGb","providerName","regionName"]}}},"mongodbatlas:index/FlexClusterTimeouts:FlexClusterTimeouts":{"properties":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"}},"type":"object"},"mongodbatlas:index/GlobalClusterConfigCustomZoneMapping:GlobalClusterConfigCustomZoneMapping":{"properties":{"location":{"type":"string","description":"The ISO location code to which you want to map a zone in your Global Cluster. You can find a list of all supported location codes [here](https://cloud.mongodb.com/static/atlas/country_iso_codes.txt).\n"},"zone":{"type":"string","description":"The name of the zone in your Global Cluster that you want to map to location.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["location","zone"]}}},"mongodbatlas:index/GlobalClusterConfigManagedNamespace:GlobalClusterConfigManagedNamespace":{"properties":{"collection":{"type":"string","description":"The name of the collection associated with the managed namespace.\n"},"customShardKey":{"type":"string","description":"The custom shard key for the collection. Global Clusters require a compound shard key consisting of a location field and a user-selected second key, the custom shard key.\n"},"db":{"type":"string","description":"The name of the database containing the collection.\n"},"isCustomShardKeyHashed":{"type":"boolean","description":"Specifies whether the custom shard key for the collection is [hashed](https://docs.mongodb.com/manual/reference/method/sh.shardCollection/#hashed-shard-keys). If omitted, defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, Atlas uses [ranged sharding](https://docs.mongodb.com/manual/core/ranged-sharding/). This is only available for Atlas clusters with MongoDB v4.4 and later.\n"},"isShardKeyUnique":{"type":"boolean","description":"Specifies whether the underlying index enforces a unique constraint. If omitted, defaults to false. You cannot specify true when using [hashed shard keys](https://docs.mongodb.com/manual/core/hashed-sharding/#std-label-sharding-hashed).\n"}},"type":"object","required":["collection","customShardKey","db"],"language":{"nodejs":{"requiredOutputs":["collection","customShardKey","db","isCustomShardKeyHashed","isShardKeyUnique"]}}},"mongodbatlas:index/LdapConfigurationUserToDnMapping:LdapConfigurationUserToDnMapping":{"properties":{"ldapQuery":{"type":"string"},"match":{"type":"string"},"substitution":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["ldapQuery","match","substitution"]}}},"mongodbatlas:index/LdapVerifyLink:LdapVerifyLink":{"properties":{"href":{"type":"string"},"rel":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["href","rel"]}}},"mongodbatlas:index/LdapVerifyValidation:LdapVerifyValidation":{"properties":{"status":{"type":"string","description":"The current status of the LDAP over TLS/SSL configuration. One of the following values: `PENDING`, `SUCCESS`, and `FAILED`.\n"},"validationType":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["status","validationType"]}}},"mongodbatlas:index/LogIntegrationOtelSuppliedHeader:LogIntegrationOtelSuppliedHeader":{"properties":{"name":{"type":"string","description":"Header name.\n"},"value":{"type":"string","description":"Header value.\n","secret":true}},"type":"object","required":["name","value"]},"mongodbatlas:index/MaintenanceWindowProtectedHours:MaintenanceWindowProtectedHours":{"properties":{"endHourOfDay":{"type":"integer","description":"Zero-based integer that represents the end hour of the day for the protected hours window.\n"},"startHourOfDay":{"type":"integer","description":"Zero-based integer that represents the beginning hour of the day for the protected hours window.\n"}},"type":"object","required":["endHourOfDay","startHourOfDay"]},"mongodbatlas:index/OnlineArchiveCriteria:OnlineArchiveCriteria":{"properties":{"dateField":{"type":"string","description":"Indexed database parameter that stores the date that determines when data moves to the online archive. MongoDB Cloud archives the data when the current date exceeds the date in this database parameter plus the number of days specified through the expireAfterDays parameter.\n"},"dateFormat":{"type":"string","description":"Syntax used to write the date after which data moves to the online archive. Date can be expressed as ISO 8601 or Epoch timestamps. The Epoch timestamp can be expressed as nanoseconds, milliseconds, or seconds. You must set \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e to `DATE` if `collectionType` is `TIMESERIES`. Valid values:  ISODATE (default), EPOCH_SECONDS, EPOCH_MILLIS, EPOCH_NANOSECONDS.\n"},"expireAfterDays":{"type":"integer","description":"Number of days after the value in the criteria.dateField when MongoDB Cloud archives data in the specified cluster.\n\n**_NOTE: if `DATE` is selected, the `partition_fields.field_name` must be completed with the \u003cspan pulumi-lang-nodejs=\"`dateField`\" pulumi-lang-dotnet=\"`DateField`\" pulumi-lang-go=\"`dateField`\" pulumi-lang-python=\"`date_field`\" pulumi-lang-yaml=\"`dateField`\" pulumi-lang-java=\"`dateField`\"\u003e`date_field`\u003c/span\u003e value_**\n\nThe only field required for criteria type `CUSTOM`\n"},"query":{"type":"string","description":"JSON query to use to select documents for archiving. Atlas uses the specified query with the db.collection.find(query) command. The empty document {} to return all documents is not supported.\n"},"type":{"type":"string","description":"Type of criteria (DATE, CUSTOM)\n\nThe following fields are required for criteria type `DATE`\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["dateFormat","type"]}}},"mongodbatlas:index/OnlineArchiveDataExpirationRule:OnlineArchiveDataExpirationRule":{"properties":{"expireAfterDays":{"type":"integer","description":"Number of days used in the date criteria for nominating documents for deletion. Value must be between 7 and 9215.\n"}},"type":"object","required":["expireAfterDays"]},"mongodbatlas:index/OnlineArchiveDataProcessRegion:OnlineArchiveDataProcessRegion":{"properties":{"cloudProvider":{"type":"string","description":"Human-readable label that identifies the Cloud service provider where you wish to store your archived data. `AZURE` may be selected only if Azure is the Cloud service provider for the cluster and no AWS online archive has been created for the cluster.\n"},"region":{"type":"string","description":"Human-readable label that identifies the geographic location of the region where you wish to store your archived data. For allowed values, see [MongoDB Atlas API documentation](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createonlinearchive)\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["cloudProvider","region"]}}},"mongodbatlas:index/OnlineArchivePartitionField:OnlineArchivePartitionField":{"properties":{"fieldName":{"type":"string","description":"Human-readable label that identifies the parameter that MongoDB Cloud uses to partition data. To specify a nested parameter, use the dot notation.\n"},"fieldType":{"type":"string","description":"Data type of the parameter that that MongoDB Cloud uses to partition data. Partition parameters of type UUID must be of binary subtype 4. MongoDB Cloud skips partition parameters of type UUID with subtype 3. Valid values: \u003cspan pulumi-lang-nodejs=\"`date`\" pulumi-lang-dotnet=\"`Date`\" pulumi-lang-go=\"`date`\" pulumi-lang-python=\"`date`\" pulumi-lang-yaml=\"`date`\" pulumi-lang-java=\"`date`\"\u003e`date`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\"\u003e`int`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`long`\" pulumi-lang-dotnet=\"`Long`\" pulumi-lang-go=\"`long`\" pulumi-lang-python=\"`long`\" pulumi-lang-yaml=\"`long`\" pulumi-lang-java=\"`long`\"\u003e`long`\u003c/span\u003e, `objectId`, \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`uuid`\" pulumi-lang-dotnet=\"`Uuid`\" pulumi-lang-go=\"`uuid`\" pulumi-lang-python=\"`uuid`\" pulumi-lang-yaml=\"`uuid`\" pulumi-lang-java=\"`uuid`\"\u003e`uuid`\u003c/span\u003e.\n"},"order":{"type":"integer","description":"Sequence in which MongoDB Cloud slices the collection data to create partitions. The resource expresses this sequence starting with zero. The value of the `criteria.dateField` parameter defaults as the first item in the partition sequence.\n"}},"type":"object","required":["fieldName","order"],"language":{"nodejs":{"requiredOutputs":["fieldName","fieldType","order"]}}},"mongodbatlas:index/OnlineArchiveSchedule:OnlineArchiveSchedule":{"properties":{"dayOfMonth":{"type":"integer","description":"Day of the month when the scheduled archive starts. This field should be provided only when schedule \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MONTHLY`.\n"},"dayOfWeek":{"type":"integer","description":"Day of the week when the scheduled archive starts. The week starts with Monday (1) and ends with Sunday (7). This field should be provided only when schedule \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `WEEKLY`.\n"},"endHour":{"type":"integer","description":"Hour of the day when the scheduled window to run one online archive ends.\n"},"endMinute":{"type":"integer","description":"Minute of the hour when the scheduled window to run one online archive ends.\n"},"startHour":{"type":"integer","description":"Hour of the day when the when the scheduled window to run one online archive starts.\n"},"startMinute":{"type":"integer","description":"Minute of the hour when the scheduled window to run one online archive starts.\n"},"type":{"type":"string","description":"Type of schedule (``DAILY`, `MONTHLY`, `WEEKLY`).\n"}},"type":"object","required":["type"]},"mongodbatlas:index/OrganizationServiceAccount:OrganizationServiceAccount":{"properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"description":{"type":"string","description":"Human readable description for the Service Account.\n"},"name":{"type":"string","description":"Human-readable name for the Service Account. The name is modifiable and does not have to be unique.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of organization-level roles for the Service Account.\n"},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings.\n\n\u003e **WARNING:** Service Account secrets expire after the configured \u003cspan pulumi-lang-nodejs=\"`secretExpiresAfterHours`\" pulumi-lang-dotnet=\"`SecretExpiresAfterHours`\" pulumi-lang-go=\"`secretExpiresAfterHours`\" pulumi-lang-python=\"`secret_expires_after_hours`\" pulumi-lang-yaml=\"`secretExpiresAfterHours`\" pulumi-lang-java=\"`secretExpiresAfterHours`\"\u003e`secret_expires_after_hours`\u003c/span\u003e period. To avoid losing access to the Atlas Administration API, update your application with the new client secret before the current one expires. If all secrets expire without being replaced, you will lose access to the organization. For more information, see [Rotate Service Account Secrets](https://www.mongodb.com/docs/atlas/tutorial/rotate-service-account-secrets/).\n"},"secrets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/OrganizationServiceAccountSecret:OrganizationServiceAccountSecret"},"description":"A list of secrets associated with the specified Service Account. See Secrets.\n"}},"type":"object","required":["description","name","roles","secretExpiresAfterHours"],"language":{"nodejs":{"requiredOutputs":["clientId","createdAt","description","name","roles","secretExpiresAfterHours","secrets"]}}},"mongodbatlas:index/OrganizationServiceAccountSecret:OrganizationServiceAccountSecret":{"properties":{"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"secret":{"type":"string","description":"The secret for the Service Account. It will be returned only the first time after creation.\n","secret":true},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","expiresAt","secret","secretId"]}}},"mongodbatlas:index/PrivateLinkEndpointServiceEndpoint:PrivateLinkEndpointServiceEndpoint":{"properties":{"endpointName":{"type":"string","description":"Forwarding rule that corresponds to the endpoint you created.\n"},"ipAddress":{"type":"string","description":"Private IP address of the endpoint you created.\n"},"status":{"type":"string","description":"Status of the endpoint. Atlas returns one of the [values shown above](https://docs.atlas.mongodb.com/reference/api/private-endpoints-endpoint-create-one/#std-label-ref-status-field).\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["status"]}}},"mongodbatlas:index/ProjectApiKeyProjectAssignment:ProjectApiKeyProjectAssignment":{"properties":{"projectId":{"type":"string","description":"Project ID to assign to Access Key\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"List of Project roles that the Programmatic API key needs to have. Ensure you provide: at least one role and ensure all roles are valid for the Project. You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#project-roles) describes the valid roles that can be assigned.\n"}},"type":"object","required":["projectId","roleNames"]},"mongodbatlas:index/ProjectIpAccessListTimeouts:ProjectIpAccessListTimeouts":{"properties":{"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n"},"read":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Read operations occur during any refresh or planning operation when refresh is enabled.\n"}},"type":"object"},"mongodbatlas:index/ProjectIpAddresses:ProjectIpAddresses":{"properties":{"services":{"$ref":"#/types/mongodbatlas:index/ProjectIpAddressesServices:ProjectIpAddressesServices"}},"type":"object","language":{"nodejs":{"requiredOutputs":["services"]}}},"mongodbatlas:index/ProjectIpAddressesServices:ProjectIpAddressesServices":{"properties":{"clusters":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectIpAddressesServicesCluster:ProjectIpAddressesServicesCluster"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["clusters"]}}},"mongodbatlas:index/ProjectIpAddressesServicesCluster:ProjectIpAddressesServicesCluster":{"properties":{"clusterName":{"type":"string"},"inbounds":{"type":"array","items":{"type":"string"}},"outbounds":{"type":"array","items":{"type":"string"}}},"type":"object","language":{"nodejs":{"requiredOutputs":["clusterName","inbounds","outbounds"]}}},"mongodbatlas:index/ProjectLimit:ProjectLimit":{"properties":{"currentUsage":{"type":"integer"},"defaultLimit":{"type":"integer"},"maximumLimit":{"type":"integer"},"name":{"type":"string","description":"Human-readable label that identifies this project limit. See [Project Limit Documentation](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Projects/operation/setProjectLimit) under `limitName` parameter to find all the limits that can be defined.\n"},"value":{"type":"integer","description":"Amount to set the limit to. Use the [Project Limit Documentation](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Projects/operation/setProjectLimit) under `limitName` parameter to verify the override limits.\n"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredOutputs":["currentUsage","defaultLimit","maximumLimit","name","value"]}}},"mongodbatlas:index/ProjectServiceAccountSecret:ProjectServiceAccountSecret":{"properties":{"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"lastUsedAt":{"type":"string","description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"maskedSecretValue":{"type":"string","description":"The masked Service Account secret.\n"},"secret":{"type":"string","description":"The secret for the Service Account. It will be returned only the first time after creation.\n","secret":true},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","expiresAt","lastUsedAt","maskedSecretValue","secret","secretId"]}}},"mongodbatlas:index/ProjectTeam:ProjectTeam":{"properties":{"roleNames":{"type":"array","items":{"type":"string"},"description":"Each string in the array represents a project role you want to assign to the team. Every user associated with the team inherits these roles. You must specify an array even if you are only associating a single role with the team. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles a user can have.\n\n\u003e **NOTE:** Project created by API Keys must belong to an existing organization.\n"},"teamId":{"type":"string","description":"The unique identifier of the team you want to associate with the project. The team and project must share the same parent organization.\n"}},"type":"object","required":["roleNames","teamId"]},"mongodbatlas:index/ProviderAssumeRole:ProviderAssumeRole":{"properties":{"roleArn":{"type":"string","description":"Amazon Resource Name (ARN) of an IAM Role to assume prior to making API calls.\n"}},"type":"object"},"mongodbatlas:index/PushBasedLogExportTimeouts:PushBasedLogExportTimeouts":{"properties":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Default: \u003cspan pulumi-lang-nodejs=\"`15m`\" pulumi-lang-dotnet=\"`15m`\" pulumi-lang-go=\"`15m`\" pulumi-lang-python=\"`15m`\" pulumi-lang-yaml=\"`15m`\" pulumi-lang-java=\"`15m`\"\u003e`15m`\u003c/span\u003e.\n"},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. Default: \u003cspan pulumi-lang-nodejs=\"`15m`\" pulumi-lang-dotnet=\"`15m`\" pulumi-lang-go=\"`15m`\" pulumi-lang-python=\"`15m`\" pulumi-lang-yaml=\"`15m`\" pulumi-lang-java=\"`15m`\"\u003e`15m`\u003c/span\u003e.\n"},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Default: \u003cspan pulumi-lang-nodejs=\"`15m`\" pulumi-lang-dotnet=\"`15m`\" pulumi-lang-go=\"`15m`\" pulumi-lang-python=\"`15m`\" pulumi-lang-yaml=\"`15m`\" pulumi-lang-java=\"`15m`\"\u003e`15m`\u003c/span\u003e.\n"}},"type":"object"},"mongodbatlas:index/ResourcePolicyCreatedByUser:ResourcePolicyCreatedByUser":{"properties":{"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies a user.\n"},"name":{"type":"string","description":"Human-readable label that describes a user.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name"]}}},"mongodbatlas:index/ResourcePolicyLastUpdatedByUser:ResourcePolicyLastUpdatedByUser":{"properties":{"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies a user.\n"},"name":{"type":"string","description":"Human-readable label that describes a user.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","name"]}}},"mongodbatlas:index/ResourcePolicyPolicy:ResourcePolicyPolicy":{"properties":{"body":{"type":"string","description":"A string that defines the permissions for the policy. The syntax used is the Cedar Policy language.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the policy.\n"}},"type":"object","required":["body"],"language":{"nodejs":{"requiredOutputs":["body","id"]}}},"mongodbatlas:index/SearchDeploymentSpec:SearchDeploymentSpec":{"properties":{"instanceSize":{"type":"string","description":"Hardware specification for the search node instance sizes. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Atlas-Search/operation/createAtlasSearchDeployment) describes the valid values. More details can also be found in the [Search Node Documentation](https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/#search-tier).\n"},"nodeCount":{"type":"integer","description":"Number of search nodes in the cluster.\n"}},"type":"object","required":["instanceSize","nodeCount"]},"mongodbatlas:index/SearchDeploymentTimeouts:SearchDeploymentTimeouts":{"properties":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"},"delete":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"},"update":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"}},"type":"object"},"mongodbatlas:index/SearchIndexSynonym:SearchIndexSynonym":{"properties":{"analyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when creating the index. Defaults to [lucene.standard](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/standard/#std-label-ref-standard-analyzer)\n"},"name":{"type":"string","description":"The name of the search index you want to create.\n"},"sourceCollection":{"type":"string","description":"(Required) Name of the source MongoDB collection for the synonyms. Documents in this collection must be in the format described in the [Synonyms Source Collection Documents](https://docs.atlas.mongodb.com/reference/atlas-search/synonyms/#std-label-synonyms-coll-spec).\n"}},"type":"object","required":["analyzer","name","sourceCollection"]},"mongodbatlas:index/SearchIndexTypeSet:SearchIndexTypeSet":{"properties":{"name":{"type":"string","description":"Name of the type set.\n"},"types":{"type":"string","description":"JSON array describing the types.\n"}},"type":"object","required":["name"]},"mongodbatlas:index/ServerlessInstanceLink:ServerlessInstanceLink":{"properties":{"href":{"type":"string"},"rel":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["href","rel"]}}},"mongodbatlas:index/ServerlessInstanceTag:ServerlessInstanceTag":{"properties":{"key":{"type":"string","description":"Constant that defines the set of the tag.\n"},"value":{"type":"string","description":"Variable that belongs to the set of the tag.\n\nTo learn more, see [Resource Tags](https://dochub.mongodb.org/core/add-cluster-tag-atlas).\n"}},"type":"object","required":["key","value"]},"mongodbatlas:index/ServiceAccountSecret:ServiceAccountSecret":{"properties":{"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"lastUsedAt":{"type":"string","description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"maskedSecretValue":{"type":"string","description":"The masked Service Account secret.\n"},"secret":{"type":"string","description":"The secret for the Service Account. It will be returned only the first time after creation.\n","secret":true},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","expiresAt","lastUsedAt","maskedSecretValue","secret","secretId"]}}},"mongodbatlas:index/StreamConnectionAuthentication:StreamConnectionAuthentication":{"properties":{"clientId":{"type":"string","description":"Public identifier for the Kafka client.\n"},"clientSecret":{"type":"string","description":"Secret known only to the Kafka client and the authorization server.\n","secret":true},"mechanism":{"type":"string","description":"Method of authentication. Value can be `PLAIN`, `SCRAM-256`, or `SCRAM-512`.\n"},"method":{"type":"string","description":"SASL OAUTHBEARER authentication method. Value must be OIDC.\n"},"password":{"type":"string","description":"Password of the account to connect to the Kafka cluster.\n","secret":true},"saslOauthbearerExtensions":{"type":"string","description":"Additional information to provide to the Kafka broker.\n"},"scope":{"type":"string","description":"Scope of the access request to the broker specified by the Kafka clients.\n"},"tokenEndpointUrl":{"type":"string","description":"OAUTH issuer (IdP provider) token endpoint HTTP(S) URI used to retrieve the token.\n"},"username":{"type":"string","description":"Username of the account to connect to the Kafka cluster.\n"}},"type":"object"},"mongodbatlas:index/StreamConnectionAws:StreamConnectionAws":{"properties":{"roleArn":{"type":"string","description":"Amazon Resource Name (ARN) that identifies the Amazon Web Services (AWS) Identity and Access Management (IAM) role that MongoDB Cloud assumes when it accesses resources in your AWS account.\n"}},"type":"object","required":["roleArn"]},"mongodbatlas:index/StreamConnectionDbRoleToExecute:StreamConnectionDbRoleToExecute":{"properties":{"role":{"type":"string","description":"The name of the role to use. Value can be  `atlasAdmin`, `readWriteAnyDatabase`, or `readAnyDatabase` if \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is set to `BUILT_IN`, or the name of a user-defined role if \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is set to `CUSTOM`.\n"},"type":{"type":"string","description":"Type of connection. Can be `AWSLambda`, `Cluster`, `Https`, `Kafka`, `Sample`, or `SchemaRegistry`.\n"}},"type":"object","required":["role","type"]},"mongodbatlas:index/StreamConnectionNetworking:StreamConnectionNetworking":{"properties":{"access":{"$ref":"#/types/mongodbatlas:index/StreamConnectionNetworkingAccess:StreamConnectionNetworkingAccess","description":"Information about the networking access. See access.\n"}},"type":"object","required":["access"]},"mongodbatlas:index/StreamConnectionNetworkingAccess:StreamConnectionNetworkingAccess":{"properties":{"connectionId":{"type":"string","description":"Id of the Private Link connection when type is `PRIVATE_LINK`.\n"},"type":{"type":"string","description":"Selected networking type. Either `PUBLIC`, `VPC` or `PRIVATE_LINK`. Defaults to `PUBLIC`.\n"}},"type":"object","required":["type"]},"mongodbatlas:index/StreamConnectionSchemaRegistryAuthentication:StreamConnectionSchemaRegistryAuthentication":{"properties":{"password":{"type":"string","description":"Password for the Schema Registry. Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `USER_INFO`.\n","secret":true},"type":{"type":"string","description":"Authentication type discriminator. Specifies the authentication mechanism for Confluent Schema Registry. Valid values are `USER_INFO` or `SASL_INHERIT`.\n* `USER_INFO` - Uses username and password authentication for Confluent Schema Registry.\n* `SASL_INHERIT` - Inherits the authentication configuration from Kafka for the Confluent Schema Registry.\n"},"username":{"type":"string","description":"Username for the Schema Registry. Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `USER_INFO`.\n"}},"type":"object"},"mongodbatlas:index/StreamConnectionSecurity:StreamConnectionSecurity":{"properties":{"brokerPublicCertificate":{"type":"string","description":"A trusted, public x509 certificate for connecting to Kafka over SSL. String value of the certificate must be defined in the attribute.\n"},"protocol":{"type":"string","description":"Describes the transport type. Can be either `SASL_PLAINTEXT` or `SASL_SSL`.\n"}},"type":"object"},"mongodbatlas:index/StreamConnectionTimeouts:StreamConnectionTimeouts":{"properties":{"create":{"type":"string","description":"The maximum time to wait for the stream connection to be fully provisioned after creation. Defaults to \u003cspan pulumi-lang-nodejs=\"`20m`\" pulumi-lang-dotnet=\"`20m`\" pulumi-lang-go=\"`20m`\" pulumi-lang-python=\"`20m`\" pulumi-lang-yaml=\"`20m`\" pulumi-lang-java=\"`20m`\"\u003e`20m`\u003c/span\u003e (20 minutes).\n"},"delete":{"type":"string","description":"The maximum time to wait for the stream connection to be fully deleted. Defaults to \u003cspan pulumi-lang-nodejs=\"`10m`\" pulumi-lang-dotnet=\"`10m`\" pulumi-lang-go=\"`10m`\" pulumi-lang-python=\"`10m`\" pulumi-lang-yaml=\"`10m`\" pulumi-lang-java=\"`10m`\"\u003e`10m`\u003c/span\u003e (10 minutes).\n"},"update":{"type":"string","description":"The maximum time to wait for the stream connection to be fully provisioned after an update. Defaults to \u003cspan pulumi-lang-nodejs=\"`20m`\" pulumi-lang-dotnet=\"`20m`\" pulumi-lang-go=\"`20m`\" pulumi-lang-python=\"`20m`\" pulumi-lang-yaml=\"`20m`\" pulumi-lang-java=\"`20m`\"\u003e`20m`\u003c/span\u003e (20 minutes).\n"}},"type":"object"},"mongodbatlas:index/StreamInstanceDataProcessRegion:StreamInstanceDataProcessRegion":{"properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud service provider where MongoDB Cloud performs stream processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamInstance) describes the valid values.\n"},"region":{"type":"string","description":"Name of the cloud provider region hosting Atlas Stream Processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamInstance) describes the valid values.\n"}},"type":"object","required":["cloudProvider","region"]},"mongodbatlas:index/StreamInstanceStreamConfig:StreamInstanceStreamConfig":{"properties":{"maxTierSize":{"type":"string"},"tier":{"type":"string","description":"Selected tier for the Stream Instance. Configures Memory / VCPU allowances. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamInstance) describes the valid values.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxTierSize","tier"]}}},"mongodbatlas:index/StreamProcessorOptions:StreamProcessorOptions":{"properties":{"dlq":{"$ref":"#/types/mongodbatlas:index/StreamProcessorOptionsDlq:StreamProcessorOptionsDlq","description":"Dead letter queue for the stream processor. Refer to the [MongoDB Atlas Docs](https://www.mongodb.com/docs/atlas/reference/glossary/#std-term-dead-letter-queue) for more information.\n"}},"type":"object","required":["dlq"]},"mongodbatlas:index/StreamProcessorOptionsDlq:StreamProcessorOptionsDlq":{"properties":{"coll":{"type":"string","description":"Name of the collection to use for the DLQ.\n"},"connectionName":{"type":"string","description":"Name of the connection to write DLQ messages to. Must be an Atlas connection.\n"},"db":{"type":"string","description":"Name of the database to use for the DLQ.\n"}},"type":"object","required":["coll","connectionName","db"]},"mongodbatlas:index/StreamProcessorTimeouts:StreamProcessorTimeouts":{"properties":{"create":{"type":"string","description":"A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), and \"h\" (hours). Default: \u003cspan pulumi-lang-nodejs=\"`3h`\" pulumi-lang-dotnet=\"`3h`\" pulumi-lang-go=\"`3h`\" pulumi-lang-python=\"`3h`\" pulumi-lang-yaml=\"`3h`\" pulumi-lang-java=\"`3h`\"\u003e`3h`\u003c/span\u003e.\n"}},"type":"object"},"mongodbatlas:index/StreamWorkspaceDataProcessRegion:StreamWorkspaceDataProcessRegion":{"properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud service provider where MongoDB Cloud performs stream processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/creategroupstreamworkspace) describes the valid values.\n"},"region":{"type":"string","description":"Name of the cloud provider region hosting Atlas Stream Processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/creategroupstreamworkspace) describes the valid values.\n"}},"type":"object","required":["cloudProvider","region"]},"mongodbatlas:index/StreamWorkspaceStreamConfig:StreamWorkspaceStreamConfig":{"properties":{"maxTierSize":{"type":"string","description":"Max tier size for the Stream Workspace. Configures Memory / VCPU allowances.\n"},"tier":{"type":"string","description":"Selected tier for the Stream Workspace. Configures Memory / VCPU allowances. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/creategroupstreamworkspace) describes the valid values.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["maxTierSize","tier"]}}},"mongodbatlas:index/X509AuthenticationDatabaseUserCertificate:X509AuthenticationDatabaseUserCertificate":{"properties":{"createdAt":{"type":"string"},"groupId":{"type":"string"},"id":{"type":"integer"},"notAfter":{"type":"string"},"subject":{"type":"string"}},"type":"object","language":{"nodejs":{"requiredOutputs":["createdAt","groupId","id","notAfter","subject"]}}},"mongodbatlas:index/getAccessListApiKeysResult:getAccessListApiKeysResult":{"properties":{"accessCount":{"type":"integer","description":"Total number of requests that have originated from this IP address or CIDR block.\n"},"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation included in the API access list.\n"},"created":{"type":"string","description":"Date and time when the access list entry was created.\n"},"ipAddress":{"type":"string","description":"IP address included in the API access list.\n"},"lastUsed":{"type":"string","description":"Date and time when the API key was last used from this IP address or CIDR block.\n"},"lastUsedAddress":{"type":"string","description":"IP address from which the last API request was made.\n"}},"type":"object","required":["accessCount","cidrBlock","created","ipAddress","lastUsed","lastUsedAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterAdvancedConfiguration:getAdvancedClusterAdvancedConfiguration":{"properties":{"changeStreamOptionsPreAndPostImagesExpireAfterSeconds":{"type":"integer","description":"(Optional) The minimum pre- and post-image retention time in seconds This parameter is only supported for MongoDB version 6.0 and above. Defaults to `-1`(off).\n"},"customOpensslCipherConfigTls12s":{"type":"array","items":{"type":"string"},"description":"The custom OpenSSL cipher suite list for TLS 1.2. This field is only valid when \u003cspan pulumi-lang-nodejs=\"`tlsCipherConfigMode`\" pulumi-lang-dotnet=\"`TlsCipherConfigMode`\" pulumi-lang-go=\"`tlsCipherConfigMode`\" pulumi-lang-python=\"`tls_cipher_config_mode`\" pulumi-lang-yaml=\"`tlsCipherConfigMode`\" pulumi-lang-java=\"`tlsCipherConfigMode`\"\u003e`tls_cipher_config_mode`\u003c/span\u003e is set to `CUSTOM`.\n"},"customOpensslCipherConfigTls13s":{"type":"array","items":{"type":"string"},"description":"The custom OpenSSL cipher suite list for TLS 1.3. This field is only valid when \u003cspan pulumi-lang-nodejs=\"`tlsCipherConfigMode`\" pulumi-lang-dotnet=\"`TlsCipherConfigMode`\" pulumi-lang-go=\"`tlsCipherConfigMode`\" pulumi-lang-python=\"`tls_cipher_config_mode`\" pulumi-lang-yaml=\"`tlsCipherConfigMode`\" pulumi-lang-java=\"`tlsCipherConfigMode`\"\u003e`tls_cipher_config_mode`\u003c/span\u003e is set to `CUSTOM`.\n"},"defaultMaxTimeMs":{"type":"integer","description":"Default time limit in milliseconds for individual read operations to complete. This option corresponds to the [defaultMaxTimeMS](https://www.mongodb.com/docs/upcoming/reference/cluster-parameters/defaultMaxTimeMS/) cluster parameter. This parameter is supported only for MongoDB version 8.0 and above.\n"},"defaultWriteConcern":{"type":"string","description":"[Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 6.0 clusters default to [majority](https://docs.mongodb.com/manual/reference/write-concern/).\n"},"javascriptEnabled":{"type":"boolean","description":"When true, the cluster allows execution of operations that perform server-side executions of JavaScript. When false, the cluster disables execution of those operations.\n"},"minimumEnabledTlsProtocol":{"type":"string","description":"Sets the minimum Transport Layer Security (TLS) version the cluster accepts for incoming connections. Valid values are:\n- TLS1_2\n- TLS1_3\n"},"noTableScan":{"type":"boolean","description":"When true, the cluster disables the execution of any query that requires a collection scan to return results. When false, the cluster allows the execution of those operations.\n"},"oplogMinRetentionHours":{"type":"number","description":"Minimum retention window for cluster's oplog expressed in hours. A value of null indicates that the cluster uses the default minimum oplog window that MongoDB Cloud calculates.\n"},"oplogSizeMb":{"type":"integer","description":"The custom oplog size of the cluster. Without a value that indicates that the cluster uses the default oplog size calculated by Atlas.\n"},"sampleRefreshIntervalBiConnector":{"type":"integer","description":"Interval in seconds at which the mongosqld process re-samples data to create its relational schema. The default value is 300. The specified value must be a positive integer. Available only for Atlas deployments in which BI Connector for Atlas is enabled.\n"},"sampleSizeBiConnector":{"type":"integer","description":"Number of documents per database to sample when gathering schema information. Defaults to 100. Available only for Atlas deployments in which BI Connector for Atlas is enabled.\n"},"tlsCipherConfigMode":{"type":"string","description":"The TLS cipher suite configuration mode. Valid values include `CUSTOM` or `DEFAULT`. The `DEFAULT` mode uses the default cipher suites. The `CUSTOM` mode allows you to specify custom cipher suites for both TLS 1.2 and TLS 1.3.\n"},"transactionLifetimeLimitSeconds":{"type":"integer","description":"Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds.\n"}},"type":"object","required":["changeStreamOptionsPreAndPostImagesExpireAfterSeconds","customOpensslCipherConfigTls12s","customOpensslCipherConfigTls13s","defaultMaxTimeMs","defaultWriteConcern","javascriptEnabled","minimumEnabledTlsProtocol","noTableScan","oplogMinRetentionHours","oplogSizeMb","sampleRefreshIntervalBiConnector","sampleSizeBiConnector","tlsCipherConfigMode","transactionLifetimeLimitSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterBiConnectorConfig:getAdvancedClusterBiConnectorConfig":{"properties":{"enabled":{"type":"boolean","description":"Specifies whether or not BI Connector for Atlas is enabled on the cluster.\n"},"readPreference":{"type":"string","description":"Specifies the read preference to be used by BI Connector for Atlas on the cluster. Each BI Connector for Atlas read preference contains a distinct combination of [readPreference](https://docs.mongodb.com/manual/core/read-preference/) and [readPreferenceTags](https://docs.mongodb.com/manual/core/read-preference/#tag-sets) options. For details on BI Connector for Atlas read preferences, refer to the [BI Connector Read Preferences Table](https://docs.atlas.mongodb.com/tutorial/create-global-writes-cluster/#bic-read-preferences).\n"}},"type":"object","required":["enabled","readPreference"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterConnectionStrings:getAdvancedClusterConnectionStrings":{"properties":{"private":{"type":"string","description":"[Network-peering-endpoint-aware](https://docs.atlas.mongodb.com/security-vpc-peering/#vpc-peering) mongodb://connection strings for each interface VPC endpoint you configured to connect to this cluster. Returned only if you created a network peering connection to this cluster.\n"},"privateEndpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterConnectionStringsPrivateEndpoint:getAdvancedClusterConnectionStringsPrivateEndpoint"},"description":"Private endpoint connection strings. Each object describes the connection strings you can use to connect to this cluster through a private endpoint. Atlas returns this parameter only if you deployed a private endpoint to all regions to which you deployed this cluster's nodes.\n- `connection_strings.private_endpoint[#].connection_string` - Private-endpoint-aware `mongodb://`connection string for this private endpoint.\n- `connection_strings.private_endpoint[#].srv_connection_string` - Private-endpoint-aware `mongodb+srv://` connection string for this private endpoint. The `mongodb+srv` protocol tells the driver to look up the seed list of hosts in DNS . Atlas synchronizes this list with the nodes in a cluster. If the connection string uses this URI format, you don't need to: Append the seed list or Change the URI if the nodes change. Use this URI format if your driver supports it. If it doesn't, use `connection_strings.private_endpoint[#].connection_string`\n- `connection_strings.private_endpoint[#].srv_shard_optimized_connection_string` - Private endpoint-aware connection string optimized for sharded clusters that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application and Atlas cluster support it. If it doesn't, use and consult the documentation for connectionStrings.privateEndpoint[#].srvConnectionString.\n- `connection_strings.private_endpoint[#].type` - Type of MongoDB process that you connect to with the connection strings. Atlas returns `MONGOD` for replica sets, or `MONGOS` for sharded clusters.\n- `connection_strings.private_endpoint[#].endpoints` - Private endpoint through which you connect to Atlas when you use `connection_strings.private_endpoint[#].connection_string` or `connection_strings.private_endpoint[#].srv_connection_string`\n- `connection_strings.private_endpoint[#].endpoints[#].endpoint_id` - Unique identifier of the private endpoint.\n- `connection_strings.private_endpoint[#].endpoints[#].provider_name` - Cloud provider to which you deployed the private endpoint. Atlas returns `AWS` or `AZURE`.\n- `connection_strings.private_endpoint[#].endpoints[#].region` - Region to which you deployed the private endpoint.\n"},"privateSrv":{"type":"string","description":"[Network-peering-endpoint-aware](https://docs.atlas.mongodb.com/security-vpc-peering/#vpc-peering) mongodb+srv://connection strings for each interface VPC endpoint you configured to connect to this cluster. Returned only if you created a network peering connection to this cluster.\n"},"standard":{"type":"string","description":"Public mongodb:// connection string for this cluster.\n"},"standardSrv":{"type":"string","description":"Public mongodb+srv:// connection string for this cluster. The mongodb+srv protocol tells the driver to look up the seed list of hosts in DNS. Atlas synchronizes this list with the nodes in a cluster. If the connection string uses this URI format, you don’t need to append the seed list or change the URI if the nodes change. Use this URI format if your driver supports it. If it doesn’t  , use connectionStrings.standard.\n"}},"type":"object","required":["private","privateEndpoints","privateSrv","standard","standardSrv"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterConnectionStringsPrivateEndpoint:getAdvancedClusterConnectionStringsPrivateEndpoint":{"properties":{"connectionString":{"type":"string","description":"Private endpoint-aware connection string that uses the `mongodb://` protocol to connect to MongoDB Cloud through a private endpoint.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterConnectionStringsPrivateEndpointEndpoint:getAdvancedClusterConnectionStringsPrivateEndpointEndpoint"},"description":"List that contains the private endpoints through which you connect to MongoDB Cloud when you use **connectionStrings.privateEndpoint[n].connectionString** or **connectionStrings.privateEndpoint[n].srvConnectionString**.\n"},"srvConnectionString":{"type":"string","description":"Private endpoint-aware connection string that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint. The `mongodb+srv` protocol tells the driver to look up the seed list of hosts in the Domain Name System (DNS). This list synchronizes with the nodes in a cluster. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to append the seed list or change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application supports it. If it doesn't, use connectionStrings.privateEndpoint[n].connectionString.\n"},"srvShardOptimizedConnectionString":{"type":"string","description":"Private endpoint-aware connection string optimized for sharded clusters that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application and Atlas cluster supports it. If it doesn't, use and consult the documentation for connectionStrings.privateEndpoint[n].srvConnectionString.\n"},"type":{"type":"string","description":"MongoDB process type to which your application connects. Use `MONGOD` for replica sets and `MONGOS` for sharded clusters.\n"}},"type":"object","required":["connectionString","endpoints","srvConnectionString","srvShardOptimizedConnectionString","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterConnectionStringsPrivateEndpointEndpoint:getAdvancedClusterConnectionStringsPrivateEndpointEndpoint":{"properties":{"endpointId":{"type":"string","description":"Unique string that the cloud provider uses to identify the private endpoint.\n"},"providerName":{"type":"string","description":"Cloud service provider on which the servers are provisioned.\n"},"region":{"type":"string","description":"Region where the private endpoint is deployed.\n"}},"type":"object","required":["endpointId","providerName","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterPinnedFcv:getAdvancedClusterPinnedFcv":{"properties":{"expirationDate":{"type":"string","description":"Expiration date of the fixed FCV. This value is in the ISO 8601 timestamp format (e.g. \"2024-12-04T16:25:00Z\").\n"},"version":{"type":"string","description":"Feature compatibility version of the cluster.\n"}},"type":"object","required":["expirationDate","version"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterReplicationSpec:getAdvancedClusterReplicationSpec":{"properties":{"containerId":{"type":"object","additionalProperties":{"type":"string"},"description":"A key-value map of the Network Peering Container ID(s) for the configuration specified in \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e. The Container ID is the id of the container either created programmatically by the user before any clusters existed in a project or when the first cluster in the region (AWS/Azure) or project (GCP) was created.  The syntax is `\"providerName:regionName\" = \"containerId\"`. Example `AWS:US_EAST_1\" = \"61e0797dde08fb498ca11a71`.\n"},"externalId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the replication object for a shard in a Cluster. This value corresponds to Shard ID displayed in the UI.\n"},"regionConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfig:getAdvancedClusterReplicationSpecRegionConfig"},"description":"Configuration for the hardware specifications for nodes set for a given region. Each \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e object describes the region's priority in elections and the number and type of MongoDB nodes that Atlas deploys to the region. Each \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e object must have either an \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e object, \u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e object, or \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e object. See below.\n"},"zoneId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the zone in a Global Cluster. If clusterType is GEOSHARDED, this value indicates the zone that the given shard belongs to and can be used to configure Global Cluster backup policies.\n"},"zoneName":{"type":"string","description":"Name for the zone in a Global Cluster.\n"}},"type":"object","required":["containerId","externalId","regionConfigs","zoneId","zoneName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfig:getAdvancedClusterReplicationSpecRegionConfig":{"properties":{"analyticsAutoScaling":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigAnalyticsAutoScaling:getAdvancedClusterReplicationSpecRegionConfigAnalyticsAutoScaling","description":"Configuration for the Collection of settings that configures analytics-auto-scaling information for the cluster. See below.\n"},"analyticsSpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigAnalyticsSpecs:getAdvancedClusterReplicationSpecRegionConfigAnalyticsSpecs","description":"Hardware specifications for [analytics nodes](https://docs.atlas.mongodb.com/reference/faq/deployment/#std-label-analytics-nodes-overview) needed in the region. See below.\n"},"autoScaling":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigAutoScaling:getAdvancedClusterReplicationSpecRegionConfigAutoScaling","description":"Configuration for the Collection of settings that configures auto-scaling information for the cluster. See below.\n"},"backingProviderName":{"type":"string","description":"Cloud service provider on which you provision the host for a multi-tenant cluster.\n"},"effectiveAnalyticsSpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigEffectiveAnalyticsSpecs:getAdvancedClusterReplicationSpecRegionConfigEffectiveAnalyticsSpecs","description":"Effective hardware specifications for analytics nodes in the region, reflecting actual Atlas-managed values including auto-scaling changes. See below.\n"},"effectiveElectableSpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigEffectiveElectableSpecs:getAdvancedClusterReplicationSpecRegionConfigEffectiveElectableSpecs","description":"Effective hardware specifications for electable nodes in the region, reflecting actual Atlas-managed values including auto-scaling changes. See below.\n"},"effectiveReadOnlySpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigEffectiveReadOnlySpecs:getAdvancedClusterReplicationSpecRegionConfigEffectiveReadOnlySpecs","description":"Effective hardware specifications for read-only nodes in the region, reflecting actual Atlas-managed values including auto-scaling changes. See below.\n"},"electableSpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigElectableSpecs:getAdvancedClusterReplicationSpecRegionConfigElectableSpecs","description":"Hardware specifications for electable nodes in the region.\n"},"priority":{"type":"integer","description":"Election priority of the region.\n"},"providerName":{"type":"string","description":"Cloud service provider on which the servers are provisioned.\n"},"readOnlySpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigReadOnlySpecs:getAdvancedClusterReplicationSpecRegionConfigReadOnlySpecs","description":"Hardware specifications for read-only nodes in the region. See below.\n"},"regionName":{"type":"string","description":"Physical location of your MongoDB cluster.\n"}},"type":"object","required":["analyticsAutoScaling","analyticsSpecs","autoScaling","backingProviderName","effectiveAnalyticsSpecs","effectiveElectableSpecs","effectiveReadOnlySpecs","electableSpecs","priority","providerName","readOnlySpecs","regionName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigAnalyticsAutoScaling:getAdvancedClusterReplicationSpecRegionConfigAnalyticsAutoScaling":{"properties":{"computeEnabled":{"type":"boolean","description":"Flag that indicates whether instance size auto-scaling is enabled.\n"},"computeMaxInstanceSize":{"type":"string","description":"Maximum instance size to which your cluster can automatically scale (such as M40). \n#### Advanced Configuration\n"},"computeMinInstanceSize":{"type":"string","description":"Minimum instance size to which your cluster can automatically scale (such as M10).\n"},"computeScaleDownEnabled":{"type":"boolean","description":"Flag that indicates whether the instance size may scale down.\n"},"diskGbEnabled":{"type":"boolean","description":"Flag that indicates whether this cluster enables disk auto-scaling.\n"}},"type":"object","required":["computeEnabled","computeMaxInstanceSize","computeMinInstanceSize","computeScaleDownEnabled","diskGbEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigAnalyticsSpecs:getAdvancedClusterReplicationSpecRegionConfigAnalyticsSpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster. \n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigAutoScaling:getAdvancedClusterReplicationSpecRegionConfigAutoScaling":{"properties":{"computeEnabled":{"type":"boolean","description":"Flag that indicates whether instance size auto-scaling is enabled.\n"},"computeMaxInstanceSize":{"type":"string","description":"Maximum instance size to which your cluster can automatically scale (such as M40). \n#### Advanced Configuration\n"},"computeMinInstanceSize":{"type":"string","description":"Minimum instance size to which your cluster can automatically scale (such as M10).\n"},"computeScaleDownEnabled":{"type":"boolean","description":"Flag that indicates whether the instance size may scale down.\n"},"diskGbEnabled":{"type":"boolean","description":"Flag that indicates whether this cluster enables disk auto-scaling.\n"}},"type":"object","required":["computeEnabled","computeMaxInstanceSize","computeMinInstanceSize","computeScaleDownEnabled","diskGbEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigEffectiveAnalyticsSpecs:getAdvancedClusterReplicationSpecRegionConfigEffectiveAnalyticsSpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster. \n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigEffectiveElectableSpecs:getAdvancedClusterReplicationSpecRegionConfigEffectiveElectableSpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster. \n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigEffectiveReadOnlySpecs:getAdvancedClusterReplicationSpecRegionConfigEffectiveReadOnlySpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster. \n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigElectableSpecs:getAdvancedClusterReplicationSpecRegionConfigElectableSpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster. \n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClusterReplicationSpecRegionConfigReadOnlySpecs:getAdvancedClusterReplicationSpecRegionConfigReadOnlySpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster. \n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResult:getAdvancedClustersResult":{"properties":{"advancedConfiguration":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultAdvancedConfiguration:getAdvancedClustersResultAdvancedConfiguration","description":"Get the advanced configuration options. See Advanced Configuration below for more details.\n"},"backupEnabled":{"type":"boolean","description":"Flag that indicates whether the cluster can perform backups. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the cluster can perform backups. You must set this value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e for NVMe clusters. Backup uses [Cloud Backups](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/) for dedicated clusters and [Shared Cluster Backups](https://docs.atlas.mongodb.com/backup/shared-tier/overview/) for tenant clusters. If set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the cluster doesn't use backups.\n"},"biConnectorConfig":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultBiConnectorConfig:getAdvancedClustersResultBiConnectorConfig","description":"Configuration settings applied to BI Connector for Atlas on this cluster. See below. In prior versions of the MongoDB Atlas Terraform Provider, this parameter was named \u003cspan pulumi-lang-nodejs=\"`biConnector`\" pulumi-lang-dotnet=\"`BiConnector`\" pulumi-lang-go=\"`biConnector`\" pulumi-lang-python=\"`bi_connector`\" pulumi-lang-yaml=\"`biConnector`\" pulumi-lang-java=\"`biConnector`\"\u003e`bi_connector`\u003c/span\u003e.\n"},"clusterId":{"type":"string","description":"The cluster ID.\n"},"clusterType":{"type":"string","description":"Type of the cluster that you want to create.\n"},"configServerManagementMode":{"type":"string","description":"Config Server Management Mode for creating or updating a sharded cluster. Valid values are `ATLAS_MANAGED` (default) and `FIXED_TO_DEDICATED`. When configured as `ATLAS_MANAGED`, Atlas may automatically switch the cluster's config server type for optimal performance and savings. When configured as `FIXED_TO_DEDICATED`, the cluster will always use a dedicated config server. To learn more, see the [Sharded Cluster Config Servers documentation](https://dochub.mongodb.org/docs/manual/core/sharded-cluster-config-servers/).\n"},"configServerType":{"type":"string","description":"Describes a sharded cluster's config server type. Valid values are `DEDICATED` and `EMBEDDED`. To learn more, see the [Sharded Cluster Config Servers documentation](https://dochub.mongodb.org/docs/manual/core/sharded-cluster-config-servers/).\n"},"connectionStrings":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultConnectionStrings:getAdvancedClustersResultConnectionStrings","description":"Set of connection strings that your applications use to connect to this cluster. More information in [Connection-strings](https://docs.mongodb.com/manual/reference/connection-string/). Use the parameters in this object to connect your applications to this cluster. To learn more about the formats of connection strings, see [Connection String Options](https://docs.atlas.mongodb.com/reference/faq/connection-changes/). NOTE: Atlas returns the contents of this object after the cluster is operational, not while it builds the cluster.\n"},"createDate":{"type":"string","description":"Date and time when MongoDB Cloud created this cluster. This parameter expresses its value in ISO 8601 format in UTC.\n"},"encryptionAtRestProvider":{"type":"string","description":"Possible values are AWS, GCP, AZURE or NONE.\n"},"globalClusterSelfManagedSharding":{"type":"boolean","description":"Flag that indicates if cluster uses Atlas-Managed Sharding (false) or Self-Managed Sharding (true).\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"mongoDbMajorVersion":{"type":"string","description":"Version of the cluster to deploy.\n"},"mongoDbVersion":{"type":"string","description":"Version of MongoDB the cluster runs, in `major-version`.`minor-version` format.\n"},"name":{"type":"string","description":"Human-readable label that identifies this cluster.\n"},"paused":{"type":"boolean","description":"Flag that indicates whether the cluster is paused or not.\n"},"pinnedFcv":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultPinnedFcv:getAdvancedClustersResultPinnedFcv","description":"The pinned Feature Compatibility Version (FCV) with its associated expiration date. See below.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates if the cluster uses Continuous Cloud Backup.\n"},"projectId":{"type":"string","description":"The unique ID for the project to get the clusters.\n"},"redactClientLogData":{"type":"boolean","description":"Flag that enables or disables log redaction, see the [manual](https://www.mongodb.com/docs/manual/administration/monitoring/#log-redaction) for more information.\n"},"replicaSetScalingStrategy":{"type":"string","description":"Replica set scaling mode for your cluster.\n"},"replicationSpecs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultReplicationSpec:getAdvancedClustersResultReplicationSpec"},"description":"List of settings that configure your cluster regions. This array has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations. See below\n"},"rootCertType":{"type":"string","description":"Certificate Authority that MongoDB Atlas clusters use.\n"},"stateName":{"type":"string","description":"Current state of the cluster. The possible states are:\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"},"useAwsTimeBasedSnapshotCopyForFastInitialSync":{"type":"boolean","description":"Flag that indicates whether time-based snapshot copies will be used instead of slower standard snapshot copies during fast Atlas cross-region initial syncs. This flag is only relevant for clusters containing AWS nodes.\n"},"useEffectiveFields":{"type":"boolean","description":"Controls how hardware specification fields are returned in the response. When set to true, the non-effective specs (\u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e) fields return the hardware specifications that the client provided. When set to false (default), the non-effective specs fields show the **current** hardware specifications. Cluster auto-scaling is the primary cause for differences between initial and current hardware specifications. This attribute applies to dedicated clusters, not to tenant or flex clusters. **Note:** Effective specs (\u003cspan pulumi-lang-nodejs=\"`effectiveElectableSpecs`\" pulumi-lang-dotnet=\"`EffectiveElectableSpecs`\" pulumi-lang-go=\"`effectiveElectableSpecs`\" pulumi-lang-python=\"`effective_electable_specs`\" pulumi-lang-yaml=\"`effectiveElectableSpecs`\" pulumi-lang-java=\"`effectiveElectableSpecs`\"\u003e`effective_electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`effectiveReadOnlySpecs`\" pulumi-lang-dotnet=\"`EffectiveReadOnlySpecs`\" pulumi-lang-go=\"`effectiveReadOnlySpecs`\" pulumi-lang-python=\"`effective_read_only_specs`\" pulumi-lang-yaml=\"`effectiveReadOnlySpecs`\" pulumi-lang-java=\"`effectiveReadOnlySpecs`\"\u003e`effective_read_only_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`effectiveAnalyticsSpecs`\" pulumi-lang-dotnet=\"`EffectiveAnalyticsSpecs`\" pulumi-lang-go=\"`effectiveAnalyticsSpecs`\" pulumi-lang-python=\"`effective_analytics_specs`\" pulumi-lang-yaml=\"`effectiveAnalyticsSpecs`\" pulumi-lang-java=\"`effectiveAnalyticsSpecs`\"\u003e`effective_analytics_specs`\u003c/span\u003e) are always returned for dedicated clusters regardless of the flag value and always report the **current** hardware specifications. See the resource documentation for Auto-Scaling with Effective Fields for more details.\n"},"versionReleaseSystem":{"type":"string","description":"Release cadence that Atlas uses for this cluster.\n"}},"type":"object","required":["advancedConfiguration","backupEnabled","biConnectorConfig","clusterId","clusterType","configServerManagementMode","configServerType","connectionStrings","createDate","encryptionAtRestProvider","globalClusterSelfManagedSharding","labels","mongoDbMajorVersion","mongoDbVersion","name","paused","pinnedFcv","pitEnabled","projectId","redactClientLogData","replicaSetScalingStrategy","replicationSpecs","rootCertType","stateName","tags","terminationProtectionEnabled","useAwsTimeBasedSnapshotCopyForFastInitialSync","versionReleaseSystem"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultAdvancedConfiguration:getAdvancedClustersResultAdvancedConfiguration":{"properties":{"changeStreamOptionsPreAndPostImagesExpireAfterSeconds":{"type":"integer","description":"(Optional) The minimum pre- and post-image retention time in seconds. This parameter is only supported for MongoDB version 6.0 and above. Defaults to `-1`(off).\n"},"customOpensslCipherConfigTls12s":{"type":"array","items":{"type":"string"},"description":"The custom OpenSSL cipher suite list for TLS 1.2. This field is only valid when \u003cspan pulumi-lang-nodejs=\"`tlsCipherConfigMode`\" pulumi-lang-dotnet=\"`TlsCipherConfigMode`\" pulumi-lang-go=\"`tlsCipherConfigMode`\" pulumi-lang-python=\"`tls_cipher_config_mode`\" pulumi-lang-yaml=\"`tlsCipherConfigMode`\" pulumi-lang-java=\"`tlsCipherConfigMode`\"\u003e`tls_cipher_config_mode`\u003c/span\u003e is set to `CUSTOM`.\n"},"customOpensslCipherConfigTls13s":{"type":"array","items":{"type":"string"},"description":"The custom OpenSSL cipher suite list for TLS 1.3. This field is only valid when \u003cspan pulumi-lang-nodejs=\"`tlsCipherConfigMode`\" pulumi-lang-dotnet=\"`TlsCipherConfigMode`\" pulumi-lang-go=\"`tlsCipherConfigMode`\" pulumi-lang-python=\"`tls_cipher_config_mode`\" pulumi-lang-yaml=\"`tlsCipherConfigMode`\" pulumi-lang-java=\"`tlsCipherConfigMode`\"\u003e`tls_cipher_config_mode`\u003c/span\u003e is set to `CUSTOM`.\n"},"defaultMaxTimeMs":{"type":"integer","description":"Default time limit in milliseconds for individual read operations to complete. This option corresponds to the [defaultMaxTimeMS](https://www.mongodb.com/docs/upcoming/reference/cluster-parameters/defaultMaxTimeMS/) cluster parameter. This parameter is supported only for MongoDB version 8.0 and above.\n"},"defaultWriteConcern":{"type":"string","description":"[Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 6.0 clusters default to [majority](https://docs.mongodb.com/manual/reference/write-concern/).\n"},"javascriptEnabled":{"type":"boolean","description":"When true, the cluster allows execution of operations that perform server-side executions of JavaScript. When false, the cluster disables execution of those operations.\n"},"minimumEnabledTlsProtocol":{"type":"string","description":"Sets the minimum Transport Layer Security (TLS) version the cluster accepts for incoming connections. Valid values are:\n- TLS1_2\n- TLS1_3\n"},"noTableScan":{"type":"boolean","description":"When true, the cluster disables the execution of any query that requires a collection scan to return results. When false, the cluster allows the execution of those operations.\n"},"oplogMinRetentionHours":{"type":"number","description":"Minimum retention window for cluster's oplog expressed in hours. A value of null indicates that the cluster uses the default minimum oplog window that MongoDB Cloud calculates.\n"},"oplogSizeMb":{"type":"integer","description":"The custom oplog size of the cluster. Without a value that indicates that the cluster uses the default oplog size calculated by Atlas.\n"},"sampleRefreshIntervalBiConnector":{"type":"integer","description":"Interval in seconds at which the mongosqld process re-samples data to create its relational schema. The default value is 300. The specified value must be a positive integer. Available only for Atlas deployments in which BI Connector for Atlas is enabled.\n"},"sampleSizeBiConnector":{"type":"integer","description":"Number of documents per database to sample when gathering schema information. Defaults to 100. Available only for Atlas deployments in which BI Connector for Atlas is enabled.\n"},"tlsCipherConfigMode":{"type":"string","description":"The TLS cipher suite configuration mode. Valid values include `CUSTOM` or `DEFAULT`. The `DEFAULT` mode uses the default cipher suites. The `CUSTOM` mode allows you to specify custom cipher suites for both TLS 1.2 and TLS 1.3.\n"},"transactionLifetimeLimitSeconds":{"type":"integer","description":"(Optional) Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds.\n"}},"type":"object","required":["changeStreamOptionsPreAndPostImagesExpireAfterSeconds","customOpensslCipherConfigTls12s","customOpensslCipherConfigTls13s","defaultMaxTimeMs","defaultWriteConcern","javascriptEnabled","minimumEnabledTlsProtocol","noTableScan","oplogMinRetentionHours","oplogSizeMb","sampleRefreshIntervalBiConnector","sampleSizeBiConnector","tlsCipherConfigMode","transactionLifetimeLimitSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultBiConnectorConfig:getAdvancedClustersResultBiConnectorConfig":{"properties":{"enabled":{"type":"boolean","description":"Specifies whether or not BI Connector for Atlas is enabled on the cluster.\n"},"readPreference":{"type":"string","description":"Specifies the read preference to be used by BI Connector for Atlas on the cluster. Each BI Connector for Atlas read preference contains a distinct combination of [readPreference](https://docs.mongodb.com/manual/core/read-preference/) and [readPreferenceTags](https://docs.mongodb.com/manual/core/read-preference/#tag-sets) options. For details on BI Connector for Atlas read preferences, refer to the [BI Connector Read Preferences Table](https://docs.atlas.mongodb.com/tutorial/create-global-writes-cluster/#bic-read-preferences).\n"}},"type":"object","required":["enabled","readPreference"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultConnectionStrings:getAdvancedClustersResultConnectionStrings":{"properties":{"private":{"type":"string","description":"[Network-peering-endpoint-aware](https://docs.atlas.mongodb.com/security-vpc-peering/#vpc-peering) mongodb://connection strings for each interface VPC endpoint you configured to connect to this cluster. Returned only if you created a network peering connection to this cluster.\n"},"privateEndpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultConnectionStringsPrivateEndpoint:getAdvancedClustersResultConnectionStringsPrivateEndpoint"},"description":"Private endpoint connection strings. Each object describes the connection strings you can use to connect to this cluster through a private endpoint. Atlas returns this parameter only if you deployed a private endpoint to all regions to which you deployed this cluster's nodes.\n- `connection_strings.private_endpoint[#].connection_string` - Private-endpoint-aware `mongodb://`connection string for this private endpoint.\n- `connection_strings.private_endpoint[#].srv_connection_string` - Private-endpoint-aware `mongodb+srv://` connection string for this private endpoint. The `mongodb+srv` protocol tells the driver to look up the seed list of hosts in DNS . Atlas synchronizes this list with the nodes in a cluster. If the connection string uses this URI format, you don't need to: Append the seed list or Change the URI if the nodes change. Use this URI format if your driver supports it. If it doesn't, use `connection_strings.private_endpoint[#].connection_string`\n- `connection_strings.private_endpoint[#].srv_shard_optimized_connection_string` - Private endpoint-aware connection string optimized for sharded clusters that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application and Atlas cluster support it. If it doesn't, use and consult the documentation for connectionStrings.privateEndpoint[#].srvConnectionString.\n- `connection_strings.private_endpoint[#].type` - Type of MongoDB process that you connect to with the connection strings. Atlas returns `MONGOD` for replica sets, or `MONGOS` for sharded clusters.\n- `connection_strings.private_endpoint[#].endpoints` - Private endpoint through which you connect to Atlas when you use `connection_strings.private_endpoint[#].connection_string` or `connection_strings.private_endpoint[#].srv_connection_string`\n- `connection_strings.private_endpoint[#].endpoints[#].endpoint_id` - Unique identifier of the private endpoint.\n- `connection_strings.private_endpoint[#].endpoints[#].provider_name` - Cloud provider to which you deployed the private endpoint. Atlas returns `AWS` or `AZURE`.\n- `connection_strings.private_endpoint[#].endpoints[#].region` - Region to which you deployed the private endpoint.\n"},"privateSrv":{"type":"string","description":"[Network-peering-endpoint-aware](https://docs.atlas.mongodb.com/security-vpc-peering/#vpc-peering) mongodb+srv://connection strings for each interface VPC endpoint you configured to connect to this cluster. Returned only if you created a network peering connection to this cluster.\n"},"standard":{"type":"string","description":"Public mongodb:// connection string for this cluster.\n"},"standardSrv":{"type":"string","description":"Public mongodb+srv:// connection string for this cluster. The mongodb+srv protocol tells the driver to look up the seed list of hosts in DNS. Atlas synchronizes this list with the nodes in a cluster. If the connection string uses this URI format, you don’t need to append the seed list or change the URI if the nodes change. Use this URI format if your driver supports it. If it doesn’t  , use connectionStrings.standard.\n"}},"type":"object","required":["private","privateEndpoints","privateSrv","standard","standardSrv"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultConnectionStringsPrivateEndpoint:getAdvancedClustersResultConnectionStringsPrivateEndpoint":{"properties":{"connectionString":{"type":"string","description":"Private endpoint-aware connection string that uses the `mongodb://` protocol to connect to MongoDB Cloud through a private endpoint.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultConnectionStringsPrivateEndpointEndpoint:getAdvancedClustersResultConnectionStringsPrivateEndpointEndpoint"},"description":"List that contains the private endpoints through which you connect to MongoDB Cloud when you use **connectionStrings.privateEndpoint[n].connectionString** or **connectionStrings.privateEndpoint[n].srvConnectionString**.\n"},"srvConnectionString":{"type":"string","description":"Private endpoint-aware connection string that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint. The `mongodb+srv` protocol tells the driver to look up the seed list of hosts in the Domain Name System (DNS). This list synchronizes with the nodes in a cluster. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to append the seed list or change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application supports it. If it doesn't, use connectionStrings.privateEndpoint[n].connectionString.\n"},"srvShardOptimizedConnectionString":{"type":"string","description":"Private endpoint-aware connection string optimized for sharded clusters that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint. If the connection string uses this Uniform Resource Identifier (URI) format, you don't need to change the Uniform Resource Identifier (URI) if the nodes change. Use this Uniform Resource Identifier (URI) format if your application and Atlas cluster supports it. If it doesn't, use and consult the documentation for connectionStrings.privateEndpoint[n].srvConnectionString.\n"},"type":{"type":"string","description":"MongoDB process type to which your application connects. Use `MONGOD` for replica sets and `MONGOS` for sharded clusters.\n"}},"type":"object","required":["connectionString","endpoints","srvConnectionString","srvShardOptimizedConnectionString","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultConnectionStringsPrivateEndpointEndpoint:getAdvancedClustersResultConnectionStringsPrivateEndpointEndpoint":{"properties":{"endpointId":{"type":"string","description":"Unique string that the cloud provider uses to identify the private endpoint.\n"},"providerName":{"type":"string","description":"Cloud service provider on which the servers are provisioned.\n"},"region":{"type":"string","description":"Region where the private endpoint is deployed.\n"}},"type":"object","required":["endpointId","providerName","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultPinnedFcv:getAdvancedClustersResultPinnedFcv":{"properties":{"expirationDate":{"type":"string","description":"Expiration date of the fixed FCV. This value is in the ISO 8601 timestamp format (e.g. \"2024-12-04T16:25:00Z\").\n"},"version":{"type":"string","description":"Feature compatibility version of the cluster.\n"}},"type":"object","required":["expirationDate","version"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultReplicationSpec:getAdvancedClustersResultReplicationSpec":{"properties":{"containerId":{"type":"object","additionalProperties":{"type":"string"},"description":"A key-value map of the Network Peering Container ID(s) for the configuration specified in \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e. The Container ID is the id of the container either created programmatically by the user before any clusters existed in a project or when the first cluster in the region (AWS/Azure) or project (GCP) was created.  The syntax is `\"providerName:regionName\" = \"containerId\"`. Example `AWS:US_EAST_1\" = \"61e0797dde08fb498ca11a71`.\n"},"externalId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the replication object for a shard in a Cluster. This value corresponds to Shard ID displayed in the UI.\n"},"regionConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfig:getAdvancedClustersResultReplicationSpecRegionConfig"},"description":"Configuration for the hardware specifications for nodes set for a given region. Each \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e object describes the region's priority in elections and the number and type of MongoDB nodes that Atlas deploys to the region. Each \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e object must have either an \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e object, \u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e object, or \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e object. See below.\n"},"zoneId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the zone in a Global Cluster. If clusterType is GEOSHARDED, this value indicates the zone that the given shard belongs to and can be used to configure Global Cluster backup policies.\n"},"zoneName":{"type":"string","description":"Name for the zone in a Global Cluster.\n"}},"type":"object","required":["containerId","externalId","regionConfigs","zoneId","zoneName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfig:getAdvancedClustersResultReplicationSpecRegionConfig":{"properties":{"analyticsAutoScaling":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigAnalyticsAutoScaling:getAdvancedClustersResultReplicationSpecRegionConfigAnalyticsAutoScaling","description":"Configuration for the Collection of settings that configures analytis-auto-scaling information for the cluster. See below.\n"},"analyticsSpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigAnalyticsSpecs:getAdvancedClustersResultReplicationSpecRegionConfigAnalyticsSpecs","description":"Hardware specifications for [analytics nodes](https://docs.atlas.mongodb.com/reference/faq/deployment/#std-label-analytics-nodes-overview) needed in the region. See below.\n"},"autoScaling":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigAutoScaling:getAdvancedClustersResultReplicationSpecRegionConfigAutoScaling","description":"Configuration for the Collection of settings that configures auto-scaling information for the cluster. See below.\n"},"backingProviderName":{"type":"string","description":"Cloud service provider on which you provision the host for a multi-tenant cluster.\n"},"effectiveAnalyticsSpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigEffectiveAnalyticsSpecs:getAdvancedClustersResultReplicationSpecRegionConfigEffectiveAnalyticsSpecs","description":"Effective hardware specifications for analytics nodes in the region, reflecting actual Atlas-managed values including auto-scaling changes. See below.\n"},"effectiveElectableSpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigEffectiveElectableSpecs:getAdvancedClustersResultReplicationSpecRegionConfigEffectiveElectableSpecs","description":"Effective hardware specifications for electable nodes in the region, reflecting actual Atlas-managed values including auto-scaling changes. See below.\n"},"effectiveReadOnlySpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigEffectiveReadOnlySpecs:getAdvancedClustersResultReplicationSpecRegionConfigEffectiveReadOnlySpecs","description":"Effective hardware specifications for read-only nodes in the region, reflecting actual Atlas-managed values including auto-scaling changes. See below.\n"},"electableSpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigElectableSpecs:getAdvancedClustersResultReplicationSpecRegionConfigElectableSpecs","description":"Hardware specifications for electable nodes in the region.\n"},"priority":{"type":"integer","description":"Election priority of the region.\n"},"providerName":{"type":"string","description":"Cloud service provider on which the servers are provisioned.\n"},"readOnlySpecs":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigReadOnlySpecs:getAdvancedClustersResultReplicationSpecRegionConfigReadOnlySpecs","description":"Hardware specifications for read-only nodes in the region. See below.\n"},"regionName":{"type":"string","description":"Physical location of your MongoDB cluster.\n"}},"type":"object","required":["analyticsAutoScaling","analyticsSpecs","autoScaling","backingProviderName","effectiveAnalyticsSpecs","effectiveElectableSpecs","effectiveReadOnlySpecs","electableSpecs","priority","providerName","readOnlySpecs","regionName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigAnalyticsAutoScaling:getAdvancedClustersResultReplicationSpecRegionConfigAnalyticsAutoScaling":{"properties":{"computeEnabled":{"type":"boolean","description":"Flag that indicates whether instance size auto-scaling is enabled.\n"},"computeMaxInstanceSize":{"type":"string","description":"Maximum instance size to which your cluster can automatically scale (such as M40).\n"},"computeMinInstanceSize":{"type":"string","description":"Minimum instance size to which your cluster can automatically scale (such as M10).\n"},"computeScaleDownEnabled":{"type":"boolean","description":"Flag that indicates whether the instance size may scale down.\n"},"diskGbEnabled":{"type":"boolean","description":"Flag that indicates whether this cluster enables disk auto-scaling.\n"}},"type":"object","required":["computeEnabled","computeMaxInstanceSize","computeMinInstanceSize","computeScaleDownEnabled","diskGbEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigAnalyticsSpecs:getAdvancedClustersResultReplicationSpecRegionConfigAnalyticsSpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster.\n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigAutoScaling:getAdvancedClustersResultReplicationSpecRegionConfigAutoScaling":{"properties":{"computeEnabled":{"type":"boolean","description":"Flag that indicates whether instance size auto-scaling is enabled.\n"},"computeMaxInstanceSize":{"type":"string","description":"Maximum instance size to which your cluster can automatically scale (such as M40).\n"},"computeMinInstanceSize":{"type":"string","description":"Minimum instance size to which your cluster can automatically scale (such as M10).\n"},"computeScaleDownEnabled":{"type":"boolean","description":"Flag that indicates whether the instance size may scale down.\n"},"diskGbEnabled":{"type":"boolean","description":"Flag that indicates whether this cluster enables disk auto-scaling.\n"}},"type":"object","required":["computeEnabled","computeMaxInstanceSize","computeMinInstanceSize","computeScaleDownEnabled","diskGbEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigEffectiveAnalyticsSpecs:getAdvancedClustersResultReplicationSpecRegionConfigEffectiveAnalyticsSpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster.\n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigEffectiveElectableSpecs:getAdvancedClustersResultReplicationSpecRegionConfigEffectiveElectableSpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster.\n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigEffectiveReadOnlySpecs:getAdvancedClustersResultReplicationSpecRegionConfigEffectiveReadOnlySpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster.\n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigElectableSpecs:getAdvancedClustersResultReplicationSpecRegionConfigElectableSpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster.\n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAdvancedClustersResultReplicationSpecRegionConfigReadOnlySpecs:getAdvancedClustersResultReplicationSpecRegionConfigReadOnlySpecs":{"properties":{"diskIops":{"type":"integer","description":"Target IOPS (Input/Output Operations Per Second) desired for storage attached to this hardware. This parameter defaults to the cluster tier's standard IOPS value.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity that the host's root volume possesses expressed in gigabytes. If disk size specified is below the minimum (10 GB), this parameter defaults to the minimum disk size value. Storage charge calculations depend on whether you choose the default value or a custom value.  The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require more storage space, consider upgrading your cluster to a higher tier.\n"},"ebsVolumeType":{"type":"string","description":"Type of storage you want to attach to your AWS-provisioned cluster.\n* `STANDARD` volume types can't exceed the default IOPS rate for the selected volume size.\n* `PROVISIONED` volume types must fall within the allowable IOPS range for the selected volume size.\n"},"instanceSize":{"type":"string","description":"Hardware specification for the instance sizes in this region.\n"},"nodeCount":{"type":"integer","description":"Number of nodes of the given type for MongoDB Atlas to deploy to the region.\n"}},"type":"object","required":["diskIops","diskSizeGb","ebsVolumeType","instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAlertConfigurationMatcher:getAlertConfigurationMatcher":{"properties":{"fieldName":{"type":"string","description":"Name of the field in the target object to match on.\n"},"operator":{"type":"string","description":"The operator to apply when checking the current metric value against the threshold value.\nAccepted values are:\n- `GREATER_THAN`\n- `LESS_THAN`\n"},"value":{"type":"string","description":"Value to test with the specified operator. If \u003cspan pulumi-lang-nodejs=\"`fieldName`\" pulumi-lang-dotnet=\"`FieldName`\" pulumi-lang-go=\"`fieldName`\" pulumi-lang-python=\"`field_name`\" pulumi-lang-yaml=\"`fieldName`\" pulumi-lang-java=\"`fieldName`\"\u003e`field_name`\u003c/span\u003e is set to TYPE_NAME, you can match on the following values:\n- `PRIMARY`\n- `SECONDARY`\n- `STANDALONE`\n- `CONFIG`\n- `MONGOS`\n"}},"type":"object","required":["fieldName","operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAlertConfigurationMetricThresholdConfig:getAlertConfigurationMetricThresholdConfig":{"properties":{"metricName":{"type":"string","description":"Name of the metric to check. The full list being quite large, please refer to atlas docs [here for general metrics](https://docs.atlas.mongodb.com/reference/alert-host-metrics/#measurement-types) and [here for serverless metrics](https://www.mongodb.com/docs/atlas/reference/api/alert-configurations-create-config/#serverless-measurements)\n"},"mode":{"type":"string","description":"This must be set to AVERAGE. Atlas computes the current metric value as an average.\n"},"operator":{"type":"string","description":"The operator to apply when checking the current metric value against the threshold value.\nAccepted values are:\n- `GREATER_THAN`\n- `LESS_THAN`\n"},"threshold":{"type":"number","description":"Threshold value outside of which an alert will be triggered.\n"},"units":{"type":"string","description":"The units for the threshold value. Depends on the type of metric.\nRefer to the [MongoDB API Alert Configuration documentation](https://www.mongodb.com/docs/atlas/reference/api/alert-configurations-get-config/#request-body-parameters) for a list of accepted values.\n"}},"type":"object","required":["metricName","mode","operator","threshold","units"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAlertConfigurationNotification:getAlertConfigurationNotification":{"properties":{"apiToken":{"type":"string","description":"Slack API token. Required for the SLACK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.\n","secret":true},"channelName":{"type":"string","description":"Slack channel name. Required for the SLACK notifications type.\n"},"datadogApiKey":{"type":"string","description":"Datadog API Key. Found in the Datadog dashboard. Required for the DATADOG notifications type.\n","secret":true},"datadogRegion":{"type":"string","description":"Region that indicates which API URL to use. See the `datadogRegion` field in the \u003cspan pulumi-lang-nodejs=\"`notifications`\" pulumi-lang-dotnet=\"`Notifications`\" pulumi-lang-go=\"`notifications`\" pulumi-lang-python=\"`notifications`\" pulumi-lang-yaml=\"`notifications`\" pulumi-lang-java=\"`notifications`\"\u003e`notifications`\u003c/span\u003e request parameter of [MongoDB API Alert Configuration documentation](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createalertconfiguration) for more details. The default Datadog region is US.\n"},"delayMin":{"type":"integer","description":"Number of minutes to wait after an alert condition is detected before sending out the first notification.\n"},"emailAddress":{"type":"string","description":"Email address to which alert notifications are sent. Required for the EMAIL notifications type.\n"},"emailEnabled":{"type":"boolean","description":"Flag indicating email notifications should be sent. Atlas returns this value if \u003cspan pulumi-lang-nodejs=\"`typeName`\" pulumi-lang-dotnet=\"`TypeName`\" pulumi-lang-go=\"`typeName`\" pulumi-lang-python=\"`type_name`\" pulumi-lang-yaml=\"`typeName`\" pulumi-lang-java=\"`typeName`\"\u003e`type_name`\u003c/span\u003e is set  to `ORG`, `GROUP`, or `USER`.\n"},"integrationId":{"type":"string","description":"The ID of the associated integration, the credentials of which to use for requests.\n"},"intervalMin":{"type":"integer","description":"Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved. The minimum value is 5.\n"},"microsoftTeamsWebhookUrl":{"type":"string","description":"Microsoft Teams channel incoming webhook URL. Required for the `MICROSOFT_TEAMS` notifications type.\n","secret":true},"mobileNumber":{"type":"string","description":"Mobile number to which alert notifications are sent. Required for the SMS notifications type.\n"},"notifierId":{"type":"string","description":"The notifier ID is a system-generated unique identifier assigned to each notification method. This is needed when updating third-party notifications without requiring explicit authentication credentials.\n"},"opsGenieApiKey":{"type":"string","description":"Opsgenie API Key. Required for the `OPS_GENIE` notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.\n","secret":true},"opsGenieRegion":{"type":"string","description":"Region that indicates which API URL to use. Accepted regions are: `US` ,`EU`. The default Opsgenie region is US.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Atlas role in current Project or Organization. Atlas returns this value if you set \u003cspan pulumi-lang-nodejs=\"`typeName`\" pulumi-lang-dotnet=\"`TypeName`\" pulumi-lang-go=\"`typeName`\" pulumi-lang-python=\"`type_name`\" pulumi-lang-yaml=\"`typeName`\" pulumi-lang-java=\"`typeName`\"\u003e`type_name`\u003c/span\u003e to `ORG` or `GROUP`.\n"},"serviceKey":{"type":"string","description":"PagerDuty service key. Required for the PAGER_DUTY notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.\n","secret":true},"smsEnabled":{"type":"boolean","description":"Flag indicating text notifications should be sent. Atlas returns this value if \u003cspan pulumi-lang-nodejs=\"`typeName`\" pulumi-lang-dotnet=\"`TypeName`\" pulumi-lang-go=\"`typeName`\" pulumi-lang-python=\"`type_name`\" pulumi-lang-yaml=\"`typeName`\" pulumi-lang-java=\"`typeName`\"\u003e`type_name`\u003c/span\u003e is set to `ORG`, `GROUP`, or `USER`.\n"},"teamId":{"type":"string","description":"Unique identifier of a team.\n"},"teamName":{"type":"string","description":"Label for the team that receives this notification.\n"},"typeName":{"type":"string","description":"Type of alert notification.\nAccepted values are:\n- `DATADOG`\n- `EMAIL`\n- `GROUP` (Project)\n- `OPS_GENIE`\n- `ORG`\n- `PAGER_DUTY`\n- `SLACK`\n- `SMS`\n- `TEAM`\n- `USER`\n- `VICTOR_OPS`\n- `WEBHOOK`\n- `MICROSOFT_TEAMS`\n"},"username":{"type":"string","description":"Name of the Atlas user to which to send notifications. Only a user in the project that owns the alert configuration is allowed here. Required for the `USER` notifications type.\n"},"victorOpsApiKey":{"type":"string","description":"VictorOps API key. Required for the `VICTOR_OPS` notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.\n","secret":true},"victorOpsRoutingKey":{"type":"string","description":"VictorOps routing key. Optional for the `VICTOR_OPS` notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.\n","secret":true},"webhookSecret":{"type":"string","description":"Authentication secret for the `WEBHOOK` notifications type.\n","secret":true},"webhookUrl":{"type":"string","description":"Target URL  for the `WEBHOOK` notifications type.\n","secret":true}},"type":"object","required":["apiToken","channelName","datadogApiKey","datadogRegion","delayMin","emailAddress","emailEnabled","integrationId","intervalMin","microsoftTeamsWebhookUrl","mobileNumber","notifierId","opsGenieApiKey","opsGenieRegion","roles","serviceKey","smsEnabled","teamId","teamName","typeName","username","victorOpsApiKey","victorOpsRoutingKey","webhookSecret","webhookUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAlertConfigurationOutput:getAlertConfigurationOutput":{"properties":{"label":{"type":"string"},"type":{"type":"string"},"value":{"type":"string","description":"Value to test with the specified operator. If \u003cspan pulumi-lang-nodejs=\"`fieldName`\" pulumi-lang-dotnet=\"`FieldName`\" pulumi-lang-go=\"`fieldName`\" pulumi-lang-python=\"`field_name`\" pulumi-lang-yaml=\"`fieldName`\" pulumi-lang-java=\"`fieldName`\"\u003e`field_name`\u003c/span\u003e is set to TYPE_NAME, you can match on the following values:\n- `PRIMARY`\n- `SECONDARY`\n- `STANDALONE`\n- `CONFIG`\n- `MONGOS`\n"}},"type":"object","required":["type","value"],"language":{"nodejs":{"requiredInputs":["type"]}}},"mongodbatlas:index/getAlertConfigurationThresholdConfig:getAlertConfigurationThresholdConfig":{"properties":{"operator":{"type":"string","description":"The operator to apply when checking the current metric value against the threshold value.\nAccepted values are:\n- `GREATER_THAN`\n- `LESS_THAN`\n"},"threshold":{"type":"number","description":"Threshold value outside of which an alert will be triggered.\n"},"units":{"type":"string","description":"The units for the threshold value. Depends on the type of metric.\nRefer to the [MongoDB API Alert Configuration documentation](https://www.mongodb.com/docs/atlas/reference/api/alert-configurations-get-config/#request-body-parameters) for a list of accepted values.\n"}},"type":"object","required":["operator","threshold","units"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAlertConfigurationsListOption:getAlertConfigurationsListOption":{"properties":{"includeCount":{"type":"boolean"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"}},"type":"object"},"mongodbatlas:index/getAlertConfigurationsResult:getAlertConfigurationsResult":{"properties":{"alertConfigurationId":{"type":"string","description":"The ID of the alert configuration\n"},"created":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when this alert configuration was created.\n"},"enabled":{"type":"boolean","description":"If set to true, the alert configuration is enabled. If enabled is not exported it is set to false.\n"},"eventType":{"type":"string","description":"The type of event that will trigger an alert.\n"},"id":{"type":"string"},"matchers":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationsResultMatcher:getAlertConfigurationsResultMatcher"},"description":"Rules to apply when matching an object against this alert configuration. See matchers.\n"},"metricThresholdConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationsResultMetricThresholdConfig:getAlertConfigurationsResultMetricThresholdConfig"},"description":"The threshold that causes an alert to be triggered. Required if \u003cspan pulumi-lang-nodejs=\"`eventTypeName`\" pulumi-lang-dotnet=\"`EventTypeName`\" pulumi-lang-go=\"`eventTypeName`\" pulumi-lang-python=\"`event_type_name`\" pulumi-lang-yaml=\"`eventTypeName`\" pulumi-lang-java=\"`eventTypeName`\"\u003e`event_type_name`\u003c/span\u003e : `OUTSIDE_METRIC_THRESHOLD` or `OUTSIDE_SERVERLESS_METRIC_THRESHOLD`. See metric threshold config.\n"},"notifications":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationsResultNotification:getAlertConfigurationsResultNotification"}},"outputs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationsResultOutput:getAlertConfigurationsResultOutput"},"description":"Requested output string format for the alert configuration\n"},"projectId":{"type":"string","description":"The unique ID for the project to get the alert configurations.\n"},"severityOverride":{"type":"string","description":"Severity of the event.\n"},"thresholdConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationsResultThresholdConfig:getAlertConfigurationsResultThresholdConfig"},"description":"Threshold that triggers an alert. Required if \u003cspan pulumi-lang-nodejs=\"`eventTypeName`\" pulumi-lang-dotnet=\"`EventTypeName`\" pulumi-lang-go=\"`eventTypeName`\" pulumi-lang-python=\"`event_type_name`\" pulumi-lang-yaml=\"`eventTypeName`\" pulumi-lang-java=\"`eventTypeName`\"\u003e`event_type_name`\u003c/span\u003e is any value other than `OUTSIDE_METRIC_THRESHOLD` or `OUTSIDE_SERVERLESS_METRIC_THRESHOLD`. See threshold config.\n"},"updated":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when this alert configuration was last updated.\n"}},"type":"object","required":["alertConfigurationId","created","enabled","eventType","id","matchers","metricThresholdConfigs","notifications","outputs","projectId","severityOverride","thresholdConfigs","updated"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAlertConfigurationsResultMatcher:getAlertConfigurationsResultMatcher":{"properties":{"fieldName":{"type":"string","description":"Name of the field in the target object to match on.\n"},"operator":{"type":"string","description":"The operator to apply when checking the current metric value against the threshold value.\nAccepted values are:\n- `GREATER_THAN`\n- `LESS_THAN`\n"},"value":{"type":"string","description":"Value to test with the specified operator. If \u003cspan pulumi-lang-nodejs=\"`fieldName`\" pulumi-lang-dotnet=\"`FieldName`\" pulumi-lang-go=\"`fieldName`\" pulumi-lang-python=\"`field_name`\" pulumi-lang-yaml=\"`fieldName`\" pulumi-lang-java=\"`fieldName`\"\u003e`field_name`\u003c/span\u003e is set to TYPE_NAME, you can match on the following values:\n- `PRIMARY`\n- `SECONDARY`\n- `STANDALONE`\n- `CONFIG`\n- `MONGOS`\n"}},"type":"object","required":["fieldName","operator","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAlertConfigurationsResultMetricThresholdConfig:getAlertConfigurationsResultMetricThresholdConfig":{"properties":{"metricName":{"type":"string","description":"Name of the metric to check. The full list being quite large, please refer to atlas docs [here for general metrics](https://docs.atlas.mongodb.com/reference/alert-host-metrics/#measurement-types) and [here for serverless metrics](https://www.mongodb.com/docs/atlas/reference/api/alert-configurations-create-config/#serverless-measurements)\n"},"mode":{"type":"string","description":"This must be set to AVERAGE. Atlas computes the current metric value as an average.\n"},"operator":{"type":"string","description":"The operator to apply when checking the current metric value against the threshold value.\nAccepted values are:\n- `GREATER_THAN`\n- `LESS_THAN`\n"},"threshold":{"type":"number","description":"Threshold value outside of which an alert will be triggered.\n"},"units":{"type":"string","description":"The units for the threshold value. Depends on the type of metric.\nRefer to the [MongoDB API Alert Configuration documentation](https://www.mongodb.com/docs/atlas/reference/api/alert-configurations-get-config/#request-body-parameters) for a list of accepted values.\n"}},"type":"object","required":["metricName","mode","operator","threshold","units"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAlertConfigurationsResultNotification:getAlertConfigurationsResultNotification":{"properties":{"apiToken":{"type":"string","description":"Slack API token. Required for the SLACK notifications type. If the token later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.\n","secret":true},"channelName":{"type":"string","description":"Slack channel name. Required for the SLACK notifications type.\n"},"datadogApiKey":{"type":"string","description":"Datadog API Key. Found in the Datadog dashboard. Required for the DATADOG notifications type.\n","secret":true},"datadogRegion":{"type":"string","description":"Region that indicates which API URL to use. See the `datadogRegion` field in the \u003cspan pulumi-lang-nodejs=\"`notifications`\" pulumi-lang-dotnet=\"`Notifications`\" pulumi-lang-go=\"`notifications`\" pulumi-lang-python=\"`notifications`\" pulumi-lang-yaml=\"`notifications`\" pulumi-lang-java=\"`notifications`\"\u003e`notifications`\u003c/span\u003e request parameter of [MongoDB API Alert Configuration documentation](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createalertconfiguration) for more details. The default Datadog region is US.\n"},"delayMin":{"type":"integer","description":"Number of minutes to wait after an alert condition is detected before sending out the first notification.\n"},"emailAddress":{"type":"string","description":"Email address to which alert notifications are sent. Required for the EMAIL notifications type.\n"},"emailEnabled":{"type":"boolean","description":"Flag indicating email notifications should be sent. Atlas returns this value if \u003cspan pulumi-lang-nodejs=\"`typeName`\" pulumi-lang-dotnet=\"`TypeName`\" pulumi-lang-go=\"`typeName`\" pulumi-lang-python=\"`type_name`\" pulumi-lang-yaml=\"`typeName`\" pulumi-lang-java=\"`typeName`\"\u003e`type_name`\u003c/span\u003e is set  to `ORG`, `GROUP`, or `USER`.\n"},"integrationId":{"type":"string","description":"The ID of the associated integration, the credentials of which to use for requests.\n"},"intervalMin":{"type":"integer","description":"Number of minutes to wait between successive notifications for unacknowledged alerts that are not resolved. The minimum value is 5.\n"},"microsoftTeamsWebhookUrl":{"type":"string","description":"Microsoft Teams channel incoming webhook URL. Required for the `MICROSOFT_TEAMS` notifications type.\n","secret":true},"mobileNumber":{"type":"string","description":"Mobile number to which alert notifications are sent. Required for the SMS notifications type.\n"},"notifierId":{"type":"string","description":"The notifier ID is a system-generated unique identifier assigned to each notification method. This is needed when updating third-party notifications without requiring explicit authentication credentials.\n"},"opsGenieApiKey":{"type":"string","description":"Opsgenie API Key. Required for the `OPS_GENIE` notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the token.\n","secret":true},"opsGenieRegion":{"type":"string","description":"Region that indicates which API URL to use. Accepted regions are: `US` ,`EU`. The default Opsgenie region is US.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Atlas role in current Project or Organization. Atlas returns this value if you set \u003cspan pulumi-lang-nodejs=\"`typeName`\" pulumi-lang-dotnet=\"`TypeName`\" pulumi-lang-go=\"`typeName`\" pulumi-lang-python=\"`type_name`\" pulumi-lang-yaml=\"`typeName`\" pulumi-lang-java=\"`typeName`\"\u003e`type_name`\u003c/span\u003e to `ORG` or `GROUP`.\n"},"serviceKey":{"type":"string","description":"PagerDuty service key. Required for the PAGER_DUTY notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.\n","secret":true},"smsEnabled":{"type":"boolean","description":"Flag indicating text notifications should be sent. Atlas returns this value if \u003cspan pulumi-lang-nodejs=\"`typeName`\" pulumi-lang-dotnet=\"`TypeName`\" pulumi-lang-go=\"`typeName`\" pulumi-lang-python=\"`type_name`\" pulumi-lang-yaml=\"`typeName`\" pulumi-lang-java=\"`typeName`\"\u003e`type_name`\u003c/span\u003e is set to `ORG`, `GROUP`, or `USER`.\n"},"teamId":{"type":"string","description":"Unique identifier of a team.\n"},"teamName":{"type":"string","description":"Label for the team that receives this notification.\n"},"typeName":{"type":"string","description":"Type of alert notification.\nAccepted values are:\n- `DATADOG`\n- `EMAIL`\n- `GROUP` (Project)\n- `OPS_GENIE`\n- `ORG`\n- `PAGER_DUTY`\n- `SLACK`\n- `SMS`\n- `TEAM`\n- `USER`\n- `VICTOR_OPS`\n- `WEBHOOK`\n- `MICROSOFT_TEAMS`\n"},"username":{"type":"string","description":"Name of the Atlas user to which to send notifications. Only a user in the project that owns the alert configuration is allowed here. Required for the `USER` notifications type.\n"},"victorOpsApiKey":{"type":"string","description":"VictorOps API key. Required for the `VICTOR_OPS` notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.\n","secret":true},"victorOpsRoutingKey":{"type":"string","description":"VictorOps routing key. Optional for the `VICTOR_OPS` notifications type. If the key later becomes invalid, Atlas sends an email to the project owner and eventually removes the key.\n","secret":true},"webhookSecret":{"type":"string","description":"Authentication secret for the `WEBHOOK` notifications type.\n","secret":true},"webhookUrl":{"type":"string","description":"Target URL  for the `WEBHOOK` notifications type.\n","secret":true}},"type":"object","required":["apiToken","channelName","datadogApiKey","datadogRegion","delayMin","emailAddress","emailEnabled","integrationId","intervalMin","microsoftTeamsWebhookUrl","mobileNumber","notifierId","opsGenieApiKey","opsGenieRegion","roles","serviceKey","smsEnabled","teamId","teamName","typeName","username","victorOpsApiKey","victorOpsRoutingKey","webhookSecret","webhookUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAlertConfigurationsResultOutput:getAlertConfigurationsResultOutput":{"properties":{"label":{"type":"string"},"type":{"type":"string"},"value":{"type":"string","description":"Value to test with the specified operator. If \u003cspan pulumi-lang-nodejs=\"`fieldName`\" pulumi-lang-dotnet=\"`FieldName`\" pulumi-lang-go=\"`fieldName`\" pulumi-lang-python=\"`field_name`\" pulumi-lang-yaml=\"`fieldName`\" pulumi-lang-java=\"`fieldName`\"\u003e`field_name`\u003c/span\u003e is set to TYPE_NAME, you can match on the following values:\n- `PRIMARY`\n- `SECONDARY`\n- `STANDALONE`\n- `CONFIG`\n- `MONGOS`\n"}},"type":"object","required":["label","type","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAlertConfigurationsResultThresholdConfig:getAlertConfigurationsResultThresholdConfig":{"properties":{"operator":{"type":"string","description":"The operator to apply when checking the current metric value against the threshold value.\nAccepted values are:\n- `GREATER_THAN`\n- `LESS_THAN`\n"},"threshold":{"type":"number","description":"Threshold value outside of which an alert will be triggered.\n"},"units":{"type":"string","description":"The units for the threshold value. Depends on the type of metric.\nRefer to the [MongoDB API Alert Configuration documentation](https://www.mongodb.com/docs/atlas/reference/api/alert-configurations-get-config/#request-body-parameters) for a list of accepted values.\n"}},"type":"object","required":["operator","threshold","units"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getApiKeyProjectAssignmentsResult:getApiKeyProjectAssignmentsResult":{"properties":{"apiKeyId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Human-readable label that identifies the collection of privileges that MongoDB Cloud grants a specific API key, MongoDB Cloud user, or MongoDB Cloud team. These roles include only the specific project-level roles.\n"}},"type":"object","required":["apiKeyId","projectId","roles"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getApiKeysResult:getApiKeysResult":{"properties":{"apiKeyId":{"type":"string","description":"Unique identifier for the API key you want to update. Use the /orgs/{ORG-ID}/apiKeys endpoint to retrieve all API keys to which the authenticated user has access for the specified organization.\n"},"description":{"type":"string","description":"Description of this Organization API key.\n"},"publicKey":{"type":"string"},"roleNames":{"type":"array","items":{"type":"string"},"description":"Name of the role. This resource returns all the roles the user has in Atlas.\n\nThe following are valid roles:\n* `ORG_OWNER`\n* `ORG_GROUP_CREATOR`\n* `ORG_BILLING_ADMIN`\n* `ORG_READ_ONLY`\n* `ORG_MEMBER`\n\nSee [MongoDB Atlas API - Return All Organization API Keys](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Programmatic-API-Keys/operation/listApiKeys) - Documentation for more information.\n"}},"type":"object","required":["apiKeyId","description","publicKey","roleNames"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAtlasUserLink:getAtlasUserLink":{"properties":{"href":{"type":"string"},"rel":{"type":"string"}},"type":"object","required":["href","rel"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAtlasUserRole:getAtlasUserRole":{"properties":{"groupId":{"type":"string"},"orgId":{"type":"string"},"roleName":{"type":"string"}},"type":"object","required":["groupId","orgId","roleName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAtlasUsersResult:getAtlasUsersResult":{"properties":{"country":{"type":"string","description":"Two alphabet characters that identifies MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n"},"createdAt":{"type":"string","description":"Date and time when the current account is created. This value is in the ISO 8601 timestamp format in UTC.\n"},"emailAddress":{"type":"string","description":"**(DEPRECATED)** Email address that belongs to the MongoDB Atlas user. This attribute is deprecated and will be removed in the next major release. Please transition to `data.mongodbatlas_organization.users.username`, `data.mongodbatlas_team.users.username` or `data.mongodbatlas_project.users.username` attributes. For more details, see Migration Guide: Migrate off deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-dotnet=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-go=\"`getAtlasUser`\" pulumi-lang-python=\"`get_atlas_user`\" pulumi-lang-yaml=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-java=\"`mongodbatlas.getAtlasUser`\"\u003e`mongodbatlas.getAtlasUser`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-dotnet=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-go=\"`getAtlasUsers`\" pulumi-lang-python=\"`get_atlas_users`\" pulumi-lang-yaml=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-java=\"`mongodbatlas.getAtlasUsers`\"\u003e`mongodbatlas.getAtlasUsers`\u003c/span\u003e.\"\n","deprecationMessage":"This attribute is deprecated and will be removed in the next major release. Please transition to `data.mongodbatlas_organization.users.username, data.mongodbatlas_team.users.username or data.mongodbatlas_project.users.username attributes`. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management."},"firstName":{"type":"string","description":"First or given name that belongs to the MongoDB Atlas user.\n"},"id":{"type":"string"},"lastAuth":{"type":"string","description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n"},"lastName":{"type":"string","description":"Last name, family name, or surname that belongs to the MongoDB Atlas user.\n"},"links":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAtlasUsersResultLink:getAtlasUsersResultLink"}},"mobileNumber":{"type":"string","description":"Mobile phone number that belongs to the MongoDB Atlas user.\n"},"roles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAtlasUsersResultRole:getAtlasUsersResultRole"}},"teamIds":{"type":"array","items":{"type":"string"},"description":"List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Atlas user belongs.\n* `links.#.href` - Uniform Resource Locator (URL) that points another API resource to which this response has some relationship. This URL often begins with https://cloud.mongodb.com/api/atlas.\n* `links.#.rel` - Uniform Resource Locator (URL) that defines the semantic relationship between this resource and another API resource. This URL often begins with https://cloud.mongodb.com/api/atlas.\n* `roles.#.group_id` - Unique 24-hexadecimal digit string that identifies the project to which this role belongs. You can set a value for this parameter or orgId but not both in the same request.\n* `roles.#.org_id` - Unique 24-hexadecimal digit string that identifies the organization to which this role belongs. You can set a value for this parameter or groupId but not both in the same request.\n* `roles.#.role_name` - Human-readable label that identifies the collection of privileges that MongoDB Atlas grants a specific API key, user, or team. These roles include organization- and project-level roles. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#service-user-roles) describes the valid roles that can be assigned.\n"},"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this user.\n"},"username":{"type":"string","description":"Email address that belongs to the MongoDB Atlas user account. You cannot modify this address after creating the user.\n"}},"type":"object","required":["country","createdAt","emailAddress","firstName","id","lastAuth","lastName","links","mobileNumber","roles","teamIds","userId","username"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAtlasUsersResultLink:getAtlasUsersResultLink":{"properties":{"href":{"type":"string"},"rel":{"type":"string"}},"type":"object","required":["href","rel"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getAtlasUsersResultRole:getAtlasUsersResultRole":{"properties":{"groupId":{"type":"string"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization whose users you want to return. Also needed when \u003cspan pulumi-lang-nodejs=\"`teamId`\" pulumi-lang-dotnet=\"`TeamId`\" pulumi-lang-go=\"`teamId`\" pulumi-lang-python=\"`team_id`\" pulumi-lang-yaml=\"`teamId`\" pulumi-lang-java=\"`teamId`\"\u003e`team_id`\u003c/span\u003e attributes is defined.\n"},"roleName":{"type":"string"}},"type":"object","required":["groupId","orgId","roleName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getBackupCompliancePolicyOnDemandPolicyItem:getBackupCompliancePolicyOnDemandPolicyItem":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getBackupCompliancePolicyPolicyItemDaily:getBackupCompliancePolicyPolicyItemDaily":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getBackupCompliancePolicyPolicyItemHourly:getBackupCompliancePolicyPolicyItemHourly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getBackupCompliancePolicyPolicyItemMonthly:getBackupCompliancePolicyPolicyItemMonthly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getBackupCompliancePolicyPolicyItemWeekly:getBackupCompliancePolicyPolicyItemWeekly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getBackupCompliancePolicyPolicyItemYearly:getBackupCompliancePolicyPolicyItemYearly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupScheduleCopySetting:getCloudBackupScheduleCopySetting":{"properties":{"cloudProvider":{"type":"string","description":"Human-readable label that identifies the cloud provider that stores the snapshot copy. i.e. \"AWS\" \"AZURE\" \"GCP\"\n"},"frequencies":{"type":"array","items":{"type":"string"},"description":"List that describes which types of snapshots to copy. i.e. \"HOURLY\" \"DAILY\" \"WEEKLY\" \"MONTHLY\" \"YEARLY\" \"ON_DEMAND\"\n"},"regionName":{"type":"string","description":"Target region to copy snapshots belonging to replicationSpecId to. Please supply the 'Atlas Region' which can be found under https://www.mongodb.com/docs/atlas/reference/cloud-providers/ 'regions' link\n"},"shouldCopyOplogs":{"type":"boolean","description":"Flag that indicates whether to copy the oplogs to the target region. You can use the oplogs to perform point-in-time restores.\n"},"zoneId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the zone in a cluster. For global clusters, there can be multiple zones to choose from. For sharded clusters and replica set clusters, there is only one zone in the cluster.\n"}},"type":"object","required":["cloudProvider","frequencies","regionName","shouldCopyOplogs","zoneId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupScheduleExport:getCloudBackupScheduleExport":{"properties":{"exportBucketId":{"type":"string","description":"Unique identifier of the\u003cspan pulumi-lang-nodejs=\" mongodbatlas.CloudBackupSnapshotExportBucket \" pulumi-lang-dotnet=\" mongodbatlas.CloudBackupSnapshotExportBucket \" pulumi-lang-go=\" CloudBackupSnapshotExportBucket \" pulumi-lang-python=\" CloudBackupSnapshotExportBucket \" pulumi-lang-yaml=\" mongodbatlas.CloudBackupSnapshotExportBucket \" pulumi-lang-java=\" mongodbatlas.CloudBackupSnapshotExportBucket \"\u003e mongodbatlas.CloudBackupSnapshotExportBucket \u003c/span\u003eexport_bucket_id value.\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"}},"type":"object","required":["exportBucketId","frequencyType"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSchedulePolicyItemDaily:getCloudBackupSchedulePolicyItemDaily":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSchedulePolicyItemHourly:getCloudBackupSchedulePolicyItemHourly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSchedulePolicyItemMonthly:getCloudBackupSchedulePolicyItemMonthly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSchedulePolicyItemWeekly:getCloudBackupSchedulePolicyItemWeekly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSchedulePolicyItemYearly:getCloudBackupSchedulePolicyItemYearly":{"properties":{"frequencyInterval":{"type":"integer","description":"Desired frequency of the new backup policy item specified by \u003cspan pulumi-lang-nodejs=\"`frequencyType`\" pulumi-lang-dotnet=\"`FrequencyType`\" pulumi-lang-go=\"`frequencyType`\" pulumi-lang-python=\"`frequency_type`\" pulumi-lang-yaml=\"`frequencyType`\" pulumi-lang-java=\"`frequencyType`\"\u003e`frequency_type`\u003c/span\u003e (yearly in this case). The supported values for yearly policies are\n"},"frequencyType":{"type":"string","description":"Frequency associated with the backup policy item. For yearly policies, the frequency type is defined as \u003cspan pulumi-lang-nodejs=\"`yearly`\" pulumi-lang-dotnet=\"`Yearly`\" pulumi-lang-go=\"`yearly`\" pulumi-lang-python=\"`yearly`\" pulumi-lang-yaml=\"`yearly`\" pulumi-lang-java=\"`yearly`\"\u003e`yearly`\u003c/span\u003e. Note that this is a read-only value and not required in plan files - its value is implied from the policy resource type.\n"},"id":{"type":"string","description":"Unique identifier of the backup policy item.\n"},"retentionUnit":{"type":"string","description":"Scope of the backup policy item: \u003cspan pulumi-lang-nodejs=\"`days`\" pulumi-lang-dotnet=\"`Days`\" pulumi-lang-go=\"`days`\" pulumi-lang-python=\"`days`\" pulumi-lang-yaml=\"`days`\" pulumi-lang-java=\"`days`\"\u003e`days`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`weeks`\" pulumi-lang-dotnet=\"`Weeks`\" pulumi-lang-go=\"`weeks`\" pulumi-lang-python=\"`weeks`\" pulumi-lang-yaml=\"`weeks`\" pulumi-lang-java=\"`weeks`\"\u003e`weeks`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`months`\" pulumi-lang-dotnet=\"`Months`\" pulumi-lang-go=\"`months`\" pulumi-lang-python=\"`months`\" pulumi-lang-yaml=\"`months`\" pulumi-lang-java=\"`months`\"\u003e`months`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`years`\" pulumi-lang-dotnet=\"`Years`\" pulumi-lang-go=\"`years`\" pulumi-lang-python=\"`years`\" pulumi-lang-yaml=\"`years`\" pulumi-lang-java=\"`years`\"\u003e`years`\u003c/span\u003e.\n"},"retentionValue":{"type":"integer","description":"Value to associate with \u003cspan pulumi-lang-nodejs=\"`retentionUnit`\" pulumi-lang-dotnet=\"`RetentionUnit`\" pulumi-lang-go=\"`retentionUnit`\" pulumi-lang-python=\"`retention_unit`\" pulumi-lang-yaml=\"`retentionUnit`\" pulumi-lang-java=\"`retentionUnit`\"\u003e`retention_unit`\u003c/span\u003e. Yearly policy must have retention of at least 1 year.\n"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSnapshotExportBucketsResult:getCloudBackupSnapshotExportBucketsResult":{"properties":{"bucketName":{"type":"string","description":"Name of the bucket that the provided role ID is authorized to access.\n"},"cloudProvider":{"type":"string","description":"Name of the provider of the cloud service where Atlas can access the S3 bucket.\n"},"exportBucketId":{"type":"string","description":"Unique identifier of the snapshot bucket id.\n"},"iamRoleId":{"type":"string","description":"Unique identifier of the role that Atlas can use to access the bucket.\n"},"roleId":{"type":"string","description":"Unique identifier of the Azure Service Principal that Atlas can use to access the Azure Blob Storage Container.\n"},"serviceUrl":{"type":"string","description":"URL that identifies the blob Endpoint of the Azure Blob Storage Account.\n"},"tenantId":{"type":"string","description":"UUID that identifies the Azure Active Directory Tenant ID.\n","deprecationMessage":"This parameter is deprecated."}},"type":"object","required":["bucketName","cloudProvider","exportBucketId","iamRoleId","roleId","serviceUrl","tenantId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSnapshotExportJobComponent:getCloudBackupSnapshotExportJobComponent":{"properties":{"exportId":{"type":"string","description":"_Returned for sharded clusters only._ Export job details for each replica set in the sharded cluster.\n"},"replicaSetName":{"type":"string","description":"_Returned for sharded clusters only._ Unique identifier of the export job for the replica set.\n"}},"type":"object","required":["exportId","replicaSetName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSnapshotExportJobCustomData:getCloudBackupSnapshotExportJobCustomData":{"properties":{"key":{"type":"string","description":"Custom data specified as key in the key and value pair.\n"},"value":{"type":"string","description":"Value for the key specified using \u003cspan pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\"\u003e`key`\u003c/span\u003e.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSnapshotExportJobsResult:getCloudBackupSnapshotExportJobsResult":{"properties":{"components":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSnapshotExportJobsResultComponent:getCloudBackupSnapshotExportJobsResultComponent"},"description":"_Returned for sharded clusters only._ Export job details for each replica set in the sharded cluster.\n"},"createdAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the export job was created.\n"},"customDatas":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSnapshotExportJobsResultCustomData:getCloudBackupSnapshotExportJobsResultCustomData"},"description":"Custom data to include in the metadata file named `.complete` that Atlas uploads to the bucket when the export job finishes. Custom data can be specified as key and value pairs.\n"},"exportBucketId":{"type":"string","description":"Unique identifier of the AWS bucket to export the Cloud Backup snapshot to.\n"},"exportJobId":{"type":"string","description":"Unique identifier of the export job.\n* `prefix ` - Full path on the cloud provider bucket to the folder where the snapshot is exported. The path is in the following format:`/exported_snapshots/{ORG-NAME}/{PROJECT-NAME}/{CLUSTER-NAME}/{SNAPSHOT-INITIATION-DATE}/{TIMESTAMP}`\n"},"exportStatusExportedCollections":{"type":"integer"},"exportStatusTotalCollections":{"type":"integer"},"finishedAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the export job completes.\n"},"prefix":{"type":"string"},"snapshotId":{"type":"string","description":"Unique identifier of the Cloud Backup snapshot to export.\n"},"state":{"type":"string","description":"Status of the export job. Value can be one of the following:\n* `Queued` - indicates that the export job is queued\n* `InProgress` - indicates that the snapshot is being exported\n* `Successful` - indicates that the export job has completed successfully\n* `Failed` - indicates that the export job has failed\n* `Cancelled` - indicates that the export job has cancelled\n"}},"type":"object","required":["components","createdAt","customDatas","exportBucketId","exportJobId","exportStatusExportedCollections","exportStatusTotalCollections","finishedAt","prefix","snapshotId","state"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSnapshotExportJobsResultComponent:getCloudBackupSnapshotExportJobsResultComponent":{"properties":{"exportId":{"type":"string","description":"_Returned for sharded clusters only._ Export job details for each replica set in the sharded cluster.\n"},"replicaSetName":{"type":"string","description":"_Returned for sharded clusters only._ Unique identifier of the export job for the replica set.\n"}},"type":"object","required":["exportId","replicaSetName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSnapshotExportJobsResultCustomData:getCloudBackupSnapshotExportJobsResultCustomData":{"properties":{"key":{"type":"string","description":"Custom data specified as key in the key and value pair.\n"},"value":{"type":"string","description":"Value for the key specified using \u003cspan pulumi-lang-nodejs=\"`key`\" pulumi-lang-dotnet=\"`Key`\" pulumi-lang-go=\"`key`\" pulumi-lang-python=\"`key`\" pulumi-lang-yaml=\"`key`\" pulumi-lang-java=\"`key`\"\u003e`key`\u003c/span\u003e.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSnapshotMember:getCloudBackupSnapshotMember":{"properties":{"cloudProvider":{"type":"string","description":"Cloud provider that stores this snapshot.\n"},"id":{"type":"string","description":"Unique identifier for the sharded cluster snapshot.\n"},"replicaSetName":{"type":"string","description":"Label given to a shard or config server from which Atlas took this snapshot.\n"}},"type":"object","required":["cloudProvider","id","replicaSetName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSnapshotRestoreJobsResult:getCloudBackupSnapshotRestoreJobsResult":{"properties":{"cancelled":{"type":"boolean","description":"Indicates whether the restore job was canceled.\n"},"deliveryType":{"type":"string","description":"Type of restore job to create. Possible values are: automated and download.\n"},"deliveryUrls":{"type":"array","items":{"type":"string"},"description":"One or more URLs for the compressed snapshot files for manual download. Only visible if deliveryType is download.\n"},"expired":{"type":"boolean","description":"Indicates whether the restore job expired.\n"},"expiresAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when the restore job expires.\n"},"failed":{"type":"boolean","description":"Indicates whether the restore job failed.\n"},"finishedAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when the restore job completed.\n"},"id":{"type":"string","description":"The unique identifier of the restore job.\n"},"oplogInc":{"type":"integer"},"oplogTs":{"type":"integer"},"pointInTimeUtcSeconds":{"type":"integer"},"snapshotId":{"type":"string","description":"Unique identifier of the source snapshot ID of the restore job.\n"},"targetClusterName":{"type":"string","description":"Name of the target Atlas cluster to which the restore job restores the snapshot. Only visible if deliveryType is automated.\n"},"targetProjectId":{"type":"string","description":"Name of the target Atlas project of the restore job. Only visible if deliveryType is automated.\n"},"timestamp":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the snapshot associated to snapshotId was taken.\n* `oplogTs` - Timestamp in the number of seconds that have elapsed since the UNIX epoch.\n* `oplogInc` - Oplog operation number from which to you want to restore this snapshot.\n* `pointInTimeUTCSeconds` - Timestamp in the number of seconds that have elapsed since the UNIX epoch.\n"}},"type":"object","required":["cancelled","deliveryType","deliveryUrls","expired","expiresAt","failed","finishedAt","id","oplogInc","oplogTs","pointInTimeUtcSeconds","snapshotId","targetClusterName","targetProjectId","timestamp"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSnapshotsResult:getCloudBackupSnapshotsResult":{"properties":{"cloudProvider":{"type":"string","description":"Cloud provider that stores this snapshot.\n"},"createdAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when Atlas took the snapshot.\n"},"description":{"type":"string","description":"UDescription of the snapshot. Only present for on-demand snapshots.\n"},"expiresAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when Atlas will delete the snapshot.\n"},"id":{"type":"string","description":"Unique identifier for the sharded cluster snapshot.\n"},"masterKeyUuid":{"type":"string","description":"Unique ID of the AWS KMS Customer Master Key used to encrypt the snapshot. Only visible for clusters using Encryption at Rest via Customer KMS.\n"},"members":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSnapshotsResultMember:getCloudBackupSnapshotsResultMember"},"description":"Block of List of snapshots and the cloud provider where the snapshots are stored. See below\n"},"mongodVersion":{"type":"string","description":"Version of the MongoDB server.\n"},"replicaSetName":{"type":"string","description":"Label given to a shard or config server from which Atlas took this snapshot.\n"},"snapshotIds":{"type":"array","items":{"type":"string"},"description":"Unique identifiers of the snapshots created for the shards and config server for a sharded cluster.\n"},"snapshotType":{"type":"string","description":"Specified the type of snapshot. Valid values are onDemand and scheduled.\n"},"status":{"type":"string","description":"Current status of the snapshot. One of the following values: queued, inProgress, completed, failed.\n"},"storageSizeBytes":{"type":"integer","description":"Specifies the size of the snapshot in bytes.\n"},"type":{"type":"string","description":"Specifies the type of cluster: replicaSet or shardedCluster.\n"}},"type":"object","required":["cloudProvider","createdAt","description","expiresAt","id","masterKeyUuid","members","mongodVersion","replicaSetName","snapshotIds","snapshotType","status","storageSizeBytes","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudBackupSnapshotsResultMember:getCloudBackupSnapshotsResultMember":{"properties":{"cloudProvider":{"type":"string","description":"Cloud provider that stores this snapshot.\n"},"id":{"type":"string","description":"Unique identifier for the sharded cluster snapshot.\n"},"replicaSetName":{"type":"string","description":"Label given to a shard or config server from which Atlas took this snapshot.\n"}},"type":"object","required":["cloudProvider","id","replicaSetName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudProviderAccessSetupAwsConfig:getCloudProviderAccessSetupAwsConfig":{"properties":{"atlasAssumedRoleExternalId":{"type":"string","description":"Unique external ID Atlas uses when assuming the IAM role in your AWS account.\n"},"atlasAwsAccountArn":{"type":"string","description":"ARN associated with the Atlas AWS account used to assume IAM roles in your AWS account.\n"}},"type":"object","required":["atlasAssumedRoleExternalId","atlasAwsAccountArn"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudProviderAccessSetupAzureConfig:getCloudProviderAccessSetupAzureConfig":{"properties":{"atlasAzureAppId":{"type":"string","description":"Azure Active Directory Application ID of Atlas.\n"},"servicePrincipalId":{"type":"string","description":"UUID string that identifies the Azure Service Principal.\n"},"tenantId":{"type":"string","description":"UUID String that identifies the Azure Active Directory Tenant ID.\n"}},"type":"object","required":["atlasAzureAppId","servicePrincipalId","tenantId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudProviderAccessSetupGcpConfig:getCloudProviderAccessSetupGcpConfig":{"properties":{"serviceAccountForAtlas":{"type":"string","description":"The GCP service account email that Atlas uses.\n"},"status":{"type":"string","description":"The status of the GCP cloud provider access setup. See [MongoDB Atlas API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getgroupcloudprovideraccess#operation-getgroupcloudprovideraccess-200-body-application-vnd-atlas-2023-01-01-json-gcp-object-status).\n"}},"type":"object","required":["serviceAccountForAtlas","status"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudUserOrgAssignmentRoles:getCloudUserOrgAssignmentRoles":{"properties":{"orgRoles":{"type":"array","items":{"type":"string"},"description":"One or more organization level roles to assign the MongoDB Cloud user.\n"},"projectRoleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCloudUserOrgAssignmentRolesProjectRoleAssignment:getCloudUserOrgAssignmentRolesProjectRoleAssignment"},"description":"List of project level role assignments to assign the MongoDB Cloud user.\n"}},"type":"object","required":["orgRoles","projectRoleAssignments"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudUserOrgAssignmentRolesProjectRoleAssignment:getCloudUserOrgAssignmentRolesProjectRoleAssignment":{"properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project to which these roles belong.\n"},"projectRoles":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles assigned to the MongoDB Cloud user.\n"}},"type":"object","required":["projectId","projectRoles"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudUserTeamAssignmentRoles:getCloudUserTeamAssignmentRoles":{"properties":{"orgRoles":{"type":"array","items":{"type":"string"},"description":"One or more organization level roles to assign the MongoDB Cloud user.\n"},"projectRoleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCloudUserTeamAssignmentRolesProjectRoleAssignment:getCloudUserTeamAssignmentRolesProjectRoleAssignment"},"description":"List of project level role assignments to assign the MongoDB Cloud user.\n"}},"type":"object","required":["orgRoles","projectRoleAssignments"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCloudUserTeamAssignmentRolesProjectRoleAssignment:getCloudUserTeamAssignmentRolesProjectRoleAssignment":{"properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project to which these roles belong.\n"},"projectRoles":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles assigned to the MongoDB Cloud user.\n"}},"type":"object","required":["projectId","projectRoles"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterAdvancedConfiguration:getClusterAdvancedConfiguration":{"properties":{"changeStreamOptionsPreAndPostImagesExpireAfterSeconds":{"type":"integer","description":"(Optional) The minimum pre- and post-image retention time in seconds. This parameter is only supported for MongoDB version 6.0 and above. Defaults to `-1`(off).\n"},"customOpensslCipherConfigTls12s":{"type":"array","items":{"type":"string"},"description":"The custom OpenSSL cipher suite list for TLS 1.2. This field is only valid when \u003cspan pulumi-lang-nodejs=\"`tlsCipherConfigMode`\" pulumi-lang-dotnet=\"`TlsCipherConfigMode`\" pulumi-lang-go=\"`tlsCipherConfigMode`\" pulumi-lang-python=\"`tls_cipher_config_mode`\" pulumi-lang-yaml=\"`tlsCipherConfigMode`\" pulumi-lang-java=\"`tlsCipherConfigMode`\"\u003e`tls_cipher_config_mode`\u003c/span\u003e is set to `CUSTOM`.\n"},"defaultMaxTimeMs":{"type":"integer"},"defaultReadConcern":{"type":"string","description":"[Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. **(DEPRECATED)** MongoDB 6.0 and later clusters default to \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e. To use a custom read concern level, please refer to your driver documentation.\n","deprecationMessage":"This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide"},"defaultWriteConcern":{"type":"string","description":"[Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 6.0 clusters default to [majority](https://docs.mongodb.com/manual/reference/write-concern/).\n"},"failIndexKeyTooLong":{"type":"boolean","description":"**(DEPRECATED)** When true, documents can only be updated or inserted if, for all indexed fields on the target collection, the corresponding index entries do not exceed 1024 bytes. When false, mongod writes documents that exceed the limit but does not index them.\n","deprecationMessage":"This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide"},"javascriptEnabled":{"type":"boolean","description":"When true, the cluster allows execution of operations that perform server-side executions of JavaScript. When false, the cluster disables execution of those operations.\n"},"minimumEnabledTlsProtocol":{"type":"string","description":"Sets the minimum Transport Layer Security (TLS) version the cluster accepts for incoming connections. Valid values are:\n- TLS1_2\n- TLS1_3\n"},"noTableScan":{"type":"boolean","description":"When true, the cluster disables the execution of any query that requires a collection scan to return results. When false, the cluster allows the execution of those operations.\n"},"oplogMinRetentionHours":{"type":"number","description":"Minimum retention window for cluster's oplog expressed in hours. A value of null indicates that the cluster uses the default minimum oplog window that MongoDB Cloud calculates.\n"},"oplogSizeMb":{"type":"integer","description":"The custom oplog size of the cluster. Without a value that indicates that the cluster uses the default oplog size calculated by Atlas.\n"},"sampleRefreshIntervalBiConnector":{"type":"integer","description":"Interval in seconds at which the mongosqld process re-samples data to create its relational schema. The default value is 300. The specified value must be a positive integer. Available only for Atlas deployments in which BI Connector for Atlas is enabled.\n"},"sampleSizeBiConnector":{"type":"integer","description":"Number of documents per database to sample when gathering schema information. Defaults to 100. Available only for Atlas deployments in which BI Connector for Atlas is enabled.\n"},"tlsCipherConfigMode":{"type":"string","description":"The TLS cipher suite configuration mode. Valid values include `CUSTOM` or `DEFAULT`. The `DEFAULT` mode uses the default cipher suites. The `CUSTOM` mode allows you to specify custom cipher suites for both TLS 1.2 and TLS 1.3.\n"},"transactionLifetimeLimitSeconds":{"type":"integer","description":"Lifetime, in seconds, of multi-document transactions. Defaults to 60 seconds.\n"}},"type":"object","required":["changeStreamOptionsPreAndPostImagesExpireAfterSeconds","customOpensslCipherConfigTls12s","defaultMaxTimeMs","defaultReadConcern","defaultWriteConcern","failIndexKeyTooLong","javascriptEnabled","minimumEnabledTlsProtocol","noTableScan","oplogMinRetentionHours","oplogSizeMb","sampleRefreshIntervalBiConnector","sampleSizeBiConnector","tlsCipherConfigMode","transactionLifetimeLimitSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterBiConnectorConfig:getClusterBiConnectorConfig":{"properties":{"enabled":{"type":"boolean","description":"Indicates whether or not BI Connector for Atlas is enabled on the cluster.\n"},"readPreference":{"type":"string","description":"Indicates the read preference to be used by BI Connector for Atlas on the cluster. Each BI Connector for Atlas read preference contains a distinct combination of [readPreference](https://docs.mongodb.com/manual/core/read-preference/) and [readPreferenceTags](https://docs.mongodb.com/manual/core/read-preference/#tag-sets) options. For details on BI Connector for Atlas read preferences, refer to the [BI Connector Read Preferences Table](https://docs.atlas.mongodb.com/tutorial/create-global-writes-cluster/#bic-read-preferences).\n"}},"type":"object","required":["enabled","readPreference"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterConnectionString:getClusterConnectionString":{"properties":{"awsPrivateLink":{"type":"object","additionalProperties":{"type":"string"}},"awsPrivateLinkSrv":{"type":"object","additionalProperties":{"type":"string"}},"private":{"type":"string"},"privateEndpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClusterConnectionStringPrivateEndpoint:getClusterConnectionStringPrivateEndpoint"}},"privateSrv":{"type":"string"},"standard":{"type":"string"},"standardSrv":{"type":"string"}},"type":"object","required":["awsPrivateLink","awsPrivateLinkSrv","private","privateEndpoints","privateSrv","standard","standardSrv"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterConnectionStringPrivateEndpoint:getClusterConnectionStringPrivateEndpoint":{"properties":{"connectionString":{"type":"string"},"endpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClusterConnectionStringPrivateEndpointEndpoint:getClusterConnectionStringPrivateEndpointEndpoint"}},"srvConnectionString":{"type":"string"},"srvShardOptimizedConnectionString":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["connectionString","endpoints","srvConnectionString","srvShardOptimizedConnectionString","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterConnectionStringPrivateEndpointEndpoint:getClusterConnectionStringPrivateEndpointEndpoint":{"properties":{"endpointId":{"type":"string"},"providerName":{"type":"string","description":"Indicates the cloud service provider on which the servers are provisioned.\n"},"region":{"type":"string"}},"type":"object","required":["endpointId","providerName","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterLabel:getClusterLabel":{"properties":{"key":{"type":"string","description":"The key that you want to write.\n"},"value":{"type":"string","description":"The value that you want to write.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterOutageSimulationOutageFilter:getClusterOutageSimulationOutageFilter":{"properties":{"cloudProvider":{"type":"string","description":"The cloud provider of the region that undergoes the outage simulation. Following values are supported:\n* `AWS`\n* `GCP`\n* `AZURE`\n"},"regionName":{"type":"string","description":"The Atlas name of the region undergoing an outage simulation.\n"},"type":{"type":"string","description":"The type of cluster outage simulation. Following values are supported:\n* `REGION` (Simulates a cluster outage for a region)\n"}},"type":"object","required":["cloudProvider","regionName","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterPinnedFcv:getClusterPinnedFcv":{"properties":{"expirationDate":{"type":"string","description":"Expiration date of the fixed FCV. This value is in the ISO 8601 timestamp format (e.g. \"2024-12-04T16:25:00Z\").\n"},"version":{"type":"string","description":"Feature compatibility version of the cluster.\n"}},"type":"object","required":["expirationDate","version"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterReplicationSpec:getClusterReplicationSpec":{"properties":{"id":{"type":"string","description":"Unique identifer of the replication document for a zone in a Global Cluster. This value corresponds to the legacy sharding schema (no independent shard scaling) and is different from the Shard ID you may see in the Atlas UI.\n"},"numShards":{"type":"integer","description":"Number of shards to deploy in the specified zone.\n"},"regionsConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClusterReplicationSpecRegionsConfig:getClusterReplicationSpecRegionsConfig"},"description":"Describes the physical location of the region. Each regionsConfig document describes the region’s priority in elections and the number and type of MongoDB nodes Atlas deploys to the region. You must order each regionsConfigs document by regionsConfig.priority, descending. See Region Config below for more details.\n"},"zoneName":{"type":"string","description":"Indicates the n ame for the zone in a Global Cluster.\n"}},"type":"object","required":["id","numShards","regionsConfigs","zoneName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterReplicationSpecRegionsConfig:getClusterReplicationSpecRegionsConfig":{"properties":{"analyticsNodes":{"type":"integer","description":"Indicates the number of analytics nodes for Atlas to deploy to the region. Analytics nodes are useful for handling analytic data such as reporting queries from BI Connector for Atlas. Analytics nodes are read-only, and can never become the primary.\n"},"electableNodes":{"type":"integer","description":"Number of electable nodes for Atlas to deploy to the region.\n"},"priority":{"type":"integer","description":"Election priority of the region. For regions with only read-only nodes, set this value to 0.\n"},"readOnlyNodes":{"type":"integer","description":"Number of read-only nodes for Atlas to deploy to the region. Read-only nodes can never become the primary, but can facilitate local-reads. Specify 0 if you do not want any read-only nodes in the region.\n"},"regionName":{"type":"string","description":"Name for the region specified.\n"}},"type":"object","required":["analyticsNodes","electableNodes","priority","readOnlyNodes","regionName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterSnapshotBackupPolicy:getClusterSnapshotBackupPolicy":{"properties":{"clusterId":{"type":"string"},"clusterName":{"type":"string"},"nextSnapshot":{"type":"string"},"policies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClusterSnapshotBackupPolicyPolicy:getClusterSnapshotBackupPolicyPolicy"}},"referenceHourOfDay":{"type":"integer"},"referenceMinuteOfHour":{"type":"integer"},"restoreWindowDays":{"type":"integer"},"updateSnapshots":{"type":"boolean"}},"type":"object","required":["clusterId","clusterName","nextSnapshot","policies","referenceHourOfDay","referenceMinuteOfHour","restoreWindowDays","updateSnapshots"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterSnapshotBackupPolicyPolicy:getClusterSnapshotBackupPolicyPolicy":{"properties":{"id":{"type":"string","description":"Unique identifer of the replication document for a zone in a Global Cluster. This value corresponds to the legacy sharding schema (no independent shard scaling) and is different from the Shard ID you may see in the Atlas UI.\n"},"policyItems":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClusterSnapshotBackupPolicyPolicyPolicyItem:getClusterSnapshotBackupPolicyPolicyPolicyItem"}}},"type":"object","required":["id","policyItems"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterSnapshotBackupPolicyPolicyPolicyItem:getClusterSnapshotBackupPolicyPolicyPolicyItem":{"properties":{"frequencyInterval":{"type":"integer"},"frequencyType":{"type":"string"},"id":{"type":"string","description":"Unique identifer of the replication document for a zone in a Global Cluster. This value corresponds to the legacy sharding schema (no independent shard scaling) and is different from the Shard ID you may see in the Atlas UI.\n"},"retentionUnit":{"type":"string"},"retentionValue":{"type":"integer"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClusterTag:getClusterTag":{"properties":{"key":{"type":"string","description":"The key that you want to write.\n"},"value":{"type":"string","description":"The value that you want to write.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResult:getClustersResult":{"properties":{"advancedConfigurations":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultAdvancedConfiguration:getClustersResultAdvancedConfiguration"},"description":"Get the advanced configuration options. See Advanced Configuration below for more details.\n"},"autoScalingComputeEnabled":{"type":"boolean","description":"Specifies whether cluster tier auto-scaling is enabled. The default is false.\n"},"autoScalingComputeScaleDownEnabled":{"type":"boolean","description":"* \u003cspan pulumi-lang-nodejs=\"`autoScalingComputeScaleDownEnabled`\" pulumi-lang-dotnet=\"`AutoScalingComputeScaleDownEnabled`\" pulumi-lang-go=\"`autoScalingComputeScaleDownEnabled`\" pulumi-lang-python=\"`auto_scaling_compute_scale_down_enabled`\" pulumi-lang-yaml=\"`autoScalingComputeScaleDownEnabled`\" pulumi-lang-java=\"`autoScalingComputeScaleDownEnabled`\"\u003e`auto_scaling_compute_scale_down_enabled`\u003c/span\u003e - Specifies whether cluster tier auto-down-scaling is enabled.\n"},"autoScalingDiskGbEnabled":{"type":"boolean","description":"Indicates whether disk auto-scaling is enabled.\n"},"backingProviderName":{"type":"string","description":"Indicates Cloud service provider on which the server for a multi-tenant cluster is provisioned.\n"},"backupEnabled":{"type":"boolean","description":"Legacy Option, Indicates whether Atlas continuous backups are enabled for the cluster.\n"},"biConnectorConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultBiConnectorConfig:getClustersResultBiConnectorConfig"},"description":"Indicates BI Connector for Atlas configuration on this cluster. BI Connector for Atlas is only available for M10+ clusters. See BI Connector below for more details.\n"},"clusterType":{"type":"string","description":"Indicates the type of the cluster that you want to modify. You cannot convert a sharded cluster deployment to a replica set deployment.\n"},"connectionStrings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultConnectionString:getClustersResultConnectionString"},"description":"Set of connection strings that your applications use to connect to this cluster. More information in [Connection-strings](https://docs.mongodb.com/manual/reference/connection-string/). Use the parameters in this object to connect your applications to this cluster. To learn more about the formats of connection strings, see [Connection String Options](https://docs.atlas.mongodb.com/reference/faq/connection-changes/). NOTE: Atlas returns the contents of this object after the cluster is operational, not while it builds the cluster.\n- `connection_strings.#.standard` -   Public mongodb:// connection string for this cluster.\n- `connection_strings.#.standard_srv` - Public mongodb+srv:// connection string for this cluster. The mongodb+srv protocol tells the driver to look up the seed list of hosts in DNS. Atlas synchronizes this list with the nodes in a cluster. If the connection string uses this URI format, you don’t need to append the seed list or change the URI if the nodes change. Use this URI format if your driver supports it. If it doesn’t, use connectionStrings.standard.\n- `connection_strings.#.private` -   [Network-peering-endpoint-aware](https://docs.atlas.mongodb.com/security-vpc-peering/#vpc-peering) mongodb://connection strings for each interface VPC endpoint you configured to connect to this cluster. Returned only if you created a network peering connection to this cluster.\n- `connection_strings.#.private_srv` -  [Network-peering-endpoint-aware](https://docs.atlas.mongodb.com/security-vpc-peering/#vpc-peering) mongodb+srv://connection strings for each interface VPC endpoint you configured to connect to this cluster. Returned only if you created a network peering connection to this cluster.\n- `connection_strings.#.private_endpoint.#.connection_string` - Private-endpoint-aware `mongodb://`connection string for this private endpoint.\n- `connection_strings.#.private_endpoint.#.srv_connection_string` - Private-endpoint-aware `mongodb+srv://` connection string for this private endpoint.\n- `connection_strings.#.private_endpoint.#.srv_shard_optimized_connection_string` - Private endpoint-aware connection string optimized for sharded clusters that uses the `mongodb+srv://` protocol to connect to MongoDB Cloud through a private endpoint.\n- `connection_strings.#.private_endpoint.#.type` - Type of MongoDB process that you connect to with the connection strings. Atlas returns `MONGOD` for replica sets, or `MONGOS` for sharded clusters.\n- `connection_strings.#.private_endpoint.#.endpoints` - Private endpoint through which you connect to Atlas when you use `connection_strings.#.private_endpoint.#.connection_string` or `connection_strings.#.private_endpoint.#.srv_connection_string`\n- `connection_strings.#.private_endpoint.#.endpoints.#.endpoint_id` - Unique identifier of the private endpoint.\n- `connection_strings.#.private_endpoint.#.endpoints.#.provider_name` - Cloud provider to which you deployed the private endpoint. Atlas returns `AWS` or `AZURE`.\n- `connection_strings.#.private_endpoint.#.endpoints.#.region` - Region to which you deployed the private endpoint.\n"},"containerId":{"type":"string","description":"The Network Peering Container ID.\n"},"diskSizeGb":{"type":"number","description":"Indicates the size in gigabytes of the server’s root volume (AWS/GCP Only).\n"},"encryptionAtRestProvider":{"type":"string","description":"Indicates whether Encryption at Rest is enabled or disabled.\n"},"labels":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultLabel:getClustersResultLabel"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e instead.\n"},"mongoDbMajorVersion":{"type":"string","description":"Indicates the version of the cluster to deploy.\n"},"mongoDbVersion":{"type":"string","description":"Version of MongoDB the cluster runs, in `major-version`.`minor-version` format.\n"},"mongoUri":{"type":"string","description":"Base connection string for the cluster. Atlas only displays this field after the cluster is operational, not while it builds the cluster.\n"},"mongoUriUpdated":{"type":"string","description":"Lists when the connection string was last updated. The connection string changes, for example, if you change a replica set to a sharded cluster.\n"},"mongoUriWithOptions":{"type":"string","description":"Describes connection string for connecting to the Atlas cluster. Includes the replicaSet, ssl, and authSource query parameters in the connection string with values appropriate for the cluster.\n"},"name":{"type":"string","description":"The name of the current plugin\n"},"numShards":{"type":"integer","description":"Number of shards to deploy in the specified zone.\n"},"paused":{"type":"boolean","description":"Flag that indicates whether the cluster is paused or not.\n"},"pinnedFcvs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultPinnedFcv:getClustersResultPinnedFcv"},"description":"The pinned Feature Compatibility Version (FCV) with its associated expiration date. See below.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates if the cluster uses Continuous Cloud Backup.\n"},"providerAutoScalingComputeMaxInstanceSize":{"type":"string","description":"Maximum instance size to which your cluster can automatically scale.\n"},"providerAutoScalingComputeMinInstanceSize":{"type":"string","description":"Minimum instance size to which your cluster can automatically scale.\n"},"providerBackupEnabled":{"type":"boolean","description":"Flag indicating if the cluster uses Cloud Backup Snapshots for backups. **DEPRECATED** Use \u003cspan pulumi-lang-nodejs=\"`cloudBackup`\" pulumi-lang-dotnet=\"`CloudBackup`\" pulumi-lang-go=\"`cloudBackup`\" pulumi-lang-python=\"`cloud_backup`\" pulumi-lang-yaml=\"`cloudBackup`\" pulumi-lang-java=\"`cloudBackup`\"\u003e`cloud_backup`\u003c/span\u003e instead.\n"},"providerDiskIops":{"type":"integer","description":"Indicates the maximum input/output operations per second (IOPS) the system can perform. The possible values depend on the selected providerSettings.instanceSizeName and diskSizeGB.\n"},"providerDiskTypeName":{"type":"string","description":"Describes Azure disk type of the server’s root volume (Azure Only).\n"},"providerEncryptEbsVolume":{"type":"boolean","description":"**(DEPRECATED)** Indicates whether the Amazon EBS encryption is enabled. This feature encrypts the server’s root volume for both data at rest within the volume and data moving between the volume and the instance. By default this attribute is always enabled, per deprecation process showing the real value at \u003cspan pulumi-lang-nodejs=\"`providerEncryptEbsVolumeFlag`\" pulumi-lang-dotnet=\"`ProviderEncryptEbsVolumeFlag`\" pulumi-lang-go=\"`providerEncryptEbsVolumeFlag`\" pulumi-lang-python=\"`provider_encrypt_ebs_volume_flag`\" pulumi-lang-yaml=\"`providerEncryptEbsVolumeFlag`\" pulumi-lang-java=\"`providerEncryptEbsVolumeFlag`\"\u003e`provider_encrypt_ebs_volume_flag`\u003c/span\u003e computed attribute.\n"},"providerInstanceSizeName":{"type":"string","description":"Atlas provides different instance sizes, each with a default storage capacity and RAM size.\n"},"providerName":{"type":"string","description":"Indicates the cloud service provider on which the servers are provisioned.\n"},"providerRegionName":{"type":"string","description":"Indicates Physical location of your MongoDB cluster. The region you choose can affect network latency for clients accessing your databases. Requires the Atlas Region name, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n"},"providerVolumeType":{"type":"string","description":"Indicates the type of the volume. The possible values are: `STANDARD` and `PROVISIONED`.\n\u003e **NOTE:** `STANDARD` is not available for NVME clusters.\n"},"redactClientLogData":{"type":"boolean","description":"(Optional) Flag that enables or disables log redaction, see the [manual](https://www.mongodb.com/docs/manual/administration/monitoring/#log-redaction) for more information.\n"},"replicationFactor":{"type":"integer","description":"(Deprecated) Number of replica set members. Each member keeps a copy of your databases, providing high availability and data redundancy. The possible values are 3, 5, or 7. The default value is 3.\n"},"replicationSpecs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultReplicationSpec:getClustersResultReplicationSpec"},"description":"Configuration for cluster regions.  See Replication Spec below for more details.\n"},"snapshotBackupPolicies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultSnapshotBackupPolicy:getClustersResultSnapshotBackupPolicy"},"description":"current snapshot schedule and retention settings for the cluster.\n"},"srvAddress":{"type":"string","description":"Connection string for connecting to the Atlas cluster. The +srv modifier forces the connection to use TLS/SSL. See the mongoURI for additional options.\n"},"stateName":{"type":"string","description":"Indicates the current state of the cluster. The possible states are:\n- IDLE\n- CREATING\n- UPDATING\n- DELETING\n- DELETED\n- REPAIRING\n"},"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultTag:getClustersResultTag"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"},"versionReleaseSystem":{"type":"string","description":"Release cadence that Atlas uses for this cluster.\n"}},"type":"object","required":["advancedConfigurations","autoScalingComputeEnabled","autoScalingComputeScaleDownEnabled","autoScalingDiskGbEnabled","backingProviderName","backupEnabled","biConnectorConfigs","clusterType","connectionStrings","containerId","diskSizeGb","encryptionAtRestProvider","labels","mongoDbMajorVersion","mongoDbVersion","mongoUri","mongoUriUpdated","mongoUriWithOptions","name","numShards","paused","pinnedFcvs","pitEnabled","providerAutoScalingComputeMaxInstanceSize","providerAutoScalingComputeMinInstanceSize","providerBackupEnabled","providerDiskIops","providerDiskTypeName","providerEncryptEbsVolume","providerInstanceSizeName","providerName","providerRegionName","providerVolumeType","redactClientLogData","replicationFactor","replicationSpecs","snapshotBackupPolicies","srvAddress","stateName","tags","terminationProtectionEnabled","versionReleaseSystem"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultAdvancedConfiguration:getClustersResultAdvancedConfiguration":{"properties":{"changeStreamOptionsPreAndPostImagesExpireAfterSeconds":{"type":"integer","description":"(Optional) The minimum pre- and post-image retention time in seconds. This parameter is only supported for MongoDB version 6.0 and above. Defaults to `-1`(off).\n"},"customOpensslCipherConfigTls12s":{"type":"array","items":{"type":"string"},"description":"The custom OpenSSL cipher suite list for TLS 1.2. This field is only valid when \u003cspan pulumi-lang-nodejs=\"`tlsCipherConfigMode`\" pulumi-lang-dotnet=\"`TlsCipherConfigMode`\" pulumi-lang-go=\"`tlsCipherConfigMode`\" pulumi-lang-python=\"`tls_cipher_config_mode`\" pulumi-lang-yaml=\"`tlsCipherConfigMode`\" pulumi-lang-java=\"`tlsCipherConfigMode`\"\u003e`tls_cipher_config_mode`\u003c/span\u003e is set to `CUSTOM`.\n"},"defaultMaxTimeMs":{"type":"integer"},"defaultReadConcern":{"type":"string","description":"[Default level of acknowledgment requested from MongoDB for read operations](https://docs.mongodb.com/manual/reference/read-concern/) set for this cluster. **(DEPRECATED)** MongoDB 6.0 and later clusters default to \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e. To use a custom read concern level, please refer to your driver documentation.\n","deprecationMessage":"This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide"},"defaultWriteConcern":{"type":"string","description":"[Default level of acknowledgment requested from MongoDB for write operations](https://docs.mongodb.com/manual/reference/write-concern/) set for this cluster. MongoDB 6.0 clusters default to [majority](https://docs.mongodb.com/manual/reference/write-concern/).\n"},"failIndexKeyTooLong":{"type":"boolean","description":"**(DEPRECATED)** When true, documents can only be updated or inserted if, for all indexed fields on the target collection, the corresponding index entries do not exceed 1024 bytes. When false, mongod writes documents that exceed the limit but does not index them.\n","deprecationMessage":"This parameter is deprecated. Please refer to our examples, documentation, and 1.18.0 migration guide for more details at https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/1.18.0-upgrade-guide"},"javascriptEnabled":{"type":"boolean","description":"When true, the cluster allows execution of operations that perform server-side executions of JavaScript. When false, the cluster disables execution of those operations.\n"},"minimumEnabledTlsProtocol":{"type":"string","description":"Sets the minimum Transport Layer Security (TLS) version the cluster accepts for incoming connections. Valid values are:\n- TLS1_2\n- TLS1_3\n"},"noTableScan":{"type":"boolean","description":"When true, the cluster disables the execution of any query that requires a collection scan to return results. When false, the cluster allows the execution of those operations.\n"},"oplogMinRetentionHours":{"type":"number","description":"Minimum retention window for cluster's oplog expressed in hours. A value of null indicates that the cluster uses the default minimum oplog window that MongoDB Cloud calculates.\n"},"oplogSizeMb":{"type":"integer","description":"The custom oplog size of the cluster. Without a value that indicates that the cluster uses the default oplog size calculated by Atlas.\n"},"sampleRefreshIntervalBiConnector":{"type":"integer","description":"Interval in seconds at which the mongosqld process re-samples data to create its relational schema. The default value is 300. The specified value must be a positive integer. Available only for Atlas deployments in which BI Connector for Atlas is enabled.\n"},"sampleSizeBiConnector":{"type":"integer","description":"Number of documents per database to sample when gathering schema information. Defaults to 100. Available only for Atlas deployments in which BI Connector for Atlas is enabled.\n"},"tlsCipherConfigMode":{"type":"string","description":"The TLS cipher suite configuration mode. Valid values include `CUSTOM` or `DEFAULT`. The `DEFAULT` mode uses the default cipher suites. The `CUSTOM` mode allows you to specify custom cipher suites for both TLS 1.2 and TLS 1.3.\n"},"transactionLifetimeLimitSeconds":{"type":"integer"}},"type":"object","required":["changeStreamOptionsPreAndPostImagesExpireAfterSeconds","customOpensslCipherConfigTls12s","defaultMaxTimeMs","defaultReadConcern","defaultWriteConcern","failIndexKeyTooLong","javascriptEnabled","minimumEnabledTlsProtocol","noTableScan","oplogMinRetentionHours","oplogSizeMb","sampleRefreshIntervalBiConnector","sampleSizeBiConnector","tlsCipherConfigMode","transactionLifetimeLimitSeconds"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultBiConnectorConfig:getClustersResultBiConnectorConfig":{"properties":{"enabled":{"type":"boolean","description":"Indicates whether or not BI Connector for Atlas is enabled on the cluster.\n"},"readPreference":{"type":"string","description":"Indicates the read preference to be used by BI Connector for Atlas on the cluster. Each BI Connector for Atlas read preference contains a distinct combination of [readPreference](https://docs.mongodb.com/manual/core/read-preference/) and [readPreferenceTags](https://docs.mongodb.com/manual/core/read-preference/#tag-sets) options. For details on BI Connector for Atlas read preferences, refer to the [BI Connector Read Preferences Table](https://docs.atlas.mongodb.com/tutorial/create-global-writes-cluster/#bic-read-preferences).\n"}},"type":"object","required":["enabled","readPreference"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultConnectionString:getClustersResultConnectionString":{"properties":{"awsPrivateLink":{"type":"object","additionalProperties":{"type":"string"}},"awsPrivateLinkSrv":{"type":"object","additionalProperties":{"type":"string"}},"private":{"type":"string"},"privateEndpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultConnectionStringPrivateEndpoint:getClustersResultConnectionStringPrivateEndpoint"}},"privateSrv":{"type":"string"},"standard":{"type":"string"},"standardSrv":{"type":"string"}},"type":"object","required":["awsPrivateLink","awsPrivateLinkSrv","private","privateEndpoints","privateSrv","standard","standardSrv"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultConnectionStringPrivateEndpoint:getClustersResultConnectionStringPrivateEndpoint":{"properties":{"connectionString":{"type":"string"},"endpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultConnectionStringPrivateEndpointEndpoint:getClustersResultConnectionStringPrivateEndpointEndpoint"}},"srvConnectionString":{"type":"string"},"srvShardOptimizedConnectionString":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["connectionString","endpoints","srvConnectionString","srvShardOptimizedConnectionString","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultConnectionStringPrivateEndpointEndpoint:getClustersResultConnectionStringPrivateEndpointEndpoint":{"properties":{"endpointId":{"type":"string"},"providerName":{"type":"string","description":"Indicates the cloud service provider on which the servers are provisioned.\n"},"region":{"type":"string"}},"type":"object","required":["endpointId","providerName","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultLabel:getClustersResultLabel":{"properties":{"key":{"type":"string","description":"The key that you want to write.\n"},"value":{"type":"string","description":"The value that you want to write.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultPinnedFcv:getClustersResultPinnedFcv":{"properties":{"expirationDate":{"type":"string","description":"Expiration date of the fixed FCV. This value is in the ISO 8601 timestamp format (e.g. \"2024-12-04T16:25:00Z\").\n"},"version":{"type":"string","description":"Feature compatibility version of the cluster.\n"}},"type":"object","required":["expirationDate","version"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultReplicationSpec:getClustersResultReplicationSpec":{"properties":{"id":{"type":"string","description":"Unique identifer of the replication document for a zone in a Global Cluster. This value corresponds to the legacy sharding schema (no independent shard scaling) and is different from the Shard ID you may see in the Atlas UI.\n"},"numShards":{"type":"integer","description":"Number of shards to deploy in the specified zone.\n"},"regionsConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultReplicationSpecRegionsConfig:getClustersResultReplicationSpecRegionsConfig"},"description":"Describes the physical location of the region. Each regionsConfig document describes the region’s priority in elections and the number and type of MongoDB nodes Atlas deploys to the region. You must order each regionsConfigs document by regionsConfig.priority, descending. See Region Config below for more details.\n"},"zoneName":{"type":"string","description":"Indicates the n ame for the zone in a Global Cluster.\n"}},"type":"object","required":["id","numShards","regionsConfigs","zoneName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultReplicationSpecRegionsConfig:getClustersResultReplicationSpecRegionsConfig":{"properties":{"analyticsNodes":{"type":"integer","description":"Indicates the number of analytics nodes for Atlas to deploy to the region. Analytics nodes are useful for handling analytic data such as reporting queries from BI Connector for Atlas. Analytics nodes are read-only, and can never become the primary.\n"},"electableNodes":{"type":"integer","description":"Number of electable nodes for Atlas to deploy to the region.\n"},"priority":{"type":"integer","description":"Election priority of the region. For regions with only read-only nodes, set this value to 0.\n"},"readOnlyNodes":{"type":"integer","description":"Number of read-only nodes for Atlas to deploy to the region. Read-only nodes can never become the primary, but can facilitate local-reads. Specify 0 if you do not want any read-only nodes in the region.\n"},"regionName":{"type":"string","description":"Name for the region specified.\n"}},"type":"object","required":["analyticsNodes","electableNodes","priority","readOnlyNodes","regionName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultSnapshotBackupPolicy:getClustersResultSnapshotBackupPolicy":{"properties":{"clusterId":{"type":"string"},"clusterName":{"type":"string"},"nextSnapshot":{"type":"string"},"policies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultSnapshotBackupPolicyPolicy:getClustersResultSnapshotBackupPolicyPolicy"}},"referenceHourOfDay":{"type":"integer"},"referenceMinuteOfHour":{"type":"integer"},"restoreWindowDays":{"type":"integer"},"updateSnapshots":{"type":"boolean"}},"type":"object","required":["clusterId","clusterName","nextSnapshot","policies","referenceHourOfDay","referenceMinuteOfHour","restoreWindowDays","updateSnapshots"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultSnapshotBackupPolicyPolicy:getClustersResultSnapshotBackupPolicyPolicy":{"properties":{"id":{"type":"string","description":"Unique identifer of the replication document for a zone in a Global Cluster. This value corresponds to the legacy sharding schema (no independent shard scaling) and is different from the Shard ID you may see in the Atlas UI.\n"},"policyItems":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getClustersResultSnapshotBackupPolicyPolicyPolicyItem:getClustersResultSnapshotBackupPolicyPolicyPolicyItem"}}},"type":"object","required":["id","policyItems"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultSnapshotBackupPolicyPolicyPolicyItem:getClustersResultSnapshotBackupPolicyPolicyPolicyItem":{"properties":{"frequencyInterval":{"type":"integer"},"frequencyType":{"type":"string"},"id":{"type":"string","description":"Unique identifer of the replication document for a zone in a Global Cluster. This value corresponds to the legacy sharding schema (no independent shard scaling) and is different from the Shard ID you may see in the Atlas UI.\n"},"retentionUnit":{"type":"string"},"retentionValue":{"type":"integer"}},"type":"object","required":["frequencyInterval","frequencyType","id","retentionUnit","retentionValue"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getClustersResultTag:getClustersResultTag":{"properties":{"key":{"type":"string","description":"The key that you want to write.\n"},"value":{"type":"string","description":"The value that you want to write.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getControlPlaneIpAddressesInbound:getControlPlaneIpAddressesInbound":{"properties":{"aws":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Control plane IP addresses in AWS. Each key identifies an Amazon Web Services (AWS) region. Each value identifies control plane IP addresses in the AWS region.\n"},"azure":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Control plane IP addresses in Azure. Each key identifies an Azure region. Each value identifies control plane IP addresses in the Azure region.\n"},"gcp":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Control plane IP addresses in GCP. Each key identifies a Google Cloud (GCP) region. Each value identifies control plane IP addresses in the GCP region.\n"}},"type":"object","required":["aws","azure","gcp"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getControlPlaneIpAddressesOutbound:getControlPlaneIpAddressesOutbound":{"properties":{"aws":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Control plane IP addresses in AWS. Each key identifies an Amazon Web Services (AWS) region. Each value identifies control plane IP addresses in the AWS region.\n"},"azure":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Control plane IP addresses in Azure. Each key identifies an Azure region. Each value identifies control plane IP addresses in the Azure region.\n"},"gcp":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Control plane IP addresses in GCP. Each key identifies a Google Cloud (GCP) region. Each value identifies control plane IP addresses in the GCP region.\n"}},"type":"object","required":["aws","azure","gcp"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCustomDbRoleAction:getCustomDbRoleAction":{"properties":{"action":{"type":"string","description":"(Required) Name of the privilege action. For a complete list of actions available in the Atlas API, see Custom Role Actions.\n"},"resources":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCustomDbRoleActionResource:getCustomDbRoleActionResource"},"description":"(Required) Contains information on where the action is granted. Each object in the array either indicates a database and collection on which the action is granted, or indicates that the action is granted on the cluster resource.\n"}},"type":"object","required":["action","resources"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCustomDbRoleActionResource:getCustomDbRoleActionResource":{"properties":{"cluster":{"type":"boolean"},"collectionName":{"type":"string"},"databaseName":{"type":"string","description":"(Required) Database on which the inherited role is granted.\n"}},"type":"object","required":["cluster","collectionName","databaseName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCustomDbRoleInheritedRole:getCustomDbRoleInheritedRole":{"properties":{"databaseName":{"type":"string","description":"(Required) Database on which the inherited role is granted.\n"},"roleName":{"type":"string","description":"Name of the custom role.\n"}},"type":"object","required":["databaseName","roleName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCustomDbRolesResult:getCustomDbRolesResult":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCustomDbRolesResultAction:getCustomDbRolesResultAction"}},"inheritedRoles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCustomDbRolesResultInheritedRole:getCustomDbRolesResultInheritedRole"}},"roleName":{"type":"string","description":"(Required) Name of the inherited role. This can either be another custom role or a built-in role.\n"}},"type":"object","required":["actions","inheritedRoles","roleName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCustomDbRolesResultAction:getCustomDbRolesResultAction":{"properties":{"action":{"type":"string","description":"(Required) Name of the privilege action. For a complete list of actions available in the Atlas API, see Custom Role Actions.\n"},"resources":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCustomDbRolesResultActionResource:getCustomDbRolesResultActionResource"},"description":"(Required) Contains information on where the action is granted. Each object in the array either indicates a database and collection on which the action is granted, or indicates that the action is granted on the cluster resource.\n"}},"type":"object","required":["action","resources"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCustomDbRolesResultActionResource:getCustomDbRolesResultActionResource":{"properties":{"cluster":{"type":"boolean"},"collectionName":{"type":"string"},"databaseName":{"type":"string","description":"(Required) Database on which the inherited role is granted.\n"}},"type":"object","required":["cluster","collectionName","databaseName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getCustomDbRolesResultInheritedRole:getCustomDbRolesResultInheritedRole":{"properties":{"databaseName":{"type":"string","description":"(Required) Database on which the inherited role is granted.\n"},"roleName":{"type":"string","description":"(Required) Name of the inherited role. This can either be another custom role or a built-in role.\n"}},"type":"object","required":["databaseName","roleName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getDatabaseUserLabel:getDatabaseUserLabel":{"properties":{"key":{"type":"string","description":"The key that you want to write.\n"},"value":{"type":"string","description":"The value that you want to write.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getDatabaseUserRole:getDatabaseUserRole":{"properties":{"collectionName":{"type":"string","description":"Collection for which the role applies. You can specify a collection for the \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e and `readWrite` roles. If you do not specify a collection for \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e and `readWrite`, the role applies to all collections in the database (excluding some collections in the \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e. database).\n"},"databaseName":{"type":"string","description":"Database on which the user has the specified role. A role on the \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e database can include privileges that apply to the other databases.\n"},"roleName":{"type":"string"}},"type":"object","required":["collectionName","databaseName","roleName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getDatabaseUserScope:getDatabaseUserScope":{"properties":{"name":{"type":"string","description":"Name of the role to grant.\n"},"type":{"type":"string","description":"Type of resource that the user has access to. See [Database User API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createdatabaseuser) for the list of valid values.\n"}},"type":"object","required":["name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getDatabaseUsersResult:getDatabaseUsersResult":{"properties":{"authDatabaseName":{"type":"string","description":"(Required) Database against which Atlas authenticates the user. A user must provide both a username and authentication database to log into MongoDB.\nPossible values include:\n"},"awsIamType":{"type":"string","description":"The new database user authenticates with AWS IAM credentials. Default is `NONE`, `USER` means user has AWS IAM user credentials, `ROLE` - means user has credentials associated with an AWS IAM role.\n"},"description":{"type":"string","description":"Description of this database user.\n"},"id":{"type":"string","description":"Autogenerated Unique ID for this data source.\n"},"labels":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getDatabaseUsersResultLabel:getDatabaseUsersResultLabel"}},"ldapAuthType":{"type":"string","description":"Method by which the provided username is authenticated. Default is `NONE`. Other valid values are: `USER`, `GROUP`.\n"},"oidcAuthType":{"type":"string","description":"(Optional) Human-readable label that indicates whether the new database user authenticates with OIDC (OpenID Connect) federated authentication. If no value is given, Atlas uses the default value of `NONE`. The accepted types are:\n* `NONE` -\tThe user does not use OIDC federated authentication.\n* `IDP_GROUP` - OIDC Workforce federated authentication group. To learn more about OIDC federated authentication, see [Set up Workforce Identity Federation with OIDC](https://www.mongodb.com/docs/atlas/security-oidc/).\n* `USER` - OIDC Workload federated authentication user. To learn more about OIDC federated authentication, see [Set up Workload Identity Federation with OIDC](https://www.mongodb.com/docs/atlas/security-oidc/).\n"},"projectId":{"type":"string","description":"The unique ID for the project to get all database users.\n"},"roles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getDatabaseUsersResultRole:getDatabaseUsersResultRole"},"description":"List of user’s roles and the databases / collections on which the roles apply. A role allows the user to perform particular actions on the specified database. A role on the admin database can include privileges that apply to the other databases as well. See Roles below for more details.\n"},"scopes":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getDatabaseUsersResultScope:getDatabaseUsersResultScope"},"description":"Array of clusters and Atlas Data Federation that this user has access to.\n"},"username":{"type":"string","description":"Username for authenticating to MongoDB.\n"},"x509Type":{"type":"string","description":"X.509 method by which the provided username is authenticated.\n"}},"type":"object","required":["authDatabaseName","awsIamType","description","id","labels","ldapAuthType","oidcAuthType","projectId","roles","scopes","username","x509Type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getDatabaseUsersResultLabel:getDatabaseUsersResultLabel":{"properties":{"key":{"type":"string","description":"The key that you want to write.\n"},"value":{"type":"string","description":"The value that you want to write.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getDatabaseUsersResultRole:getDatabaseUsersResultRole":{"properties":{"collectionName":{"type":"string","description":"Collection for which the role applies. You can specify a collection for the \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e and `readWrite` roles. If you do not specify a collection for \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e and `readWrite`, the role applies to all collections in the database (excluding some collections in the \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e. database).\n"},"databaseName":{"type":"string","description":"Database on which the user has the specified role. A role on the \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e database can include privileges that apply to the other databases.\n"},"roleName":{"type":"string"}},"type":"object","required":["collectionName","databaseName","roleName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getDatabaseUsersResultScope:getDatabaseUsersResultScope":{"properties":{"name":{"type":"string","description":"Name of the role to grant.\n"},"type":{"type":"string","description":"Type of resource that the user has access to. See [Database User API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createdatabaseuser) for the list of valid values.\n"}},"type":"object","required":["name","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getEncryptionAtRestAwsKmsConfig:getEncryptionAtRestAwsKmsConfig":{"properties":{"accessKeyId":{"type":"string","description":"Unique alphanumeric string that identifies an Identity and Access Management (IAM) access key with permissions required to access your Amazon Web Services (AWS) Customer Master Key (CMK).\n","secret":true},"customerMasterKeyId":{"type":"string","description":"Unique alphanumeric string that identifies the Amazon Web Services (AWS) Customer Master Key (CMK) you used to encrypt and decrypt the MongoDB master keys.\n","secret":true},"enabled":{"type":"boolean","description":"Flag that indicates whether someone enabled encryption at rest for the specified project through Amazon Web Services (AWS) Key Management Service (KMS). Setting this field to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e might lead to an inconsistent Terraform state. To disable encryption at rest, remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-go=\"`EncryptionAtRest`\" pulumi-lang-python=\"`EncryptionAtRest`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRest`\"\u003e`mongodbatlas.EncryptionAtRest`\u003c/span\u003e resource and reapply your configuration.\n"},"region":{"type":"string","description":"Physical location where MongoDB Atlas deploys your AWS-hosted MongoDB cluster nodes. The region you choose can affect network latency for clients accessing your databases. When MongoDB Atlas deploys a dedicated cluster, it checks if a VPC or VPC connection exists for that provider and region. If not, MongoDB Atlas creates them as part of the deployment. MongoDB Atlas assigns the VPC a CIDR block. To limit a new VPC peering connection to one CIDR block and region, create the connection first. Deploy the cluster after the connection starts.\n"},"requirePrivateNetworking":{"type":"boolean","description":"Enable connection to your Amazon Web Services (AWS) Key Management Service (KMS) over private networking.\n"},"roleId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies an Amazon Web Services (AWS) Identity and Access Management (IAM) role. This IAM role has the permissions required to manage your AWS customer master key.\n"},"secretAccessKey":{"type":"string","description":"Human-readable label of the Identity and Access Management (IAM) secret access key with permissions required to access your Amazon Web Services (AWS) customer master key.\n","secret":true},"valid":{"type":"boolean","description":"Flag that indicates whether the Amazon Web Services (AWS) Key Management Service (KMS) encryption key can encrypt and decrypt data.\n"}},"type":"object","required":["accessKeyId","customerMasterKeyId","enabled","region","requirePrivateNetworking","roleId","secretAccessKey","valid"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getEncryptionAtRestAzureKeyVaultConfig:getEncryptionAtRestAzureKeyVaultConfig":{"properties":{"azureEnvironment":{"type":"string","description":"Azure environment in which your account credentials reside.\n"},"clientId":{"type":"string","description":"Unique 36-hexadecimal character string that identifies an Azure application associated with your Azure Active Directory tenant.\n","secret":true},"enabled":{"type":"boolean","description":"Flag that indicates whether someone enabled encryption at rest for the specified  project. Setting this field to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e might lead to an inconsistent Terraform state. To disable encryption at rest, remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-go=\"`EncryptionAtRest`\" pulumi-lang-python=\"`EncryptionAtRest`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRest`\"\u003e`mongodbatlas.EncryptionAtRest`\u003c/span\u003e resource and reapply your configuration.\n"},"keyIdentifier":{"type":"string","description":"Web address with a unique key that identifies for your Azure Key Vault.\n","secret":true},"keyVaultName":{"type":"string","description":"Unique string that identifies the Azure Key Vault that contains your key.\n"},"requirePrivateNetworking":{"type":"boolean","description":"Enable connection to your Azure Key Vault over private networking.\n"},"resourceGroupName":{"type":"string","description":"Name of the Azure resource group that contains your Azure Key Vault.\n"},"roleId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Azure Service Principal that Atlas uses to access the Azure Key Vault.\n"},"secret":{"type":"string","description":"Private data that you need secured and that belongs to the specified Azure Key Vault (AKV) tenant (**azureKeyVault.tenantID**). This data can include any type of sensitive data such as passwords, database connection strings, API keys, and the like. AKV stores this information as encrypted binary data.\n","secret":true},"subscriptionId":{"type":"string","description":"Unique 36-hexadecimal character string that identifies your Azure subscription.\n","secret":true},"tenantId":{"type":"string","description":"Unique 36-hexadecimal character string that identifies the Azure Active Directory tenant within your Azure subscription.\n","secret":true},"valid":{"type":"boolean","description":"Flag that indicates whether the Azure encryption key can encrypt and decrypt data.\n"}},"type":"object","required":["azureEnvironment","clientId","enabled","keyIdentifier","keyVaultName","requirePrivateNetworking","resourceGroupName","roleId","secret","subscriptionId","tenantId","valid"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getEncryptionAtRestGoogleCloudKmsConfig:getEncryptionAtRestGoogleCloudKmsConfig":{"properties":{"enabled":{"type":"boolean","description":"Flag that indicates whether someone enabled encryption at rest for the specified  project. Setting this field to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e might lead to an inconsistent Terraform state. To disable encryption at rest, remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-go=\"`EncryptionAtRest`\" pulumi-lang-python=\"`EncryptionAtRest`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRest`\"\u003e`mongodbatlas.EncryptionAtRest`\u003c/span\u003e resource and reapply your configuration.\n"},"keyVersionResourceId":{"type":"string","description":"Resource path that displays the key version resource ID for your Google Cloud KMS.\n","secret":true},"roleId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Google Cloud Provider Access Role that MongoDB Cloud uses to access the Google Cloud KMS.\n"},"serviceAccountKey":{"type":"string","description":"JavaScript Object Notation (JSON) object that contains the Google Cloud Key Management Service (KMS). Format the JSON as a string and not as an object.\n","secret":true},"valid":{"type":"boolean","description":"Flag that indicates whether the Google Cloud Key Management Service (KMS) encryption key can encrypt and decrypt data.\n"}},"type":"object","required":["enabled","keyVersionResourceId","roleId","serviceAccountKey","valid"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getEncryptionAtRestPrivateEndpointsResult:getEncryptionAtRestPrivateEndpointsResult":{"properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud provider for the Encryption At Rest private endpoint.\n"},"errorMessage":{"type":"string","description":"Error message for failures associated with the Encryption At Rest private endpoint.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Private Endpoint Service.\n"},"privateEndpointConnectionName":{"type":"string","description":"Connection name of the Azure Private Endpoint.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"regionName":{"type":"string","description":"Cloud provider region in which the Encryption At Rest private endpoint is located.\n"},"status":{"type":"string","description":"State of the Encryption At Rest private endpoint.\n"}},"type":"object","required":["cloudProvider","errorMessage","id","privateEndpointConnectionName","projectId","regionName","status"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getEventTriggerEventProcessor:getEventTriggerEventProcessor":{"properties":{"awsEventbridges":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getEventTriggerEventProcessorAwsEventbridge:getEventTriggerEventProcessorAwsEventbridge"}}},"type":"object","required":["awsEventbridges"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getEventTriggerEventProcessorAwsEventbridge:getEventTriggerEventProcessorAwsEventbridge":{"properties":{"configAccountId":{"type":"string","description":"AWS Account ID.\n"},"configRegion":{"type":"string","description":"Region of AWS Account.\n"}},"type":"object","required":["configAccountId","configRegion"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getEventTriggersResult:getEventTriggersResult":{"properties":{"configCollection":{"type":"string","description":"The name of the MongoDB collection that the trigger watches for change events.\n"},"configDatabase":{"type":"string","description":"The name of the MongoDB database to watch.\n"},"configFullDocument":{"type":"boolean","description":"If true, indicates that `UPDATE` change events should include the most current [majority-committed](https://docs.mongodb.com/manual/reference/read-concern-majority/) version of the modified document in the fullDocument field.\n"},"configFullDocumentBefore":{"type":"boolean"},"configMatch":{"type":"string","description":"A [$match](https://docs.mongodb.com/manual/reference/operator/aggregation/match/) expression document that MongoDB Realm includes in the underlying change stream pipeline for the trigger.\n"},"configOperationType":{"type":"string","description":"The [authentication operation type](https://docs.mongodb.com/realm/triggers/authentication-triggers/#std-label-authentication-event-operation-types) to listen for.\n"},"configOperationTypes":{"type":"array","items":{"type":"string"},"description":"The [database event operation types](https://docs.mongodb.com/realm/triggers/database-triggers/#std-label-database-events) to listen for.\n"},"configProject":{"type":"string","description":"A [$project](https://docs.mongodb.com/manual/reference/operator/aggregation/project/) expression document that Realm uses to filter the fields that appear in change event objects.\n"},"configProviders":{"type":"array","items":{"type":"string"},"description":"A list of one or more [authentication provider](https://docs.mongodb.com/realm/authentication/providers/) id values. The trigger will only listen for authentication events produced by these providers.\n"},"configSchedule":{"type":"string","description":"A [cron expression](https://docs.mongodb.com/realm/triggers/cron-expressions/) that defines the trigger schedule.\n"},"configScheduleType":{"type":"string"},"configServiceId":{"type":"string","description":"The ID of the MongoDB Service associated with the trigger.\n"},"disabled":{"type":"boolean","description":"Status of a trigger.\n"},"eventProcessors":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getEventTriggersResultEventProcessor:getEventTriggersResultEventProcessor"},"description":"An object where each field name is an event processor ID and each value is an object that configures its corresponding event processor.\n"},"functionId":{"type":"string","description":"The ID of the function associated with the trigger.\n"},"functionName":{"type":"string","description":"The name of the function associated with the trigger.\n"},"name":{"type":"string","description":"The name of the trigger.\n"},"triggerId":{"type":"string"},"type":{"type":"string","description":"The type of the trigger. Possible Values: `DATABASE`, `AUTHENTICATION`\n"},"unordered":{"type":"boolean","description":"Sort order for `DATABASE` type.\n"}},"type":"object","required":["configCollection","configDatabase","configFullDocument","configFullDocumentBefore","configMatch","configOperationType","configOperationTypes","configProject","configProviders","configSchedule","configScheduleType","configServiceId","disabled","eventProcessors","functionId","functionName","name","triggerId","type","unordered"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getEventTriggersResultEventProcessor:getEventTriggersResultEventProcessor":{"properties":{"awsEventbridges":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getEventTriggersResultEventProcessorAwsEventbridge:getEventTriggersResultEventProcessorAwsEventbridge"}}},"type":"object","required":["awsEventbridges"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getEventTriggersResultEventProcessorAwsEventbridge:getEventTriggersResultEventProcessorAwsEventbridge":{"properties":{"configAccountId":{"type":"string","description":"AWS Account ID.\n"},"configRegion":{"type":"string","description":"Region of AWS Account.\n"}},"type":"object","required":["configAccountId","configRegion"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceCloudProviderConfig:getFederatedDatabaseInstanceCloudProviderConfig":{"properties":{"aws":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceCloudProviderConfigAw:getFederatedDatabaseInstanceCloudProviderConfigAw"}},"azures":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceCloudProviderConfigAzure:getFederatedDatabaseInstanceCloudProviderConfigAzure"}}},"type":"object","required":["aws","azures"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceCloudProviderConfigAw:getFederatedDatabaseInstanceCloudProviderConfigAw":{"properties":{"externalId":{"type":"string","description":"Unique identifier associated with the IAM Role that the Federated Database Instance assumes when accessing the data stores.\n"},"iamAssumedRoleArn":{"type":"string","description":"Amazon Resource Name (ARN) of the IAM Role that the Federated Database Instance assumes when accessing S3 Bucket data stores. The IAM Role must support the following actions against each S3 bucket:\n* `s3:GetObject`\n* `s3:ListBucket`\n* `s3:GetObjectVersion`\n"},"iamUserArn":{"type":"string","description":"Amazon Resource Name (ARN) of the user that the Federated Database Instance assumes when accessing S3 Bucket data stores.\n"},"roleId":{"type":"string","description":"Unique identifier of the role that the Federated Database Instance can use to access the data stores.\n"},"testS3Bucket":{"type":"string"}},"type":"object","required":["externalId","iamAssumedRoleArn","iamUserArn","roleId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceCloudProviderConfigAzure:getFederatedDatabaseInstanceCloudProviderConfigAzure":{"properties":{"atlasAppId":{"type":"string"},"roleId":{"type":"string","description":"Unique identifier of the role that the Federated Database Instance can use to access the data stores.\n"},"servicePrincipalId":{"type":"string","description":"Unique identifier of the Azure service principal that the Federated Database instance uses to access Azure Blob Storage.\n"},"tenantId":{"type":"string","description":"Unique identifier of the Azure Active Directory tenant where the service principal resides.\n"}},"type":"object","required":["atlasAppId","roleId","servicePrincipalId","tenantId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceDataProcessRegion:getFederatedDatabaseInstanceDataProcessRegion":{"properties":{"cloudProvider":{"type":"string","description":"Name of the cloud service provider. Supported providers: `AWS`, `AZURE`.\n"},"region":{"type":"string","description":"Name of the region to which the Federated Instance routes client connections for data processing.\n"}},"type":"object","required":["cloudProvider","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceStorageDatabase:getFederatedDatabaseInstanceStorageDatabase":{"properties":{"collections":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceStorageDatabaseCollection:getFederatedDatabaseInstanceStorageDatabaseCollection"}},"maxWildcardCollections":{"type":"integer"},"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"views":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceStorageDatabaseView:getFederatedDatabaseInstanceStorageDatabaseView"}}},"type":"object","required":["collections","maxWildcardCollections","name","views"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceStorageDatabaseCollection:getFederatedDatabaseInstanceStorageDatabaseCollection":{"properties":{"dataSources":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceStorageDatabaseCollectionDataSource:getFederatedDatabaseInstanceStorageDatabaseCollectionDataSource"}},"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"}},"type":"object","required":["dataSources","name"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceStorageDatabaseCollectionDataSource:getFederatedDatabaseInstanceStorageDatabaseCollectionDataSource":{"properties":{"allowInsecure":{"type":"boolean"},"collection":{"type":"string"},"collectionRegex":{"type":"string"},"database":{"type":"string"},"databaseRegex":{"type":"string"},"datasetName":{"type":"string"},"defaultFormat":{"type":"string"},"path":{"type":"string"},"provenanceFieldName":{"type":"string"},"storeName":{"type":"string"},"urls":{"type":"array","items":{"type":"string"}}},"type":"object","required":["allowInsecure","collection","collectionRegex","database","databaseRegex","datasetName","defaultFormat","path","provenanceFieldName","storeName","urls"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceStorageDatabaseView:getFederatedDatabaseInstanceStorageDatabaseView":{"properties":{"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"pipeline":{"type":"string"},"source":{"type":"string"}},"type":"object","required":["name","pipeline","source"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceStorageStore:getFederatedDatabaseInstanceStorageStore":{"properties":{"additionalStorageClasses":{"type":"array","items":{"type":"string"}},"allowInsecure":{"type":"boolean"},"bucket":{"type":"string"},"clusterName":{"type":"string"},"defaultFormat":{"type":"string"},"delimiter":{"type":"string"},"includeTags":{"type":"boolean"},"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"prefix":{"type":"string"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"provider":{"type":"string"},"public":{"type":"string"},"readPreferences":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceStorageStoreReadPreference:getFederatedDatabaseInstanceStorageStoreReadPreference"}},"region":{"type":"string","description":"Name of the region to which the Federated Instance routes client connections for data processing.\n"},"urls":{"type":"array","items":{"type":"string"}}},"type":"object","required":["additionalStorageClasses","allowInsecure","bucket","clusterName","defaultFormat","delimiter","includeTags","name","prefix","projectId","provider","public","readPreferences","region","urls"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceStorageStoreReadPreference:getFederatedDatabaseInstanceStorageStoreReadPreference":{"properties":{"maxStalenessSeconds":{"type":"integer"},"mode":{"type":"string"},"tagSets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceStorageStoreReadPreferenceTagSet:getFederatedDatabaseInstanceStorageStoreReadPreferenceTagSet"}}},"type":"object","required":["maxStalenessSeconds","mode","tagSets"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceStorageStoreReadPreferenceTagSet:getFederatedDatabaseInstanceStorageStoreReadPreferenceTagSet":{"properties":{"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceStorageStoreReadPreferenceTagSetTag:getFederatedDatabaseInstanceStorageStoreReadPreferenceTagSetTag"}}},"type":"object","required":["tags"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstanceStorageStoreReadPreferenceTagSetTag:getFederatedDatabaseInstanceStorageStoreReadPreferenceTagSetTag":{"properties":{"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"value":{"type":"string"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResult:getFederatedDatabaseInstancesResult":{"properties":{"cloudProviderConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultCloudProviderConfig:getFederatedDatabaseInstancesResultCloudProviderConfig"}},"dataProcessRegions":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultDataProcessRegion:getFederatedDatabaseInstancesResultDataProcessRegion"}},"hostnames":{"type":"array","items":{"type":"string"},"description":"The list of hostnames assigned to the Federated Database Instance. Each string in the array is a hostname assigned to the Federated Database Instance.\n"},"name":{"type":"string"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"state":{"type":"string","description":"Current state of the Federated Database Instance:\n* `ACTIVE` - The Federated Database Instance is active and verified. You can query the data stores associated with the Federated Database Instance.\n* `DELETED` - The Federated Database Instance was deleted.\n"},"storageDatabases":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultStorageDatabase:getFederatedDatabaseInstancesResultStorageDatabase"},"description":"Configuration details for mapping each data store to queryable databases and collections. For complete documentation on this object and its nested fields, see [databases](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#databases). An empty object indicates that the Federated Database Instance has no mapping configuration for any data store.\n* `storage_databases.#.name` - Name of the database to which the Federated Database Instance maps the data contained in the data store.\n* `storage_databases.#.collections` -     Array of objects where each object represents a collection and data sources that map to a [stores](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#stores) data store.\n* `storage_databases.#.collections.#.name` - Name of the collection.\n* `storage_databases.#.collections.#.data_sources` -     Array of objects where each object represents a stores data store to map with the collection.\n* `storage_databases.#.collections.#.data_sources.#.store_name` -     Name of a data store to map to the `\u003ccollection\u003e`. Must match the name of an object in the stores array.\n* `storage_databases.#.collections.#.data_sources.#.dataset_name` -     Human-readable label that identifies the dataset that Atlas generates for an ingestion pipeline run or Online Archive.\n* `storage_databases.#.collections.#.data_sources.#.default_format` - Default format that Federated Database assumes if it encounters a file without an extension while searching the storeName.\n* `storage_databases.#.collections.#.data_sources.#.path` - File path that controls how MongoDB Cloud searches for and parses files in the storeName before mapping them to a collection. Specify / to capture all files and folders from the prefix path.\n* `storage_databases.#.collections.#.data_sources.#.database` - Human-readable label that identifies the database, which contains the collection in the cluster.\n* `storage_databases.#.collections.#.data_sources.#.allow_insecure` - Flag that validates the scheme in the specified URLs. If true, allows insecure HTTP scheme, doesn't verify the server's certificate chain and hostname, and accepts any certificate with any hostname presented by the server. If false, allows secure HTTPS scheme only.\n* `storage_databases.#.collections.#.data_sources.#.database_regex` - Regex pattern to use for creating the wildcard database.\n* `storage_databases.#.collections.#.data_sources.#.collection` - Human-readable label that identifies the collection in the database.\n* `storage_databases.#.collections.#.data_sources.#.collection_regex` - Regex pattern to use for creating the wildcard (*) collection.\n* `storage_databases.#.collections.#.data_sources.#.provenance_field_name` - Name for the field that includes the provenance of the documents in the results.\n* `storage_databases.#.collections.#.data_sources.#.storeName` - Human-readable label that identifies the data store that MongoDB Cloud maps to the collection.\n* `storage_databases.#.collections.#.data_sources.#.urls` - URLs of the publicly accessible data files. You can't specify URLs that require authentication.\n* `storage_databases.#.views` -     Array of objects where each object represents an [aggregation pipeline](https://docs.mongodb.com/manual/core/aggregation-pipeline/#id1) on a collection. To learn more about views, see [Views](https://docs.mongodb.com/manual/core/views/).\n* `storage_databases.#.views.#.name` - Name of the view.\n* `storage_databases.#.views.#.source` -  Name of the source collection for the view.\n* `storage_databases.#.views.#.pipeline`- Aggregation pipeline stage(s) to apply to the source collection.\n"},"storageStores":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultStorageStore:getFederatedDatabaseInstancesResultStorageStore"},"description":"Each object in the array represents a data store. Federated Database uses the `storage.databases` configuration details to map data in each data store to queryable databases and collections. For complete documentation on this object and its nested fields, see [stores](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#stores). An empty object indicates that the Federated Database Instance has no configured data stores.\n* `storage_stores.#.name` - Name of the data store.\n* `storage_stores.#.provider` - Defines where the data is stored.\n* `storage_stores.#.region` - Name of the AWS region in which the S3 bucket is hosted.\n* `storage_stores.#.bucket` - Name of the AWS S3 bucket.\n* `storage_stores.#.prefix` - Prefix the Federated Database Instance applies when searching for files in the S3 bucket.\n* `storage_stores.#.delimiter` - The delimiter that separates `storage_databases.#.collections.#.data_sources.#.path` segments in the data store.\n* `storage_stores.#.include_tags` - Determines whether or not to use S3 tags on the files in the given path as additional partition attributes.\n* `storage_stores.#.cluster_name` - Human-readable label of the MongoDB Cloud cluster on which the store is based.\n* `storage_stores.#.allow_insecure` - Flag that validates the scheme in the specified URLs.\n* `storage_stores.#.public` - Flag that indicates whether the bucket is public.\n* `storage_stores.#.default_format` - Default format that Atlas Data Federation assumes if it encounters a file without an extension while searching the storeName.\n* `storage_stores.#.urls` - Comma-separated list of publicly accessible HTTP URLs where data is stored.\n* `storage_stores.#.read_preference` - MongoDB Cloud cluster read preference, which describes how to route read requests to the cluster.\n* `storage_stores.#.read_preference.maxStalenessSeconds` - Maximum replication lag, or staleness, for reads from secondaries.\n* `storage_stores.#.read_preference.mode` - Read preference mode that specifies to which replica set member to route the read requests.\n* `storage_stores.#.read_preference.tag_sets` - List that contains tag sets or tag specification documents.\n* `storage_stores.#.read_preference.tags` - List of all tags within a tag set\n* `storage_stores.#.read_preference.tags.name` - Human-readable label of the tag.\n* `storage_stores.#.read_preference.tags.value` - Value of the tag.\n"}},"type":"object","required":["cloudProviderConfigs","dataProcessRegions","hostnames","name","projectId","state","storageDatabases","storageStores"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultCloudProviderConfig:getFederatedDatabaseInstancesResultCloudProviderConfig":{"properties":{"aws":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultCloudProviderConfigAw:getFederatedDatabaseInstancesResultCloudProviderConfigAw"}},"azures":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultCloudProviderConfigAzure:getFederatedDatabaseInstancesResultCloudProviderConfigAzure"}}},"type":"object","required":["aws","azures"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultCloudProviderConfigAw:getFederatedDatabaseInstancesResultCloudProviderConfigAw":{"properties":{"externalId":{"type":"string","description":"Unique identifier associated with the IAM Role that the Federated Database Instance assumes when accessing the data stores.\n"},"iamAssumedRoleArn":{"type":"string","description":"Amazon Resource Name (ARN) of the IAM Role that the Federated Database Instance assumes when accessing S3 Bucket data stores. The IAM Role must support the following actions against each S3 bucket:\n* `s3:GetObject`\n* `s3:ListBucket`\n* `s3:GetObjectVersion`\n"},"iamUserArn":{"type":"string","description":"Amazon Resource Name (ARN) of the user that the Federated Database Instance assumes when accessing S3 Bucket data stores.\n"},"roleId":{"type":"string","description":"Unique identifier of the role that the Federated Database Instance can use to access the data stores.\n"},"testS3Bucket":{"type":"string"}},"type":"object","required":["externalId","iamAssumedRoleArn","iamUserArn","roleId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultCloudProviderConfigAzure:getFederatedDatabaseInstancesResultCloudProviderConfigAzure":{"properties":{"atlasAppId":{"type":"string"},"roleId":{"type":"string","description":"Unique identifier of the role that the Federated Database Instance can use to access the data stores.\n"},"servicePrincipalId":{"type":"string","description":"Unique identifier of the Azure service principal that the Federated Database instance uses to access Azure Blob Storage.\n"},"tenantId":{"type":"string","description":"Unique identifier of the Azure Active Directory tenant where the service principal resides.\n"}},"type":"object","required":["atlasAppId","roleId","servicePrincipalId","tenantId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultDataProcessRegion:getFederatedDatabaseInstancesResultDataProcessRegion":{"properties":{"cloudProvider":{"type":"string","description":"Name of the cloud service provider. Supported providers: `AWS`, `AZURE`.\n"},"region":{"type":"string","description":"Name of the region to which the Federated Instance routes client connections for data processing.\n"}},"type":"object","required":["cloudProvider","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultStorageDatabase:getFederatedDatabaseInstancesResultStorageDatabase":{"properties":{"collections":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultStorageDatabaseCollection:getFederatedDatabaseInstancesResultStorageDatabaseCollection"}},"maxWildcardCollections":{"type":"integer"},"name":{"type":"string"},"views":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultStorageDatabaseView:getFederatedDatabaseInstancesResultStorageDatabaseView"}}},"type":"object","required":["collections","maxWildcardCollections","name","views"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultStorageDatabaseCollection:getFederatedDatabaseInstancesResultStorageDatabaseCollection":{"properties":{"dataSources":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultStorageDatabaseCollectionDataSource:getFederatedDatabaseInstancesResultStorageDatabaseCollectionDataSource"}},"name":{"type":"string"}},"type":"object","required":["dataSources","name"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultStorageDatabaseCollectionDataSource:getFederatedDatabaseInstancesResultStorageDatabaseCollectionDataSource":{"properties":{"allowInsecure":{"type":"boolean"},"collection":{"type":"string"},"collectionRegex":{"type":"string"},"database":{"type":"string"},"databaseRegex":{"type":"string"},"datasetName":{"type":"string"},"defaultFormat":{"type":"string"},"path":{"type":"string"},"provenanceFieldName":{"type":"string"},"storeName":{"type":"string"},"urls":{"type":"array","items":{"type":"string"}}},"type":"object","required":["allowInsecure","collection","collectionRegex","database","databaseRegex","datasetName","defaultFormat","path","provenanceFieldName","storeName","urls"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultStorageDatabaseView:getFederatedDatabaseInstancesResultStorageDatabaseView":{"properties":{"name":{"type":"string"},"pipeline":{"type":"string"},"source":{"type":"string"}},"type":"object","required":["name","pipeline","source"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultStorageStore:getFederatedDatabaseInstancesResultStorageStore":{"properties":{"additionalStorageClasses":{"type":"array","items":{"type":"string"}},"allowInsecure":{"type":"boolean"},"bucket":{"type":"string"},"clusterName":{"type":"string"},"defaultFormat":{"type":"string"},"delimiter":{"type":"string"},"includeTags":{"type":"boolean"},"name":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"provider":{"type":"string"},"public":{"type":"string"},"readPreferences":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultStorageStoreReadPreference:getFederatedDatabaseInstancesResultStorageStoreReadPreference"}},"region":{"type":"string","description":"Name of the region to which the Federated Instance routes client connections for data processing.\n"},"urls":{"type":"array","items":{"type":"string"}}},"type":"object","required":["additionalStorageClasses","allowInsecure","bucket","clusterName","defaultFormat","delimiter","includeTags","name","prefix","projectId","provider","public","readPreferences","region","urls"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultStorageStoreReadPreference:getFederatedDatabaseInstancesResultStorageStoreReadPreference":{"properties":{"maxStalenessSeconds":{"type":"integer"},"mode":{"type":"string"},"tagSets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultStorageStoreReadPreferenceTagSet:getFederatedDatabaseInstancesResultStorageStoreReadPreferenceTagSet"}}},"type":"object","required":["maxStalenessSeconds","mode","tagSets"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultStorageStoreReadPreferenceTagSet:getFederatedDatabaseInstancesResultStorageStoreReadPreferenceTagSet":{"properties":{"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResultStorageStoreReadPreferenceTagSetTag:getFederatedDatabaseInstancesResultStorageStoreReadPreferenceTagSetTag"}}},"type":"object","required":["tags"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedDatabaseInstancesResultStorageStoreReadPreferenceTagSetTag:getFederatedDatabaseInstancesResultStorageStoreReadPreferenceTagSetTag":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedQueryLimitsResult:getFederatedQueryLimitsResult":{"properties":{"currentUsage":{"type":"integer","description":"Amount that indicates the current usage of the limit.\n"},"defaultLimit":{"type":"integer","description":"Default value of the limit.\n* `lastModifiedDate` - Only used for Data Federation limits. Timestamp that indicates when this usage limit was last modified. This field uses the ISO 8601 timestamp format in UTC.\n* `maximumLimit` - Maximum value of the limit.\n"},"lastModifiedDate":{"type":"string"},"limitName":{"type":"string"},"maximumLimit":{"type":"integer"},"overrunPolicy":{"type":"string"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"tenantName":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"value":{"type":"integer"}},"type":"object","required":["currentUsage","defaultLimit","lastModifiedDate","limitName","maximumLimit","overrunPolicy","projectId","tenantName","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProviderAssociatedOrg:getFederatedSettingsIdentityProviderAssociatedOrg":{"properties":{"domainAllowLists":{"type":"array","items":{"type":"string"},"description":"List that contains the approved domains from which organization users can log in.\n"},"domainRestrictionEnabled":{"type":"boolean","description":"Flag that indicates whether domain restriction is enabled for the connected organization.\n"},"identityProviderId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the IdP.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"postAuthRoleGrants":{"type":"array","items":{"type":"string"},"description":"List that contains the default roles granted to users who authenticate through the IdP in a connected organization. If you provide a postAuthRoleGrants field in the request, the array that you provide replaces the current postAuthRoleGrants.\n"},"roleMappings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProviderAssociatedOrgRoleMapping:getFederatedSettingsIdentityProviderAssociatedOrgRoleMapping"}},"userConflicts":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProviderAssociatedOrgUserConflict:getFederatedSettingsIdentityProviderAssociatedOrgUserConflict"}}},"type":"object","required":["domainAllowLists","domainRestrictionEnabled","identityProviderId","orgId","postAuthRoleGrants","roleMappings","userConflicts"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProviderAssociatedOrgRoleMapping:getFederatedSettingsIdentityProviderAssociatedOrgRoleMapping":{"properties":{"externalGroupName":{"type":"string","description":"Unique human-readable label that identifies the identity provider group to which this role mapping applies.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this role mapping.\n"},"roleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProviderAssociatedOrgRoleMappingRoleAssignment:getFederatedSettingsIdentityProviderAssociatedOrgRoleMappingRoleAssignment"},"description":"Atlas roles and the unique identifiers of the groups and organizations associated with each role.\n"}},"type":"object","required":["externalGroupName","id","roleAssignments"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProviderAssociatedOrgRoleMappingRoleAssignment:getFederatedSettingsIdentityProviderAssociatedOrgRoleMappingRoleAssignment":{"properties":{"groupId":{"type":"string","description":"Unique identifier of the project to which you want the role mapping to apply.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"role":{"type":"string","description":"Specifies the Role that is attached to the Role Mapping.\n"}},"type":"object","required":["groupId","orgId","role"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProviderAssociatedOrgUserConflict:getFederatedSettingsIdentityProviderAssociatedOrgUserConflict":{"properties":{"emailAddress":{"type":"string","description":"Email address of the the user that conflicts with selected domains.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"firstName":{"type":"string","description":"First name of the the user that conflicts with selected domains.\n"},"lastName":{"type":"string","description":"Last name of the the user that conflicts with selected domains.\n"},"userId":{"type":"string","description":"Name of the Atlas user that conflicts with selected domains.\n"}},"type":"object","required":["emailAddress","federationSettingsId","firstName","lastName","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProviderPemFileInfo:getFederatedSettingsIdentityProviderPemFileInfo":{"properties":{"certificates":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProviderPemFileInfoCertificate:getFederatedSettingsIdentityProviderPemFileInfoCertificate"}},"fileName":{"type":"string","description":"Filename of certificate\n"}},"type":"object","required":["certificates","fileName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProviderPemFileInfoCertificate:getFederatedSettingsIdentityProviderPemFileInfoCertificate":{"properties":{"notAfter":{"type":"string","description":"Expiration  Date.\n"},"notBefore":{"type":"string","description":"Start Date.\n"}},"type":"object","required":["notAfter","notBefore"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProvidersResult:getFederatedSettingsIdentityProvidersResult":{"properties":{"acsUrl":{"type":"string","description":"Assertion consumer service URL to which the IdP sends the SAML response.\n"},"associatedDomains":{"type":"array","items":{"type":"string"},"description":"List that contains the configured domains from which users can log in for this IdP.\n"},"associatedOrgs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProvidersResultAssociatedOrg:getFederatedSettingsIdentityProvidersResultAssociatedOrg"},"description":"List that contains the configured domains from which users can log in for this IdP.\n"},"audience":{"type":"string","description":"Identifier of the intended recipient of the token.\n"},"audienceUri":{"type":"string","description":"Identifier for the intended audience of the SAML Assertion.\n"},"authorizationType":{"type":"string","description":"Indicates whether authorization is granted based on group membership or user ID. Valid values are `GROUP` or `USER`.\n"},"clientId":{"type":"string","description":"Client identifier that is assigned to an application by the Identity Provider.\n"},"description":{"type":"string","description":"The description of the identity provider.\n"},"displayName":{"type":"string","description":"Human-readable label that identifies the IdP.\n"},"groupsClaim":{"type":"string","description":"Identifier of the claim which contains IdP Group IDs in the token.\n"},"idpId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the IdP.\n"},"idpType":{"type":"string","description":"Type of the identity provider. Valid values are `WORKFORCE` or `WORKLOAD`.\n"},"issuerUri":{"type":"string","description":"Identifier for the issuer of the SAML Assertion.\n"},"oktaIdpId":{"type":"string"},"pemFileInfos":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProvidersResultPemFileInfo:getFederatedSettingsIdentityProvidersResultPemFileInfo"}},"protocol":{"type":"string","description":"The protocol of the identity provider\n"},"requestBinding":{"type":"string","description":"SAML Authentication Request Protocol binding used to send the AuthNRequest. Atlas supports the following binding values:\n- HTTP POST\n- HTTP REDIRECT\n"},"requestedScopes":{"type":"array","items":{"type":"string"},"description":"Scopes that MongoDB applications will request from the authorization endpoint.\n"},"responseSignatureAlgorithm":{"type":"string","description":"Algorithm used to encrypt the IdP signature. Atlas supports the following signature algorithm values:\n- SHA-1\n- SHA-256\n"},"ssoDebugEnabled":{"type":"boolean","description":"Flag that indicates whether the IdP has enabled Bypass SAML Mode. Enabling this mode generates a URL that allows you bypass SAML and login to your organizations at any point. You can authenticate with this special URL only when Bypass Mode is enabled. Set this parameter to true during testing. This keeps you from getting locked out of MongoDB.\n"},"ssoUrl":{"type":"string","description":"URL of the receiver of the SAML AuthNRequest.\n"},"status":{"type":"string","description":"Label that indicates whether the identity provider is active. The IdP is Inactive until you map at least one domain to the IdP.\n"},"userClaim":{"type":"string","description":"Identifier of the claim which contains the user ID in the token.\n"}},"type":"object","required":["acsUrl","associatedDomains","associatedOrgs","audience","audienceUri","authorizationType","clientId","description","displayName","groupsClaim","idpId","idpType","issuerUri","oktaIdpId","pemFileInfos","protocol","requestBinding","requestedScopes","responseSignatureAlgorithm","ssoDebugEnabled","ssoUrl","status","userClaim"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProvidersResultAssociatedOrg:getFederatedSettingsIdentityProvidersResultAssociatedOrg":{"properties":{"domainAllowLists":{"type":"array","items":{"type":"string"},"description":"List that contains the approved domains from which organization users can log in.\n"},"domainRestrictionEnabled":{"type":"boolean","description":"Flag that indicates whether domain restriction is enabled for the connected organization.\n"},"identityProviderId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"postAuthRoleGrants":{"type":"array","items":{"type":"string"},"description":"List that contains the default roles granted to users who authenticate through the IdP in a connected organization. If you provide a postAuthRoleGrants field in the request, the array that you provide replaces the current postAuthRoleGrants.\n"},"roleMappings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProvidersResultAssociatedOrgRoleMapping:getFederatedSettingsIdentityProvidersResultAssociatedOrgRoleMapping"}},"userConflicts":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProvidersResultAssociatedOrgUserConflict:getFederatedSettingsIdentityProvidersResultAssociatedOrgUserConflict"}}},"type":"object","required":["domainAllowLists","domainRestrictionEnabled","identityProviderId","orgId","postAuthRoleGrants","roleMappings","userConflicts"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProvidersResultAssociatedOrgRoleMapping:getFederatedSettingsIdentityProvidersResultAssociatedOrgRoleMapping":{"properties":{"externalGroupName":{"type":"string","description":"Unique human-readable label that identifies the identity provider group to which this role mapping applies.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this role mapping.\n"},"roleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProvidersResultAssociatedOrgRoleMappingRoleAssignment:getFederatedSettingsIdentityProvidersResultAssociatedOrgRoleMappingRoleAssignment"},"description":"Atlas roles and the unique identifiers of the groups and organizations associated with each role.\n"}},"type":"object","required":["externalGroupName","id","roleAssignments"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProvidersResultAssociatedOrgRoleMappingRoleAssignment:getFederatedSettingsIdentityProvidersResultAssociatedOrgRoleMappingRoleAssignment":{"properties":{"groupId":{"type":"string","description":"Unique identifier of the project to which you want the role mapping to apply.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"role":{"type":"string","description":"Specifies the Role that is attached to the Role Mapping.\n"}},"type":"object","required":["groupId","orgId","role"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProvidersResultAssociatedOrgUserConflict:getFederatedSettingsIdentityProvidersResultAssociatedOrgUserConflict":{"properties":{"emailAddress":{"type":"string","description":"Email address of the the user that conflicts with selected domains.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"firstName":{"type":"string","description":"First name of the the user that conflicts with selected domains.\n"},"lastName":{"type":"string","description":"Last name of the the user that conflicts with selected domains.\n"},"userId":{"type":"string","description":"Name of the Atlas user that conflicts with selected domains.\n"}},"type":"object","required":["emailAddress","federationSettingsId","firstName","lastName","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProvidersResultPemFileInfo:getFederatedSettingsIdentityProvidersResultPemFileInfo":{"properties":{"certificates":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProvidersResultPemFileInfoCertificate:getFederatedSettingsIdentityProvidersResultPemFileInfoCertificate"}},"fileName":{"type":"string","description":"Filename of certificate\n"}},"type":"object","required":["certificates","fileName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsIdentityProvidersResultPemFileInfoCertificate:getFederatedSettingsIdentityProvidersResultPemFileInfoCertificate":{"properties":{"notAfter":{"type":"string","description":"Expiration  Date.\n"},"notBefore":{"type":"string","description":"Start Date.\n"}},"type":"object","required":["notAfter","notBefore"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsOrgConfigRoleMapping:getFederatedSettingsOrgConfigRoleMapping":{"properties":{"externalGroupName":{"type":"string","description":"Unique human-readable label that identifies the identity provider group to which this role mapping applies.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this role mapping.\n"},"roleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsOrgConfigRoleMappingRoleAssignment:getFederatedSettingsOrgConfigRoleMappingRoleAssignment"},"description":"Atlas roles and the unique identifiers of the groups and organizations associated with each role.\n"}},"type":"object","required":["externalGroupName","id","roleAssignments"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsOrgConfigRoleMappingRoleAssignment:getFederatedSettingsOrgConfigRoleMappingRoleAssignment":{"properties":{"groupId":{"type":"string","description":"Unique identifier of the project to which you want the role mapping to apply.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"role":{"type":"string","description":"Specifies the Role that is attached to the Role Mapping.\n"}},"type":"object","required":["groupId","orgId","role"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsOrgConfigUserConflict:getFederatedSettingsOrgConfigUserConflict":{"properties":{"emailAddress":{"type":"string","description":"Email address of the the user that conflicts with selected domains.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"firstName":{"type":"string","description":"First name of the the user that conflicts with selected domains.\n"},"lastName":{"type":"string","description":"Last name of the the user that conflicts with selected domains.\n"},"userId":{"type":"string","description":"Name of the Atlas user that conflicts with selected domains.\n"}},"type":"object","required":["emailAddress","federationSettingsId","firstName","lastName","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsOrgConfigsResult:getFederatedSettingsOrgConfigsResult":{"properties":{"dataAccessIdentityProviderIds":{"type":"array","items":{"type":"string"},"description":"The collection of unique ids representing the identity providers that can be used for data access in this organization.\n"},"domainAllowLists":{"type":"array","items":{"type":"string"},"description":"List that contains the approved domains from which organization users can log in.\n"},"domainRestrictionEnabled":{"type":"boolean","description":"Flag that indicates whether domain restriction is enabled for the connected organization.\n"},"identityProviderId":{"type":"string","description":"Legacy 20-hexadecimal digit string that identifies the SAML access identity provider that this connected org config is associated with. This id can be found in two ways:\n1. Within the Federation Management UI in Atlas in the Identity Providers tab by clicking the info icon in the IdP ID row of a configured SAML identity provider\n2. \u003cspan pulumi-lang-nodejs=\"`oktaIdpId`\" pulumi-lang-dotnet=\"`OktaIdpId`\" pulumi-lang-go=\"`oktaIdpId`\" pulumi-lang-python=\"`okta_idp_id`\" pulumi-lang-yaml=\"`oktaIdpId`\" pulumi-lang-java=\"`oktaIdpId`\"\u003e`okta_idp_id`\u003c/span\u003e on the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-go=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-python=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsIdentityProvider`\"\u003e`mongodbatlas.FederatedSettingsIdentityProvider`\u003c/span\u003e resource\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"postAuthRoleGrants":{"type":"array","items":{"type":"string"},"description":"List that contains the default roles granted to users who authenticate through the IdP in a connected organization.\n"},"roleMappings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsOrgConfigsResultRoleMapping:getFederatedSettingsOrgConfigsResultRoleMapping"},"description":"Role mappings that are configured in this organization. See below\n"},"userConflicts":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsOrgConfigsResultUserConflict:getFederatedSettingsOrgConfigsResultUserConflict"},"description":"List that contains the users who have an email address that doesn't match any domain on the allowed list. See below\n"}},"type":"object","required":["dataAccessIdentityProviderIds","domainAllowLists","domainRestrictionEnabled","identityProviderId","orgId","postAuthRoleGrants","roleMappings","userConflicts"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsOrgConfigsResultRoleMapping:getFederatedSettingsOrgConfigsResultRoleMapping":{"properties":{"externalGroupName":{"type":"string","description":"Unique human-readable label that identifies the identity provider group to which this role mapping applies.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this role mapping.\n"},"roleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsOrgConfigsResultRoleMappingRoleAssignment:getFederatedSettingsOrgConfigsResultRoleMappingRoleAssignment"},"description":"Atlas roles and the unique identifiers of the groups and organizations associated with each role.\n"}},"type":"object","required":["externalGroupName","id","roleAssignments"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsOrgConfigsResultRoleMappingRoleAssignment:getFederatedSettingsOrgConfigsResultRoleMappingRoleAssignment":{"properties":{"groupId":{"type":"string","description":"Unique identifier of the project to which you want the role mapping to apply.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"role":{"type":"string","description":"Specifies the Role that is attached to the Role Mapping.\n"}},"type":"object","required":["groupId","orgId","role"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsOrgConfigsResultUserConflict:getFederatedSettingsOrgConfigsResultUserConflict":{"properties":{"emailAddress":{"type":"string","description":"Email address of the the user that conflicts with selected domains.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"firstName":{"type":"string","description":"First name of the the user that conflicts with selected domains.\n"},"lastName":{"type":"string","description":"Last name of the the user that conflicts with selected domains.\n"},"userId":{"type":"string","description":"Name of the Atlas user that conflicts with selected domains.\n"}},"type":"object","required":["emailAddress","federationSettingsId","firstName","lastName","userId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsOrgRoleMappingRoleAssignment:getFederatedSettingsOrgRoleMappingRoleAssignment":{"properties":{"groupId":{"type":"string","description":"Unique identifier of the project to which you want the role mapping to apply.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"role":{"type":"string","description":"Specifies the Role that is attached to the Role Mapping.\n"}},"type":"object","required":["groupId","orgId","role"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsOrgRoleMappingsResult:getFederatedSettingsOrgRoleMappingsResult":{"properties":{"externalGroupName":{"type":"string","description":"Unique label that identifies the identity provider group to which this role mapping applies.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this role mapping.\n"},"roleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsOrgRoleMappingsResultRoleAssignment:getFederatedSettingsOrgRoleMappingsResultRoleAssignment"},"description":"Atlas roles and the unique identifiers of the groups and organizations associated with each role.\n"}},"type":"object","required":["externalGroupName","id","roleAssignments"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFederatedSettingsOrgRoleMappingsResultRoleAssignment:getFederatedSettingsOrgRoleMappingsResultRoleAssignment":{"properties":{"groupId":{"type":"string","description":"Unique identifier of the project to which you want the role mapping to apply.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"role":{"type":"string","description":"Specifies the Role that is attached to the Role Mapping.\n"}},"type":"object","required":["groupId","orgId","role"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFlexClusterBackupSettings:getFlexClusterBackupSettings":{"properties":{"enabled":{"type":"boolean","description":"Flag that indicates whether backups are performed for this flex cluster. Backup uses [flex cluster backups](https://www.mongodb.com/docs/atlas/backup/cloud-backup/flex-cluster-backup/).\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFlexClusterConnectionStrings:getFlexClusterConnectionStrings":{"properties":{"standard":{"type":"string","description":"Public connection string that you can use to connect to this cluster. This connection string uses the mongodb:// protocol.\n"},"standardSrv":{"type":"string","description":"Public connection string that you can use to connect to this flex cluster. This connection string uses the `mongodb+srv://` protocol.\n"}},"type":"object","required":["standard","standardSrv"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFlexClusterProviderSettings:getFlexClusterProviderSettings":{"properties":{"backingProviderName":{"type":"string","description":"Cloud service provider on which MongoDB Cloud provisioned the flex cluster.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity available to the flex cluster expressed in gigabytes.\n"},"providerName":{"type":"string","description":"Human-readable label that identifies the cloud service provider.\n"},"regionName":{"type":"string","description":"Human-readable label that identifies the geographic location of your MongoDB flex cluster. The region you choose can affect network latency for clients accessing your databases. For a complete list of region names, see [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/#std-label-amazon-aws), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), and [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n"}},"type":"object","required":["backingProviderName","diskSizeGb","providerName","regionName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFlexClustersResult:getFlexClustersResult":{"properties":{"backupSettings":{"$ref":"#/types/mongodbatlas:index/getFlexClustersResultBackupSettings:getFlexClustersResultBackupSettings","description":"Flex backup configuration\n"},"clusterType":{"type":"string","description":"Flex cluster topology.\n"},"connectionStrings":{"$ref":"#/types/mongodbatlas:index/getFlexClustersResultConnectionStrings:getFlexClustersResultConnectionStrings","description":"Collection of Uniform Resource Locators that point to the MongoDB database.\n"},"createDate":{"type":"string","description":"Date and time when MongoDB Cloud created this instance. This parameter expresses its value in ISO 8601 format in UTC.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the instance.\n"},"mongoDbVersion":{"type":"string","description":"Version of MongoDB that the instance runs.\n"},"name":{"type":"string","description":"Human-readable label that identifies the instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the project.\n"},"providerSettings":{"$ref":"#/types/mongodbatlas:index/getFlexClustersResultProviderSettings:getFlexClustersResultProviderSettings","description":"Group of cloud provider settings that configure the provisioned MongoDB flex cluster.\n"},"stateName":{"type":"string","description":"Human-readable label that indicates the current operating condition of this instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the instance.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, MongoDB Cloud won't delete the cluster. If set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, MongoDB Cloud will delete the cluster.\n"},"versionReleaseSystem":{"type":"string","description":"Method by which the cluster maintains the MongoDB versions.\n"}},"type":"object","required":["backupSettings","clusterType","connectionStrings","createDate","id","mongoDbVersion","name","projectId","providerSettings","stateName","tags","terminationProtectionEnabled","versionReleaseSystem"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFlexClustersResultBackupSettings:getFlexClustersResultBackupSettings":{"properties":{"enabled":{"type":"boolean","description":"Flag that indicates whether backups are performed for this flex cluster. Backup uses [flex cluster backups](https://www.mongodb.com/docs/atlas/backup/cloud-backup/flex-cluster-backup/).\n"}},"type":"object","required":["enabled"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFlexClustersResultConnectionStrings:getFlexClustersResultConnectionStrings":{"properties":{"standard":{"type":"string","description":"Public connection string that you can use to connect to this cluster. This connection string uses the mongodb:// protocol.\n"},"standardSrv":{"type":"string","description":"Public connection string that you can use to connect to this flex cluster. This connection string uses the `mongodb+srv://` protocol.\n"}},"type":"object","required":["standard","standardSrv"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFlexClustersResultProviderSettings:getFlexClustersResultProviderSettings":{"properties":{"backingProviderName":{"type":"string","description":"Cloud service provider on which MongoDB Cloud provisioned the flex cluster.\n"},"diskSizeGb":{"type":"number","description":"Storage capacity available to the flex cluster expressed in gigabytes.\n"},"providerName":{"type":"string","description":"Human-readable label that identifies the cloud service provider.\n"},"regionName":{"type":"string","description":"Human-readable label that identifies the geographic location of your MongoDB flex cluster. The region you choose can affect network latency for clients accessing your databases. For a complete list of region names, see [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/#std-label-amazon-aws), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), and [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n"}},"type":"object","required":["backingProviderName","diskSizeGb","providerName","regionName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFlexRestoreJobsResult:getFlexRestoreJobsResult":{"properties":{"deliveryType":{"type":"string","description":"Means by which this resource returns the snapshot to the requesting MongoDB Cloud user.\n"},"expirationDate":{"type":"string","description":"Date and time when the download link no longer works. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"name":{"type":"string","description":"Human-readable label that identifies the flex cluster whose snapshot you want to restore.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"restoreFinishedDate":{"type":"string","description":"Date and time when MongoDB Cloud completed writing this snapshot. MongoDB Cloud changes the status of the restore job to `CLOSED`. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"restoreJobId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the restore job.\n"},"restoreScheduledDate":{"type":"string","description":"Date and time when MongoDB Cloud will restore this snapshot. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"snapshotFinishedDate":{"type":"string","description":"Date and time when MongoDB Cloud completed writing this snapshot. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"snapshotId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the snapshot to restore.\n"},"snapshotUrl":{"type":"string","description":"Internet address from which you can download the compressed snapshot files. The resource returns this parameter when  `\"deliveryType\" : \"DOWNLOAD\"`.\n"},"status":{"type":"string","description":"Phase of the restore workflow for this job at the time this resource made this request.\n"},"targetDeploymentItemName":{"type":"string","description":"Human-readable label that identifies the instance or cluster on the target project to which you want to restore the snapshot. You can restore the snapshot to another flex cluster or dedicated cluster tier.\n"},"targetProjectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project that contains the instance or cluster to which you want to restore the snapshot.\n"}},"type":"object","required":["deliveryType","expirationDate","name","projectId","restoreFinishedDate","restoreJobId","restoreScheduledDate","snapshotFinishedDate","snapshotId","snapshotUrl","status","targetDeploymentItemName","targetProjectId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getFlexSnapshotsResult:getFlexSnapshotsResult":{"properties":{"expiration":{"type":"string","description":"Date and time when the download link no longer works. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"finishTime":{"type":"string","description":"Date and time when MongoDB Cloud completed writing this snapshot. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"mongoDbVersion":{"type":"string","description":"MongoDB host version that the snapshot runs.\n"},"name":{"type":"string","description":"Human-readable label that identifies the flex cluster whose snapshot you want to restore.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"scheduledTime":{"type":"string","description":"Date and time when MongoDB Cloud will take the snapshot. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"snapshotId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the snapshot to restore.\n"},"startTime":{"type":"string","description":"Date and time when MongoDB Cloud began taking the snapshot. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"status":{"type":"string","description":"Phase of the restore workflow for this job at the time this resource made this request.\n"}},"type":"object","required":["expiration","finishTime","mongoDbVersion","name","projectId","scheduledTime","snapshotId","startTime","status"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getGlobalClusterConfigManagedNamespace:getGlobalClusterConfigManagedNamespace":{"properties":{"collection":{"type":"string","description":"(Required) The name of the collection associated with the managed namespace.\n"},"customShardKey":{"type":"string","description":"(Required)\tThe custom shard key for the collection. Global Clusters require a compound shard key consisting of a location field and a user-selected second key, the custom shard key.\n"},"db":{"type":"string","description":"(Required) The name of the database containing the collection.\n"},"isCustomShardKeyHashed":{"type":"boolean","description":"Specifies whether the custom shard key for the collection is [hashed](https://docs.mongodb.com/manual/reference/method/sh.shardCollection/#hashed-shard-keys). If omitted, defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, Atlas uses [ranged sharding](https://docs.mongodb.com/manual/core/ranged-sharding/). This is only available for Atlas clusters with MongoDB v4.4 and later.\n"},"isShardKeyUnique":{"type":"boolean","description":"Specifies whether the underlying index enforces a unique constraint. If omitted, defaults to false. You cannot specify true when using [hashed shard keys](https://docs.mongodb.com/manual/core/hashed-sharding/#std-label-sharding-hashed).\n"}},"type":"object","required":["collection","customShardKey","db","isCustomShardKeyHashed","isShardKeyUnique"],"language":{"nodejs":{"requiredInputs":["collection","customShardKey","db"]}}},"mongodbatlas:index/getLdapConfigurationUserToDnMapping:getLdapConfigurationUserToDnMapping":{"properties":{"ldapQuery":{"type":"string","description":"An LDAP query formatting template that inserts the LDAP name matched by the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression into an LDAP query URI as specified by RFC 4515 and RFC 4516.\n"},"match":{"type":"string","description":"A regular expression to match against a provided LDAP username.\n"},"substitution":{"type":"string","description":"An LDAP Distinguished Name (DN) formatting template that converts the LDAP name matched by the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression into an LDAP Distinguished Name.\n"}},"type":"object","required":["ldapQuery","match","substitution"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getLdapVerifyLink:getLdapVerifyLink":{"properties":{"href":{"type":"string"},"rel":{"type":"string"}},"type":"object","required":["href","rel"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getLdapVerifyValidation:getLdapVerifyValidation":{"properties":{"status":{"type":"string","description":"The current status of the LDAP over TLS/SSL configuration.\n"},"validationType":{"type":"string"}},"type":"object","required":["status","validationType"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getLogIntegrationOtelSuppliedHeader:getLogIntegrationOtelSuppliedHeader":{"properties":{"name":{"type":"string","description":"Header name.\n"},"value":{"type":"string","description":"Header value.\n","secret":true}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getLogIntegrationsResult:getLogIntegrationsResult":{"properties":{"apiKey":{"type":"string","description":"Applies to type: DATADOG_LOG_EXPORT. API key for authentication.\n","secret":true},"bucketName":{"type":"string","description":"Applies to type: GCS_LOG_EXPORT, S3_LOG_EXPORT. Name of the bucket to store log files.\n"},"hecToken":{"type":"string","description":"Applies to type: SPLUNK_LOG_EXPORT. HTTP Event Collector (HEC) token for authentication.\n","secret":true},"hecUrl":{"type":"string","description":"Applies to type: SPLUNK_LOG_EXPORT. HTTP Event Collector (HEC) endpoint URL.\n"},"iamRoleId":{"type":"string","description":"Applies to type: S3_LOG_EXPORT. Unique 24-character hexadecimal string that identifies the AWS IAM role that Atlas uses to access the S3 bucket.\n"},"integrationId":{"type":"string","description":"Unique 24-character hexadecimal digit string that identifies the log integration configuration.\n"},"kmsKey":{"type":"string","description":"Applies to type: S3_LOG_EXPORT. AWS KMS key ID or ARN for server-side encryption (optional). If not provided, uses bucket default encryption settings.\n"},"logTypes":{"type":"array","items":{"type":"string"},"description":"Array of log types exported by this integration.\n"},"otelEndpoint":{"type":"string","description":"Applies to type: OTEL_LOG_EXPORT. OpenTelemetry collector endpoint URL.\n"},"otelSuppliedHeaders":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getLogIntegrationsResultOtelSuppliedHeader:getLogIntegrationsResultOtelSuppliedHeader"},"description":"Applies to type: OTEL_LOG_EXPORT. HTTP headers for authentication and configuration. Maximum 10 headers, total size limit 2KB.\n","secret":true},"prefixPath":{"type":"string","description":"Applies to type: AZURE_LOG_EXPORT, GCS_LOG_EXPORT, S3_LOG_EXPORT. Path prefix where the log files will be stored. Atlas will add further sub-directories based on the log type.\n"},"region":{"type":"string","description":"Applies to type: DATADOG_LOG_EXPORT. Datadog site/region for log ingestion. Valid values: US1, US3, US5, EU, AP1, AP2, US1_FED.\n"},"roleId":{"type":"string","description":"Applies to type: AZURE_LOG_EXPORT, GCS_LOG_EXPORT. Unique 24-character hexadecimal string that identifies the Atlas Cloud Provider Access role.\n"},"storageAccountName":{"type":"string","description":"Applies to type: AZURE_LOG_EXPORT. Storage account name where logs will be stored.\n"},"storageContainerName":{"type":"string","description":"Applies to type: AZURE_LOG_EXPORT. Storage container name for log files.\n"},"type":{"type":"string","description":"Human-readable label that identifies the service to which you want to integrate with Atlas. The value must match the log integration type. This value cannot be modified after the integration is created.\n"}},"type":"object","required":["apiKey","bucketName","hecToken","hecUrl","iamRoleId","integrationId","kmsKey","logTypes","otelEndpoint","otelSuppliedHeaders","prefixPath","region","roleId","storageAccountName","storageContainerName","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getLogIntegrationsResultOtelSuppliedHeader:getLogIntegrationsResultOtelSuppliedHeader":{"properties":{"name":{"type":"string","description":"Header name.\n"},"value":{"type":"string","description":"Header value.\n","secret":true}},"type":"object","required":["name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getMaintenanceWindowProtectedHour:getMaintenanceWindowProtectedHour":{"properties":{"endHourOfDay":{"type":"integer","description":"Zero-based integer that represents the end hour of the day for the protected hours window.\n"},"startHourOfDay":{"type":"integer","description":"Zero-based integer that represents the beginning hour of the day for the protected hours window.\n"}},"type":"object","required":["endHourOfDay","startHourOfDay"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getNetworkContainersResult:getNetworkContainersResult":{"properties":{"atlasCidrBlock":{"type":"string","description":"CIDR block that Atlas uses for your clusters. Atlas uses the specified CIDR block for all other Network Peering connections created in the project. The Atlas CIDR block must be at least a /24 and at most a /21 in one of the following [private networks](https://tools.ietf.org/html/rfc1918.html#section-3).\n"},"azureSubscriptionId":{"type":"string","description":"Unique identifer of the Azure subscription in which the VNet resides.\n"},"gcpProjectId":{"type":"string","description":"Unique identifier of the GCP project in which the Network Peering connection resides.\n"},"id":{"type":"string","description":"The Network Peering Container ID.\n"},"networkName":{"type":"string","description":"Name of the Network Peering connection in the Atlas project.\n"},"providerName":{"type":"string","description":"Cloud provider for this Network peering container. Accepted values are AWS, GCP, and Azure.\n"},"provisioned":{"type":"boolean","description":"Indicates whether the project has Network Peering connections deployed in the container.\n"},"region":{"type":"string","description":"The Atlas Azure region name for where this container exists.\n"},"regionName":{"type":"string","description":"The Atlas AWS region name for where this container exists.\n"},"regions":{"type":"array","items":{"type":"string"},"description":"Atlas GCP regions where the container resides.\n"},"vnetName":{"type":"string","description":"The name of the Azure VNet. This value is null until you provision an Azure VNet in the container.\n"},"vpcId":{"type":"string","description":"Unique identifier of the project’s VPC.\n"}},"type":"object","required":["atlasCidrBlock","azureSubscriptionId","gcpProjectId","id","networkName","providerName","provisioned","region","regionName","regions","vnetName","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getNetworkPeeringsResult:getNetworkPeeringsResult":{"properties":{"accepterRegionName":{"type":"string","description":"Specifies the region where the peer VPC resides. For complete lists of supported regions, see [Amazon Web Services](https://docs.atlas.mongodb.com/reference/amazon-aws/).\n"},"atlasCidrBlock":{"type":"string"},"awsAccountId":{"type":"string","description":"Account ID of the owner of the peer VPC.\n"},"azureDirectoryId":{"type":"string","description":"Unique identifier for an Azure AD directory.\n"},"azureSubscriptionId":{"type":"string","description":"Unique identifer of the Azure subscription in which the VNet resides.\n"},"connectionId":{"type":"string","description":"Unique identifier for the peering connection.\n"},"containerId":{"type":"string"},"errorMessage":{"type":"string","description":"When `\"status\" : \"FAILED\"`, Atlas provides a description of the error.\n"},"errorState":{"type":"string","description":"Description of the Atlas error when \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e is `Failed`, Otherwise, Atlas returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e.\n"},"errorStateName":{"type":"string","description":"Error state, if any. The VPC peering connection error state value can be one of the following: `REJECTED`, `EXPIRED`, `INVALID_ARGUMENT`.\n"},"gcpProjectId":{"type":"string","description":"GCP project ID of the owner of the network peer.\n"},"networkName":{"type":"string","description":"Name of the network peer to which Atlas connects.\n"},"peeringId":{"type":"string","description":"Atlas assigned unique ID for the peering connection.\n"},"providerName":{"type":"string","description":"Cloud provider for this VPC peering connection. If omitted, Atlas sets this parameter to AWS. (Possible Values `AWS`, `AZURE`, `GCP`).\n"},"resourceGroupName":{"type":"string","description":"Name of your Azure resource group.\n"},"routeTableCidrBlock":{"type":"string","description":"Peer VPC CIDR block or subnet.\n"},"status":{"type":"string","description":"Status of the Atlas network peering connection: `ADDING_PEER`, `AVAILABLE`, `FAILED`, `DELETING`, `WAITING_FOR_USER`.\n"},"statusName":{"type":"string","description":"The VPC peering connection status value can be one of the following: `INITIATING`, `PENDING_ACCEPTANCE`, `FAILED`, `FINALIZING`, `AVAILABLE`, `TERMINATING`.\n"},"vnetName":{"type":"string","description":"Name of your Azure VNet.\n"},"vpcId":{"type":"string","description":"Unique identifier of the peer VPC.\n"}},"type":"object","required":["accepterRegionName","atlasCidrBlock","awsAccountId","azureDirectoryId","azureSubscriptionId","connectionId","containerId","errorMessage","errorState","errorStateName","gcpProjectId","networkName","peeringId","providerName","resourceGroupName","routeTableCidrBlock","status","statusName","vnetName","vpcId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchiveCriteria:getOnlineArchiveCriteria":{"properties":{"dateField":{"type":"string"},"dateFormat":{"type":"string"},"expireAfterDays":{"type":"integer"},"query":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["dateField","dateFormat","expireAfterDays","query","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchiveDataExpirationRule:getOnlineArchiveDataExpirationRule":{"properties":{"expireAfterDays":{"type":"integer"}},"type":"object","required":["expireAfterDays"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchiveDataProcessRegion:getOnlineArchiveDataProcessRegion":{"properties":{"cloudProvider":{"type":"string"},"region":{"type":"string"}},"type":"object","required":["cloudProvider","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchivePartitionField:getOnlineArchivePartitionField":{"properties":{"fieldName":{"type":"string"},"fieldType":{"type":"string"},"order":{"type":"integer"}},"type":"object","required":["fieldName","fieldType","order"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchiveSchedule:getOnlineArchiveSchedule":{"properties":{"dayOfMonth":{"type":"integer"},"dayOfWeek":{"type":"integer"},"endHour":{"type":"integer"},"endMinute":{"type":"integer"},"startHour":{"type":"integer"},"startMinute":{"type":"integer"},"type":{"type":"string"}},"type":"object","required":["endHour","endMinute","startHour","startMinute","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchivesResult:getOnlineArchivesResult":{"properties":{"archiveId":{"type":"string"},"clusterName":{"type":"string","description":"Name of the cluster that contains the collection.\n\n# Attributes Reference\n\nIn addition to all arguments above, the following attributes are exported:\n"},"collName":{"type":"string"},"collectionType":{"type":"string"},"criterias":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchivesResultCriteria:getOnlineArchivesResultCriteria"}},"dataExpirationRules":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchivesResultDataExpirationRule:getOnlineArchivesResultDataExpirationRule"}},"dataProcessRegions":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchivesResultDataProcessRegion:getOnlineArchivesResultDataProcessRegion"}},"dbName":{"type":"string"},"partitionFields":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchivesResultPartitionField:getOnlineArchivesResultPartitionField"}},"paused":{"type":"boolean"},"projectId":{"type":"string","description":"The unique ID for the project.\n"},"schedules":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchivesResultSchedule:getOnlineArchivesResultSchedule"}},"state":{"type":"string"}},"type":"object","required":["archiveId","clusterName","collName","collectionType","criterias","dataExpirationRules","dataProcessRegions","dbName","partitionFields","paused","projectId","schedules","state"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchivesResultCriteria:getOnlineArchivesResultCriteria":{"properties":{"dateField":{"type":"string"},"dateFormat":{"type":"string"},"expireAfterDays":{"type":"integer"},"query":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["dateField","dateFormat","expireAfterDays","query","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchivesResultDataExpirationRule:getOnlineArchivesResultDataExpirationRule":{"properties":{"expireAfterDays":{"type":"integer"}},"type":"object","required":["expireAfterDays"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchivesResultDataProcessRegion:getOnlineArchivesResultDataProcessRegion":{"properties":{"cloudProvider":{"type":"string"},"region":{"type":"string"}},"type":"object","required":["cloudProvider","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchivesResultPartitionField:getOnlineArchivesResultPartitionField":{"properties":{"fieldName":{"type":"string"},"fieldType":{"type":"string"},"order":{"type":"integer"}},"type":"object","required":["fieldName","fieldType","order"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOnlineArchivesResultSchedule:getOnlineArchivesResultSchedule":{"properties":{"dayOfMonth":{"type":"integer"},"dayOfWeek":{"type":"integer"},"endHour":{"type":"integer"},"endMinute":{"type":"integer"},"startHour":{"type":"integer"},"startMinute":{"type":"integer"},"type":{"type":"string"}},"type":"object","required":["endHour","endMinute","startHour","startMinute","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOrganizationLink:getOrganizationLink":{"properties":{"href":{"type":"string"},"rel":{"type":"string"}},"type":"object","required":["href","rel"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOrganizationUser:getOrganizationUser":{"properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n"},"createdAt":{"type":"string","description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n"},"firstName":{"type":"string","description":"First or given name that belongs to the MongoDB Cloud user.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n"},"invitationCreatedAt":{"type":"string","description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"invitationExpiresAt":{"type":"string","description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"inviterUsername":{"type":"string","description":"Username of the MongoDB Cloud user who sent the invitation to join the organization.\n"},"lastAuth":{"type":"string","description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n"},"lastName":{"type":"string","description":"Last name, family name, or surname that belongs to the MongoDB Cloud user.\n"},"mobileNumber":{"type":"string","description":"Mobile phone number that belongs to the MongoDB Cloud user.\n"},"orgMembershipStatus":{"type":"string","description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n"},"roles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOrganizationUserRole:getOrganizationUserRole"},"description":"Organization- and project-level roles assigned to one MongoDB Cloud user within one organization.\n"},"teamIds":{"type":"array","items":{"type":"string"},"description":"List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Cloud user belongs.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"type":"object","required":["country","createdAt","firstName","id","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgMembershipStatus","roles","teamIds","username"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOrganizationUserRole:getOrganizationUserRole":{"properties":{"orgRoles":{"type":"array","items":{"type":"string"}},"projectRoleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOrganizationUserRoleProjectRoleAssignment:getOrganizationUserRoleProjectRoleAssignment"}}},"type":"object","required":["orgRoles","projectRoleAssignments"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOrganizationUserRoleProjectRoleAssignment:getOrganizationUserRoleProjectRoleAssignment":{"properties":{"projectId":{"type":"string"},"projectRoles":{"type":"array","items":{"type":"string"}}},"type":"object","required":["projectId","projectRoles"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOrganizationsResult:getOrganizationsResult":{"properties":{"apiAccessListRequired":{"type":"boolean","description":"Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.\n"},"genAiFeaturesEnabled":{"type":"boolean","description":"Flag that indicates whether this organization has access to generative AI features. This setting only applies to Atlas Commercial and defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. With this setting on, Project Owners may be able to enable or disable individual AI features at the project level. To learn more, see https://www.mongodb.com/docs/generative-ai-faq/.\n"},"id":{"type":"string","description":"Autogenerated Unique ID for this data source.\n"},"isDeleted":{"type":"boolean","description":"Flag that indicates whether this organization has been deleted.\n"},"links":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOrganizationsResultLink:getOrganizationsResultLink"}},"multiFactorAuthRequired":{"type":"boolean","description":"Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization. To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.\n"},"name":{"type":"string","description":"Human-readable label that identifies the organization.\n"},"restrictEmployeeAccess":{"type":"boolean","description":"Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission. Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.\n"},"securityContact":{"type":"string","description":"String that specifies a single email address for the specified organization to receive security-related notifications. Specifying a security contact does not grant them authorization or access to Atlas for security decisions or approvals.\n"},"skipDefaultAlertsSettings":{"type":"boolean","description":"Flag that indicates whether to prevent Atlas from automatically creating organization-level alerts not explicitly managed through Terraform. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"users":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOrganizationsResultUser:getOrganizationsResultUser"},"description":"Returns list of all pending and active MongoDB Cloud users associated with the specified organization.\n"}},"type":"object","required":["apiAccessListRequired","genAiFeaturesEnabled","id","isDeleted","links","multiFactorAuthRequired","name","restrictEmployeeAccess","securityContact","skipDefaultAlertsSettings","users"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOrganizationsResultLink:getOrganizationsResultLink":{"properties":{"href":{"type":"string"},"rel":{"type":"string"}},"type":"object","required":["href","rel"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOrganizationsResultUser:getOrganizationsResultUser":{"properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n"},"createdAt":{"type":"string","description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n"},"firstName":{"type":"string","description":"First or given name that belongs to the MongoDB Cloud user.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n"},"invitationCreatedAt":{"type":"string","description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"invitationExpiresAt":{"type":"string","description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"inviterUsername":{"type":"string","description":"Username of the MongoDB Cloud user who sent the invitation to join the organization.\n"},"lastAuth":{"type":"string","description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n"},"lastName":{"type":"string","description":"Last name, family name, or surname that belongs to the MongoDB Cloud user.\n"},"mobileNumber":{"type":"string","description":"Mobile phone number that belongs to the MongoDB Cloud user.\n\n\n\u003e **NOTE:** - Users with pending invitations created using \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-go=\"`ProjectInvitation`\" pulumi-lang-python=\"`ProjectInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-java=\"`mongodbatlas.ProjectInvitation`\"\u003e`mongodbatlas.ProjectInvitation`\u003c/span\u003e resource or via the deprecated [Invite One MongoDB Cloud User to Join One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createprojectinvitation) endpoint are excluded (or cannot be managed) with this resource. See [MongoDB Atlas API - MongoDB Cloud Users](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-mongodb-cloud-users) for details.\nTo manage these users with this resource/data source, refer to our Org Invitation to Cloud User Org Assignment Migration Guide.\n\n\n\u003e **NOTE:** - If you create an organization with our Terraform provider version \u003e=1.30.0, this field is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e by default.\u003cbr\u003e - If you have an existing organization created with our Terraform provider version \u003c1.30.0, this field might be \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, which is the [API default value](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorganization). To prevent the creation of future default alerts, set this explicitly to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e using the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Organization`\" pulumi-lang-dotnet=\"`mongodbatlas.Organization`\" pulumi-lang-go=\"`Organization`\" pulumi-lang-python=\"`Organization`\" pulumi-lang-yaml=\"`mongodbatlas.Organization`\" pulumi-lang-java=\"`mongodbatlas.Organization`\"\u003e`mongodbatlas.Organization`\u003c/span\u003e resource.\n\n\nSee [MongoDB Atlas API - Organizations](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Organizations/operation/listOrganizations)  Documentation for more information.\n"},"orgMembershipStatus":{"type":"string","description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n"},"roles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOrganizationsResultUserRole:getOrganizationsResultUserRole"},"description":"Organization- and project-level roles assigned to one MongoDB Cloud user within one organization.\n* `teamIds` - List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Cloud user belongs.\n"},"teamIds":{"type":"array","items":{"type":"string"}},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"type":"object","required":["country","createdAt","firstName","id","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgMembershipStatus","roles","teamIds","username"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOrganizationsResultUserRole:getOrganizationsResultUserRole":{"properties":{"orgRoles":{"type":"array","items":{"type":"string"}},"projectRoleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getOrganizationsResultUserRoleProjectRoleAssignment:getOrganizationsResultUserRoleProjectRoleAssignment"}}},"type":"object","required":["orgRoles","projectRoleAssignments"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getOrganizationsResultUserRoleProjectRoleAssignment:getOrganizationsResultUserRoleProjectRoleAssignment":{"properties":{"projectId":{"type":"string"},"projectRoles":{"type":"array","items":{"type":"string"}}},"type":"object","required":["projectId","projectRoles"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getPrivateLinkEndpointServiceEndpoint:getPrivateLinkEndpointServiceEndpoint":{"properties":{"endpointName":{"type":"string","description":"Forwarding rule that corresponds to the endpoint you created.\n"},"ipAddress":{"type":"string","description":"Private IP address of the network endpoint group you created.\n"},"status":{"type":"string","description":"Status of the endpoint. Atlas returns one of the [values shown above](https://docs.atlas.mongodb.com/reference/api/private-endpoints-endpoint-create-one/#std-label-ref-status-field).\n"}},"type":"object","required":["endpointName","ipAddress","status"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getPrivatelinkEndpointServiceDataFederationOnlineArchivesResult:getPrivatelinkEndpointServiceDataFederationOnlineArchivesResult":{"properties":{"comment":{"type":"string","description":"Human-readable string to associate with this private endpoint.\n"},"customerEndpointDnsName":{"type":"string","description":"(Optional) Human-readable label to identify VPC endpoint DNS name.\n"},"endpointId":{"type":"string","description":"Unique 22-character alphanumeric string that identifies the private endpoint. See [Atlas Data Federation supports Amazon Web Services private endpoints using the AWS PrivateLink feature](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation/operation/createDataFederationPrivateEndpoint).\n"},"providerName":{"type":"string","description":"Human-readable label that identifies the cloud service provider.\n"},"region":{"type":"string","description":"Human-readable label to identify the region of VPC endpoint.  Requires the **Atlas region name**, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n"},"type":{"type":"string","description":"Human-readable label that identifies the resource type associated with this private endpoint.\n"}},"type":"object","required":["comment","customerEndpointDnsName","endpointId","providerName","region","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getPrivatelinkEndpointsResult:getPrivatelinkEndpointsResult":{"properties":{"endpointGroupNames":{"type":"array","items":{"type":"string"},"description":"List of private endpoint names associated with the private endpoint service for port-mapped architectures. For GCP legacy private endpoint architectures, this is a list of endpoint group names associated with the private endpoint service.\n"},"endpointServiceName":{"type":"string","description":"Name of the PrivateLink endpoint service in AWS. Returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e while Atlas creates the endpoint service.\n"},"errorMessage":{"type":"string","description":"Error message for the private endpoint connection. Returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e if there are no errors.\n"},"interfaceEndpoints":{"type":"array","items":{"type":"string"},"description":"Unique identifiers of the interface endpoints in your VPC that you added to the AWS PrivateLink connection.\n"},"portMappingEnabled":{"type":"boolean","description":"Flag that indicates whether this resource uses GCP port-mapping. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the resource uses port-mapped architecture. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e or unset, the resource uses GCP legacy private endpoint architecture. Only applicable for GCP provider.\n"},"privateEndpoints":{"type":"array","items":{"type":"string"},"description":"All private endpoints that you have added to this Azure Private Link Service.\n"},"privateLinkId":{"type":"string","description":"Unique identifier of the private endpoint.\n"},"privateLinkServiceName":{"type":"string","description":"Name of the Azure Private Link Service that Atlas manages.\n"},"privateLinkServiceResourceId":{"type":"string","description":"Resource ID of the Azure Private Link Service that Atlas manages.\n"},"regionName":{"type":"string","description":"Region for the Private Service Connect endpoint service.\n"},"serviceAttachmentNames":{"type":"array","items":{"type":"string"},"description":"List containing one service attachment connected to the private endpoint service for port-mapped architecture. For GCP legacy private endpoint architecture, this is a list of service attachments connected to the private endpoint service (one per Atlas node). Returns an empty list while Atlas creates the service attachments.\n"},"status":{"type":"string","description":"Status of the AWS PrivateLink connection.\nReturns one of the following values:\n* `AVAILABLE` - Atlas created the load balancer and the Private Link Service.\n* `INITIATING` - Atlas is creating the network load balancer and VPC endpoint service.\n* `WAITING_FOR_USER` - The Atlas network load balancer and VPC endpoint service are created and ready to receive connection requests. When you receive this status, create an interface endpoint to continue configuring the AWS PrivateLink connection.\n* `FAILED` - A system failure occurred.\n* `DELETING` - Atlas is deleting the Private Link service.\n"}},"type":"object","required":["endpointGroupNames","endpointServiceName","errorMessage","interfaceEndpoints","portMappingEnabled","privateEndpoints","privateLinkId","privateLinkServiceName","privateLinkServiceResourceId","regionName","serviceAttachmentNames","status"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectApiKeyProjectAssignment:getProjectApiKeyProjectAssignment":{"properties":{"projectId":{"type":"string","description":"The unique ID for the project.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"List of Project roles that the Programmatic API key needs to have. Ensure you provide: at least one role and ensure all roles are valid for the Project. You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#project-roles) describes the valid roles that can be assigned.\n"}},"type":"object","required":["projectId","roleNames"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectApiKeysResult:getProjectApiKeysResult":{"properties":{"apiKeyId":{"type":"string","description":"Unique identifier for the API key you want to update. Use the /orgs/{ORG-ID}/apiKeys endpoint to retrieve all API keys to which the authenticated user has access for the specified organization.\n"},"description":{"type":"string","description":"Description of this Project API key.\n"},"privateKey":{"type":"string"},"projectAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getProjectApiKeysResultProjectAssignment:getProjectApiKeysResultProjectAssignment"}},"publicKey":{"type":"string"}},"type":"object","required":["apiKeyId","description","privateKey","publicKey"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectApiKeysResultProjectAssignment:getProjectApiKeysResultProjectAssignment":{"properties":{"projectId":{"type":"string","description":"The unique ID for the project.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"List of Project roles that the Programmatic API key needs to have. Ensure you provide: at least one role and ensure all roles are valid for the Project. You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#project-roles) describes the valid roles that can be assigned.\n"}},"type":"object","required":["projectId","roleNames"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectIpAccessListsResult:getProjectIpAccessListsResult":{"properties":{"awsSecurityGroup":{"type":"string","description":"Unique identifier of the AWS security group to add to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e.\n"},"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e.\n"},"comment":{"type":"string","description":"Remark that explains the purpose or scope of this IP access list entry.\n"},"ipAddress":{"type":"string","description":"Single IP address to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n"}},"type":"object","required":["awsSecurityGroup","cidrBlock","comment","ipAddress"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses":{"properties":{"services":{"$ref":"#/types/mongodbatlas:index/getProjectIpAddressesServices:getProjectIpAddressesServices"}},"type":"object","required":["services"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectIpAddressesServices:getProjectIpAddressesServices":{"properties":{"clusters":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getProjectIpAddressesServicesCluster:getProjectIpAddressesServicesCluster"},"description":"IP addresses of clusters.\n"}},"type":"object","required":["clusters"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectIpAddressesServicesCluster:getProjectIpAddressesServicesCluster":{"properties":{"clusterName":{"type":"string","description":"Human-readable label that identifies the cluster.\n"},"futureInbounds":{"type":"array","items":{"type":"string"},"description":"List of future inbound IP addresses associated with the cluster. If your network allows outbound HTTP requests only to specific IP addresses, you must allow access to the following IP addresses so that your application can connect to your Atlas cluster.\n"},"futureOutbounds":{"type":"array","items":{"type":"string"},"description":"List of future outbound IP addresses associated with the cluster. If your network allows inbound HTTP requests only from specific IP addresses, you must allow access from the following IP addresses so that your Atlas cluster can communicate with your webhooks and KMS.\n"},"inbounds":{"type":"array","items":{"type":"string"},"description":"List of inbound IP addresses associated with the cluster. If your network allows outbound HTTP requests only to specific IP addresses, you must allow access to the following IP addresses so that your application can connect to your Atlas cluster.\n"},"outbounds":{"type":"array","items":{"type":"string"},"description":"List of outbound IP addresses associated with the cluster. If your network allows inbound HTTP requests only from specific IP addresses, you must allow access from the following IP addresses so that your Atlas cluster can communicate with your webhooks and KMS.\n"}},"type":"object","required":["clusterName","futureInbounds","futureOutbounds","inbounds","outbounds"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectLimit:getProjectLimit":{"properties":{"currentUsage":{"type":"integer","description":"Amount that indicates the current usage of the limit.\n"},"defaultLimit":{"type":"integer","description":"Default value of the limit.\n"},"maximumLimit":{"type":"integer","description":"Maximum value of the limit.\n"},"name":{"type":"string","description":"The unique ID for the project.\n\n\u003e **IMPORTANT:** Either \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e must be configurated.\n"},"value":{"type":"integer","description":"Amount the limit is set to.\n"}},"type":"object","required":["currentUsage","defaultLimit","maximumLimit","name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectServiceAccountAccessListEntriesResult:getProjectServiceAccountAccessListEntriesResult":{"properties":{"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n"},"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"Date the entry was added to the access list. This attribute expresses its value in the ISO 8601 timestamp format in UTC.\n"},"ipAddress":{"type":"string","description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n"},"lastUsedAddress":{"type":"string","description":"Network address that issued the most recent request to the API.\n"},"lastUsedAt":{"type":"string","description":"Date when the API received the most recent request that originated from this network address.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project.\n"},"requestCount":{"type":"integer","description":"The number of requests that has originated from this network address.\n"}},"type":"object","required":["cidrBlock","clientId","createdAt","ipAddress","lastUsedAddress","lastUsedAt","projectId","requestCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectServiceAccountSecret:getProjectServiceAccountSecret":{"properties":{"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"lastUsedAt":{"type":"string","description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"maskedSecretValue":{"type":"string","description":"The masked Service Account secret.\n"},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object","required":["createdAt","expiresAt","lastUsedAt","maskedSecretValue","secretId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectServiceAccountsResult:getProjectServiceAccountsResult":{"properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"description":{"type":"string","description":"Human readable description for the Service Account.\n"},"name":{"type":"string","description":"Human-readable name for the Service Account.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of Project roles associated with the Service Account.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getProjectServiceAccountsResultSecret:getProjectServiceAccountsResultSecret"},"description":"A list of secrets associated with the specified Service Account.\n"}},"type":"object","required":["clientId","createdAt","description","name","roles","secrets"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectServiceAccountsResultSecret:getProjectServiceAccountsResultSecret":{"properties":{"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"lastUsedAt":{"type":"string","description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"maskedSecretValue":{"type":"string","description":"The masked Service Account secret.\n"},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object","required":["createdAt","expiresAt","lastUsedAt","maskedSecretValue","secretId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectTeam:getProjectTeam":{"properties":{"roleNames":{"type":"array","items":{"type":"string"},"description":"Each string in the array represents a project role assigned to the team. Every user associated with the team inherits these roles. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles a user can have.\n"},"teamId":{"type":"string","description":"The unique identifier of the team you want to associate with the project. The team and project must share the same parent organization.\n"}},"type":"object","required":["roleNames","teamId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectUser:getProjectUser":{"properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n* `createdAt`- Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n* `firstName`- First or given name that belongs to the MongoDB Cloud user.\n* `lastAuth` - Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n* `lastName`- Last name, family name, or surname that belongs to the MongoDB Cloud user.\n* `mobileNumber` - Mobile phone number that belongs to the MongoDB Cloud user.\n"},"createdAt":{"type":"string"},"firstName":{"type":"string"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n* `orgMembershipStatus`- String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n"},"invitationCreatedAt":{"type":"string"},"invitationExpiresAt":{"type":"string"},"inviterUsername":{"type":"string"},"lastAuth":{"type":"string"},"lastName":{"type":"string"},"mobileNumber":{"type":"string"},"orgMembershipStatus":{"type":"string"},"roles":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles assigned to the MongoDB Cloud user.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"type":"object","required":["country","createdAt","firstName","id","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgMembershipStatus","roles","username"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectsResult:getProjectsResult":{"properties":{"clusterCount":{"type":"integer","description":"The number of Atlas clusters deployed in the project.\n"},"created":{"type":"string","description":"The ISO-8601-formatted timestamp of when Atlas created the project.\n"},"id":{"type":"string","description":"Autogenerated Unique ID for this data source.\n"},"ipAddresses":{"$ref":"#/types/mongodbatlas:index/getProjectsResultIpAddresses:getProjectsResultIpAddresses","description":"IP addresses in a project categorized by services. See IP Addresses. **WARNING:** This attribute is deprecated, use the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-go=\"`getProjectIpAddresses`\" pulumi-lang-python=\"`get_project_ip_addresses`\" pulumi-lang-yaml=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-java=\"`mongodbatlas.getProjectIpAddresses`\"\u003e`mongodbatlas.getProjectIpAddresses`\u003c/span\u003e data source instead.\n","deprecationMessage":"This parameter is deprecated. Please transition to\u003cspan pulumi-lang-nodejs=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-dotnet=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-go=\" getProjectIpAddresses \" pulumi-lang-python=\" get_project_ip_addresses \" pulumi-lang-yaml=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-java=\" mongodbatlas.getProjectIpAddresses \"\u003e mongodbatlas.getProjectIpAddresses \u003c/span\u003edata source."},"isCollectDatabaseSpecificsStatisticsEnabled":{"type":"boolean","description":"Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project.\n"},"isDataExplorerEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Data Explorer for the project. If enabled, you can query your database with an easy to use interface.\n"},"isExtendedStorageSizesEnabled":{"type":"boolean","description":"Flag that indicates whether to enable extended storage sizes for the specified project.\n"},"isPerformanceAdvisorEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Performance Advisor and Profiler for the project. If enabled, you can analyze database logs to recommend performance improvements.\n"},"isRealtimePerformancePanelEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Real Time Performance Panel for the project. If enabled, you can see real time metrics from your MongoDB database.\n"},"isSchemaAdvisorEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Schema Advisor for the project. If enabled, you receive customized recommendations to optimize your data model and enhance performance. Disable this setting to disable schema suggestions in the [Performance Advisor](https://www.mongodb.com/docs/atlas/performance-advisor/#std-label-performance-advisor) and the [Data Explorer](https://www.mongodb.com/docs/atlas/atlas-ui/#std-label-atlas-ui).\n"},"isSlowOperationThresholdingEnabled":{"type":"boolean","description":"Flag that enables MongoDB Cloud to use its slow operation threshold for the specified project. The threshold determines which operations the Performance Advisor and Query Profiler considers slow. When enabled, MongoDB Cloud uses the average execution time for operations on your cluster to determine slow-running queries. As a result, the threshold is more pertinent to your cluster workload. The slow operation threshold is enabled by default for dedicated clusters (M10+). When disabled, MongoDB Cloud considers any operation that takes longer than 100 milliseconds to be slow. **Note**: To use this attribute, the requesting API Key must have the Project Owner role, if not it will show a warning and will return \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If you are not using this field, you don't need to take any action.\n","deprecationMessage":"This parameter is deprecated."},"limits":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getProjectsResultLimit:getProjectsResultLimit"},"description":"The limits for the specified project. See Limits.\n"},"name":{"type":"string"},"orgId":{"type":"string","description":"The ID of the organization you want to create the project within.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud project.\n"},"regionUsageRestrictions":{"type":"string","description":"If GOV_REGIONS_ONLY the project can be used for government regions only, otherwise defaults to standard regions. For more information see [MongoDB Atlas for Government](https://www.mongodb.com/docs/atlas/government/api/#creating-a-project).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the project. To learn more, see [Resource Tags](https://www.mongodb.com/docs/atlas/tags/)\n"},"teams":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getProjectsResultTeam:getProjectsResultTeam"},"description":"**(DEPRECATED)** Returns all teams to which the authenticated user has access in the project. See Teams.\n","deprecationMessage":"This parameter is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-go=\"`TeamProjectAssignment`\" pulumi-lang-python=\"`TeamProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.TeamProjectAssignment`\"\u003e`mongodbatlas.TeamProjectAssignment`\u003c/span\u003e. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management."},"users":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getProjectsResultUser:getProjectsResultUser"},"description":"Returns list of all pending and active MongoDB Cloud users associated with the specified project.\n"}},"type":"object","required":["clusterCount","created","id","ipAddresses","isCollectDatabaseSpecificsStatisticsEnabled","isDataExplorerEnabled","isExtendedStorageSizesEnabled","isPerformanceAdvisorEnabled","isRealtimePerformancePanelEnabled","isSchemaAdvisorEnabled","isSlowOperationThresholdingEnabled","limits","orgId","regionUsageRestrictions","tags","teams","users"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectsResultIpAddresses:getProjectsResultIpAddresses":{"properties":{"services":{"$ref":"#/types/mongodbatlas:index/getProjectsResultIpAddressesServices:getProjectsResultIpAddressesServices"}},"type":"object","required":["services"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectsResultIpAddressesServices:getProjectsResultIpAddressesServices":{"properties":{"clusters":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getProjectsResultIpAddressesServicesCluster:getProjectsResultIpAddressesServicesCluster"}}},"type":"object","required":["clusters"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectsResultIpAddressesServicesCluster:getProjectsResultIpAddressesServicesCluster":{"properties":{"clusterName":{"type":"string"},"inbounds":{"type":"array","items":{"type":"string"}},"outbounds":{"type":"array","items":{"type":"string"}}},"type":"object","required":["clusterName","inbounds","outbounds"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectsResultLimit:getProjectsResultLimit":{"properties":{"currentUsage":{"type":"integer","description":"Amount that indicates the current usage of the limit.\n"},"defaultLimit":{"type":"integer","description":"Default value of the limit.\n"},"maximumLimit":{"type":"integer","description":"Maximum value of the limit.\n"},"name":{"type":"string","description":"Human-readable label that identifies this project limit.\n"},"value":{"type":"integer","description":"Amount the limit is set to.\n"}},"type":"object","required":["currentUsage","defaultLimit","maximumLimit","name","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectsResultTeam:getProjectsResultTeam":{"properties":{"roleNames":{"type":"array","items":{"type":"string"},"description":"Each string in the array represents a project role assigned to the team. Every user associated with the team inherits these roles. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles a user can have.\n"},"teamId":{"type":"string","description":"The unique identifier of the team you want to associate with the project. The team and project must share the same parent organization.\n"}},"type":"object","required":["roleNames","teamId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getProjectsResultUser:getProjectsResultUser":{"properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n* `createdAt`- Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n* `firstName`- First or given name that belongs to the MongoDB Cloud user.\n* `lastAuth` - Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n* `lastName`- Last name, family name, or surname that belongs to the MongoDB Cloud user.\n* `mobileNumber` - Mobile phone number that belongs to the MongoDB Cloud user.\n\n\u003e **NOTE:** - Does not return pending users invited via the deprecated [Invite One MongoDB Cloud User to Join One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createprojectinvitation) endpoint or pending invitations created using \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-go=\"`ProjectInvitation`\" pulumi-lang-python=\"`ProjectInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-java=\"`mongodbatlas.ProjectInvitation`\"\u003e`mongodbatlas.ProjectInvitation`\u003c/span\u003e resource.\n\nSee [MongoDB Atlas API - Projects](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Projects) Documentation for more information.\n"},"createdAt":{"type":"string"},"firstName":{"type":"string"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n* `orgMembershipStatus`- String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n"},"invitationCreatedAt":{"type":"string"},"invitationExpiresAt":{"type":"string"},"inviterUsername":{"type":"string"},"lastAuth":{"type":"string"},"lastName":{"type":"string"},"mobileNumber":{"type":"string"},"orgMembershipStatus":{"type":"string"},"roles":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles assigned to the MongoDB Cloud user.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"type":"object","required":["country","createdAt","firstName","id","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgMembershipStatus","roles","username"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePoliciesResourcePolicy:getResourcePoliciesResourcePolicy":{"properties":{"createdByUser":{"$ref":"#/types/mongodbatlas:index/getResourcePoliciesResourcePolicyCreatedByUser:getResourcePoliciesResourcePolicyCreatedByUser","description":"The user that last updated the Atlas resource policy.\n"},"createdDate":{"type":"string","description":"Date and time in UTC when the Atlas resource policy was created.\n"},"description":{"type":"string","description":"Description of the Atlas resource policy.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies an Atlas resource policy.\n"},"lastUpdatedByUser":{"$ref":"#/types/mongodbatlas:index/getResourcePoliciesResourcePolicyLastUpdatedByUser:getResourcePoliciesResourcePolicyLastUpdatedByUser","description":"The user that last updated the Atlas resource policy.\n"},"lastUpdatedDate":{"type":"string","description":"Date and time in UTC when the Atlas resource policy was last updated.\n"},"name":{"type":"string","description":"Human-readable label that describes the Atlas resource policy.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n"},"policies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getResourcePoliciesResourcePolicyPolicy:getResourcePoliciesResourcePolicyPolicy"},"description":"List of policies that make up the Atlas resource policy.\n"},"version":{"type":"string","description":"A string that identifies the version of the Atlas resource policy.\n"}},"type":"object","required":["createdByUser","createdDate","description","id","lastUpdatedByUser","lastUpdatedDate","name","orgId","policies","version"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePoliciesResourcePolicyCreatedByUser:getResourcePoliciesResourcePolicyCreatedByUser":{"properties":{"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies a user.\n"},"name":{"type":"string","description":"Human-readable label that describes a user.\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePoliciesResourcePolicyLastUpdatedByUser:getResourcePoliciesResourcePolicyLastUpdatedByUser":{"properties":{"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies a user.\n"},"name":{"type":"string","description":"Human-readable label that describes a user.\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePoliciesResourcePolicyPolicy:getResourcePoliciesResourcePolicyPolicy":{"properties":{"body":{"type":"string","description":"A string that defines the permissions for the policy. The syntax used is the Cedar Policy language.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the policy.\n"}},"type":"object","required":["body","id"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePoliciesResult:getResourcePoliciesResult":{"properties":{"createdByUser":{"$ref":"#/types/mongodbatlas:index/getResourcePoliciesResultCreatedByUser:getResourcePoliciesResultCreatedByUser","description":"The user that last updated the Atlas resource policy.\n"},"createdDate":{"type":"string","description":"Date and time in UTC when the Atlas resource policy was created.\n"},"description":{"type":"string","description":"Description of the Atlas resource policy.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies an Atlas resource policy.\n"},"lastUpdatedByUser":{"$ref":"#/types/mongodbatlas:index/getResourcePoliciesResultLastUpdatedByUser:getResourcePoliciesResultLastUpdatedByUser","description":"The user that last updated the Atlas resource policy.\n"},"lastUpdatedDate":{"type":"string","description":"Date and time in UTC when the Atlas resource policy was last updated.\n"},"name":{"type":"string","description":"Human-readable label that describes the Atlas resource policy.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n"},"policies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getResourcePoliciesResultPolicy:getResourcePoliciesResultPolicy"},"description":"List of policies that make up the Atlas resource policy.\n"},"version":{"type":"string","description":"A string that identifies the version of the Atlas resource policy.\n"}},"type":"object","required":["createdByUser","createdDate","description","id","lastUpdatedByUser","lastUpdatedDate","name","orgId","policies","version"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePoliciesResultCreatedByUser:getResourcePoliciesResultCreatedByUser":{"properties":{"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies a user.\n"},"name":{"type":"string","description":"Human-readable label that describes a user.\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePoliciesResultLastUpdatedByUser:getResourcePoliciesResultLastUpdatedByUser":{"properties":{"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies a user.\n"},"name":{"type":"string","description":"Human-readable label that describes a user.\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePoliciesResultPolicy:getResourcePoliciesResultPolicy":{"properties":{"body":{"type":"string","description":"A string that defines the permissions for the policy. The syntax used is the Cedar Policy language.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the policy.\n"}},"type":"object","required":["body","id"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePolicyCreatedByUser:getResourcePolicyCreatedByUser":{"properties":{"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies a user.\n"},"name":{"type":"string","description":"Human-readable label that describes a user.\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePolicyLastUpdatedByUser:getResourcePolicyLastUpdatedByUser":{"properties":{"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies a user.\n"},"name":{"type":"string","description":"Human-readable label that describes a user.\n"}},"type":"object","required":["id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getResourcePolicyPolicy:getResourcePolicyPolicy":{"properties":{"body":{"type":"string","description":"A string that defines the permissions for the policy. The syntax used is the Cedar Policy language.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the policy.\n"}},"type":"object","required":["body","id"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getSearchDeploymentSpec:getSearchDeploymentSpec":{"properties":{"instanceSize":{"type":"string","description":"Hardware specification for the search node instance sizes. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Atlas-Search/operation/createAtlasSearchDeployment) describes the valid values. More details can also be found in the [Search Node Documentation](https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/#search-tier).\n"},"nodeCount":{"type":"integer","description":"Number of search nodes in the cluster.\n"}},"type":"object","required":["instanceSize","nodeCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getSearchIndexSynonym:getSearchIndexSynonym":{"properties":{"analyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when creating the index.\n"},"name":{"type":"string","description":"Type set name.\n"},"sourceCollection":{"type":"string"}},"type":"object","required":["analyzer","name","sourceCollection"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getSearchIndexTypeSet:getSearchIndexTypeSet":{"properties":{"name":{"type":"string","description":"Type set name.\n"},"types":{"type":"string","description":"JSON array string describing the types for the set.\n"}},"type":"object","required":["name","types"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getSearchIndexesResult:getSearchIndexesResult":{"properties":{"analyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when creating the index.\n"},"analyzers":{"type":"string","description":"[Custom analyzers](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/custom/#std-label-custom-analyzers) to use in this index (this is an array of objects).\n"},"clusterName":{"type":"string","description":"Name of the cluster containing the collection with one or more Atlas Search indexes.\n"},"collectionName":{"type":"string","description":"Name of the collection with one or more Atlas Search indexes.\n"},"database":{"type":"string","description":"(Required) Name of the database the collection is in.\n"},"fields":{"type":"string"},"indexId":{"type":"string","description":"The unique identifier of the Atlas Search index.\n"},"mappingsDynamic":{"type":"boolean","description":"Flag indicating whether the index uses dynamic or static mappings. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`mappingsDynamicConfig`\" pulumi-lang-dotnet=\"`MappingsDynamicConfig`\" pulumi-lang-go=\"`mappingsDynamicConfig`\" pulumi-lang-python=\"`mappings_dynamic_config`\" pulumi-lang-yaml=\"`mappingsDynamicConfig`\" pulumi-lang-java=\"`mappingsDynamicConfig`\"\u003e`mappings_dynamic_config`\u003c/span\u003e.\n"},"mappingsDynamicConfig":{"type":"string","description":"JSON object for `mappings.dynamic` when Atlas returns an object (Please see the documentation for [dynamic and static mappings](https://www.mongodb.com/docs/atlas/atlas-search/index-definitions/#field-mapping-examples)). Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`mappingsDynamic`\" pulumi-lang-dotnet=\"`MappingsDynamic`\" pulumi-lang-go=\"`mappingsDynamic`\" pulumi-lang-python=\"`mappings_dynamic`\" pulumi-lang-yaml=\"`mappingsDynamic`\" pulumi-lang-java=\"`mappingsDynamic`\"\u003e`mappings_dynamic`\u003c/span\u003e.\n"},"mappingsFields":{"type":"string","description":"Object containing one or more field specifications.\n"},"name":{"type":"string","description":"Type set name.\n"},"numPartitions":{"type":"integer","description":"Number of index partitions.\n"},"projectId":{"type":"string","description":"Unique identifier for the [project](https://docs.atlas.mongodb.com/organizations-projects/#std-label-projects) that contains the specified cluster.\n"},"searchAnalyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when searching the index.\n"},"status":{"type":"string","description":"Current status of the index.\n"},"storedSource":{"type":"string","description":"String that can be \"true\" (store all fields), \"false\" (default, don't store any field), or a JSON string that contains the list of fields to store (include) or not store (exclude) on Atlas Search. To learn more, see [Stored Source Fields](https://www.mongodb.com/docs/atlas/atlas-search/stored-source-definition/).\n"},"synonyms":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getSearchIndexesResultSynonym:getSearchIndexesResultSynonym"},"description":"Synonyms mapping definition to use in this index.\n* `synonyms.#.name` - Name of the [synonym mapping definition](https://docs.atlas.mongodb.com/reference/atlas-search/synonyms/#std-label-synonyms-ref).\n* `synonyms.#.source_collection` - Name of the source MongoDB collection for the synonyms.\n* `synonyms.#.analyzer` - Name of the [analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use with this synonym mapping.\n"},"type":{"type":"string"},"typeSets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getSearchIndexesResultTypeSet:getSearchIndexesResultTypeSet"},"description":"Set of type set definitions (when present). Each item includes:\n"}},"type":"object","required":["analyzer","analyzers","clusterName","collectionName","database","fields","indexId","mappingsDynamic","mappingsDynamicConfig","mappingsFields","name","numPartitions","projectId","searchAnalyzer","status","storedSource","synonyms","type","typeSets"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getSearchIndexesResultSynonym:getSearchIndexesResultSynonym":{"properties":{"analyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when creating the index.\n"},"name":{"type":"string","description":"Type set name.\n"},"sourceCollection":{"type":"string"}},"type":"object","required":["analyzer","name","sourceCollection"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getSearchIndexesResultTypeSet:getSearchIndexesResultTypeSet":{"properties":{"name":{"type":"string","description":"Type set name.\n"},"types":{"type":"string","description":"JSON array string describing the types for the set.\n"}},"type":"object","required":["name","types"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getServerlessInstanceLink:getServerlessInstanceLink":{"properties":{"href":{"type":"string"},"rel":{"type":"string"}},"type":"object","required":["href","rel"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getServerlessInstanceTag:getServerlessInstanceTag":{"properties":{"key":{"type":"string","description":"Constant that defines the set of the tag.\n"},"value":{"type":"string","description":"Variable that belongs to the set of the tag.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getServerlessInstancesResult:getServerlessInstancesResult":{"properties":{"autoIndexing":{"type":"boolean","description":"(Deprecated) Flag that indicates whether the serverless instance uses [Serverless Auto Indexing](https://www.mongodb.com/docs/atlas/performance-advisor/auto-index-serverless/).\n","deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide."},"connectionStringsPrivateEndpointSrvs":{"type":"array","items":{"type":"string"}},"connectionStringsStandardSrv":{"type":"string","description":"Public `mongodb+srv://` connection string that you can use to connect to this serverless instance.\n"},"continuousBackupEnabled":{"type":"boolean","description":"(Deprecated) Flag that indicates whether the serverless instance uses Serverless Continuous Backup.\n","deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide."},"createDate":{"type":"string"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the serverless instance.\n"},"links":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getServerlessInstancesResultLink:getServerlessInstancesResultLink"}},"mongoDbVersion":{"type":"string","description":"Version of MongoDB that the serverless instance runs, in `\u003cmajor version\u003e`.`\u003cminor version\u003e` format.\n"},"name":{"type":"string","description":"(Required) Human-readable label that identifies your serverless instance.\n"},"projectId":{"type":"string","description":"Unique identifier for the [project](https://docs.atlas.mongodb.com/organizations-projects/#std-label-projects) that contains the specified cluster.\n"},"providerSettingsBackingProviderName":{"type":"string","description":"Cloud service provider on which MongoDB Cloud provisioned the serverless instance.\n"},"providerSettingsProviderName":{"type":"string","description":"Cloud service provider that applies to the provisioned the serverless instance.\n"},"providerSettingsRegionName":{"type":"string","description":"Human-readable label that identifies the physical location of your MongoDB serverless instance. The region you choose can affect network latency for clients accessing your databases.\n"},"stateName":{"type":"string","description":"Stage of deployment of this serverless instance when the resource made its request.\n"},"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getServerlessInstancesResultTag:getServerlessInstancesResultTag"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"}},"type":"object","required":["autoIndexing","connectionStringsPrivateEndpointSrvs","connectionStringsStandardSrv","continuousBackupEnabled","createDate","id","links","mongoDbVersion","name","projectId","providerSettingsBackingProviderName","providerSettingsProviderName","providerSettingsRegionName","stateName","tags","terminationProtectionEnabled"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getServerlessInstancesResultLink:getServerlessInstancesResultLink":{"properties":{"href":{"type":"string"},"rel":{"type":"string"}},"type":"object","required":["href","rel"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getServerlessInstancesResultTag:getServerlessInstancesResultTag":{"properties":{"key":{"type":"string","description":"Constant that defines the set of the tag.\n"},"value":{"type":"string","description":"Variable that belongs to the set of the tag.\n"}},"type":"object","required":["key","value"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getServiceAccountAccessListEntriesResult:getServiceAccountAccessListEntriesResult":{"properties":{"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n"},"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"Date the entry was added to the access list. This attribute expresses its value in the ISO 8601 timestamp format in UTC.\n"},"ipAddress":{"type":"string","description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n"},"lastUsedAddress":{"type":"string","description":"Network address that issued the most recent request to the API.\n"},"lastUsedAt":{"type":"string","description":"Date when the API received the most recent request that originated from this network address.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"requestCount":{"type":"integer","description":"The number of requests that has originated from this network address.\n"}},"type":"object","required":["cidrBlock","clientId","createdAt","ipAddress","lastUsedAddress","lastUsedAt","orgId","requestCount"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getServiceAccountProjectAssignmentsResult:getServiceAccountProjectAssignmentsResult":{"properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["projectId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getServiceAccountSecret:getServiceAccountSecret":{"properties":{"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"lastUsedAt":{"type":"string","description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"maskedSecretValue":{"type":"string","description":"The masked Service Account secret.\n"},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object","required":["createdAt","expiresAt","lastUsedAt","maskedSecretValue","secretId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getServiceAccountsResult:getServiceAccountsResult":{"properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"description":{"type":"string","description":"Human readable description for the Service Account.\n"},"name":{"type":"string","description":"Human-readable name for the Service Account.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of Organization roles associated with the Service Account.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getServiceAccountsResultSecret:getServiceAccountsResultSecret"},"description":"A list of secrets associated with the specified Service Account.\n"}},"type":"object","required":["clientId","createdAt","description","name","roles","secrets"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getServiceAccountsResultSecret:getServiceAccountsResultSecret":{"properties":{"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"lastUsedAt":{"type":"string","description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"maskedSecretValue":{"type":"string","description":"The masked Service Account secret.\n"},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object","required":["createdAt","expiresAt","lastUsedAt","maskedSecretValue","secretId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getSharedTierRestoreJobsResult:getSharedTierRestoreJobsResult":{"properties":{"deliveryType":{"type":"string"},"expirationDate":{"type":"string"},"jobId":{"type":"string"},"restoreFinishedDate":{"type":"string"},"restoreScheduledDate":{"type":"string"},"snapshotFinishedDate":{"type":"string"},"snapshotId":{"type":"string"},"snapshotUrl":{"type":"string"},"status":{"type":"string"},"targetDeploymentItemName":{"type":"string"},"targetProjectId":{"type":"string"}},"type":"object","required":["deliveryType","expirationDate","jobId","restoreFinishedDate","restoreScheduledDate","snapshotFinishedDate","snapshotId","snapshotUrl","status","targetDeploymentItemName","targetProjectId"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getSharedTierSnapshotsResult:getSharedTierSnapshotsResult":{"properties":{"expiration":{"type":"string"},"finishTime":{"type":"string"},"mongoDbVersion":{"type":"string"},"scheduledTime":{"type":"string"},"snapshotId":{"type":"string"},"startTime":{"type":"string"},"status":{"type":"string"}},"type":"object","required":["expiration","finishTime","mongoDbVersion","scheduledTime","snapshotId","startTime","status"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionAuthentication:getStreamConnectionAuthentication":{"properties":{"clientId":{"type":"string","description":"Public identifier for the Kafka client.\n"},"clientSecret":{"type":"string","description":"Secret known only to the Kafka client and the authorization server.\n","secret":true},"mechanism":{"type":"string","description":"Method of authentication. Value can be `PLAIN`, `SCRAM-256`, `SCRAM-512`, or `OAUTHBEARER`.\n"},"method":{"type":"string","description":"SASL OAUTHBEARER authentication method. Value must be OIDC.\n"},"password":{"type":"string","description":"Password for the Schema Registry. Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `USER_INFO`.\n","secret":true},"saslOauthbearerExtensions":{"type":"string","description":"Additional information to provide to the Kafka broker.\n"},"scope":{"type":"string","description":"Scope of the access request to the broker specified by the Kafka clients.\n"},"tokenEndpointUrl":{"type":"string","description":"OAUTH issuer (IdP provider) token endpoint HTTP(S) URI used to retrieve the token.\n"},"username":{"type":"string","description":"Username for the Schema Registry. Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `USER_INFO`.\n"}},"type":"object","required":["clientId","clientSecret","mechanism","method","password","saslOauthbearerExtensions","scope","tokenEndpointUrl","username"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionAws:getStreamConnectionAws":{"properties":{"roleArn":{"type":"string","description":"Amazon Resource Name (ARN) that identifies the Amazon Web Services (AWS) Identity and Access Management (IAM) role that MongoDB Cloud assumes when it accesses resources in your AWS account.\n"}},"type":"object","required":["roleArn"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionDbRoleToExecute:getStreamConnectionDbRoleToExecute":{"properties":{"role":{"type":"string","description":"The name of the role to use. Can be a built in role or a custom role.\n"},"type":{"type":"string","description":"Authentication type discriminator. Specifies the authentication mechanism for Confluent Schema Registry. Valid values are `USER_INFO` or `SASL_INHERIT`.\n* `USER_INFO` - Uses username and password authentication for Confluent Schema Registry.\n* `SASL_INHERIT` - Inherits the authentication configuration from Kafka for the Confluent Schema Registry.\n"}},"type":"object","required":["role","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionNetworking:getStreamConnectionNetworking":{"properties":{"access":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionNetworkingAccess:getStreamConnectionNetworkingAccess","description":"Information about the networking access. See access.\n"}},"type":"object","required":["access"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionNetworkingAccess:getStreamConnectionNetworkingAccess":{"properties":{"connectionId":{"type":"string","description":"Id of the Private Link connection when type is `PRIVATE_LINK`.\n"},"type":{"type":"string","description":"Authentication type discriminator. Specifies the authentication mechanism for Confluent Schema Registry. Valid values are `USER_INFO` or `SASL_INHERIT`.\n* `USER_INFO` - Uses username and password authentication for Confluent Schema Registry.\n* `SASL_INHERIT` - Inherits the authentication configuration from Kafka for the Confluent Schema Registry.\n"}},"type":"object","required":["connectionId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionSchemaRegistryAuthentication:getStreamConnectionSchemaRegistryAuthentication":{"properties":{"password":{"type":"string","description":"Password for the Schema Registry. Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `USER_INFO`.\n","secret":true},"type":{"type":"string","description":"Authentication type discriminator. Specifies the authentication mechanism for Confluent Schema Registry. Valid values are `USER_INFO` or `SASL_INHERIT`.\n* `USER_INFO` - Uses username and password authentication for Confluent Schema Registry.\n* `SASL_INHERIT` - Inherits the authentication configuration from Kafka for the Confluent Schema Registry.\n"},"username":{"type":"string","description":"Username for the Schema Registry. Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `USER_INFO`.\n"}},"type":"object","required":["password","type","username"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionSecurity:getStreamConnectionSecurity":{"properties":{"brokerPublicCertificate":{"type":"string","description":"A trusted, public x509 certificate for connecting to Kafka over SSL. String value of the certificate must be defined in the attribute.\n"},"protocol":{"type":"string","description":"Describes the transport type. Can be either `SASL_PLAINTEXT` or `SASL_SSL`.\n"}},"type":"object","required":["brokerPublicCertificate","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionsResult:getStreamConnectionsResult":{"properties":{"authentication":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionsResultAuthentication:getStreamConnectionsResultAuthentication","description":"User credentials required to connect to a Kafka cluster. Includes the authentication type, as well as the parameters for that authentication mode. See authentication.\n"},"aws":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionsResultAws:getStreamConnectionsResultAws","description":"The configuration for AWS Lambda connection. See AWS\n"},"bootstrapServers":{"type":"string","description":"Comma separated list of server addresses.\n"},"clusterName":{"type":"string","description":"Name of the cluster configured for this connection.\n"},"clusterProjectId":{"type":"string"},"config":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of Kafka key-value pairs for optional configuration. This is a flat object, and keys can have '.' characters.\n"},"connectionName":{"type":"string","description":"Label that identifies the stream connection. In the case of the Sample type, this is the name of the sample source.\n"},"dbRoleToExecute":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionsResultDbRoleToExecute:getStreamConnectionsResultDbRoleToExecute","description":"The name of a Built in or Custom DB Role to connect to an Atlas Cluster. See DBRoleToExecute.\n"},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of key-value pairs for optional headers.\n"},"id":{"type":"string"},"instanceName":{"type":"string","description":"Label that identifies the stream processing workspace. Attribute is deprecated and will be removed in following major versions in favor of \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e.\n","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"networking":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionsResultNetworking:getStreamConnectionsResultNetworking","description":"Networking Access Type can either be `PUBLIC` (default) or `VPC`. See networking.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"schemaRegistryAuthentication":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionsResultSchemaRegistryAuthentication:getStreamConnectionsResultSchemaRegistryAuthentication","description":"Authentication configuration for Schema Registry. See Schema Registry Authentication.\n"},"schemaRegistryProvider":{"type":"string","description":"The Schema Registry provider. Must be set to `CONFLUENT`.\n"},"schemaRegistryUrls":{"type":"array","items":{"type":"string"},"description":"List of Schema Registry endpoint URLs used by this connection. Each URL must use the http or https scheme and specify a valid host and optional port.\n"},"security":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionsResultSecurity:getStreamConnectionsResultSecurity","description":"Properties for the secure transport connection to Kafka. For SASL_SSL, this can include the trusted certificate to use. See security.\n"},"type":{"type":"string","description":"Authentication type discriminator. Specifies the authentication mechanism for Confluent Schema Registry. Valid values are `USER_INFO` or `SASL_INHERIT`.\n* `USER_INFO` - Uses username and password authentication for Confluent Schema Registry.\n* `SASL_INHERIT` - Inherits the authentication configuration from Kafka for the Confluent Schema Registry.\n"},"url":{"type":"string","description":"URL of the HTTPs endpoint that will be used for creating a connection.\n"},"workspaceName":{"type":"string","description":"Label that identifies the stream processing workspace. Conflicts with \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e.\n\n\u003e **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e must be provided, but not both. These fields are functionally identical and \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e is an alias for \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e should be used instead of \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e.\n"}},"type":"object","required":["authentication","aws","bootstrapServers","clusterName","clusterProjectId","config","connectionName","dbRoleToExecute","headers","id","instanceName","networking","projectId","schemaRegistryAuthentication","schemaRegistryProvider","schemaRegistryUrls","security","type","url","workspaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionsResultAuthentication:getStreamConnectionsResultAuthentication":{"properties":{"clientId":{"type":"string","description":"Public identifier for the Kafka client.\n"},"clientSecret":{"type":"string","description":"Secret known only to the Kafka client and the authorization server.\n","secret":true},"mechanism":{"type":"string","description":"Method of authentication. Value can be `PLAIN`, `SCRAM-256`, `SCRAM-512`, or `OAUTHBEARER`.\n"},"method":{"type":"string","description":"SASL OAUTHBEARER authentication method. Value must be OIDC.\n"},"password":{"type":"string","description":"Password for the Schema Registry. Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `USER_INFO`.\n","secret":true},"saslOauthbearerExtensions":{"type":"string","description":"Additional information to provide to the Kafka broker.\n"},"scope":{"type":"string","description":"Scope of the access request to the broker specified by the Kafka clients.\n"},"tokenEndpointUrl":{"type":"string","description":"OAUTH issuer (IdP provider) token endpoint HTTP(S) URI used to retrieve the token.\n"},"username":{"type":"string","description":"Username for the Schema Registry. Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `USER_INFO`.\n"}},"type":"object","required":["clientId","clientSecret","mechanism","method","password","saslOauthbearerExtensions","scope","tokenEndpointUrl","username"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionsResultAws:getStreamConnectionsResultAws":{"properties":{"roleArn":{"type":"string","description":"Amazon Resource Name (ARN) that identifies the Amazon Web Services (AWS) Identity and Access Management (IAM) role that MongoDB Cloud assumes when it accesses resources in your AWS account.\n"}},"type":"object","required":["roleArn"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionsResultDbRoleToExecute:getStreamConnectionsResultDbRoleToExecute":{"properties":{"role":{"type":"string","description":"The name of the role to use. Can be a built in role or a custom role.\n"},"type":{"type":"string","description":"Authentication type discriminator. Specifies the authentication mechanism for Confluent Schema Registry. Valid values are `USER_INFO` or `SASL_INHERIT`.\n* `USER_INFO` - Uses username and password authentication for Confluent Schema Registry.\n* `SASL_INHERIT` - Inherits the authentication configuration from Kafka for the Confluent Schema Registry.\n"}},"type":"object","required":["role","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionsResultNetworking:getStreamConnectionsResultNetworking":{"properties":{"access":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionsResultNetworkingAccess:getStreamConnectionsResultNetworkingAccess","description":"Information about the networking access. See access.\n"}},"type":"object","required":["access"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionsResultNetworkingAccess:getStreamConnectionsResultNetworkingAccess":{"properties":{"connectionId":{"type":"string","description":"Id of the Private Link connection when type is `PRIVATE_LINK`.\n"},"type":{"type":"string","description":"Authentication type discriminator. Specifies the authentication mechanism for Confluent Schema Registry. Valid values are `USER_INFO` or `SASL_INHERIT`.\n* `USER_INFO` - Uses username and password authentication for Confluent Schema Registry.\n* `SASL_INHERIT` - Inherits the authentication configuration from Kafka for the Confluent Schema Registry.\n"}},"type":"object","required":["connectionId","type"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionsResultSchemaRegistryAuthentication:getStreamConnectionsResultSchemaRegistryAuthentication":{"properties":{"password":{"type":"string","description":"Password for the Schema Registry. Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `USER_INFO`.\n","secret":true},"type":{"type":"string","description":"Authentication type discriminator. Specifies the authentication mechanism for Confluent Schema Registry. Valid values are `USER_INFO` or `SASL_INHERIT`.\n* `USER_INFO` - Uses username and password authentication for Confluent Schema Registry.\n* `SASL_INHERIT` - Inherits the authentication configuration from Kafka for the Confluent Schema Registry.\n"},"username":{"type":"string","description":"Username for the Schema Registry. Required when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `USER_INFO`.\n"}},"type":"object","required":["password","type","username"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamConnectionsResultSecurity:getStreamConnectionsResultSecurity":{"properties":{"brokerPublicCertificate":{"type":"string","description":"A trusted, public x509 certificate for connecting to Kafka over SSL. String value of the certificate must be defined in the attribute.\n"},"protocol":{"type":"string","description":"Describes the transport type. Can be either `SASL_PLAINTEXT` or `SASL_SSL`.\n"}},"type":"object","required":["brokerPublicCertificate","protocol"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamInstanceDataProcessRegion:getStreamInstanceDataProcessRegion":{"properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud service provider where MongoDB Cloud performs stream processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamInstance) describes the valid values.\n"},"region":{"type":"string","description":"Name of the cloud provider region hosting Atlas Stream Processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamInstance) describes the valid values.\n"}},"type":"object","required":["cloudProvider","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamInstanceStreamConfig:getStreamInstanceStreamConfig":{"properties":{"maxTierSize":{"type":"string"},"tier":{"type":"string","description":"Selected tier for the Stream Instance. Configures Memory / VCPU allowances. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamInstance) describes the valid values.\n"}},"type":"object","required":["maxTierSize","tier"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamInstancesResult:getStreamInstancesResult":{"properties":{"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/getStreamInstancesResultDataProcessRegion:getStreamInstancesResultDataProcessRegion","description":"Defines the cloud service provider and region where MongoDB Cloud performs stream processing. See data process region.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"List that contains the hostnames assigned to the stream instance.\n"},"id":{"type":"string"},"instanceName":{"type":"string","description":"Human-readable label that identifies the stream instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"streamConfig":{"$ref":"#/types/mongodbatlas:index/getStreamInstancesResultStreamConfig:getStreamInstancesResultStreamConfig","description":"Defines the configuration options for an Atlas Stream Processing Instance. See stream config\n"}},"type":"object","required":["dataProcessRegion","hostnames","id","instanceName","projectId","streamConfig"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamInstancesResultDataProcessRegion:getStreamInstancesResultDataProcessRegion":{"properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud service provider where MongoDB Cloud performs stream processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamInstance) describes the valid values.\n"},"region":{"type":"string","description":"Name of the cloud provider region hosting Atlas Stream Processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamInstance) describes the valid values.\n"}},"type":"object","required":["cloudProvider","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamInstancesResultStreamConfig:getStreamInstancesResultStreamConfig":{"properties":{"maxTierSize":{"type":"string"},"tier":{"type":"string","description":"Selected tier for the Stream Instance. Configures Memory / VCPU allowances. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamInstance) describes the valid values.\n"}},"type":"object","required":["maxTierSize","tier"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamPrivatelinkEndpointsResult:getStreamPrivatelinkEndpointsResult":{"properties":{"arn":{"type":"string","description":"Amazon Resource Name (ARN). Required for AWS Provider and MSK vendor.\n"},"dnsDomain":{"type":"string","description":"The domain hostname. Required for the following provider and vendor combinations:\n\t\t\t\t\n\t* AWS provider with CONFLUENT vendor.\n\n\t* AZURE provider with EVENTHUB or CONFLUENT vendor.\n"},"dnsSubDomains":{"type":"array","items":{"type":"string"},"description":"Sub-Domain name of Confluent cluster. These are typically your availability zones. Required for AWS Provider and CONFLUENT vendor. If your AWS CONFLUENT cluster doesn't use subdomains, you must set this to the empty array [].\n"},"errorMessage":{"type":"string","description":"Error message if the connection is in a failed state.\n"},"id":{"type":"string","description":"The ID of the Private Link connection.\n"},"interfaceEndpointId":{"type":"string","description":"Interface endpoint ID that is created from the specified service endpoint ID.\n"},"interfaceEndpointName":{"type":"string","description":"Name of interface endpoint that is created from the specified service endpoint ID.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\u003cbr\u003e**NOTE**: Groups and projects are synonymous terms. Your group id is the same as your project id. For existing groups, your group or project id remains the same. The resource and corresponding endpoints use the term groups.\n"},"providerAccountId":{"type":"string","description":"Account ID from the cloud provider.\n"},"providerName":{"type":"string","description":"Provider where the endpoint is deployed. Valid values are AWS, AZURE, and GCP.\n"},"region":{"type":"string","description":"The region of the Provider’s cluster. See [AZURE](https://www.mongodb.com/docs/atlas/reference/microsoft-azure/#stream-processing-instances) and [AWS](https://www.mongodb.com/docs/atlas/reference/amazon-aws/#stream-processing-instances) supported regions. When the vendor is `CONFLUENT`, this is the domain name of Confluent cluster. When the vendor is `MSK`, this is computed by the API from the provided \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e.\n"},"serviceAttachmentUris":{"type":"array","items":{"type":"string"},"description":"List of GCP service attachment URIs for Confluent vendor. Required for GCP provider with CONFLUENT vendor.\n"},"serviceEndpointId":{"type":"string","description":"For AZURE EVENTHUB, this is the [namespace endpoint ID](https://learn.microsoft.com/en-us/rest/api/eventhub/namespaces/get). For AWS CONFLUENT cluster, this is the [VPC Endpoint service name](https://docs.confluent.io/cloud/current/networking/private-links/aws-privatelink.html).\n"},"state":{"type":"string","description":"Status of the connection.\n"},"vendor":{"type":"string","description":"Vendor that manages the endpoint. The following are the vendor values per provider:\n\n\t* **AWS**: MSK, CONFLUENT, and S3\n\n\t* **Azure**: EVENTHUB and CONFLUENT\n\n\t* **GCP**: CONFLUENT\n"}},"type":"object","required":["arn","dnsDomain","dnsSubDomains","errorMessage","id","interfaceEndpointId","interfaceEndpointName","projectId","providerAccountId","providerName","region","serviceAttachmentUris","serviceEndpointId","state","vendor"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamProcessorOptions:getStreamProcessorOptions":{"properties":{"dlq":{"$ref":"#/types/mongodbatlas:index/getStreamProcessorOptionsDlq:getStreamProcessorOptionsDlq","description":"Dead letter queue for the stream processor. Refer to the [MongoDB Atlas Docs](https://www.mongodb.com/docs/atlas/reference/glossary/#std-term-dead-letter-queue) for more information.\n"}},"type":"object","required":["dlq"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamProcessorOptionsDlq:getStreamProcessorOptionsDlq":{"properties":{"coll":{"type":"string","description":"Name of the collection to use for the DLQ.\n"},"connectionName":{"type":"string","description":"Name of the connection to write DLQ messages to. Must be an Atlas connection.\n"},"db":{"type":"string","description":"Name of the database to use for the DLQ.\n"}},"type":"object","required":["coll","connectionName","db"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamProcessorsResult:getStreamProcessorsResult":{"properties":{"id":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the stream processor.\n"},"instanceName":{"type":"string","description":"Label that identifies the stream processing workspace.\n","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"options":{"$ref":"#/types/mongodbatlas:index/getStreamProcessorsResultOptions:getStreamProcessorsResultOptions","description":"Optional configuration for the stream processor.\n"},"pipeline":{"type":"string","description":"Stream aggregation pipeline you want to apply to your streaming data. [MongoDB Atlas Docs](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/#std-label-stream-aggregation) contain more information. Using jsonencode is recommended when setting this attribute. For more details see the [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/)\n"},"processorName":{"type":"string","description":"Label that identifies the stream processor.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"state":{"type":"string","description":"The state of the stream processor. Commonly occurring states are 'CREATED', 'STARTED', 'STOPPED' and 'FAILED'. Used to start or stop the Stream Processor. Valid values are `CREATED`, `STARTED` or `STOPPED`. When a Stream Processor is created without specifying the state, it will default to `CREATED` state. When a Stream Processor is updated without specifying the state, it will default to the Previous state. \n\n**NOTE** When a Stream Processor is updated without specifying the state, it is stopped and then restored to previous state upon update completion.\n"},"stats":{"type":"string","description":"The stats associated with the stream processor. Refer to the [MongoDB Atlas Docs](https://www.mongodb.com/docs/atlas/atlas-stream-processing/manage-stream-processor/#view-statistics-of-a-stream-processor) for more information.\n"},"tier":{"type":"string","description":"Selected tier to start a stream processor on rather than defaulting to the workspace setting. Configures Memory / VCPU allowances. Valid options are SP2, SP5, SP10, SP30, and SP50.\n"},"workspaceName":{"type":"string","description":"Label that identifies the stream processing workspace.\n"}},"type":"object","required":["id","instanceName","options","pipeline","processorName","projectId","state","stats","tier","workspaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamProcessorsResultOptions:getStreamProcessorsResultOptions":{"properties":{"dlq":{"$ref":"#/types/mongodbatlas:index/getStreamProcessorsResultOptionsDlq:getStreamProcessorsResultOptionsDlq","description":"Dead letter queue for the stream processor. Refer to the [MongoDB Atlas Docs](https://www.mongodb.com/docs/atlas/reference/glossary/#std-term-dead-letter-queue) for more information.\n"}},"type":"object","required":["dlq"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamProcessorsResultOptionsDlq:getStreamProcessorsResultOptionsDlq":{"properties":{"coll":{"type":"string","description":"Name of the collection to use for the DLQ.\n"},"connectionName":{"type":"string","description":"Name of the connection to write DLQ messages to. Must be an Atlas connection.\n"},"db":{"type":"string","description":"Name of the database to use for the DLQ.\n"}},"type":"object","required":["coll","connectionName","db"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamWorkspaceDataProcessRegion:getStreamWorkspaceDataProcessRegion":{"properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud service provider where MongoDB Cloud performs stream processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/creategroupstreamworkspace) describes the valid values.\n"},"region":{"type":"string","description":"Name of the cloud provider region hosting Atlas Stream Processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/creategroupstreamworkspace) describes the valid values.\n"}},"type":"object","required":["cloudProvider","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamWorkspaceStreamConfig:getStreamWorkspaceStreamConfig":{"properties":{"maxTierSize":{"type":"string"},"tier":{"type":"string","description":"Selected tier for the Stream Instance. Configures Memory / VCPU allowances. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/creategroupstreamworkspace) describes the valid values.\n"}},"type":"object","required":["maxTierSize","tier"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamWorkspacesResult:getStreamWorkspacesResult":{"properties":{"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/getStreamWorkspacesResultDataProcessRegion:getStreamWorkspacesResultDataProcessRegion","description":"Defines the cloud service provider and region where MongoDB Cloud performs stream processing. See data process region.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"List that contains the hostnames assigned to the stream workspace.\n"},"id":{"type":"string"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"streamConfig":{"$ref":"#/types/mongodbatlas:index/getStreamWorkspacesResultStreamConfig:getStreamWorkspacesResultStreamConfig","description":"Defines the configuration options for an Atlas Stream Processing Instance. See stream config\n"},"workspaceName":{"type":"string","description":"Label that identifies the stream workspace.\n"}},"type":"object","required":["dataProcessRegion","hostnames","id","projectId","streamConfig","workspaceName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamWorkspacesResultDataProcessRegion:getStreamWorkspacesResultDataProcessRegion":{"properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud service provider where MongoDB Cloud performs stream processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/creategroupstreamworkspace) describes the valid values.\n"},"region":{"type":"string","description":"Name of the cloud provider region hosting Atlas Stream Processing. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/creategroupstreamworkspace) describes the valid values.\n"}},"type":"object","required":["cloudProvider","region"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getStreamWorkspacesResultStreamConfig:getStreamWorkspacesResultStreamConfig":{"properties":{"maxTierSize":{"type":"string"},"tier":{"type":"string","description":"Selected tier for the Stream Workspace. Configures Memory / VCPU allowances. The [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/creategroupstreamworkspace) describes the valid values.\n"}},"type":"object","required":["maxTierSize","tier"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getTeamUser:getTeamUser":{"properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n"},"createdAt":{"type":"string","description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n"},"firstName":{"type":"string","description":"First or given name that belongs to the MongoDB Cloud user.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n"},"invitationCreatedAt":{"type":"string","description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"invitationExpiresAt":{"type":"string","description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"inviterUsername":{"type":"string","description":"Username of the MongoDB Cloud user who sent the invitation to join the organization.\n"},"lastAuth":{"type":"string","description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n"},"lastName":{"type":"string","description":"Last name, family name, or surname that belongs to the MongoDB Cloud user.\n"},"mobileNumber":{"type":"string","description":"Mobile phone number that belongs to the MongoDB Cloud user.\n"},"orgMembershipStatus":{"type":"string","description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or are already active in the organization.\n"},"roles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getTeamUserRole:getTeamUserRole"},"description":"Organization and project-level roles assigned to one MongoDB Cloud user within one organization.\n"},"teamIds":{"type":"array","items":{"type":"string"},"description":"List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Cloud user belongs.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"type":"object","required":["country","createdAt","firstName","id","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgMembershipStatus","roles","teamIds","username"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getTeamUserRole:getTeamUserRole":{"properties":{"orgRoles":{"type":"array","items":{"type":"string"}},"projectRoleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getTeamUserRoleProjectRoleAssignment:getTeamUserRoleProjectRoleAssignment"}}},"type":"object","required":["orgRoles","projectRoleAssignments"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getTeamUserRoleProjectRoleAssignment:getTeamUserRoleProjectRoleAssignment":{"properties":{"projectId":{"type":"string"},"projectRoles":{"type":"array","items":{"type":"string"}}},"type":"object","required":["projectId","projectRoles"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getThirdPartyIntegrationsResult:getThirdPartyIntegrationsResult":{"properties":{"accountId":{"type":"string"},"apiKey":{"type":"string","description":"Your API Key.\n","secret":true},"channelName":{"type":"string"},"enabled":{"type":"boolean","description":"Whether your cluster has Prometheus enabled.\n"},"id":{"type":"string","description":"Unique identifier of the integration.\n"},"microsoftTeamsWebhookUrl":{"type":"string","description":"Your Microsoft Teams incoming webhook URL.\n* `PROMETHEUS`\n","secret":true},"projectId":{"type":"string","description":"The unique ID for the project to get all Third-Party service integrations\n"},"region":{"type":"string","description":"Two-letter code that indicates which API URL to use. See the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e response field of [MongoDB API Third-Party Service Integration documentation](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getthirdpartyintegration) for more details. Opsgenie will use US by default.\n* `VICTOR_OPS`\n"},"routingKey":{"type":"string","description":"An optional field for your Routing Key.\n* `WEBHOOK`\n","secret":true},"secret":{"type":"string","description":"An optional field for your webhook secret.\n* `MICROSOFT_TEAMS`\n","secret":true},"sendCollectionLatencyMetrics":{"type":"boolean","description":"Toggle sending collection latency metrics that includes database names and collection names and latency metrics on reads, writes, commands, and transactions.\n"},"sendDatabaseMetrics":{"type":"boolean","description":"Toggle sending database metrics that includes database names and metrics on the number of collections, storage size, and index size.\n"},"sendQueryStatsMetrics":{"type":"boolean","description":"Toggle sending query shape metrics that includes query hash and metrics on latency, execution frequency, documents returned, and timestamps.\n* `OPS_GENIE`\n"},"sendUserProvidedResourceTags":{"type":"boolean","description":"Toggle sending user provided group and cluster resource tags with the Datadog metrics.\n"},"serviceDiscovery":{"type":"string","description":"Indicates which service discovery method is used, either file or http.\n","secret":true},"serviceKey":{"type":"string","description":"Your Service Key.\n* `DATADOG`\n","secret":true},"teamName":{"type":"string"},"type":{"type":"string","description":"Thirt-Party service integration type.\n"},"url":{"type":"string","description":"Your webhook URL.\n"},"userName":{"type":"string","description":"Your Prometheus username.\n","secret":true}},"type":"object","required":["accountId","apiKey","channelName","enabled","id","microsoftTeamsWebhookUrl","projectId","region","routingKey","secret","sendCollectionLatencyMetrics","sendDatabaseMetrics","sendQueryStatsMetrics","sendUserProvidedResourceTags","serviceDiscovery","serviceKey","teamName","type","url","userName"],"language":{"nodejs":{"requiredInputs":[]}}},"mongodbatlas:index/getX509AuthenticationDatabaseUserCertificate:getX509AuthenticationDatabaseUserCertificate":{"properties":{"createdAt":{"type":"string"},"groupId":{"type":"string"},"id":{"type":"integer"},"notAfter":{"type":"string"},"subject":{"type":"string"}},"type":"object","required":["createdAt","groupId","id","notAfter","subject"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the mongodbatlas package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"accessToken":{"type":"string","description":"MongoDB Atlas Access Token for Service Account."},"assumeRole":{"$ref":"#/types/mongodbatlas:index/ProviderAssumeRole:ProviderAssumeRole"},"awsAccessKeyId":{"type":"string","description":"AWS API Access Key."},"awsSecretAccessKey":{"type":"string","description":"AWS API Access Secret Key."},"awsSessionToken":{"type":"string","description":"AWS Security Token Service provided session token."},"baseUrl":{"type":"string","description":"MongoDB Atlas Base URL"},"clientId":{"type":"string","description":"MongoDB Atlas Client ID for Service Account."},"clientSecret":{"type":"string","description":"MongoDB Atlas Client Secret for Service Account."},"isMongodbgovCloud":{"type":"boolean","description":"MongoDB Atlas Base URL default to gov"},"privateKey":{"type":"string","description":"MongoDB Atlas Programmatic Private Key","secret":true},"publicKey":{"type":"string","description":"MongoDB Atlas Programmatic Public Key"},"realmBaseUrl":{"type":"string","description":"MongoDB Realm Base URL"},"region":{"type":"string","description":"Region where secret is stored as part of AWS Secret Manager."},"secretName":{"type":"string","description":"Name of secret stored in AWS Secret Manager."},"stsEndpoint":{"type":"string","description":"AWS Security Token Service endpoint. Required for cross-AWS region or cross-AWS account secrets."}},"inputProperties":{"accessToken":{"type":"string","description":"MongoDB Atlas Access Token for Service Account."},"assumeRole":{"$ref":"#/types/mongodbatlas:index/ProviderAssumeRole:ProviderAssumeRole"},"awsAccessKeyId":{"type":"string","description":"AWS API Access Key."},"awsSecretAccessKey":{"type":"string","description":"AWS API Access Secret Key."},"awsSessionToken":{"type":"string","description":"AWS Security Token Service provided session token."},"baseUrl":{"type":"string","description":"MongoDB Atlas Base URL"},"clientId":{"type":"string","description":"MongoDB Atlas Client ID for Service Account."},"clientSecret":{"type":"string","description":"MongoDB Atlas Client Secret for Service Account."},"isMongodbgovCloud":{"type":"boolean","description":"MongoDB Atlas Base URL default to gov"},"privateKey":{"type":"string","description":"MongoDB Atlas Programmatic Private Key","secret":true},"publicKey":{"type":"string","description":"MongoDB Atlas Programmatic Public Key"},"realmBaseUrl":{"type":"string","description":"MongoDB Realm Base URL"},"region":{"type":"string","description":"Region where secret is stored as part of AWS Secret Manager."},"secretName":{"type":"string","description":"Name of secret stored in AWS Secret Manager."},"stsEndpoint":{"type":"string","description":"AWS Security Token Service endpoint. Required for cross-AWS region or cross-AWS account secrets."}},"methods":{"terraformConfig":"pulumi:providers:mongodbatlas/terraformConfig"}},"resources":{"mongodbatlas:index/accessListApiKey:AccessListApiKey":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AccessListApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.AccessListApiKey`\" pulumi-lang-go=\"`AccessListApiKey`\" pulumi-lang-python=\"`AccessListApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.AccessListApiKey`\" pulumi-lang-java=\"`mongodbatlas.AccessListApiKey`\"\u003e`mongodbatlas.AccessListApiKey`\u003c/span\u003e provides an IP Access List entry resource. The access list grants access from IPs or CIDRs to clusters within the Project.\n    \n\u003e **Note:** The \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AccessListApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.AccessListApiKey`\" pulumi-lang-go=\"`AccessListApiKey`\" pulumi-lang-python=\"`AccessListApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.AccessListApiKey`\" pulumi-lang-java=\"`mongodbatlas.AccessListApiKey`\"\u003e`mongodbatlas.AccessListApiKey`\u003c/span\u003e resource can be used to manage all Programmatic API Keys, regardless of whether they were created at the Organization level or Project level. \n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **IMPORTANT:**\nWhen you remove an entry from the access list, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider, hence a change will force the destruction and recreation of entries.  \n\n\u003e **IMPORTANT WARNING:** Managing Atlas Programmatic API Keys (PAKs) with Terraform will expose sensitive organizational secrets in Terraform's state. We suggest following Terraform's best practices. You may also want to consider managing your PAKs via a more secure method, such as the [HashiCorp Vault MongoDB Atlas Secrets Engine](https://developer.hashicorp.com/vault/docs/secrets/mongodbatlas).\n\n\n## Example Usage\n\n### Using CIDR Block\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.AccessListApiKey(\"test\", {\n    orgId: \"\u003cORG_ID\u003e\",\n    cidrBlock: \"1.2.3.4/32\",\n    apiKeyId: \"\u003cAPI_KEY_ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.AccessListApiKey(\"test\",\n    org_id=\"\u003cORG_ID\u003e\",\n    cidr_block=\"1.2.3.4/32\",\n    api_key_id=\"\u003cAPI_KEY_ID\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.AccessListApiKey(\"test\", new()\n    {\n        OrgId = \"\u003cORG_ID\u003e\",\n        CidrBlock = \"1.2.3.4/32\",\n        ApiKeyId = \"\u003cAPI_KEY_ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAccessListApiKey(ctx, \"test\", \u0026mongodbatlas.AccessListApiKeyArgs{\n\t\t\tOrgId:     pulumi.String(\"\u003cORG_ID\u003e\"),\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t\tApiKeyId:  pulumi.String(\"\u003cAPI_KEY_ID\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AccessListApiKey;\nimport com.pulumi.mongodbatlas.AccessListApiKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new AccessListApiKey(\"test\", AccessListApiKeyArgs.builder()\n            .orgId(\"\u003cORG_ID\u003e\")\n            .cidrBlock(\"1.2.3.4/32\")\n            .apiKeyId(\"\u003cAPI_KEY_ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:AccessListApiKey\n    properties:\n      orgId: \u003cORG_ID\u003e\n      cidrBlock: 1.2.3.4/32\n      apiKeyId: \u003cAPI_KEY_ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using IP Address\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.AccessListApiKey(\"test\", {\n    orgId: \"\u003cORG_ID\u003e\",\n    ipAddress: \"2.3.4.5\",\n    apiKeyId: \"\u003cAPI_KEY_ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.AccessListApiKey(\"test\",\n    org_id=\"\u003cORG_ID\u003e\",\n    ip_address=\"2.3.4.5\",\n    api_key_id=\"\u003cAPI_KEY_ID\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.AccessListApiKey(\"test\", new()\n    {\n        OrgId = \"\u003cORG_ID\u003e\",\n        IpAddress = \"2.3.4.5\",\n        ApiKeyId = \"\u003cAPI_KEY_ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAccessListApiKey(ctx, \"test\", \u0026mongodbatlas.AccessListApiKeyArgs{\n\t\t\tOrgId:     pulumi.String(\"\u003cORG_ID\u003e\"),\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t\tApiKeyId:  pulumi.String(\"\u003cAPI_KEY_ID\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AccessListApiKey;\nimport com.pulumi.mongodbatlas.AccessListApiKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new AccessListApiKey(\"test\", AccessListApiKeyArgs.builder()\n            .orgId(\"\u003cORG_ID\u003e\")\n            .ipAddress(\"2.3.4.5\")\n            .apiKeyId(\"\u003cAPI_KEY_ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:AccessListApiKey\n    properties:\n      orgId: \u003cORG_ID\u003e\n      ipAddress: 2.3.4.5\n      apiKeyId: \u003cAPI_KEY_ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Create Programmatic API Key\n\n## Import\n\nIP Access List entries can be imported using the \u003cspan pulumi-lang-nodejs=\"`orgId`\" pulumi-lang-dotnet=\"`OrgId`\" pulumi-lang-go=\"`orgId`\" pulumi-lang-python=\"`org_id`\" pulumi-lang-yaml=\"`orgId`\" pulumi-lang-java=\"`orgId`\"\u003e`org_id`\u003c/span\u003e , \u003cspan pulumi-lang-nodejs=\"`apiKeyId`\" pulumi-lang-dotnet=\"`ApiKeyId`\" pulumi-lang-go=\"`apiKeyId`\" pulumi-lang-python=\"`api_key_id`\" pulumi-lang-yaml=\"`apiKeyId`\" pulumi-lang-java=\"`apiKeyId`\"\u003e`api_key_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/accessListApiKey:AccessListApiKey test 5d0f1f74cf09a29120e123cd-a29120e123cd-10.242.88.0/21\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Programmatic-API-Keys/operation/createApiKeyAccessList)\n\n","properties":{"apiKeyId":{"type":"string","description":"Unique identifier for the Organization API Key for which you want to create a new access list entry.\n\n\u003e **NOTE:** One of the following attributes must set: \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e  or \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e but not both.\n"},"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. Your access list entry can include only one `cidrBlock`, or one `ipAddress`.\n"},"ipAddress":{"type":"string","description":"Single IP address to be added to the access list.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"required":["apiKeyId","cidrBlock","ipAddress","orgId"],"inputProperties":{"apiKeyId":{"type":"string","description":"Unique identifier for the Organization API Key for which you want to create a new access list entry.\n\n\u003e **NOTE:** One of the following attributes must set: \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e  or \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e but not both.\n"},"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. Your access list entry can include only one `cidrBlock`, or one `ipAddress`.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"Single IP address to be added to the access list.\n","willReplaceOnChanges":true},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"requiredInputs":["apiKeyId","orgId"],"stateInputs":{"description":"Input properties used for looking up and filtering AccessListApiKey resources.\n","properties":{"apiKeyId":{"type":"string","description":"Unique identifier for the Organization API Key for which you want to create a new access list entry.\n\n\u003e **NOTE:** One of the following attributes must set: \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e  or \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e but not both.\n"},"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. Your access list entry can include only one `cidrBlock`, or one `ipAddress`.\n","willReplaceOnChanges":true},"ipAddress":{"type":"string","description":"Single IP address to be added to the access list.\n","willReplaceOnChanges":true},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"type":"object"}},"mongodbatlas:index/advancedCluster:AdvancedCluster":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e provides an Advanced Cluster resource. The resource lets you create, edit and delete advanced clusters.\n\n\nWe recommend all new MongoDB Atlas Terraform users start with the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e resource instead of the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Cluster`\" pulumi-lang-dotnet=\"`mongodbatlas.Cluster`\" pulumi-lang-go=\"`Cluster`\" pulumi-lang-python=\"`Cluster`\" pulumi-lang-yaml=\"`mongodbatlas.Cluster`\" pulumi-lang-java=\"`mongodbatlas.Cluster`\"\u003e`mongodbatlas.Cluster`\u003c/span\u003e resource. Key differences include support for [Multi-Cloud Clusters](https://www.mongodb.com/blog/post/introducing-multicloud-clusters-on-mongodb-atlas), Asymmetric Sharding, and [Independent Scaling of Analytics Node Tiers](https://www.mongodb.com/blog/post/introducing-ability-independently-scale-atlas-analytics-node-tiers). To migrate from an existing \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Cluster`\" pulumi-lang-dotnet=\"`mongodbatlas.Cluster`\" pulumi-lang-go=\"`Cluster`\" pulumi-lang-python=\"`Cluster`\" pulumi-lang-yaml=\"`mongodbatlas.Cluster`\" pulumi-lang-java=\"`mongodbatlas.Cluster`\"\u003e`mongodbatlas.Cluster`\u003c/span\u003e resource, see our Migration Guide.\n\n\u003e **IMPORTANT:** If you are upgrading to our Terraform Provider v2.0.0 or later from v1.x.x, you must update your existing \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e resource configuration according to this guide.\n\n\u003e **IMPORTANT:** Changes to cluster configurations can affect costs. Before making changes, please see [Billing](https://docs.atlas.mongodb.com/billing/).\n\n\u003e **NOTE:** This resource supports creating Flex clusters, upgrading M0 clusters to Flex, and upgrading Flex clusters to Dedicated. When creating a Flex cluster, you must set the `replication_specs[#].region_configs[#].priority` value to 7.\n\n\u003e **NOTE:** When you modify cluster configurations, your pulumi preview output might include `(known after apply)` markers for attributes you didin't modify. This is expected behavior. For more information, see the \"known after apply\" verbosity section below.\n\n\u003e **NOTE:** This resource creates a network container for each provider/region combination specified in the advanced cluster configuration. Each network container can be referenced via its computed `replication_specs[#]container_id` attribute.\n\n\u003e **NOTE:** When configuring auto-scaling, you can use the \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e attribute to simplify your Terraform workflow by eliminating the need for `lifecycle.ignore_changes` blocks and providing visibility into Atlas-managed changes. For more information, see the Auto-Scaling with Effective Fields section below.\n\n## Example Usage\n\n### Example single provider and single region\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"PROJECT ID\",\n    name: \"NAME OF CLUSTER\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n            analyticsSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 1,\n            },\n            providerName: \"AWS\",\n            priority: 7,\n            regionName: \"US_EAST_1\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"PROJECT ID\",\n    name=\"NAME OF CLUSTER\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n            \"analytics_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 1,\n            },\n            \"provider_name\": \"AWS\",\n            \"priority\": 7,\n            \"region_name\": \"US_EAST_1\",\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Name = \"NAME OF CLUSTER\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                        AnalyticsSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigAnalyticsSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 1,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"PROJECT ID\"),\n\t\t\tName:        pulumi.String(\"NAME OF CLUSTER\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAnalyticsSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigAnalyticsSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new AdvancedCluster(\"this\", AdvancedClusterArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .name(\"NAME OF CLUSTER\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .analyticsSpecs(AdvancedClusterReplicationSpecRegionConfigAnalyticsSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(1)\n                        .build())\n                    .providerName(\"AWS\")\n                    .priority(7)\n                    .regionName(\"US_EAST_1\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: PROJECT ID\n      name: NAME OF CLUSTER\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n              analyticsSpecs:\n                instanceSize: M10\n                nodeCount: 1\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example using effective fields with auto-scaling\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisAdvancedCluster = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: projectId,\n    name: \"auto-scale-cluster\",\n    clusterType: \"REPLICASET\",\n    useEffectiveFields: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n            autoScaling: {\n                computeEnabled: true,\n                computeScaleDownEnabled: true,\n                computeMinInstanceSize: \"M10\",\n                computeMaxInstanceSize: \"M30\",\n            },\n            providerName: \"AWS\",\n            priority: 7,\n            regionName: \"US_EAST_1\",\n        }],\n    }],\n});\n// Read the effective (actual) values after Atlas scales\nconst _this = mongodbatlas.getAdvancedClusterOutput({\n    projectId: thisAdvancedCluster.projectId,\n    name: thisAdvancedCluster.name,\n    useEffectiveFields: true,\n});\nexport const configuredInstanceSize = _this.apply(_this =\u003e _this.replicationSpecs?.[0]?.regionConfigs?.[0]?.electableSpecs?.instanceSize);\nexport const actualInstanceSize = _this.apply(_this =\u003e _this.replicationSpecs?.[0]?.regionConfigs?.[0]?.effectiveElectableSpecs?.instanceSize);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_advanced_cluster = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=project_id,\n    name=\"auto-scale-cluster\",\n    cluster_type=\"REPLICASET\",\n    use_effective_fields=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n            \"auto_scaling\": {\n                \"compute_enabled\": True,\n                \"compute_scale_down_enabled\": True,\n                \"compute_min_instance_size\": \"M10\",\n                \"compute_max_instance_size\": \"M30\",\n            },\n            \"provider_name\": \"AWS\",\n            \"priority\": 7,\n            \"region_name\": \"US_EAST_1\",\n        }],\n    }])\n# Read the effective (actual) values after Atlas scales\nthis = mongodbatlas.get_advanced_cluster_output(project_id=this_advanced_cluster.project_id,\n    name=this_advanced_cluster.name,\n    use_effective_fields=True)\npulumi.export(\"configuredInstanceSize\", this.replication_specs[0].region_configs[0].electable_specs.instance_size)\npulumi.export(\"actualInstanceSize\", this.replication_specs[0].region_configs[0].effective_electable_specs.instance_size)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = projectId,\n        Name = \"auto-scale-cluster\",\n        ClusterType = \"REPLICASET\",\n        UseEffectiveFields = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                        AutoScaling = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigAutoScalingArgs\n                        {\n                            ComputeEnabled = true,\n                            ComputeScaleDownEnabled = true,\n                            ComputeMinInstanceSize = \"M10\",\n                            ComputeMaxInstanceSize = \"M30\",\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                },\n            },\n        },\n    });\n\n    // Read the effective (actual) values after Atlas scales\n    var @this = Mongodbatlas.GetAdvancedCluster.Invoke(new()\n    {\n        ProjectId = thisAdvancedCluster.ProjectId,\n        Name = thisAdvancedCluster.Name,\n        UseEffectiveFields = true,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"configuredInstanceSize\"] = @this.Apply(@this =\u003e @this.Apply(getAdvancedClusterResult =\u003e getAdvancedClusterResult.ReplicationSpecs[0]?.RegionConfigs[0]?.ElectableSpecs?.InstanceSize)),\n        [\"actualInstanceSize\"] = @this.Apply(@this =\u003e @this.Apply(getAdvancedClusterResult =\u003e getAdvancedClusterResult.ReplicationSpecs[0]?.RegionConfigs[0]?.EffectiveElectableSpecs?.InstanceSize)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:          pulumi.Any(projectId),\n\t\t\tName:               pulumi.String(\"auto-scale-cluster\"),\n\t\t\tClusterType:        pulumi.String(\"REPLICASET\"),\n\t\t\tUseEffectiveFields: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAutoScaling: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigAutoScalingArgs{\n\t\t\t\t\t\t\t\tComputeEnabled:          pulumi.Bool(true),\n\t\t\t\t\t\t\t\tComputeScaleDownEnabled: pulumi.Bool(true),\n\t\t\t\t\t\t\t\tComputeMinInstanceSize:  pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tComputeMaxInstanceSize:  pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Read the effective (actual) values after Atlas scales\n\t\tthis := mongodbatlas.LookupAdvancedClusterOutput(ctx, mongodbatlas.GetAdvancedClusterOutputArgs{\n\t\t\tProjectId:          thisAdvancedCluster.ProjectId,\n\t\t\tName:               thisAdvancedCluster.Name,\n\t\t\tUseEffectiveFields: pulumi.Bool(true),\n\t\t}, nil)\n\t\tctx.Export(\"configuredInstanceSize\", this.ApplyT(func(this mongodbatlas.GetAdvancedClusterResult) (*string, error) {\n\t\t\treturn \u0026this.ReplicationSpecs[0].RegionConfigs[0].ElectableSpecs.InstanceSize, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"actualInstanceSize\", this.ApplyT(func(this mongodbatlas.GetAdvancedClusterResult) (*string, error) {\n\t\t\treturn \u0026this.ReplicationSpecs[0].RegionConfigs[0].EffectiveElectableSpecs.InstanceSize, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAdvancedClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisAdvancedCluster = new AdvancedCluster(\"thisAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(projectId)\n            .name(\"auto-scale-cluster\")\n            .clusterType(\"REPLICASET\")\n            .useEffectiveFields(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .autoScaling(AdvancedClusterReplicationSpecRegionConfigAutoScalingArgs.builder()\n                        .computeEnabled(true)\n                        .computeScaleDownEnabled(true)\n                        .computeMinInstanceSize(\"M10\")\n                        .computeMaxInstanceSize(\"M30\")\n                        .build())\n                    .providerName(\"AWS\")\n                    .priority(7)\n                    .regionName(\"US_EAST_1\")\n                    .build())\n                .build())\n            .build());\n\n        // Read the effective (actual) values after Atlas scales\n        final var this = MongodbatlasFunctions.getAdvancedCluster(GetAdvancedClusterArgs.builder()\n            .projectId(thisAdvancedCluster.projectId())\n            .name(thisAdvancedCluster.name())\n            .useEffectiveFields(true)\n            .build());\n\n        ctx.export(\"configuredInstanceSize\", this_.applyValue(_this_ -\u003e _this_.replicationSpecs()[0].regionConfigs()[0].electableSpecs().instanceSize()));\n        ctx.export(\"actualInstanceSize\", this_.applyValue(_this_ -\u003e _this_.replicationSpecs()[0].regionConfigs()[0].effectiveElectableSpecs().instanceSize()));\n    }\n}\n```\n```yaml\nresources:\n  thisAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: this\n    properties:\n      projectId: ${projectId}\n      name: auto-scale-cluster\n      clusterType: REPLICASET\n      useEffectiveFields: true\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n              autoScaling:\n                computeEnabled: true\n                computeScaleDownEnabled: true\n                computeMinInstanceSize: M10\n                computeMaxInstanceSize: M30\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_1\nvariables:\n  # Read the effective (actual) values after Atlas scales\n  this:\n    fn::invoke:\n      function: mongodbatlas:getAdvancedCluster\n      arguments:\n        projectId: ${thisAdvancedCluster.projectId}\n        name: ${thisAdvancedCluster.name}\n        useEffectiveFields: true\noutputs:\n  configuredInstanceSize: ${this.replicationSpecs[0].regionConfigs[0].electableSpecs.instanceSize}\n  actualInstanceSize: ${this.replicationSpecs[0].regionConfigs[0].effectiveElectableSpecs.instanceSize}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**For module authors:** See the Effective Fields Examples for complete examples of using \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e and effective specs in reusable Terraform modules.\n\n### Example Tenant Cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"PROJECT ID\",\n    name: \"NAME OF CLUSTER\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M0\",\n            },\n            providerName: \"TENANT\",\n            backingProviderName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            priority: 7,\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"PROJECT ID\",\n    name=\"NAME OF CLUSTER\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M0\",\n            },\n            \"provider_name\": \"TENANT\",\n            \"backing_provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"priority\": 7,\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Name = \"NAME OF CLUSTER\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M0\",\n                        },\n                        ProviderName = \"TENANT\",\n                        BackingProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        Priority = 7,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"PROJECT ID\"),\n\t\t\tName:        pulumi.String(\"NAME OF CLUSTER\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M0\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName:        pulumi.String(\"TENANT\"),\n\t\t\t\t\t\t\tBackingProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:          pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tPriority:            pulumi.Int(7),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new AdvancedCluster(\"this\", AdvancedClusterArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .name(\"NAME OF CLUSTER\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M0\")\n                        .build())\n                    .providerName(\"TENANT\")\n                    .backingProviderName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .priority(7)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: PROJECT ID\n      name: NAME OF CLUSTER\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M0\n              providerName: TENANT\n              backingProviderName: AWS\n              regionName: US_EAST_1\n              priority: 7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **NOTE** Upgrading the tenant cluster to a Flex cluster or a dedicated cluster is supported. When upgrading to a Flex cluster, change the \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e from \"TENANT\" to \"FLEX\". See Example Tenant Cluster Upgrade to Flex below. When upgrading to a dedicated cluster, change the \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e to your preferred provider (AWS, GCP or Azure) and remove the variable \u003cspan pulumi-lang-nodejs=\"`backingProviderName`\" pulumi-lang-dotnet=\"`BackingProviderName`\" pulumi-lang-go=\"`backingProviderName`\" pulumi-lang-python=\"`backing_provider_name`\" pulumi-lang-yaml=\"`backingProviderName`\" pulumi-lang-java=\"`backingProviderName`\"\u003e`backing_provider_name`\u003c/span\u003e. See the Example Tenant Cluster Upgrade below. You can upgrade a tenant cluster only to a single provider on an M10-tier cluster or greater.\n\nWhen upgrading from the tenant, *only* the upgrade changes will be applied. This helps avoid a corrupt state file in the event that the upgrade succeeds but subsequent updates fail within the same `pulumi up`. To apply additional cluster changes, run a secondary `pulumi up` after the upgrade succeeds.\n\n\n### Example Tenant Cluster Upgrade\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"PROJECT ID\",\n    name: \"NAME OF CLUSTER\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M10\",\n            },\n            providerName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            priority: 7,\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"PROJECT ID\",\n    name=\"NAME OF CLUSTER\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n            },\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"priority\": 7,\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Name = \"NAME OF CLUSTER\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                        },\n                        ProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        Priority = 7,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"PROJECT ID\"),\n\t\t\tName:        pulumi.String(\"NAME OF CLUSTER\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new AdvancedCluster(\"this\", AdvancedClusterArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .name(\"NAME OF CLUSTER\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .build())\n                    .providerName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .priority(7)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: PROJECT ID\n      name: NAME OF CLUSTER\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M10\n              providerName: AWS\n              regionName: US_EAST_1\n              priority: 7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Tenant Cluster Upgrade to Flex\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"PROJECT ID\",\n    name: \"NAME OF CLUSTER\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            providerName: \"FLEX\",\n            backingProviderName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            priority: 7,\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"PROJECT ID\",\n    name=\"NAME OF CLUSTER\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"provider_name\": \"FLEX\",\n            \"backing_provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"priority\": 7,\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Name = \"NAME OF CLUSTER\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ProviderName = \"FLEX\",\n                        BackingProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        Priority = 7,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"PROJECT ID\"),\n\t\t\tName:        pulumi.String(\"NAME OF CLUSTER\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tProviderName:        pulumi.String(\"FLEX\"),\n\t\t\t\t\t\t\tBackingProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:          pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tPriority:            pulumi.Int(7),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new AdvancedCluster(\"this\", AdvancedClusterArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .name(\"NAME OF CLUSTER\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .providerName(\"FLEX\")\n                    .backingProviderName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .priority(7)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: PROJECT ID\n      name: NAME OF CLUSTER\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - providerName: FLEX\n              backingProviderName: AWS\n              regionName: US_EAST_1\n              priority: 7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Flex Cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"PROJECT ID\",\n    name: \"NAME OF CLUSTER\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            providerName: \"FLEX\",\n            backingProviderName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            priority: 7,\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"PROJECT ID\",\n    name=\"NAME OF CLUSTER\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"provider_name\": \"FLEX\",\n            \"backing_provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"priority\": 7,\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Name = \"NAME OF CLUSTER\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ProviderName = \"FLEX\",\n                        BackingProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        Priority = 7,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"PROJECT ID\"),\n\t\t\tName:        pulumi.String(\"NAME OF CLUSTER\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tProviderName:        pulumi.String(\"FLEX\"),\n\t\t\t\t\t\t\tBackingProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:          pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tPriority:            pulumi.Int(7),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new AdvancedCluster(\"this\", AdvancedClusterArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .name(\"NAME OF CLUSTER\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .providerName(\"FLEX\")\n                    .backingProviderName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .priority(7)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: PROJECT ID\n      name: NAME OF CLUSTER\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - providerName: FLEX\n              backingProviderName: AWS\n              regionName: US_EAST_1\n              priority: 7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**NOTE**: Upgrading the Flex cluster is supported. When upgrading from a Flex cluster, change the \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e from \"TENANT\" to your preferred provider (AWS, GCP or Azure) and remove the variable \u003cspan pulumi-lang-nodejs=\"`backingProviderName`\" pulumi-lang-dotnet=\"`BackingProviderName`\" pulumi-lang-go=\"`backingProviderName`\" pulumi-lang-python=\"`backing_provider_name`\" pulumi-lang-yaml=\"`backingProviderName`\" pulumi-lang-java=\"`backingProviderName`\"\u003e`backing_provider_name`\u003c/span\u003e.  See the Example Flex Cluster Upgrade below. You can upgrade a Flex cluster only to a single provider on an M10-tier cluster or greater. \n\nWhen upgrading from a flex cluster, *only* the upgrade changes will be applied. This helps avoid a corrupt state file in the event that the upgrade succeeds but subsequent updates fail within the same `pulumi up`. To apply additional cluster changes, run a secondary `pulumi up` after the upgrade succeeds.\n\n\n### Example Flex Cluster Upgrade\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"PROJECT ID\",\n    name: \"NAME OF CLUSTER\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M10\",\n            },\n            providerName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            priority: 7,\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"PROJECT ID\",\n    name=\"NAME OF CLUSTER\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n            },\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"priority\": 7,\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Name = \"NAME OF CLUSTER\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                        },\n                        ProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        Priority = 7,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"PROJECT ID\"),\n\t\t\tName:        pulumi.String(\"NAME OF CLUSTER\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new AdvancedCluster(\"this\", AdvancedClusterArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .name(\"NAME OF CLUSTER\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .build())\n                    .providerName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .priority(7)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: PROJECT ID\n      name: NAME OF CLUSTER\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M10\n              providerName: AWS\n              regionName: US_EAST_1\n              priority: 7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Multi-Cloud Cluster\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"PROJECT ID\",\n    name: \"NAME OF CLUSTER\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [\n            {\n                electableSpecs: {\n                    instanceSize: \"M10\",\n                    nodeCount: 3,\n                },\n                analyticsSpecs: {\n                    instanceSize: \"M10\",\n                    nodeCount: 1,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"US_EAST_1\",\n            },\n            {\n                electableSpecs: {\n                    instanceSize: \"M10\",\n                    nodeCount: 2,\n                },\n                providerName: \"GCP\",\n                priority: 6,\n                regionName: \"NORTH_AMERICA_NORTHEAST_1\",\n            },\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"PROJECT ID\",\n    name=\"NAME OF CLUSTER\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [\n            {\n                \"electable_specs\": {\n                    \"instance_size\": \"M10\",\n                    \"node_count\": 3,\n                },\n                \"analytics_specs\": {\n                    \"instance_size\": \"M10\",\n                    \"node_count\": 1,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"US_EAST_1\",\n            },\n            {\n                \"electable_specs\": {\n                    \"instance_size\": \"M10\",\n                    \"node_count\": 2,\n                },\n                \"provider_name\": \"GCP\",\n                \"priority\": 6,\n                \"region_name\": \"NORTH_AMERICA_NORTHEAST_1\",\n            },\n        ],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Name = \"NAME OF CLUSTER\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                        AnalyticsSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigAnalyticsSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 1,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 2,\n                        },\n                        ProviderName = \"GCP\",\n                        Priority = 6,\n                        RegionName = \"NORTH_AMERICA_NORTHEAST_1\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"PROJECT ID\"),\n\t\t\tName:        pulumi.String(\"NAME OF CLUSTER\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAnalyticsSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigAnalyticsSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(1),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(2),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"GCP\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(6),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"NORTH_AMERICA_NORTHEAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new AdvancedCluster(\"this\", AdvancedClusterArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .name(\"NAME OF CLUSTER\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(                \n                    AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M10\")\n                            .nodeCount(3)\n                            .build())\n                        .analyticsSpecs(AdvancedClusterReplicationSpecRegionConfigAnalyticsSpecsArgs.builder()\n                            .instanceSize(\"M10\")\n                            .nodeCount(1)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"US_EAST_1\")\n                        .build(),\n                    AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M10\")\n                            .nodeCount(2)\n                            .build())\n                        .providerName(\"GCP\")\n                        .priority(6)\n                        .regionName(\"NORTH_AMERICA_NORTHEAST_1\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: PROJECT ID\n      name: NAME OF CLUSTER\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n              analyticsSpecs:\n                instanceSize: M10\n                nodeCount: 1\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_1\n            - electableSpecs:\n                instanceSize: M10\n                nodeCount: 2\n              providerName: GCP\n              priority: 6\n              regionName: NORTH_AMERICA_NORTHEAST_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Example of a Multi Cloud Sharded Cluster with 2 shards\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: project.id,\n    name: clusterName,\n    clusterType: \"SHARDED\",\n    backupEnabled: true,\n    replicationSpecs: [\n        {\n            regionConfigs: [\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 3,\n                    },\n                    providerName: \"AWS\",\n                    priority: 7,\n                    regionName: \"US_EAST_1\",\n                },\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 2,\n                    },\n                    providerName: \"AZURE\",\n                    priority: 6,\n                    regionName: \"US_EAST_2\",\n                },\n            ],\n        },\n        {\n            regionConfigs: [\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 3,\n                    },\n                    providerName: \"AWS\",\n                    priority: 7,\n                    regionName: \"US_EAST_1\",\n                },\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 2,\n                    },\n                    providerName: \"AZURE\",\n                    priority: 6,\n                    regionName: \"US_EAST_2\",\n                },\n            ],\n        },\n    ],\n    advancedConfiguration: {\n        javascriptEnabled: true,\n        oplogSizeMb: 991,\n        sampleRefreshIntervalBiConnector: 300,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=project[\"id\"],\n    name=cluster_name,\n    cluster_type=\"SHARDED\",\n    backup_enabled=True,\n    replication_specs=[\n        {\n            \"region_configs\": [\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 3,\n                    },\n                    \"provider_name\": \"AWS\",\n                    \"priority\": 7,\n                    \"region_name\": \"US_EAST_1\",\n                },\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 2,\n                    },\n                    \"provider_name\": \"AZURE\",\n                    \"priority\": 6,\n                    \"region_name\": \"US_EAST_2\",\n                },\n            ],\n        },\n        {\n            \"region_configs\": [\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 3,\n                    },\n                    \"provider_name\": \"AWS\",\n                    \"priority\": 7,\n                    \"region_name\": \"US_EAST_1\",\n                },\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 2,\n                    },\n                    \"provider_name\": \"AZURE\",\n                    \"priority\": 6,\n                    \"region_name\": \"US_EAST_2\",\n                },\n            ],\n        },\n    ],\n    advanced_configuration={\n        \"javascript_enabled\": True,\n        \"oplog_size_mb\": 991,\n        \"sample_refresh_interval_bi_connector\": 300,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = project.Id,\n        Name = clusterName,\n        ClusterType = \"SHARDED\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 2,\n                        },\n                        ProviderName = \"AZURE\",\n                        Priority = 6,\n                        RegionName = \"US_EAST_2\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 2,\n                        },\n                        ProviderName = \"AZURE\",\n                        Priority = 6,\n                        RegionName = \"US_EAST_2\",\n                    },\n                },\n            },\n        },\n        AdvancedConfiguration = new Mongodbatlas.Inputs.AdvancedClusterAdvancedConfigurationArgs\n        {\n            JavascriptEnabled = true,\n            OplogSizeMb = 991,\n            SampleRefreshIntervalBiConnector = 300,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.Any(project.Id),\n\t\t\tName:          pulumi.Any(clusterName),\n\t\t\tClusterType:   pulumi.String(\"SHARDED\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(2),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(6),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(2),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(6),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAdvancedConfiguration: \u0026mongodbatlas.AdvancedClusterAdvancedConfigurationArgs{\n\t\t\t\tJavascriptEnabled:                pulumi.Bool(true),\n\t\t\t\tOplogSizeMb:                      pulumi.Int(991),\n\t\t\t\tSampleRefreshIntervalBiConnector: pulumi.Int(300),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterAdvancedConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new AdvancedCluster(\"this\", AdvancedClusterArgs.builder()\n            .projectId(project.id())\n            .name(clusterName)\n            .clusterType(\"SHARDED\")\n            .backupEnabled(true)\n            .replicationSpecs(            \n                AdvancedClusterReplicationSpecArgs.builder()\n                    .regionConfigs(                    \n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(3)\n                                .build())\n                            .providerName(\"AWS\")\n                            .priority(7)\n                            .regionName(\"US_EAST_1\")\n                            .build(),\n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(2)\n                                .build())\n                            .providerName(\"AZURE\")\n                            .priority(6)\n                            .regionName(\"US_EAST_2\")\n                            .build())\n                    .build(),\n                AdvancedClusterReplicationSpecArgs.builder()\n                    .regionConfigs(                    \n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(3)\n                                .build())\n                            .providerName(\"AWS\")\n                            .priority(7)\n                            .regionName(\"US_EAST_1\")\n                            .build(),\n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(2)\n                                .build())\n                            .providerName(\"AZURE\")\n                            .priority(6)\n                            .regionName(\"US_EAST_2\")\n                            .build())\n                    .build())\n            .advancedConfiguration(AdvancedClusterAdvancedConfigurationArgs.builder()\n                .javascriptEnabled(true)\n                .oplogSizeMb(991)\n                .sampleRefreshIntervalBiConnector(300)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: ${project.id}\n      name: ${clusterName}\n      clusterType: SHARDED\n      backupEnabled: true\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_1\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 2\n              providerName: AZURE\n              priority: 6\n              regionName: US_EAST_2\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_1\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 2\n              providerName: AZURE\n              priority: 6\n              regionName: US_EAST_2\n      advancedConfiguration:\n        javascriptEnabled: true\n        oplogSizeMb: 991\n        sampleRefreshIntervalBiConnector: 300\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of a Global Cluster with 2 zones\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: project.id,\n    name: clusterName,\n    clusterType: \"GEOSHARDED\",\n    backupEnabled: true,\n    replicationSpecs: [\n        {\n            zoneName: \"zone n1\",\n            regionConfigs: [\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 3,\n                    },\n                    providerName: \"AWS\",\n                    priority: 7,\n                    regionName: \"US_EAST_1\",\n                },\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 2,\n                    },\n                    providerName: \"AZURE\",\n                    priority: 6,\n                    regionName: \"US_EAST_2\",\n                },\n            ],\n        },\n        {\n            zoneName: \"zone n1\",\n            regionConfigs: [\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 3,\n                    },\n                    providerName: \"AWS\",\n                    priority: 7,\n                    regionName: \"US_EAST_1\",\n                },\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 2,\n                    },\n                    providerName: \"AZURE\",\n                    priority: 6,\n                    regionName: \"US_EAST_2\",\n                },\n            ],\n        },\n        {\n            zoneName: \"zone n2\",\n            regionConfigs: [\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 3,\n                    },\n                    providerName: \"AWS\",\n                    priority: 7,\n                    regionName: \"EU_WEST_1\",\n                },\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 2,\n                    },\n                    providerName: \"AZURE\",\n                    priority: 6,\n                    regionName: \"EUROPE_NORTH\",\n                },\n            ],\n        },\n        {\n            zoneName: \"zone n2\",\n            regionConfigs: [\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 3,\n                    },\n                    providerName: \"AWS\",\n                    priority: 7,\n                    regionName: \"EU_WEST_1\",\n                },\n                {\n                    electableSpecs: {\n                        instanceSize: \"M30\",\n                        nodeCount: 2,\n                    },\n                    providerName: \"AZURE\",\n                    priority: 6,\n                    regionName: \"EUROPE_NORTH\",\n                },\n            ],\n        },\n    ],\n    advancedConfiguration: {\n        javascriptEnabled: true,\n        oplogSizeMb: 999,\n        sampleRefreshIntervalBiConnector: 300,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=project[\"id\"],\n    name=cluster_name,\n    cluster_type=\"GEOSHARDED\",\n    backup_enabled=True,\n    replication_specs=[\n        {\n            \"zone_name\": \"zone n1\",\n            \"region_configs\": [\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 3,\n                    },\n                    \"provider_name\": \"AWS\",\n                    \"priority\": 7,\n                    \"region_name\": \"US_EAST_1\",\n                },\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 2,\n                    },\n                    \"provider_name\": \"AZURE\",\n                    \"priority\": 6,\n                    \"region_name\": \"US_EAST_2\",\n                },\n            ],\n        },\n        {\n            \"zone_name\": \"zone n1\",\n            \"region_configs\": [\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 3,\n                    },\n                    \"provider_name\": \"AWS\",\n                    \"priority\": 7,\n                    \"region_name\": \"US_EAST_1\",\n                },\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 2,\n                    },\n                    \"provider_name\": \"AZURE\",\n                    \"priority\": 6,\n                    \"region_name\": \"US_EAST_2\",\n                },\n            ],\n        },\n        {\n            \"zone_name\": \"zone n2\",\n            \"region_configs\": [\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 3,\n                    },\n                    \"provider_name\": \"AWS\",\n                    \"priority\": 7,\n                    \"region_name\": \"EU_WEST_1\",\n                },\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 2,\n                    },\n                    \"provider_name\": \"AZURE\",\n                    \"priority\": 6,\n                    \"region_name\": \"EUROPE_NORTH\",\n                },\n            ],\n        },\n        {\n            \"zone_name\": \"zone n2\",\n            \"region_configs\": [\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 3,\n                    },\n                    \"provider_name\": \"AWS\",\n                    \"priority\": 7,\n                    \"region_name\": \"EU_WEST_1\",\n                },\n                {\n                    \"electable_specs\": {\n                        \"instance_size\": \"M30\",\n                        \"node_count\": 2,\n                    },\n                    \"provider_name\": \"AZURE\",\n                    \"priority\": 6,\n                    \"region_name\": \"EUROPE_NORTH\",\n                },\n            ],\n        },\n    ],\n    advanced_configuration={\n        \"javascript_enabled\": True,\n        \"oplog_size_mb\": 999,\n        \"sample_refresh_interval_bi_connector\": 300,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = project.Id,\n        Name = clusterName,\n        ClusterType = \"GEOSHARDED\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                ZoneName = \"zone n1\",\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 2,\n                        },\n                        ProviderName = \"AZURE\",\n                        Priority = 6,\n                        RegionName = \"US_EAST_2\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                ZoneName = \"zone n1\",\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 2,\n                        },\n                        ProviderName = \"AZURE\",\n                        Priority = 6,\n                        RegionName = \"US_EAST_2\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                ZoneName = \"zone n2\",\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"EU_WEST_1\",\n                    },\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 2,\n                        },\n                        ProviderName = \"AZURE\",\n                        Priority = 6,\n                        RegionName = \"EUROPE_NORTH\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                ZoneName = \"zone n2\",\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"EU_WEST_1\",\n                    },\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 2,\n                        },\n                        ProviderName = \"AZURE\",\n                        Priority = 6,\n                        RegionName = \"EUROPE_NORTH\",\n                    },\n                },\n            },\n        },\n        AdvancedConfiguration = new Mongodbatlas.Inputs.AdvancedClusterAdvancedConfigurationArgs\n        {\n            JavascriptEnabled = true,\n            OplogSizeMb = 999,\n            SampleRefreshIntervalBiConnector = 300,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.Any(project.Id),\n\t\t\tName:          pulumi.Any(clusterName),\n\t\t\tClusterType:   pulumi.String(\"GEOSHARDED\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName: pulumi.String(\"zone n1\"),\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(2),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(6),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName: pulumi.String(\"zone n1\"),\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(2),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(6),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName: pulumi.String(\"zone n2\"),\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_WEST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(2),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(6),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EUROPE_NORTH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName: pulumi.String(\"zone n2\"),\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_WEST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(2),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(6),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EUROPE_NORTH\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAdvancedConfiguration: \u0026mongodbatlas.AdvancedClusterAdvancedConfigurationArgs{\n\t\t\t\tJavascriptEnabled:                pulumi.Bool(true),\n\t\t\t\tOplogSizeMb:                      pulumi.Int(999),\n\t\t\t\tSampleRefreshIntervalBiConnector: pulumi.Int(300),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterAdvancedConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new AdvancedCluster(\"this\", AdvancedClusterArgs.builder()\n            .projectId(project.id())\n            .name(clusterName)\n            .clusterType(\"GEOSHARDED\")\n            .backupEnabled(true)\n            .replicationSpecs(            \n                AdvancedClusterReplicationSpecArgs.builder()\n                    .zoneName(\"zone n1\")\n                    .regionConfigs(                    \n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(3)\n                                .build())\n                            .providerName(\"AWS\")\n                            .priority(7)\n                            .regionName(\"US_EAST_1\")\n                            .build(),\n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(2)\n                                .build())\n                            .providerName(\"AZURE\")\n                            .priority(6)\n                            .regionName(\"US_EAST_2\")\n                            .build())\n                    .build(),\n                AdvancedClusterReplicationSpecArgs.builder()\n                    .zoneName(\"zone n1\")\n                    .regionConfigs(                    \n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(3)\n                                .build())\n                            .providerName(\"AWS\")\n                            .priority(7)\n                            .regionName(\"US_EAST_1\")\n                            .build(),\n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(2)\n                                .build())\n                            .providerName(\"AZURE\")\n                            .priority(6)\n                            .regionName(\"US_EAST_2\")\n                            .build())\n                    .build(),\n                AdvancedClusterReplicationSpecArgs.builder()\n                    .zoneName(\"zone n2\")\n                    .regionConfigs(                    \n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(3)\n                                .build())\n                            .providerName(\"AWS\")\n                            .priority(7)\n                            .regionName(\"EU_WEST_1\")\n                            .build(),\n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(2)\n                                .build())\n                            .providerName(\"AZURE\")\n                            .priority(6)\n                            .regionName(\"EUROPE_NORTH\")\n                            .build())\n                    .build(),\n                AdvancedClusterReplicationSpecArgs.builder()\n                    .zoneName(\"zone n2\")\n                    .regionConfigs(                    \n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(3)\n                                .build())\n                            .providerName(\"AWS\")\n                            .priority(7)\n                            .regionName(\"EU_WEST_1\")\n                            .build(),\n                        AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                            .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                                .instanceSize(\"M30\")\n                                .nodeCount(2)\n                                .build())\n                            .providerName(\"AZURE\")\n                            .priority(6)\n                            .regionName(\"EUROPE_NORTH\")\n                            .build())\n                    .build())\n            .advancedConfiguration(AdvancedClusterAdvancedConfigurationArgs.builder()\n                .javascriptEnabled(true)\n                .oplogSizeMb(999)\n                .sampleRefreshIntervalBiConnector(300)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: ${project.id}\n      name: ${clusterName}\n      clusterType: GEOSHARDED\n      backupEnabled: true\n      replicationSpecs:\n        - zoneName: zone n1\n          regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_1\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 2\n              providerName: AZURE\n              priority: 6\n              regionName: US_EAST_2\n        - zoneName: zone n1\n          regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_1\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 2\n              providerName: AZURE\n              priority: 6\n              regionName: US_EAST_2\n        - zoneName: zone n2\n          regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: EU_WEST_1\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 2\n              providerName: AZURE\n              priority: 6\n              regionName: EUROPE_NORTH\n        - zoneName: zone n2\n          regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: EU_WEST_1\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 2\n              providerName: AZURE\n              priority: 6\n              regionName: EUROPE_NORTH\n      advancedConfiguration:\n        javascriptEnabled: true\n        oplogSizeMb: 999\n        sampleRefreshIntervalBiConnector: 300\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### Example - Return a Connection String\nStandard\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const standard = cluster.connectionStrings.standard;\n```\n```python\nimport pulumi\n\npulumi.export(\"standard\", cluster[\"connectionStrings\"][\"standard\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"standard\"] = cluster.ConnectionStrings.Standard,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"standard\", cluster.ConnectionStrings.Standard)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        ctx.export(\"standard\", cluster.connectionStrings().standard());\n    }\n}\n```\n```yaml\noutputs:\n  standard: ${cluster.connectionStrings.standard}\n```\n\u003c!--End PulumiCodeChooser --\u003e\nStandard srv\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const standardSrv = cluster.connectionStrings.standardSrv;\n```\n```python\nimport pulumi\n\npulumi.export(\"standardSrv\", cluster[\"connectionStrings\"][\"standardSrv\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"standardSrv\"] = cluster.ConnectionStrings.StandardSrv,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"standardSrv\", cluster.ConnectionStrings.StandardSrv)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        ctx.export(\"standardSrv\", cluster.connectionStrings().standardSrv());\n    }\n}\n```\n```yaml\noutputs:\n  standardSrv: ${cluster.connectionStrings.standardSrv}\n```\n\u003c!--End PulumiCodeChooser --\u003e\nPrivate with Network peering and Custom DNS AWS enabled\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport = async () =\u003e {\n    return {\n        \"private\": cluster.connectionStrings[\"private\"],\n    };\n}\n```\n```python\nimport pulumi\n\npulumi.export(\"private\", cluster[\"connectionStrings\"][\"private\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"private\"] = cluster.ConnectionStrings.Private,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"private\", cluster.ConnectionStrings.Private)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        ctx.export(\"private\", cluster.connectionStrings().private());\n    }\n}\n```\n```yaml\noutputs:\n  private: ${cluster.connectionStrings.private}\n```\n\u003c!--End PulumiCodeChooser --\u003e\nPrivate srv with Network peering and Custom DNS AWS enabled\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const privateSrv = cluster.connectionStrings.privateSrv;\n```\n```python\nimport pulumi\n\npulumi.export(\"privateSrv\", cluster[\"connectionStrings\"][\"privateSrv\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privateSrv\"] = cluster.ConnectionStrings.PrivateSrv,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"privateSrv\", cluster.ConnectionStrings.PrivateSrv)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        ctx.export(\"privateSrv\", cluster.connectionStrings().privateSrv());\n    }\n}\n```\n```yaml\noutputs:\n  privateSrv: ${cluster.connectionStrings.privateSrv}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nBy\u003cspan pulumi-lang-nodejs=\" endpointServiceId\n\" pulumi-lang-dotnet=\" EndpointServiceId\n\" pulumi-lang-go=\" endpointServiceId\n\" pulumi-lang-python=\" endpoint_service_id\n\" pulumi-lang-yaml=\" endpointServiceId\n\" pulumi-lang-java=\" endpointServiceId\n\"\u003e endpoint_service_id\n\u003c/span\u003e```terraform\nlocals {\n  endpoint_service_id = google_compute_network.default.name\n  private_endpoints   = coalesce(mongodbatlas_advanced_cluster.cluster.connection_strings.private_endpoint, [])\n  connection_strings = [\n    for pe in local.private_endpoints : pe.srv_connection_string\n    if contains([for e in pe.endpoints : e.endpoint_id], local.endpoint_service_id)\n  ]\n}\noutput \"endpoint_service_connection_string\" {\n  value = length(local.connection_strings) \u003e 0 ? local.connection_strings[0] : \"\"\n}\n# Example return string: connection_string = \"mongodb+srv://cluster-atlas-pl-0.ygo1m.mongodb.net\"\n```\nRefer to the following for full privatelink endpoint connection string examples:\n* GCP Private Endpoint (Port-Mapped Architecture)\n* Azure Private Endpoint\n* AWS, Private Endpoint\n* AWS, Regionalized Private Endpoints\n\n\n### Further Examples\n\n**Cluster Types:**\n- Replicaset\n- Symmetric Sharded Cluster\n- Asymmetric Sharded Cluster\n- Global Cluster\n- Multi-Cloud\n\n**Auto-scaling:**\n- Auto-Scaling Per Shard\n- Effective Fields Examples\n\n**Upgrades \u0026 Migrations:**\n- Tenant Upgrade\n- Flex Upgrade\n- Version Upgrade with Pinned FCV\n- Migrate Cluster to Advanced Cluster\n\n## Move\n\n`mongodbatlas__cluster` resources can be moved to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e in Terraform v1.8 and later, e.g.: \n\n```terraform\nmoved {\n  from = mongodbatlas_cluster.cluster\n  to   = mongodbatlas_advanced_cluster.cluster\n}\n```\n\nMore information about moving resources can be found in our Migration Guide and in the Terraform documentation here and here.\n\n## Auto-Scaling with Effective Fields\n\nThe \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e attribute enhances auto-scaling workflows by eliminating the need for `lifecycle.ignore_changes` blocks and providing visibility into Atlas-managed changes. This feature only applies to dedicated clusters (M10+) and is not supported for flex and tenant clusters.\n\n### Why use_effective_fields?\n\nWhen auto-scaling is enabled on a cluster, Atlas automatically adjusts instance sizes and disk capacity based on workload. Without \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e, `lifecycle.ignore_changes` blocks are required to prevent Terraform from reverting these Atlas-managed changes. This approach has limitations:\n\n- **Configuration drift**: The actual cluster configuration diverges from your Terraform configuration\n- **Maintenance overhead**: Careful management of \u003cspan pulumi-lang-nodejs=\"`ignoreChanges`\" pulumi-lang-dotnet=\"`IgnoreChanges`\" pulumi-lang-go=\"`ignoreChanges`\" pulumi-lang-python=\"`ignore_changes`\" pulumi-lang-yaml=\"`ignoreChanges`\" pulumi-lang-java=\"`ignoreChanges`\"\u003e`ignore_changes`\u003c/span\u003e blocks is required, including commenting and uncommenting when making intentional changes\n- **Limited visibility**: Actual scaled values cannot be easily inspected within Terraform state\n\n### How\u003cspan pulumi-lang-nodejs=\" useEffectiveFields \" pulumi-lang-dotnet=\" UseEffectiveFields \" pulumi-lang-go=\" useEffectiveFields \" pulumi-lang-python=\" use_effective_fields \" pulumi-lang-yaml=\" useEffectiveFields \" pulumi-lang-java=\" useEffectiveFields \"\u003e use_effective_fields \u003c/span\u003eworks\n\nThe \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e attribute changes how the provider handles specification attributes:\n\n**When \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields \" pulumi-lang-dotnet=\"`UseEffectiveFields \" pulumi-lang-go=\"`useEffectiveFields \" pulumi-lang-python=\"`use_effective_fields \" pulumi-lang-yaml=\"`useEffectiveFields \" pulumi-lang-java=\"`useEffectiveFields \"\u003e`use_effective_fields \u003c/span\u003e= false` (default - current behavior):**\n- Spec attributes (\u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e) behavior:\n  - If values are specified in your Terraform configuration (e.g., \u003cspan pulumi-lang-nodejs=\"`instanceSize \" pulumi-lang-dotnet=\"`InstanceSize \" pulumi-lang-go=\"`instanceSize \" pulumi-lang-python=\"`instance_size \" pulumi-lang-yaml=\"`instanceSize \" pulumi-lang-java=\"`instanceSize \"\u003e`instance_size \u003c/span\u003e= \"M10\"`), those values remain in your configuration\n  - If values are not specified, Atlas provides default values automatically\n- With auto-scaling enabled, Atlas scales your cluster but your configured values do not update to match\n- This creates plan drift: Terraform shows differences between your configured values and what Atlas has actually deployed\n- `lifecycle.ignore_changes` must be used to prevent Terraform from reverting Atlas auto-scaling changes back to your original configuration\n\n**When \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields \" pulumi-lang-dotnet=\"`UseEffectiveFields \" pulumi-lang-go=\"`useEffectiveFields \" pulumi-lang-python=\"`use_effective_fields \" pulumi-lang-yaml=\"`useEffectiveFields \" pulumi-lang-java=\"`useEffectiveFields \"\u003e`use_effective_fields \u003c/span\u003e= true` (new behavior):**\n- **Clear separation of concerns**:\n  - Spec attributes remain exactly as defined in your Terraform configuration\n  - Atlas-computed values (defaults and auto-scaled values) are available separately in effective specs\n- No plan drift occurs when Atlas auto-scales your cluster\n- Use data sources to read \u003cspan pulumi-lang-nodejs=\"`effectiveElectableSpecs`\" pulumi-lang-dotnet=\"`EffectiveElectableSpecs`\" pulumi-lang-go=\"`effectiveElectableSpecs`\" pulumi-lang-python=\"`effective_electable_specs`\" pulumi-lang-yaml=\"`effectiveElectableSpecs`\" pulumi-lang-java=\"`effectiveElectableSpecs`\"\u003e`effective_electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`effectiveAnalyticsSpecs`\" pulumi-lang-dotnet=\"`EffectiveAnalyticsSpecs`\" pulumi-lang-go=\"`effectiveAnalyticsSpecs`\" pulumi-lang-python=\"`effective_analytics_specs`\" pulumi-lang-yaml=\"`effectiveAnalyticsSpecs`\" pulumi-lang-java=\"`effectiveAnalyticsSpecs`\"\u003e`effective_analytics_specs`\u003c/span\u003e, and \u003cspan pulumi-lang-nodejs=\"`effectiveReadOnlySpecs`\" pulumi-lang-dotnet=\"`EffectiveReadOnlySpecs`\" pulumi-lang-go=\"`effectiveReadOnlySpecs`\" pulumi-lang-python=\"`effective_read_only_specs`\" pulumi-lang-yaml=\"`effectiveReadOnlySpecs`\" pulumi-lang-java=\"`effectiveReadOnlySpecs`\"\u003e`effective_read_only_specs`\u003c/span\u003e for actual values\n\n**Key difference:** With \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields \" pulumi-lang-dotnet=\"`UseEffectiveFields \" pulumi-lang-go=\"`useEffectiveFields \" pulumi-lang-python=\"`use_effective_fields \" pulumi-lang-yaml=\"`useEffectiveFields \" pulumi-lang-java=\"`useEffectiveFields \"\u003e`use_effective_fields \u003c/span\u003e= true`, your configuration stays clean and represents your intent, while effective specs show the reality of what Atlas has provisioned.\n\nSee the Example using effective fields with auto-scaling in the Example Usage section.\n\n### Manually Updating Specs with\u003cspan pulumi-lang-nodejs=\" useEffectiveFields\n\" pulumi-lang-dotnet=\" UseEffectiveFields\n\" pulumi-lang-go=\" useEffectiveFields\n\" pulumi-lang-python=\" use_effective_fields\n\" pulumi-lang-yaml=\" useEffectiveFields\n\" pulumi-lang-java=\" useEffectiveFields\n\"\u003e use_effective_fields\n\u003c/span\u003e\nWhen \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields \" pulumi-lang-dotnet=\"`UseEffectiveFields \" pulumi-lang-go=\"`useEffectiveFields \" pulumi-lang-python=\"`use_effective_fields \" pulumi-lang-yaml=\"`useEffectiveFields \" pulumi-lang-java=\"`useEffectiveFields \"\u003e`use_effective_fields \u003c/span\u003e= true` and auto-scaling is enabled, you can update \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e in your configuration at any time without validation errors. However, Atlas echoes these values back in state while continuing to use auto-scaled values for actual cluster operations. To have your configured values take effect, temporarily disable auto-scaling:\n\n1. Set \u003cspan pulumi-lang-nodejs=\"`computeEnabled \" pulumi-lang-dotnet=\"`ComputeEnabled \" pulumi-lang-go=\"`computeEnabled \" pulumi-lang-python=\"`compute_enabled \" pulumi-lang-yaml=\"`computeEnabled \" pulumi-lang-java=\"`computeEnabled \"\u003e`compute_enabled \u003c/span\u003e= false` and \u003cspan pulumi-lang-nodejs=\"`diskGbEnabled \" pulumi-lang-dotnet=\"`DiskGbEnabled \" pulumi-lang-go=\"`diskGbEnabled \" pulumi-lang-python=\"`disk_gb_enabled \" pulumi-lang-yaml=\"`diskGbEnabled \" pulumi-lang-java=\"`diskGbEnabled \"\u003e`disk_gb_enabled \u003c/span\u003e= false` in the \u003cspan pulumi-lang-nodejs=\"`autoScaling`\" pulumi-lang-dotnet=\"`AutoScaling`\" pulumi-lang-go=\"`autoScaling`\" pulumi-lang-python=\"`auto_scaling`\" pulumi-lang-yaml=\"`autoScaling`\" pulumi-lang-java=\"`autoScaling`\"\u003e`auto_scaling`\u003c/span\u003e block, update \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e to your desired values, and apply.\n2. Re-enable auto-scaling by setting \u003cspan pulumi-lang-nodejs=\"`computeEnabled`\" pulumi-lang-dotnet=\"`ComputeEnabled`\" pulumi-lang-go=\"`computeEnabled`\" pulumi-lang-python=\"`compute_enabled`\" pulumi-lang-yaml=\"`computeEnabled`\" pulumi-lang-java=\"`computeEnabled`\"\u003e`compute_enabled`\u003c/span\u003e and/or \u003cspan pulumi-lang-nodejs=\"`diskGbEnabled`\" pulumi-lang-dotnet=\"`DiskGbEnabled`\" pulumi-lang-go=\"`diskGbEnabled`\" pulumi-lang-python=\"`disk_gb_enabled`\" pulumi-lang-yaml=\"`diskGbEnabled`\" pulumi-lang-java=\"`diskGbEnabled`\"\u003e`disk_gb_enabled`\u003c/span\u003e back to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and apply.\n\nThis workflow allows you to set specific baseline values from which auto-scaling will resume dynamic adjustments based on workload.\n\n### Terraform Modules\n\n\u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e is particularly valuable for reusable Terraform modules. Without it, separate module implementations are required (one with lifecycle blocks for auto-scaling, one without). With \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e, a single module handles both scenarios without lifecycle blocks. See the Effective Fields Examples for complete implementations.\n\n### Migration path and version 3.x\n\n**Current behavior (provider v2.x):**\n- \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e for full backward compatibility\n- Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to opt into the effective fields behavior\n- The attribute will be deprecated later in v2.x releases in preparation for v3.x\n\n**Future behavior (provider v3.x):**\n- The effective fields behavior will be enabled by default\n- The \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields`\" pulumi-lang-dotnet=\"`UseEffectiveFields`\" pulumi-lang-go=\"`useEffectiveFields`\" pulumi-lang-python=\"`use_effective_fields`\" pulumi-lang-yaml=\"`useEffectiveFields`\" pulumi-lang-java=\"`useEffectiveFields`\"\u003e`use_effective_fields`\u003c/span\u003e attribute will be removed, as the new behavior becomes standard\n- This change will reduce plan verbosity by making specification fields Optional-only (removing Computed), eliminating unnecessary `(known after apply)` markers for user-configured values\n\n**Potential enhancements (v3.x or later):**\n- If customer demand warrants, effective spec fields (\u003cspan pulumi-lang-nodejs=\"`effectiveElectableSpecs`\" pulumi-lang-dotnet=\"`EffectiveElectableSpecs`\" pulumi-lang-go=\"`effectiveElectableSpecs`\" pulumi-lang-python=\"`effective_electable_specs`\" pulumi-lang-yaml=\"`effectiveElectableSpecs`\" pulumi-lang-java=\"`effectiveElectableSpecs`\"\u003e`effective_electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`effectiveAnalyticsSpecs`\" pulumi-lang-dotnet=\"`EffectiveAnalyticsSpecs`\" pulumi-lang-go=\"`effectiveAnalyticsSpecs`\" pulumi-lang-python=\"`effective_analytics_specs`\" pulumi-lang-yaml=\"`effectiveAnalyticsSpecs`\" pulumi-lang-java=\"`effectiveAnalyticsSpecs`\"\u003e`effective_analytics_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`effectiveReadOnlySpecs`\" pulumi-lang-dotnet=\"`EffectiveReadOnlySpecs`\" pulumi-lang-go=\"`effectiveReadOnlySpecs`\" pulumi-lang-python=\"`effective_read_only_specs`\" pulumi-lang-yaml=\"`effectiveReadOnlySpecs`\" pulumi-lang-java=\"`effectiveReadOnlySpecs`\"\u003e`effective_read_only_specs`\u003c/span\u003e) may be exposed directly in the resource (currently available only via data source)\n- This would improve observability by providing direct access to actual operational values from the resource without requiring a separate data source\n- Note: Effective fields would still show `(known after apply)` markers, but user-configured spec fields would not, resulting in clearer plan output overall\n\n**Migration recommendation:** Adopt \u003cspan pulumi-lang-nodejs=\"`useEffectiveFields \" pulumi-lang-dotnet=\"`UseEffectiveFields \" pulumi-lang-go=\"`useEffectiveFields \" pulumi-lang-python=\"`use_effective_fields \" pulumi-lang-yaml=\"`useEffectiveFields \" pulumi-lang-java=\"`useEffectiveFields \"\u003e`use_effective_fields \u003c/span\u003e= true` in v2.x to prepare for the v3.x transition and benefit from improved auto-scaling workflows immediately. The recommendation is to toggle the flag and remove any existing `lifecycle.ignore_changes` blocks in the same apply, without combining other changes.\n\n## Considerations and Best Practices\n\n## Import\n\nClusters can be imported using project ID and cluster name, in the format `PROJECTID-CLUSTERNAME`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/advancedCluster:AdvancedCluster my_cluster 1112222b3bf99403840e8934-Cluster0\n```\n\nSee detailed information for arguments and attributes: [MongoDB API Advanced Clusters](https://docs.atlas.mongodb.com/reference/api/cluster-advanced/create-one-cluster-advanced/)\n\n\u003e **IMPORTANT:**\n\u003cbr\u003e \u0026#8226; When a cluster is imported, the resulting schema structure will always return the new schema including \u003cspan pulumi-lang-nodejs=\"`replicationSpecs`\" pulumi-lang-dotnet=\"`ReplicationSpecs`\" pulumi-lang-go=\"`replicationSpecs`\" pulumi-lang-python=\"`replication_specs`\" pulumi-lang-yaml=\"`replicationSpecs`\" pulumi-lang-java=\"`replicationSpecs`\"\u003e`replication_specs`\u003c/span\u003e per independent shards of the cluster.\n\n","properties":{"acceptDataRisksAndForceReplicaSetReconfig":{"type":"string","description":"If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set \u003cspan pulumi-lang-nodejs=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-dotnet=\"`AcceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-go=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-python=\"`accept_data_risks_and_force_replica_set_reconfig`\" pulumi-lang-yaml=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-java=\"`acceptDataRisksAndForceReplicaSetReconfig`\"\u003e`accept_data_risks_and_force_replica_set_reconfig`\u003c/span\u003e to the current date. Learn more about Reconfiguring a Replica Set during a regional outage [here](https://dochub.mongodb.org/core/regional-outage-reconfigure-replica-set).\n"},"advancedConfiguration":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterAdvancedConfiguration:AdvancedClusterAdvancedConfiguration","description":"Additional settings for an Atlas cluster."},"backupEnabled":{"type":"boolean","description":"Flag that indicates whether the cluster can perform backups.\nIf \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the cluster can perform backups. You must set this value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e for NVMe clusters.\n\nBackup uses:\n[Cloud Backup](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/#std-label-backup-cloud-provider) for dedicated clusters.\n[Flex Cluster Backup](https://www.mongodb.com/docs/atlas/backup/cloud-backup/flex-cluster-backup/) for flex clusters.\nIf \"\u003cspan pulumi-lang-nodejs=\"`backupEnabled`\" pulumi-lang-dotnet=\"`BackupEnabled`\" pulumi-lang-go=\"`backupEnabled`\" pulumi-lang-python=\"`backup_enabled`\" pulumi-lang-yaml=\"`backupEnabled`\" pulumi-lang-java=\"`backupEnabled`\"\u003e`backup_enabled`\u003c/span\u003e\"  is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (default), the cluster doesn't use Atlas backups.\n\n\u003e **NOTE:** If you have a Backup Compliance Policy enabled for the project, you can't disable Cloud Backup without assistance from [MongoDB Support](https://www.mongodb.com/docs/atlas/support/#request-support).\n"},"biConnectorConfig":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterBiConnectorConfig:AdvancedClusterBiConnectorConfig","description":"Configuration settings applied to BI Connector for Atlas on this cluster. The MongoDB Connector for Business Intelligence for Atlas (BI Connector) is only available for M10 and larger clusters. The BI Connector is a powerful tool which provides users SQL-based access to their MongoDB databases. As a result, the BI Connector performs operations which may be CPU and memory intensive. Given the limited hardware resources on M10 and M20 cluster tiers, you may experience performance degradation of the cluster when enabling the BI Connector. If this occurs, upgrade to an M30 or larger cluster or disable the BI Connector. See below.\n"},"clusterId":{"type":"string","description":"The cluster ID.\n"},"clusterType":{"type":"string","description":"Type of the cluster that you want to create.\nAccepted values include:\n- `REPLICASET` Replica set\n- `SHARDED`\tSharded cluster\n- `GEOSHARDED` Global Cluster\n"},"configServerManagementMode":{"type":"string","description":"Config Server Management Mode for creating or updating a sharded cluster. Valid values are `ATLAS_MANAGED` (default) and `FIXED_TO_DEDICATED`. When configured as `ATLAS_MANAGED`, Atlas may automatically switch the cluster's config server type for optimal performance and savings. When configured as `FIXED_TO_DEDICATED`, the cluster will always use a dedicated config server. To learn more, see the [Sharded Cluster Config Servers documentation](https://dochub.mongodb.org/docs/manual/core/sharded-cluster-config-servers/).\n"},"configServerType":{"type":"string","description":"Describes a sharded cluster's config server type. Valid values are `DEDICATED` and `EMBEDDED`. To learn more, see the [Sharded Cluster Config Servers documentation](https://dochub.mongodb.org/docs/manual/core/sharded-cluster-config-servers/).\n"},"connectionStrings":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterConnectionStrings:AdvancedClusterConnectionStrings","description":"Set of connection strings that your applications use to connect to this cluster. More information in [Connection-strings](https://docs.mongodb.com/manual/reference/connection-string/). Use the parameters in this object to connect your applications to this cluster. To learn more about the formats of connection strings, see [Connection String Options](https://docs.atlas.mongodb.com/reference/faq/connection-changes/). NOTE: Atlas returns the contents of this object after the cluster is operational, not while it builds the cluster.\n"},"createDate":{"type":"string","description":"Date and time when MongoDB Cloud created this cluster. This parameter expresses its value in ISO 8601 format in UTC."},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"encryptionAtRestProvider":{"type":"string","description":"Possible values are AWS, GCP, AZURE or NONE.  Only needed if you desire to manage the keys, see [Encryption at Rest using Customer Key Management](https://docs.atlas.mongodb.com/security-kms-encryption/) for complete documentation.  You must configure encryption at rest for the Atlas project before enabling it on any cluster in the project. For Documentation, see [AWS](https://docs.atlas.mongodb.com/security-aws-kms/), [GCP](https://docs.atlas.mongodb.com/security-kms-encryption/) and [Azure](https://docs.atlas.mongodb.com/security-azure-kms/#std-label-security-azure-kms). Requirements are if `replication_specs[#].region_configs[#].\u003ctype\u003eSpecs.instance_size` is M10 or greater and \u003cspan pulumi-lang-nodejs=\"`backupEnabled`\" pulumi-lang-dotnet=\"`BackupEnabled`\" pulumi-lang-go=\"`backupEnabled`\" pulumi-lang-python=\"`backup_enabled`\" pulumi-lang-yaml=\"`backupEnabled`\" pulumi-lang-java=\"`backupEnabled`\"\u003e`backup_enabled`\u003c/span\u003e is false or omitted.\n"},"globalClusterSelfManagedSharding":{"type":"boolean","description":"Flag that indicates if cluster uses Atlas-Managed Sharding (false, default) or Self-Managed Sharding (true). It can only be enabled for Global Clusters (`GEOSHARDED`). It cannot be changed once the cluster is created. Use this mode if you're an advanced user and the default configuration is too restrictive for your workload. If you select this option, you must manually configure the sharding strategy, more information [here](https://www.mongodb.com/docs/atlas/tutorial/create-global-cluster/#select-your-sharding-configuration).\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e instead.\n"},"mongoDbMajorVersion":{"type":"string","description":"Version of the cluster to deploy. Atlas supports all the MongoDB versions that have **not** reached [End of Live](https://www.mongodb.com/legal/support-policy/lifecycles) for M10+ clusters. If omitted, Atlas deploys the cluster with the default version. For more details, see [documentation](https://www.mongodb.com/docs/atlas/reference/faq/database/#which-versions-of-mongodb-do-service-clusters-use-). Atlas always deploys the cluster with the latest stable release of the specified version.  If you set a value to this parameter and set \u003cspan pulumi-lang-nodejs=\"`versionReleaseSystem`\" pulumi-lang-dotnet=\"`VersionReleaseSystem`\" pulumi-lang-go=\"`versionReleaseSystem`\" pulumi-lang-python=\"`version_release_system`\" pulumi-lang-yaml=\"`versionReleaseSystem`\" pulumi-lang-java=\"`versionReleaseSystem`\"\u003e`version_release_system`\u003c/span\u003e `CONTINUOUS`, the resource returns an error. Either clear this parameter or set \u003cspan pulumi-lang-nodejs=\"`versionReleaseSystem`\" pulumi-lang-dotnet=\"`VersionReleaseSystem`\" pulumi-lang-go=\"`versionReleaseSystem`\" pulumi-lang-python=\"`version_release_system`\" pulumi-lang-yaml=\"`versionReleaseSystem`\" pulumi-lang-java=\"`versionReleaseSystem`\"\u003e`version_release_system`\u003c/span\u003e: `LTS`.\n"},"mongoDbVersion":{"type":"string","description":"Version of MongoDB the cluster runs, in `major-version`.`minor-version` format.\n"},"name":{"type":"string","description":"Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed. **WARNING** Changing the name will result in destruction of the existing cluster and the creation of a new cluster.\n"},"paused":{"type":"boolean","description":"Flag that indicates whether the cluster is paused or not. You can pause M10 or larger clusters.  You cannot initiate pausing for a shared/tenant tier cluster. If you try to update a \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e cluster you will get a `CANNOT_UPDATE_PAUSED_CLUSTER` error. See [Considerations for Paused Clusters](https://docs.atlas.mongodb.com/pause-terminate-cluster/#considerations-for-paused-clusters).\n**NOTE** Pause lasts for up to 30 days. If you don't resume the cluster within 30 days, Atlas resumes the cluster.  When the cluster resumption happens Terraform will flag the changed state.  If you wish to keep the cluster paused, reapply your Terraform configuration.   If you prefer to allow the automated change of state to unpaused use:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= [paused]\n}`\n"},"pinnedFcv":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterPinnedFcv:AdvancedClusterPinnedFcv","description":"Pins the Feature Compatibility Version (FCV) to the current MongoDB version with a provided expiration date. To unpin the FCV the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. This operation can take several minutes as the request processes through the MongoDB data plane. Once FCV is unpinned it will not be possible to downgrade the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e. It is advised that updates to \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e are done isolated from other cluster changes. If a plan contains multiple changes, the FCV change will be applied first. If FCV is unpinned past the expiration date the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. The following [knowledge hub article](https://kb.corp.mongodb.com/article/000021785/) and [FCV documentation](https://www.mongodb.com/docs/atlas/tutorial/major-version-change/#manage-feature-compatibility--fcv--during-upgrades) can be referenced for more details. See below.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates if the cluster uses Continuous Cloud Backup.\n"},"projectId":{"type":"string","description":"Unique ID for the project to create the cluster. \n\n\u003e **NOTE:** Groups and projects are synonymous terms. You might find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n"},"redactClientLogData":{"type":"boolean","description":"Flag that enables or disables log redaction, see the [manual](https://www.mongodb.com/docs/manual/administration/monitoring/#log-redaction) for more information. Use this in conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements. **Note**: Changing this setting on a cluster will trigger a rolling restart as soon as the cluster is updated.\n"},"replicaSetScalingStrategy":{"type":"string","description":"Replica set scaling mode for your cluster. Valid values are `WORKLOAD_TYPE`, `SEQUENTIAL` and `NODE_TYPE`. By default, Atlas scales under `WORKLOAD_TYPE`. This mode allows Atlas to scale your analytics nodes in parallel to your operational nodes. When configured as `SEQUENTIAL`, Atlas scales all nodes sequentially. This mode is intended for steady-state workloads and applications performing latency-sensitive secondary reads. When configured as `NODE_TYPE`, Atlas scales your electable nodes in parallel with your read-only and analytics nodes. This mode is intended for large, dynamic workloads requiring frequent and timely cluster tier scaling. This is the fastest scaling strategy, but it might impact latency of workloads when performing extensive secondary reads. [Modify the Replica Set Scaling Mode](https://dochub.mongodb.org/core/scale-nodes)\n"},"replicationSpecs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterReplicationSpec:AdvancedClusterReplicationSpec"},"description":"List of settings that configure your cluster regions. This attribute has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations. The \u003cspan pulumi-lang-nodejs=\"`replicationSpecs`\" pulumi-lang-dotnet=\"`ReplicationSpecs`\" pulumi-lang-go=\"`replicationSpecs`\" pulumi-lang-python=\"`replication_specs`\" pulumi-lang-yaml=\"`replicationSpecs`\" pulumi-lang-java=\"`replicationSpecs`\"\u003e`replication_specs`\u003c/span\u003e configuration for all shards within the same zone must be the same, with the exception of \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e that can scale independently. Note that independent \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e values are only supported for AWS provisioned IOPS, or Azure regions that support Extended IOPS. See below.\n"},"retainBackupsEnabled":{"type":"boolean","description":"Set to true to retain backup snapshots for the deleted cluster. This parameter applies to the Delete operation and only affects M10 and above clusters. To delete an Atlas cluster that has an associated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource and an enabled Backup Compliance Policy, see Delete a Cluster with a Backup Compliance Policy.\n\n\u003e **NOTE** Prior version of provider had parameter as \u003cspan pulumi-lang-nodejs=\"`biConnector`\" pulumi-lang-dotnet=\"`BiConnector`\" pulumi-lang-go=\"`biConnector`\" pulumi-lang-python=\"`bi_connector`\" pulumi-lang-yaml=\"`biConnector`\" pulumi-lang-java=\"`biConnector`\"\u003e`bi_connector`\u003c/span\u003e state will migrate it to new value you only need to update parameter in your terraform file\n"},"rootCertType":{"type":"string","description":"Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1).\n"},"stateName":{"type":"string","description":"Current state of the cluster. The possible states are:\n- IDLE\n- CREATING\n- UPDATING\n- DELETING\n- DELETED\n- REPAIRING\n* `replication_specs[#].container_id` - A key-value map of the Network Peering Container ID(s) for the configuration specified in \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e. The Container ID is the id of the container created when the first cluster in the region (AWS/Azure) or project (GCP) was created.  The syntax is `\"providerName:regionName\" = \"containerId\"`. Example `AWS:US_EAST_1\" = \"61e0797dde08fb498ca11a71`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterTimeouts:AdvancedClusterTimeouts","description":")\n"},"useAwsTimeBasedSnapshotCopyForFastInitialSync":{"type":"boolean","description":"Flag that indicates whether time-based snapshot copies will be used instead of slower standard snapshot copies during fast Atlas cross-region initial syncs. This flag is only relevant for clusters containing AWS nodes.\n"},"useEffectiveFields":{"type":"boolean","description":"Controls how hardware specification fields are returned in the response. When set to true, the non-effective specs (\u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e) fields return the hardware specifications that the client provided. When set to false (default), the non-effective specs fields show the **current** hardware specifications. Cluster auto-scaling is the primary cause for differences between initial and current hardware specifications. This opt-in feature enhances auto-scaling workflows by eliminating the need for `lifecycle.ignore_changes` blocks and preventing plan drift from Atlas-managed changes. This attribute applies to dedicated clusters, not to tenant or flex clusters. This attribute will be deprecated in provider version 2.x and removed in 3.x when the new behavior becomes default. See Auto-Scaling with Effective Fields for more details.\n**Important:** Toggle this flag and remove any existing `lifecycle.ignore_changes` blocks for spec fields in the same apply, without combining other changes. Toggling will result in increased plan verbosity with `(known after apply)` markers, which can be safely ignored. If you previously removed \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e attributes from your configuration, you'll get a validation error for safety reasons to prevent accidental node loss. To resolve: add the blocks back (to keep nodes) or with \u003cspan pulumi-lang-nodejs=\"`nodeCount \" pulumi-lang-dotnet=\"`NodeCount \" pulumi-lang-go=\"`nodeCount \" pulumi-lang-python=\"`node_count \" pulumi-lang-yaml=\"`nodeCount \" pulumi-lang-java=\"`nodeCount \"\u003e`node_count \u003c/span\u003e= 0` (to delete nodes), apply without toggling the flag, then toggle in a separate apply.\n"},"versionReleaseSystem":{"type":"string","description":"Release cadence that Atlas uses for this cluster. This parameter defaults to `LTS`. If you set this field to `CONTINUOUS`, you must omit the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e field. Atlas accepts:\n- `CONTINUOUS`:  Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.\n- `LTS`: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in the mongoDBMajorVersion field. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.\n"}},"required":["advancedConfiguration","backupEnabled","biConnectorConfig","clusterId","clusterType","configServerManagementMode","configServerType","connectionStrings","createDate","deleteOnCreateTimeout","encryptionAtRestProvider","globalClusterSelfManagedSharding","mongoDbMajorVersion","mongoDbVersion","name","paused","pitEnabled","projectId","redactClientLogData","replicaSetScalingStrategy","replicationSpecs","rootCertType","stateName","terminationProtectionEnabled","useAwsTimeBasedSnapshotCopyForFastInitialSync","versionReleaseSystem"],"inputProperties":{"acceptDataRisksAndForceReplicaSetReconfig":{"type":"string","description":"If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set \u003cspan pulumi-lang-nodejs=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-dotnet=\"`AcceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-go=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-python=\"`accept_data_risks_and_force_replica_set_reconfig`\" pulumi-lang-yaml=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-java=\"`acceptDataRisksAndForceReplicaSetReconfig`\"\u003e`accept_data_risks_and_force_replica_set_reconfig`\u003c/span\u003e to the current date. Learn more about Reconfiguring a Replica Set during a regional outage [here](https://dochub.mongodb.org/core/regional-outage-reconfigure-replica-set).\n"},"advancedConfiguration":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterAdvancedConfiguration:AdvancedClusterAdvancedConfiguration","description":"Additional settings for an Atlas cluster."},"backupEnabled":{"type":"boolean","description":"Flag that indicates whether the cluster can perform backups.\nIf \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the cluster can perform backups. You must set this value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e for NVMe clusters.\n\nBackup uses:\n[Cloud Backup](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/#std-label-backup-cloud-provider) for dedicated clusters.\n[Flex Cluster Backup](https://www.mongodb.com/docs/atlas/backup/cloud-backup/flex-cluster-backup/) for flex clusters.\nIf \"\u003cspan pulumi-lang-nodejs=\"`backupEnabled`\" pulumi-lang-dotnet=\"`BackupEnabled`\" pulumi-lang-go=\"`backupEnabled`\" pulumi-lang-python=\"`backup_enabled`\" pulumi-lang-yaml=\"`backupEnabled`\" pulumi-lang-java=\"`backupEnabled`\"\u003e`backup_enabled`\u003c/span\u003e\"  is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (default), the cluster doesn't use Atlas backups.\n\n\u003e **NOTE:** If you have a Backup Compliance Policy enabled for the project, you can't disable Cloud Backup without assistance from [MongoDB Support](https://www.mongodb.com/docs/atlas/support/#request-support).\n"},"biConnectorConfig":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterBiConnectorConfig:AdvancedClusterBiConnectorConfig","description":"Configuration settings applied to BI Connector for Atlas on this cluster. The MongoDB Connector for Business Intelligence for Atlas (BI Connector) is only available for M10 and larger clusters. The BI Connector is a powerful tool which provides users SQL-based access to their MongoDB databases. As a result, the BI Connector performs operations which may be CPU and memory intensive. Given the limited hardware resources on M10 and M20 cluster tiers, you may experience performance degradation of the cluster when enabling the BI Connector. If this occurs, upgrade to an M30 or larger cluster or disable the BI Connector. See below.\n"},"clusterType":{"type":"string","description":"Type of the cluster that you want to create.\nAccepted values include:\n- `REPLICASET` Replica set\n- `SHARDED`\tSharded cluster\n- `GEOSHARDED` Global Cluster\n"},"configServerManagementMode":{"type":"string","description":"Config Server Management Mode for creating or updating a sharded cluster. Valid values are `ATLAS_MANAGED` (default) and `FIXED_TO_DEDICATED`. When configured as `ATLAS_MANAGED`, Atlas may automatically switch the cluster's config server type for optimal performance and savings. When configured as `FIXED_TO_DEDICATED`, the cluster will always use a dedicated config server. To learn more, see the [Sharded Cluster Config Servers documentation](https://dochub.mongodb.org/docs/manual/core/sharded-cluster-config-servers/).\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"encryptionAtRestProvider":{"type":"string","description":"Possible values are AWS, GCP, AZURE or NONE.  Only needed if you desire to manage the keys, see [Encryption at Rest using Customer Key Management](https://docs.atlas.mongodb.com/security-kms-encryption/) for complete documentation.  You must configure encryption at rest for the Atlas project before enabling it on any cluster in the project. For Documentation, see [AWS](https://docs.atlas.mongodb.com/security-aws-kms/), [GCP](https://docs.atlas.mongodb.com/security-kms-encryption/) and [Azure](https://docs.atlas.mongodb.com/security-azure-kms/#std-label-security-azure-kms). Requirements are if `replication_specs[#].region_configs[#].\u003ctype\u003eSpecs.instance_size` is M10 or greater and \u003cspan pulumi-lang-nodejs=\"`backupEnabled`\" pulumi-lang-dotnet=\"`BackupEnabled`\" pulumi-lang-go=\"`backupEnabled`\" pulumi-lang-python=\"`backup_enabled`\" pulumi-lang-yaml=\"`backupEnabled`\" pulumi-lang-java=\"`backupEnabled`\"\u003e`backup_enabled`\u003c/span\u003e is false or omitted.\n"},"globalClusterSelfManagedSharding":{"type":"boolean","description":"Flag that indicates if cluster uses Atlas-Managed Sharding (false, default) or Self-Managed Sharding (true). It can only be enabled for Global Clusters (`GEOSHARDED`). It cannot be changed once the cluster is created. Use this mode if you're an advanced user and the default configuration is too restrictive for your workload. If you select this option, you must manually configure the sharding strategy, more information [here](https://www.mongodb.com/docs/atlas/tutorial/create-global-cluster/#select-your-sharding-configuration).\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e instead.\n"},"mongoDbMajorVersion":{"type":"string","description":"Version of the cluster to deploy. Atlas supports all the MongoDB versions that have **not** reached [End of Live](https://www.mongodb.com/legal/support-policy/lifecycles) for M10+ clusters. If omitted, Atlas deploys the cluster with the default version. For more details, see [documentation](https://www.mongodb.com/docs/atlas/reference/faq/database/#which-versions-of-mongodb-do-service-clusters-use-). Atlas always deploys the cluster with the latest stable release of the specified version.  If you set a value to this parameter and set \u003cspan pulumi-lang-nodejs=\"`versionReleaseSystem`\" pulumi-lang-dotnet=\"`VersionReleaseSystem`\" pulumi-lang-go=\"`versionReleaseSystem`\" pulumi-lang-python=\"`version_release_system`\" pulumi-lang-yaml=\"`versionReleaseSystem`\" pulumi-lang-java=\"`versionReleaseSystem`\"\u003e`version_release_system`\u003c/span\u003e `CONTINUOUS`, the resource returns an error. Either clear this parameter or set \u003cspan pulumi-lang-nodejs=\"`versionReleaseSystem`\" pulumi-lang-dotnet=\"`VersionReleaseSystem`\" pulumi-lang-go=\"`versionReleaseSystem`\" pulumi-lang-python=\"`version_release_system`\" pulumi-lang-yaml=\"`versionReleaseSystem`\" pulumi-lang-java=\"`versionReleaseSystem`\"\u003e`version_release_system`\u003c/span\u003e: `LTS`.\n"},"name":{"type":"string","description":"Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed. **WARNING** Changing the name will result in destruction of the existing cluster and the creation of a new cluster.\n"},"paused":{"type":"boolean","description":"Flag that indicates whether the cluster is paused or not. You can pause M10 or larger clusters.  You cannot initiate pausing for a shared/tenant tier cluster. If you try to update a \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e cluster you will get a `CANNOT_UPDATE_PAUSED_CLUSTER` error. See [Considerations for Paused Clusters](https://docs.atlas.mongodb.com/pause-terminate-cluster/#considerations-for-paused-clusters).\n**NOTE** Pause lasts for up to 30 days. If you don't resume the cluster within 30 days, Atlas resumes the cluster.  When the cluster resumption happens Terraform will flag the changed state.  If you wish to keep the cluster paused, reapply your Terraform configuration.   If you prefer to allow the automated change of state to unpaused use:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= [paused]\n}`\n"},"pinnedFcv":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterPinnedFcv:AdvancedClusterPinnedFcv","description":"Pins the Feature Compatibility Version (FCV) to the current MongoDB version with a provided expiration date. To unpin the FCV the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. This operation can take several minutes as the request processes through the MongoDB data plane. Once FCV is unpinned it will not be possible to downgrade the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e. It is advised that updates to \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e are done isolated from other cluster changes. If a plan contains multiple changes, the FCV change will be applied first. If FCV is unpinned past the expiration date the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. The following [knowledge hub article](https://kb.corp.mongodb.com/article/000021785/) and [FCV documentation](https://www.mongodb.com/docs/atlas/tutorial/major-version-change/#manage-feature-compatibility--fcv--during-upgrades) can be referenced for more details. See below.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates if the cluster uses Continuous Cloud Backup.\n"},"projectId":{"type":"string","description":"Unique ID for the project to create the cluster. \n\n\u003e **NOTE:** Groups and projects are synonymous terms. You might find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n"},"redactClientLogData":{"type":"boolean","description":"Flag that enables or disables log redaction, see the [manual](https://www.mongodb.com/docs/manual/administration/monitoring/#log-redaction) for more information. Use this in conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements. **Note**: Changing this setting on a cluster will trigger a rolling restart as soon as the cluster is updated.\n"},"replicaSetScalingStrategy":{"type":"string","description":"Replica set scaling mode for your cluster. Valid values are `WORKLOAD_TYPE`, `SEQUENTIAL` and `NODE_TYPE`. By default, Atlas scales under `WORKLOAD_TYPE`. This mode allows Atlas to scale your analytics nodes in parallel to your operational nodes. When configured as `SEQUENTIAL`, Atlas scales all nodes sequentially. This mode is intended for steady-state workloads and applications performing latency-sensitive secondary reads. When configured as `NODE_TYPE`, Atlas scales your electable nodes in parallel with your read-only and analytics nodes. This mode is intended for large, dynamic workloads requiring frequent and timely cluster tier scaling. This is the fastest scaling strategy, but it might impact latency of workloads when performing extensive secondary reads. [Modify the Replica Set Scaling Mode](https://dochub.mongodb.org/core/scale-nodes)\n"},"replicationSpecs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterReplicationSpec:AdvancedClusterReplicationSpec"},"description":"List of settings that configure your cluster regions. This attribute has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations. The \u003cspan pulumi-lang-nodejs=\"`replicationSpecs`\" pulumi-lang-dotnet=\"`ReplicationSpecs`\" pulumi-lang-go=\"`replicationSpecs`\" pulumi-lang-python=\"`replication_specs`\" pulumi-lang-yaml=\"`replicationSpecs`\" pulumi-lang-java=\"`replicationSpecs`\"\u003e`replication_specs`\u003c/span\u003e configuration for all shards within the same zone must be the same, with the exception of \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e that can scale independently. Note that independent \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e values are only supported for AWS provisioned IOPS, or Azure regions that support Extended IOPS. See below.\n"},"retainBackupsEnabled":{"type":"boolean","description":"Set to true to retain backup snapshots for the deleted cluster. This parameter applies to the Delete operation and only affects M10 and above clusters. To delete an Atlas cluster that has an associated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource and an enabled Backup Compliance Policy, see Delete a Cluster with a Backup Compliance Policy.\n\n\u003e **NOTE** Prior version of provider had parameter as \u003cspan pulumi-lang-nodejs=\"`biConnector`\" pulumi-lang-dotnet=\"`BiConnector`\" pulumi-lang-go=\"`biConnector`\" pulumi-lang-python=\"`bi_connector`\" pulumi-lang-yaml=\"`biConnector`\" pulumi-lang-java=\"`biConnector`\"\u003e`bi_connector`\u003c/span\u003e state will migrate it to new value you only need to update parameter in your terraform file\n"},"rootCertType":{"type":"string","description":"Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterTimeouts:AdvancedClusterTimeouts","description":")\n"},"useAwsTimeBasedSnapshotCopyForFastInitialSync":{"type":"boolean","description":"Flag that indicates whether time-based snapshot copies will be used instead of slower standard snapshot copies during fast Atlas cross-region initial syncs. This flag is only relevant for clusters containing AWS nodes.\n"},"useEffectiveFields":{"type":"boolean","description":"Controls how hardware specification fields are returned in the response. When set to true, the non-effective specs (\u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e) fields return the hardware specifications that the client provided. When set to false (default), the non-effective specs fields show the **current** hardware specifications. Cluster auto-scaling is the primary cause for differences between initial and current hardware specifications. This opt-in feature enhances auto-scaling workflows by eliminating the need for `lifecycle.ignore_changes` blocks and preventing plan drift from Atlas-managed changes. This attribute applies to dedicated clusters, not to tenant or flex clusters. This attribute will be deprecated in provider version 2.x and removed in 3.x when the new behavior becomes default. See Auto-Scaling with Effective Fields for more details.\n**Important:** Toggle this flag and remove any existing `lifecycle.ignore_changes` blocks for spec fields in the same apply, without combining other changes. Toggling will result in increased plan verbosity with `(known after apply)` markers, which can be safely ignored. If you previously removed \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e attributes from your configuration, you'll get a validation error for safety reasons to prevent accidental node loss. To resolve: add the blocks back (to keep nodes) or with \u003cspan pulumi-lang-nodejs=\"`nodeCount \" pulumi-lang-dotnet=\"`NodeCount \" pulumi-lang-go=\"`nodeCount \" pulumi-lang-python=\"`node_count \" pulumi-lang-yaml=\"`nodeCount \" pulumi-lang-java=\"`nodeCount \"\u003e`node_count \u003c/span\u003e= 0` (to delete nodes), apply without toggling the flag, then toggle in a separate apply.\n"},"versionReleaseSystem":{"type":"string","description":"Release cadence that Atlas uses for this cluster. This parameter defaults to `LTS`. If you set this field to `CONTINUOUS`, you must omit the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e field. Atlas accepts:\n- `CONTINUOUS`:  Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.\n- `LTS`: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in the mongoDBMajorVersion field. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.\n"}},"requiredInputs":["clusterType","projectId","replicationSpecs"],"stateInputs":{"description":"Input properties used for looking up and filtering AdvancedCluster resources.\n","properties":{"acceptDataRisksAndForceReplicaSetReconfig":{"type":"string","description":"If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set \u003cspan pulumi-lang-nodejs=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-dotnet=\"`AcceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-go=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-python=\"`accept_data_risks_and_force_replica_set_reconfig`\" pulumi-lang-yaml=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-java=\"`acceptDataRisksAndForceReplicaSetReconfig`\"\u003e`accept_data_risks_and_force_replica_set_reconfig`\u003c/span\u003e to the current date. Learn more about Reconfiguring a Replica Set during a regional outage [here](https://dochub.mongodb.org/core/regional-outage-reconfigure-replica-set).\n"},"advancedConfiguration":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterAdvancedConfiguration:AdvancedClusterAdvancedConfiguration","description":"Additional settings for an Atlas cluster."},"backupEnabled":{"type":"boolean","description":"Flag that indicates whether the cluster can perform backups.\nIf \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the cluster can perform backups. You must set this value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e for NVMe clusters.\n\nBackup uses:\n[Cloud Backup](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/#std-label-backup-cloud-provider) for dedicated clusters.\n[Flex Cluster Backup](https://www.mongodb.com/docs/atlas/backup/cloud-backup/flex-cluster-backup/) for flex clusters.\nIf \"\u003cspan pulumi-lang-nodejs=\"`backupEnabled`\" pulumi-lang-dotnet=\"`BackupEnabled`\" pulumi-lang-go=\"`backupEnabled`\" pulumi-lang-python=\"`backup_enabled`\" pulumi-lang-yaml=\"`backupEnabled`\" pulumi-lang-java=\"`backupEnabled`\"\u003e`backup_enabled`\u003c/span\u003e\"  is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e (default), the cluster doesn't use Atlas backups.\n\n\u003e **NOTE:** If you have a Backup Compliance Policy enabled for the project, you can't disable Cloud Backup without assistance from [MongoDB Support](https://www.mongodb.com/docs/atlas/support/#request-support).\n"},"biConnectorConfig":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterBiConnectorConfig:AdvancedClusterBiConnectorConfig","description":"Configuration settings applied to BI Connector for Atlas on this cluster. The MongoDB Connector for Business Intelligence for Atlas (BI Connector) is only available for M10 and larger clusters. The BI Connector is a powerful tool which provides users SQL-based access to their MongoDB databases. As a result, the BI Connector performs operations which may be CPU and memory intensive. Given the limited hardware resources on M10 and M20 cluster tiers, you may experience performance degradation of the cluster when enabling the BI Connector. If this occurs, upgrade to an M30 or larger cluster or disable the BI Connector. See below.\n"},"clusterId":{"type":"string","description":"The cluster ID.\n"},"clusterType":{"type":"string","description":"Type of the cluster that you want to create.\nAccepted values include:\n- `REPLICASET` Replica set\n- `SHARDED`\tSharded cluster\n- `GEOSHARDED` Global Cluster\n"},"configServerManagementMode":{"type":"string","description":"Config Server Management Mode for creating or updating a sharded cluster. Valid values are `ATLAS_MANAGED` (default) and `FIXED_TO_DEDICATED`. When configured as `ATLAS_MANAGED`, Atlas may automatically switch the cluster's config server type for optimal performance and savings. When configured as `FIXED_TO_DEDICATED`, the cluster will always use a dedicated config server. To learn more, see the [Sharded Cluster Config Servers documentation](https://dochub.mongodb.org/docs/manual/core/sharded-cluster-config-servers/).\n"},"configServerType":{"type":"string","description":"Describes a sharded cluster's config server type. Valid values are `DEDICATED` and `EMBEDDED`. To learn more, see the [Sharded Cluster Config Servers documentation](https://dochub.mongodb.org/docs/manual/core/sharded-cluster-config-servers/).\n"},"connectionStrings":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterConnectionStrings:AdvancedClusterConnectionStrings","description":"Set of connection strings that your applications use to connect to this cluster. More information in [Connection-strings](https://docs.mongodb.com/manual/reference/connection-string/). Use the parameters in this object to connect your applications to this cluster. To learn more about the formats of connection strings, see [Connection String Options](https://docs.atlas.mongodb.com/reference/faq/connection-changes/). NOTE: Atlas returns the contents of this object after the cluster is operational, not while it builds the cluster.\n"},"createDate":{"type":"string","description":"Date and time when MongoDB Cloud created this cluster. This parameter expresses its value in ISO 8601 format in UTC."},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"encryptionAtRestProvider":{"type":"string","description":"Possible values are AWS, GCP, AZURE or NONE.  Only needed if you desire to manage the keys, see [Encryption at Rest using Customer Key Management](https://docs.atlas.mongodb.com/security-kms-encryption/) for complete documentation.  You must configure encryption at rest for the Atlas project before enabling it on any cluster in the project. For Documentation, see [AWS](https://docs.atlas.mongodb.com/security-aws-kms/), [GCP](https://docs.atlas.mongodb.com/security-kms-encryption/) and [Azure](https://docs.atlas.mongodb.com/security-azure-kms/#std-label-security-azure-kms). Requirements are if `replication_specs[#].region_configs[#].\u003ctype\u003eSpecs.instance_size` is M10 or greater and \u003cspan pulumi-lang-nodejs=\"`backupEnabled`\" pulumi-lang-dotnet=\"`BackupEnabled`\" pulumi-lang-go=\"`backupEnabled`\" pulumi-lang-python=\"`backup_enabled`\" pulumi-lang-yaml=\"`backupEnabled`\" pulumi-lang-java=\"`backupEnabled`\"\u003e`backup_enabled`\u003c/span\u003e is false or omitted.\n"},"globalClusterSelfManagedSharding":{"type":"boolean","description":"Flag that indicates if cluster uses Atlas-Managed Sharding (false, default) or Self-Managed Sharding (true). It can only be enabled for Global Clusters (`GEOSHARDED`). It cannot be changed once the cluster is created. Use this mode if you're an advanced user and the default configuration is too restrictive for your workload. If you select this option, you must manually configure the sharding strategy, more information [here](https://www.mongodb.com/docs/atlas/tutorial/create-global-cluster/#select-your-sharding-configuration).\n"},"labels":{"type":"object","additionalProperties":{"type":"string"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e instead.\n"},"mongoDbMajorVersion":{"type":"string","description":"Version of the cluster to deploy. Atlas supports all the MongoDB versions that have **not** reached [End of Live](https://www.mongodb.com/legal/support-policy/lifecycles) for M10+ clusters. If omitted, Atlas deploys the cluster with the default version. For more details, see [documentation](https://www.mongodb.com/docs/atlas/reference/faq/database/#which-versions-of-mongodb-do-service-clusters-use-). Atlas always deploys the cluster with the latest stable release of the specified version.  If you set a value to this parameter and set \u003cspan pulumi-lang-nodejs=\"`versionReleaseSystem`\" pulumi-lang-dotnet=\"`VersionReleaseSystem`\" pulumi-lang-go=\"`versionReleaseSystem`\" pulumi-lang-python=\"`version_release_system`\" pulumi-lang-yaml=\"`versionReleaseSystem`\" pulumi-lang-java=\"`versionReleaseSystem`\"\u003e`version_release_system`\u003c/span\u003e `CONTINUOUS`, the resource returns an error. Either clear this parameter or set \u003cspan pulumi-lang-nodejs=\"`versionReleaseSystem`\" pulumi-lang-dotnet=\"`VersionReleaseSystem`\" pulumi-lang-go=\"`versionReleaseSystem`\" pulumi-lang-python=\"`version_release_system`\" pulumi-lang-yaml=\"`versionReleaseSystem`\" pulumi-lang-java=\"`versionReleaseSystem`\"\u003e`version_release_system`\u003c/span\u003e: `LTS`.\n"},"mongoDbVersion":{"type":"string","description":"Version of MongoDB the cluster runs, in `major-version`.`minor-version` format.\n"},"name":{"type":"string","description":"Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed. **WARNING** Changing the name will result in destruction of the existing cluster and the creation of a new cluster.\n"},"paused":{"type":"boolean","description":"Flag that indicates whether the cluster is paused or not. You can pause M10 or larger clusters.  You cannot initiate pausing for a shared/tenant tier cluster. If you try to update a \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e cluster you will get a `CANNOT_UPDATE_PAUSED_CLUSTER` error. See [Considerations for Paused Clusters](https://docs.atlas.mongodb.com/pause-terminate-cluster/#considerations-for-paused-clusters).\n**NOTE** Pause lasts for up to 30 days. If you don't resume the cluster within 30 days, Atlas resumes the cluster.  When the cluster resumption happens Terraform will flag the changed state.  If you wish to keep the cluster paused, reapply your Terraform configuration.   If you prefer to allow the automated change of state to unpaused use:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= [paused]\n}`\n"},"pinnedFcv":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterPinnedFcv:AdvancedClusterPinnedFcv","description":"Pins the Feature Compatibility Version (FCV) to the current MongoDB version with a provided expiration date. To unpin the FCV the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. This operation can take several minutes as the request processes through the MongoDB data plane. Once FCV is unpinned it will not be possible to downgrade the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e. It is advised that updates to \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e are done isolated from other cluster changes. If a plan contains multiple changes, the FCV change will be applied first. If FCV is unpinned past the expiration date the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. The following [knowledge hub article](https://kb.corp.mongodb.com/article/000021785/) and [FCV documentation](https://www.mongodb.com/docs/atlas/tutorial/major-version-change/#manage-feature-compatibility--fcv--during-upgrades) can be referenced for more details. See below.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates if the cluster uses Continuous Cloud Backup.\n"},"projectId":{"type":"string","description":"Unique ID for the project to create the cluster. \n\n\u003e **NOTE:** Groups and projects are synonymous terms. You might find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n"},"redactClientLogData":{"type":"boolean","description":"Flag that enables or disables log redaction, see the [manual](https://www.mongodb.com/docs/manual/administration/monitoring/#log-redaction) for more information. Use this in conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements. **Note**: Changing this setting on a cluster will trigger a rolling restart as soon as the cluster is updated.\n"},"replicaSetScalingStrategy":{"type":"string","description":"Replica set scaling mode for your cluster. Valid values are `WORKLOAD_TYPE`, `SEQUENTIAL` and `NODE_TYPE`. By default, Atlas scales under `WORKLOAD_TYPE`. This mode allows Atlas to scale your analytics nodes in parallel to your operational nodes. When configured as `SEQUENTIAL`, Atlas scales all nodes sequentially. This mode is intended for steady-state workloads and applications performing latency-sensitive secondary reads. When configured as `NODE_TYPE`, Atlas scales your electable nodes in parallel with your read-only and analytics nodes. This mode is intended for large, dynamic workloads requiring frequent and timely cluster tier scaling. This is the fastest scaling strategy, but it might impact latency of workloads when performing extensive secondary reads. [Modify the Replica Set Scaling Mode](https://dochub.mongodb.org/core/scale-nodes)\n"},"replicationSpecs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterReplicationSpec:AdvancedClusterReplicationSpec"},"description":"List of settings that configure your cluster regions. This attribute has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations. The \u003cspan pulumi-lang-nodejs=\"`replicationSpecs`\" pulumi-lang-dotnet=\"`ReplicationSpecs`\" pulumi-lang-go=\"`replicationSpecs`\" pulumi-lang-python=\"`replication_specs`\" pulumi-lang-yaml=\"`replicationSpecs`\" pulumi-lang-java=\"`replicationSpecs`\"\u003e`replication_specs`\u003c/span\u003e configuration for all shards within the same zone must be the same, with the exception of \u003cspan pulumi-lang-nodejs=\"`instanceSize`\" pulumi-lang-dotnet=\"`InstanceSize`\" pulumi-lang-go=\"`instanceSize`\" pulumi-lang-python=\"`instance_size`\" pulumi-lang-yaml=\"`instanceSize`\" pulumi-lang-java=\"`instanceSize`\"\u003e`instance_size`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e that can scale independently. Note that independent \u003cspan pulumi-lang-nodejs=\"`diskIops`\" pulumi-lang-dotnet=\"`DiskIops`\" pulumi-lang-go=\"`diskIops`\" pulumi-lang-python=\"`disk_iops`\" pulumi-lang-yaml=\"`diskIops`\" pulumi-lang-java=\"`diskIops`\"\u003e`disk_iops`\u003c/span\u003e values are only supported for AWS provisioned IOPS, or Azure regions that support Extended IOPS. See below.\n"},"retainBackupsEnabled":{"type":"boolean","description":"Set to true to retain backup snapshots for the deleted cluster. This parameter applies to the Delete operation and only affects M10 and above clusters. To delete an Atlas cluster that has an associated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource and an enabled Backup Compliance Policy, see Delete a Cluster with a Backup Compliance Policy.\n\n\u003e **NOTE** Prior version of provider had parameter as \u003cspan pulumi-lang-nodejs=\"`biConnector`\" pulumi-lang-dotnet=\"`BiConnector`\" pulumi-lang-go=\"`biConnector`\" pulumi-lang-python=\"`bi_connector`\" pulumi-lang-yaml=\"`biConnector`\" pulumi-lang-java=\"`biConnector`\"\u003e`bi_connector`\u003c/span\u003e state will migrate it to new value you only need to update parameter in your terraform file\n"},"rootCertType":{"type":"string","description":"Certificate Authority that MongoDB Atlas clusters use. You can specify ISRGROOTX1 (for ISRG Root X1).\n"},"stateName":{"type":"string","description":"Current state of the cluster. The possible states are:\n- IDLE\n- CREATING\n- UPDATING\n- DELETING\n- DELETED\n- REPAIRING\n* `replication_specs[#].container_id` - A key-value map of the Network Peering Container ID(s) for the configuration specified in \u003cspan pulumi-lang-nodejs=\"`regionConfigs`\" pulumi-lang-dotnet=\"`RegionConfigs`\" pulumi-lang-go=\"`regionConfigs`\" pulumi-lang-python=\"`region_configs`\" pulumi-lang-yaml=\"`regionConfigs`\" pulumi-lang-java=\"`regionConfigs`\"\u003e`region_configs`\u003c/span\u003e. The Container ID is the id of the container created when the first cluster in the region (AWS/Azure) or project (GCP) was created.  The syntax is `\"providerName:regionName\" = \"containerId\"`. Example `AWS:US_EAST_1\" = \"61e0797dde08fb498ca11a71`.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/AdvancedClusterTimeouts:AdvancedClusterTimeouts","description":")\n"},"useAwsTimeBasedSnapshotCopyForFastInitialSync":{"type":"boolean","description":"Flag that indicates whether time-based snapshot copies will be used instead of slower standard snapshot copies during fast Atlas cross-region initial syncs. This flag is only relevant for clusters containing AWS nodes.\n"},"useEffectiveFields":{"type":"boolean","description":"Controls how hardware specification fields are returned in the response. When set to true, the non-effective specs (\u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e) fields return the hardware specifications that the client provided. When set to false (default), the non-effective specs fields show the **current** hardware specifications. Cluster auto-scaling is the primary cause for differences between initial and current hardware specifications. This opt-in feature enhances auto-scaling workflows by eliminating the need for `lifecycle.ignore_changes` blocks and preventing plan drift from Atlas-managed changes. This attribute applies to dedicated clusters, not to tenant or flex clusters. This attribute will be deprecated in provider version 2.x and removed in 3.x when the new behavior becomes default. See Auto-Scaling with Effective Fields for more details.\n**Important:** Toggle this flag and remove any existing `lifecycle.ignore_changes` blocks for spec fields in the same apply, without combining other changes. Toggling will result in increased plan verbosity with `(known after apply)` markers, which can be safely ignored. If you previously removed \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e attributes from your configuration, you'll get a validation error for safety reasons to prevent accidental node loss. To resolve: add the blocks back (to keep nodes) or with \u003cspan pulumi-lang-nodejs=\"`nodeCount \" pulumi-lang-dotnet=\"`NodeCount \" pulumi-lang-go=\"`nodeCount \" pulumi-lang-python=\"`node_count \" pulumi-lang-yaml=\"`nodeCount \" pulumi-lang-java=\"`nodeCount \"\u003e`node_count \u003c/span\u003e= 0` (to delete nodes), apply without toggling the flag, then toggle in a separate apply.\n"},"versionReleaseSystem":{"type":"string","description":"Release cadence that Atlas uses for this cluster. This parameter defaults to `LTS`. If you set this field to `CONTINUOUS`, you must omit the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e field. Atlas accepts:\n- `CONTINUOUS`:  Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.\n- `LTS`: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in the mongoDBMajorVersion field. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.\n"}},"type":"object"}},"mongodbatlas:index/alertConfiguration:AlertConfiguration":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AlertConfiguration`\" pulumi-lang-dotnet=\"`mongodbatlas.AlertConfiguration`\" pulumi-lang-go=\"`AlertConfiguration`\" pulumi-lang-python=\"`AlertConfiguration`\" pulumi-lang-yaml=\"`mongodbatlas.AlertConfiguration`\" pulumi-lang-java=\"`mongodbatlas.AlertConfiguration`\"\u003e`mongodbatlas.AlertConfiguration`\u003c/span\u003e provides an Alert Configuration resource to define the conditions that trigger an alert and the methods of notification within a MongoDB Atlas project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.AlertConfiguration(\"test\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    eventType: \"OUTSIDE_METRIC_THRESHOLD\",\n    enabled: true,\n    notifications: [{\n        typeName: \"GROUP\",\n        intervalMin: 5,\n        delayMin: 0,\n        smsEnabled: false,\n        emailEnabled: true,\n        roles: [\"GROUP_CLUSTER_MANAGER\"],\n    }],\n    matchers: [{\n        fieldName: \"HOSTNAME_AND_PORT\",\n        operator: \"EQUALS\",\n        value: \"SECONDARY\",\n    }],\n    metricThresholdConfig: {\n        metricName: \"ASSERT_REGULAR\",\n        operator: \"LESS_THAN\",\n        threshold: 99,\n        units: \"RAW\",\n        mode: \"AVERAGE\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.AlertConfiguration(\"test\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    event_type=\"OUTSIDE_METRIC_THRESHOLD\",\n    enabled=True,\n    notifications=[{\n        \"type_name\": \"GROUP\",\n        \"interval_min\": 5,\n        \"delay_min\": 0,\n        \"sms_enabled\": False,\n        \"email_enabled\": True,\n        \"roles\": [\"GROUP_CLUSTER_MANAGER\"],\n    }],\n    matchers=[{\n        \"field_name\": \"HOSTNAME_AND_PORT\",\n        \"operator\": \"EQUALS\",\n        \"value\": \"SECONDARY\",\n    }],\n    metric_threshold_config={\n        \"metric_name\": \"ASSERT_REGULAR\",\n        \"operator\": \"LESS_THAN\",\n        \"threshold\": 99,\n        \"units\": \"RAW\",\n        \"mode\": \"AVERAGE\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.AlertConfiguration(\"test\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        EventType = \"OUTSIDE_METRIC_THRESHOLD\",\n        Enabled = true,\n        Notifications = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationNotificationArgs\n            {\n                TypeName = \"GROUP\",\n                IntervalMin = 5,\n                DelayMin = 0,\n                SmsEnabled = false,\n                EmailEnabled = true,\n                Roles = new[]\n                {\n                    \"GROUP_CLUSTER_MANAGER\",\n                },\n            },\n        },\n        Matchers = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationMatcherArgs\n            {\n                FieldName = \"HOSTNAME_AND_PORT\",\n                Operator = \"EQUALS\",\n                Value = \"SECONDARY\",\n            },\n        },\n        MetricThresholdConfig = new Mongodbatlas.Inputs.AlertConfigurationMetricThresholdConfigArgs\n        {\n            MetricName = \"ASSERT_REGULAR\",\n            Operator = \"LESS_THAN\",\n            Threshold = 99,\n            Units = \"RAW\",\n            Mode = \"AVERAGE\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAlertConfiguration(ctx, \"test\", \u0026mongodbatlas.AlertConfigurationArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tEventType: pulumi.String(\"OUTSIDE_METRIC_THRESHOLD\"),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tNotifications: mongodbatlas.AlertConfigurationNotificationArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationNotificationArgs{\n\t\t\t\t\tTypeName:     pulumi.String(\"GROUP\"),\n\t\t\t\t\tIntervalMin:  pulumi.Int(5),\n\t\t\t\t\tDelayMin:     pulumi.Int(0),\n\t\t\t\t\tSmsEnabled:   pulumi.Bool(false),\n\t\t\t\t\tEmailEnabled: pulumi.Bool(true),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_CLUSTER_MANAGER\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tMatchers: mongodbatlas.AlertConfigurationMatcherArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationMatcherArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"HOSTNAME_AND_PORT\"),\n\t\t\t\t\tOperator:  pulumi.String(\"EQUALS\"),\n\t\t\t\t\tValue:     pulumi.String(\"SECONDARY\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetricThresholdConfig: \u0026mongodbatlas.AlertConfigurationMetricThresholdConfigArgs{\n\t\t\t\tMetricName: pulumi.String(\"ASSERT_REGULAR\"),\n\t\t\t\tOperator:   pulumi.String(\"LESS_THAN\"),\n\t\t\t\tThreshold:  pulumi.Float64(99),\n\t\t\t\tUnits:      pulumi.String(\"RAW\"),\n\t\t\t\tMode:       pulumi.String(\"AVERAGE\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AlertConfiguration;\nimport com.pulumi.mongodbatlas.AlertConfigurationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationNotificationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationMatcherArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationMetricThresholdConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new AlertConfiguration(\"test\", AlertConfigurationArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .eventType(\"OUTSIDE_METRIC_THRESHOLD\")\n            .enabled(true)\n            .notifications(AlertConfigurationNotificationArgs.builder()\n                .typeName(\"GROUP\")\n                .intervalMin(5)\n                .delayMin(0)\n                .smsEnabled(false)\n                .emailEnabled(true)\n                .roles(\"GROUP_CLUSTER_MANAGER\")\n                .build())\n            .matchers(AlertConfigurationMatcherArgs.builder()\n                .fieldName(\"HOSTNAME_AND_PORT\")\n                .operator(\"EQUALS\")\n                .value(\"SECONDARY\")\n                .build())\n            .metricThresholdConfig(AlertConfigurationMetricThresholdConfigArgs.builder()\n                .metricName(\"ASSERT_REGULAR\")\n                .operator(\"LESS_THAN\")\n                .threshold(99.0)\n                .units(\"RAW\")\n                .mode(\"AVERAGE\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:AlertConfiguration\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      eventType: OUTSIDE_METRIC_THRESHOLD\n      enabled: true\n      notifications:\n        - typeName: GROUP\n          intervalMin: 5\n          delayMin: 0\n          smsEnabled: false\n          emailEnabled: true\n          roles:\n            - GROUP_CLUSTER_MANAGER\n      matchers:\n        - fieldName: HOSTNAME_AND_PORT\n          operator: EQUALS\n          value: SECONDARY\n      metricThresholdConfig:\n        metricName: ASSERT_REGULAR\n        operator: LESS_THAN\n        threshold: 99\n        units: RAW\n        mode: AVERAGE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **NOTE:** In order to allow for a fast pace of change to alert variables some validations have been removed from this resource in order to unblock alert creation. Impacted areas have links to the MongoDB Atlas API documentation so always check it for the most current information: https://docs.atlas.mongodb.com/reference/api/alert-configurations-create-config/\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.AlertConfiguration(\"test\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    eventType: \"REPLICATION_OPLOG_WINDOW_RUNNING_OUT\",\n    enabled: true,\n    notifications: [{\n        typeName: \"GROUP\",\n        intervalMin: 5,\n        delayMin: 0,\n        smsEnabled: false,\n        emailEnabled: true,\n        roles: [\"GROUP_CLUSTER_MANAGER\"],\n    }],\n    matchers: [{\n        fieldName: \"CLUSTER_NAME\",\n        operator: \"EQUALS\",\n        value: \"my-cluster\",\n    }],\n    thresholdConfig: {\n        operator: \"LESS_THAN\",\n        threshold: 1,\n        units: \"HOURS\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.AlertConfiguration(\"test\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    event_type=\"REPLICATION_OPLOG_WINDOW_RUNNING_OUT\",\n    enabled=True,\n    notifications=[{\n        \"type_name\": \"GROUP\",\n        \"interval_min\": 5,\n        \"delay_min\": 0,\n        \"sms_enabled\": False,\n        \"email_enabled\": True,\n        \"roles\": [\"GROUP_CLUSTER_MANAGER\"],\n    }],\n    matchers=[{\n        \"field_name\": \"CLUSTER_NAME\",\n        \"operator\": \"EQUALS\",\n        \"value\": \"my-cluster\",\n    }],\n    threshold_config={\n        \"operator\": \"LESS_THAN\",\n        \"threshold\": 1,\n        \"units\": \"HOURS\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.AlertConfiguration(\"test\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        EventType = \"REPLICATION_OPLOG_WINDOW_RUNNING_OUT\",\n        Enabled = true,\n        Notifications = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationNotificationArgs\n            {\n                TypeName = \"GROUP\",\n                IntervalMin = 5,\n                DelayMin = 0,\n                SmsEnabled = false,\n                EmailEnabled = true,\n                Roles = new[]\n                {\n                    \"GROUP_CLUSTER_MANAGER\",\n                },\n            },\n        },\n        Matchers = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationMatcherArgs\n            {\n                FieldName = \"CLUSTER_NAME\",\n                Operator = \"EQUALS\",\n                Value = \"my-cluster\",\n            },\n        },\n        ThresholdConfig = new Mongodbatlas.Inputs.AlertConfigurationThresholdConfigArgs\n        {\n            Operator = \"LESS_THAN\",\n            Threshold = 1,\n            Units = \"HOURS\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAlertConfiguration(ctx, \"test\", \u0026mongodbatlas.AlertConfigurationArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tEventType: pulumi.String(\"REPLICATION_OPLOG_WINDOW_RUNNING_OUT\"),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tNotifications: mongodbatlas.AlertConfigurationNotificationArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationNotificationArgs{\n\t\t\t\t\tTypeName:     pulumi.String(\"GROUP\"),\n\t\t\t\t\tIntervalMin:  pulumi.Int(5),\n\t\t\t\t\tDelayMin:     pulumi.Int(0),\n\t\t\t\t\tSmsEnabled:   pulumi.Bool(false),\n\t\t\t\t\tEmailEnabled: pulumi.Bool(true),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_CLUSTER_MANAGER\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tMatchers: mongodbatlas.AlertConfigurationMatcherArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationMatcherArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"CLUSTER_NAME\"),\n\t\t\t\t\tOperator:  pulumi.String(\"EQUALS\"),\n\t\t\t\t\tValue:     pulumi.String(\"my-cluster\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tThresholdConfig: \u0026mongodbatlas.AlertConfigurationThresholdConfigArgs{\n\t\t\t\tOperator:  pulumi.String(\"LESS_THAN\"),\n\t\t\t\tThreshold: pulumi.Float64(1),\n\t\t\t\tUnits:     pulumi.String(\"HOURS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AlertConfiguration;\nimport com.pulumi.mongodbatlas.AlertConfigurationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationNotificationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationMatcherArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationThresholdConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new AlertConfiguration(\"test\", AlertConfigurationArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .eventType(\"REPLICATION_OPLOG_WINDOW_RUNNING_OUT\")\n            .enabled(true)\n            .notifications(AlertConfigurationNotificationArgs.builder()\n                .typeName(\"GROUP\")\n                .intervalMin(5)\n                .delayMin(0)\n                .smsEnabled(false)\n                .emailEnabled(true)\n                .roles(\"GROUP_CLUSTER_MANAGER\")\n                .build())\n            .matchers(AlertConfigurationMatcherArgs.builder()\n                .fieldName(\"CLUSTER_NAME\")\n                .operator(\"EQUALS\")\n                .value(\"my-cluster\")\n                .build())\n            .thresholdConfig(AlertConfigurationThresholdConfigArgs.builder()\n                .operator(\"LESS_THAN\")\n                .threshold(1.0)\n                .units(\"HOURS\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:AlertConfiguration\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      eventType: REPLICATION_OPLOG_WINDOW_RUNNING_OUT\n      enabled: true\n      notifications:\n        - typeName: GROUP\n          intervalMin: 5\n          delayMin: 0\n          smsEnabled: false\n          emailEnabled: true\n          roles:\n            - GROUP_CLUSTER_MANAGER\n      matchers:\n        - fieldName: CLUSTER_NAME\n          operator: EQUALS\n          value: my-cluster\n      thresholdConfig:\n        operator: LESS_THAN\n        threshold: 1\n        units: HOURS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create an alert with two notifications using Email and SMS\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.AlertConfiguration(\"test\", {\n    projectId: \"PROJECT ID\",\n    eventType: \"OUTSIDE_METRIC_THRESHOLD\",\n    enabled: true,\n    notifications: [\n        {\n            typeName: \"GROUP\",\n            intervalMin: 5,\n            delayMin: 0,\n            smsEnabled: false,\n            emailEnabled: true,\n            roles: [\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n                \"GROUP_CLUSTER_MANAGER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n            ],\n        },\n        {\n            typeName: \"ORG\",\n            intervalMin: 5,\n            delayMin: 0,\n            smsEnabled: true,\n            emailEnabled: false,\n        },\n    ],\n    matchers: [{\n        fieldName: \"HOSTNAME_AND_PORT\",\n        operator: \"EQUALS\",\n        value: \"SECONDARY\",\n    }],\n    metricThresholdConfig: {\n        metricName: \"ASSERT_REGULAR\",\n        operator: \"LESS_THAN\",\n        threshold: 99,\n        units: \"RAW\",\n        mode: \"AVERAGE\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.AlertConfiguration(\"test\",\n    project_id=\"PROJECT ID\",\n    event_type=\"OUTSIDE_METRIC_THRESHOLD\",\n    enabled=True,\n    notifications=[\n        {\n            \"type_name\": \"GROUP\",\n            \"interval_min\": 5,\n            \"delay_min\": 0,\n            \"sms_enabled\": False,\n            \"email_enabled\": True,\n            \"roles\": [\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n                \"GROUP_CLUSTER_MANAGER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n            ],\n        },\n        {\n            \"type_name\": \"ORG\",\n            \"interval_min\": 5,\n            \"delay_min\": 0,\n            \"sms_enabled\": True,\n            \"email_enabled\": False,\n        },\n    ],\n    matchers=[{\n        \"field_name\": \"HOSTNAME_AND_PORT\",\n        \"operator\": \"EQUALS\",\n        \"value\": \"SECONDARY\",\n    }],\n    metric_threshold_config={\n        \"metric_name\": \"ASSERT_REGULAR\",\n        \"operator\": \"LESS_THAN\",\n        \"threshold\": 99,\n        \"units\": \"RAW\",\n        \"mode\": \"AVERAGE\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.AlertConfiguration(\"test\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        EventType = \"OUTSIDE_METRIC_THRESHOLD\",\n        Enabled = true,\n        Notifications = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationNotificationArgs\n            {\n                TypeName = \"GROUP\",\n                IntervalMin = 5,\n                DelayMin = 0,\n                SmsEnabled = false,\n                EmailEnabled = true,\n                Roles = new[]\n                {\n                    \"GROUP_DATA_ACCESS_READ_ONLY\",\n                    \"GROUP_CLUSTER_MANAGER\",\n                    \"GROUP_DATA_ACCESS_ADMIN\",\n                },\n            },\n            new Mongodbatlas.Inputs.AlertConfigurationNotificationArgs\n            {\n                TypeName = \"ORG\",\n                IntervalMin = 5,\n                DelayMin = 0,\n                SmsEnabled = true,\n                EmailEnabled = false,\n            },\n        },\n        Matchers = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationMatcherArgs\n            {\n                FieldName = \"HOSTNAME_AND_PORT\",\n                Operator = \"EQUALS\",\n                Value = \"SECONDARY\",\n            },\n        },\n        MetricThresholdConfig = new Mongodbatlas.Inputs.AlertConfigurationMetricThresholdConfigArgs\n        {\n            MetricName = \"ASSERT_REGULAR\",\n            Operator = \"LESS_THAN\",\n            Threshold = 99,\n            Units = \"RAW\",\n            Mode = \"AVERAGE\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAlertConfiguration(ctx, \"test\", \u0026mongodbatlas.AlertConfigurationArgs{\n\t\t\tProjectId: pulumi.String(\"PROJECT ID\"),\n\t\t\tEventType: pulumi.String(\"OUTSIDE_METRIC_THRESHOLD\"),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tNotifications: mongodbatlas.AlertConfigurationNotificationArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationNotificationArgs{\n\t\t\t\t\tTypeName:     pulumi.String(\"GROUP\"),\n\t\t\t\t\tIntervalMin:  pulumi.Int(5),\n\t\t\t\t\tDelayMin:     pulumi.Int(0),\n\t\t\t\t\tSmsEnabled:   pulumi.Bool(false),\n\t\t\t\t\tEmailEnabled: pulumi.Bool(true),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_READ_ONLY\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_CLUSTER_MANAGER\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_ADMIN\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationNotificationArgs{\n\t\t\t\t\tTypeName:     pulumi.String(\"ORG\"),\n\t\t\t\t\tIntervalMin:  pulumi.Int(5),\n\t\t\t\t\tDelayMin:     pulumi.Int(0),\n\t\t\t\t\tSmsEnabled:   pulumi.Bool(true),\n\t\t\t\t\tEmailEnabled: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMatchers: mongodbatlas.AlertConfigurationMatcherArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationMatcherArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"HOSTNAME_AND_PORT\"),\n\t\t\t\t\tOperator:  pulumi.String(\"EQUALS\"),\n\t\t\t\t\tValue:     pulumi.String(\"SECONDARY\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetricThresholdConfig: \u0026mongodbatlas.AlertConfigurationMetricThresholdConfigArgs{\n\t\t\t\tMetricName: pulumi.String(\"ASSERT_REGULAR\"),\n\t\t\t\tOperator:   pulumi.String(\"LESS_THAN\"),\n\t\t\t\tThreshold:  pulumi.Float64(99),\n\t\t\t\tUnits:      pulumi.String(\"RAW\"),\n\t\t\t\tMode:       pulumi.String(\"AVERAGE\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AlertConfiguration;\nimport com.pulumi.mongodbatlas.AlertConfigurationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationNotificationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationMatcherArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationMetricThresholdConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new AlertConfiguration(\"test\", AlertConfigurationArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .eventType(\"OUTSIDE_METRIC_THRESHOLD\")\n            .enabled(true)\n            .notifications(            \n                AlertConfigurationNotificationArgs.builder()\n                    .typeName(\"GROUP\")\n                    .intervalMin(5)\n                    .delayMin(0)\n                    .smsEnabled(false)\n                    .emailEnabled(true)\n                    .roles(                    \n                        \"GROUP_DATA_ACCESS_READ_ONLY\",\n                        \"GROUP_CLUSTER_MANAGER\",\n                        \"GROUP_DATA_ACCESS_ADMIN\")\n                    .build(),\n                AlertConfigurationNotificationArgs.builder()\n                    .typeName(\"ORG\")\n                    .intervalMin(5)\n                    .delayMin(0)\n                    .smsEnabled(true)\n                    .emailEnabled(false)\n                    .build())\n            .matchers(AlertConfigurationMatcherArgs.builder()\n                .fieldName(\"HOSTNAME_AND_PORT\")\n                .operator(\"EQUALS\")\n                .value(\"SECONDARY\")\n                .build())\n            .metricThresholdConfig(AlertConfigurationMetricThresholdConfigArgs.builder()\n                .metricName(\"ASSERT_REGULAR\")\n                .operator(\"LESS_THAN\")\n                .threshold(99.0)\n                .units(\"RAW\")\n                .mode(\"AVERAGE\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:AlertConfiguration\n    properties:\n      projectId: PROJECT ID\n      eventType: OUTSIDE_METRIC_THRESHOLD\n      enabled: true\n      notifications:\n        - typeName: GROUP\n          intervalMin: 5\n          delayMin: 0\n          smsEnabled: false\n          emailEnabled: true\n          roles:\n            - GROUP_DATA_ACCESS_READ_ONLY\n            - GROUP_CLUSTER_MANAGER\n            - GROUP_DATA_ACCESS_ADMIN\n        - typeName: ORG\n          intervalMin: 5\n          delayMin: 0\n          smsEnabled: true\n          emailEnabled: false\n      matchers:\n        - fieldName: HOSTNAME_AND_PORT\n          operator: EQUALS\n          value: SECONDARY\n      metricThresholdConfig:\n        metricName: ASSERT_REGULAR\n        operator: LESS_THAN\n        threshold: 99\n        units: RAW\n        mode: AVERAGE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create third party notification using credentials from existing third party integration\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getThirdPartyIntegration({\n    projectId: \"PROJECT ID\",\n    type: \"PAGER_DUTY\",\n});\nconst testAlertConfiguration = new mongodbatlas.AlertConfiguration(\"test\", {\n    projectId: \"PROJECT ID\",\n    enabled: true,\n    eventType: \"USERS_WITHOUT_MULTI_FACTOR_AUTH\",\n    notifications: [{\n        typeName: \"PAGER_DUTY\",\n        integrationId: test.then(test =\u003e test.id),\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_third_party_integration(project_id=\"PROJECT ID\",\n    type=\"PAGER_DUTY\")\ntest_alert_configuration = mongodbatlas.AlertConfiguration(\"test\",\n    project_id=\"PROJECT ID\",\n    enabled=True,\n    event_type=\"USERS_WITHOUT_MULTI_FACTOR_AUTH\",\n    notifications=[{\n        \"type_name\": \"PAGER_DUTY\",\n        \"integration_id\": test.id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetThirdPartyIntegration.Invoke(new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Type = \"PAGER_DUTY\",\n    });\n\n    var testAlertConfiguration = new Mongodbatlas.AlertConfiguration(\"test\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Enabled = true,\n        EventType = \"USERS_WITHOUT_MULTI_FACTOR_AUTH\",\n        Notifications = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationNotificationArgs\n            {\n                TypeName = \"PAGER_DUTY\",\n                IntegrationId = test.Apply(getThirdPartyIntegrationResult =\u003e getThirdPartyIntegrationResult.Id),\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.LookupThirdPartyIntegration(ctx, \u0026mongodbatlas.LookupThirdPartyIntegrationArgs{\n\t\t\tProjectId: \"PROJECT ID\",\n\t\t\tType:      \"PAGER_DUTY\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewAlertConfiguration(ctx, \"test\", \u0026mongodbatlas.AlertConfigurationArgs{\n\t\t\tProjectId: pulumi.String(\"PROJECT ID\"),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tEventType: pulumi.String(\"USERS_WITHOUT_MULTI_FACTOR_AUTH\"),\n\t\t\tNotifications: mongodbatlas.AlertConfigurationNotificationArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationNotificationArgs{\n\t\t\t\t\tTypeName:      pulumi.String(\"PAGER_DUTY\"),\n\t\t\t\t\tIntegrationId: pulumi.String(test.Id),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetThirdPartyIntegrationArgs;\nimport com.pulumi.mongodbatlas.AlertConfiguration;\nimport com.pulumi.mongodbatlas.AlertConfigurationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationNotificationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getThirdPartyIntegration(GetThirdPartyIntegrationArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .type(\"PAGER_DUTY\")\n            .build());\n\n        var testAlertConfiguration = new AlertConfiguration(\"testAlertConfiguration\", AlertConfigurationArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .enabled(true)\n            .eventType(\"USERS_WITHOUT_MULTI_FACTOR_AUTH\")\n            .notifications(AlertConfigurationNotificationArgs.builder()\n                .typeName(\"PAGER_DUTY\")\n                .integrationId(test.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testAlertConfiguration:\n    type: mongodbatlas:AlertConfiguration\n    name: test\n    properties:\n      projectId: PROJECT ID\n      enabled: true\n      eventType: USERS_WITHOUT_MULTI_FACTOR_AUTH\n      notifications:\n        - typeName: PAGER_DUTY\n          integrationId: ${test.id}\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getThirdPartyIntegration\n      arguments:\n        projectId: PROJECT ID\n        type: PAGER_DUTY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Alert Configuration\n\n## Import\n\nAlert Configuration can be imported using the `project_id-alert_configuration_id`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/alertConfiguration:AlertConfiguration test 5d0f1f74cf09a29120e123cd-5d0f1f74cf09a29120e1fscg\n```\n\n**NOTE**: Third-party notifications will not contain their respective credentials as these are sensitive attributes. If you wish to perform updates on these notifications without providing the original credentials, the corresponding \u003cspan pulumi-lang-nodejs=\"`notifierId`\" pulumi-lang-dotnet=\"`NotifierId`\" pulumi-lang-go=\"`notifierId`\" pulumi-lang-python=\"`notifier_id`\" pulumi-lang-yaml=\"`notifierId`\" pulumi-lang-java=\"`notifierId`\"\u003e`notifier_id`\u003c/span\u003e attribute must be provided instead.\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/alert-configurations/)\n\n","properties":{"alertConfigurationId":{"type":"string","description":"Unique identifier for the alert configuration.\n"},"created":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when this alert configuration was created.\n"},"enabled":{"type":"boolean","description":"It is not required, but If the attribute is omitted, by default will be false, and the configuration would be disabled. You must set true to enable the configuration.\n"},"eventType":{"type":"string","description":"The type of event that will trigger an alert.\n\n\u003e ***IMPORTANT:*** Event Type has many possible values. Details for both conditional and metric based alerts can be found by selecting the tabs on the [alert config page](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createalertconfiguration) and checking the latest eventTypeName options.\n\n\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`eventType`\" pulumi-lang-dotnet=\"`EventType`\" pulumi-lang-go=\"`eventType`\" pulumi-lang-python=\"`event_type`\" pulumi-lang-yaml=\"`eventType`\" pulumi-lang-java=\"`eventType`\"\u003e`event_type`\u003c/span\u003e is set to `OUTSIDE_METRIC_THRESHOLD` or `OUTSIDE_SERVERLESS_METRIC_THRESHOLD`, the \u003cspan pulumi-lang-nodejs=\"`metricThresholdConfig`\" pulumi-lang-dotnet=\"`MetricThresholdConfig`\" pulumi-lang-go=\"`metricThresholdConfig`\" pulumi-lang-python=\"`metric_threshold_config`\" pulumi-lang-yaml=\"`metricThresholdConfig`\" pulumi-lang-java=\"`metricThresholdConfig`\"\u003e`metric_threshold_config`\u003c/span\u003e field must also be configured.\n"},"matchers":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationMatcher:AlertConfigurationMatcher"}},"metricThresholdConfig":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationMetricThresholdConfig:AlertConfigurationMetricThresholdConfig"},"notifications":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationNotification:AlertConfigurationNotification"}},"projectId":{"type":"string","description":"The ID of the project where the alert configuration will create.\n"},"severityOverride":{"type":"string","description":"Severity of the event. For the list of accepted values please read the [Create One Alert Configuration in One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupalertconfig) API documentation.\n"},"thresholdConfig":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationThresholdConfig:AlertConfigurationThresholdConfig"},"updated":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when this alert configuration was last updated.\n"}},"required":["alertConfigurationId","created","enabled","eventType","notifications","projectId","updated"],"inputProperties":{"enabled":{"type":"boolean","description":"It is not required, but If the attribute is omitted, by default will be false, and the configuration would be disabled. You must set true to enable the configuration.\n"},"eventType":{"type":"string","description":"The type of event that will trigger an alert.\n\n\u003e ***IMPORTANT:*** Event Type has many possible values. Details for both conditional and metric based alerts can be found by selecting the tabs on the [alert config page](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createalertconfiguration) and checking the latest eventTypeName options.\n\n\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`eventType`\" pulumi-lang-dotnet=\"`EventType`\" pulumi-lang-go=\"`eventType`\" pulumi-lang-python=\"`event_type`\" pulumi-lang-yaml=\"`eventType`\" pulumi-lang-java=\"`eventType`\"\u003e`event_type`\u003c/span\u003e is set to `OUTSIDE_METRIC_THRESHOLD` or `OUTSIDE_SERVERLESS_METRIC_THRESHOLD`, the \u003cspan pulumi-lang-nodejs=\"`metricThresholdConfig`\" pulumi-lang-dotnet=\"`MetricThresholdConfig`\" pulumi-lang-go=\"`metricThresholdConfig`\" pulumi-lang-python=\"`metric_threshold_config`\" pulumi-lang-yaml=\"`metricThresholdConfig`\" pulumi-lang-java=\"`metricThresholdConfig`\"\u003e`metric_threshold_config`\u003c/span\u003e field must also be configured.\n"},"matchers":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationMatcher:AlertConfigurationMatcher"}},"metricThresholdConfig":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationMetricThresholdConfig:AlertConfigurationMetricThresholdConfig"},"notifications":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationNotification:AlertConfigurationNotification"}},"projectId":{"type":"string","description":"The ID of the project where the alert configuration will create.\n"},"severityOverride":{"type":"string","description":"Severity of the event. For the list of accepted values please read the [Create One Alert Configuration in One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupalertconfig) API documentation.\n"},"thresholdConfig":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationThresholdConfig:AlertConfigurationThresholdConfig"}},"requiredInputs":["eventType","notifications","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering AlertConfiguration resources.\n","properties":{"alertConfigurationId":{"type":"string","description":"Unique identifier for the alert configuration.\n"},"created":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when this alert configuration was created.\n"},"enabled":{"type":"boolean","description":"It is not required, but If the attribute is omitted, by default will be false, and the configuration would be disabled. You must set true to enable the configuration.\n"},"eventType":{"type":"string","description":"The type of event that will trigger an alert.\n\n\u003e ***IMPORTANT:*** Event Type has many possible values. Details for both conditional and metric based alerts can be found by selecting the tabs on the [alert config page](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createalertconfiguration) and checking the latest eventTypeName options.\n\n\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`eventType`\" pulumi-lang-dotnet=\"`EventType`\" pulumi-lang-go=\"`eventType`\" pulumi-lang-python=\"`event_type`\" pulumi-lang-yaml=\"`eventType`\" pulumi-lang-java=\"`eventType`\"\u003e`event_type`\u003c/span\u003e is set to `OUTSIDE_METRIC_THRESHOLD` or `OUTSIDE_SERVERLESS_METRIC_THRESHOLD`, the \u003cspan pulumi-lang-nodejs=\"`metricThresholdConfig`\" pulumi-lang-dotnet=\"`MetricThresholdConfig`\" pulumi-lang-go=\"`metricThresholdConfig`\" pulumi-lang-python=\"`metric_threshold_config`\" pulumi-lang-yaml=\"`metricThresholdConfig`\" pulumi-lang-java=\"`metricThresholdConfig`\"\u003e`metric_threshold_config`\u003c/span\u003e field must also be configured.\n"},"matchers":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationMatcher:AlertConfigurationMatcher"}},"metricThresholdConfig":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationMetricThresholdConfig:AlertConfigurationMetricThresholdConfig"},"notifications":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationNotification:AlertConfigurationNotification"}},"projectId":{"type":"string","description":"The ID of the project where the alert configuration will create.\n"},"severityOverride":{"type":"string","description":"Severity of the event. For the list of accepted values please read the [Create One Alert Configuration in One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupalertconfig) API documentation.\n"},"thresholdConfig":{"$ref":"#/types/mongodbatlas:index/AlertConfigurationThresholdConfig:AlertConfigurationThresholdConfig"},"updated":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when this alert configuration was last updated.\n"}},"type":"object"}},"mongodbatlas:index/apiKey:ApiKey":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ApiKey`\" pulumi-lang-go=\"`ApiKey`\" pulumi-lang-python=\"`ApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ApiKey`\" pulumi-lang-java=\"`mongodbatlas.ApiKey`\"\u003e`mongodbatlas.ApiKey`\u003c/span\u003e provides a Organization API key resource. This allows an Organizational API key to be created.\n\n\u003e **IMPORTANT WARNING:** Managing Atlas Programmatic API Keys (PAKs) with Terraform will expose sensitive organizational secrets in Terraform's state. We suggest following Terraform's best practices. You may also want to consider managing your PAKs via a more secure method, such as the [HashiCorp Vault MongoDB Atlas Secrets Engine](https://developer.hashicorp.com/vault/docs/secrets/mongodbatlas).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.ApiKey(\"test\", {\n    description: \"key-name\",\n    orgId: \"\u003cORG_ID\u003e\",\n    roleNames: [\"ORG_READ_ONLY\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.ApiKey(\"test\",\n    description=\"key-name\",\n    org_id=\"\u003cORG_ID\u003e\",\n    role_names=[\"ORG_READ_ONLY\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.ApiKey(\"test\", new()\n    {\n        Description = \"key-name\",\n        OrgId = \"\u003cORG_ID\u003e\",\n        RoleNames = new[]\n        {\n            \"ORG_READ_ONLY\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewApiKey(ctx, \"test\", \u0026mongodbatlas.ApiKeyArgs{\n\t\t\tDescription: pulumi.String(\"key-name\"),\n\t\t\tOrgId:       pulumi.String(\"\u003cORG_ID\u003e\"),\n\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_READ_ONLY\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ApiKey;\nimport com.pulumi.mongodbatlas.ApiKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ApiKey(\"test\", ApiKeyArgs.builder()\n            .description(\"key-name\")\n            .orgId(\"\u003cORG_ID\u003e\")\n            .roleNames(\"ORG_READ_ONLY\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:ApiKey\n    properties:\n      description: key-name\n      orgId: \u003cORG_ID\u003e\n      roleNames:\n        - ORG_READ_ONLY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Create Programmatic API Key\n\n##  ## Attributes Reference\n\nIn addition to all arguments above, the following attributes are exported:\n\n* \u003cspan pulumi-lang-nodejs=\"`apiKeyId`\" pulumi-lang-dotnet=\"`ApiKeyId`\" pulumi-lang-go=\"`apiKeyId`\" pulumi-lang-python=\"`api_key_id`\" pulumi-lang-yaml=\"`apiKeyId`\" pulumi-lang-java=\"`apiKeyId`\"\u003e`api_key_id`\u003c/span\u003e - Unique identifier for this Organization API key.\n\n## Import\n\nAPI Keys must be imported using org ID, API Key ID e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/apiKey:ApiKey test 5d09d6a59ccf6445652a444a-6576974933969669\n```\nSee [MongoDB Atlas API - API Key](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Programmatic-API-Keys/operation/createApiKey) Documentation for more information.\n\n","properties":{"apiKeyId":{"type":"string"},"description":{"type":"string","description":"Description of this Organization API key.\n"},"orgId":{"type":"string","description":"Unique identifier for the organization whose API keys you want to retrieve. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n"},"privateKey":{"type":"string","secret":true},"publicKey":{"type":"string"},"roleNames":{"type":"array","items":{"type":"string"},"description":"Name of the role. This resource returns all the roles the user has in Atlas.\nThe following are valid roles:\n* `ORG_OWNER`\n* `ORG_GROUP_CREATOR`\n* `ORG_BILLING_ADMIN`\n* `ORG_READ_ONLY`\n* `ORG_MEMBER`\n"}},"required":["apiKeyId","description","orgId","privateKey","publicKey","roleNames"],"inputProperties":{"description":{"type":"string","description":"Description of this Organization API key.\n"},"orgId":{"type":"string","description":"Unique identifier for the organization whose API keys you want to retrieve. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"Name of the role. This resource returns all the roles the user has in Atlas.\nThe following are valid roles:\n* `ORG_OWNER`\n* `ORG_GROUP_CREATOR`\n* `ORG_BILLING_ADMIN`\n* `ORG_READ_ONLY`\n* `ORG_MEMBER`\n"}},"requiredInputs":["description","orgId","roleNames"],"stateInputs":{"description":"Input properties used for looking up and filtering ApiKey resources.\n","properties":{"apiKeyId":{"type":"string"},"description":{"type":"string","description":"Description of this Organization API key.\n"},"orgId":{"type":"string","description":"Unique identifier for the organization whose API keys you want to retrieve. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n"},"privateKey":{"type":"string","secret":true},"publicKey":{"type":"string"},"roleNames":{"type":"array","items":{"type":"string"},"description":"Name of the role. This resource returns all the roles the user has in Atlas.\nThe following are valid roles:\n* `ORG_OWNER`\n* `ORG_GROUP_CREATOR`\n* `ORG_BILLING_ADMIN`\n* `ORG_READ_ONLY`\n* `ORG_MEMBER`\n"}},"type":"object"}},"mongodbatlas:index/apiKeyProjectAssignment:ApiKeyProjectAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-go=\"`ApiKeyProjectAssignment`\" pulumi-lang-python=\"`ApiKeyProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.ApiKeyProjectAssignment`\"\u003e`mongodbatlas.ApiKeyProjectAssignment`\u003c/span\u003e provides an API Key Project Assignment resource. The resource lets you create, edit, and delete Organization API keys assignments to projects.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.ApiKey(\"this\", {\n    orgId: orgId,\n    description: \"Test API Key\",\n    roleNames: [\"ORG_READ_ONLY\"],\n});\nconst firstProject = new mongodbatlas.Project(\"first_project\", {\n    name: \"First Project\",\n    orgId: orgId,\n});\nconst secondProject = new mongodbatlas.Project(\"second_project\", {\n    name: \"Second Project\",\n    orgId: orgId,\n});\nconst firstAssignmentApiKeyProjectAssignment = new mongodbatlas.ApiKeyProjectAssignment(\"first_assignment\", {\n    projectId: firstProject.id,\n    apiKeyId: _this.apiKeyId,\n    roles: [\"GROUP_OWNER\"],\n});\nconst secondAssignment = new mongodbatlas.ApiKeyProjectAssignment(\"second_assignment\", {\n    projectId: secondProject.id,\n    apiKeyId: _this.apiKeyId,\n    roles: [\"GROUP_OWNER\"],\n});\n// Add IP Access List Entry to Programmatic API Key \nconst thisAccessListApiKey = new mongodbatlas.AccessListApiKey(\"this\", {\n    orgId: orgId,\n    cidrBlock: \"0.0.0.0/1\",\n    apiKeyId: _this.apiKeyId,\n});\n// Data source to read a single API key project assignment\nconst firstAssignment = mongodbatlas.getApiKeyProjectAssignmentOutput({\n    projectId: firstAssignmentApiKeyProjectAssignment.projectId,\n    apiKeyId: firstAssignmentApiKeyProjectAssignment.apiKeyId,\n});\n// Data source to read all API key project assignments for a project\nconst allAssignments = mongodbatlas.getApiKeyProjectAssignmentsOutput({\n    projectId: firstProject.id,\n});\nexport const firstAssignmentProjectId = firstAssignment.apply(firstAssignment =\u003e firstAssignment.projectId);\nexport const allAssignmentsProjectIds = allAssignments.apply(allAssignments =\u003e .map(assignment =\u003e (assignment.projectId)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.ApiKey(\"this\",\n    org_id=org_id,\n    description=\"Test API Key\",\n    role_names=[\"ORG_READ_ONLY\"])\nfirst_project = mongodbatlas.Project(\"first_project\",\n    name=\"First Project\",\n    org_id=org_id)\nsecond_project = mongodbatlas.Project(\"second_project\",\n    name=\"Second Project\",\n    org_id=org_id)\nfirst_assignment_api_key_project_assignment = mongodbatlas.ApiKeyProjectAssignment(\"first_assignment\",\n    project_id=first_project.id,\n    api_key_id=this.api_key_id,\n    roles=[\"GROUP_OWNER\"])\nsecond_assignment = mongodbatlas.ApiKeyProjectAssignment(\"second_assignment\",\n    project_id=second_project.id,\n    api_key_id=this.api_key_id,\n    roles=[\"GROUP_OWNER\"])\n# Add IP Access List Entry to Programmatic API Key \nthis_access_list_api_key = mongodbatlas.AccessListApiKey(\"this\",\n    org_id=org_id,\n    cidr_block=\"0.0.0.0/1\",\n    api_key_id=this.api_key_id)\n# Data source to read a single API key project assignment\nfirst_assignment = mongodbatlas.get_api_key_project_assignment_output(project_id=first_assignment_api_key_project_assignment.project_id,\n    api_key_id=first_assignment_api_key_project_assignment.api_key_id)\n# Data source to read all API key project assignments for a project\nall_assignments = mongodbatlas.get_api_key_project_assignments_output(project_id=first_project.id)\npulumi.export(\"firstAssignmentProjectId\", first_assignment.project_id)\npulumi.export(\"allAssignmentsProjectIds\", all_assignments.apply(lambda all_assignments: [assignment.project_id for assignment in all_assignments.results]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.ApiKey(\"this\", new()\n    {\n        OrgId = orgId,\n        Description = \"Test API Key\",\n        RoleNames = new[]\n        {\n            \"ORG_READ_ONLY\",\n        },\n    });\n\n    var firstProject = new Mongodbatlas.Project(\"first_project\", new()\n    {\n        Name = \"First Project\",\n        OrgId = orgId,\n    });\n\n    var secondProject = new Mongodbatlas.Project(\"second_project\", new()\n    {\n        Name = \"Second Project\",\n        OrgId = orgId,\n    });\n\n    var firstAssignmentApiKeyProjectAssignment = new Mongodbatlas.ApiKeyProjectAssignment(\"first_assignment\", new()\n    {\n        ProjectId = firstProject.Id,\n        ApiKeyId = @this.ApiKeyId,\n        Roles = new[]\n        {\n            \"GROUP_OWNER\",\n        },\n    });\n\n    var secondAssignment = new Mongodbatlas.ApiKeyProjectAssignment(\"second_assignment\", new()\n    {\n        ProjectId = secondProject.Id,\n        ApiKeyId = @this.ApiKeyId,\n        Roles = new[]\n        {\n            \"GROUP_OWNER\",\n        },\n    });\n\n    // Add IP Access List Entry to Programmatic API Key \n    var thisAccessListApiKey = new Mongodbatlas.AccessListApiKey(\"this\", new()\n    {\n        OrgId = orgId,\n        CidrBlock = \"0.0.0.0/1\",\n        ApiKeyId = @this.ApiKeyId,\n    });\n\n    // Data source to read a single API key project assignment\n    var firstAssignment = Mongodbatlas.GetApiKeyProjectAssignment.Invoke(new()\n    {\n        ProjectId = firstAssignmentApiKeyProjectAssignment.ProjectId,\n        ApiKeyId = firstAssignmentApiKeyProjectAssignment.ApiKeyId,\n    });\n\n    // Data source to read all API key project assignments for a project\n    var allAssignments = Mongodbatlas.GetApiKeyProjectAssignments.Invoke(new()\n    {\n        ProjectId = firstProject.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstAssignmentProjectId\"] = firstAssignment.Apply(getApiKeyProjectAssignmentResult =\u003e getApiKeyProjectAssignmentResult.ProjectId),\n        [\"allAssignmentsProjectIds\"] = .Select(assignment =\u003e \n        {\n            return assignment.ProjectId;\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Assign API Key to Project\n\n\n## Import \n\nAPI Key Project Assignment resource can be imported using the project ID and API key ID, in the format `{PROJECT_ID}/{API_KEY_ID}`, e.g.\n\n```\nterraform import mongodbatlas_api_key_project_assignment.test 65def6ce0f722a1507105aa5/66f1c018dba9c04e7dcfaf36\n```\n\nFor more information see: [MongoDB Atlas API - Programmatic API Keys Project Assignment](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-programmatic-api-keys) Documentation.\n","properties":{"apiKeyId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Human-readable label that identifies the collection of privileges that MongoDB Cloud grants a specific API key, MongoDB Cloud user, or MongoDB Cloud team. These roles include only the specific project-level roles."}},"required":["apiKeyId","projectId","roles"],"inputProperties":{"apiKeyId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Human-readable label that identifies the collection of privileges that MongoDB Cloud grants a specific API key, MongoDB Cloud user, or MongoDB Cloud team. These roles include only the specific project-level roles."}},"requiredInputs":["apiKeyId","projectId","roles"],"stateInputs":{"description":"Input properties used for looking up and filtering ApiKeyProjectAssignment resources.\n","properties":{"apiKeyId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Human-readable label that identifies the collection of privileges that MongoDB Cloud grants a specific API key, MongoDB Cloud user, or MongoDB Cloud team. These roles include only the specific project-level roles."}},"type":"object"}},"mongodbatlas:index/auditing:Auditing":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Auditing`\" pulumi-lang-dotnet=\"`mongodbatlas.Auditing`\" pulumi-lang-go=\"`Auditing`\" pulumi-lang-python=\"`Auditing`\" pulumi-lang-yaml=\"`mongodbatlas.Auditing`\" pulumi-lang-java=\"`mongodbatlas.Auditing`\"\u003e`mongodbatlas.Auditing`\u003c/span\u003e provides an Auditing resource. This allows auditing to be created.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.Auditing(\"test\", {\n    projectId: \"\u003cproject-id\u003e\",\n    auditFilter: \"{ 'atype': 'authenticate', 'param': {   'user': 'auditAdmin',   'db': 'admin',   'mechanism': 'SCRAM-SHA-1' }}\",\n    auditAuthorizationSuccess: false,\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.Auditing(\"test\",\n    project_id=\"\u003cproject-id\u003e\",\n    audit_filter=\"{ 'atype': 'authenticate', 'param': {   'user': 'auditAdmin',   'db': 'admin',   'mechanism': 'SCRAM-SHA-1' }}\",\n    audit_authorization_success=False,\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.Auditing(\"test\", new()\n    {\n        ProjectId = \"\u003cproject-id\u003e\",\n        AuditFilter = \"{ 'atype': 'authenticate', 'param': {   'user': 'auditAdmin',   'db': 'admin',   'mechanism': 'SCRAM-SHA-1' }}\",\n        AuditAuthorizationSuccess = false,\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAuditing(ctx, \"test\", \u0026mongodbatlas.AuditingArgs{\n\t\t\tProjectId:                 pulumi.String(\"\u003cproject-id\u003e\"),\n\t\t\tAuditFilter:               pulumi.String(\"{ 'atype': 'authenticate', 'param': {   'user': 'auditAdmin',   'db': 'admin',   'mechanism': 'SCRAM-SHA-1' }}\"),\n\t\t\tAuditAuthorizationSuccess: pulumi.Bool(false),\n\t\t\tEnabled:                   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Auditing;\nimport com.pulumi.mongodbatlas.AuditingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Auditing(\"test\", AuditingArgs.builder()\n            .projectId(\"\u003cproject-id\u003e\")\n            .auditFilter(\"{ 'atype': 'authenticate', 'param': {   'user': 'auditAdmin',   'db': 'admin',   'mechanism': 'SCRAM-SHA-1' }}\")\n            .auditAuthorizationSuccess(false)\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:Auditing\n    properties:\n      projectId: \u003cproject-id\u003e\n      auditFilter: '{ ''atype'': ''authenticate'', ''param'': {   ''user'': ''auditAdmin'',   ''db'': ''admin'',   ''mechanism'': ''SCRAM-SHA-1'' }}'\n      auditAuthorizationSuccess: false\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAuditing must be imported using auditing ID, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/auditing:Auditing my_auditing 5d09d6a59ccf6445652a444a\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/auditing/)\n\n","properties":{"auditAuthorizationSuccess":{"type":"boolean","description":"Indicates whether the auditing system captures successful authentication attempts for audit filters using the \"atype\" : \"authCheck\" auditing event. For more information, see [auditAuthorizationSuccess](https://docs.mongodb.com/manual/reference/parameters/#param.auditAuthorizationSuccess).  **Warning! Enabling Audit authorization successes can severely impact cluster performance. Enable this option with caution.**\n"},"auditFilter":{"type":"string","description":"JSON-formatted audit filter. For complete documentation on custom auditing filters, see [Configure Audit Filters](https://docs.mongodb.com/manual/tutorial/configure-audit-filters/).\n"},"configurationType":{"type":"string","description":"Denotes the configuration method for the audit filter. Possible values are: \n* NONE - auditing not configured for the project.\n* FILTER_BUILDER - auditing configured via Atlas UI filter builder.\n* FILTER_JSON - auditing configured via Atlas custom filter or API.\n"},"enabled":{"type":"boolean","description":"Denotes whether or not the project associated with the {project_id} has database auditing enabled.  Defaults to false.\n\n\u003e **NOTE:** Auditing created by API Keys must belong to an existing organization.\n"},"projectId":{"type":"string","description":"The unique ID for the project to configure auditing. **Note: When changing this value to a different\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eit will delete the current audit settings for the original project that was assigned to.**\n"}},"required":["auditAuthorizationSuccess","auditFilter","configurationType","enabled","projectId"],"inputProperties":{"auditAuthorizationSuccess":{"type":"boolean","description":"Indicates whether the auditing system captures successful authentication attempts for audit filters using the \"atype\" : \"authCheck\" auditing event. For more information, see [auditAuthorizationSuccess](https://docs.mongodb.com/manual/reference/parameters/#param.auditAuthorizationSuccess).  **Warning! Enabling Audit authorization successes can severely impact cluster performance. Enable this option with caution.**\n"},"auditFilter":{"type":"string","description":"JSON-formatted audit filter. For complete documentation on custom auditing filters, see [Configure Audit Filters](https://docs.mongodb.com/manual/tutorial/configure-audit-filters/).\n"},"enabled":{"type":"boolean","description":"Denotes whether or not the project associated with the {project_id} has database auditing enabled.  Defaults to false.\n\n\u003e **NOTE:** Auditing created by API Keys must belong to an existing organization.\n"},"projectId":{"type":"string","description":"The unique ID for the project to configure auditing. **Note: When changing this value to a different\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eit will delete the current audit settings for the original project that was assigned to.**\n","willReplaceOnChanges":true}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering Auditing resources.\n","properties":{"auditAuthorizationSuccess":{"type":"boolean","description":"Indicates whether the auditing system captures successful authentication attempts for audit filters using the \"atype\" : \"authCheck\" auditing event. For more information, see [auditAuthorizationSuccess](https://docs.mongodb.com/manual/reference/parameters/#param.auditAuthorizationSuccess).  **Warning! Enabling Audit authorization successes can severely impact cluster performance. Enable this option with caution.**\n"},"auditFilter":{"type":"string","description":"JSON-formatted audit filter. For complete documentation on custom auditing filters, see [Configure Audit Filters](https://docs.mongodb.com/manual/tutorial/configure-audit-filters/).\n"},"configurationType":{"type":"string","description":"Denotes the configuration method for the audit filter. Possible values are: \n* NONE - auditing not configured for the project.\n* FILTER_BUILDER - auditing configured via Atlas UI filter builder.\n* FILTER_JSON - auditing configured via Atlas custom filter or API.\n"},"enabled":{"type":"boolean","description":"Denotes whether or not the project associated with the {project_id} has database auditing enabled.  Defaults to false.\n\n\u003e **NOTE:** Auditing created by API Keys must belong to an existing organization.\n"},"projectId":{"type":"string","description":"The unique ID for the project to configure auditing. **Note: When changing this value to a different\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eit will delete the current audit settings for the original project that was assigned to.**\n","willReplaceOnChanges":true}},"type":"object"}},"mongodbatlas:index/backupCompliancePolicy:BackupCompliancePolicy":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.BackupCompliancePolicy`\" pulumi-lang-dotnet=\"`mongodbatlas.BackupCompliancePolicy`\" pulumi-lang-go=\"`BackupCompliancePolicy`\" pulumi-lang-python=\"`BackupCompliancePolicy`\" pulumi-lang-yaml=\"`mongodbatlas.BackupCompliancePolicy`\" pulumi-lang-java=\"`mongodbatlas.BackupCompliancePolicy`\"\u003e`mongodbatlas.BackupCompliancePolicy`\u003c/span\u003e provides a resource that enables you to set up a Backup Compliance Policy resource. [Backup Compliance Policy ](https://www.mongodb.com/docs/atlas/backup/cloud-backup/backup-compliance-policy) prevents any user, regardless of role, from modifying or deleting specific cluster settings, backups, and backup configurations. When enabled, the Backup Compliance Policy will be applied as the minimum policy for all clusters and backups in the project. It can only be disabled by contacting MongoDB support. This feature is only supported for cluster tiers M10+.\n\nWhen enabled, the Backup Compliance Policy will be applied as the minimum backup policy to all clusters in a project and will protect all existing snapshots. This will prevent any user, regardless of role, from modifying or deleting existing snapshots prior to expiration. Changes made to existing backup policies will only apply to future snapshots.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You might find `groupId` in the official documentation.\n\n\u003e **IMPORTANT NOTE:** Once a Backup Compliance Policy is enabled, no user, regardless of role, can disable the Backup Compliance Policy via Terraform, or any other method, without contacting MongoDB Support. However, if the Backup Compliance Policy is approved for disablement by MongoDB Support, the resource can be removed and the delete operation will successfully disable the Backup Compliance Policy. With Backup Compliance Policy enabled, some resources defined in Terraform will no longer be modifiable. See the full list of [Backup Compliance Policy Prohibited Actions and Considerations](https://www.mongodb.com/docs/atlas/backup/cloud-backup/backup-compliance-policy/#configure-a-backup-compliance-policy). \n\n\u003e **NOTE:** With Backup Compliance Policy enabled, cluster backups are retained after a cluster is deleted and backups can be used normally until retention expiration. When the Backup Compliance Policy is not enabled, Atlas deletes the cluster's associated backup snapshots when a cluster is terminated. By default, a Backup Compliance Policy is not enabled. For more details see [Back Up, Restore, and Archive Data](https://www.mongodb.com/docs/atlas/backup-restore-cluster/). \n\n\u003e **NOTE:** To delete an Atlas cluster that has an associated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource and an enabled Backup Compliance Policy, first instruct Terraform to remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource from the state and then use Terraform to delete the cluster. To learn more, see Delete a Cluster with a Backup Compliance Policy.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"clusterTest\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: region,\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst testCloudBackupSchedule = new mongodbatlas.CloudBackupSchedule(\"test\", {\n    projectId: myCluster.projectId,\n    clusterName: myCluster.name,\n    referenceHourOfDay: 3,\n    referenceMinuteOfHour: 45,\n    restoreWindowDays: 4,\n    policyItemHourly: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 7,\n    },\n    policyItemDaily: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 7,\n    },\n    policyItemWeeklies: [{\n        frequencyInterval: 1,\n        retentionUnit: \"weeks\",\n        retentionValue: 4,\n    }],\n    policyItemMonthlies: [{\n        frequencyInterval: 1,\n        retentionUnit: \"months\",\n        retentionValue: 12,\n    }],\n    policyItemYearlies: [{\n        frequencyInterval: 1,\n        retentionUnit: \"years\",\n        retentionValue: 1,\n    }],\n});\nconst test = mongodbatlas.getCloudBackupScheduleOutput({\n    projectId: testCloudBackupSchedule.projectId,\n    clusterName: testCloudBackupSchedule.clusterName,\n});\nconst backupPolicy = mongodbatlas.getBackupCompliancePolicyOutput({\n    projectId: testCloudBackupSchedule.projectId,\n});\nconst backupPolicyBackupCompliancePolicy = new mongodbatlas.BackupCompliancePolicy(\"backup_policy\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    authorizedEmail: \"user@email.com\",\n    authorizedUserFirstName: \"First\",\n    authorizedUserLastName: \"Last\",\n    copyProtectionEnabled: false,\n    pitEnabled: false,\n    encryptionAtRestEnabled: false,\n    restoreWindowDays: 7,\n    onDemandPolicyItem: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 3,\n    },\n    policyItemHourly: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 7,\n    },\n    policyItemDaily: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 7,\n    },\n    policyItemWeeklies: [{\n        frequencyInterval: 1,\n        retentionUnit: \"weeks\",\n        retentionValue: 4,\n    }],\n    policyItemMonthlies: [{\n        frequencyInterval: 1,\n        retentionUnit: \"months\",\n        retentionValue: 12,\n    }],\n    policyItemYearlies: [{\n        frequencyInterval: 1,\n        retentionUnit: \"years\",\n        retentionValue: 1,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"clusterTest\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": region,\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest_cloud_backup_schedule = mongodbatlas.CloudBackupSchedule(\"test\",\n    project_id=my_cluster.project_id,\n    cluster_name=my_cluster.name,\n    reference_hour_of_day=3,\n    reference_minute_of_hour=45,\n    restore_window_days=4,\n    policy_item_hourly={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 7,\n    },\n    policy_item_daily={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 7,\n    },\n    policy_item_weeklies=[{\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"weeks\",\n        \"retention_value\": 4,\n    }],\n    policy_item_monthlies=[{\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"months\",\n        \"retention_value\": 12,\n    }],\n    policy_item_yearlies=[{\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"years\",\n        \"retention_value\": 1,\n    }])\ntest = mongodbatlas.get_cloud_backup_schedule_output(project_id=test_cloud_backup_schedule.project_id,\n    cluster_name=test_cloud_backup_schedule.cluster_name)\nbackup_policy = mongodbatlas.get_backup_compliance_policy_output(project_id=test_cloud_backup_schedule.project_id)\nbackup_policy_backup_compliance_policy = mongodbatlas.BackupCompliancePolicy(\"backup_policy\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    authorized_email=\"user@email.com\",\n    authorized_user_first_name=\"First\",\n    authorized_user_last_name=\"Last\",\n    copy_protection_enabled=False,\n    pit_enabled=False,\n    encryption_at_rest_enabled=False,\n    restore_window_days=7,\n    on_demand_policy_item={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 3,\n    },\n    policy_item_hourly={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 7,\n    },\n    policy_item_daily={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 7,\n    },\n    policy_item_weeklies=[{\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"weeks\",\n        \"retention_value\": 4,\n    }],\n    policy_item_monthlies=[{\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"months\",\n        \"retention_value\": 12,\n    }],\n    policy_item_yearlies=[{\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"years\",\n        \"retention_value\": 1,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"clusterTest\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = region,\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var testCloudBackupSchedule = new Mongodbatlas.CloudBackupSchedule(\"test\", new()\n    {\n        ProjectId = myCluster.ProjectId,\n        ClusterName = myCluster.Name,\n        ReferenceHourOfDay = 3,\n        ReferenceMinuteOfHour = 45,\n        RestoreWindowDays = 4,\n        PolicyItemHourly = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemHourlyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 7,\n        },\n        PolicyItemDaily = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemDailyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 7,\n        },\n        PolicyItemWeeklies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemWeeklyArgs\n            {\n                FrequencyInterval = 1,\n                RetentionUnit = \"weeks\",\n                RetentionValue = 4,\n            },\n        },\n        PolicyItemMonthlies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemMonthlyArgs\n            {\n                FrequencyInterval = 1,\n                RetentionUnit = \"months\",\n                RetentionValue = 12,\n            },\n        },\n        PolicyItemYearlies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemYearlyArgs\n            {\n                FrequencyInterval = 1,\n                RetentionUnit = \"years\",\n                RetentionValue = 1,\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetCloudBackupSchedule.Invoke(new()\n    {\n        ProjectId = testCloudBackupSchedule.ProjectId,\n        ClusterName = testCloudBackupSchedule.ClusterName,\n    });\n\n    var backupPolicy = Mongodbatlas.GetBackupCompliancePolicy.Invoke(new()\n    {\n        ProjectId = testCloudBackupSchedule.ProjectId,\n    });\n\n    var backupPolicyBackupCompliancePolicy = new Mongodbatlas.BackupCompliancePolicy(\"backup_policy\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        AuthorizedEmail = \"user@email.com\",\n        AuthorizedUserFirstName = \"First\",\n        AuthorizedUserLastName = \"Last\",\n        CopyProtectionEnabled = false,\n        PitEnabled = false,\n        EncryptionAtRestEnabled = false,\n        RestoreWindowDays = 7,\n        OnDemandPolicyItem = new Mongodbatlas.Inputs.BackupCompliancePolicyOnDemandPolicyItemArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 3,\n        },\n        PolicyItemHourly = new Mongodbatlas.Inputs.BackupCompliancePolicyPolicyItemHourlyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 7,\n        },\n        PolicyItemDaily = new Mongodbatlas.Inputs.BackupCompliancePolicyPolicyItemDailyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 7,\n        },\n        PolicyItemWeeklies = new[]\n        {\n            new Mongodbatlas.Inputs.BackupCompliancePolicyPolicyItemWeeklyArgs\n            {\n                FrequencyInterval = 1,\n                RetentionUnit = \"weeks\",\n                RetentionValue = 4,\n            },\n        },\n        PolicyItemMonthlies = new[]\n        {\n            new Mongodbatlas.Inputs.BackupCompliancePolicyPolicyItemMonthlyArgs\n            {\n                FrequencyInterval = 1,\n                RetentionUnit = \"months\",\n                RetentionValue = 12,\n            },\n        },\n        PolicyItemYearlies = new[]\n        {\n            new Mongodbatlas.Inputs.BackupCompliancePolicyPolicyItemYearlyArgs\n            {\n                FrequencyInterval = 1,\n                RetentionUnit = \"years\",\n                RetentionValue = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"clusterTest\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.Any(region),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestCloudBackupSchedule, err := mongodbatlas.NewCloudBackupSchedule(ctx, \"test\", \u0026mongodbatlas.CloudBackupScheduleArgs{\n\t\t\tProjectId:             myCluster.ProjectId,\n\t\t\tClusterName:           myCluster.Name,\n\t\t\tReferenceHourOfDay:    pulumi.Int(3),\n\t\t\tReferenceMinuteOfHour: pulumi.Int(45),\n\t\t\tRestoreWindowDays:     pulumi.Int(4),\n\t\t\tPolicyItemHourly: \u0026mongodbatlas.CloudBackupSchedulePolicyItemHourlyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(7),\n\t\t\t},\n\t\t\tPolicyItemDaily: \u0026mongodbatlas.CloudBackupSchedulePolicyItemDailyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(7),\n\t\t\t},\n\t\t\tPolicyItemWeeklies: mongodbatlas.CloudBackupSchedulePolicyItemWeeklyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemWeeklyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"weeks\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemMonthlies: mongodbatlas.CloudBackupSchedulePolicyItemMonthlyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemMonthlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"months\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(12),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemYearlies: mongodbatlas.CloudBackupSchedulePolicyItemYearlyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemYearlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"years\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCloudBackupScheduleOutput(ctx, mongodbatlas.GetCloudBackupScheduleOutputArgs{\n\t\t\tProjectId:   testCloudBackupSchedule.ProjectId,\n\t\t\tClusterName: testCloudBackupSchedule.ClusterName,\n\t\t}, nil)\n\t\t_ = mongodbatlas.LookupBackupCompliancePolicyOutput(ctx, mongodbatlas.GetBackupCompliancePolicyOutputArgs{\n\t\t\tProjectId: testCloudBackupSchedule.ProjectId,\n\t\t}, nil)\n\t\t_, err = mongodbatlas.NewBackupCompliancePolicy(ctx, \"backup_policy\", \u0026mongodbatlas.BackupCompliancePolicyArgs{\n\t\t\tProjectId:               pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tAuthorizedEmail:         pulumi.String(\"user@email.com\"),\n\t\t\tAuthorizedUserFirstName: pulumi.String(\"First\"),\n\t\t\tAuthorizedUserLastName:  pulumi.String(\"Last\"),\n\t\t\tCopyProtectionEnabled:   pulumi.Bool(false),\n\t\t\tPitEnabled:              pulumi.Bool(false),\n\t\t\tEncryptionAtRestEnabled: pulumi.Bool(false),\n\t\t\tRestoreWindowDays:       pulumi.Int(7),\n\t\t\tOnDemandPolicyItem: \u0026mongodbatlas.BackupCompliancePolicyOnDemandPolicyItemArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(3),\n\t\t\t},\n\t\t\tPolicyItemHourly: \u0026mongodbatlas.BackupCompliancePolicyPolicyItemHourlyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(7),\n\t\t\t},\n\t\t\tPolicyItemDaily: \u0026mongodbatlas.BackupCompliancePolicyPolicyItemDailyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(7),\n\t\t\t},\n\t\t\tPolicyItemWeeklies: mongodbatlas.BackupCompliancePolicyPolicyItemWeeklyArray{\n\t\t\t\t\u0026mongodbatlas.BackupCompliancePolicyPolicyItemWeeklyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"weeks\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemMonthlies: mongodbatlas.BackupCompliancePolicyPolicyItemMonthlyArray{\n\t\t\t\t\u0026mongodbatlas.BackupCompliancePolicyPolicyItemMonthlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"months\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(12),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemYearlies: mongodbatlas.BackupCompliancePolicyPolicyItemYearlyArray{\n\t\t\t\t\u0026mongodbatlas.BackupCompliancePolicyPolicyItemYearlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"years\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSchedule;\nimport com.pulumi.mongodbatlas.CloudBackupScheduleArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemHourlyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemDailyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemWeeklyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemMonthlyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemYearlyArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudBackupScheduleArgs;\nimport com.pulumi.mongodbatlas.inputs.GetBackupCompliancePolicyArgs;\nimport com.pulumi.mongodbatlas.BackupCompliancePolicy;\nimport com.pulumi.mongodbatlas.BackupCompliancePolicyArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyOnDemandPolicyItemArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyPolicyItemHourlyArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyPolicyItemDailyArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyPolicyItemWeeklyArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyPolicyItemMonthlyArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyPolicyItemYearlyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"clusterTest\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(region)\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var testCloudBackupSchedule = new CloudBackupSchedule(\"testCloudBackupSchedule\", CloudBackupScheduleArgs.builder()\n            .projectId(myCluster.projectId())\n            .clusterName(myCluster.name())\n            .referenceHourOfDay(3)\n            .referenceMinuteOfHour(45)\n            .restoreWindowDays(4)\n            .policyItemHourly(CloudBackupSchedulePolicyItemHourlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(7)\n                .build())\n            .policyItemDaily(CloudBackupSchedulePolicyItemDailyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(7)\n                .build())\n            .policyItemWeeklies(CloudBackupSchedulePolicyItemWeeklyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"weeks\")\n                .retentionValue(4)\n                .build())\n            .policyItemMonthlies(CloudBackupSchedulePolicyItemMonthlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"months\")\n                .retentionValue(12)\n                .build())\n            .policyItemYearlies(CloudBackupSchedulePolicyItemYearlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"years\")\n                .retentionValue(1)\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getCloudBackupSchedule(GetCloudBackupScheduleArgs.builder()\n            .projectId(testCloudBackupSchedule.projectId())\n            .clusterName(testCloudBackupSchedule.clusterName())\n            .build());\n\n        final var backupPolicy = MongodbatlasFunctions.getBackupCompliancePolicy(GetBackupCompliancePolicyArgs.builder()\n            .projectId(testCloudBackupSchedule.projectId())\n            .build());\n\n        var backupPolicyBackupCompliancePolicy = new BackupCompliancePolicy(\"backupPolicyBackupCompliancePolicy\", BackupCompliancePolicyArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .authorizedEmail(\"user@email.com\")\n            .authorizedUserFirstName(\"First\")\n            .authorizedUserLastName(\"Last\")\n            .copyProtectionEnabled(false)\n            .pitEnabled(false)\n            .encryptionAtRestEnabled(false)\n            .restoreWindowDays(7)\n            .onDemandPolicyItem(BackupCompliancePolicyOnDemandPolicyItemArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(3)\n                .build())\n            .policyItemHourly(BackupCompliancePolicyPolicyItemHourlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(7)\n                .build())\n            .policyItemDaily(BackupCompliancePolicyPolicyItemDailyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(7)\n                .build())\n            .policyItemWeeklies(BackupCompliancePolicyPolicyItemWeeklyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"weeks\")\n                .retentionValue(4)\n                .build())\n            .policyItemMonthlies(BackupCompliancePolicyPolicyItemMonthlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"months\")\n                .retentionValue(12)\n                .build())\n            .policyItemYearlies(BackupCompliancePolicyPolicyItemYearlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"years\")\n                .retentionValue(1)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: my_cluster\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      name: clusterTest\n      clusterType: REPLICASET\n      backupEnabled: true # enable cloud backup snapshots\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: ${region}\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  testCloudBackupSchedule:\n    type: mongodbatlas:CloudBackupSchedule\n    name: test\n    properties:\n      projectId: ${myCluster.projectId}\n      clusterName: ${myCluster.name}\n      referenceHourOfDay: 3\n      referenceMinuteOfHour: 45\n      restoreWindowDays: 4 # This will now add the desired policy items to the existing mongodbatlas_cloud_backup_schedule resource\n      policyItemHourly:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 7\n      policyItemDaily:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 7\n      policyItemWeeklies:\n        - frequencyInterval: 1\n          retentionUnit: weeks\n          retentionValue: 4\n      policyItemMonthlies:\n        - frequencyInterval: 1\n          retentionUnit: months\n          retentionValue: 12\n      policyItemYearlies:\n        - frequencyInterval: 1\n          retentionUnit: years\n          retentionValue: 1\n  backupPolicyBackupCompliancePolicy:\n    type: mongodbatlas:BackupCompliancePolicy\n    name: backup_policy\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      authorizedEmail: user@email.com\n      authorizedUserFirstName: First\n      authorizedUserLastName: Last\n      copyProtectionEnabled: false\n      pitEnabled: false\n      encryptionAtRestEnabled: false\n      restoreWindowDays: 7\n      onDemandPolicyItem:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 3\n      policyItemHourly:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 7\n      policyItemDaily:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 7\n      policyItemWeeklies:\n        - frequencyInterval: 1\n          retentionUnit: weeks\n          retentionValue: 4\n      policyItemMonthlies:\n        - frequencyInterval: 1\n          retentionUnit: months\n          retentionValue: 12\n      policyItemYearlies:\n        - frequencyInterval: 1\n          retentionUnit: years\n          retentionValue: 1\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCloudBackupSchedule\n      arguments:\n        projectId: ${testCloudBackupSchedule.projectId}\n        clusterName: ${testCloudBackupSchedule.clusterName}\n  backupPolicy:\n    fn::invoke:\n      function: mongodbatlas:getBackupCompliancePolicy\n      arguments:\n        projectId: ${testCloudBackupSchedule.projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Backup Compliance Policy\n\n## Import\n\nBackup Compliance Policy entries can be imported using project\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003e in the format \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/backupCompliancePolicy:BackupCompliancePolicy backup_policy 5d0f1f73cf09a29120e173cf\n```\n\nFor more information see: [MongoDB Atlas API Reference](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Cloud-Backups/operation/updateDataProtectionSettings) and [Backup Compliance Policy Prohibited Actions](https://www.mongodb.com/docs/atlas/backup/cloud-backup/backup-compliance-policy/#prohibited-actions).\n\n","properties":{"authorizedEmail":{"type":"string","description":"Email address of a security or legal representative for the Backup Compliance Policy who is authorized to update the Backup Compliance Policy settings.\n"},"authorizedUserFirstName":{"type":"string","description":"First name of the user who authorized to update the Backup Compliance Policy settings.\n"},"authorizedUserLastName":{"type":"string","description":"Last name of the user who authorized to update the Backup Compliance Policy settings.\n"},"copyProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether to enable additional backup copies for the cluster. If unspecified, this value defaults to false.\n"},"encryptionAtRestEnabled":{"type":"boolean","description":"Flag that indicates whether Encryption at Rest using Customer Key Management is required for all clusters with a Backup Compliance Policy. If unspecified, this value defaults to false.\n"},"onDemandPolicyItem":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyOnDemandPolicyItem:BackupCompliancePolicyOnDemandPolicyItem","description":"Specifications for on-demand policy.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates whether the cluster uses Continuous Cloud Backups with a Backup Compliance Policy. If unspecified, this value defaults to false.\n"},"policyItemDaily":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemDaily:BackupCompliancePolicyPolicyItemDaily","description":"Scheduled policy using a daily frequency type, see block fields.\n"},"policyItemHourly":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemHourly:BackupCompliancePolicyPolicyItemHourly","description":"Scheduled policy using an hourly frequency type, see block fields.\n"},"policyItemMonthlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemMonthly:BackupCompliancePolicyPolicyItemMonthly"},"description":"Scheduled policy using a monthly frequency type, see block fields.\n"},"policyItemWeeklies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemWeekly:BackupCompliancePolicyPolicyItemWeekly"},"description":"Scheduled policy using a weekly frequency type, see block fields.\n"},"policyItemYearlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemYearly:BackupCompliancePolicyPolicyItemYearly"},"description":"Scheduled policy using a yearly frequency type, see block fields.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"restoreWindowDays":{"type":"integer","description":"Number of previous days that you can restore back to with Continuous Cloud Backup with a Backup Compliance Policy. You must specify a positive, non-zero integer, and the maximum retention window can't exceed the hourly retention time. This parameter applies only to Continuous Cloud Backups with a Backup Compliance Policy.\n"},"state":{"type":"string","description":"Label that indicates the state of the Backup Compliance Policy settings. MongoDB Cloud ignores this setting when you enable or update the Backup Compliance Policy settings.\n"},"updatedDate":{"type":"string","description":"ISO 8601 timestamp format in UTC that indicates when the user updated the Data Protection Policy settings. MongoDB Cloud ignores this setting when you enable or update the Backup Compliance Policy settings.\n"},"updatedUser":{"type":"string","description":"Email address that identifies the user who updated the Backup Compliance Policy settings. MongoDB Cloud ignores this email setting when you enable or update the Backup Compliance Policy settings.\n"}},"required":["authorizedEmail","authorizedUserFirstName","authorizedUserLastName","projectId","restoreWindowDays","state","updatedDate","updatedUser"],"inputProperties":{"authorizedEmail":{"type":"string","description":"Email address of a security or legal representative for the Backup Compliance Policy who is authorized to update the Backup Compliance Policy settings.\n"},"authorizedUserFirstName":{"type":"string","description":"First name of the user who authorized to update the Backup Compliance Policy settings.\n"},"authorizedUserLastName":{"type":"string","description":"Last name of the user who authorized to update the Backup Compliance Policy settings.\n"},"copyProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether to enable additional backup copies for the cluster. If unspecified, this value defaults to false.\n"},"encryptionAtRestEnabled":{"type":"boolean","description":"Flag that indicates whether Encryption at Rest using Customer Key Management is required for all clusters with a Backup Compliance Policy. If unspecified, this value defaults to false.\n"},"onDemandPolicyItem":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyOnDemandPolicyItem:BackupCompliancePolicyOnDemandPolicyItem","description":"Specifications for on-demand policy.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates whether the cluster uses Continuous Cloud Backups with a Backup Compliance Policy. If unspecified, this value defaults to false.\n"},"policyItemDaily":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemDaily:BackupCompliancePolicyPolicyItemDaily","description":"Scheduled policy using a daily frequency type, see block fields.\n"},"policyItemHourly":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemHourly:BackupCompliancePolicyPolicyItemHourly","description":"Scheduled policy using an hourly frequency type, see block fields.\n"},"policyItemMonthlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemMonthly:BackupCompliancePolicyPolicyItemMonthly"},"description":"Scheduled policy using a monthly frequency type, see block fields.\n"},"policyItemWeeklies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemWeekly:BackupCompliancePolicyPolicyItemWeekly"},"description":"Scheduled policy using a weekly frequency type, see block fields.\n"},"policyItemYearlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemYearly:BackupCompliancePolicyPolicyItemYearly"},"description":"Scheduled policy using a yearly frequency type, see block fields.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"restoreWindowDays":{"type":"integer","description":"Number of previous days that you can restore back to with Continuous Cloud Backup with a Backup Compliance Policy. You must specify a positive, non-zero integer, and the maximum retention window can't exceed the hourly retention time. This parameter applies only to Continuous Cloud Backups with a Backup Compliance Policy.\n"}},"requiredInputs":["authorizedEmail","authorizedUserFirstName","authorizedUserLastName","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering BackupCompliancePolicy resources.\n","properties":{"authorizedEmail":{"type":"string","description":"Email address of a security or legal representative for the Backup Compliance Policy who is authorized to update the Backup Compliance Policy settings.\n"},"authorizedUserFirstName":{"type":"string","description":"First name of the user who authorized to update the Backup Compliance Policy settings.\n"},"authorizedUserLastName":{"type":"string","description":"Last name of the user who authorized to update the Backup Compliance Policy settings.\n"},"copyProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether to enable additional backup copies for the cluster. If unspecified, this value defaults to false.\n"},"encryptionAtRestEnabled":{"type":"boolean","description":"Flag that indicates whether Encryption at Rest using Customer Key Management is required for all clusters with a Backup Compliance Policy. If unspecified, this value defaults to false.\n"},"onDemandPolicyItem":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyOnDemandPolicyItem:BackupCompliancePolicyOnDemandPolicyItem","description":"Specifications for on-demand policy.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates whether the cluster uses Continuous Cloud Backups with a Backup Compliance Policy. If unspecified, this value defaults to false.\n"},"policyItemDaily":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemDaily:BackupCompliancePolicyPolicyItemDaily","description":"Scheduled policy using a daily frequency type, see block fields.\n"},"policyItemHourly":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemHourly:BackupCompliancePolicyPolicyItemHourly","description":"Scheduled policy using an hourly frequency type, see block fields.\n"},"policyItemMonthlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemMonthly:BackupCompliancePolicyPolicyItemMonthly"},"description":"Scheduled policy using a monthly frequency type, see block fields.\n"},"policyItemWeeklies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemWeekly:BackupCompliancePolicyPolicyItemWeekly"},"description":"Scheduled policy using a weekly frequency type, see block fields.\n"},"policyItemYearlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/BackupCompliancePolicyPolicyItemYearly:BackupCompliancePolicyPolicyItemYearly"},"description":"Scheduled policy using a yearly frequency type, see block fields.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"restoreWindowDays":{"type":"integer","description":"Number of previous days that you can restore back to with Continuous Cloud Backup with a Backup Compliance Policy. You must specify a positive, non-zero integer, and the maximum retention window can't exceed the hourly retention time. This parameter applies only to Continuous Cloud Backups with a Backup Compliance Policy.\n"},"state":{"type":"string","description":"Label that indicates the state of the Backup Compliance Policy settings. MongoDB Cloud ignores this setting when you enable or update the Backup Compliance Policy settings.\n"},"updatedDate":{"type":"string","description":"ISO 8601 timestamp format in UTC that indicates when the user updated the Data Protection Policy settings. MongoDB Cloud ignores this setting when you enable or update the Backup Compliance Policy settings.\n"},"updatedUser":{"type":"string","description":"Email address that identifies the user who updated the Backup Compliance Policy settings. MongoDB Cloud ignores this email setting when you enable or update the Backup Compliance Policy settings.\n"}},"type":"object"}},"mongodbatlas:index/cloudBackupSchedule:CloudBackupSchedule":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e provides a cloud backup schedule resource. The resource lets you create, read, update and delete a cloud backup schedule.\n\n\u003e **NOTE** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **NOTE:** If Backup Compliance Policy is enabled for the project for which this backup schedule is defined, you cannot modify the backup schedule for an individual cluster below the minimum requirements set in the Backup Compliance Policy.  See [Backup Compliance Policy Prohibited Actions and Considerations](https://www.mongodb.com/docs/atlas/backup/cloud-backup/backup-compliance-policy/#configure-a-backup-compliance-policy). \n\n\u003e **NOTE:** If you need to remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e, read this guide.\n\n\u003e **NOTE:** When creating a backup schedule you **must either** use the \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e clause to indicate the cluster to which it refers **or** specify the values of \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clusterName`\" pulumi-lang-dotnet=\"`ClusterName`\" pulumi-lang-go=\"`clusterName`\" pulumi-lang-python=\"`cluster_name`\" pulumi-lang-yaml=\"`clusterName`\" pulumi-lang-java=\"`clusterName`\"\u003e`cluster_name`\u003c/span\u003e as reference of the cluster resource (e.g. \u003cspan pulumi-lang-nodejs=\"`clusterName \" pulumi-lang-dotnet=\"`ClusterName \" pulumi-lang-go=\"`clusterName \" pulumi-lang-python=\"`cluster_name \" pulumi-lang-yaml=\"`clusterName \" pulumi-lang-java=\"`clusterName \"\u003e`cluster_name \u003c/span\u003e= mongodbatlas_advanced_cluster.my_cluster.name` - see the example below). Failure in doing so will result in an error when executing the plan.\n\nIn the Terraform MongoDB Atlas Provider 1.0.0 we have re-architected the way in which Cloud Backup Policies are managed with Terraform to significantly reduce the complexity. Due to this change we've provided the following examples to help express how this resource functions.\n\n\n## Example Usage\n\n### Create A Cluster With 2 Policies Items\n\nYou can create a new cluster with \u003cspan pulumi-lang-nodejs=\"`cloudBackup`\" pulumi-lang-dotnet=\"`CloudBackup`\" pulumi-lang-go=\"`cloudBackup`\" pulumi-lang-python=\"`cloud_backup`\" pulumi-lang-yaml=\"`cloudBackup`\" pulumi-lang-java=\"`cloudBackup`\"\u003e`cloud_backup`\u003c/span\u003e enabled and then immediately overwrite the default cloud backup policy that Atlas creates by default at the same time with this example.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"clusterTest\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"EU_CENTRAL_1\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst test = new mongodbatlas.CloudBackupSchedule(\"test\", {\n    projectId: myCluster.projectId,\n    clusterName: myCluster.name,\n    referenceHourOfDay: 3,\n    referenceMinuteOfHour: 45,\n    restoreWindowDays: 4,\n    policyItemHourly: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 1,\n    },\n    policyItemDaily: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 2,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"clusterTest\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"EU_CENTRAL_1\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest = mongodbatlas.CloudBackupSchedule(\"test\",\n    project_id=my_cluster.project_id,\n    cluster_name=my_cluster.name,\n    reference_hour_of_day=3,\n    reference_minute_of_hour=45,\n    restore_window_days=4,\n    policy_item_hourly={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 1,\n    },\n    policy_item_daily={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 2,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"clusterTest\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"EU_CENTRAL_1\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.CloudBackupSchedule(\"test\", new()\n    {\n        ProjectId = myCluster.ProjectId,\n        ClusterName = myCluster.Name,\n        ReferenceHourOfDay = 3,\n        ReferenceMinuteOfHour = 45,\n        RestoreWindowDays = 4,\n        PolicyItemHourly = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemHourlyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 1,\n        },\n        PolicyItemDaily = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemDailyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 2,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"clusterTest\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_CENTRAL_1\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudBackupSchedule(ctx, \"test\", \u0026mongodbatlas.CloudBackupScheduleArgs{\n\t\t\tProjectId:             myCluster.ProjectId,\n\t\t\tClusterName:           myCluster.Name,\n\t\t\tReferenceHourOfDay:    pulumi.Int(3),\n\t\t\tReferenceMinuteOfHour: pulumi.Int(45),\n\t\t\tRestoreWindowDays:     pulumi.Int(4),\n\t\t\tPolicyItemHourly: \u0026mongodbatlas.CloudBackupSchedulePolicyItemHourlyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(1),\n\t\t\t},\n\t\t\tPolicyItemDaily: \u0026mongodbatlas.CloudBackupSchedulePolicyItemDailyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(2),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSchedule;\nimport com.pulumi.mongodbatlas.CloudBackupScheduleArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemHourlyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemDailyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"clusterTest\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"EU_CENTRAL_1\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var test = new CloudBackupSchedule(\"test\", CloudBackupScheduleArgs.builder()\n            .projectId(myCluster.projectId())\n            .clusterName(myCluster.name())\n            .referenceHourOfDay(3)\n            .referenceMinuteOfHour(45)\n            .restoreWindowDays(4)\n            .policyItemHourly(CloudBackupSchedulePolicyItemHourlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(1)\n                .build())\n            .policyItemDaily(CloudBackupSchedulePolicyItemDailyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(2)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: my_cluster\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      name: clusterTest\n      clusterType: REPLICASET\n      backupEnabled: true # must be enabled in order to use cloud_backup_schedule resource\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: EU_CENTRAL_1\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  test:\n    type: mongodbatlas:CloudBackupSchedule\n    properties:\n      projectId: ${myCluster.projectId}\n      clusterName: ${myCluster.name}\n      referenceHourOfDay: 3\n      referenceMinuteOfHour: 45\n      restoreWindowDays: 4 # This will now add the desired policy items to the existing mongodbatlas_cloud_backup_schedule resource\n      policyItemHourly:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 1\n      policyItemDaily:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create A Cluster With Cloud Backup Enabled But No Policy Items\n\nYou can enable \u003cspan pulumi-lang-nodejs=\"`cloudBackup`\" pulumi-lang-dotnet=\"`CloudBackup`\" pulumi-lang-go=\"`cloudBackup`\" pulumi-lang-python=\"`cloud_backup`\" pulumi-lang-yaml=\"`cloudBackup`\" pulumi-lang-java=\"`cloudBackup`\"\u003e`cloud_backup`\u003c/span\u003e in the Cluster resource and then use the \u003cspan pulumi-lang-nodejs=\"`cloudBackupSchedule`\" pulumi-lang-dotnet=\"`CloudBackupSchedule`\" pulumi-lang-go=\"`cloudBackupSchedule`\" pulumi-lang-python=\"`cloud_backup_schedule`\" pulumi-lang-yaml=\"`cloudBackupSchedule`\" pulumi-lang-java=\"`cloudBackupSchedule`\"\u003e`cloud_backup_schedule`\u003c/span\u003e resource with no policy items to remove the default policy that Atlas creates when you enable Cloud Backup. This allows you to then create a policy when you are ready to via Terraform.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"clusterTest\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"EU_CENTRAL_1\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst test = new mongodbatlas.CloudBackupSchedule(\"test\", {\n    projectId: myCluster.projectId,\n    clusterName: myCluster.name,\n    referenceHourOfDay: 3,\n    referenceMinuteOfHour: 45,\n    restoreWindowDays: 4,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"clusterTest\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"EU_CENTRAL_1\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest = mongodbatlas.CloudBackupSchedule(\"test\",\n    project_id=my_cluster.project_id,\n    cluster_name=my_cluster.name,\n    reference_hour_of_day=3,\n    reference_minute_of_hour=45,\n    restore_window_days=4)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"clusterTest\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"EU_CENTRAL_1\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.CloudBackupSchedule(\"test\", new()\n    {\n        ProjectId = myCluster.ProjectId,\n        ClusterName = myCluster.Name,\n        ReferenceHourOfDay = 3,\n        ReferenceMinuteOfHour = 45,\n        RestoreWindowDays = 4,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"clusterTest\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_CENTRAL_1\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudBackupSchedule(ctx, \"test\", \u0026mongodbatlas.CloudBackupScheduleArgs{\n\t\t\tProjectId:             myCluster.ProjectId,\n\t\t\tClusterName:           myCluster.Name,\n\t\t\tReferenceHourOfDay:    pulumi.Int(3),\n\t\t\tReferenceMinuteOfHour: pulumi.Int(45),\n\t\t\tRestoreWindowDays:     pulumi.Int(4),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSchedule;\nimport com.pulumi.mongodbatlas.CloudBackupScheduleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"clusterTest\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"EU_CENTRAL_1\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var test = new CloudBackupSchedule(\"test\", CloudBackupScheduleArgs.builder()\n            .projectId(myCluster.projectId())\n            .clusterName(myCluster.name())\n            .referenceHourOfDay(3)\n            .referenceMinuteOfHour(45)\n            .restoreWindowDays(4)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: my_cluster\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      name: clusterTest\n      clusterType: REPLICASET\n      backupEnabled: true # must be enabled in order to use cloud_backup_schedule resource\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: EU_CENTRAL_1\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  test:\n    type: mongodbatlas:CloudBackupSchedule\n    properties:\n      projectId: ${myCluster.projectId}\n      clusterName: ${myCluster.name}\n      referenceHourOfDay: 3\n      referenceMinuteOfHour: 45\n      restoreWindowDays: 4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Add 4 Policies Items To A Cluster With Cloud Backup Previously Enabled But With No Policy Items\n\nIf you followed the example to Create a Cluster with Cloud Backup Enabled but No Policy Items and then want to add policy items later to the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e this example shows how.\n\nThe cluster already exists with \u003cspan pulumi-lang-nodejs=\"`cloudBackup`\" pulumi-lang-dotnet=\"`CloudBackup`\" pulumi-lang-go=\"`cloudBackup`\" pulumi-lang-python=\"`cloud_backup`\" pulumi-lang-yaml=\"`cloudBackup`\" pulumi-lang-java=\"`cloudBackup`\"\u003e`cloud_backup`\u003c/span\u003e enabled\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"clusterTest\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"EU_CENTRAL_1\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst test = new mongodbatlas.CloudBackupSchedule(\"test\", {\n    projectId: myCluster.projectId,\n    clusterName: myCluster.name,\n    referenceHourOfDay: 3,\n    referenceMinuteOfHour: 45,\n    restoreWindowDays: 4,\n    policyItemHourly: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 1,\n    },\n    policyItemDaily: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 2,\n    },\n    policyItemWeeklies: [{\n        frequencyInterval: 4,\n        retentionUnit: \"weeks\",\n        retentionValue: 3,\n    }],\n    policyItemMonthlies: [{\n        frequencyInterval: 5,\n        retentionUnit: \"months\",\n        retentionValue: 4,\n    }],\n    policyItemYearlies: [{\n        frequencyInterval: 1,\n        retentionUnit: \"years\",\n        retentionValue: 1,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"clusterTest\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"EU_CENTRAL_1\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest = mongodbatlas.CloudBackupSchedule(\"test\",\n    project_id=my_cluster.project_id,\n    cluster_name=my_cluster.name,\n    reference_hour_of_day=3,\n    reference_minute_of_hour=45,\n    restore_window_days=4,\n    policy_item_hourly={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 1,\n    },\n    policy_item_daily={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 2,\n    },\n    policy_item_weeklies=[{\n        \"frequency_interval\": 4,\n        \"retention_unit\": \"weeks\",\n        \"retention_value\": 3,\n    }],\n    policy_item_monthlies=[{\n        \"frequency_interval\": 5,\n        \"retention_unit\": \"months\",\n        \"retention_value\": 4,\n    }],\n    policy_item_yearlies=[{\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"years\",\n        \"retention_value\": 1,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"clusterTest\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"EU_CENTRAL_1\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.CloudBackupSchedule(\"test\", new()\n    {\n        ProjectId = myCluster.ProjectId,\n        ClusterName = myCluster.Name,\n        ReferenceHourOfDay = 3,\n        ReferenceMinuteOfHour = 45,\n        RestoreWindowDays = 4,\n        PolicyItemHourly = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemHourlyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 1,\n        },\n        PolicyItemDaily = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemDailyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 2,\n        },\n        PolicyItemWeeklies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemWeeklyArgs\n            {\n                FrequencyInterval = 4,\n                RetentionUnit = \"weeks\",\n                RetentionValue = 3,\n            },\n        },\n        PolicyItemMonthlies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemMonthlyArgs\n            {\n                FrequencyInterval = 5,\n                RetentionUnit = \"months\",\n                RetentionValue = 4,\n            },\n        },\n        PolicyItemYearlies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemYearlyArgs\n            {\n                FrequencyInterval = 1,\n                RetentionUnit = \"years\",\n                RetentionValue = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"clusterTest\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_CENTRAL_1\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudBackupSchedule(ctx, \"test\", \u0026mongodbatlas.CloudBackupScheduleArgs{\n\t\t\tProjectId:             myCluster.ProjectId,\n\t\t\tClusterName:           myCluster.Name,\n\t\t\tReferenceHourOfDay:    pulumi.Int(3),\n\t\t\tReferenceMinuteOfHour: pulumi.Int(45),\n\t\t\tRestoreWindowDays:     pulumi.Int(4),\n\t\t\tPolicyItemHourly: \u0026mongodbatlas.CloudBackupSchedulePolicyItemHourlyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(1),\n\t\t\t},\n\t\t\tPolicyItemDaily: \u0026mongodbatlas.CloudBackupSchedulePolicyItemDailyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(2),\n\t\t\t},\n\t\t\tPolicyItemWeeklies: mongodbatlas.CloudBackupSchedulePolicyItemWeeklyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemWeeklyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(4),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"weeks\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(3),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemMonthlies: mongodbatlas.CloudBackupSchedulePolicyItemMonthlyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemMonthlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(5),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"months\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemYearlies: mongodbatlas.CloudBackupSchedulePolicyItemYearlyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemYearlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"years\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSchedule;\nimport com.pulumi.mongodbatlas.CloudBackupScheduleArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemHourlyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemDailyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemWeeklyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemMonthlyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemYearlyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"clusterTest\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"EU_CENTRAL_1\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var test = new CloudBackupSchedule(\"test\", CloudBackupScheduleArgs.builder()\n            .projectId(myCluster.projectId())\n            .clusterName(myCluster.name())\n            .referenceHourOfDay(3)\n            .referenceMinuteOfHour(45)\n            .restoreWindowDays(4)\n            .policyItemHourly(CloudBackupSchedulePolicyItemHourlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(1)\n                .build())\n            .policyItemDaily(CloudBackupSchedulePolicyItemDailyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(2)\n                .build())\n            .policyItemWeeklies(CloudBackupSchedulePolicyItemWeeklyArgs.builder()\n                .frequencyInterval(4)\n                .retentionUnit(\"weeks\")\n                .retentionValue(3)\n                .build())\n            .policyItemMonthlies(CloudBackupSchedulePolicyItemMonthlyArgs.builder()\n                .frequencyInterval(5)\n                .retentionUnit(\"months\")\n                .retentionValue(4)\n                .build())\n            .policyItemYearlies(CloudBackupSchedulePolicyItemYearlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"years\")\n                .retentionValue(1)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: my_cluster\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      name: clusterTest\n      clusterType: REPLICASET\n      backupEnabled: true # must be enabled in order to use cloud_backup_schedule resource\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: EU_CENTRAL_1\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  test:\n    type: mongodbatlas:CloudBackupSchedule\n    properties:\n      projectId: ${myCluster.projectId}\n      clusterName: ${myCluster.name}\n      referenceHourOfDay: 3\n      referenceMinuteOfHour: 45\n      restoreWindowDays: 4 # This will now add the desired policy items to the existing mongodbatlas_cloud_backup_schedule resource\n      policyItemHourly:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 1\n      policyItemDaily:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 2\n      policyItemWeeklies:\n        - frequencyInterval: 4\n          retentionUnit: weeks\n          retentionValue: 3\n      policyItemMonthlies:\n        - frequencyInterval: 5\n          retentionUnit: months\n          retentionValue: 4\n      policyItemYearlies:\n        - frequencyInterval: 1\n          retentionUnit: years\n          retentionValue: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create A Cluster With Cloud Backup Enabled With Snapshot Distribution\n\nYou can enable \u003cspan pulumi-lang-nodejs=\"`cloudBackup`\" pulumi-lang-dotnet=\"`CloudBackup`\" pulumi-lang-go=\"`cloudBackup`\" pulumi-lang-python=\"`cloud_backup`\" pulumi-lang-yaml=\"`cloudBackup`\" pulumi-lang-java=\"`cloudBackup`\"\u003e`cloud_backup`\u003c/span\u003e in the Cluster resource and then use the \u003cspan pulumi-lang-nodejs=\"`cloudBackupSchedule`\" pulumi-lang-dotnet=\"`CloudBackupSchedule`\" pulumi-lang-go=\"`cloudBackupSchedule`\" pulumi-lang-python=\"`cloud_backup_schedule`\" pulumi-lang-yaml=\"`cloudBackupSchedule`\" pulumi-lang-java=\"`cloudBackupSchedule`\"\u003e`cloud_backup_schedule`\u003c/span\u003e resource with a basic policy for Cloud Backup.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"clusterTest\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"EU_CENTRAL_1\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst test = new mongodbatlas.CloudBackupSchedule(\"test\", {\n    projectId: myCluster.projectId,\n    clusterName: myCluster.name,\n    referenceHourOfDay: 3,\n    referenceMinuteOfHour: 45,\n    restoreWindowDays: 4,\n    policyItemDaily: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 14,\n    },\n    copySettings: [{\n        cloudProvider: \"AWS\",\n        frequencies: [\n            \"HOURLY\",\n            \"DAILY\",\n            \"WEEKLY\",\n            \"MONTHLY\",\n            \"YEARLY\",\n            \"ON_DEMAND\",\n        ],\n        regionName: \"US_EAST_1\",\n        zoneId: myCluster.replicationSpecs.apply(replicationSpecs =\u003e replicationSpecs.map(__item =\u003e __item.zoneId?.[0])),\n        shouldCopyOplogs: false,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"clusterTest\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"EU_CENTRAL_1\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest = mongodbatlas.CloudBackupSchedule(\"test\",\n    project_id=my_cluster.project_id,\n    cluster_name=my_cluster.name,\n    reference_hour_of_day=3,\n    reference_minute_of_hour=45,\n    restore_window_days=4,\n    policy_item_daily={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 14,\n    },\n    copy_settings=[{\n        \"cloud_provider\": \"AWS\",\n        \"frequencies\": [\n            \"HOURLY\",\n            \"DAILY\",\n            \"WEEKLY\",\n            \"MONTHLY\",\n            \"YEARLY\",\n            \"ON_DEMAND\",\n        ],\n        \"region_name\": \"US_EAST_1\",\n        \"zone_id\": my_cluster.replication_specs.apply(lambda replication_specs: [__item.zone_id[0] for __item in replication_specs]),\n        \"should_copy_oplogs\": False,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"clusterTest\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"EU_CENTRAL_1\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.CloudBackupSchedule(\"test\", new()\n    {\n        ProjectId = myCluster.ProjectId,\n        ClusterName = myCluster.Name,\n        ReferenceHourOfDay = 3,\n        ReferenceMinuteOfHour = 45,\n        RestoreWindowDays = 4,\n        PolicyItemDaily = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemDailyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 14,\n        },\n        CopySettings = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupScheduleCopySettingArgs\n            {\n                CloudProvider = \"AWS\",\n                Frequencies = new[]\n                {\n                    \"HOURLY\",\n                    \"DAILY\",\n                    \"WEEKLY\",\n                    \"MONTHLY\",\n                    \"YEARLY\",\n                    \"ON_DEMAND\",\n                },\n                RegionName = \"US_EAST_1\",\n                ZoneId = myCluster.ReplicationSpecs.Apply(replicationSpecs =\u003e replicationSpecs.Select(__item =\u003e __item.ZoneId[0]).ToList()),\n                ShouldCopyOplogs = false,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nmyCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\nProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\nName: pulumi.String(\"clusterTest\"),\nClusterType: pulumi.String(\"REPLICASET\"),\nBackupEnabled: pulumi.Bool(true),\nReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\nRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\nPriority: pulumi.Int(7),\nProviderName: pulumi.String(\"AWS\"),\nRegionName: pulumi.String(\"EU_CENTRAL_1\"),\nElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\nInstanceSize: pulumi.String(\"M10\"),\nNodeCount: pulumi.Int(3),\n},\n},\n},\n},\n},\n})\nif err != nil {\nreturn err\n}\n_, err = mongodbatlas.NewCloudBackupSchedule(ctx, \"test\", \u0026mongodbatlas.CloudBackupScheduleArgs{\nProjectId: myCluster.ProjectId,\nClusterName: myCluster.Name,\nReferenceHourOfDay: pulumi.Int(3),\nReferenceMinuteOfHour: pulumi.Int(45),\nRestoreWindowDays: pulumi.Int(4),\nPolicyItemDaily: \u0026mongodbatlas.CloudBackupSchedulePolicyItemDailyArgs{\nFrequencyInterval: pulumi.Int(1),\nRetentionUnit: pulumi.String(\"days\"),\nRetentionValue: pulumi.Int(14),\n},\nCopySettings: mongodbatlas.CloudBackupScheduleCopySettingArray{\n\u0026mongodbatlas.CloudBackupScheduleCopySettingArgs{\nCloudProvider: pulumi.String(\"AWS\"),\nFrequencies: pulumi.StringArray{\npulumi.String(\"HOURLY\"),\npulumi.String(\"DAILY\"),\npulumi.String(\"WEEKLY\"),\npulumi.String(\"MONTHLY\"),\npulumi.String(\"YEARLY\"),\npulumi.String(\"ON_DEMAND\"),\n},\nRegionName: pulumi.String(\"US_EAST_1\"),\nZoneId: pulumi.String(myCluster.ReplicationSpecs.ApplyT(func(replicationSpecs []mongodbatlas.AdvancedClusterReplicationSpec) ([]interface{}, error) {\nvar splat0 []interface{}\nfor _, val0 := range replicationSpecs {\nsplat0 = append(splat0, val0.ZoneId[0])\n}\nreturn splat0, nil\n}).(pulumi.[]interface{}Output)),\nShouldCopyOplogs: pulumi.Bool(false),\n},\n},\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSchedule;\nimport com.pulumi.mongodbatlas.CloudBackupScheduleArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemDailyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupScheduleCopySettingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"clusterTest\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"EU_CENTRAL_1\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var test = new CloudBackupSchedule(\"test\", CloudBackupScheduleArgs.builder()\n            .projectId(myCluster.projectId())\n            .clusterName(myCluster.name())\n            .referenceHourOfDay(3)\n            .referenceMinuteOfHour(45)\n            .restoreWindowDays(4)\n            .policyItemDaily(CloudBackupSchedulePolicyItemDailyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(14)\n                .build())\n            .copySettings(CloudBackupScheduleCopySettingArgs.builder()\n                .cloudProvider(\"AWS\")\n                .frequencies(                \n                    \"HOURLY\",\n                    \"DAILY\",\n                    \"WEEKLY\",\n                    \"MONTHLY\",\n                    \"YEARLY\",\n                    \"ON_DEMAND\")\n                .regionName(\"US_EAST_1\")\n                .zoneId(myCluster.replicationSpecs().applyValue(_replicationSpecs -\u003e _replicationSpecs.stream().map(element -\u003e element.zoneId()[0]).collect(toList())))\n                .shouldCopyOplogs(false)\n                .build())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### Further Examples\n- Cloud Backup Schedule\n\n## Import\n\nCloud Backup Schedule entries can be imported using\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eand cluster_name, in the format `PROJECTID-CLUSTERNAME`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/cloudBackupSchedule:CloudBackupSchedule test 5d0f1f73cf09a29120e173cf-MyClusterTest\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/cloud-backup/schedule/modify-one-schedule/)\n\n","properties":{"autoExportEnabled":{"type":"boolean","description":"Flag that indicates whether MongoDB Cloud automatically exports Cloud Backup Snapshots to the Export Bucket. Value can be one of the following:\n* true - Enables automatic export of cloud backup snapshots to the Export Bucket.\n* false - Disables automatic export of cloud backup snapshots to the Export Bucket. (default)\n"},"clusterId":{"type":"string","description":"Unique identifier of the Atlas cluster.\n"},"clusterName":{"type":"string","description":"The name of the Atlas cluster that contains the snapshot backup policy you want to retrieve.\n"},"copySettings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupScheduleCopySetting:CloudBackupScheduleCopySetting"},"description":"List that contains a document for each copy setting item in the desired backup policy. See below\n"},"export":{"$ref":"#/types/mongodbatlas:index/CloudBackupScheduleExport:CloudBackupScheduleExport","description":"Policy for automatically exporting Cloud Backup Snapshots. See below\n"},"idPolicy":{"type":"string","description":"Unique identifier of the backup policy.\n"},"nextSnapshot":{"type":"string","description":"Timestamp in the number of seconds that have elapsed since the UNIX epoch when Atlas takes the next snapshot.\n"},"policyItemDaily":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemDaily:CloudBackupSchedulePolicyItemDaily","description":"Daily policy item. See below\n"},"policyItemHourly":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemHourly:CloudBackupSchedulePolicyItemHourly","description":"Hourly policy item. See below\n"},"policyItemMonthlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemMonthly:CloudBackupSchedulePolicyItemMonthly"},"description":"Monthly policy item. See below\n"},"policyItemWeeklies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemWeekly:CloudBackupSchedulePolicyItemWeekly"},"description":"Weekly policy item. See below\n"},"policyItemYearlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemYearly:CloudBackupSchedulePolicyItemYearly"},"description":"Yearly policy item. See below\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n"},"referenceHourOfDay":{"type":"integer","description":"UTC Hour of day between 0 and 23, inclusive, representing which hour of the day that Atlas takes snapshots for backup policy items.\n"},"referenceMinuteOfHour":{"type":"integer","description":"UTC Minutes after \u003cspan pulumi-lang-nodejs=\"`referenceHourOfDay`\" pulumi-lang-dotnet=\"`ReferenceHourOfDay`\" pulumi-lang-go=\"`referenceHourOfDay`\" pulumi-lang-python=\"`reference_hour_of_day`\" pulumi-lang-yaml=\"`referenceHourOfDay`\" pulumi-lang-java=\"`referenceHourOfDay`\"\u003e`reference_hour_of_day`\u003c/span\u003e that Atlas takes snapshots for backup policy items. Must be between 0 and 59, inclusive.\n"},"restoreWindowDays":{"type":"integer","description":"Number of days back in time you can restore to with point-in-time accuracy. Must be a positive, non-zero integer.\n"},"updateSnapshots":{"type":"boolean","description":"Specify true to apply the retention changes in the updated backup policy to snapshots that Atlas took previously. \n\n**Note** This parameter does not return updates on return from API, this is a feature of the MongoDB Atlas Admin API itself and not Terraform.  For more details about this resource see [Cloud Backup Schedule](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Cloud-Backups/operation/getBackupSchedule).\n"},"useOrgAndGroupNamesInExportPrefix":{"type":"boolean","description":"Specify true to use organization and project names instead of organization and project UUIDs in the path for the metadata files that Atlas uploads to your bucket after it finishes exporting the snapshots. To learn more about the metadata files that Atlas uploads, see [Export Cloud Backup Snapshot](https://www.mongodb.com/docs/atlas/backup/cloud-backup/export/#std-label-cloud-provider-snapshot-export).\n"}},"required":["clusterId","clusterName","idPolicy","nextSnapshot","projectId","referenceHourOfDay","referenceMinuteOfHour","restoreWindowDays","updateSnapshots","useOrgAndGroupNamesInExportPrefix"],"inputProperties":{"autoExportEnabled":{"type":"boolean","description":"Flag that indicates whether MongoDB Cloud automatically exports Cloud Backup Snapshots to the Export Bucket. Value can be one of the following:\n* true - Enables automatic export of cloud backup snapshots to the Export Bucket.\n* false - Disables automatic export of cloud backup snapshots to the Export Bucket. (default)\n"},"clusterName":{"type":"string","description":"The name of the Atlas cluster that contains the snapshot backup policy you want to retrieve.\n"},"copySettings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupScheduleCopySetting:CloudBackupScheduleCopySetting"},"description":"List that contains a document for each copy setting item in the desired backup policy. See below\n"},"export":{"$ref":"#/types/mongodbatlas:index/CloudBackupScheduleExport:CloudBackupScheduleExport","description":"Policy for automatically exporting Cloud Backup Snapshots. See below\n"},"policyItemDaily":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemDaily:CloudBackupSchedulePolicyItemDaily","description":"Daily policy item. See below\n"},"policyItemHourly":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemHourly:CloudBackupSchedulePolicyItemHourly","description":"Hourly policy item. See below\n"},"policyItemMonthlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemMonthly:CloudBackupSchedulePolicyItemMonthly"},"description":"Monthly policy item. See below\n"},"policyItemWeeklies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemWeekly:CloudBackupSchedulePolicyItemWeekly"},"description":"Weekly policy item. See below\n"},"policyItemYearlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemYearly:CloudBackupSchedulePolicyItemYearly"},"description":"Yearly policy item. See below\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n","willReplaceOnChanges":true},"referenceHourOfDay":{"type":"integer","description":"UTC Hour of day between 0 and 23, inclusive, representing which hour of the day that Atlas takes snapshots for backup policy items.\n"},"referenceMinuteOfHour":{"type":"integer","description":"UTC Minutes after \u003cspan pulumi-lang-nodejs=\"`referenceHourOfDay`\" pulumi-lang-dotnet=\"`ReferenceHourOfDay`\" pulumi-lang-go=\"`referenceHourOfDay`\" pulumi-lang-python=\"`reference_hour_of_day`\" pulumi-lang-yaml=\"`referenceHourOfDay`\" pulumi-lang-java=\"`referenceHourOfDay`\"\u003e`reference_hour_of_day`\u003c/span\u003e that Atlas takes snapshots for backup policy items. Must be between 0 and 59, inclusive.\n"},"restoreWindowDays":{"type":"integer","description":"Number of days back in time you can restore to with point-in-time accuracy. Must be a positive, non-zero integer.\n"},"updateSnapshots":{"type":"boolean","description":"Specify true to apply the retention changes in the updated backup policy to snapshots that Atlas took previously. \n\n**Note** This parameter does not return updates on return from API, this is a feature of the MongoDB Atlas Admin API itself and not Terraform.  For more details about this resource see [Cloud Backup Schedule](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Cloud-Backups/operation/getBackupSchedule).\n"},"useOrgAndGroupNamesInExportPrefix":{"type":"boolean","description":"Specify true to use organization and project names instead of organization and project UUIDs in the path for the metadata files that Atlas uploads to your bucket after it finishes exporting the snapshots. To learn more about the metadata files that Atlas uploads, see [Export Cloud Backup Snapshot](https://www.mongodb.com/docs/atlas/backup/cloud-backup/export/#std-label-cloud-provider-snapshot-export).\n"}},"requiredInputs":["clusterName","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudBackupSchedule resources.\n","properties":{"autoExportEnabled":{"type":"boolean","description":"Flag that indicates whether MongoDB Cloud automatically exports Cloud Backup Snapshots to the Export Bucket. Value can be one of the following:\n* true - Enables automatic export of cloud backup snapshots to the Export Bucket.\n* false - Disables automatic export of cloud backup snapshots to the Export Bucket. (default)\n"},"clusterId":{"type":"string","description":"Unique identifier of the Atlas cluster.\n"},"clusterName":{"type":"string","description":"The name of the Atlas cluster that contains the snapshot backup policy you want to retrieve.\n"},"copySettings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupScheduleCopySetting:CloudBackupScheduleCopySetting"},"description":"List that contains a document for each copy setting item in the desired backup policy. See below\n"},"export":{"$ref":"#/types/mongodbatlas:index/CloudBackupScheduleExport:CloudBackupScheduleExport","description":"Policy for automatically exporting Cloud Backup Snapshots. See below\n"},"idPolicy":{"type":"string","description":"Unique identifier of the backup policy.\n"},"nextSnapshot":{"type":"string","description":"Timestamp in the number of seconds that have elapsed since the UNIX epoch when Atlas takes the next snapshot.\n"},"policyItemDaily":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemDaily:CloudBackupSchedulePolicyItemDaily","description":"Daily policy item. See below\n"},"policyItemHourly":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemHourly:CloudBackupSchedulePolicyItemHourly","description":"Hourly policy item. See below\n"},"policyItemMonthlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemMonthly:CloudBackupSchedulePolicyItemMonthly"},"description":"Monthly policy item. See below\n"},"policyItemWeeklies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemWeekly:CloudBackupSchedulePolicyItemWeekly"},"description":"Weekly policy item. See below\n"},"policyItemYearlies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSchedulePolicyItemYearly:CloudBackupSchedulePolicyItemYearly"},"description":"Yearly policy item. See below\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n","willReplaceOnChanges":true},"referenceHourOfDay":{"type":"integer","description":"UTC Hour of day between 0 and 23, inclusive, representing which hour of the day that Atlas takes snapshots for backup policy items.\n"},"referenceMinuteOfHour":{"type":"integer","description":"UTC Minutes after \u003cspan pulumi-lang-nodejs=\"`referenceHourOfDay`\" pulumi-lang-dotnet=\"`ReferenceHourOfDay`\" pulumi-lang-go=\"`referenceHourOfDay`\" pulumi-lang-python=\"`reference_hour_of_day`\" pulumi-lang-yaml=\"`referenceHourOfDay`\" pulumi-lang-java=\"`referenceHourOfDay`\"\u003e`reference_hour_of_day`\u003c/span\u003e that Atlas takes snapshots for backup policy items. Must be between 0 and 59, inclusive.\n"},"restoreWindowDays":{"type":"integer","description":"Number of days back in time you can restore to with point-in-time accuracy. Must be a positive, non-zero integer.\n"},"updateSnapshots":{"type":"boolean","description":"Specify true to apply the retention changes in the updated backup policy to snapshots that Atlas took previously. \n\n**Note** This parameter does not return updates on return from API, this is a feature of the MongoDB Atlas Admin API itself and not Terraform.  For more details about this resource see [Cloud Backup Schedule](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Cloud-Backups/operation/getBackupSchedule).\n"},"useOrgAndGroupNamesInExportPrefix":{"type":"boolean","description":"Specify true to use organization and project names instead of organization and project UUIDs in the path for the metadata files that Atlas uploads to your bucket after it finishes exporting the snapshots. To learn more about the metadata files that Atlas uploads, see [Export Cloud Backup Snapshot](https://www.mongodb.com/docs/atlas/backup/cloud-backup/export/#std-label-cloud-provider-snapshot-export).\n"}},"type":"object"}},"mongodbatlas:index/cloudBackupSnapshot:CloudBackupSnapshot":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSnapshot`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSnapshot`\" pulumi-lang-go=\"`CloudBackupSnapshot`\" pulumi-lang-python=\"`CloudBackupSnapshot`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSnapshot`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSnapshot`\"\u003e`mongodbatlas.CloudBackupSnapshot`\u003c/span\u003e provides a resource to take a cloud backup snapshot on demand.\nOn-demand snapshots happen immediately, unlike scheduled snapshots which occur at regular intervals. If there is already an on-demand snapshot with a status of queued or inProgress, you must wait until Atlas has completed the on-demand snapshot before taking another.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **NOTE:** If Backup Compliance Policy is enabled for the project for which this backup schedule is defined, you cannot delete a backup snapshot or decrease the retention time for a snapshot after it's taken.  See [Backup Compliance Policy Prohibited Actions and Considerations](https://www.mongodb.com/docs/atlas/backup/cloud-backup/backup-compliance-policy/#configure-a-backup-compliance-policy).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"MyCluster\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"EU_WEST_2\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst test = new mongodbatlas.CloudBackupSnapshot(\"test\", {\n    projectId: myCluster.projectId,\n    clusterName: myCluster.name,\n    description: \"myDescription\",\n    retentionInDays: 1,\n});\nconst testCloudBackupSnapshotRestoreJob = new mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\", {\n    projectId: test.projectId,\n    clusterName: test.clusterName,\n    snapshotId: test.snapshotId,\n    deliveryTypeConfig: {\n        download: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"MyCluster\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"EU_WEST_2\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest = mongodbatlas.CloudBackupSnapshot(\"test\",\n    project_id=my_cluster.project_id,\n    cluster_name=my_cluster.name,\n    description=\"myDescription\",\n    retention_in_days=1)\ntest_cloud_backup_snapshot_restore_job = mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\",\n    project_id=test.project_id,\n    cluster_name=test.cluster_name,\n    snapshot_id=test.snapshot_id,\n    delivery_type_config={\n        \"download\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"MyCluster\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"EU_WEST_2\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.CloudBackupSnapshot(\"test\", new()\n    {\n        ProjectId = myCluster.ProjectId,\n        ClusterName = myCluster.Name,\n        Description = \"myDescription\",\n        RetentionInDays = 1,\n    });\n\n    var testCloudBackupSnapshotRestoreJob = new Mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\", new()\n    {\n        ProjectId = test.ProjectId,\n        ClusterName = test.ClusterName,\n        SnapshotId = test.SnapshotId,\n        DeliveryTypeConfig = new Mongodbatlas.Inputs.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs\n        {\n            Download = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"MyCluster\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_WEST_2\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := mongodbatlas.NewCloudBackupSnapshot(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotArgs{\n\t\t\tProjectId:       myCluster.ProjectId,\n\t\t\tClusterName:     myCluster.Name,\n\t\t\tDescription:     pulumi.String(\"myDescription\"),\n\t\t\tRetentionInDays: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudBackupSnapshotRestoreJob(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotRestoreJobArgs{\n\t\t\tProjectId:   test.ProjectId,\n\t\t\tClusterName: test.ClusterName,\n\t\t\tSnapshotId:  test.SnapshotId,\n\t\t\tDeliveryTypeConfig: \u0026mongodbatlas.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs{\n\t\t\t\tDownload: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshot;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJob;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJobArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"MyCluster\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"EU_WEST_2\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var test = new CloudBackupSnapshot(\"test\", CloudBackupSnapshotArgs.builder()\n            .projectId(myCluster.projectId())\n            .clusterName(myCluster.name())\n            .description(\"myDescription\")\n            .retentionInDays(1)\n            .build());\n\n        var testCloudBackupSnapshotRestoreJob = new CloudBackupSnapshotRestoreJob(\"testCloudBackupSnapshotRestoreJob\", CloudBackupSnapshotRestoreJobArgs.builder()\n            .projectId(test.projectId())\n            .clusterName(test.clusterName())\n            .snapshotId(test.snapshotId())\n            .deliveryTypeConfig(CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs.builder()\n                .download(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: my_cluster\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      name: MyCluster\n      clusterType: REPLICASET\n      backupEnabled: true # enable cloud backup snapshots\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: EU_WEST_2\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  test:\n    type: mongodbatlas:CloudBackupSnapshot\n    properties:\n      projectId: ${myCluster.projectId}\n      clusterName: ${myCluster.name}\n      description: myDescription\n      retentionInDays: 1\n  testCloudBackupSnapshotRestoreJob:\n    type: mongodbatlas:CloudBackupSnapshotRestoreJob\n    name: test\n    properties:\n      projectId: ${test.projectId}\n      clusterName: ${test.clusterName}\n      snapshotId: ${test.snapshotId}\n      deliveryTypeConfig:\n        download: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Restore from backup snapshot at point in time\n- Restore from backup snapshot using an advanced cluster resource\n\n## Import\n\nCloud Backup Snapshot entries can be imported using project project_id,\u003cspan pulumi-lang-nodejs=\" clusterName \" pulumi-lang-dotnet=\" ClusterName \" pulumi-lang-go=\" clusterName \" pulumi-lang-python=\" cluster_name \" pulumi-lang-yaml=\" clusterName \" pulumi-lang-java=\" clusterName \"\u003e cluster_name \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" snapshotId \" pulumi-lang-dotnet=\" SnapshotId \" pulumi-lang-go=\" snapshotId \" pulumi-lang-python=\" snapshot_id \" pulumi-lang-yaml=\" snapshotId \" pulumi-lang-java=\" snapshotId \"\u003e snapshot_id \u003c/span\u003e(Unique identifier of the snapshot), in the format `PROJECTID-CLUSTERNAME-SNAPSHOTID`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/cloudBackupSnapshot:CloudBackupSnapshot test 5d0f1f73cf09a29120e173cf-MyClusterTest-5d116d82014b764445b2f9b5\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/cloud-backup/backup/backups/)\n\n","properties":{"cloudProvider":{"type":"string","description":"Cloud provider that stores this snapshot.\n"},"clusterName":{"type":"string","description":"The name of the Atlas cluster that contains the snapshots you want to retrieve.\n"},"createdAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when Atlas took the snapshot.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"description":{"type":"string","description":"Description of the on-demand snapshot.\n"},"expiresAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when Atlas will delete the snapshot.\n"},"masterKeyUuid":{"type":"string","description":"Unique ID of the AWS KMS Customer Master Key used to encrypt the snapshot. Only visible for clusters using Encryption at Rest via Customer KMS.\n"},"members":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSnapshotMember:CloudBackupSnapshotMember"},"description":"Block of List of snapshots and the cloud provider where the snapshots are stored. Atlas returns this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `shardedCluster`. See below\n"},"mongodVersion":{"type":"string","description":"Version of the MongoDB server.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n"},"replicaSetName":{"type":"string","description":"Label given to a shard or config server from which Atlas took this snapshot.\n"},"retentionInDays":{"type":"integer","description":"The number of days that Atlas should retain the on-demand snapshot. Must be at least 1.\n"},"snapshotId":{"type":"string","description":"Unique identifier of the snapshot.\n"},"snapshotIds":{"type":"array","items":{"type":"string"},"description":"Unique identifiers of the snapshots created for the shards and config server for a sharded cluster. Atlas returns this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `shardedCluster`. These identifiers should match those given in the `members[#].id` parameters. This allows you to map a snapshot to its shard or config server name.\n"},"snapshotType":{"type":"string","description":"Specified the type of snapshot. Valid values are onDemand and scheduled.\n"},"status":{"type":"string","description":"Current status of the snapshot. One of the following values will be returned: queued, inProgress, completed, failed.\n"},"storageSizeBytes":{"type":"integer","description":"Specifies the size of the snapshot in bytes.\n"},"type":{"type":"string","description":"Specifies the type of cluster: replicaSet or shardedCluster.\n"}},"required":["cloudProvider","clusterName","createdAt","description","expiresAt","masterKeyUuid","members","mongodVersion","projectId","replicaSetName","retentionInDays","snapshotId","snapshotIds","snapshotType","status","storageSizeBytes","type"],"inputProperties":{"clusterName":{"type":"string","description":"The name of the Atlas cluster that contains the snapshots you want to retrieve.\n","willReplaceOnChanges":true},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the on-demand snapshot.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n","willReplaceOnChanges":true},"retentionInDays":{"type":"integer","description":"The number of days that Atlas should retain the on-demand snapshot. Must be at least 1.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterName","description","projectId","retentionInDays"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudBackupSnapshot resources.\n","properties":{"cloudProvider":{"type":"string","description":"Cloud provider that stores this snapshot.\n"},"clusterName":{"type":"string","description":"The name of the Atlas cluster that contains the snapshots you want to retrieve.\n","willReplaceOnChanges":true},"createdAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when Atlas took the snapshot.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"Description of the on-demand snapshot.\n","willReplaceOnChanges":true},"expiresAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when Atlas will delete the snapshot.\n"},"masterKeyUuid":{"type":"string","description":"Unique ID of the AWS KMS Customer Master Key used to encrypt the snapshot. Only visible for clusters using Encryption at Rest via Customer KMS.\n"},"members":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSnapshotMember:CloudBackupSnapshotMember"},"description":"Block of List of snapshots and the cloud provider where the snapshots are stored. Atlas returns this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `shardedCluster`. See below\n"},"mongodVersion":{"type":"string","description":"Version of the MongoDB server.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n","willReplaceOnChanges":true},"replicaSetName":{"type":"string","description":"Label given to a shard or config server from which Atlas took this snapshot.\n"},"retentionInDays":{"type":"integer","description":"The number of days that Atlas should retain the on-demand snapshot. Must be at least 1.\n","willReplaceOnChanges":true},"snapshotId":{"type":"string","description":"Unique identifier of the snapshot.\n"},"snapshotIds":{"type":"array","items":{"type":"string"},"description":"Unique identifiers of the snapshots created for the shards and config server for a sharded cluster. Atlas returns this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `shardedCluster`. These identifiers should match those given in the `members[#].id` parameters. This allows you to map a snapshot to its shard or config server name.\n"},"snapshotType":{"type":"string","description":"Specified the type of snapshot. Valid values are onDemand and scheduled.\n"},"status":{"type":"string","description":"Current status of the snapshot. One of the following values will be returned: queued, inProgress, completed, failed.\n"},"storageSizeBytes":{"type":"integer","description":"Specifies the size of the snapshot in bytes.\n"},"type":{"type":"string","description":"Specifies the type of cluster: replicaSet or shardedCluster.\n"}},"type":"object"}},"mongodbatlas:index/cloudBackupSnapshotExportBucket:CloudBackupSnapshotExportBucket":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\" pulumi-lang-go=\"`CloudBackupSnapshotExportBucket`\" pulumi-lang-python=\"`CloudBackupSnapshotExportBucket`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\"\u003e`mongodbatlas.CloudBackupSnapshotExportBucket`\u003c/span\u003e allows you to create an export snapshot bucket for the specified project.\n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **NOTE:** To prevent errors during resource destruction, ensure that no \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource that defines an automatic export policy references this resource. If you must update related \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resources, make these updates in isolated `pulumi up` operations first, then run the operation that destroys the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\" pulumi-lang-go=\"`CloudBackupSnapshotExportBucket`\" pulumi-lang-python=\"`CloudBackupSnapshotExportBucket`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\"\u003e`mongodbatlas.CloudBackupSnapshotExportBucket`\u003c/span\u003e resource.\n\n## Example Usage\n\n### AWS Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", {\n    projectId: \"{PROJECT_ID}\",\n    iamRoleId: \"{IAM_ROLE_ID}\",\n    bucketName: \"example-bucket\",\n    cloudProvider: \"AWS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.CloudBackupSnapshotExportBucket(\"test\",\n    project_id=\"{PROJECT_ID}\",\n    iam_role_id=\"{IAM_ROLE_ID}\",\n    bucket_name=\"example-bucket\",\n    cloud_provider=\"AWS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        IamRoleId = \"{IAM_ROLE_ID}\",\n        BucketName = \"example-bucket\",\n        CloudProvider = \"AWS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCloudBackupSnapshotExportBucket(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotExportBucketArgs{\n\t\t\tProjectId:     pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tIamRoleId:     pulumi.String(\"{IAM_ROLE_ID}\"),\n\t\t\tBucketName:    pulumi.String(\"example-bucket\"),\n\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucket;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CloudBackupSnapshotExportBucket(\"test\", CloudBackupSnapshotExportBucketArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .iamRoleId(\"{IAM_ROLE_ID}\")\n            .bucketName(\"example-bucket\")\n            .cloudProvider(\"AWS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:CloudBackupSnapshotExportBucket\n    properties:\n      projectId: '{PROJECT_ID}'\n      iamRoleId: '{IAM_ROLE_ID}'\n      bucketName: example-bucket\n      cloudProvider: AWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Azure Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", {\n    projectId: \"{PROJECT_ID}\",\n    roleId: \"{ROLE_ID}\",\n    serviceUrl: \"{SERVICE_URL}\",\n    bucketName: \"example-bucket\",\n    cloudProvider: \"AZURE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.CloudBackupSnapshotExportBucket(\"test\",\n    project_id=\"{PROJECT_ID}\",\n    role_id=\"{ROLE_ID}\",\n    service_url=\"{SERVICE_URL}\",\n    bucket_name=\"example-bucket\",\n    cloud_provider=\"AZURE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        RoleId = \"{ROLE_ID}\",\n        ServiceUrl = \"{SERVICE_URL}\",\n        BucketName = \"example-bucket\",\n        CloudProvider = \"AZURE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCloudBackupSnapshotExportBucket(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotExportBucketArgs{\n\t\t\tProjectId:     pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tRoleId:        pulumi.String(\"{ROLE_ID}\"),\n\t\t\tServiceUrl:    pulumi.String(\"{SERVICE_URL}\"),\n\t\t\tBucketName:    pulumi.String(\"example-bucket\"),\n\t\t\tCloudProvider: pulumi.String(\"AZURE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucket;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CloudBackupSnapshotExportBucket(\"test\", CloudBackupSnapshotExportBucketArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .roleId(\"{ROLE_ID}\")\n            .serviceUrl(\"{SERVICE_URL}\")\n            .bucketName(\"example-bucket\")\n            .cloudProvider(\"AZURE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:CloudBackupSnapshotExportBucket\n    properties:\n      projectId: '{PROJECT_ID}'\n      roleId: '{ROLE_ID}'\n      serviceUrl: '{SERVICE_URL}'\n      bucketName: example-bucket\n      cloudProvider: AZURE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS Cloud Backup Snapshot Export Bucket\n- Azure Cloud Backup Snapshot Export Bucket\n\n## Import\n\nCloud Backup Snapshot Export Backup entries can be imported using project project_id, and\u003cspan pulumi-lang-nodejs=\" bucketId \" pulumi-lang-dotnet=\" BucketId \" pulumi-lang-go=\" bucketId \" pulumi-lang-python=\" bucket_id \" pulumi-lang-yaml=\" bucketId \" pulumi-lang-java=\" bucketId \"\u003e bucket_id \u003c/span\u003e(Unique identifier of the snapshot export bucket), in the format `PROJECTID-BUCKETID`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/cloudBackupSnapshotExportBucket:CloudBackupSnapshotExportBucket test 5d0f1f73cf09a29120e173cf-5d116d82014b764445b2f9b5\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/cloud-backup/export/create-one-export-bucket/)\n\n","properties":{"bucketName":{"type":"string","description":"Name of the bucket that the provided role ID is authorized to access.\n"},"cloudProvider":{"type":"string","description":"Name of the provider of the cloud service where Atlas can access the S3 bucket.\n"},"exportBucketId":{"type":"string","description":"Unique identifier of the snapshot export bucket.\n"},"iamRoleId":{"type":"string","description":"Unique identifier of the role that Atlas can use to access the bucket. Required if \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e is set to `AWS`.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n"},"roleId":{"type":"string","description":"Unique identifier of the Azure Service Principal that Atlas can use to access the Azure Blob Storage Container. Required if \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e is set to `AZURE`.\n"},"serviceUrl":{"type":"string","description":"URL that identifies the blob Endpoint of the Azure Blob Storage Account. Required if \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e is set to `AZURE`.\n"},"tenantId":{"type":"string","description":"This field is ignored; the `mongodbatlas_cloud_provider_access_authorization.azure.tenant_id` is used instead and returned as an attribute. UUID that identifies the Azure Active Directory Tenant ID.\n","deprecationMessage":"This parameter is deprecated."}},"required":["bucketName","cloudProvider","exportBucketId","projectId","tenantId"],"inputProperties":{"bucketName":{"type":"string","description":"Name of the bucket that the provided role ID is authorized to access.\n","willReplaceOnChanges":true},"cloudProvider":{"type":"string","description":"Name of the provider of the cloud service where Atlas can access the S3 bucket.\n","willReplaceOnChanges":true},"iamRoleId":{"type":"string","description":"Unique identifier of the role that Atlas can use to access the bucket. Required if \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e is set to `AWS`.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n","willReplaceOnChanges":true},"roleId":{"type":"string","description":"Unique identifier of the Azure Service Principal that Atlas can use to access the Azure Blob Storage Container. Required if \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e is set to `AZURE`.\n","willReplaceOnChanges":true},"serviceUrl":{"type":"string","description":"URL that identifies the blob Endpoint of the Azure Blob Storage Account. Required if \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e is set to `AZURE`.\n","willReplaceOnChanges":true},"tenantId":{"type":"string","description":"This field is ignored; the `mongodbatlas_cloud_provider_access_authorization.azure.tenant_id` is used instead and returned as an attribute. UUID that identifies the Azure Active Directory Tenant ID.\n","deprecationMessage":"This parameter is deprecated."}},"requiredInputs":["bucketName","cloudProvider","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudBackupSnapshotExportBucket resources.\n","properties":{"bucketName":{"type":"string","description":"Name of the bucket that the provided role ID is authorized to access.\n","willReplaceOnChanges":true},"cloudProvider":{"type":"string","description":"Name of the provider of the cloud service where Atlas can access the S3 bucket.\n","willReplaceOnChanges":true},"exportBucketId":{"type":"string","description":"Unique identifier of the snapshot export bucket.\n"},"iamRoleId":{"type":"string","description":"Unique identifier of the role that Atlas can use to access the bucket. Required if \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e is set to `AWS`.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n","willReplaceOnChanges":true},"roleId":{"type":"string","description":"Unique identifier of the Azure Service Principal that Atlas can use to access the Azure Blob Storage Container. Required if \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e is set to `AZURE`.\n","willReplaceOnChanges":true},"serviceUrl":{"type":"string","description":"URL that identifies the blob Endpoint of the Azure Blob Storage Account. Required if \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e is set to `AZURE`.\n","willReplaceOnChanges":true},"tenantId":{"type":"string","description":"This field is ignored; the `mongodbatlas_cloud_provider_access_authorization.azure.tenant_id` is used instead and returned as an attribute. UUID that identifies the Azure Active Directory Tenant ID.\n","deprecationMessage":"This parameter is deprecated."}},"type":"object"}},"mongodbatlas:index/cloudBackupSnapshotExportJob:CloudBackupSnapshotExportJob":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSnapshotExportJob`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSnapshotExportJob`\" pulumi-lang-go=\"`CloudBackupSnapshotExportJob`\" pulumi-lang-python=\"`CloudBackupSnapshotExportJob`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSnapshotExportJob`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSnapshotExportJob`\"\u003e`mongodbatlas.CloudBackupSnapshotExportJob`\u003c/span\u003e allows you to create a cloud backup snapshot export job for the specified project. \n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n### Export one snapshot\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", {\n    projectId: \"{PROJECT_ID}\",\n    iamRoleId: \"{IAM_ROLE_ID}\",\n    bucketName: \"example_bucket\",\n    cloudProvider: \"AWS\",\n});\nconst testCloudBackupSnapshotExportJob = new mongodbatlas.CloudBackupSnapshotExportJob(\"test\", {\n    projectId: \"{PROJECT_ID}\",\n    clusterName: \"{CLUSTER_NAME}\",\n    snapshotId: \"{SNAPSHOT_ID}\",\n    exportBucketId: test.exportBucketId,\n    customDatas: [{\n        key: \"exported by\",\n        value: \"myName\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.CloudBackupSnapshotExportBucket(\"test\",\n    project_id=\"{PROJECT_ID}\",\n    iam_role_id=\"{IAM_ROLE_ID}\",\n    bucket_name=\"example_bucket\",\n    cloud_provider=\"AWS\")\ntest_cloud_backup_snapshot_export_job = mongodbatlas.CloudBackupSnapshotExportJob(\"test\",\n    project_id=\"{PROJECT_ID}\",\n    cluster_name=\"{CLUSTER_NAME}\",\n    snapshot_id=\"{SNAPSHOT_ID}\",\n    export_bucket_id=test.export_bucket_id,\n    custom_datas=[{\n        \"key\": \"exported by\",\n        \"value\": \"myName\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        IamRoleId = \"{IAM_ROLE_ID}\",\n        BucketName = \"example_bucket\",\n        CloudProvider = \"AWS\",\n    });\n\n    var testCloudBackupSnapshotExportJob = new Mongodbatlas.CloudBackupSnapshotExportJob(\"test\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        ClusterName = \"{CLUSTER_NAME}\",\n        SnapshotId = \"{SNAPSHOT_ID}\",\n        ExportBucketId = test.ExportBucketId,\n        CustomDatas = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSnapshotExportJobCustomDataArgs\n            {\n                Key = \"exported by\",\n                Value = \"myName\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.NewCloudBackupSnapshotExportBucket(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotExportBucketArgs{\n\t\t\tProjectId:     pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tIamRoleId:     pulumi.String(\"{IAM_ROLE_ID}\"),\n\t\t\tBucketName:    pulumi.String(\"example_bucket\"),\n\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudBackupSnapshotExportJob(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotExportJobArgs{\n\t\t\tProjectId:      pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tClusterName:    pulumi.String(\"{CLUSTER_NAME}\"),\n\t\t\tSnapshotId:     pulumi.String(\"{SNAPSHOT_ID}\"),\n\t\t\tExportBucketId: test.ExportBucketId,\n\t\t\tCustomDatas: mongodbatlas.CloudBackupSnapshotExportJobCustomDataArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSnapshotExportJobCustomDataArgs{\n\t\t\t\t\tKey:   pulumi.String(\"exported by\"),\n\t\t\t\t\tValue: pulumi.String(\"myName\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucket;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucketArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportJob;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportJobArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSnapshotExportJobCustomDataArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CloudBackupSnapshotExportBucket(\"test\", CloudBackupSnapshotExportBucketArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .iamRoleId(\"{IAM_ROLE_ID}\")\n            .bucketName(\"example_bucket\")\n            .cloudProvider(\"AWS\")\n            .build());\n\n        var testCloudBackupSnapshotExportJob = new CloudBackupSnapshotExportJob(\"testCloudBackupSnapshotExportJob\", CloudBackupSnapshotExportJobArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .clusterName(\"{CLUSTER_NAME}\")\n            .snapshotId(\"{SNAPSHOT_ID}\")\n            .exportBucketId(test.exportBucketId())\n            .customDatas(CloudBackupSnapshotExportJobCustomDataArgs.builder()\n                .key(\"exported by\")\n                .value(\"myName\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:CloudBackupSnapshotExportBucket\n    properties:\n      projectId: '{PROJECT_ID}'\n      iamRoleId: '{IAM_ROLE_ID}'\n      bucketName: example_bucket\n      cloudProvider: AWS\n  testCloudBackupSnapshotExportJob:\n    type: mongodbatlas:CloudBackupSnapshotExportJob\n    name: test\n    properties:\n      projectId: '{PROJECT_ID}'\n      clusterName: '{CLUSTER_NAME}'\n      snapshotId: '{SNAPSHOT_ID}'\n      exportBucketId: ${test.exportBucketId}\n      customDatas:\n        - key: exported by\n          value: myName\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create backup and automatic snapshot export policies\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _export = new mongodbatlas.CloudBackupSnapshotExportBucket(\"export\", {\n    projectId: \"{PROJECT_ID}\",\n    iamRoleId: \"{IAM_ROLE_ID}\",\n    bucketName: \"example_bucket\",\n    cloudProvider: \"AWS\",\n});\nconst backup = new mongodbatlas.CloudBackupSchedule(\"backup\", {\n    projectId: \"{PROJECT_ID}\",\n    clusterName: \"{CLUSTER_NAME}\",\n    autoExportEnabled: true,\n    \"export\": {\n        exportBucketId: _export.exportBucketId,\n        frequencyType: \"weekly\",\n    },\n    useOrgAndGroupNamesInExportPrefix: true,\n    referenceHourOfDay: 7,\n    referenceMinuteOfHour: 0,\n    restoreWindowDays: 5,\n    policyItemHourly: {\n        frequencyInterval: 6,\n        retentionUnit: \"days\",\n        retentionValue: 7,\n    },\n    policyItemDaily: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 7,\n    },\n    policyItemWeeklies: [{\n        frequencyInterval: 6,\n        retentionUnit: \"weeks\",\n        retentionValue: 4,\n    }],\n    policyItemMonthlies: [{\n        frequencyInterval: 28,\n        retentionUnit: \"months\",\n        retentionValue: 12,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexport = mongodbatlas.CloudBackupSnapshotExportBucket(\"export\",\n    project_id=\"{PROJECT_ID}\",\n    iam_role_id=\"{IAM_ROLE_ID}\",\n    bucket_name=\"example_bucket\",\n    cloud_provider=\"AWS\")\nbackup = mongodbatlas.CloudBackupSchedule(\"backup\",\n    project_id=\"{PROJECT_ID}\",\n    cluster_name=\"{CLUSTER_NAME}\",\n    auto_export_enabled=True,\n    export={\n        \"export_bucket_id\": export.export_bucket_id,\n        \"frequency_type\": \"weekly\",\n    },\n    use_org_and_group_names_in_export_prefix=True,\n    reference_hour_of_day=7,\n    reference_minute_of_hour=0,\n    restore_window_days=5,\n    policy_item_hourly={\n        \"frequency_interval\": 6,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 7,\n    },\n    policy_item_daily={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 7,\n    },\n    policy_item_weeklies=[{\n        \"frequency_interval\": 6,\n        \"retention_unit\": \"weeks\",\n        \"retention_value\": 4,\n    }],\n    policy_item_monthlies=[{\n        \"frequency_interval\": 28,\n        \"retention_unit\": \"months\",\n        \"retention_value\": 12,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var export = new Mongodbatlas.CloudBackupSnapshotExportBucket(\"export\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        IamRoleId = \"{IAM_ROLE_ID}\",\n        BucketName = \"example_bucket\",\n        CloudProvider = \"AWS\",\n    });\n\n    var backup = new Mongodbatlas.CloudBackupSchedule(\"backup\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        ClusterName = \"{CLUSTER_NAME}\",\n        AutoExportEnabled = true,\n        Export = new Mongodbatlas.Inputs.CloudBackupScheduleExportArgs\n        {\n            ExportBucketId = export.ExportBucketId,\n            FrequencyType = \"weekly\",\n        },\n        UseOrgAndGroupNamesInExportPrefix = true,\n        ReferenceHourOfDay = 7,\n        ReferenceMinuteOfHour = 0,\n        RestoreWindowDays = 5,\n        PolicyItemHourly = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemHourlyArgs\n        {\n            FrequencyInterval = 6,\n            RetentionUnit = \"days\",\n            RetentionValue = 7,\n        },\n        PolicyItemDaily = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemDailyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 7,\n        },\n        PolicyItemWeeklies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemWeeklyArgs\n            {\n                FrequencyInterval = 6,\n                RetentionUnit = \"weeks\",\n                RetentionValue = 4,\n            },\n        },\n        PolicyItemMonthlies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemMonthlyArgs\n            {\n                FrequencyInterval = 28,\n                RetentionUnit = \"months\",\n                RetentionValue = 12,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texport, err := mongodbatlas.NewCloudBackupSnapshotExportBucket(ctx, \"export\", \u0026mongodbatlas.CloudBackupSnapshotExportBucketArgs{\n\t\t\tProjectId:     pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tIamRoleId:     pulumi.String(\"{IAM_ROLE_ID}\"),\n\t\t\tBucketName:    pulumi.String(\"example_bucket\"),\n\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudBackupSchedule(ctx, \"backup\", \u0026mongodbatlas.CloudBackupScheduleArgs{\n\t\t\tProjectId:         pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tClusterName:       pulumi.String(\"{CLUSTER_NAME}\"),\n\t\t\tAutoExportEnabled: pulumi.Bool(true),\n\t\t\tExport: \u0026mongodbatlas.CloudBackupScheduleExportArgs{\n\t\t\t\tExportBucketId: export.ExportBucketId,\n\t\t\t\tFrequencyType:  pulumi.String(\"weekly\"),\n\t\t\t},\n\t\t\tUseOrgAndGroupNamesInExportPrefix: pulumi.Bool(true),\n\t\t\tReferenceHourOfDay:                pulumi.Int(7),\n\t\t\tReferenceMinuteOfHour:             pulumi.Int(0),\n\t\t\tRestoreWindowDays:                 pulumi.Int(5),\n\t\t\tPolicyItemHourly: \u0026mongodbatlas.CloudBackupSchedulePolicyItemHourlyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(6),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(7),\n\t\t\t},\n\t\t\tPolicyItemDaily: \u0026mongodbatlas.CloudBackupSchedulePolicyItemDailyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(7),\n\t\t\t},\n\t\t\tPolicyItemWeeklies: mongodbatlas.CloudBackupSchedulePolicyItemWeeklyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemWeeklyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(6),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"weeks\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemMonthlies: mongodbatlas.CloudBackupSchedulePolicyItemMonthlyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemMonthlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(28),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"months\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(12),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucket;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucketArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSchedule;\nimport com.pulumi.mongodbatlas.CloudBackupScheduleArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupScheduleExportArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemHourlyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemDailyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemWeeklyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemMonthlyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var export = new CloudBackupSnapshotExportBucket(\"export\", CloudBackupSnapshotExportBucketArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .iamRoleId(\"{IAM_ROLE_ID}\")\n            .bucketName(\"example_bucket\")\n            .cloudProvider(\"AWS\")\n            .build());\n\n        var backup = new CloudBackupSchedule(\"backup\", CloudBackupScheduleArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .clusterName(\"{CLUSTER_NAME}\")\n            .autoExportEnabled(true)\n            .export(CloudBackupScheduleExportArgs.builder()\n                .exportBucketId(export.exportBucketId())\n                .frequencyType(\"weekly\")\n                .build())\n            .useOrgAndGroupNamesInExportPrefix(true)\n            .referenceHourOfDay(7)\n            .referenceMinuteOfHour(0)\n            .restoreWindowDays(5)\n            .policyItemHourly(CloudBackupSchedulePolicyItemHourlyArgs.builder()\n                .frequencyInterval(6)\n                .retentionUnit(\"days\")\n                .retentionValue(7)\n                .build())\n            .policyItemDaily(CloudBackupSchedulePolicyItemDailyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(7)\n                .build())\n            .policyItemWeeklies(CloudBackupSchedulePolicyItemWeeklyArgs.builder()\n                .frequencyInterval(6)\n                .retentionUnit(\"weeks\")\n                .retentionValue(4)\n                .build())\n            .policyItemMonthlies(CloudBackupSchedulePolicyItemMonthlyArgs.builder()\n                .frequencyInterval(28)\n                .retentionUnit(\"months\")\n                .retentionValue(12)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  export:\n    type: mongodbatlas:CloudBackupSnapshotExportBucket\n    properties:\n      projectId: '{PROJECT_ID}'\n      iamRoleId: '{IAM_ROLE_ID}'\n      bucketName: example_bucket\n      cloudProvider: AWS\n  backup:\n    type: mongodbatlas:CloudBackupSchedule\n    properties:\n      projectId: '{PROJECT_ID}'\n      clusterName: '{CLUSTER_NAME}'\n      autoExportEnabled: true\n      export:\n        exportBucketId: ${export.exportBucketId}\n        frequencyType: weekly\n      useOrgAndGroupNamesInExportPrefix: true\n      referenceHourOfDay: 7\n      referenceMinuteOfHour: 0\n      restoreWindowDays: 5\n      policyItemHourly:\n        frequencyInterval: 6\n        retentionUnit: days\n        retentionValue: 7\n      policyItemDaily:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 7\n      policyItemWeeklies:\n        - frequencyInterval: 6\n          retentionUnit: weeks\n          retentionValue: 4\n      policyItemMonthlies:\n        - frequencyInterval: 28\n          retentionUnit: months\n          retentionValue: 12\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Cloud Backup Snapshot Export Job\n\n## Import\n\nCloud Backup Snapshot Export Backup entries can be imported using project project_id,\u003cspan pulumi-lang-nodejs=\" clusterName \" pulumi-lang-dotnet=\" ClusterName \" pulumi-lang-go=\" clusterName \" pulumi-lang-python=\" cluster_name \" pulumi-lang-yaml=\" clusterName \" pulumi-lang-java=\" clusterName \"\u003e cluster_name \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" exportJobId \" pulumi-lang-dotnet=\" ExportJobId \" pulumi-lang-go=\" exportJobId \" pulumi-lang-python=\" export_job_id \" pulumi-lang-yaml=\" exportJobId \" pulumi-lang-java=\" exportJobId \"\u003e export_job_id \u003c/span\u003e(Unique identifier of the snapshot export job), in the format `PROJECTID-CLUSTERNAME-EXPORTJOBID`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/cloudBackupSnapshotExportJob:CloudBackupSnapshotExportJob test 5d0f1f73cf09a29120e173cf-5d116d82014b764445b2f9b5-5d116d82014b764445b2f9b5\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/cloud-backup/export/create-one-export-job/)\n\n","properties":{"clusterName":{"type":"string","description":"Name of the Atlas cluster whose snapshot you want to export.\n"},"components":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSnapshotExportJobComponent:CloudBackupSnapshotExportJobComponent"},"description":"_Returned for sharded clusters only._ Export job details for each replica set in the sharded cluster.\n"},"createdAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the export job was created.\n"},"customDatas":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSnapshotExportJobCustomData:CloudBackupSnapshotExportJobCustomData"},"description":"Custom data to include in the metadata file named `.complete` that Atlas uploads to the bucket when the export job finishes. Custom data can be specified as key and value pairs.\n"},"exportBucketId":{"type":"string","description":"Unique identifier of the AWS bucket to export the Cloud Backup snapshot to. If necessary, use the [Get All Snapshot Export Buckets](https://docs.atlas.mongodb.com/reference/api/cloud-backup/export/get-all-export-buckets/) API to retrieve the IDs of all available export buckets for a project or use the data source mongodbatlas_cloud_backup_snapshot_export_buckets\n"},"exportJobId":{"type":"string","description":"Unique identifier of the export job.\n* `prefix ` - Full path on the cloud provider bucket to the folder where the snapshot is exported. The path is in the following format:`/exported_snapshots/{ORG-NAME}/{PROJECT-NAME}/{CLUSTER-NAME}/{SNAPSHOT-INITIATION-DATE}/{TIMESTAMP}`\n"},"exportStatusExportedCollections":{"type":"integer"},"exportStatusTotalCollections":{"type":"integer"},"finishedAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the export job completes.\n"},"prefix":{"type":"string"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project which contains the Atlas cluster whose snapshot you want to export.\n"},"snapshotId":{"type":"string","description":"Unique identifier of the Cloud Backup snapshot to export. If necessary, use the [Get All Cloud Backups](https://docs.atlas.mongodb.com/reference/api/cloud-backup/backup/get-all-backups/) API to retrieve the list of snapshot IDs for a cluster or use the data source mongodbatlas_cloud_cloud_backup_snapshots\n"},"state":{"type":"string","description":"Status of the export job. Value can be one of the following:\n* `Queued` - indicates that the export job is queued\n* `InProgress` - indicates that the snapshot is being exported\n* `Successful` - indicates that the export job has completed successfully\n* `Failed` - indicates that the export job has failed\n* `Cancelled` - indicates that the export job has cancelled\n"}},"required":["clusterName","components","createdAt","exportBucketId","exportJobId","exportStatusExportedCollections","exportStatusTotalCollections","finishedAt","prefix","projectId","snapshotId","state"],"inputProperties":{"clusterName":{"type":"string","description":"Name of the Atlas cluster whose snapshot you want to export.\n","willReplaceOnChanges":true},"customDatas":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSnapshotExportJobCustomData:CloudBackupSnapshotExportJobCustomData"},"description":"Custom data to include in the metadata file named `.complete` that Atlas uploads to the bucket when the export job finishes. Custom data can be specified as key and value pairs.\n","willReplaceOnChanges":true},"exportBucketId":{"type":"string","description":"Unique identifier of the AWS bucket to export the Cloud Backup snapshot to. If necessary, use the [Get All Snapshot Export Buckets](https://docs.atlas.mongodb.com/reference/api/cloud-backup/export/get-all-export-buckets/) API to retrieve the IDs of all available export buckets for a project or use the data source mongodbatlas_cloud_backup_snapshot_export_buckets\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project which contains the Atlas cluster whose snapshot you want to export.\n","willReplaceOnChanges":true},"snapshotId":{"type":"string","description":"Unique identifier of the Cloud Backup snapshot to export. If necessary, use the [Get All Cloud Backups](https://docs.atlas.mongodb.com/reference/api/cloud-backup/backup/get-all-backups/) API to retrieve the list of snapshot IDs for a cluster or use the data source mongodbatlas_cloud_cloud_backup_snapshots\n","willReplaceOnChanges":true}},"requiredInputs":["clusterName","exportBucketId","projectId","snapshotId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudBackupSnapshotExportJob resources.\n","properties":{"clusterName":{"type":"string","description":"Name of the Atlas cluster whose snapshot you want to export.\n","willReplaceOnChanges":true},"components":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSnapshotExportJobComponent:CloudBackupSnapshotExportJobComponent"},"description":"_Returned for sharded clusters only._ Export job details for each replica set in the sharded cluster.\n"},"createdAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the export job was created.\n"},"customDatas":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudBackupSnapshotExportJobCustomData:CloudBackupSnapshotExportJobCustomData"},"description":"Custom data to include in the metadata file named `.complete` that Atlas uploads to the bucket when the export job finishes. Custom data can be specified as key and value pairs.\n","willReplaceOnChanges":true},"exportBucketId":{"type":"string","description":"Unique identifier of the AWS bucket to export the Cloud Backup snapshot to. If necessary, use the [Get All Snapshot Export Buckets](https://docs.atlas.mongodb.com/reference/api/cloud-backup/export/get-all-export-buckets/) API to retrieve the IDs of all available export buckets for a project or use the data source mongodbatlas_cloud_backup_snapshot_export_buckets\n","willReplaceOnChanges":true},"exportJobId":{"type":"string","description":"Unique identifier of the export job.\n* `prefix ` - Full path on the cloud provider bucket to the folder where the snapshot is exported. The path is in the following format:`/exported_snapshots/{ORG-NAME}/{PROJECT-NAME}/{CLUSTER-NAME}/{SNAPSHOT-INITIATION-DATE}/{TIMESTAMP}`\n"},"exportStatusExportedCollections":{"type":"integer"},"exportStatusTotalCollections":{"type":"integer"},"finishedAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the export job completes.\n"},"prefix":{"type":"string"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project which contains the Atlas cluster whose snapshot you want to export.\n","willReplaceOnChanges":true},"snapshotId":{"type":"string","description":"Unique identifier of the Cloud Backup snapshot to export. If necessary, use the [Get All Cloud Backups](https://docs.atlas.mongodb.com/reference/api/cloud-backup/backup/get-all-backups/) API to retrieve the list of snapshot IDs for a cluster or use the data source mongodbatlas_cloud_cloud_backup_snapshots\n","willReplaceOnChanges":true},"state":{"type":"string","description":"Status of the export job. Value can be one of the following:\n* `Queued` - indicates that the export job is queued\n* `InProgress` - indicates that the snapshot is being exported\n* `Successful` - indicates that the export job has completed successfully\n* `Failed` - indicates that the export job has failed\n* `Cancelled` - indicates that the export job has cancelled\n"}},"type":"object"}},"mongodbatlas:index/cloudBackupSnapshotRestoreJob:CloudBackupSnapshotRestoreJob":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\" pulumi-lang-go=\"`CloudBackupSnapshotRestoreJob`\" pulumi-lang-python=\"`CloudBackupSnapshotRestoreJob`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\"\u003e`mongodbatlas.CloudBackupSnapshotRestoreJob`\u003c/span\u003e provides a resource to create a new restore job from a cloud backup snapshot of a specified cluster. The restore job must define one of three delivery types:\n* **automated:** Atlas automatically restores the snapshot with snapshotId to the Atlas cluster with name targetClusterName in the Atlas project with targetGroupId.\n\n* **download:** Atlas provides a URL to download a .tar.gz of the snapshot with snapshotId. The contents of the archive contain the data files for your Atlas cluster.\n\n* **pointInTime:**  Atlas performs a Continuous Cloud Backup restore.\n\n\u003e **Important:** If you specify `deliveryType` : \u003cspan pulumi-lang-nodejs=\"`automated`\" pulumi-lang-dotnet=\"`Automated`\" pulumi-lang-go=\"`automated`\" pulumi-lang-python=\"`automated`\" pulumi-lang-yaml=\"`automated`\" pulumi-lang-java=\"`automated`\"\u003e`automated`\u003c/span\u003e or `deliveryType` : `pointInTime` in your request body to create an automated restore job, Atlas removes all existing data on the target cluster prior to the restore.\n\n\u003e **Important:** If you specify `deliveryType` : \u003cspan pulumi-lang-nodejs=\"`automated`\" pulumi-lang-dotnet=\"`Automated`\" pulumi-lang-go=\"`automated`\" pulumi-lang-python=\"`automated`\" pulumi-lang-yaml=\"`automated`\" pulumi-lang-java=\"`automated`\"\u003e`automated`\u003c/span\u003e or `deliveryType` : `pointInTime` in your\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\" pulumi-lang-go=\"`CloudBackupSnapshotRestoreJob`\" pulumi-lang-python=\"`CloudBackupSnapshotRestoreJob`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\"\u003e`mongodbatlas.CloudBackupSnapshotRestoreJob`\u003c/span\u003e resource, you won't be able to delete the snapshot resource in MongoDB Atlas as the Atlas Admin API doesn't support this. The provider will remove the Terraform resource from the state file but won't destroy the MongoDB Atlas resource.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n### Example automated delivery type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"MyCluster\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"EU_WEST_2\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst test = new mongodbatlas.CloudBackupSnapshot(\"test\", {\n    projectId: myCluster.projectId,\n    clusterName: myCluster.name,\n    description: \"myDescription\",\n    retentionInDays: 1,\n});\nconst testCloudBackupSnapshotRestoreJob = new mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\", {\n    projectId: test.projectId,\n    clusterName: test.clusterName,\n    snapshotId: test.snapshotId,\n    deliveryTypeConfig: {\n        automated: true,\n        targetClusterName: \"MyCluster\",\n        targetProjectId: \"5cf5a45a9ccf6400e60981b6\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"MyCluster\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"EU_WEST_2\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest = mongodbatlas.CloudBackupSnapshot(\"test\",\n    project_id=my_cluster.project_id,\n    cluster_name=my_cluster.name,\n    description=\"myDescription\",\n    retention_in_days=1)\ntest_cloud_backup_snapshot_restore_job = mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\",\n    project_id=test.project_id,\n    cluster_name=test.cluster_name,\n    snapshot_id=test.snapshot_id,\n    delivery_type_config={\n        \"automated\": True,\n        \"target_cluster_name\": \"MyCluster\",\n        \"target_project_id\": \"5cf5a45a9ccf6400e60981b6\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"MyCluster\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"EU_WEST_2\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.CloudBackupSnapshot(\"test\", new()\n    {\n        ProjectId = myCluster.ProjectId,\n        ClusterName = myCluster.Name,\n        Description = \"myDescription\",\n        RetentionInDays = 1,\n    });\n\n    var testCloudBackupSnapshotRestoreJob = new Mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\", new()\n    {\n        ProjectId = test.ProjectId,\n        ClusterName = test.ClusterName,\n        SnapshotId = test.SnapshotId,\n        DeliveryTypeConfig = new Mongodbatlas.Inputs.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs\n        {\n            Automated = true,\n            TargetClusterName = \"MyCluster\",\n            TargetProjectId = \"5cf5a45a9ccf6400e60981b6\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"MyCluster\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_WEST_2\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := mongodbatlas.NewCloudBackupSnapshot(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotArgs{\n\t\t\tProjectId:       myCluster.ProjectId,\n\t\t\tClusterName:     myCluster.Name,\n\t\t\tDescription:     pulumi.String(\"myDescription\"),\n\t\t\tRetentionInDays: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudBackupSnapshotRestoreJob(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotRestoreJobArgs{\n\t\t\tProjectId:   test.ProjectId,\n\t\t\tClusterName: test.ClusterName,\n\t\t\tSnapshotId:  test.SnapshotId,\n\t\t\tDeliveryTypeConfig: \u0026mongodbatlas.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs{\n\t\t\t\tAutomated:         pulumi.Bool(true),\n\t\t\t\tTargetClusterName: pulumi.String(\"MyCluster\"),\n\t\t\t\tTargetProjectId:   pulumi.String(\"5cf5a45a9ccf6400e60981b6\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshot;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJob;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJobArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"MyCluster\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"EU_WEST_2\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var test = new CloudBackupSnapshot(\"test\", CloudBackupSnapshotArgs.builder()\n            .projectId(myCluster.projectId())\n            .clusterName(myCluster.name())\n            .description(\"myDescription\")\n            .retentionInDays(1)\n            .build());\n\n        var testCloudBackupSnapshotRestoreJob = new CloudBackupSnapshotRestoreJob(\"testCloudBackupSnapshotRestoreJob\", CloudBackupSnapshotRestoreJobArgs.builder()\n            .projectId(test.projectId())\n            .clusterName(test.clusterName())\n            .snapshotId(test.snapshotId())\n            .deliveryTypeConfig(CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs.builder()\n                .automated(true)\n                .targetClusterName(\"MyCluster\")\n                .targetProjectId(\"5cf5a45a9ccf6400e60981b6\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: my_cluster\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      name: MyCluster\n      clusterType: REPLICASET\n      backupEnabled: true # enable cloud backup snapshots\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: EU_WEST_2\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  test:\n    type: mongodbatlas:CloudBackupSnapshot\n    properties:\n      projectId: ${myCluster.projectId}\n      clusterName: ${myCluster.name}\n      description: myDescription\n      retentionInDays: 1\n  testCloudBackupSnapshotRestoreJob:\n    type: mongodbatlas:CloudBackupSnapshotRestoreJob\n    name: test\n    properties:\n      projectId: ${test.projectId}\n      clusterName: ${test.clusterName}\n      snapshotId: ${test.snapshotId}\n      deliveryTypeConfig:\n        automated: true\n        targetClusterName: MyCluster\n        targetProjectId: 5cf5a45a9ccf6400e60981b6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example download delivery type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"MyCluster\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"EU_WEST_2\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst test = new mongodbatlas.CloudBackupSnapshot(\"test\", {\n    projectId: myCluster.projectId,\n    clusterName: myCluster.name,\n    description: \"myDescription\",\n    retentionInDays: 1,\n});\nconst testCloudBackupSnapshotRestoreJob = new mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\", {\n    projectId: test.projectId,\n    clusterName: test.clusterName,\n    snapshotId: test.snapshotId,\n    deliveryTypeConfig: {\n        download: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"MyCluster\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"EU_WEST_2\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest = mongodbatlas.CloudBackupSnapshot(\"test\",\n    project_id=my_cluster.project_id,\n    cluster_name=my_cluster.name,\n    description=\"myDescription\",\n    retention_in_days=1)\ntest_cloud_backup_snapshot_restore_job = mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\",\n    project_id=test.project_id,\n    cluster_name=test.cluster_name,\n    snapshot_id=test.snapshot_id,\n    delivery_type_config={\n        \"download\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"MyCluster\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"EU_WEST_2\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.CloudBackupSnapshot(\"test\", new()\n    {\n        ProjectId = myCluster.ProjectId,\n        ClusterName = myCluster.Name,\n        Description = \"myDescription\",\n        RetentionInDays = 1,\n    });\n\n    var testCloudBackupSnapshotRestoreJob = new Mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\", new()\n    {\n        ProjectId = test.ProjectId,\n        ClusterName = test.ClusterName,\n        SnapshotId = test.SnapshotId,\n        DeliveryTypeConfig = new Mongodbatlas.Inputs.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs\n        {\n            Download = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"MyCluster\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_WEST_2\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := mongodbatlas.NewCloudBackupSnapshot(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotArgs{\n\t\t\tProjectId:       myCluster.ProjectId,\n\t\t\tClusterName:     myCluster.Name,\n\t\t\tDescription:     pulumi.String(\"myDescription\"),\n\t\t\tRetentionInDays: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudBackupSnapshotRestoreJob(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotRestoreJobArgs{\n\t\t\tProjectId:   test.ProjectId,\n\t\t\tClusterName: test.ClusterName,\n\t\t\tSnapshotId:  test.SnapshotId,\n\t\t\tDeliveryTypeConfig: \u0026mongodbatlas.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs{\n\t\t\t\tDownload: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshot;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJob;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJobArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"MyCluster\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"EU_WEST_2\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var test = new CloudBackupSnapshot(\"test\", CloudBackupSnapshotArgs.builder()\n            .projectId(myCluster.projectId())\n            .clusterName(myCluster.name())\n            .description(\"myDescription\")\n            .retentionInDays(1)\n            .build());\n\n        var testCloudBackupSnapshotRestoreJob = new CloudBackupSnapshotRestoreJob(\"testCloudBackupSnapshotRestoreJob\", CloudBackupSnapshotRestoreJobArgs.builder()\n            .projectId(test.projectId())\n            .clusterName(test.clusterName())\n            .snapshotId(test.snapshotId())\n            .deliveryTypeConfig(CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs.builder()\n                .download(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: my_cluster\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      name: MyCluster\n      clusterType: REPLICASET\n      backupEnabled: true # enable cloud backup snapshots\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: EU_WEST_2\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  test:\n    type: mongodbatlas:CloudBackupSnapshot\n    properties:\n      projectId: ${myCluster.projectId}\n      clusterName: ${myCluster.name}\n      description: myDescription\n      retentionInDays: 1\n  testCloudBackupSnapshotRestoreJob:\n    type: mongodbatlas:CloudBackupSnapshotRestoreJob\n    name: test\n    properties:\n      projectId: ${test.projectId}\n      clusterName: ${test.clusterName}\n      snapshotId: ${test.snapshotId}\n      deliveryTypeConfig:\n        download: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example of a point in time restore\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"MyCluster\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"EU_WEST_2\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst test = new mongodbatlas.CloudBackupSnapshot(\"test\", {\n    projectId: clusterTest.projectId,\n    clusterName: clusterTest.name,\n    description: \"My description\",\n    retentionInDays: 1,\n});\nconst testCloudBackupSnapshotRestoreJob: mongodbatlas.CloudBackupSnapshotRestoreJob[] = [];\nfor (const range = {value: 0}; range.value \u003c (pointInTimeUtcSeconds == 0 ? 0 : 1); range.value++) {\n    testCloudBackupSnapshotRestoreJob.push(new mongodbatlas.CloudBackupSnapshotRestoreJob(`test-${range.value}`, {\n        projectId: test.projectId,\n        clusterName: test.clusterName,\n        snapshotId: test.id,\n        deliveryTypeConfig: {\n            pointInTime: true,\n            targetClusterName: clusterTest.name,\n            targetProjectId: clusterTest.projectId,\n            pointInTimeUtcSeconds: pointInTimeUtcSeconds,\n        },\n    }));\n}\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"MyCluster\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"EU_WEST_2\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest = mongodbatlas.CloudBackupSnapshot(\"test\",\n    project_id=cluster_test[\"projectId\"],\n    cluster_name=cluster_test[\"name\"],\n    description=\"My description\",\n    retention_in_days=1)\ntest_cloud_backup_snapshot_restore_job = []\nfor range in [{\"value\": i} for i in range(0, 0 if point_in_time_utc_seconds == 0 else 1)]:\n    test_cloud_backup_snapshot_restore_job.append(mongodbatlas.CloudBackupSnapshotRestoreJob(f\"test-{range['value']}\",\n        project_id=test.project_id,\n        cluster_name=test.cluster_name,\n        snapshot_id=test.id,\n        delivery_type_config={\n            \"point_in_time\": True,\n            \"target_cluster_name\": cluster_test[\"name\"],\n            \"target_project_id\": cluster_test[\"projectId\"],\n            \"point_in_time_utc_seconds\": point_in_time_utc_seconds,\n        }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"MyCluster\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"EU_WEST_2\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.CloudBackupSnapshot(\"test\", new()\n    {\n        ProjectId = clusterTest.ProjectId,\n        ClusterName = clusterTest.Name,\n        Description = \"My description\",\n        RetentionInDays = 1,\n    });\n\n    var testCloudBackupSnapshotRestoreJob = new List\u003cMongodbatlas.CloudBackupSnapshotRestoreJob\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c (pointInTimeUtcSeconds == 0 ? 0 : 1); rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        testCloudBackupSnapshotRestoreJob.Add(new Mongodbatlas.CloudBackupSnapshotRestoreJob($\"test-{range.Value}\", new()\n        {\n            ProjectId = test.ProjectId,\n            ClusterName = test.ClusterName,\n            SnapshotId = test.Id,\n            DeliveryTypeConfig = new Mongodbatlas.Inputs.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs\n            {\n                PointInTime = true,\n                TargetClusterName = clusterTest.Name,\n                TargetProjectId = clusterTest.ProjectId,\n                PointInTimeUtcSeconds = pointInTimeUtcSeconds,\n            },\n        }));\n    }\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"MyCluster\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_WEST_2\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := mongodbatlas.NewCloudBackupSnapshot(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotArgs{\n\t\t\tProjectId:       pulumi.Any(clusterTest.ProjectId),\n\t\t\tClusterName:     pulumi.Any(clusterTest.Name),\n\t\t\tDescription:     pulumi.String(\"My description\"),\n\t\t\tRetentionInDays: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar tmp0 float64\n\t\tif pointInTimeUtcSeconds == 0 {\n\t\t\ttmp0 = 0\n\t\t} else {\n\t\t\ttmp0 = 1\n\t\t}\n\t\tvar testCloudBackupSnapshotRestoreJob []*mongodbatlas.CloudBackupSnapshotRestoreJob\n\t\tfor index := 0; index \u003c tmp0; index++ {\n\t\t\tkey0 := index\n\t\t\t_ := index\n\t\t\t__res, err := mongodbatlas.NewCloudBackupSnapshotRestoreJob(ctx, fmt.Sprintf(\"test-%v\", key0), \u0026mongodbatlas.CloudBackupSnapshotRestoreJobArgs{\n\t\t\t\tProjectId:   test.ProjectId,\n\t\t\t\tClusterName: test.ClusterName,\n\t\t\t\tSnapshotId:  test.ID(),\n\t\t\t\tDeliveryTypeConfig: \u0026mongodbatlas.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs{\n\t\t\t\t\tPointInTime:           pulumi.Bool(true),\n\t\t\t\t\tTargetClusterName:     pulumi.Any(clusterTest.Name),\n\t\t\t\t\tTargetProjectId:       pulumi.Any(clusterTest.ProjectId),\n\t\t\t\t\tPointInTimeUtcSeconds: pulumi.Any(pointInTimeUtcSeconds),\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\ttestCloudBackupSnapshotRestoreJob = append(testCloudBackupSnapshotRestoreJob, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshot;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJob;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJobArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"MyCluster\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"EU_WEST_2\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var test = new CloudBackupSnapshot(\"test\", CloudBackupSnapshotArgs.builder()\n            .projectId(clusterTest.projectId())\n            .clusterName(clusterTest.name())\n            .description(\"My description\")\n            .retentionInDays(1)\n            .build());\n\n        for (var i = 0; i \u003c (pointInTimeUtcSeconds == 0 ? 0 : 1); i++) {\n            new CloudBackupSnapshotRestoreJob(\"testCloudBackupSnapshotRestoreJob-\" + i, CloudBackupSnapshotRestoreJobArgs.builder()\n                .projectId(test.projectId())\n                .clusterName(test.clusterName())\n                .snapshotId(test.id())\n                .deliveryTypeConfig(CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs.builder()\n                    .pointInTime(true)\n                    .targetClusterName(clusterTest.name())\n                    .targetProjectId(clusterTest.projectId())\n                    .pointInTimeUtcSeconds(pointInTimeUtcSeconds)\n                    .build())\n                .build());\n\n        \n}\n    }\n}\n```\n```yaml\nresources:\n  myCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: my_cluster\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      name: MyCluster\n      clusterType: REPLICASET\n      backupEnabled: true # enable cloud backup snapshots\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: EU_WEST_2\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  test:\n    type: mongodbatlas:CloudBackupSnapshot\n    properties:\n      projectId: ${clusterTest.projectId}\n      clusterName: ${clusterTest.name}\n      description: My description\n      retentionInDays: '1'\n  testCloudBackupSnapshotRestoreJob:\n    type: mongodbatlas:CloudBackupSnapshotRestoreJob\n    name: test\n    properties:\n      projectId: ${test.projectId}\n      clusterName: ${test.clusterName}\n      snapshotId: ${test.id}\n      deliveryTypeConfig:\n        pointInTime: true\n        targetClusterName: ${clusterTest.name}\n        targetProjectId: ${clusterTest.projectId}\n        pointInTimeUtcSeconds: ${pointInTimeUtcSeconds}\n    options: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Restore from backup snapshot at point in time\n- Restore from backup snapshot using an advanced cluster resource\n\n## Import\n\nCloud Backup Snapshot Restore Job entries can be imported using project project_id,\u003cspan pulumi-lang-nodejs=\" clusterName \" pulumi-lang-dotnet=\" ClusterName \" pulumi-lang-go=\" clusterName \" pulumi-lang-python=\" cluster_name \" pulumi-lang-yaml=\" clusterName \" pulumi-lang-java=\" clusterName \"\u003e cluster_name \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" snapshotId \" pulumi-lang-dotnet=\" SnapshotId \" pulumi-lang-go=\" snapshotId \" pulumi-lang-python=\" snapshot_id \" pulumi-lang-yaml=\" snapshotId \" pulumi-lang-java=\" snapshotId \"\u003e snapshot_id \u003c/span\u003e(Unique identifier of the snapshot), in the format `PROJECTID-CLUSTERNAME-JOBID`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/cloudBackupSnapshotRestoreJob:CloudBackupSnapshotRestoreJob test 5cf5a45a9ccf6400e60981b6-MyCluster-5d1b654ecf09a24b888f4c79\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/cloud-backup/restore/restores/)\n\n","properties":{"cancelled":{"type":"boolean","description":"Indicates whether the restore job was canceled.\n"},"clusterName":{"type":"string","description":"The name of the Atlas cluster whose snapshot you want to restore.\n"},"deliveryTypeConfig":{"$ref":"#/types/mongodbatlas:index/CloudBackupSnapshotRestoreJobDeliveryTypeConfig:CloudBackupSnapshotRestoreJobDeliveryTypeConfig","description":"Type of restore job to create. Possible configurations are: **download**, **automated**, or **pointInTime** only one must be set it in `\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e`.\n* `delivery_type_config.automated` - Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to use the automated configuration.\n* `delivery_type_config.download` - Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to use the download configuration.\n* `delivery_type_config.pointInTime` - Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to use the pointInTime configuration. If using pointInTime configuration, you must also specify either \u003cspan pulumi-lang-nodejs=\"`oplogTs`\" pulumi-lang-dotnet=\"`OplogTs`\" pulumi-lang-go=\"`oplogTs`\" pulumi-lang-python=\"`oplog_ts`\" pulumi-lang-yaml=\"`oplogTs`\" pulumi-lang-java=\"`oplogTs`\"\u003e`oplog_ts`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`oplogInc`\" pulumi-lang-dotnet=\"`OplogInc`\" pulumi-lang-go=\"`oplogInc`\" pulumi-lang-python=\"`oplog_inc`\" pulumi-lang-yaml=\"`oplogInc`\" pulumi-lang-java=\"`oplogInc`\"\u003e`oplog_inc`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`pointInTimeUtcSeconds`\" pulumi-lang-dotnet=\"`PointInTimeUtcSeconds`\" pulumi-lang-go=\"`pointInTimeUtcSeconds`\" pulumi-lang-python=\"`point_in_time_utc_seconds`\" pulumi-lang-yaml=\"`pointInTimeUtcSeconds`\" pulumi-lang-java=\"`pointInTimeUtcSeconds`\"\u003e`point_in_time_utc_seconds`\u003c/span\u003e.\n* `delivery_type_config.target_cluster_name` - Name of the target Atlas cluster to which the restore job restores the snapshot. Required for **automated** and **pointInTime**.\n* `delivery_type_config.target_project_id` - Name of the target Atlas cluster to which the restore job restores the snapshot. Required for **automated** and **pointInTime**.\n* `delivery_type_config.oplog_ts` - Optional setting for **pointInTime** configuration. Timestamp in the number of seconds that have elapsed since the UNIX epoch from which to you want to restore this snapshot. This is the first part of an Oplog timestamp.\n* `delivery_type_config.oplog_inc` - Optional setting for **pointInTime** configuration. Oplog operation number from which to you want to restore this snapshot. This is the second part of an Oplog timestamp. Used in conjunction with \u003cspan pulumi-lang-nodejs=\"`oplogTs`\" pulumi-lang-dotnet=\"`OplogTs`\" pulumi-lang-go=\"`oplogTs`\" pulumi-lang-python=\"`oplog_ts`\" pulumi-lang-yaml=\"`oplogTs`\" pulumi-lang-java=\"`oplogTs`\"\u003e`oplog_ts`\u003c/span\u003e.\n* `delivery_type_config.point_in_time_utc_seconds` - Optional setting for **pointInTime** configuration. Timestamp in the number of seconds that have elapsed since the UNIX epoch from which you want to restore this snapshot. Used instead of oplog settings.\n"},"deliveryUrls":{"type":"array","items":{"type":"string"},"description":"One or more URLs for the compressed snapshot files for manual download. Only visible if deliveryType is download.\n"},"expired":{"type":"boolean","description":"Indicates whether the restore job expired.\n"},"expiresAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when the restore job expires.\n"},"failed":{"type":"boolean","description":"Indicates whether the restore job failed.\n"},"finishedAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when the restore job completed.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster whose snapshot you want to restore.\n"},"snapshotId":{"type":"string","description":"Optional setting for **pointInTime** configuration. Unique identifier of the snapshot to restore.\n"},"snapshotRestoreJobId":{"type":"string","description":"The unique identifier of the restore job.\n"},"timestamp":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the snapshot associated to snapshotId was taken.\n* `oplogTs` - Timestamp in the number of seconds that have elapsed since the UNIX epoch from which to you want to restore this snapshot.\nThree conditions apply to this parameter:\n* Enable Continuous Cloud Backup on your cluster.\n* Specify oplogInc.\n* Specify either oplogTs and oplogInc or pointInTimeUTCSeconds, but not both.\n* `oplogInc` - Oplog operation number from which to you want to restore this snapshot. This is the second part of an Oplog timestamp.\nThree conditions apply to this parameter:\n* Enable Continuous Cloud Backup on your cluster.\n* Specify oplogTs.\n* Specify either oplogTs and oplogInc or pointInTimeUTCSeconds, but not both.\n* `pointInTimeUTCSeconds` - Timestamp in the number of seconds that have elapsed since the UNIX epoch from which you want to restore this snapshot.\nTwo conditions apply to this parameter:\n* Enable Continuous Cloud Backup on your cluster.\n* Specify either pointInTimeUTCSeconds or oplogTs and oplogInc, but not both.\n"}},"required":["cancelled","clusterName","deliveryUrls","expired","expiresAt","failed","finishedAt","projectId","snapshotRestoreJobId","timestamp"],"inputProperties":{"clusterName":{"type":"string","description":"The name of the Atlas cluster whose snapshot you want to restore.\n","willReplaceOnChanges":true},"deliveryTypeConfig":{"$ref":"#/types/mongodbatlas:index/CloudBackupSnapshotRestoreJobDeliveryTypeConfig:CloudBackupSnapshotRestoreJobDeliveryTypeConfig","description":"Type of restore job to create. Possible configurations are: **download**, **automated**, or **pointInTime** only one must be set it in `\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e`.\n* `delivery_type_config.automated` - Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to use the automated configuration.\n* `delivery_type_config.download` - Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to use the download configuration.\n* `delivery_type_config.pointInTime` - Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to use the pointInTime configuration. If using pointInTime configuration, you must also specify either \u003cspan pulumi-lang-nodejs=\"`oplogTs`\" pulumi-lang-dotnet=\"`OplogTs`\" pulumi-lang-go=\"`oplogTs`\" pulumi-lang-python=\"`oplog_ts`\" pulumi-lang-yaml=\"`oplogTs`\" pulumi-lang-java=\"`oplogTs`\"\u003e`oplog_ts`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`oplogInc`\" pulumi-lang-dotnet=\"`OplogInc`\" pulumi-lang-go=\"`oplogInc`\" pulumi-lang-python=\"`oplog_inc`\" pulumi-lang-yaml=\"`oplogInc`\" pulumi-lang-java=\"`oplogInc`\"\u003e`oplog_inc`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`pointInTimeUtcSeconds`\" pulumi-lang-dotnet=\"`PointInTimeUtcSeconds`\" pulumi-lang-go=\"`pointInTimeUtcSeconds`\" pulumi-lang-python=\"`point_in_time_utc_seconds`\" pulumi-lang-yaml=\"`pointInTimeUtcSeconds`\" pulumi-lang-java=\"`pointInTimeUtcSeconds`\"\u003e`point_in_time_utc_seconds`\u003c/span\u003e.\n* `delivery_type_config.target_cluster_name` - Name of the target Atlas cluster to which the restore job restores the snapshot. Required for **automated** and **pointInTime**.\n* `delivery_type_config.target_project_id` - Name of the target Atlas cluster to which the restore job restores the snapshot. Required for **automated** and **pointInTime**.\n* `delivery_type_config.oplog_ts` - Optional setting for **pointInTime** configuration. Timestamp in the number of seconds that have elapsed since the UNIX epoch from which to you want to restore this snapshot. This is the first part of an Oplog timestamp.\n* `delivery_type_config.oplog_inc` - Optional setting for **pointInTime** configuration. Oplog operation number from which to you want to restore this snapshot. This is the second part of an Oplog timestamp. Used in conjunction with \u003cspan pulumi-lang-nodejs=\"`oplogTs`\" pulumi-lang-dotnet=\"`OplogTs`\" pulumi-lang-go=\"`oplogTs`\" pulumi-lang-python=\"`oplog_ts`\" pulumi-lang-yaml=\"`oplogTs`\" pulumi-lang-java=\"`oplogTs`\"\u003e`oplog_ts`\u003c/span\u003e.\n* `delivery_type_config.point_in_time_utc_seconds` - Optional setting for **pointInTime** configuration. Timestamp in the number of seconds that have elapsed since the UNIX epoch from which you want to restore this snapshot. Used instead of oplog settings.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster whose snapshot you want to restore.\n","willReplaceOnChanges":true},"snapshotId":{"type":"string","description":"Optional setting for **pointInTime** configuration. Unique identifier of the snapshot to restore.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterName","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudBackupSnapshotRestoreJob resources.\n","properties":{"cancelled":{"type":"boolean","description":"Indicates whether the restore job was canceled.\n"},"clusterName":{"type":"string","description":"The name of the Atlas cluster whose snapshot you want to restore.\n","willReplaceOnChanges":true},"deliveryTypeConfig":{"$ref":"#/types/mongodbatlas:index/CloudBackupSnapshotRestoreJobDeliveryTypeConfig:CloudBackupSnapshotRestoreJobDeliveryTypeConfig","description":"Type of restore job to create. Possible configurations are: **download**, **automated**, or **pointInTime** only one must be set it in `\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e`.\n* `delivery_type_config.automated` - Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to use the automated configuration.\n* `delivery_type_config.download` - Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to use the download configuration.\n* `delivery_type_config.pointInTime` - Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to use the pointInTime configuration. If using pointInTime configuration, you must also specify either \u003cspan pulumi-lang-nodejs=\"`oplogTs`\" pulumi-lang-dotnet=\"`OplogTs`\" pulumi-lang-go=\"`oplogTs`\" pulumi-lang-python=\"`oplog_ts`\" pulumi-lang-yaml=\"`oplogTs`\" pulumi-lang-java=\"`oplogTs`\"\u003e`oplog_ts`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`oplogInc`\" pulumi-lang-dotnet=\"`OplogInc`\" pulumi-lang-go=\"`oplogInc`\" pulumi-lang-python=\"`oplog_inc`\" pulumi-lang-yaml=\"`oplogInc`\" pulumi-lang-java=\"`oplogInc`\"\u003e`oplog_inc`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`pointInTimeUtcSeconds`\" pulumi-lang-dotnet=\"`PointInTimeUtcSeconds`\" pulumi-lang-go=\"`pointInTimeUtcSeconds`\" pulumi-lang-python=\"`point_in_time_utc_seconds`\" pulumi-lang-yaml=\"`pointInTimeUtcSeconds`\" pulumi-lang-java=\"`pointInTimeUtcSeconds`\"\u003e`point_in_time_utc_seconds`\u003c/span\u003e.\n* `delivery_type_config.target_cluster_name` - Name of the target Atlas cluster to which the restore job restores the snapshot. Required for **automated** and **pointInTime**.\n* `delivery_type_config.target_project_id` - Name of the target Atlas cluster to which the restore job restores the snapshot. Required for **automated** and **pointInTime**.\n* `delivery_type_config.oplog_ts` - Optional setting for **pointInTime** configuration. Timestamp in the number of seconds that have elapsed since the UNIX epoch from which to you want to restore this snapshot. This is the first part of an Oplog timestamp.\n* `delivery_type_config.oplog_inc` - Optional setting for **pointInTime** configuration. Oplog operation number from which to you want to restore this snapshot. This is the second part of an Oplog timestamp. Used in conjunction with \u003cspan pulumi-lang-nodejs=\"`oplogTs`\" pulumi-lang-dotnet=\"`OplogTs`\" pulumi-lang-go=\"`oplogTs`\" pulumi-lang-python=\"`oplog_ts`\" pulumi-lang-yaml=\"`oplogTs`\" pulumi-lang-java=\"`oplogTs`\"\u003e`oplog_ts`\u003c/span\u003e.\n* `delivery_type_config.point_in_time_utc_seconds` - Optional setting for **pointInTime** configuration. Timestamp in the number of seconds that have elapsed since the UNIX epoch from which you want to restore this snapshot. Used instead of oplog settings.\n","willReplaceOnChanges":true},"deliveryUrls":{"type":"array","items":{"type":"string"},"description":"One or more URLs for the compressed snapshot files for manual download. Only visible if deliveryType is download.\n"},"expired":{"type":"boolean","description":"Indicates whether the restore job expired.\n"},"expiresAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when the restore job expires.\n"},"failed":{"type":"boolean","description":"Indicates whether the restore job failed.\n"},"finishedAt":{"type":"string","description":"UTC ISO 8601 formatted point in time when the restore job completed.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster whose snapshot you want to restore.\n","willReplaceOnChanges":true},"snapshotId":{"type":"string","description":"Optional setting for **pointInTime** configuration. Unique identifier of the snapshot to restore.\n","willReplaceOnChanges":true},"snapshotRestoreJobId":{"type":"string","description":"The unique identifier of the restore job.\n"},"timestamp":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the snapshot associated to snapshotId was taken.\n* `oplogTs` - Timestamp in the number of seconds that have elapsed since the UNIX epoch from which to you want to restore this snapshot.\nThree conditions apply to this parameter:\n* Enable Continuous Cloud Backup on your cluster.\n* Specify oplogInc.\n* Specify either oplogTs and oplogInc or pointInTimeUTCSeconds, but not both.\n* `oplogInc` - Oplog operation number from which to you want to restore this snapshot. This is the second part of an Oplog timestamp.\nThree conditions apply to this parameter:\n* Enable Continuous Cloud Backup on your cluster.\n* Specify oplogTs.\n* Specify either oplogTs and oplogInc or pointInTimeUTCSeconds, but not both.\n* `pointInTimeUTCSeconds` - Timestamp in the number of seconds that have elapsed since the UNIX epoch from which you want to restore this snapshot.\nTwo conditions apply to this parameter:\n* Enable Continuous Cloud Backup on your cluster.\n* Specify either pointInTimeUTCSeconds or oplogTs and oplogInc, but not both.\n"}},"type":"object"}},"mongodbatlas:index/cloudProviderAccessAuthorization:CloudProviderAccessAuthorization":{"description":"## Cloud Provider Access Configuration Paths\n\nThe Terraform MongoDB Atlas Provider offers a two-resource path to perform an authorization for a cloud provider role.\n- The first resource, \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-go=\"`CloudProviderAccessSetup`\" pulumi-lang-python=\"`CloudProviderAccessSetup`\" pulumi-lang-yaml=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-java=\"`mongodbatlas.CloudProviderAccessSetup`\"\u003e`mongodbatlas.CloudProviderAccessSetup`\u003c/span\u003e, only generates the initial configuration (create, delete operations).\n- The second resource, \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudProviderAccessAuthorization`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudProviderAccessAuthorization`\" pulumi-lang-go=\"`CloudProviderAccessAuthorization`\" pulumi-lang-python=\"`CloudProviderAccessAuthorization`\" pulumi-lang-yaml=\"`mongodbatlas.CloudProviderAccessAuthorization`\" pulumi-lang-java=\"`mongodbatlas.CloudProviderAccessAuthorization`\"\u003e`mongodbatlas.CloudProviderAccessAuthorization`\u003c/span\u003e, helps to perform the authorization using the \u003cspan pulumi-lang-nodejs=\"`roleId`\" pulumi-lang-dotnet=\"`RoleId`\" pulumi-lang-go=\"`roleId`\" pulumi-lang-python=\"`role_id`\" pulumi-lang-yaml=\"`roleId`\" pulumi-lang-java=\"`roleId`\"\u003e`role_id`\u003c/span\u003e of the first resource.\n\nThis path is helpful in a multi-provider Terraform file, and allows for a single and decoupled apply. \nSee example of this two-resource path option with AWS Cloud here, AZURE Cloud here and GCP Cloud here.\n\n\n##\u003cspan pulumi-lang-nodejs=\" mongodbatlas.CloudProviderAccessAuthorization\n\" pulumi-lang-dotnet=\" mongodbatlas.CloudProviderAccessAuthorization\n\" pulumi-lang-go=\" CloudProviderAccessAuthorization\n\" pulumi-lang-python=\" CloudProviderAccessAuthorization\n\" pulumi-lang-yaml=\" mongodbatlas.CloudProviderAccessAuthorization\n\" pulumi-lang-java=\" mongodbatlas.CloudProviderAccessAuthorization\n\"\u003e mongodbatlas.CloudProviderAccessAuthorization\n\u003c/span\u003e\nThis is the second resource in the two-resource path as described above.\n\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudProviderAccessAuthorization`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudProviderAccessAuthorization`\" pulumi-lang-go=\"`CloudProviderAccessAuthorization`\" pulumi-lang-python=\"`CloudProviderAccessAuthorization`\" pulumi-lang-yaml=\"`mongodbatlas.CloudProviderAccessAuthorization`\" pulumi-lang-java=\"`mongodbatlas.CloudProviderAccessAuthorization`\"\u003e`mongodbatlas.CloudProviderAccessAuthorization`\u003c/span\u003e allows you to authorize an AWS, AZURE or GCP IAM roles in Atlas.\n\n\u003e **IMPORTANT:** Changes to \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`roleId`\" pulumi-lang-dotnet=\"`RoleId`\" pulumi-lang-go=\"`roleId`\" pulumi-lang-python=\"`role_id`\" pulumi-lang-yaml=\"`roleId`\" pulumi-lang-java=\"`roleId`\"\u003e`role_id`\u003c/span\u003e will result in the destruction and recreation of the authorization resource. This action happens as these fields uniquely identify the authorization and cannot be modified in-place.\n\n## Example Usage\n\n### With AWS\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst setupOnly = new mongodbatlas.CloudProviderAccessSetup(\"setup_only\", {\n    projectId: \"64259ee860c43338194b0f8e\",\n    providerName: \"AWS\",\n});\nconst authRole = new mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", {\n    projectId: setupOnly.projectId,\n    roleId: setupOnly.roleId,\n    aws: {\n        iamAssumedRoleArn: \"arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/test-user-role\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nsetup_only = mongodbatlas.CloudProviderAccessSetup(\"setup_only\",\n    project_id=\"64259ee860c43338194b0f8e\",\n    provider_name=\"AWS\")\nauth_role = mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\",\n    project_id=setup_only.project_id,\n    role_id=setup_only.role_id,\n    aws={\n        \"iam_assumed_role_arn\": \"arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/test-user-role\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var setupOnly = new Mongodbatlas.CloudProviderAccessSetup(\"setup_only\", new()\n    {\n        ProjectId = \"64259ee860c43338194b0f8e\",\n        ProviderName = \"AWS\",\n    });\n\n    var authRole = new Mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", new()\n    {\n        ProjectId = setupOnly.ProjectId,\n        RoleId = setupOnly.RoleId,\n        Aws = new Mongodbatlas.Inputs.CloudProviderAccessAuthorizationAwsArgs\n        {\n            IamAssumedRoleArn = \"arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/test-user-role\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsetupOnly, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"setup_only\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"auth_role\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: setupOnly.ProjectId,\n\t\t\tRoleId:    setupOnly.RoleId,\n\t\t\tAws: \u0026mongodbatlas.CloudProviderAccessAuthorizationAwsArgs{\n\t\t\t\tIamAssumedRoleArn: pulumi.String(\"arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/test-user-role\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var setupOnly = new CloudProviderAccessSetup(\"setupOnly\", CloudProviderAccessSetupArgs.builder()\n            .projectId(\"64259ee860c43338194b0f8e\")\n            .providerName(\"AWS\")\n            .build());\n\n        var authRole = new CloudProviderAccessAuthorization(\"authRole\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(setupOnly.projectId())\n            .roleId(setupOnly.roleId())\n            .aws(CloudProviderAccessAuthorizationAwsArgs.builder()\n                .iamAssumedRoleArn(\"arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/test-user-role\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  setupOnly:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: setup_only\n    properties:\n      projectId: 64259ee860c43338194b0f8e\n      providerName: AWS\n  authRole:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    name: auth_role\n    properties:\n      projectId: ${setupOnly.projectId}\n      roleId: ${setupOnly.roleId}\n      aws:\n        iamAssumedRoleArn: arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/test-user-role\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With Azure\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst setupOnly = new mongodbatlas.CloudProviderAccessSetup(\"setup_only\", {\n    projectId: \"64259ee860c43338194b0f8e\",\n    providerName: \"AZURE\",\n    azureConfigs: [{\n        atlasAzureAppId: \"9f2deb0d-be22-4524-a403-df531868bac0\",\n        servicePrincipalId: \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n        tenantId: \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n    }],\n});\nconst authRole = new mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", {\n    projectId: setupOnly.projectId,\n    roleId: setupOnly.roleId,\n    azure: {\n        atlasAzureAppId: \"9f2deb0d-be22-4524-a403-df531868bac0\",\n        servicePrincipalId: \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n        tenantId: \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nsetup_only = mongodbatlas.CloudProviderAccessSetup(\"setup_only\",\n    project_id=\"64259ee860c43338194b0f8e\",\n    provider_name=\"AZURE\",\n    azure_configs=[{\n        \"atlas_azure_app_id\": \"9f2deb0d-be22-4524-a403-df531868bac0\",\n        \"service_principal_id\": \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n        \"tenant_id\": \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n    }])\nauth_role = mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\",\n    project_id=setup_only.project_id,\n    role_id=setup_only.role_id,\n    azure={\n        \"atlas_azure_app_id\": \"9f2deb0d-be22-4524-a403-df531868bac0\",\n        \"service_principal_id\": \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n        \"tenant_id\": \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var setupOnly = new Mongodbatlas.CloudProviderAccessSetup(\"setup_only\", new()\n    {\n        ProjectId = \"64259ee860c43338194b0f8e\",\n        ProviderName = \"AZURE\",\n        AzureConfigs = new[]\n        {\n            new Mongodbatlas.Inputs.CloudProviderAccessSetupAzureConfigArgs\n            {\n                AtlasAzureAppId = \"9f2deb0d-be22-4524-a403-df531868bac0\",\n                ServicePrincipalId = \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n                TenantId = \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n            },\n        },\n    });\n\n    var authRole = new Mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", new()\n    {\n        ProjectId = setupOnly.ProjectId,\n        RoleId = setupOnly.RoleId,\n        Azure = new Mongodbatlas.Inputs.CloudProviderAccessAuthorizationAzureArgs\n        {\n            AtlasAzureAppId = \"9f2deb0d-be22-4524-a403-df531868bac0\",\n            ServicePrincipalId = \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n            TenantId = \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsetupOnly, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"setup_only\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\tAzureConfigs: mongodbatlas.CloudProviderAccessSetupAzureConfigArray{\n\t\t\t\t\u0026mongodbatlas.CloudProviderAccessSetupAzureConfigArgs{\n\t\t\t\t\tAtlasAzureAppId:    pulumi.String(\"9f2deb0d-be22-4524-a403-df531868bac0\"),\n\t\t\t\t\tServicePrincipalId: pulumi.String(\"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\"),\n\t\t\t\t\tTenantId:           pulumi.String(\"91402384-d71e-22f5-22dd-759e272cdc1c\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"auth_role\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: setupOnly.ProjectId,\n\t\t\tRoleId:    setupOnly.RoleId,\n\t\t\tAzure: \u0026mongodbatlas.CloudProviderAccessAuthorizationAzureArgs{\n\t\t\t\tAtlasAzureAppId:    pulumi.String(\"9f2deb0d-be22-4524-a403-df531868bac0\"),\n\t\t\t\tServicePrincipalId: pulumi.String(\"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\"),\n\t\t\t\tTenantId:           pulumi.String(\"91402384-d71e-22f5-22dd-759e272cdc1c\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessSetupAzureConfigArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAzureArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var setupOnly = new CloudProviderAccessSetup(\"setupOnly\", CloudProviderAccessSetupArgs.builder()\n            .projectId(\"64259ee860c43338194b0f8e\")\n            .providerName(\"AZURE\")\n            .azureConfigs(CloudProviderAccessSetupAzureConfigArgs.builder()\n                .atlasAzureAppId(\"9f2deb0d-be22-4524-a403-df531868bac0\")\n                .servicePrincipalId(\"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\")\n                .tenantId(\"91402384-d71e-22f5-22dd-759e272cdc1c\")\n                .build())\n            .build());\n\n        var authRole = new CloudProviderAccessAuthorization(\"authRole\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(setupOnly.projectId())\n            .roleId(setupOnly.roleId())\n            .azure(CloudProviderAccessAuthorizationAzureArgs.builder()\n                .atlasAzureAppId(\"9f2deb0d-be22-4524-a403-df531868bac0\")\n                .servicePrincipalId(\"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\")\n                .tenantId(\"91402384-d71e-22f5-22dd-759e272cdc1c\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  setupOnly:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: setup_only\n    properties:\n      projectId: 64259ee860c43338194b0f8e\n      providerName: AZURE\n      azureConfigs:\n        - atlasAzureAppId: 9f2deb0d-be22-4524-a403-df531868bac0\n          servicePrincipalId: 22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\n          tenantId: 91402384-d71e-22f5-22dd-759e272cdc1c\n  authRole:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    name: auth_role\n    properties:\n      projectId: ${setupOnly.projectId}\n      roleId: ${setupOnly.roleId}\n      azure:\n        atlasAzureAppId: 9f2deb0d-be22-4524-a403-df531868bac0\n        servicePrincipalId: 22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\n        tenantId: 91402384-d71e-22f5-22dd-759e272cdc1c\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With GCP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst setupOnly = new mongodbatlas.CloudProviderAccessSetup(\"setup_only\", {\n    projectId: \"64259ee860c43338194b0f8e\",\n    providerName: \"GCP\",\n});\nconst authRole = new mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", {\n    projectId: setupOnly.projectId,\n    roleId: setupOnly.roleId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nsetup_only = mongodbatlas.CloudProviderAccessSetup(\"setup_only\",\n    project_id=\"64259ee860c43338194b0f8e\",\n    provider_name=\"GCP\")\nauth_role = mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\",\n    project_id=setup_only.project_id,\n    role_id=setup_only.role_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var setupOnly = new Mongodbatlas.CloudProviderAccessSetup(\"setup_only\", new()\n    {\n        ProjectId = \"64259ee860c43338194b0f8e\",\n        ProviderName = \"GCP\",\n    });\n\n    var authRole = new Mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", new()\n    {\n        ProjectId = setupOnly.ProjectId,\n        RoleId = setupOnly.RoleId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsetupOnly, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"setup_only\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\tProviderName: pulumi.String(\"GCP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"auth_role\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: setupOnly.ProjectId,\n\t\t\tRoleId:    setupOnly.RoleId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var setupOnly = new CloudProviderAccessSetup(\"setupOnly\", CloudProviderAccessSetupArgs.builder()\n            .projectId(\"64259ee860c43338194b0f8e\")\n            .providerName(\"GCP\")\n            .build());\n\n        var authRole = new CloudProviderAccessAuthorization(\"authRole\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(setupOnly.projectId())\n            .roleId(setupOnly.roleId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  setupOnly:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: setup_only\n    properties:\n      projectId: 64259ee860c43338194b0f8e\n      providerName: GCP\n  authRole:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    name: auth_role\n    properties:\n      projectId: ${setupOnly.projectId}\n      roleId: ${setupOnly.roleId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS Cloud Provider Access\n- Azure Cloud Provider Access\n- GCP Cloud Provider Access\n\n\n## Import\u003cspan pulumi-lang-nodejs=\" mongodbatlas.CloudProviderAccessAuthorization\n\" pulumi-lang-dotnet=\" mongodbatlas.CloudProviderAccessAuthorization\n\" pulumi-lang-go=\" CloudProviderAccessAuthorization\n\" pulumi-lang-python=\" CloudProviderAccessAuthorization\n\" pulumi-lang-yaml=\" mongodbatlas.CloudProviderAccessAuthorization\n\" pulumi-lang-java=\" mongodbatlas.CloudProviderAccessAuthorization\n\"\u003e mongodbatlas.CloudProviderAccessAuthorization\n\u003c/span\u003e\nYou cannot import the Cloud Provider Access Authorization resource into Terraform. Instead, if the associated role is already authorized, you can recreate the resource without any adverse effects.\n","properties":{"authorizedDate":{"type":"string","description":"Date on which this role was authorized.\n"},"aws":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessAuthorizationAws:CloudProviderAccessAuthorizationAws"},"azure":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessAuthorizationAzure:CloudProviderAccessAuthorizationAzure"},"featureUsages":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessAuthorizationFeatureUsage:CloudProviderAccessAuthorizationFeatureUsage"},"description":"Atlas features this AWS IAM role is linked to.\n"},"gcps":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessAuthorizationGcp:CloudProviderAccessAuthorizationGcp"}},"projectId":{"type":"string","description":"The unique ID for the project. **WARNING**: Changing the \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e will result in destruction of the existing authorization resource and the creation of a new authorization resource.\n"},"roleId":{"type":"string","description":"The unique ID of this role returned by the mongodb atlas api. **WARNING**: Changing the \u003cspan pulumi-lang-nodejs=\"`roleId`\" pulumi-lang-dotnet=\"`RoleId`\" pulumi-lang-go=\"`roleId`\" pulumi-lang-python=\"`role_id`\" pulumi-lang-yaml=\"`roleId`\" pulumi-lang-java=\"`roleId`\"\u003e`role_id`\u003c/span\u003e will result in destruction of the existing authorization resource and the creation of a new authorization resource.\n\nConditional\n"}},"required":["authorizedDate","featureUsages","gcps","projectId","roleId"],"inputProperties":{"aws":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessAuthorizationAws:CloudProviderAccessAuthorizationAws"},"azure":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessAuthorizationAzure:CloudProviderAccessAuthorizationAzure"},"projectId":{"type":"string","description":"The unique ID for the project. **WARNING**: Changing the \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e will result in destruction of the existing authorization resource and the creation of a new authorization resource.\n","willReplaceOnChanges":true},"roleId":{"type":"string","description":"The unique ID of this role returned by the mongodb atlas api. **WARNING**: Changing the \u003cspan pulumi-lang-nodejs=\"`roleId`\" pulumi-lang-dotnet=\"`RoleId`\" pulumi-lang-go=\"`roleId`\" pulumi-lang-python=\"`role_id`\" pulumi-lang-yaml=\"`roleId`\" pulumi-lang-java=\"`roleId`\"\u003e`role_id`\u003c/span\u003e will result in destruction of the existing authorization resource and the creation of a new authorization resource.\n\nConditional\n","willReplaceOnChanges":true}},"requiredInputs":["projectId","roleId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudProviderAccessAuthorization resources.\n","properties":{"authorizedDate":{"type":"string","description":"Date on which this role was authorized.\n"},"aws":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessAuthorizationAws:CloudProviderAccessAuthorizationAws"},"azure":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessAuthorizationAzure:CloudProviderAccessAuthorizationAzure"},"featureUsages":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessAuthorizationFeatureUsage:CloudProviderAccessAuthorizationFeatureUsage"},"description":"Atlas features this AWS IAM role is linked to.\n"},"gcps":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessAuthorizationGcp:CloudProviderAccessAuthorizationGcp"}},"projectId":{"type":"string","description":"The unique ID for the project. **WARNING**: Changing the \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e will result in destruction of the existing authorization resource and the creation of a new authorization resource.\n","willReplaceOnChanges":true},"roleId":{"type":"string","description":"The unique ID of this role returned by the mongodb atlas api. **WARNING**: Changing the \u003cspan pulumi-lang-nodejs=\"`roleId`\" pulumi-lang-dotnet=\"`RoleId`\" pulumi-lang-go=\"`roleId`\" pulumi-lang-python=\"`role_id`\" pulumi-lang-yaml=\"`roleId`\" pulumi-lang-java=\"`roleId`\"\u003e`role_id`\u003c/span\u003e will result in destruction of the existing authorization resource and the creation of a new authorization resource.\n\nConditional\n","willReplaceOnChanges":true}},"type":"object"}},"mongodbatlas:index/cloudProviderAccessSetup:CloudProviderAccessSetup":{"description":"## Cloud Provider Access Configuration Paths\n\nThe Terraform MongoDB Atlas Provider offers a two-resource path to perform an authorization for a cloud provider role.\n- The first resource, \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-go=\"`CloudProviderAccessSetup`\" pulumi-lang-python=\"`CloudProviderAccessSetup`\" pulumi-lang-yaml=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-java=\"`mongodbatlas.CloudProviderAccessSetup`\"\u003e`mongodbatlas.CloudProviderAccessSetup`\u003c/span\u003e, only generates the initial configuration (create, delete operations).\n- The second resource, \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudProviderAccessAuthorization`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudProviderAccessAuthorization`\" pulumi-lang-go=\"`CloudProviderAccessAuthorization`\" pulumi-lang-python=\"`CloudProviderAccessAuthorization`\" pulumi-lang-yaml=\"`mongodbatlas.CloudProviderAccessAuthorization`\" pulumi-lang-java=\"`mongodbatlas.CloudProviderAccessAuthorization`\"\u003e`mongodbatlas.CloudProviderAccessAuthorization`\u003c/span\u003e, helps to perform the authorization using the \u003cspan pulumi-lang-nodejs=\"`roleId`\" pulumi-lang-dotnet=\"`RoleId`\" pulumi-lang-go=\"`roleId`\" pulumi-lang-python=\"`role_id`\" pulumi-lang-yaml=\"`roleId`\" pulumi-lang-java=\"`roleId`\"\u003e`role_id`\u003c/span\u003e of the first resource.\n\nThis path is helpful in a multi-provider Terraform file, and allows for a single and decoupled apply.\nSee example of this two-resource path option with AWS Cloud here, AZURE Cloud here and GCP Cloud here.\n\n\n##\u003cspan pulumi-lang-nodejs=\" mongodbatlas.CloudProviderAccessSetup\n\" pulumi-lang-dotnet=\" mongodbatlas.CloudProviderAccessSetup\n\" pulumi-lang-go=\" CloudProviderAccessSetup\n\" pulumi-lang-python=\" CloudProviderAccessSetup\n\" pulumi-lang-yaml=\" mongodbatlas.CloudProviderAccessSetup\n\" pulumi-lang-java=\" mongodbatlas.CloudProviderAccessSetup\n\"\u003e mongodbatlas.CloudProviderAccessSetup\n\u003c/span\u003e\nThis is the first resource in the two-resource path as described above.\n\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-go=\"`CloudProviderAccessSetup`\" pulumi-lang-python=\"`CloudProviderAccessSetup`\" pulumi-lang-yaml=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-java=\"`mongodbatlas.CloudProviderAccessSetup`\"\u003e`mongodbatlas.CloudProviderAccessSetup`\u003c/span\u003e allows you to register an AWS, AZURE or GCP IAM roles in Atlas.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n### With AWS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testRole = new mongodbatlas.CloudProviderAccessSetup(\"test_role\", {\n    projectId: \"64259ee860c43338194b0f8e\",\n    providerName: \"AWS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_role = mongodbatlas.CloudProviderAccessSetup(\"test_role\",\n    project_id=\"64259ee860c43338194b0f8e\",\n    provider_name=\"AWS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRole = new Mongodbatlas.CloudProviderAccessSetup(\"test_role\", new()\n    {\n        ProjectId = \"64259ee860c43338194b0f8e\",\n        ProviderName = \"AWS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"test_role\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testRole = new CloudProviderAccessSetup(\"testRole\", CloudProviderAccessSetupArgs.builder()\n            .projectId(\"64259ee860c43338194b0f8e\")\n            .providerName(\"AWS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRole:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: test_role\n    properties:\n      projectId: 64259ee860c43338194b0f8e\n      providerName: AWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With Azure\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testRole = new mongodbatlas.CloudProviderAccessSetup(\"test_role\", {\n    projectId: \"64259ee860c43338194b0f8e\",\n    providerName: \"AZURE\",\n    azureConfigs: [{\n        atlasAzureAppId: \"9f2deb0d-be22-4524-a403-df531868bac0\",\n        servicePrincipalId: \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n        tenantId: \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_role = mongodbatlas.CloudProviderAccessSetup(\"test_role\",\n    project_id=\"64259ee860c43338194b0f8e\",\n    provider_name=\"AZURE\",\n    azure_configs=[{\n        \"atlas_azure_app_id\": \"9f2deb0d-be22-4524-a403-df531868bac0\",\n        \"service_principal_id\": \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n        \"tenant_id\": \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRole = new Mongodbatlas.CloudProviderAccessSetup(\"test_role\", new()\n    {\n        ProjectId = \"64259ee860c43338194b0f8e\",\n        ProviderName = \"AZURE\",\n        AzureConfigs = new[]\n        {\n            new Mongodbatlas.Inputs.CloudProviderAccessSetupAzureConfigArgs\n            {\n                AtlasAzureAppId = \"9f2deb0d-be22-4524-a403-df531868bac0\",\n                ServicePrincipalId = \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n                TenantId = \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"test_role\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\tAzureConfigs: mongodbatlas.CloudProviderAccessSetupAzureConfigArray{\n\t\t\t\t\u0026mongodbatlas.CloudProviderAccessSetupAzureConfigArgs{\n\t\t\t\t\tAtlasAzureAppId:    pulumi.String(\"9f2deb0d-be22-4524-a403-df531868bac0\"),\n\t\t\t\t\tServicePrincipalId: pulumi.String(\"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\"),\n\t\t\t\t\tTenantId:           pulumi.String(\"91402384-d71e-22f5-22dd-759e272cdc1c\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessSetupAzureConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testRole = new CloudProviderAccessSetup(\"testRole\", CloudProviderAccessSetupArgs.builder()\n            .projectId(\"64259ee860c43338194b0f8e\")\n            .providerName(\"AZURE\")\n            .azureConfigs(CloudProviderAccessSetupAzureConfigArgs.builder()\n                .atlasAzureAppId(\"9f2deb0d-be22-4524-a403-df531868bac0\")\n                .servicePrincipalId(\"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\")\n                .tenantId(\"91402384-d71e-22f5-22dd-759e272cdc1c\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRole:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: test_role\n    properties:\n      projectId: 64259ee860c43338194b0f8e\n      providerName: AZURE\n      azureConfigs:\n        - atlasAzureAppId: 9f2deb0d-be22-4524-a403-df531868bac0\n          servicePrincipalId: 22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\n          tenantId: 91402384-d71e-22f5-22dd-759e272cdc1c\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With GCP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testRole = new mongodbatlas.CloudProviderAccessSetup(\"test_role\", {\n    projectId: \"64259ee860c43338194b0f8e\",\n    providerName: \"GCP\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_role = mongodbatlas.CloudProviderAccessSetup(\"test_role\",\n    project_id=\"64259ee860c43338194b0f8e\",\n    provider_name=\"GCP\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRole = new Mongodbatlas.CloudProviderAccessSetup(\"test_role\", new()\n    {\n        ProjectId = \"64259ee860c43338194b0f8e\",\n        ProviderName = \"GCP\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"test_role\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\tProviderName: pulumi.String(\"GCP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testRole = new CloudProviderAccessSetup(\"testRole\", CloudProviderAccessSetupArgs.builder()\n            .projectId(\"64259ee860c43338194b0f8e\")\n            .providerName(\"GCP\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRole:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: test_role\n    properties:\n      projectId: 64259ee860c43338194b0f8e\n      providerName: GCP\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS Cloud Provider Access\n- Azure Cloud Provider Access\n- GCP Cloud Provider Access\n\n## Import\n\nIt can be imported using project ID, provider name and\u003cspan pulumi-lang-nodejs=\" roleId \" pulumi-lang-dotnet=\" RoleId \" pulumi-lang-go=\" roleId \" pulumi-lang-python=\" role_id \" pulumi-lang-yaml=\" roleId \" pulumi-lang-java=\" roleId \"\u003e role_id \u003c/span\u003ein the format \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`roleId`\" pulumi-lang-dotnet=\"`RoleId`\" pulumi-lang-go=\"`roleId`\" pulumi-lang-python=\"`role_id`\" pulumi-lang-yaml=\"`roleId`\" pulumi-lang-java=\"`roleId`\"\u003e`role_id`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/cloudProviderAccessSetup:CloudProviderAccessSetup my_role 1112222b3bf99403840e8934-AWS-5fc17d476f7a33224f5b224e\n```\n\n","properties":{"awsConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessSetupAwsConfig:CloudProviderAccessSetupAwsConfig"},"description":"aws related arn roles\n"},"azureConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessSetupAzureConfig:CloudProviderAccessSetupAzureConfig"},"description":"azure related configurations\n"},"createdDate":{"type":"string","description":"Date on which this role was created.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"gcpConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessSetupGcpConfig:CloudProviderAccessSetupGcpConfig"},"description":"gcp related configuration\n"},"lastUpdatedDate":{"type":"string","description":"Date and time when this Azure Service Principal was last updated. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"projectId":{"type":"string","description":"The unique ID for the project\n"},"providerName":{"type":"string","description":"The cloud provider for which to create a new role. Currently, AWS, AZURE and GCP are supported. **WARNING** Changing the \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e will result in destruction of the existing resource and the creation of a new resource.\n"},"roleId":{"type":"string","description":"Unique ID of this role.\n"}},"required":["awsConfigs","createdDate","gcpConfigs","lastUpdatedDate","projectId","providerName","roleId"],"inputProperties":{"azureConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessSetupAzureConfig:CloudProviderAccessSetupAzureConfig"},"description":"azure related configurations\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The unique ID for the project\n"},"providerName":{"type":"string","description":"The cloud provider for which to create a new role. Currently, AWS, AZURE and GCP are supported. **WARNING** Changing the \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e will result in destruction of the existing resource and the creation of a new resource.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId","providerName"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudProviderAccessSetup resources.\n","properties":{"awsConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessSetupAwsConfig:CloudProviderAccessSetupAwsConfig"},"description":"aws related arn roles\n"},"azureConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessSetupAzureConfig:CloudProviderAccessSetupAzureConfig"},"description":"azure related configurations\n"},"createdDate":{"type":"string","description":"Date on which this role was created.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"gcpConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CloudProviderAccessSetupGcpConfig:CloudProviderAccessSetupGcpConfig"},"description":"gcp related configuration\n"},"lastUpdatedDate":{"type":"string","description":"Date and time when this Azure Service Principal was last updated. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"projectId":{"type":"string","description":"The unique ID for the project\n"},"providerName":{"type":"string","description":"The cloud provider for which to create a new role. Currently, AWS, AZURE and GCP are supported. **WARNING** Changing the \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e will result in destruction of the existing resource and the creation of a new resource.\n","willReplaceOnChanges":true},"roleId":{"type":"string","description":"Unique ID of this role.\n"}},"type":"object"}},"mongodbatlas:index/cloudUserOrgAssignment:CloudUserOrgAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-go=\"`CloudUserOrgAssignment`\" pulumi-lang-python=\"`CloudUserOrgAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserOrgAssignment`\"\u003e`mongodbatlas.CloudUserOrgAssignment`\u003c/span\u003e provides a Cloud User Organization Assignment resource. The resource lets you import, assign, remove, or update a user to an organization.\n\n**NOTE**: Users with pending invitations created using the deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-go=\"`ProjectInvitation`\" pulumi-lang-python=\"`ProjectInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-java=\"`mongodbatlas.ProjectInvitation`\"\u003e`mongodbatlas.ProjectInvitation`\u003c/span\u003e resource or via the deprecated [Invite One MongoDB Cloud User to One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getorganizationuser#tag/Projects/operation/createProjectInvitation)\nendpoint cannot be managed with this resource. See [MongoDB Atlas API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getorganizationuser) for details.\nTo manage such users with this resource, refer to our Org Invitation to Cloud User Org Assignment Migration Guide.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.CloudUserOrgAssignment(\"example\", {\n    orgId: orgId,\n    username: userEmail,\n    roles: {\n        orgRoles: [\"ORG_MEMBER\"],\n    },\n});\nconst exampleUsername = example.username.apply(username =\u003e mongodbatlas.getCloudUserOrgAssignmentOutput({\n    orgId: orgId,\n    username: username,\n}));\nconst exampleUserId = example.userId.apply(userId =\u003e mongodbatlas.getCloudUserOrgAssignmentOutput({\n    orgId: orgId,\n    userId: userId,\n}));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.CloudUserOrgAssignment(\"example\",\n    org_id=org_id,\n    username=user_email,\n    roles={\n        \"org_roles\": [\"ORG_MEMBER\"],\n    })\nexample_username = example.username.apply(lambda username: mongodbatlas.get_cloud_user_org_assignment_output(org_id=org_id,\n    username=username))\nexample_user_id = example.user_id.apply(lambda user_id: mongodbatlas.get_cloud_user_org_assignment_output(org_id=org_id,\n    user_id=user_id))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.CloudUserOrgAssignment(\"example\", new()\n    {\n        OrgId = orgId,\n        Username = userEmail,\n        Roles = new Mongodbatlas.Inputs.CloudUserOrgAssignmentRolesArgs\n        {\n            OrgRoles = new[]\n            {\n                \"ORG_MEMBER\",\n            },\n        },\n    });\n\n    var exampleUsername = Mongodbatlas.GetCloudUserOrgAssignment.Invoke(new()\n    {\n        OrgId = orgId,\n        Username = example.Username,\n    });\n\n    var exampleUserId = Mongodbatlas.GetCloudUserOrgAssignment.Invoke(new()\n    {\n        OrgId = orgId,\n        UserId = example.UserId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.NewCloudUserOrgAssignment(ctx, \"example\", \u0026mongodbatlas.CloudUserOrgAssignmentArgs{\n\t\t\tOrgId:    pulumi.Any(orgId),\n\t\t\tUsername: pulumi.Any(userEmail),\n\t\t\tRoles: \u0026mongodbatlas.CloudUserOrgAssignmentRolesArgs{\n\t\t\t\tOrgRoles: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ORG_MEMBER\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = example.Username.ApplyT(func(username string) (mongodbatlas.GetCloudUserOrgAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserOrgAssignmentResult(interface{}(mongodbatlas.LookupCloudUserOrgAssignment(ctx, \u0026mongodbatlas.LookupCloudUserOrgAssignmentArgs{\n\t\t\t\tOrgId:    orgId,\n\t\t\t\tUsername: pulumi.StringRef(pulumi.StringRef(username)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserOrgAssignmentResultOutput)\n\t\t_ = example.UserId.ApplyT(func(userId string) (mongodbatlas.GetCloudUserOrgAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserOrgAssignmentResult(interface{}(mongodbatlas.LookupCloudUserOrgAssignment(ctx, \u0026mongodbatlas.LookupCloudUserOrgAssignmentArgs{\n\t\t\t\tOrgId:  orgId,\n\t\t\t\tUserId: pulumi.StringRef(pulumi.StringRef(userId)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserOrgAssignmentResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudUserOrgAssignment;\nimport com.pulumi.mongodbatlas.CloudUserOrgAssignmentArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudUserOrgAssignmentRolesArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudUserOrgAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new CloudUserOrgAssignment(\"example\", CloudUserOrgAssignmentArgs.builder()\n            .orgId(orgId)\n            .username(userEmail)\n            .roles(CloudUserOrgAssignmentRolesArgs.builder()\n                .orgRoles(\"ORG_MEMBER\")\n                .build())\n            .build());\n\n        final var exampleUsername = example.username().applyValue(_username -\u003e MongodbatlasFunctions.getCloudUserOrgAssignment(GetCloudUserOrgAssignmentArgs.builder()\n            .orgId(orgId)\n            .username(_username)\n            .build()));\n\n        final var exampleUserId = example.userId().applyValue(_userId -\u003e MongodbatlasFunctions.getCloudUserOrgAssignment(GetCloudUserOrgAssignmentArgs.builder()\n            .orgId(orgId)\n            .userId(_userId)\n            .build()));\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:CloudUserOrgAssignment\n    properties:\n      orgId: ${orgId}\n      username: ${userEmail}\n      roles:\n        orgRoles:\n          - ORG_MEMBER\nvariables:\n  exampleUsername:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserOrgAssignment\n      arguments:\n        orgId: ${orgId}\n        username: ${example.username}\n  exampleUserId:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserOrgAssignment\n      arguments:\n        orgId: ${orgId}\n        userId: ${example.userId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Cloud User Organization Assignment\n\n## Import\n\nCloud User Org Assignment resource can be imported using the Org ID \u0026 Username OR Org ID \u0026 User ID, in the format `ORG_ID/USERNAME` OR `ORG_ID/USER_ID`.\n\n```sh\n$ pulumi import mongodbatlas:index/cloudUserOrgAssignment:CloudUserOrgAssignment test 63cfbf302333a3011d98592e/test-user@example.com\nOR\n$ pulumi import mongodbatlas:index/cloudUserOrgAssignment:CloudUserOrgAssignment test 63cfbf302333a3011d98592e/5f18367ccb7a503a2b481b7a\n```\n\nFor more information see: [MongoDB Atlas API - Cloud Users](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorganizationuser) Documentation.\n\n","properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n"},"createdAt":{"type":"string","description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n"},"firstName":{"type":"string","description":"First or given name that belongs to the MongoDB Cloud user.\n"},"invitationCreatedAt":{"type":"string","description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"invitationExpiresAt":{"type":"string","description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"inviterUsername":{"type":"string","description":"Username of the MongoDB Cloud user who sent the invitation to join the organization.\n"},"lastAuth":{"type":"string","description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n"},"lastName":{"type":"string","description":"Last name, family name, or surname that belongs to the MongoDB Cloud user.\n"},"mobileNumber":{"type":"string","description":"Mobile phone number that belongs to the MongoDB Cloud user.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [/orgs](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations) endpoint to retrieve all organizations to which the authenticated user has access.\n"},"orgMembershipStatus":{"type":"string","description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n"},"roles":{"$ref":"#/types/mongodbatlas:index/CloudUserOrgAssignmentRoles:CloudUserOrgAssignmentRoles","description":"Organization and project level roles to assign the MongoDB Cloud user within one organization.\n"},"teamIds":{"type":"array","items":{"type":"string"},"description":"List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Cloud user belongs.\n"},"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"required":["country","createdAt","firstName","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgId","orgMembershipStatus","roles","teamIds","userId","username"],"inputProperties":{"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [/orgs](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations) endpoint to retrieve all organizations to which the authenticated user has access.\n"},"roles":{"$ref":"#/types/mongodbatlas:index/CloudUserOrgAssignmentRoles:CloudUserOrgAssignmentRoles","description":"Organization and project level roles to assign the MongoDB Cloud user within one organization.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"requiredInputs":["orgId","roles","username"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudUserOrgAssignment resources.\n","properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n"},"createdAt":{"type":"string","description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n"},"firstName":{"type":"string","description":"First or given name that belongs to the MongoDB Cloud user.\n"},"invitationCreatedAt":{"type":"string","description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"invitationExpiresAt":{"type":"string","description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"inviterUsername":{"type":"string","description":"Username of the MongoDB Cloud user who sent the invitation to join the organization.\n"},"lastAuth":{"type":"string","description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n"},"lastName":{"type":"string","description":"Last name, family name, or surname that belongs to the MongoDB Cloud user.\n"},"mobileNumber":{"type":"string","description":"Mobile phone number that belongs to the MongoDB Cloud user.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [/orgs](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations) endpoint to retrieve all organizations to which the authenticated user has access.\n"},"orgMembershipStatus":{"type":"string","description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n"},"roles":{"$ref":"#/types/mongodbatlas:index/CloudUserOrgAssignmentRoles:CloudUserOrgAssignmentRoles","description":"Organization and project level roles to assign the MongoDB Cloud user within one organization.\n"},"teamIds":{"type":"array","items":{"type":"string"},"description":"List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Cloud user belongs.\n"},"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"type":"object"}},"mongodbatlas:index/cloudUserProjectAssignment:CloudUserProjectAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-go=\"`CloudUserProjectAssignment`\" pulumi-lang-python=\"`CloudUserProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserProjectAssignment`\"\u003e`mongodbatlas.CloudUserProjectAssignment`\u003c/span\u003e provides a Cloud User Project Assignment resource. It lets you manage the association between a cloud user and a project, enabling you to import, assign, remove, or update the user's membership.\n\nDepending on the user's current membership status in the project's organization, MongoDB Cloud handles invitations and access in different ways:\n- If the user has a pending invitation to join the project's organization, MongoDB Cloud modifies it and grants project access.\n- If the user doesn't have an invitation to join the organization, MongoDB Cloud sends a new invitation that grants the user organization and project access.\n- If the user is already active in the project's organization, MongoDB Cloud grants access to the project.\n\n\u003e **NOTE:** Users with pending invitations created using the deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-go=\"`ProjectInvitation`\" pulumi-lang-python=\"`ProjectInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-java=\"`mongodbatlas.ProjectInvitation`\"\u003e`mongodbatlas.ProjectInvitation`\u003c/span\u003e resource or via the deprecated [Invite One MongoDB Cloud User to One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getorganizationuser#tag/Projects/operation/createProjectInvitation)\nendpoint cannot be managed with this resource. See [MongoDB Atlas API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getprojectteam) for details.\nTo manage such users with this resource, refer to our Project Invitation to Cloud User Project Assignment Migration Guide.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.CloudUserProjectAssignment(\"example\", {\n    projectId: projectId,\n    username: userEmail,\n    roles: [\n        \"GROUP_OWNER\",\n        \"GROUP_DATA_ACCESS_ADMIN\",\n    ],\n});\nconst exampleUsername = example.username.apply(username =\u003e mongodbatlas.getCloudUserProjectAssignmentOutput({\n    projectId: projectId,\n    username: username,\n}));\nconst exampleUserId = example.userId.apply(userId =\u003e mongodbatlas.getCloudUserProjectAssignmentOutput({\n    projectId: projectId,\n    userId: userId,\n}));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.CloudUserProjectAssignment(\"example\",\n    project_id=project_id,\n    username=user_email,\n    roles=[\n        \"GROUP_OWNER\",\n        \"GROUP_DATA_ACCESS_ADMIN\",\n    ])\nexample_username = example.username.apply(lambda username: mongodbatlas.get_cloud_user_project_assignment_output(project_id=project_id,\n    username=username))\nexample_user_id = example.user_id.apply(lambda user_id: mongodbatlas.get_cloud_user_project_assignment_output(project_id=project_id,\n    user_id=user_id))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.CloudUserProjectAssignment(\"example\", new()\n    {\n        ProjectId = projectId,\n        Username = userEmail,\n        Roles = new[]\n        {\n            \"GROUP_OWNER\",\n            \"GROUP_DATA_ACCESS_ADMIN\",\n        },\n    });\n\n    var exampleUsername = Mongodbatlas.GetCloudUserProjectAssignment.Invoke(new()\n    {\n        ProjectId = projectId,\n        Username = example.Username,\n    });\n\n    var exampleUserId = Mongodbatlas.GetCloudUserProjectAssignment.Invoke(new()\n    {\n        ProjectId = projectId,\n        UserId = example.UserId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.NewCloudUserProjectAssignment(ctx, \"example\", \u0026mongodbatlas.CloudUserProjectAssignmentArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tUsername:  pulumi.Any(userEmail),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_OWNER\"),\n\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_ADMIN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = example.Username.ApplyT(func(username string) (mongodbatlas.GetCloudUserProjectAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserProjectAssignmentResult(interface{}(mongodbatlas.LookupCloudUserProjectAssignment(ctx, \u0026mongodbatlas.LookupCloudUserProjectAssignmentArgs{\n\t\t\t\tProjectId: projectId,\n\t\t\t\tUsername:  pulumi.StringRef(pulumi.StringRef(username)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserProjectAssignmentResultOutput)\n\t\t_ = example.UserId.ApplyT(func(userId string) (mongodbatlas.GetCloudUserProjectAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserProjectAssignmentResult(interface{}(mongodbatlas.LookupCloudUserProjectAssignment(ctx, \u0026mongodbatlas.LookupCloudUserProjectAssignmentArgs{\n\t\t\t\tProjectId: projectId,\n\t\t\t\tUserId:    pulumi.StringRef(pulumi.StringRef(userId)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserProjectAssignmentResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudUserProjectAssignment;\nimport com.pulumi.mongodbatlas.CloudUserProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudUserProjectAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new CloudUserProjectAssignment(\"example\", CloudUserProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .username(userEmail)\n            .roles(            \n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\")\n            .build());\n\n        final var exampleUsername = example.username().applyValue(_username -\u003e MongodbatlasFunctions.getCloudUserProjectAssignment(GetCloudUserProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .username(_username)\n            .build()));\n\n        final var exampleUserId = example.userId().applyValue(_userId -\u003e MongodbatlasFunctions.getCloudUserProjectAssignment(GetCloudUserProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .userId(_userId)\n            .build()));\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:CloudUserProjectAssignment\n    properties:\n      projectId: ${projectId}\n      username: ${userEmail}\n      roles:\n        - GROUP_OWNER\n        - GROUP_DATA_ACCESS_ADMIN\nvariables:\n  exampleUsername:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserProjectAssignment\n      arguments:\n        projectId: ${projectId}\n        username: ${example.username}\n  exampleUserId:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserProjectAssignment\n      arguments:\n        projectId: ${projectId}\n        userId: ${example.userId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Cloud User Project Assignment\n\n## Import\n\nCloud User Project Assignment resource can be imported using the Project ID \u0026 Username OR Project ID \u0026 User ID, in the format `PROJECT_ID/USERNAME` OR `PROJECT_ID/USER_ID`.\n\n```sh\n$ pulumi import mongodbatlas:index/cloudUserProjectAssignment:CloudUserProjectAssignment test 9f3a7c2e54b8d1a0e6f4b3c2/test-user@example.com\nOR\n$ pulumi import mongodbatlas:index/cloudUserProjectAssignment:CloudUserProjectAssignment test 9f3a7c2e54b8d1a0e6f4b3c2/5f18367ccb7a503a2b481b7a\n```\n\nFor more information, see: [MongoDB Atlas API - Cloud Users](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-addprojectuser) Documentation.\n\n","properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format."},"createdAt":{"type":"string","description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC."},"firstName":{"type":"string","description":"First or given name that belongs to the MongoDB Cloud user."},"invitationCreatedAt":{"type":"string","description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC."},"invitationExpiresAt":{"type":"string","description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC."},"inviterUsername":{"type":"string","description":"Username of the MongoDB Cloud user who sent the invitation to join the organization."},"lastAuth":{"type":"string","description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC."},"lastName":{"type":"string","description":"Last name, family name, or surname that belongs to the MongoDB Cloud user."},"mobileNumber":{"type":"string","description":"Mobile phone number that belongs to the MongoDB Cloud user."},"orgMembershipStatus":{"type":"string","description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles to assign the MongoDB Cloud user."},"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user."},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user."}},"required":["country","createdAt","firstName","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgMembershipStatus","projectId","roles","userId","username"],"inputProperties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles to assign the MongoDB Cloud user."},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user."}},"requiredInputs":["projectId","roles","username"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudUserProjectAssignment resources.\n","properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format."},"createdAt":{"type":"string","description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC."},"firstName":{"type":"string","description":"First or given name that belongs to the MongoDB Cloud user."},"invitationCreatedAt":{"type":"string","description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC."},"invitationExpiresAt":{"type":"string","description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC."},"inviterUsername":{"type":"string","description":"Username of the MongoDB Cloud user who sent the invitation to join the organization."},"lastAuth":{"type":"string","description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC."},"lastName":{"type":"string","description":"Last name, family name, or surname that belongs to the MongoDB Cloud user."},"mobileNumber":{"type":"string","description":"Mobile phone number that belongs to the MongoDB Cloud user."},"orgMembershipStatus":{"type":"string","description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles to assign the MongoDB Cloud user."},"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user."},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user."}},"type":"object"}},"mongodbatlas:index/cloudUserTeamAssignment:CloudUserTeamAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-go=\"`CloudUserTeamAssignment`\" pulumi-lang-python=\"`CloudUserTeamAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserTeamAssignment`\"\u003e`mongodbatlas.CloudUserTeamAssignment`\u003c/span\u003e provides a Cloud User Team Assignment resource. It lets you manage the association between a cloud user and a team, enabling you to import, assign, remove, or update the user's membership.\n\n\u003e **NOTE**Users with pending invitations created using the deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-go=\"`ProjectInvitation`\" pulumi-lang-python=\"`ProjectInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-java=\"`mongodbatlas.ProjectInvitation`\"\u003e`mongodbatlas.ProjectInvitation`\u003c/span\u003e resource or via the deprecated [Invite One MongoDB Cloud User to One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupinvite)\nendpoint cannot be managed with this resource. See [MongoDB Atlas API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listteamusers) for details.\nTo manage such users with this resource, refer to our Migration Guide: Team Usernames Attribute to Cloud User Team Assignment.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.CloudUserTeamAssignment(\"example\", {\n    orgId: orgId,\n    teamId: teamId,\n    userId: userId,\n});\nconst exampleUserId = example.userId.apply(userId =\u003e mongodbatlas.getCloudUserTeamAssignmentOutput({\n    orgId: orgId,\n    teamId: teamId,\n    userId: userId,\n}));\nconst exampleUsername = example.username.apply(username =\u003e mongodbatlas.getCloudUserTeamAssignmentOutput({\n    orgId: orgId,\n    teamId: teamId,\n    username: username,\n}));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.CloudUserTeamAssignment(\"example\",\n    org_id=org_id,\n    team_id=team_id,\n    user_id=user_id)\nexample_user_id = example.user_id.apply(lambda user_id: mongodbatlas.get_cloud_user_team_assignment_output(org_id=org_id,\n    team_id=team_id,\n    user_id=user_id))\nexample_username = example.username.apply(lambda username: mongodbatlas.get_cloud_user_team_assignment_output(org_id=org_id,\n    team_id=team_id,\n    username=username))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.CloudUserTeamAssignment(\"example\", new()\n    {\n        OrgId = orgId,\n        TeamId = teamId,\n        UserId = userId,\n    });\n\n    var exampleUserId = Mongodbatlas.GetCloudUserTeamAssignment.Invoke(new()\n    {\n        OrgId = orgId,\n        TeamId = teamId,\n        UserId = example.UserId,\n    });\n\n    var exampleUsername = Mongodbatlas.GetCloudUserTeamAssignment.Invoke(new()\n    {\n        OrgId = orgId,\n        TeamId = teamId,\n        Username = example.Username,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.NewCloudUserTeamAssignment(ctx, \"example\", \u0026mongodbatlas.CloudUserTeamAssignmentArgs{\n\t\t\tOrgId:  pulumi.Any(orgId),\n\t\t\tTeamId: pulumi.Any(teamId),\n\t\t\tUserId: pulumi.Any(userId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = example.UserId.ApplyT(func(userId string) (mongodbatlas.GetCloudUserTeamAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserTeamAssignmentResult(interface{}(mongodbatlas.LookupCloudUserTeamAssignment(ctx, \u0026mongodbatlas.LookupCloudUserTeamAssignmentArgs{\n\t\t\t\tOrgId:  orgId,\n\t\t\t\tTeamId: teamId,\n\t\t\t\tUserId: pulumi.StringRef(pulumi.StringRef(userId)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserTeamAssignmentResultOutput)\n\t\t_ = example.Username.ApplyT(func(username string) (mongodbatlas.GetCloudUserTeamAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserTeamAssignmentResult(interface{}(mongodbatlas.LookupCloudUserTeamAssignment(ctx, \u0026mongodbatlas.LookupCloudUserTeamAssignmentArgs{\n\t\t\t\tOrgId:    orgId,\n\t\t\t\tTeamId:   teamId,\n\t\t\t\tUsername: pulumi.StringRef(pulumi.StringRef(username)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserTeamAssignmentResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudUserTeamAssignment;\nimport com.pulumi.mongodbatlas.CloudUserTeamAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudUserTeamAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new CloudUserTeamAssignment(\"example\", CloudUserTeamAssignmentArgs.builder()\n            .orgId(orgId)\n            .teamId(teamId)\n            .userId(userId)\n            .build());\n\n        final var exampleUserId = example.userId().applyValue(_userId -\u003e MongodbatlasFunctions.getCloudUserTeamAssignment(GetCloudUserTeamAssignmentArgs.builder()\n            .orgId(orgId)\n            .teamId(teamId)\n            .userId(_userId)\n            .build()));\n\n        final var exampleUsername = example.username().applyValue(_username -\u003e MongodbatlasFunctions.getCloudUserTeamAssignment(GetCloudUserTeamAssignmentArgs.builder()\n            .orgId(orgId)\n            .teamId(teamId)\n            .username(_username)\n            .build()));\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:CloudUserTeamAssignment\n    properties:\n      orgId: ${orgId}\n      teamId: ${teamId}\n      userId: ${userId}\nvariables:\n  exampleUserId:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserTeamAssignment\n      arguments:\n        orgId: ${orgId}\n        teamId: ${teamId}\n        userId: ${example.userId}\n  exampleUsername:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserTeamAssignment\n      arguments:\n        orgId: ${orgId}\n        teamId: ${teamId}\n        username: ${example.username}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Cloud User Team Assignment\n\n## Import\n\nCloud User Team Assignment resource can be imported using the Org ID \u0026 Team ID \u0026 User ID OR Org ID \u0026 Team ID \u0026 Username, in the format `ORG_ID/TEAM_ID/USER_ID` OR `ORG_ID/TEAM_ID/USERNAME`.\n\n```sh\n$ pulumi import mongodbatlas:index/cloudUserTeamAssignment:CloudUserTeamAssignment test 63cfbf302333a3011d98592e/9f3c1e7a4d8b2f6051acde47/5f18367ccb7a503a2b481b7a\nOR\n$ pulumi import mongodbatlas:index/cloudUserTeamAssignment:CloudUserTeamAssignment test 63cfbf302333a3011d98592e/9f3c1e7a4d8b2f6051acde47/test-user@example.com\n```\n\nFor more information see: [MongoDB Atlas API - Cloud Users](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-addusertoteam) Documentation.\n\n","properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n"},"createdAt":{"type":"string","description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n"},"firstName":{"type":"string","description":"First or given name that belongs to the MongoDB Cloud user.\n"},"invitationCreatedAt":{"type":"string","description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"invitationExpiresAt":{"type":"string","description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"inviterUsername":{"type":"string","description":"Username of the MongoDB Cloud user who sent the invitation to join the organization.\n"},"lastAuth":{"type":"string","description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n"},"lastName":{"type":"string","description":"Last name, family name, or surname that belongs to the MongoDB Cloud user.\n"},"mobileNumber":{"type":"string","description":"Mobile phone number that belongs to the MongoDB Cloud user.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [/orgs](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations) endpoint to retrieve all organizations to which the authenticated user has access.\n"},"orgMembershipStatus":{"type":"string","description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n"},"roles":{"$ref":"#/types/mongodbatlas:index/CloudUserTeamAssignmentRoles:CloudUserTeamAssignmentRoles","description":"Organization and project level roles to assign the MongoDB Cloud user within one organization.\n"},"teamId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the team to which you want to assign the MongoDB Cloud user. Use the [/teams](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-teams) endpoint to retrieve all teams to which the authenticated user has access.\n"},"teamIds":{"type":"array","items":{"type":"string"},"description":"List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Cloud user belongs.\n"},"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"required":["country","createdAt","firstName","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgId","orgMembershipStatus","roles","teamId","teamIds","userId","username"],"inputProperties":{"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [/orgs](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations) endpoint to retrieve all organizations to which the authenticated user has access.\n"},"teamId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the team to which you want to assign the MongoDB Cloud user. Use the [/teams](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-teams) endpoint to retrieve all teams to which the authenticated user has access.\n"},"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n"}},"requiredInputs":["orgId","teamId","userId"],"stateInputs":{"description":"Input properties used for looking up and filtering CloudUserTeamAssignment resources.\n","properties":{"country":{"type":"string","description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n"},"createdAt":{"type":"string","description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n"},"firstName":{"type":"string","description":"First or given name that belongs to the MongoDB Cloud user.\n"},"invitationCreatedAt":{"type":"string","description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"invitationExpiresAt":{"type":"string","description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n"},"inviterUsername":{"type":"string","description":"Username of the MongoDB Cloud user who sent the invitation to join the organization.\n"},"lastAuth":{"type":"string","description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n"},"lastName":{"type":"string","description":"Last name, family name, or surname that belongs to the MongoDB Cloud user.\n"},"mobileNumber":{"type":"string","description":"Mobile phone number that belongs to the MongoDB Cloud user.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [/orgs](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations) endpoint to retrieve all organizations to which the authenticated user has access.\n"},"orgMembershipStatus":{"type":"string","description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n"},"roles":{"$ref":"#/types/mongodbatlas:index/CloudUserTeamAssignmentRoles:CloudUserTeamAssignmentRoles","description":"Organization and project level roles to assign the MongoDB Cloud user within one organization.\n"},"teamId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the team to which you want to assign the MongoDB Cloud user. Use the [/teams](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-teams) endpoint to retrieve all teams to which the authenticated user has access.\n"},"teamIds":{"type":"array","items":{"type":"string"},"description":"List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Cloud user belongs.\n"},"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"type":"object"}},"mongodbatlas:index/cluster:Cluster":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Cluster`\" pulumi-lang-dotnet=\"`mongodbatlas.Cluster`\" pulumi-lang-go=\"`Cluster`\" pulumi-lang-python=\"`Cluster`\" pulumi-lang-yaml=\"`mongodbatlas.Cluster`\" pulumi-lang-java=\"`mongodbatlas.Cluster`\"\u003e`mongodbatlas.Cluster`\u003c/span\u003e provides a Cluster resource. The resource lets you create, edit and delete clusters. The resource requires your Project ID.\n\n\u003e **DEPRECATION:** This resource is deprecated and will be removed in the next major release. Please use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e. For more details, see our migration guide.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\u003e **NOTE:** A network container is created for a cluster to reside in. To use this container with another resource, such as peering, reference the computed\u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e attribute on the cluster.\n\n\u003e **NOTE:** To enable Cluster Extended Storage Sizes use the \u003cspan pulumi-lang-nodejs=\"`isExtendedStorageSizesEnabled`\" pulumi-lang-dotnet=\"`IsExtendedStorageSizesEnabled`\" pulumi-lang-go=\"`isExtendedStorageSizesEnabled`\" pulumi-lang-python=\"`is_extended_storage_sizes_enabled`\" pulumi-lang-yaml=\"`isExtendedStorageSizesEnabled`\" pulumi-lang-java=\"`isExtendedStorageSizesEnabled`\"\u003e`is_extended_storage_sizes_enabled`\u003c/span\u003e parameter in the\u003cspan pulumi-lang-nodejs=\" mongodbatlas.Project \" pulumi-lang-dotnet=\" mongodbatlas.Project \" pulumi-lang-go=\" Project \" pulumi-lang-python=\" Project \" pulumi-lang-yaml=\" mongodbatlas.Project \" pulumi-lang-java=\" mongodbatlas.Project \"\u003e mongodbatlas.Project \u003c/span\u003eresource.\n\n\u003e **NOTE:** If Backup Compliance Policy is enabled for the project for which this backup schedule is defined, you cannot modify the backup schedule for an individual cluster below the minimum requirements set in the Backup Compliance Policy.  See [Backup Compliance Policy Prohibited Actions and Considerations](https://www.mongodb.com/docs/atlas/backup/cloud-backup/backup-compliance-policy/#configure-a-backup-compliance-policy).\n\n\u003e **NOTE:** The Low-CPU instance clusters are prefixed with `R`, i.e. `R40`. For complete list of Low-CPU instance clusters see Cluster Configuration Options under each [Cloud Provider](https://www.mongodb.com/docs/atlas/reference/cloud-providers).\n\n\u003e **IMPORTANT:**\n\u003cbr\u003e \u0026#8226; Multi Region Cluster: The \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Cluster`\" pulumi-lang-dotnet=\"`mongodbatlas.Cluster`\" pulumi-lang-go=\"`Cluster`\" pulumi-lang-python=\"`Cluster`\" pulumi-lang-yaml=\"`mongodbatlas.Cluster`\" pulumi-lang-java=\"`mongodbatlas.Cluster`\"\u003e`mongodbatlas.Cluster`\u003c/span\u003e resource doesn't return the \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e for each region utilized by the cluster. For retrieving the \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e, we recommend to use the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e resource instead.\n\u003cbr\u003e \u0026#8226; Free tier cluster creation (M0) is supported.\n\u003cbr\u003e \u0026#8226; Free tier clusters (M0) can be upgraded to dedicated tiers (M10+) via this provider. WARNING WHEN UPGRADING FREE CLUSTERS!!! Any change from free tier to a different instance size will be considered a tenant upgrade. When upgrading from free tier to dedicated simply change the \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e from \"TENANT\"  to your preferred provider (AWS, GCP, AZURE) and remove the variable \u003cspan pulumi-lang-nodejs=\"`backingProviderName`\" pulumi-lang-dotnet=\"`BackingProviderName`\" pulumi-lang-go=\"`backingProviderName`\" pulumi-lang-python=\"`backing_provider_name`\" pulumi-lang-yaml=\"`backingProviderName`\" pulumi-lang-java=\"`backingProviderName`\"\u003e`backing_provider_name`\u003c/span\u003e, for example if you have an existing free cluster and want to upgrade your Terraform config should be changed from:\n```\nprovider_instance_size_name = \"M0\"\nprovider_name               = \"TENANT\"\nbacking_provider_name       = \"AWS\"\n```\nTo:\n```\nprovider_instance_size_name = \"M10\"\nprovider_name               = \"AWS\"\n```\n\u003cbr\u003e \u0026#8226; Changes to cluster configurations can affect costs. Before making changes, please see [Billing](https://docs.atlas.mongodb.com/billing/).   \n\u003cbr\u003e \u0026#8226; If your Atlas project contains a custom role that uses actions introduced in a specific MongoDB version, you cannot create a cluster with a MongoDB version less than that version unless you delete the custom role.\n\n## Example Usage\n\n### Example AWS cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst cluster_test = new mongodbatlas.Cluster(\"cluster-test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"cluster-test\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        numShards: 1,\n        regionsConfigs: [{\n            regionName: \"US_EAST_1\",\n            electableNodes: 3,\n            priority: 7,\n            readOnlyNodes: 0,\n        }],\n    }],\n    cloudBackup: true,\n    autoScalingDiskGbEnabled: true,\n    mongoDbMajorVersion: \"7.0\",\n    providerName: \"AWS\",\n    providerInstanceSizeName: \"M40\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ncluster_test = mongodbatlas.Cluster(\"cluster-test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"cluster-test\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"num_shards\": 1,\n        \"regions_configs\": [{\n            \"region_name\": \"US_EAST_1\",\n            \"electable_nodes\": 3,\n            \"priority\": 7,\n            \"read_only_nodes\": 0,\n        }],\n    }],\n    cloud_backup=True,\n    auto_scaling_disk_gb_enabled=True,\n    mongo_db_major_version=\"7.0\",\n    provider_name=\"AWS\",\n    provider_instance_size_name=\"M40\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var cluster_test = new Mongodbatlas.Cluster(\"cluster-test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"cluster-test\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.ClusterReplicationSpecArgs\n            {\n                NumShards = 1,\n                RegionsConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.ClusterReplicationSpecRegionsConfigArgs\n                    {\n                        RegionName = \"US_EAST_1\",\n                        ElectableNodes = 3,\n                        Priority = 7,\n                        ReadOnlyNodes = 0,\n                    },\n                },\n            },\n        },\n        CloudBackup = true,\n        AutoScalingDiskGbEnabled = true,\n        MongoDbMajorVersion = \"7.0\",\n        ProviderName = \"AWS\",\n        ProviderInstanceSizeName = \"M40\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCluster(ctx, \"cluster-test\", \u0026mongodbatlas.ClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:        pulumi.String(\"cluster-test\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.ClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecArgs{\n\t\t\t\t\tNumShards: pulumi.Int(1),\n\t\t\t\t\tRegionsConfigs: mongodbatlas.ClusterReplicationSpecRegionsConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecRegionsConfigArgs{\n\t\t\t\t\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tElectableNodes: pulumi.Int(3),\n\t\t\t\t\t\t\tPriority:       pulumi.Int(7),\n\t\t\t\t\t\t\tReadOnlyNodes:  pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCloudBackup:              pulumi.Bool(true),\n\t\t\tAutoScalingDiskGbEnabled: pulumi.Bool(true),\n\t\t\tMongoDbMajorVersion:      pulumi.String(\"7.0\"),\n\t\t\tProviderName:             pulumi.String(\"AWS\"),\n\t\t\tProviderInstanceSizeName: pulumi.String(\"M40\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Cluster;\nimport com.pulumi.mongodbatlas.ClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.ClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var cluster_test = new Cluster(\"cluster-test\", ClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"cluster-test\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(ClusterReplicationSpecArgs.builder()\n                .numShards(1)\n                .regionsConfigs(ClusterReplicationSpecRegionsConfigArgs.builder()\n                    .regionName(\"US_EAST_1\")\n                    .electableNodes(3)\n                    .priority(7)\n                    .readOnlyNodes(0)\n                    .build())\n                .build())\n            .cloudBackup(true)\n            .autoScalingDiskGbEnabled(true)\n            .mongoDbMajorVersion(\"7.0\")\n            .providerName(\"AWS\")\n            .providerInstanceSizeName(\"M40\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster-test:\n    type: mongodbatlas:Cluster\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: cluster-test\n      clusterType: REPLICASET\n      replicationSpecs:\n        - numShards: 1\n          regionsConfigs:\n            - regionName: US_EAST_1\n              electableNodes: 3\n              priority: 7\n              readOnlyNodes: 0\n      cloudBackup: true\n      autoScalingDiskGbEnabled: true\n      mongoDbMajorVersion: '7.0'\n      providerName: AWS\n      providerInstanceSizeName: M40\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Azure cluster.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.Cluster(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"test\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        numShards: 1,\n        regionsConfigs: [{\n            regionName: \"US_EAST\",\n            electableNodes: 3,\n            priority: 7,\n            readOnlyNodes: 0,\n        }],\n    }],\n    cloudBackup: true,\n    autoScalingDiskGbEnabled: true,\n    mongoDbMajorVersion: \"7.0\",\n    providerName: \"AZURE\",\n    providerDiskTypeName: \"P6\",\n    providerInstanceSizeName: \"M30\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.Cluster(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"test\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"num_shards\": 1,\n        \"regions_configs\": [{\n            \"region_name\": \"US_EAST\",\n            \"electable_nodes\": 3,\n            \"priority\": 7,\n            \"read_only_nodes\": 0,\n        }],\n    }],\n    cloud_backup=True,\n    auto_scaling_disk_gb_enabled=True,\n    mongo_db_major_version=\"7.0\",\n    provider_name=\"AZURE\",\n    provider_disk_type_name=\"P6\",\n    provider_instance_size_name=\"M30\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.Cluster(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"test\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.ClusterReplicationSpecArgs\n            {\n                NumShards = 1,\n                RegionsConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.ClusterReplicationSpecRegionsConfigArgs\n                    {\n                        RegionName = \"US_EAST\",\n                        ElectableNodes = 3,\n                        Priority = 7,\n                        ReadOnlyNodes = 0,\n                    },\n                },\n            },\n        },\n        CloudBackup = true,\n        AutoScalingDiskGbEnabled = true,\n        MongoDbMajorVersion = \"7.0\",\n        ProviderName = \"AZURE\",\n        ProviderDiskTypeName = \"P6\",\n        ProviderInstanceSizeName = \"M30\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCluster(ctx, \"test\", \u0026mongodbatlas.ClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:        pulumi.String(\"test\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.ClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecArgs{\n\t\t\t\t\tNumShards: pulumi.Int(1),\n\t\t\t\t\tRegionsConfigs: mongodbatlas.ClusterReplicationSpecRegionsConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecRegionsConfigArgs{\n\t\t\t\t\t\t\tRegionName:     pulumi.String(\"US_EAST\"),\n\t\t\t\t\t\t\tElectableNodes: pulumi.Int(3),\n\t\t\t\t\t\t\tPriority:       pulumi.Int(7),\n\t\t\t\t\t\t\tReadOnlyNodes:  pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCloudBackup:              pulumi.Bool(true),\n\t\t\tAutoScalingDiskGbEnabled: pulumi.Bool(true),\n\t\t\tMongoDbMajorVersion:      pulumi.String(\"7.0\"),\n\t\t\tProviderName:             pulumi.String(\"AZURE\"),\n\t\t\tProviderDiskTypeName:     pulumi.String(\"P6\"),\n\t\t\tProviderInstanceSizeName: pulumi.String(\"M30\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Cluster;\nimport com.pulumi.mongodbatlas.ClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.ClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Cluster(\"test\", ClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"test\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(ClusterReplicationSpecArgs.builder()\n                .numShards(1)\n                .regionsConfigs(ClusterReplicationSpecRegionsConfigArgs.builder()\n                    .regionName(\"US_EAST\")\n                    .electableNodes(3)\n                    .priority(7)\n                    .readOnlyNodes(0)\n                    .build())\n                .build())\n            .cloudBackup(true)\n            .autoScalingDiskGbEnabled(true)\n            .mongoDbMajorVersion(\"7.0\")\n            .providerName(\"AZURE\")\n            .providerDiskTypeName(\"P6\")\n            .providerInstanceSizeName(\"M30\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:Cluster\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: test\n      clusterType: REPLICASET\n      replicationSpecs:\n        - numShards: 1\n          regionsConfigs:\n            - regionName: US_EAST\n              electableNodes: 3\n              priority: 7\n              readOnlyNodes: 0\n      cloudBackup: true\n      autoScalingDiskGbEnabled: true\n      mongoDbMajorVersion: '7.0'\n      providerName: AZURE\n      providerDiskTypeName: P6\n      providerInstanceSizeName: M30\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example GCP cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.Cluster(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"test\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        numShards: 1,\n        regionsConfigs: [{\n            regionName: \"EASTERN_US\",\n            electableNodes: 3,\n            priority: 7,\n            readOnlyNodes: 0,\n        }],\n    }],\n    cloudBackup: true,\n    autoScalingDiskGbEnabled: true,\n    mongoDbMajorVersion: \"7.0\",\n    providerName: \"GCP\",\n    providerInstanceSizeName: \"M30\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.Cluster(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"test\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"num_shards\": 1,\n        \"regions_configs\": [{\n            \"region_name\": \"EASTERN_US\",\n            \"electable_nodes\": 3,\n            \"priority\": 7,\n            \"read_only_nodes\": 0,\n        }],\n    }],\n    cloud_backup=True,\n    auto_scaling_disk_gb_enabled=True,\n    mongo_db_major_version=\"7.0\",\n    provider_name=\"GCP\",\n    provider_instance_size_name=\"M30\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.Cluster(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"test\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.ClusterReplicationSpecArgs\n            {\n                NumShards = 1,\n                RegionsConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.ClusterReplicationSpecRegionsConfigArgs\n                    {\n                        RegionName = \"EASTERN_US\",\n                        ElectableNodes = 3,\n                        Priority = 7,\n                        ReadOnlyNodes = 0,\n                    },\n                },\n            },\n        },\n        CloudBackup = true,\n        AutoScalingDiskGbEnabled = true,\n        MongoDbMajorVersion = \"7.0\",\n        ProviderName = \"GCP\",\n        ProviderInstanceSizeName = \"M30\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCluster(ctx, \"test\", \u0026mongodbatlas.ClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:        pulumi.String(\"test\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.ClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecArgs{\n\t\t\t\t\tNumShards: pulumi.Int(1),\n\t\t\t\t\tRegionsConfigs: mongodbatlas.ClusterReplicationSpecRegionsConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecRegionsConfigArgs{\n\t\t\t\t\t\t\tRegionName:     pulumi.String(\"EASTERN_US\"),\n\t\t\t\t\t\t\tElectableNodes: pulumi.Int(3),\n\t\t\t\t\t\t\tPriority:       pulumi.Int(7),\n\t\t\t\t\t\t\tReadOnlyNodes:  pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCloudBackup:              pulumi.Bool(true),\n\t\t\tAutoScalingDiskGbEnabled: pulumi.Bool(true),\n\t\t\tMongoDbMajorVersion:      pulumi.String(\"7.0\"),\n\t\t\tProviderName:             pulumi.String(\"GCP\"),\n\t\t\tProviderInstanceSizeName: pulumi.String(\"M30\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Cluster;\nimport com.pulumi.mongodbatlas.ClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.ClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Cluster(\"test\", ClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"test\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(ClusterReplicationSpecArgs.builder()\n                .numShards(1)\n                .regionsConfigs(ClusterReplicationSpecRegionsConfigArgs.builder()\n                    .regionName(\"EASTERN_US\")\n                    .electableNodes(3)\n                    .priority(7)\n                    .readOnlyNodes(0)\n                    .build())\n                .build())\n            .cloudBackup(true)\n            .autoScalingDiskGbEnabled(true)\n            .mongoDbMajorVersion(\"7.0\")\n            .providerName(\"GCP\")\n            .providerInstanceSizeName(\"M30\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:Cluster\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: test\n      clusterType: REPLICASET\n      replicationSpecs:\n        - numShards: 1\n          regionsConfigs:\n            - regionName: EASTERN_US\n              electableNodes: 3\n              priority: 7\n              readOnlyNodes: 0\n      cloudBackup: true\n      autoScalingDiskGbEnabled: true\n      mongoDbMajorVersion: '7.0'\n      providerName: GCP\n      providerInstanceSizeName: M30\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Multi Region cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst cluster_test = new mongodbatlas.Cluster(\"cluster-test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"cluster-test-multi-region\",\n    numShards: 1,\n    cloudBackup: true,\n    clusterType: \"REPLICASET\",\n    providerName: \"AWS\",\n    providerInstanceSizeName: \"M10\",\n    replicationSpecs: [{\n        numShards: 1,\n        regionsConfigs: [\n            {\n                regionName: \"US_EAST_1\",\n                electableNodes: 3,\n                priority: 7,\n                readOnlyNodes: 0,\n            },\n            {\n                regionName: \"US_EAST_2\",\n                electableNodes: 2,\n                priority: 6,\n                readOnlyNodes: 0,\n            },\n            {\n                regionName: \"US_WEST_1\",\n                electableNodes: 2,\n                priority: 5,\n                readOnlyNodes: 2,\n            },\n        ],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ncluster_test = mongodbatlas.Cluster(\"cluster-test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"cluster-test-multi-region\",\n    num_shards=1,\n    cloud_backup=True,\n    cluster_type=\"REPLICASET\",\n    provider_name=\"AWS\",\n    provider_instance_size_name=\"M10\",\n    replication_specs=[{\n        \"num_shards\": 1,\n        \"regions_configs\": [\n            {\n                \"region_name\": \"US_EAST_1\",\n                \"electable_nodes\": 3,\n                \"priority\": 7,\n                \"read_only_nodes\": 0,\n            },\n            {\n                \"region_name\": \"US_EAST_2\",\n                \"electable_nodes\": 2,\n                \"priority\": 6,\n                \"read_only_nodes\": 0,\n            },\n            {\n                \"region_name\": \"US_WEST_1\",\n                \"electable_nodes\": 2,\n                \"priority\": 5,\n                \"read_only_nodes\": 2,\n            },\n        ],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var cluster_test = new Mongodbatlas.Cluster(\"cluster-test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"cluster-test-multi-region\",\n        NumShards = 1,\n        CloudBackup = true,\n        ClusterType = \"REPLICASET\",\n        ProviderName = \"AWS\",\n        ProviderInstanceSizeName = \"M10\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.ClusterReplicationSpecArgs\n            {\n                NumShards = 1,\n                RegionsConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.ClusterReplicationSpecRegionsConfigArgs\n                    {\n                        RegionName = \"US_EAST_1\",\n                        ElectableNodes = 3,\n                        Priority = 7,\n                        ReadOnlyNodes = 0,\n                    },\n                    new Mongodbatlas.Inputs.ClusterReplicationSpecRegionsConfigArgs\n                    {\n                        RegionName = \"US_EAST_2\",\n                        ElectableNodes = 2,\n                        Priority = 6,\n                        ReadOnlyNodes = 0,\n                    },\n                    new Mongodbatlas.Inputs.ClusterReplicationSpecRegionsConfigArgs\n                    {\n                        RegionName = \"US_WEST_1\",\n                        ElectableNodes = 2,\n                        Priority = 5,\n                        ReadOnlyNodes = 2,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCluster(ctx, \"cluster-test\", \u0026mongodbatlas.ClusterArgs{\n\t\t\tProjectId:                pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:                     pulumi.String(\"cluster-test-multi-region\"),\n\t\t\tNumShards:                pulumi.Int(1),\n\t\t\tCloudBackup:              pulumi.Bool(true),\n\t\t\tClusterType:              pulumi.String(\"REPLICASET\"),\n\t\t\tProviderName:             pulumi.String(\"AWS\"),\n\t\t\tProviderInstanceSizeName: pulumi.String(\"M10\"),\n\t\t\tReplicationSpecs: mongodbatlas.ClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecArgs{\n\t\t\t\t\tNumShards: pulumi.Int(1),\n\t\t\t\t\tRegionsConfigs: mongodbatlas.ClusterReplicationSpecRegionsConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecRegionsConfigArgs{\n\t\t\t\t\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tElectableNodes: pulumi.Int(3),\n\t\t\t\t\t\t\tPriority:       pulumi.Int(7),\n\t\t\t\t\t\t\tReadOnlyNodes:  pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecRegionsConfigArgs{\n\t\t\t\t\t\t\tRegionName:     pulumi.String(\"US_EAST_2\"),\n\t\t\t\t\t\t\tElectableNodes: pulumi.Int(2),\n\t\t\t\t\t\t\tPriority:       pulumi.Int(6),\n\t\t\t\t\t\t\tReadOnlyNodes:  pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecRegionsConfigArgs{\n\t\t\t\t\t\t\tRegionName:     pulumi.String(\"US_WEST_1\"),\n\t\t\t\t\t\t\tElectableNodes: pulumi.Int(2),\n\t\t\t\t\t\t\tPriority:       pulumi.Int(5),\n\t\t\t\t\t\t\tReadOnlyNodes:  pulumi.Int(2),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Cluster;\nimport com.pulumi.mongodbatlas.ClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.ClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var cluster_test = new Cluster(\"cluster-test\", ClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"cluster-test-multi-region\")\n            .numShards(1)\n            .cloudBackup(true)\n            .clusterType(\"REPLICASET\")\n            .providerName(\"AWS\")\n            .providerInstanceSizeName(\"M10\")\n            .replicationSpecs(ClusterReplicationSpecArgs.builder()\n                .numShards(1)\n                .regionsConfigs(                \n                    ClusterReplicationSpecRegionsConfigArgs.builder()\n                        .regionName(\"US_EAST_1\")\n                        .electableNodes(3)\n                        .priority(7)\n                        .readOnlyNodes(0)\n                        .build(),\n                    ClusterReplicationSpecRegionsConfigArgs.builder()\n                        .regionName(\"US_EAST_2\")\n                        .electableNodes(2)\n                        .priority(6)\n                        .readOnlyNodes(0)\n                        .build(),\n                    ClusterReplicationSpecRegionsConfigArgs.builder()\n                        .regionName(\"US_WEST_1\")\n                        .electableNodes(2)\n                        .priority(5)\n                        .readOnlyNodes(2)\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster-test:\n    type: mongodbatlas:Cluster\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: cluster-test-multi-region\n      numShards: 1\n      cloudBackup: true\n      clusterType: REPLICASET\n      providerName: AWS\n      providerInstanceSizeName: M10\n      replicationSpecs:\n        - numShards: 1\n          regionsConfigs:\n            - regionName: US_EAST_1\n              electableNodes: 3\n              priority: 7\n              readOnlyNodes: 0\n            - regionName: US_EAST_2\n              electableNodes: 2\n              priority: 6\n              readOnlyNodes: 0\n            - regionName: US_WEST_1\n              electableNodes: 2\n              priority: 5\n              readOnlyNodes: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Global cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst cluster_test = new mongodbatlas.Cluster(\"cluster-test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"cluster-test-global\",\n    numShards: 1,\n    cloudBackup: true,\n    clusterType: \"GEOSHARDED\",\n    providerName: \"AWS\",\n    providerInstanceSizeName: \"M30\",\n    replicationSpecs: [\n        {\n            zoneName: \"Zone 1\",\n            numShards: 2,\n            regionsConfigs: [{\n                regionName: \"US_EAST_1\",\n                electableNodes: 3,\n                priority: 7,\n                readOnlyNodes: 0,\n            }],\n        },\n        {\n            zoneName: \"Zone 2\",\n            numShards: 2,\n            regionsConfigs: [{\n                regionName: \"EU_CENTRAL_1\",\n                electableNodes: 3,\n                priority: 7,\n                readOnlyNodes: 0,\n            }],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ncluster_test = mongodbatlas.Cluster(\"cluster-test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"cluster-test-global\",\n    num_shards=1,\n    cloud_backup=True,\n    cluster_type=\"GEOSHARDED\",\n    provider_name=\"AWS\",\n    provider_instance_size_name=\"M30\",\n    replication_specs=[\n        {\n            \"zone_name\": \"Zone 1\",\n            \"num_shards\": 2,\n            \"regions_configs\": [{\n                \"region_name\": \"US_EAST_1\",\n                \"electable_nodes\": 3,\n                \"priority\": 7,\n                \"read_only_nodes\": 0,\n            }],\n        },\n        {\n            \"zone_name\": \"Zone 2\",\n            \"num_shards\": 2,\n            \"regions_configs\": [{\n                \"region_name\": \"EU_CENTRAL_1\",\n                \"electable_nodes\": 3,\n                \"priority\": 7,\n                \"read_only_nodes\": 0,\n            }],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var cluster_test = new Mongodbatlas.Cluster(\"cluster-test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"cluster-test-global\",\n        NumShards = 1,\n        CloudBackup = true,\n        ClusterType = \"GEOSHARDED\",\n        ProviderName = \"AWS\",\n        ProviderInstanceSizeName = \"M30\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.ClusterReplicationSpecArgs\n            {\n                ZoneName = \"Zone 1\",\n                NumShards = 2,\n                RegionsConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.ClusterReplicationSpecRegionsConfigArgs\n                    {\n                        RegionName = \"US_EAST_1\",\n                        ElectableNodes = 3,\n                        Priority = 7,\n                        ReadOnlyNodes = 0,\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.ClusterReplicationSpecArgs\n            {\n                ZoneName = \"Zone 2\",\n                NumShards = 2,\n                RegionsConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.ClusterReplicationSpecRegionsConfigArgs\n                    {\n                        RegionName = \"EU_CENTRAL_1\",\n                        ElectableNodes = 3,\n                        Priority = 7,\n                        ReadOnlyNodes = 0,\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCluster(ctx, \"cluster-test\", \u0026mongodbatlas.ClusterArgs{\n\t\t\tProjectId:                pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:                     pulumi.String(\"cluster-test-global\"),\n\t\t\tNumShards:                pulumi.Int(1),\n\t\t\tCloudBackup:              pulumi.Bool(true),\n\t\t\tClusterType:              pulumi.String(\"GEOSHARDED\"),\n\t\t\tProviderName:             pulumi.String(\"AWS\"),\n\t\t\tProviderInstanceSizeName: pulumi.String(\"M30\"),\n\t\t\tReplicationSpecs: mongodbatlas.ClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName:  pulumi.String(\"Zone 1\"),\n\t\t\t\t\tNumShards: pulumi.Int(2),\n\t\t\t\t\tRegionsConfigs: mongodbatlas.ClusterReplicationSpecRegionsConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecRegionsConfigArgs{\n\t\t\t\t\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tElectableNodes: pulumi.Int(3),\n\t\t\t\t\t\t\tPriority:       pulumi.Int(7),\n\t\t\t\t\t\t\tReadOnlyNodes:  pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName:  pulumi.String(\"Zone 2\"),\n\t\t\t\t\tNumShards: pulumi.Int(2),\n\t\t\t\t\tRegionsConfigs: mongodbatlas.ClusterReplicationSpecRegionsConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecRegionsConfigArgs{\n\t\t\t\t\t\t\tRegionName:     pulumi.String(\"EU_CENTRAL_1\"),\n\t\t\t\t\t\t\tElectableNodes: pulumi.Int(3),\n\t\t\t\t\t\t\tPriority:       pulumi.Int(7),\n\t\t\t\t\t\t\tReadOnlyNodes:  pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Cluster;\nimport com.pulumi.mongodbatlas.ClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.ClusterReplicationSpecArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var cluster_test = new Cluster(\"cluster-test\", ClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"cluster-test-global\")\n            .numShards(1)\n            .cloudBackup(true)\n            .clusterType(\"GEOSHARDED\")\n            .providerName(\"AWS\")\n            .providerInstanceSizeName(\"M30\")\n            .replicationSpecs(            \n                ClusterReplicationSpecArgs.builder()\n                    .zoneName(\"Zone 1\")\n                    .numShards(2)\n                    .regionsConfigs(ClusterReplicationSpecRegionsConfigArgs.builder()\n                        .regionName(\"US_EAST_1\")\n                        .electableNodes(3)\n                        .priority(7)\n                        .readOnlyNodes(0)\n                        .build())\n                    .build(),\n                ClusterReplicationSpecArgs.builder()\n                    .zoneName(\"Zone 2\")\n                    .numShards(2)\n                    .regionsConfigs(ClusterReplicationSpecRegionsConfigArgs.builder()\n                        .regionName(\"EU_CENTRAL_1\")\n                        .electableNodes(3)\n                        .priority(7)\n                        .readOnlyNodes(0)\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster-test:\n    type: mongodbatlas:Cluster\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: cluster-test-global\n      numShards: 1\n      cloudBackup: true\n      clusterType: GEOSHARDED\n      providerName: AWS\n      providerInstanceSizeName: M30\n      replicationSpecs:\n        - zoneName: Zone 1\n          numShards: 2\n          regionsConfigs:\n            - regionName: US_EAST_1\n              electableNodes: 3\n              priority: 7\n              readOnlyNodes: 0\n        - zoneName: Zone 2\n          numShards: 2\n          regionsConfigs:\n            - regionName: EU_CENTRAL_1\n              electableNodes: 3\n              priority: 7\n              readOnlyNodes: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Example AWS Free Tier cluster\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst cluster_test = new mongodbatlas.Cluster(\"cluster-test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"cluster-test-global\",\n    providerName: \"TENANT\",\n    backingProviderName: \"AWS\",\n    providerRegionName: \"US_EAST_1\",\n    providerInstanceSizeName: \"M0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ncluster_test = mongodbatlas.Cluster(\"cluster-test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"cluster-test-global\",\n    provider_name=\"TENANT\",\n    backing_provider_name=\"AWS\",\n    provider_region_name=\"US_EAST_1\",\n    provider_instance_size_name=\"M0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var cluster_test = new Mongodbatlas.Cluster(\"cluster-test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"cluster-test-global\",\n        ProviderName = \"TENANT\",\n        BackingProviderName = \"AWS\",\n        ProviderRegionName = \"US_EAST_1\",\n        ProviderInstanceSizeName = \"M0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCluster(ctx, \"cluster-test\", \u0026mongodbatlas.ClusterArgs{\n\t\t\tProjectId:                pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:                     pulumi.String(\"cluster-test-global\"),\n\t\t\tProviderName:             pulumi.String(\"TENANT\"),\n\t\t\tBackingProviderName:      pulumi.String(\"AWS\"),\n\t\t\tProviderRegionName:       pulumi.String(\"US_EAST_1\"),\n\t\t\tProviderInstanceSizeName: pulumi.String(\"M0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Cluster;\nimport com.pulumi.mongodbatlas.ClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var cluster_test = new Cluster(\"cluster-test\", ClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"cluster-test-global\")\n            .providerName(\"TENANT\")\n            .backingProviderName(\"AWS\")\n            .providerRegionName(\"US_EAST_1\")\n            .providerInstanceSizeName(\"M0\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  cluster-test:\n    type: mongodbatlas:Cluster\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: cluster-test-global\n      providerName: TENANT\n      backingProviderName: AWS\n      providerRegionName: US_EAST_1\n      providerInstanceSizeName: M0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Example - Return a Connection String\nStandard\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const standard = cluster_test.connectionStrings[0].standard;\n```\n```python\nimport pulumi\n\npulumi.export(\"standard\", cluster_test[\"connectionStrings\"][0][\"standard\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"standard\"] = cluster_test.ConnectionStrings[0].Standard,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"standard\", cluster_test.ConnectionStrings[0].Standard)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        ctx.export(\"standard\", cluster_test.connectionStrings()[0].standard());\n    }\n}\n```\n```yaml\noutputs:\n  standard: ${[\"cluster-test\"].connectionStrings[0].standard}\n```\n\u003c!--End PulumiCodeChooser --\u003e\nStandard srv\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const standardSrv = cluster_test.connectionStrings[0].standardSrv;\n```\n```python\nimport pulumi\n\npulumi.export(\"standardSrv\", cluster_test[\"connectionStrings\"][0][\"standardSrv\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"standardSrv\"] = cluster_test.ConnectionStrings[0].StandardSrv,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"standardSrv\", cluster_test.ConnectionStrings[0].StandardSrv)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        ctx.export(\"standardSrv\", cluster_test.connectionStrings()[0].standardSrv());\n    }\n}\n```\n```yaml\noutputs:\n  standardSrv: ${[\"cluster-test\"].connectionStrings[0].standardSrv}\n```\n\u003c!--End PulumiCodeChooser --\u003e\nPrivate with Network peering and Custom DNS AWS enabled\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport = async () =\u003e {\n    return {\n        \"private\": cluster_test.connectionStrings[0][\"private\"],\n    };\n}\n```\n```python\nimport pulumi\n\npulumi.export(\"private\", cluster_test[\"connectionStrings\"][0][\"private\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"private\"] = cluster_test.ConnectionStrings[0].Private,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"private\", cluster_test.ConnectionStrings[0].Private)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        ctx.export(\"private\", cluster_test.connectionStrings()[0].private());\n    }\n}\n```\n```yaml\noutputs:\n  private: ${[\"cluster-test\"].connectionStrings[0].private}\n```\n\u003c!--End PulumiCodeChooser --\u003e\nPrivate srv with Network peering and Custom DNS AWS enabled\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n\nexport const privateSrv = cluster_test.connectionStrings[0].privateSrv;\n```\n```python\nimport pulumi\n\npulumi.export(\"privateSrv\", cluster_test[\"connectionStrings\"][0][\"privateSrv\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privateSrv\"] = cluster_test.ConnectionStrings[0].PrivateSrv,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tctx.Export(\"privateSrv\", cluster_test.ConnectionStrings[0].PrivateSrv)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        ctx.export(\"privateSrv\", cluster_test.connectionStrings()[0].privateSrv());\n    }\n}\n```\n```yaml\noutputs:\n  privateSrv: ${[\"cluster-test\"].connectionStrings[0].privateSrv}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nBy\u003cspan pulumi-lang-nodejs=\" endpointServiceId\n\" pulumi-lang-dotnet=\" EndpointServiceId\n\" pulumi-lang-go=\" endpointServiceId\n\" pulumi-lang-python=\" endpoint_service_id\n\" pulumi-lang-yaml=\" endpointServiceId\n\" pulumi-lang-java=\" endpointServiceId\n\"\u003e endpoint_service_id\n\u003c/span\u003e```terraform\nlocals {\n  endpoint_service_id = google_compute_network.default.name\n  private_endpoints   = try(flatten([for cs in data.mongodbatlas_advanced_cluster.cluster[0].connection_strings : cs.private_endpoint]), [])\n  connection_strings = [\n    for pe in local.private_endpoints : pe.srv_connection_string\n    if contains([for e in pe.endpoints : e.endpoint_id], local.endpoint_service_id)\n  ]\n}\noutput \"endpoint_service_connection_string\" {\n  value = length(local.connection_strings) \u003e 0 ? local.connection_strings[0] : \"\"\n}\n# Example return string: connection_string = \"mongodb+srv://cluster-atlas-pl-0.ygo1m.mongodb.net\"\n```\n\nRefer to the following for full privatelink endpoint connection string examples:\n* GCP Private Endpoint (Port-Mapped Architecture)\n* Azure Private Endpoint\n* AWS, Private Endpoint\n* AWS, Regionalized Private Endpoints\n\n\n### Further Examples \n- NVMe Upgrade (Dedicated Cluster)\n- Tenant to Dedicated Upgrade (Cluster)\n\n## Import\n\nClusters can be imported using project ID and cluster name, in the format `PROJECTID-CLUSTERNAME`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/cluster:Cluster my_cluster 1112222b3bf99403840e8934-Cluster0\n```\n\nSee detailed information for arguments and attributes: [MongoDB API Clusters](https://docs.atlas.mongodb.com/reference/api/clusters-create-one/)\n\n","properties":{"acceptDataRisksAndForceReplicaSetReconfig":{"type":"string","description":"If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set \u003cspan pulumi-lang-nodejs=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-dotnet=\"`AcceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-go=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-python=\"`accept_data_risks_and_force_replica_set_reconfig`\" pulumi-lang-yaml=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-java=\"`acceptDataRisksAndForceReplicaSetReconfig`\"\u003e`accept_data_risks_and_force_replica_set_reconfig`\u003c/span\u003e to the current date. Learn more about Reconfiguring a Replica Set during a regional outage [here](https://dochub.mongodb.org/core/regional-outage-reconfigure-replica-set).\n"},"advancedConfiguration":{"$ref":"#/types/mongodbatlas:index/ClusterAdvancedConfiguration:ClusterAdvancedConfiguration"},"autoScalingComputeEnabled":{"type":"boolean","description":"Specifies whether cluster tier auto-scaling is enabled. The default is false.\n- Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable cluster tier auto-scaling. If enabled, you must specify a value for `providerSettings.autoScaling.compute.maxInstanceSize`.\n- Set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to disable cluster tier auto-scaling.\n\n\u003e **IMPORTANT:** If \u003cspan pulumi-lang-nodejs=\"`autoScalingComputeEnabled`\" pulumi-lang-dotnet=\"`AutoScalingComputeEnabled`\" pulumi-lang-go=\"`autoScalingComputeEnabled`\" pulumi-lang-python=\"`auto_scaling_compute_enabled`\" pulumi-lang-yaml=\"`autoScalingComputeEnabled`\" pulumi-lang-java=\"`autoScalingComputeEnabled`\"\u003e`auto_scaling_compute_enabled`\u003c/span\u003e is true,  then Atlas will automatically scale up to the maximum provided and down to the minimum, if provided.\nThis will cause the value of \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e returned to potentially be different than what is specified in the Terraform config and if one then applies a plan, not noting this, Terraform will scale the cluster back to the original instanceSizeName value.\nTo prevent this a lifecycle customization should be used, i.e.:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= \u003cspan pulumi-lang-nodejs=\"[providerInstanceSizeName]\" pulumi-lang-dotnet=\"[ProviderInstanceSizeName]\" pulumi-lang-go=\"[providerInstanceSizeName]\" pulumi-lang-python=\"[provider_instance_size_name]\" pulumi-lang-yaml=\"[providerInstanceSizeName]\" pulumi-lang-java=\"[providerInstanceSizeName]\"\u003e[provider_instance_size_name]\u003c/span\u003e\n}`\nBut in order to explicitly change \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e comment the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block and run `pulumi up`. Please ensure to uncomment it to prevent any accidental changes.\n"},"autoScalingComputeScaleDownEnabled":{"type":"boolean","description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable the cluster tier to scale down. This option is only available if `autoScaling.compute.enabled` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n- If this option is enabled, you must specify a value for `providerSettings.autoScaling.compute.minInstanceSize`\n"},"autoScalingDiskGbEnabled":{"type":"boolean","description":"Specifies whether disk auto-scaling is enabled. The default is false.\n- Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable disk auto-scaling.\n- Set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to disable disk auto-scaling.\n\n\u003e **IMPORTANT:** If \u003cspan pulumi-lang-nodejs=\"`autoScalingDiskGbEnabled`\" pulumi-lang-dotnet=\"`AutoScalingDiskGbEnabled`\" pulumi-lang-go=\"`autoScalingDiskGbEnabled`\" pulumi-lang-python=\"`auto_scaling_disk_gb_enabled`\" pulumi-lang-yaml=\"`autoScalingDiskGbEnabled`\" pulumi-lang-java=\"`autoScalingDiskGbEnabled`\"\u003e`auto_scaling_disk_gb_enabled`\u003c/span\u003e is true, then Atlas will automatically scale disk size up and down.\nThis will cause the value of \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e returned to potentially be different than what is specified in the Terraform config and if one then applies a plan, not noting this, Terraform will scale the cluster disk size back to the original \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e value.\nTo prevent this a lifecycle customization should be used, i.e.:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= \u003cspan pulumi-lang-nodejs=\"[diskSizeGb]\" pulumi-lang-dotnet=\"[DiskSizeGb]\" pulumi-lang-go=\"[diskSizeGb]\" pulumi-lang-python=\"[disk_size_gb]\" pulumi-lang-yaml=\"[diskSizeGb]\" pulumi-lang-java=\"[diskSizeGb]\"\u003e[disk_size_gb]\u003c/span\u003e\n}`\nAfter adding the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block to explicitly change \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e comment out the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block and run `pulumi up`. Please be sure to uncomment the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block once done to prevent any accidental changes.\n\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e is set to `TENANT`, the parameter \u003cspan pulumi-lang-nodejs=\"`autoScalingDiskGbEnabled`\" pulumi-lang-dotnet=\"`AutoScalingDiskGbEnabled`\" pulumi-lang-go=\"`autoScalingDiskGbEnabled`\" pulumi-lang-python=\"`auto_scaling_disk_gb_enabled`\" pulumi-lang-yaml=\"`autoScalingDiskGbEnabled`\" pulumi-lang-java=\"`autoScalingDiskGbEnabled`\"\u003e`auto_scaling_disk_gb_enabled`\u003c/span\u003e will be ignored.\n"},"backingProviderName":{"type":"string","description":"Cloud service provider on which the server for a multi-tenant cluster is provisioned.\n\nThis setting is only valid when providerSetting.providerName is TENANT and providerSetting.instanceSizeName is M0.\n\nThe possible values are:\n\n- AWS - Amazon AWS\n- GCP - Google Cloud Platform\n- AZURE - Microsoft Azure\n"},"backupEnabled":{"type":"boolean","description":"Legacy Backup - Set to true to enable Atlas legacy backups for the cluster.\n**Important** - MongoDB deprecated the Legacy Backup feature. Clusters that use Legacy Backup can continue to use it. MongoDB recommends using [Cloud Backups](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/).\n* New Atlas clusters of any type do not support this parameter. These clusters must use Cloud Backup, \u003cspan pulumi-lang-nodejs=\"`cloudBackup`\" pulumi-lang-dotnet=\"`CloudBackup`\" pulumi-lang-go=\"`cloudBackup`\" pulumi-lang-python=\"`cloud_backup`\" pulumi-lang-yaml=\"`cloudBackup`\" pulumi-lang-java=\"`cloudBackup`\"\u003e`cloud_backup`\u003c/span\u003e, to enable Cloud Backup.  If you create a new Atlas cluster and set \u003cspan pulumi-lang-nodejs=\"`backupEnabled`\" pulumi-lang-dotnet=\"`BackupEnabled`\" pulumi-lang-go=\"`backupEnabled`\" pulumi-lang-python=\"`backup_enabled`\" pulumi-lang-yaml=\"`backupEnabled`\" pulumi-lang-java=\"`backupEnabled`\"\u003e`backup_enabled`\u003c/span\u003e to true, the Provider will respond with an error.  This change doesn’t affect existing clusters that use legacy backups.\n* Setting this value to false to disable legacy backups for the cluster will let Atlas delete any stored snapshots. In order to preserve the legacy backups snapshots, disable the legacy backups and enable the cloud backups in the single **pulumi up** action.\n```\nbackup_enabled = \"false\"\ncloud_backup = \"true\"\n```\n* The default value is false. M10 and above only.\n"},"biConnectorConfig":{"$ref":"#/types/mongodbatlas:index/ClusterBiConnectorConfig:ClusterBiConnectorConfig","description":"Specifies BI Connector for Atlas configuration on this cluster. BI Connector for Atlas is only available for M10+ clusters. See BI Connector below for more details.\n"},"cloudBackup":{"type":"boolean","description":"Flag indicating if the cluster uses Cloud Backup for backups.\n\nIf true, the cluster uses Cloud Backup for backups. If\u003cspan pulumi-lang-nodejs=\" cloudBackup \" pulumi-lang-dotnet=\" CloudBackup \" pulumi-lang-go=\" cloudBackup \" pulumi-lang-python=\" cloud_backup \" pulumi-lang-yaml=\" cloudBackup \" pulumi-lang-java=\" cloudBackup \"\u003e cloud_backup \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" backupEnabled \" pulumi-lang-dotnet=\" BackupEnabled \" pulumi-lang-go=\" backupEnabled \" pulumi-lang-python=\" backup_enabled \" pulumi-lang-yaml=\" backupEnabled \" pulumi-lang-java=\" backupEnabled \"\u003e backup_enabled \u003c/span\u003eare false, the cluster does not use Atlas backups.\n\nYou cannot enable cloud backup if you have an existing cluster in the project with legacy backup enabled.\n\n\u003e **IMPORTANT:** If setting to true for an existing cluster or imported cluster be sure to run terraform refresh after applying to enable modification of the Cloud Backup Snapshot Policy going forward.\n"},"clusterId":{"type":"string","description":"The cluster ID.\n"},"clusterType":{"type":"string","description":"Specifies the type of the cluster that you want to modify. You cannot convert a sharded cluster deployment to a replica set deployment.\n\n\u003e **WHEN SHOULD YOU USE CLUSTERTYPE?**\nWhen you set replication_specs, when you are deploying Global Clusters or when you are deploying non-Global replica sets and sharded clusters.\n\nAccepted values include:\n- `REPLICASET` Replica set\n- `SHARDED` Sharded cluster\n- `GEOSHARDED` Global Cluster\n"},"connectionStrings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterConnectionString:ClusterConnectionString"},"description":"Set of connection strings that your applications use to connect to this cluster. More information in [Connection-strings](https://docs.mongodb.com/manual/reference/connection-string/). Use the parameters in this object to connect your applications to this cluster. To learn more about the formats of connection strings, see [Connection String Options](https://docs.atlas.mongodb.com/reference/faq/connection-changes/). NOTE: Atlas returns the contents of this object after the cluster is operational, not while it builds the cluster.\n"},"containerId":{"type":"string","description":"The Container ID is the id of the container created when the first cluster in the region (AWS/Azure) or project (GCP) was created.\n"},"diskSizeGb":{"type":"number","description":"Capacity, in gigabytes, of the host’s root volume. Increase this number to add capacity, up to a maximum possible value of 4096 (i.e., 4 TB). This value must be a positive integer.\n* The minimum disk size for dedicated clusters is 10GB for AWS and GCP. If you specify diskSizeGB with a lower disk size, Atlas defaults to the minimum disk size value.\n* Note: The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require additional storage space beyond this limitation, consider upgrading your cluster to a higher tier.\n* Cannot be used with clusters with local NVMe SSDs\n* Cannot be used with Azure clusters\n"},"encryptionAtRestProvider":{"type":"string","description":"Possible values are AWS, GCP, AZURE or NONE.  Only needed if you desire to manage the keys, see [Encryption at Rest using Customer Key Management](https://docs.atlas.mongodb.com/security-aws-kms/) for complete documentation.  You must configure encryption at rest for the Atlas project before enabling it on any cluster in the project. For complete documentation on configuring Encryption at Rest, see Encryption at Rest using Customer Key Management. Requires M10 or greater. and for legacy backups, backup_enabled, to be false or omitted. **Note: Atlas encrypts all cluster storage and snapshot volumes, securing all cluster data on disk: a concept known as encryption at rest, by default**.\n"},"labels":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterLabel:ClusterLabel"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e instead.\n"},"mongoDbMajorVersion":{"type":"string","description":"Version of the cluster to deploy. Atlas supports all the MongoDB versions that have **not** reached [End of Live](https://www.mongodb.com/legal/support-policy/lifecycles) for M10+ clusters. If omitted, Atlas deploys the cluster with the default version. For more details, see [documentation](https://www.mongodb.com/docs/atlas/reference/faq/database/#which-versions-of-mongodb-do-service-clusters-use-). Atlas always deploys the cluster with the latest stable release of the specified version. See [Release Notes](https://www.mongodb.com/docs/upcoming/release-notes/) for latest Current Stable Release.\n"},"mongoDbVersion":{"type":"string","description":"Version of MongoDB the cluster runs, in `major-version`.`minor-version` format.\n"},"mongoUri":{"type":"string","description":"Base connection string for the cluster. Atlas only displays this field after the cluster is operational, not while it builds the cluster.\n"},"mongoUriUpdated":{"type":"string","description":"Lists when the connection string was last updated. The connection string changes, for example, if you change a replica set to a sharded cluster.\n"},"mongoUriWithOptions":{"type":"string","description":"connection string for connecting to the Atlas cluster. Includes the replicaSet, ssl, and authSource query parameters in the connection string with values appropriate for the cluster.\n"},"name":{"type":"string","description":"Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed. **WARNING** Changing the name will result in destruction of the existing cluster and the creation of a new cluster.\n"},"numShards":{"type":"integer","description":"Selects whether the cluster is a replica set or a sharded cluster. If you use the replicationSpecs parameter, you must set num_shards.\n"},"paused":{"type":"boolean","description":"Flag that indicates whether the cluster is paused or not. You can pause M10 or larger clusters.  You cannot initiate pausing for a shared/tenant tier cluster.  See [Considerations for Paused Clusters](https://docs.atlas.mongodb.com/pause-terminate-cluster/#considerations-for-paused-clusters)  \n**NOTE** Pause lasts for up to 30 days. If you don't resume the cluster within 30 days, Atlas resumes the cluster.  When the cluster resumption happens Terraform will flag the changed state.  If you wish to keep the cluster paused, reapply your Terraform configuration.   If you prefer to allow the automated change of state to unpaused use:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= [paused]\n}`\n"},"pinnedFcv":{"$ref":"#/types/mongodbatlas:index/ClusterPinnedFcv:ClusterPinnedFcv","description":"Pins the Feature Compatibility Version (FCV) to the current MongoDB version with a provided expiration date. To unpin the FCV the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. This operation can take several minutes as the request processes through the MongoDB data plane. Once FCV is unpinned it will not be possible to downgrade the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e. It is advised that updates to \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e are done isolated from other cluster changes. If a plan contains multiple changes, the FCV change will be applied first. If FCV is unpinned past the expiration date the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. The following [knowledge hub article](https://kb.corp.mongodb.com/article/000021785/) and [FCV documentation](https://www.mongodb.com/docs/atlas/tutorial/major-version-change/#manage-feature-compatibility--fcv--during-upgrades) can be referenced for more details. See below.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates if the cluster uses Continuous Cloud Backup. If set to true,\u003cspan pulumi-lang-nodejs=\" cloudBackup \" pulumi-lang-dotnet=\" CloudBackup \" pulumi-lang-go=\" cloudBackup \" pulumi-lang-python=\" cloud_backup \" pulumi-lang-yaml=\" cloudBackup \" pulumi-lang-java=\" cloudBackup \"\u003e cloud_backup \u003c/span\u003emust also be set to true.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create the cluster.\n"},"providerAutoScalingComputeMaxInstanceSize":{"type":"string","description":"Maximum instance size to which your cluster can automatically scale (e.g., M40). Required if `autoScaling.compute.enabled` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"providerAutoScalingComputeMinInstanceSize":{"type":"string","description":"Minimum instance size to which your cluster can automatically scale (e.g., M10). Required if `autoScaling.compute.scaleDownEnabled` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"providerDiskIops":{"type":"integer","description":"The maximum input/output operations per second (IOPS) the system can perform. The possible values depend on the selected \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e.  This setting requires that \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e to be M30 or greater and cannot be used with clusters with local NVMe SSDs.  The default value for \u003cspan pulumi-lang-nodejs=\"`providerDiskIops`\" pulumi-lang-dotnet=\"`ProviderDiskIops`\" pulumi-lang-go=\"`providerDiskIops`\" pulumi-lang-python=\"`provider_disk_iops`\" pulumi-lang-yaml=\"`providerDiskIops`\" pulumi-lang-java=\"`providerDiskIops`\"\u003e`provider_disk_iops`\u003c/span\u003e is the same as the cluster tier's Standard IOPS value, as viewable in the Atlas console.  It is used in cases where a higher number of IOPS is needed and possible.  If a value is submitted that is lower or equal to the default IOPS value for the cluster tier Atlas ignores the requested value and uses the default.  More details available under the providerSettings.diskIOPS parameter: [MongoDB API Clusters](https://docs.atlas.mongodb.com/reference/api/clusters-create-one/)\n* You do not need to configure IOPS for a STANDARD disk configuration but only for a PROVISIONED configuration.\n"},"providerDiskTypeName":{"type":"string","description":"Azure disk type of the server’s root volume. If omitted, Atlas uses the default disk type for the selected providerSettings.instanceSizeName.  Example disk types and associated storage sizes: P4 - 32GB, P6 - 64GB, P10 - 128GB, P15 - 256GB, P20 - 512GB, P30 - 1024GB, P40 - 2048GB, P50 - 4095GB.  More information and the most update to date disk types/storage sizes can be located at https://docs.atlas.mongodb.com/reference/api/clusters-create-one/.\n"},"providerEncryptEbsVolume":{"type":"boolean","description":"**(Deprecated) The Flag is always true.** Flag that indicates whether the Amazon EBS encryption feature encrypts the host's root volume for both data at rest within the volume and for data moving between the volume and the cluster. Note: This setting is always enabled for clusters with local NVMe SSDs. **Atlas encrypts all cluster storage and snapshot volumes, securing all cluster data on disk: a concept known as encryption at rest, by default.**.\n","deprecationMessage":"All EBS volumes are encrypted by default, the option to disable encryption has been removed"},"providerEncryptEbsVolumeFlag":{"type":"boolean"},"providerInstanceSizeName":{"type":"string","description":"Atlas provides different instance sizes, each with a default storage capacity and RAM size. The instance size you select is used for all the data-bearing servers in your cluster. See [Create a Cluster](https://docs.atlas.mongodb.com/reference/api/clusters-create-one/) `providerSettings.instanceSizeName` for valid values and default resources.\n"},"providerName":{"type":"string","description":"Cloud service provider on which the servers are provisioned.\n\nThe possible values are:\n\n- `AWS` - Amazon AWS\n- `GCP` - Google Cloud Platform\n- `AZURE` - Microsoft Azure\n- `TENANT` - A multi-tenant deployment on one of the supported cloud service providers. Only valid when providerSettings.instanceSizeName is M0.\n"},"providerRegionName":{"type":"string","description":"Physical location of your MongoDB cluster. The region you choose can affect network latency for clients accessing your databases.  Requires the **Atlas region name**, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\nDo not specify this field when creating a multi-region cluster using the replicationSpec document or a Global Cluster with the replicationSpecs array.\n"},"providerVolumeType":{"type":"string","description":"The type of the volume. The possible values are: `STANDARD` and `PROVISIONED`.  `PROVISIONED` is ONLY required if setting IOPS higher than the default instance IOPS.\n\u003e **NOTE:** `STANDARD` is not available for NVME clusters.\n"},"redactClientLogData":{"type":"boolean","description":"Flag that enables or disables log redaction, see the [manual](https://www.mongodb.com/docs/manual/administration/monitoring/#log-redaction) for more information. Use this in conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements. **Note**: Changing this setting on a cluster will trigger a rolling restart as soon as the cluster is updated. The log redaction field is updated via an Atlas API call after cluster creation. Consequently, there may be a brief period during resource creation when log redaction is not yet enabled. To ensure complete log redaction from the outset, use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e.\n"},"replicationFactor":{"type":"integer","description":"Number of replica set members. Each member keeps a copy of your databases, providing high availability and data redundancy. The possible values are 3, 5, or 7. The default value is 3.\n"},"replicationSpecs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterReplicationSpec:ClusterReplicationSpec"},"description":"Configuration for cluster regions.  See Replication Spec below for more details.\n"},"retainBackupsEnabled":{"type":"boolean","description":"- (Optional) Set to true to retain backup snapshots for the deleted cluster. This parameter applies to the Delete operation and only affects M10 and above clusters. If you encounter the `CANNOT_DELETE_SNAPSHOT_WITH_BACKUP_COMPLIANCE_POLICY` error code, see how to delete a cluster with Backup Compliance Policy.\n"},"snapshotBackupPolicies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterSnapshotBackupPolicy:ClusterSnapshotBackupPolicy"},"description":"current snapshot schedule and retention settings for the cluster.\n"},"srvAddress":{"type":"string","description":"Connection string for connecting to the Atlas cluster. The +srv modifier forces the connection to use TLS/SSL. See the mongoURI for additional options.\n"},"stateName":{"type":"string","description":"Current state of the cluster. The possible states are:\n- IDLE\n- CREATING\n- UPDATING\n- DELETING\n- DELETED\n- REPAIRING\n"},"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterTag:ClusterTag"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"},"versionReleaseSystem":{"type":"string","description":"Release cadence that Atlas uses for this cluster. This parameter defaults to `LTS`. If you set this field to `CONTINUOUS`, you must omit the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e field. Atlas accepts:\n- `CONTINUOUS`:  Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.\n- `LTS`: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in the mongoDBMajorVersion field. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.\n"}},"required":["acceptDataRisksAndForceReplicaSetReconfig","advancedConfiguration","autoScalingComputeEnabled","autoScalingComputeScaleDownEnabled","autoScalingDiskGbEnabled","backingProviderName","backupEnabled","biConnectorConfig","cloudBackup","clusterId","clusterType","connectionStrings","containerId","diskSizeGb","encryptionAtRestProvider","mongoDbMajorVersion","mongoDbVersion","mongoUri","mongoUriUpdated","mongoUriWithOptions","name","numShards","paused","pitEnabled","projectId","providerAutoScalingComputeMaxInstanceSize","providerAutoScalingComputeMinInstanceSize","providerDiskIops","providerDiskTypeName","providerEncryptEbsVolume","providerEncryptEbsVolumeFlag","providerInstanceSizeName","providerName","providerRegionName","providerVolumeType","redactClientLogData","replicationFactor","replicationSpecs","snapshotBackupPolicies","srvAddress","stateName","terminationProtectionEnabled","versionReleaseSystem"],"inputProperties":{"acceptDataRisksAndForceReplicaSetReconfig":{"type":"string","description":"If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set \u003cspan pulumi-lang-nodejs=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-dotnet=\"`AcceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-go=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-python=\"`accept_data_risks_and_force_replica_set_reconfig`\" pulumi-lang-yaml=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-java=\"`acceptDataRisksAndForceReplicaSetReconfig`\"\u003e`accept_data_risks_and_force_replica_set_reconfig`\u003c/span\u003e to the current date. Learn more about Reconfiguring a Replica Set during a regional outage [here](https://dochub.mongodb.org/core/regional-outage-reconfigure-replica-set).\n"},"advancedConfiguration":{"$ref":"#/types/mongodbatlas:index/ClusterAdvancedConfiguration:ClusterAdvancedConfiguration"},"autoScalingComputeEnabled":{"type":"boolean","description":"Specifies whether cluster tier auto-scaling is enabled. The default is false.\n- Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable cluster tier auto-scaling. If enabled, you must specify a value for `providerSettings.autoScaling.compute.maxInstanceSize`.\n- Set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to disable cluster tier auto-scaling.\n\n\u003e **IMPORTANT:** If \u003cspan pulumi-lang-nodejs=\"`autoScalingComputeEnabled`\" pulumi-lang-dotnet=\"`AutoScalingComputeEnabled`\" pulumi-lang-go=\"`autoScalingComputeEnabled`\" pulumi-lang-python=\"`auto_scaling_compute_enabled`\" pulumi-lang-yaml=\"`autoScalingComputeEnabled`\" pulumi-lang-java=\"`autoScalingComputeEnabled`\"\u003e`auto_scaling_compute_enabled`\u003c/span\u003e is true,  then Atlas will automatically scale up to the maximum provided and down to the minimum, if provided.\nThis will cause the value of \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e returned to potentially be different than what is specified in the Terraform config and if one then applies a plan, not noting this, Terraform will scale the cluster back to the original instanceSizeName value.\nTo prevent this a lifecycle customization should be used, i.e.:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= \u003cspan pulumi-lang-nodejs=\"[providerInstanceSizeName]\" pulumi-lang-dotnet=\"[ProviderInstanceSizeName]\" pulumi-lang-go=\"[providerInstanceSizeName]\" pulumi-lang-python=\"[provider_instance_size_name]\" pulumi-lang-yaml=\"[providerInstanceSizeName]\" pulumi-lang-java=\"[providerInstanceSizeName]\"\u003e[provider_instance_size_name]\u003c/span\u003e\n}`\nBut in order to explicitly change \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e comment the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block and run `pulumi up`. Please ensure to uncomment it to prevent any accidental changes.\n"},"autoScalingComputeScaleDownEnabled":{"type":"boolean","description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable the cluster tier to scale down. This option is only available if `autoScaling.compute.enabled` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n- If this option is enabled, you must specify a value for `providerSettings.autoScaling.compute.minInstanceSize`\n"},"autoScalingDiskGbEnabled":{"type":"boolean","description":"Specifies whether disk auto-scaling is enabled. The default is false.\n- Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable disk auto-scaling.\n- Set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to disable disk auto-scaling.\n\n\u003e **IMPORTANT:** If \u003cspan pulumi-lang-nodejs=\"`autoScalingDiskGbEnabled`\" pulumi-lang-dotnet=\"`AutoScalingDiskGbEnabled`\" pulumi-lang-go=\"`autoScalingDiskGbEnabled`\" pulumi-lang-python=\"`auto_scaling_disk_gb_enabled`\" pulumi-lang-yaml=\"`autoScalingDiskGbEnabled`\" pulumi-lang-java=\"`autoScalingDiskGbEnabled`\"\u003e`auto_scaling_disk_gb_enabled`\u003c/span\u003e is true, then Atlas will automatically scale disk size up and down.\nThis will cause the value of \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e returned to potentially be different than what is specified in the Terraform config and if one then applies a plan, not noting this, Terraform will scale the cluster disk size back to the original \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e value.\nTo prevent this a lifecycle customization should be used, i.e.:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= \u003cspan pulumi-lang-nodejs=\"[diskSizeGb]\" pulumi-lang-dotnet=\"[DiskSizeGb]\" pulumi-lang-go=\"[diskSizeGb]\" pulumi-lang-python=\"[disk_size_gb]\" pulumi-lang-yaml=\"[diskSizeGb]\" pulumi-lang-java=\"[diskSizeGb]\"\u003e[disk_size_gb]\u003c/span\u003e\n}`\nAfter adding the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block to explicitly change \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e comment out the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block and run `pulumi up`. Please be sure to uncomment the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block once done to prevent any accidental changes.\n\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e is set to `TENANT`, the parameter \u003cspan pulumi-lang-nodejs=\"`autoScalingDiskGbEnabled`\" pulumi-lang-dotnet=\"`AutoScalingDiskGbEnabled`\" pulumi-lang-go=\"`autoScalingDiskGbEnabled`\" pulumi-lang-python=\"`auto_scaling_disk_gb_enabled`\" pulumi-lang-yaml=\"`autoScalingDiskGbEnabled`\" pulumi-lang-java=\"`autoScalingDiskGbEnabled`\"\u003e`auto_scaling_disk_gb_enabled`\u003c/span\u003e will be ignored.\n"},"backingProviderName":{"type":"string","description":"Cloud service provider on which the server for a multi-tenant cluster is provisioned.\n\nThis setting is only valid when providerSetting.providerName is TENANT and providerSetting.instanceSizeName is M0.\n\nThe possible values are:\n\n- AWS - Amazon AWS\n- GCP - Google Cloud Platform\n- AZURE - Microsoft Azure\n"},"backupEnabled":{"type":"boolean","description":"Legacy Backup - Set to true to enable Atlas legacy backups for the cluster.\n**Important** - MongoDB deprecated the Legacy Backup feature. Clusters that use Legacy Backup can continue to use it. MongoDB recommends using [Cloud Backups](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/).\n* New Atlas clusters of any type do not support this parameter. These clusters must use Cloud Backup, \u003cspan pulumi-lang-nodejs=\"`cloudBackup`\" pulumi-lang-dotnet=\"`CloudBackup`\" pulumi-lang-go=\"`cloudBackup`\" pulumi-lang-python=\"`cloud_backup`\" pulumi-lang-yaml=\"`cloudBackup`\" pulumi-lang-java=\"`cloudBackup`\"\u003e`cloud_backup`\u003c/span\u003e, to enable Cloud Backup.  If you create a new Atlas cluster and set \u003cspan pulumi-lang-nodejs=\"`backupEnabled`\" pulumi-lang-dotnet=\"`BackupEnabled`\" pulumi-lang-go=\"`backupEnabled`\" pulumi-lang-python=\"`backup_enabled`\" pulumi-lang-yaml=\"`backupEnabled`\" pulumi-lang-java=\"`backupEnabled`\"\u003e`backup_enabled`\u003c/span\u003e to true, the Provider will respond with an error.  This change doesn’t affect existing clusters that use legacy backups.\n* Setting this value to false to disable legacy backups for the cluster will let Atlas delete any stored snapshots. In order to preserve the legacy backups snapshots, disable the legacy backups and enable the cloud backups in the single **pulumi up** action.\n```\nbackup_enabled = \"false\"\ncloud_backup = \"true\"\n```\n* The default value is false. M10 and above only.\n"},"biConnectorConfig":{"$ref":"#/types/mongodbatlas:index/ClusterBiConnectorConfig:ClusterBiConnectorConfig","description":"Specifies BI Connector for Atlas configuration on this cluster. BI Connector for Atlas is only available for M10+ clusters. See BI Connector below for more details.\n"},"cloudBackup":{"type":"boolean","description":"Flag indicating if the cluster uses Cloud Backup for backups.\n\nIf true, the cluster uses Cloud Backup for backups. If\u003cspan pulumi-lang-nodejs=\" cloudBackup \" pulumi-lang-dotnet=\" CloudBackup \" pulumi-lang-go=\" cloudBackup \" pulumi-lang-python=\" cloud_backup \" pulumi-lang-yaml=\" cloudBackup \" pulumi-lang-java=\" cloudBackup \"\u003e cloud_backup \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" backupEnabled \" pulumi-lang-dotnet=\" BackupEnabled \" pulumi-lang-go=\" backupEnabled \" pulumi-lang-python=\" backup_enabled \" pulumi-lang-yaml=\" backupEnabled \" pulumi-lang-java=\" backupEnabled \"\u003e backup_enabled \u003c/span\u003eare false, the cluster does not use Atlas backups.\n\nYou cannot enable cloud backup if you have an existing cluster in the project with legacy backup enabled.\n\n\u003e **IMPORTANT:** If setting to true for an existing cluster or imported cluster be sure to run terraform refresh after applying to enable modification of the Cloud Backup Snapshot Policy going forward.\n"},"clusterType":{"type":"string","description":"Specifies the type of the cluster that you want to modify. You cannot convert a sharded cluster deployment to a replica set deployment.\n\n\u003e **WHEN SHOULD YOU USE CLUSTERTYPE?**\nWhen you set replication_specs, when you are deploying Global Clusters or when you are deploying non-Global replica sets and sharded clusters.\n\nAccepted values include:\n- `REPLICASET` Replica set\n- `SHARDED` Sharded cluster\n- `GEOSHARDED` Global Cluster\n"},"diskSizeGb":{"type":"number","description":"Capacity, in gigabytes, of the host’s root volume. Increase this number to add capacity, up to a maximum possible value of 4096 (i.e., 4 TB). This value must be a positive integer.\n* The minimum disk size for dedicated clusters is 10GB for AWS and GCP. If you specify diskSizeGB with a lower disk size, Atlas defaults to the minimum disk size value.\n* Note: The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require additional storage space beyond this limitation, consider upgrading your cluster to a higher tier.\n* Cannot be used with clusters with local NVMe SSDs\n* Cannot be used with Azure clusters\n"},"encryptionAtRestProvider":{"type":"string","description":"Possible values are AWS, GCP, AZURE or NONE.  Only needed if you desire to manage the keys, see [Encryption at Rest using Customer Key Management](https://docs.atlas.mongodb.com/security-aws-kms/) for complete documentation.  You must configure encryption at rest for the Atlas project before enabling it on any cluster in the project. For complete documentation on configuring Encryption at Rest, see Encryption at Rest using Customer Key Management. Requires M10 or greater. and for legacy backups, backup_enabled, to be false or omitted. **Note: Atlas encrypts all cluster storage and snapshot volumes, securing all cluster data on disk: a concept known as encryption at rest, by default**.\n"},"labels":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterLabel:ClusterLabel"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e instead.\n"},"mongoDbMajorVersion":{"type":"string","description":"Version of the cluster to deploy. Atlas supports all the MongoDB versions that have **not** reached [End of Live](https://www.mongodb.com/legal/support-policy/lifecycles) for M10+ clusters. If omitted, Atlas deploys the cluster with the default version. For more details, see [documentation](https://www.mongodb.com/docs/atlas/reference/faq/database/#which-versions-of-mongodb-do-service-clusters-use-). Atlas always deploys the cluster with the latest stable release of the specified version. See [Release Notes](https://www.mongodb.com/docs/upcoming/release-notes/) for latest Current Stable Release.\n"},"name":{"type":"string","description":"Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed. **WARNING** Changing the name will result in destruction of the existing cluster and the creation of a new cluster.\n","willReplaceOnChanges":true},"numShards":{"type":"integer","description":"Selects whether the cluster is a replica set or a sharded cluster. If you use the replicationSpecs parameter, you must set num_shards.\n"},"paused":{"type":"boolean","description":"Flag that indicates whether the cluster is paused or not. You can pause M10 or larger clusters.  You cannot initiate pausing for a shared/tenant tier cluster.  See [Considerations for Paused Clusters](https://docs.atlas.mongodb.com/pause-terminate-cluster/#considerations-for-paused-clusters)  \n**NOTE** Pause lasts for up to 30 days. If you don't resume the cluster within 30 days, Atlas resumes the cluster.  When the cluster resumption happens Terraform will flag the changed state.  If you wish to keep the cluster paused, reapply your Terraform configuration.   If you prefer to allow the automated change of state to unpaused use:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= [paused]\n}`\n"},"pinnedFcv":{"$ref":"#/types/mongodbatlas:index/ClusterPinnedFcv:ClusterPinnedFcv","description":"Pins the Feature Compatibility Version (FCV) to the current MongoDB version with a provided expiration date. To unpin the FCV the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. This operation can take several minutes as the request processes through the MongoDB data plane. Once FCV is unpinned it will not be possible to downgrade the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e. It is advised that updates to \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e are done isolated from other cluster changes. If a plan contains multiple changes, the FCV change will be applied first. If FCV is unpinned past the expiration date the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. The following [knowledge hub article](https://kb.corp.mongodb.com/article/000021785/) and [FCV documentation](https://www.mongodb.com/docs/atlas/tutorial/major-version-change/#manage-feature-compatibility--fcv--during-upgrades) can be referenced for more details. See below.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates if the cluster uses Continuous Cloud Backup. If set to true,\u003cspan pulumi-lang-nodejs=\" cloudBackup \" pulumi-lang-dotnet=\" CloudBackup \" pulumi-lang-go=\" cloudBackup \" pulumi-lang-python=\" cloud_backup \" pulumi-lang-yaml=\" cloudBackup \" pulumi-lang-java=\" cloudBackup \"\u003e cloud_backup \u003c/span\u003emust also be set to true.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create the cluster.\n","willReplaceOnChanges":true},"providerAutoScalingComputeMaxInstanceSize":{"type":"string","description":"Maximum instance size to which your cluster can automatically scale (e.g., M40). Required if `autoScaling.compute.enabled` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"providerAutoScalingComputeMinInstanceSize":{"type":"string","description":"Minimum instance size to which your cluster can automatically scale (e.g., M10). Required if `autoScaling.compute.scaleDownEnabled` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"providerDiskIops":{"type":"integer","description":"The maximum input/output operations per second (IOPS) the system can perform. The possible values depend on the selected \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e.  This setting requires that \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e to be M30 or greater and cannot be used with clusters with local NVMe SSDs.  The default value for \u003cspan pulumi-lang-nodejs=\"`providerDiskIops`\" pulumi-lang-dotnet=\"`ProviderDiskIops`\" pulumi-lang-go=\"`providerDiskIops`\" pulumi-lang-python=\"`provider_disk_iops`\" pulumi-lang-yaml=\"`providerDiskIops`\" pulumi-lang-java=\"`providerDiskIops`\"\u003e`provider_disk_iops`\u003c/span\u003e is the same as the cluster tier's Standard IOPS value, as viewable in the Atlas console.  It is used in cases where a higher number of IOPS is needed and possible.  If a value is submitted that is lower or equal to the default IOPS value for the cluster tier Atlas ignores the requested value and uses the default.  More details available under the providerSettings.diskIOPS parameter: [MongoDB API Clusters](https://docs.atlas.mongodb.com/reference/api/clusters-create-one/)\n* You do not need to configure IOPS for a STANDARD disk configuration but only for a PROVISIONED configuration.\n"},"providerDiskTypeName":{"type":"string","description":"Azure disk type of the server’s root volume. If omitted, Atlas uses the default disk type for the selected providerSettings.instanceSizeName.  Example disk types and associated storage sizes: P4 - 32GB, P6 - 64GB, P10 - 128GB, P15 - 256GB, P20 - 512GB, P30 - 1024GB, P40 - 2048GB, P50 - 4095GB.  More information and the most update to date disk types/storage sizes can be located at https://docs.atlas.mongodb.com/reference/api/clusters-create-one/.\n"},"providerEncryptEbsVolume":{"type":"boolean","description":"**(Deprecated) The Flag is always true.** Flag that indicates whether the Amazon EBS encryption feature encrypts the host's root volume for both data at rest within the volume and for data moving between the volume and the cluster. Note: This setting is always enabled for clusters with local NVMe SSDs. **Atlas encrypts all cluster storage and snapshot volumes, securing all cluster data on disk: a concept known as encryption at rest, by default.**.\n","deprecationMessage":"All EBS volumes are encrypted by default, the option to disable encryption has been removed"},"providerInstanceSizeName":{"type":"string","description":"Atlas provides different instance sizes, each with a default storage capacity and RAM size. The instance size you select is used for all the data-bearing servers in your cluster. See [Create a Cluster](https://docs.atlas.mongodb.com/reference/api/clusters-create-one/) `providerSettings.instanceSizeName` for valid values and default resources.\n"},"providerName":{"type":"string","description":"Cloud service provider on which the servers are provisioned.\n\nThe possible values are:\n\n- `AWS` - Amazon AWS\n- `GCP` - Google Cloud Platform\n- `AZURE` - Microsoft Azure\n- `TENANT` - A multi-tenant deployment on one of the supported cloud service providers. Only valid when providerSettings.instanceSizeName is M0.\n"},"providerRegionName":{"type":"string","description":"Physical location of your MongoDB cluster. The region you choose can affect network latency for clients accessing your databases.  Requires the **Atlas region name**, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\nDo not specify this field when creating a multi-region cluster using the replicationSpec document or a Global Cluster with the replicationSpecs array.\n"},"providerVolumeType":{"type":"string","description":"The type of the volume. The possible values are: `STANDARD` and `PROVISIONED`.  `PROVISIONED` is ONLY required if setting IOPS higher than the default instance IOPS.\n\u003e **NOTE:** `STANDARD` is not available for NVME clusters.\n"},"redactClientLogData":{"type":"boolean","description":"Flag that enables or disables log redaction, see the [manual](https://www.mongodb.com/docs/manual/administration/monitoring/#log-redaction) for more information. Use this in conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements. **Note**: Changing this setting on a cluster will trigger a rolling restart as soon as the cluster is updated. The log redaction field is updated via an Atlas API call after cluster creation. Consequently, there may be a brief period during resource creation when log redaction is not yet enabled. To ensure complete log redaction from the outset, use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e.\n"},"replicationFactor":{"type":"integer","description":"Number of replica set members. Each member keeps a copy of your databases, providing high availability and data redundancy. The possible values are 3, 5, or 7. The default value is 3.\n"},"replicationSpecs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterReplicationSpec:ClusterReplicationSpec"},"description":"Configuration for cluster regions.  See Replication Spec below for more details.\n"},"retainBackupsEnabled":{"type":"boolean","description":"- (Optional) Set to true to retain backup snapshots for the deleted cluster. This parameter applies to the Delete operation and only affects M10 and above clusters. If you encounter the `CANNOT_DELETE_SNAPSHOT_WITH_BACKUP_COMPLIANCE_POLICY` error code, see how to delete a cluster with Backup Compliance Policy.\n"},"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterTag:ClusterTag"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"},"versionReleaseSystem":{"type":"string","description":"Release cadence that Atlas uses for this cluster. This parameter defaults to `LTS`. If you set this field to `CONTINUOUS`, you must omit the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e field. Atlas accepts:\n- `CONTINUOUS`:  Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.\n- `LTS`: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in the mongoDBMajorVersion field. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.\n"}},"requiredInputs":["projectId","providerInstanceSizeName","providerName"],"stateInputs":{"description":"Input properties used for looking up and filtering Cluster resources.\n","properties":{"acceptDataRisksAndForceReplicaSetReconfig":{"type":"string","description":"If reconfiguration is necessary to regain a primary due to a regional outage, submit this field alongside your topology reconfiguration to request a new regional outage resistant topology. Forced reconfigurations during an outage of the majority of electable nodes carry a risk of data loss if replicated writes (even majority committed writes) have not been replicated to the new primary node. MongoDB Atlas docs contain more information. To proceed with an operation which carries that risk, set \u003cspan pulumi-lang-nodejs=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-dotnet=\"`AcceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-go=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-python=\"`accept_data_risks_and_force_replica_set_reconfig`\" pulumi-lang-yaml=\"`acceptDataRisksAndForceReplicaSetReconfig`\" pulumi-lang-java=\"`acceptDataRisksAndForceReplicaSetReconfig`\"\u003e`accept_data_risks_and_force_replica_set_reconfig`\u003c/span\u003e to the current date. Learn more about Reconfiguring a Replica Set during a regional outage [here](https://dochub.mongodb.org/core/regional-outage-reconfigure-replica-set).\n"},"advancedConfiguration":{"$ref":"#/types/mongodbatlas:index/ClusterAdvancedConfiguration:ClusterAdvancedConfiguration"},"autoScalingComputeEnabled":{"type":"boolean","description":"Specifies whether cluster tier auto-scaling is enabled. The default is false.\n- Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable cluster tier auto-scaling. If enabled, you must specify a value for `providerSettings.autoScaling.compute.maxInstanceSize`.\n- Set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to disable cluster tier auto-scaling.\n\n\u003e **IMPORTANT:** If \u003cspan pulumi-lang-nodejs=\"`autoScalingComputeEnabled`\" pulumi-lang-dotnet=\"`AutoScalingComputeEnabled`\" pulumi-lang-go=\"`autoScalingComputeEnabled`\" pulumi-lang-python=\"`auto_scaling_compute_enabled`\" pulumi-lang-yaml=\"`autoScalingComputeEnabled`\" pulumi-lang-java=\"`autoScalingComputeEnabled`\"\u003e`auto_scaling_compute_enabled`\u003c/span\u003e is true,  then Atlas will automatically scale up to the maximum provided and down to the minimum, if provided.\nThis will cause the value of \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e returned to potentially be different than what is specified in the Terraform config and if one then applies a plan, not noting this, Terraform will scale the cluster back to the original instanceSizeName value.\nTo prevent this a lifecycle customization should be used, i.e.:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= \u003cspan pulumi-lang-nodejs=\"[providerInstanceSizeName]\" pulumi-lang-dotnet=\"[ProviderInstanceSizeName]\" pulumi-lang-go=\"[providerInstanceSizeName]\" pulumi-lang-python=\"[provider_instance_size_name]\" pulumi-lang-yaml=\"[providerInstanceSizeName]\" pulumi-lang-java=\"[providerInstanceSizeName]\"\u003e[provider_instance_size_name]\u003c/span\u003e\n}`\nBut in order to explicitly change \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e comment the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block and run `pulumi up`. Please ensure to uncomment it to prevent any accidental changes.\n"},"autoScalingComputeScaleDownEnabled":{"type":"boolean","description":"Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable the cluster tier to scale down. This option is only available if `autoScaling.compute.enabled` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n- If this option is enabled, you must specify a value for `providerSettings.autoScaling.compute.minInstanceSize`\n"},"autoScalingDiskGbEnabled":{"type":"boolean","description":"Specifies whether disk auto-scaling is enabled. The default is false.\n- Set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to enable disk auto-scaling.\n- Set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e to disable disk auto-scaling.\n\n\u003e **IMPORTANT:** If \u003cspan pulumi-lang-nodejs=\"`autoScalingDiskGbEnabled`\" pulumi-lang-dotnet=\"`AutoScalingDiskGbEnabled`\" pulumi-lang-go=\"`autoScalingDiskGbEnabled`\" pulumi-lang-python=\"`auto_scaling_disk_gb_enabled`\" pulumi-lang-yaml=\"`autoScalingDiskGbEnabled`\" pulumi-lang-java=\"`autoScalingDiskGbEnabled`\"\u003e`auto_scaling_disk_gb_enabled`\u003c/span\u003e is true, then Atlas will automatically scale disk size up and down.\nThis will cause the value of \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e returned to potentially be different than what is specified in the Terraform config and if one then applies a plan, not noting this, Terraform will scale the cluster disk size back to the original \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e value.\nTo prevent this a lifecycle customization should be used, i.e.:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= \u003cspan pulumi-lang-nodejs=\"[diskSizeGb]\" pulumi-lang-dotnet=\"[DiskSizeGb]\" pulumi-lang-go=\"[diskSizeGb]\" pulumi-lang-python=\"[disk_size_gb]\" pulumi-lang-yaml=\"[diskSizeGb]\" pulumi-lang-java=\"[diskSizeGb]\"\u003e[disk_size_gb]\u003c/span\u003e\n}`\nAfter adding the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block to explicitly change \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e comment out the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block and run `pulumi up`. Please be sure to uncomment the \u003cspan pulumi-lang-nodejs=\"`lifecycle`\" pulumi-lang-dotnet=\"`Lifecycle`\" pulumi-lang-go=\"`lifecycle`\" pulumi-lang-python=\"`lifecycle`\" pulumi-lang-yaml=\"`lifecycle`\" pulumi-lang-java=\"`lifecycle`\"\u003e`lifecycle`\u003c/span\u003e block once done to prevent any accidental changes.\n\n\u003e **NOTE:** If \u003cspan pulumi-lang-nodejs=\"`providerName`\" pulumi-lang-dotnet=\"`ProviderName`\" pulumi-lang-go=\"`providerName`\" pulumi-lang-python=\"`provider_name`\" pulumi-lang-yaml=\"`providerName`\" pulumi-lang-java=\"`providerName`\"\u003e`provider_name`\u003c/span\u003e is set to `TENANT`, the parameter \u003cspan pulumi-lang-nodejs=\"`autoScalingDiskGbEnabled`\" pulumi-lang-dotnet=\"`AutoScalingDiskGbEnabled`\" pulumi-lang-go=\"`autoScalingDiskGbEnabled`\" pulumi-lang-python=\"`auto_scaling_disk_gb_enabled`\" pulumi-lang-yaml=\"`autoScalingDiskGbEnabled`\" pulumi-lang-java=\"`autoScalingDiskGbEnabled`\"\u003e`auto_scaling_disk_gb_enabled`\u003c/span\u003e will be ignored.\n"},"backingProviderName":{"type":"string","description":"Cloud service provider on which the server for a multi-tenant cluster is provisioned.\n\nThis setting is only valid when providerSetting.providerName is TENANT and providerSetting.instanceSizeName is M0.\n\nThe possible values are:\n\n- AWS - Amazon AWS\n- GCP - Google Cloud Platform\n- AZURE - Microsoft Azure\n"},"backupEnabled":{"type":"boolean","description":"Legacy Backup - Set to true to enable Atlas legacy backups for the cluster.\n**Important** - MongoDB deprecated the Legacy Backup feature. Clusters that use Legacy Backup can continue to use it. MongoDB recommends using [Cloud Backups](https://docs.atlas.mongodb.com/backup/cloud-backup/overview/).\n* New Atlas clusters of any type do not support this parameter. These clusters must use Cloud Backup, \u003cspan pulumi-lang-nodejs=\"`cloudBackup`\" pulumi-lang-dotnet=\"`CloudBackup`\" pulumi-lang-go=\"`cloudBackup`\" pulumi-lang-python=\"`cloud_backup`\" pulumi-lang-yaml=\"`cloudBackup`\" pulumi-lang-java=\"`cloudBackup`\"\u003e`cloud_backup`\u003c/span\u003e, to enable Cloud Backup.  If you create a new Atlas cluster and set \u003cspan pulumi-lang-nodejs=\"`backupEnabled`\" pulumi-lang-dotnet=\"`BackupEnabled`\" pulumi-lang-go=\"`backupEnabled`\" pulumi-lang-python=\"`backup_enabled`\" pulumi-lang-yaml=\"`backupEnabled`\" pulumi-lang-java=\"`backupEnabled`\"\u003e`backup_enabled`\u003c/span\u003e to true, the Provider will respond with an error.  This change doesn’t affect existing clusters that use legacy backups.\n* Setting this value to false to disable legacy backups for the cluster will let Atlas delete any stored snapshots. In order to preserve the legacy backups snapshots, disable the legacy backups and enable the cloud backups in the single **pulumi up** action.\n```\nbackup_enabled = \"false\"\ncloud_backup = \"true\"\n```\n* The default value is false. M10 and above only.\n"},"biConnectorConfig":{"$ref":"#/types/mongodbatlas:index/ClusterBiConnectorConfig:ClusterBiConnectorConfig","description":"Specifies BI Connector for Atlas configuration on this cluster. BI Connector for Atlas is only available for M10+ clusters. See BI Connector below for more details.\n"},"cloudBackup":{"type":"boolean","description":"Flag indicating if the cluster uses Cloud Backup for backups.\n\nIf true, the cluster uses Cloud Backup for backups. If\u003cspan pulumi-lang-nodejs=\" cloudBackup \" pulumi-lang-dotnet=\" CloudBackup \" pulumi-lang-go=\" cloudBackup \" pulumi-lang-python=\" cloud_backup \" pulumi-lang-yaml=\" cloudBackup \" pulumi-lang-java=\" cloudBackup \"\u003e cloud_backup \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" backupEnabled \" pulumi-lang-dotnet=\" BackupEnabled \" pulumi-lang-go=\" backupEnabled \" pulumi-lang-python=\" backup_enabled \" pulumi-lang-yaml=\" backupEnabled \" pulumi-lang-java=\" backupEnabled \"\u003e backup_enabled \u003c/span\u003eare false, the cluster does not use Atlas backups.\n\nYou cannot enable cloud backup if you have an existing cluster in the project with legacy backup enabled.\n\n\u003e **IMPORTANT:** If setting to true for an existing cluster or imported cluster be sure to run terraform refresh after applying to enable modification of the Cloud Backup Snapshot Policy going forward.\n"},"clusterId":{"type":"string","description":"The cluster ID.\n"},"clusterType":{"type":"string","description":"Specifies the type of the cluster that you want to modify. You cannot convert a sharded cluster deployment to a replica set deployment.\n\n\u003e **WHEN SHOULD YOU USE CLUSTERTYPE?**\nWhen you set replication_specs, when you are deploying Global Clusters or when you are deploying non-Global replica sets and sharded clusters.\n\nAccepted values include:\n- `REPLICASET` Replica set\n- `SHARDED` Sharded cluster\n- `GEOSHARDED` Global Cluster\n"},"connectionStrings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterConnectionString:ClusterConnectionString"},"description":"Set of connection strings that your applications use to connect to this cluster. More information in [Connection-strings](https://docs.mongodb.com/manual/reference/connection-string/). Use the parameters in this object to connect your applications to this cluster. To learn more about the formats of connection strings, see [Connection String Options](https://docs.atlas.mongodb.com/reference/faq/connection-changes/). NOTE: Atlas returns the contents of this object after the cluster is operational, not while it builds the cluster.\n"},"containerId":{"type":"string","description":"The Container ID is the id of the container created when the first cluster in the region (AWS/Azure) or project (GCP) was created.\n"},"diskSizeGb":{"type":"number","description":"Capacity, in gigabytes, of the host’s root volume. Increase this number to add capacity, up to a maximum possible value of 4096 (i.e., 4 TB). This value must be a positive integer.\n* The minimum disk size for dedicated clusters is 10GB for AWS and GCP. If you specify diskSizeGB with a lower disk size, Atlas defaults to the minimum disk size value.\n* Note: The maximum value for disk storage cannot exceed 50 times the maximum RAM for the selected cluster. If you require additional storage space beyond this limitation, consider upgrading your cluster to a higher tier.\n* Cannot be used with clusters with local NVMe SSDs\n* Cannot be used with Azure clusters\n"},"encryptionAtRestProvider":{"type":"string","description":"Possible values are AWS, GCP, AZURE or NONE.  Only needed if you desire to manage the keys, see [Encryption at Rest using Customer Key Management](https://docs.atlas.mongodb.com/security-aws-kms/) for complete documentation.  You must configure encryption at rest for the Atlas project before enabling it on any cluster in the project. For complete documentation on configuring Encryption at Rest, see Encryption at Rest using Customer Key Management. Requires M10 or greater. and for legacy backups, backup_enabled, to be false or omitted. **Note: Atlas encrypts all cluster storage and snapshot volumes, securing all cluster data on disk: a concept known as encryption at rest, by default**.\n"},"labels":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterLabel:ClusterLabel"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e instead.\n"},"mongoDbMajorVersion":{"type":"string","description":"Version of the cluster to deploy. Atlas supports all the MongoDB versions that have **not** reached [End of Live](https://www.mongodb.com/legal/support-policy/lifecycles) for M10+ clusters. If omitted, Atlas deploys the cluster with the default version. For more details, see [documentation](https://www.mongodb.com/docs/atlas/reference/faq/database/#which-versions-of-mongodb-do-service-clusters-use-). Atlas always deploys the cluster with the latest stable release of the specified version. See [Release Notes](https://www.mongodb.com/docs/upcoming/release-notes/) for latest Current Stable Release.\n"},"mongoDbVersion":{"type":"string","description":"Version of MongoDB the cluster runs, in `major-version`.`minor-version` format.\n"},"mongoUri":{"type":"string","description":"Base connection string for the cluster. Atlas only displays this field after the cluster is operational, not while it builds the cluster.\n"},"mongoUriUpdated":{"type":"string","description":"Lists when the connection string was last updated. The connection string changes, for example, if you change a replica set to a sharded cluster.\n"},"mongoUriWithOptions":{"type":"string","description":"connection string for connecting to the Atlas cluster. Includes the replicaSet, ssl, and authSource query parameters in the connection string with values appropriate for the cluster.\n"},"name":{"type":"string","description":"Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed. **WARNING** Changing the name will result in destruction of the existing cluster and the creation of a new cluster.\n","willReplaceOnChanges":true},"numShards":{"type":"integer","description":"Selects whether the cluster is a replica set or a sharded cluster. If you use the replicationSpecs parameter, you must set num_shards.\n"},"paused":{"type":"boolean","description":"Flag that indicates whether the cluster is paused or not. You can pause M10 or larger clusters.  You cannot initiate pausing for a shared/tenant tier cluster.  See [Considerations for Paused Clusters](https://docs.atlas.mongodb.com/pause-terminate-cluster/#considerations-for-paused-clusters)  \n**NOTE** Pause lasts for up to 30 days. If you don't resume the cluster within 30 days, Atlas resumes the cluster.  When the cluster resumption happens Terraform will flag the changed state.  If you wish to keep the cluster paused, reapply your Terraform configuration.   If you prefer to allow the automated change of state to unpaused use:\n`lifecycle {\u003cspan pulumi-lang-nodejs=\"\nignoreChanges \" pulumi-lang-dotnet=\"\nIgnoreChanges \" pulumi-lang-go=\"\nignoreChanges \" pulumi-lang-python=\"\nignore_changes \" pulumi-lang-yaml=\"\nignoreChanges \" pulumi-lang-java=\"\nignoreChanges \"\u003e\nignore_changes \u003c/span\u003e= [paused]\n}`\n"},"pinnedFcv":{"$ref":"#/types/mongodbatlas:index/ClusterPinnedFcv:ClusterPinnedFcv","description":"Pins the Feature Compatibility Version (FCV) to the current MongoDB version with a provided expiration date. To unpin the FCV the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. This operation can take several minutes as the request processes through the MongoDB data plane. Once FCV is unpinned it will not be possible to downgrade the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e. It is advised that updates to \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e are done isolated from other cluster changes. If a plan contains multiple changes, the FCV change will be applied first. If FCV is unpinned past the expiration date the \u003cspan pulumi-lang-nodejs=\"`pinnedFcv`\" pulumi-lang-dotnet=\"`PinnedFcv`\" pulumi-lang-go=\"`pinnedFcv`\" pulumi-lang-python=\"`pinned_fcv`\" pulumi-lang-yaml=\"`pinnedFcv`\" pulumi-lang-java=\"`pinnedFcv`\"\u003e`pinned_fcv`\u003c/span\u003e attribute must be removed. The following [knowledge hub article](https://kb.corp.mongodb.com/article/000021785/) and [FCV documentation](https://www.mongodb.com/docs/atlas/tutorial/major-version-change/#manage-feature-compatibility--fcv--during-upgrades) can be referenced for more details. See below.\n"},"pitEnabled":{"type":"boolean","description":"Flag that indicates if the cluster uses Continuous Cloud Backup. If set to true,\u003cspan pulumi-lang-nodejs=\" cloudBackup \" pulumi-lang-dotnet=\" CloudBackup \" pulumi-lang-go=\" cloudBackup \" pulumi-lang-python=\" cloud_backup \" pulumi-lang-yaml=\" cloudBackup \" pulumi-lang-java=\" cloudBackup \"\u003e cloud_backup \u003c/span\u003emust also be set to true.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create the cluster.\n","willReplaceOnChanges":true},"providerAutoScalingComputeMaxInstanceSize":{"type":"string","description":"Maximum instance size to which your cluster can automatically scale (e.g., M40). Required if `autoScaling.compute.enabled` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"providerAutoScalingComputeMinInstanceSize":{"type":"string","description":"Minimum instance size to which your cluster can automatically scale (e.g., M10). Required if `autoScaling.compute.scaleDownEnabled` is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"providerDiskIops":{"type":"integer","description":"The maximum input/output operations per second (IOPS) the system can perform. The possible values depend on the selected \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`diskSizeGb`\" pulumi-lang-dotnet=\"`DiskSizeGb`\" pulumi-lang-go=\"`diskSizeGb`\" pulumi-lang-python=\"`disk_size_gb`\" pulumi-lang-yaml=\"`diskSizeGb`\" pulumi-lang-java=\"`diskSizeGb`\"\u003e`disk_size_gb`\u003c/span\u003e.  This setting requires that \u003cspan pulumi-lang-nodejs=\"`providerInstanceSizeName`\" pulumi-lang-dotnet=\"`ProviderInstanceSizeName`\" pulumi-lang-go=\"`providerInstanceSizeName`\" pulumi-lang-python=\"`provider_instance_size_name`\" pulumi-lang-yaml=\"`providerInstanceSizeName`\" pulumi-lang-java=\"`providerInstanceSizeName`\"\u003e`provider_instance_size_name`\u003c/span\u003e to be M30 or greater and cannot be used with clusters with local NVMe SSDs.  The default value for \u003cspan pulumi-lang-nodejs=\"`providerDiskIops`\" pulumi-lang-dotnet=\"`ProviderDiskIops`\" pulumi-lang-go=\"`providerDiskIops`\" pulumi-lang-python=\"`provider_disk_iops`\" pulumi-lang-yaml=\"`providerDiskIops`\" pulumi-lang-java=\"`providerDiskIops`\"\u003e`provider_disk_iops`\u003c/span\u003e is the same as the cluster tier's Standard IOPS value, as viewable in the Atlas console.  It is used in cases where a higher number of IOPS is needed and possible.  If a value is submitted that is lower or equal to the default IOPS value for the cluster tier Atlas ignores the requested value and uses the default.  More details available under the providerSettings.diskIOPS parameter: [MongoDB API Clusters](https://docs.atlas.mongodb.com/reference/api/clusters-create-one/)\n* You do not need to configure IOPS for a STANDARD disk configuration but only for a PROVISIONED configuration.\n"},"providerDiskTypeName":{"type":"string","description":"Azure disk type of the server’s root volume. If omitted, Atlas uses the default disk type for the selected providerSettings.instanceSizeName.  Example disk types and associated storage sizes: P4 - 32GB, P6 - 64GB, P10 - 128GB, P15 - 256GB, P20 - 512GB, P30 - 1024GB, P40 - 2048GB, P50 - 4095GB.  More information and the most update to date disk types/storage sizes can be located at https://docs.atlas.mongodb.com/reference/api/clusters-create-one/.\n"},"providerEncryptEbsVolume":{"type":"boolean","description":"**(Deprecated) The Flag is always true.** Flag that indicates whether the Amazon EBS encryption feature encrypts the host's root volume for both data at rest within the volume and for data moving between the volume and the cluster. Note: This setting is always enabled for clusters with local NVMe SSDs. **Atlas encrypts all cluster storage and snapshot volumes, securing all cluster data on disk: a concept known as encryption at rest, by default.**.\n","deprecationMessage":"All EBS volumes are encrypted by default, the option to disable encryption has been removed"},"providerEncryptEbsVolumeFlag":{"type":"boolean"},"providerInstanceSizeName":{"type":"string","description":"Atlas provides different instance sizes, each with a default storage capacity and RAM size. The instance size you select is used for all the data-bearing servers in your cluster. See [Create a Cluster](https://docs.atlas.mongodb.com/reference/api/clusters-create-one/) `providerSettings.instanceSizeName` for valid values and default resources.\n"},"providerName":{"type":"string","description":"Cloud service provider on which the servers are provisioned.\n\nThe possible values are:\n\n- `AWS` - Amazon AWS\n- `GCP` - Google Cloud Platform\n- `AZURE` - Microsoft Azure\n- `TENANT` - A multi-tenant deployment on one of the supported cloud service providers. Only valid when providerSettings.instanceSizeName is M0.\n"},"providerRegionName":{"type":"string","description":"Physical location of your MongoDB cluster. The region you choose can affect network latency for clients accessing your databases.  Requires the **Atlas region name**, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\nDo not specify this field when creating a multi-region cluster using the replicationSpec document or a Global Cluster with the replicationSpecs array.\n"},"providerVolumeType":{"type":"string","description":"The type of the volume. The possible values are: `STANDARD` and `PROVISIONED`.  `PROVISIONED` is ONLY required if setting IOPS higher than the default instance IOPS.\n\u003e **NOTE:** `STANDARD` is not available for NVME clusters.\n"},"redactClientLogData":{"type":"boolean","description":"Flag that enables or disables log redaction, see the [manual](https://www.mongodb.com/docs/manual/administration/monitoring/#log-redaction) for more information. Use this in conjunction with Encryption at Rest and TLS/SSL (Transport Encryption) to assist compliance with regulatory requirements. **Note**: Changing this setting on a cluster will trigger a rolling restart as soon as the cluster is updated. The log redaction field is updated via an Atlas API call after cluster creation. Consequently, there may be a brief period during resource creation when log redaction is not yet enabled. To ensure complete log redaction from the outset, use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e.\n"},"replicationFactor":{"type":"integer","description":"Number of replica set members. Each member keeps a copy of your databases, providing high availability and data redundancy. The possible values are 3, 5, or 7. The default value is 3.\n"},"replicationSpecs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterReplicationSpec:ClusterReplicationSpec"},"description":"Configuration for cluster regions.  See Replication Spec below for more details.\n"},"retainBackupsEnabled":{"type":"boolean","description":"- (Optional) Set to true to retain backup snapshots for the deleted cluster. This parameter applies to the Delete operation and only affects M10 and above clusters. If you encounter the `CANNOT_DELETE_SNAPSHOT_WITH_BACKUP_COMPLIANCE_POLICY` error code, see how to delete a cluster with Backup Compliance Policy.\n"},"snapshotBackupPolicies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterSnapshotBackupPolicy:ClusterSnapshotBackupPolicy"},"description":"current snapshot schedule and retention settings for the cluster.\n"},"srvAddress":{"type":"string","description":"Connection string for connecting to the Atlas cluster. The +srv modifier forces the connection to use TLS/SSL. See the mongoURI for additional options.\n"},"stateName":{"type":"string","description":"Current state of the cluster. The possible states are:\n- IDLE\n- CREATING\n- UPDATING\n- DELETING\n- DELETED\n- REPAIRING\n"},"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterTag:ClusterTag"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"},"versionReleaseSystem":{"type":"string","description":"Release cadence that Atlas uses for this cluster. This parameter defaults to `LTS`. If you set this field to `CONTINUOUS`, you must omit the \u003cspan pulumi-lang-nodejs=\"`mongoDbMajorVersion`\" pulumi-lang-dotnet=\"`MongoDbMajorVersion`\" pulumi-lang-go=\"`mongoDbMajorVersion`\" pulumi-lang-python=\"`mongo_db_major_version`\" pulumi-lang-yaml=\"`mongoDbMajorVersion`\" pulumi-lang-java=\"`mongoDbMajorVersion`\"\u003e`mongo_db_major_version`\u003c/span\u003e field. Atlas accepts:\n- `CONTINUOUS`:  Atlas creates your cluster using the most recent MongoDB release. Atlas automatically updates your cluster to the latest major and rapid MongoDB releases as they become available.\n- `LTS`: Atlas creates your cluster using the latest patch release of the MongoDB version that you specify in the mongoDBMajorVersion field. Atlas automatically updates your cluster to subsequent patch releases of this MongoDB version. Atlas doesn't update your cluster to newer rapid or major MongoDB releases as they become available.\n"}},"type":"object"}},"mongodbatlas:index/clusterOutageSimulation:ClusterOutageSimulation":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ClusterOutageSimulation`\" pulumi-lang-dotnet=\"`mongodbatlas.ClusterOutageSimulation`\" pulumi-lang-go=\"`ClusterOutageSimulation`\" pulumi-lang-python=\"`ClusterOutageSimulation`\" pulumi-lang-yaml=\"`mongodbatlas.ClusterOutageSimulation`\" pulumi-lang-java=\"`mongodbatlas.ClusterOutageSimulation`\"\u003e`mongodbatlas.ClusterOutageSimulation`\u003c/span\u003e provides a Cluster Outage Simulation resource. For more details see https://www.mongodb.com/docs/atlas/tutorial/test-resilience/simulate-regional-outage/\n\nTest Outage on Minority of Electable Nodes - Select fewer than half of your electable nodes. \n\nTest Outage on Majority of Electable Nodes - Select at least one more than half of your electable nodes and keep at least one electable node remaining. \n\n**IMPORTANT:** Test Outage on Majority of Electable Nodes will leave the Atlas cluster without a majority quorum. There will be no primary so write operations will not succeed, and reads will succeed only when configured with a suitable [readPreference](https://www.mongodb.com/docs/manual/core/read-preference/). To recover the majority quorum, you will have the option to manually reconfigure your cluster by adding new nodes to existing regions or adding new regions at the risk of losing recent writes, or end the simulation.   \n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\u003e **IMPORTANT:** This resource cannot be updated.\n\u003e **IMPORTANT:** An existing Cluster Outage Simulation cannot be imported as this resource does not support import operation.\n\n## Example Usage\n\n### S\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst outageSimulation = new mongodbatlas.ClusterOutageSimulation(\"outage_simulation\", {\n    projectId: \"64707f06c519c20c3a2b1b03\",\n    clusterName: \"Cluster0\",\n    outageFilters: [\n        {\n            cloudProvider: \"AWS\",\n            regionName: \"US_EAST_1\",\n        },\n        {\n            cloudProvider: \"AWS\",\n            regionName: \"US_EAST_2\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\noutage_simulation = mongodbatlas.ClusterOutageSimulation(\"outage_simulation\",\n    project_id=\"64707f06c519c20c3a2b1b03\",\n    cluster_name=\"Cluster0\",\n    outage_filters=[\n        {\n            \"cloud_provider\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n        },\n        {\n            \"cloud_provider\": \"AWS\",\n            \"region_name\": \"US_EAST_2\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var outageSimulation = new Mongodbatlas.ClusterOutageSimulation(\"outage_simulation\", new()\n    {\n        ProjectId = \"64707f06c519c20c3a2b1b03\",\n        ClusterName = \"Cluster0\",\n        OutageFilters = new[]\n        {\n            new Mongodbatlas.Inputs.ClusterOutageSimulationOutageFilterArgs\n            {\n                CloudProvider = \"AWS\",\n                RegionName = \"US_EAST_1\",\n            },\n            new Mongodbatlas.Inputs.ClusterOutageSimulationOutageFilterArgs\n            {\n                CloudProvider = \"AWS\",\n                RegionName = \"US_EAST_2\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewClusterOutageSimulation(ctx, \"outage_simulation\", \u0026mongodbatlas.ClusterOutageSimulationArgs{\n\t\t\tProjectId:   pulumi.String(\"64707f06c519c20c3a2b1b03\"),\n\t\t\tClusterName: pulumi.String(\"Cluster0\"),\n\t\t\tOutageFilters: mongodbatlas.ClusterOutageSimulationOutageFilterArray{\n\t\t\t\t\u0026mongodbatlas.ClusterOutageSimulationOutageFilterArgs{\n\t\t\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\t\t\tRegionName:    pulumi.String(\"US_EAST_1\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.ClusterOutageSimulationOutageFilterArgs{\n\t\t\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\t\t\tRegionName:    pulumi.String(\"US_EAST_2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ClusterOutageSimulation;\nimport com.pulumi.mongodbatlas.ClusterOutageSimulationArgs;\nimport com.pulumi.mongodbatlas.inputs.ClusterOutageSimulationOutageFilterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var outageSimulation = new ClusterOutageSimulation(\"outageSimulation\", ClusterOutageSimulationArgs.builder()\n            .projectId(\"64707f06c519c20c3a2b1b03\")\n            .clusterName(\"Cluster0\")\n            .outageFilters(            \n                ClusterOutageSimulationOutageFilterArgs.builder()\n                    .cloudProvider(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .build(),\n                ClusterOutageSimulationOutageFilterArgs.builder()\n                    .cloudProvider(\"AWS\")\n                    .regionName(\"US_EAST_2\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  outageSimulation:\n    type: mongodbatlas:ClusterOutageSimulation\n    name: outage_simulation\n    properties:\n      projectId: 64707f06c519c20c3a2b1b03\n      clusterName: Cluster0\n      outageFilters:\n        - cloudProvider: AWS\n          regionName: US_EAST_1\n        - cloudProvider: AWS\n          regionName: US_EAST_2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Cluster Outage Simulation\n\n## Import\n\nThe \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ClusterOutageSimulation`\" pulumi-lang-dotnet=\"`mongodbatlas.ClusterOutageSimulation`\" pulumi-lang-go=\"`ClusterOutageSimulation`\" pulumi-lang-python=\"`ClusterOutageSimulation`\" pulumi-lang-yaml=\"`mongodbatlas.ClusterOutageSimulation`\" pulumi-lang-java=\"`mongodbatlas.ClusterOutageSimulation`\"\u003e`mongodbatlas.ClusterOutageSimulation`\u003c/span\u003e resource does not support import operation.\n\nSee [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Cluster-Outage-Simulation) Documentation for more information.\n\n","properties":{"clusterName":{"type":"string","description":"Name of the Atlas Cluster that is/will undergoing outage simulation.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"outageFilters":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterOutageSimulationOutageFilter:ClusterOutageSimulationOutageFilter"},"description":"List of settings that specify the type of cluster outage simulation.\n"},"projectId":{"type":"string","description":"The unique ID for the project that contains the cluster that is/will undergoing outage simulation.\n"},"simulationId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the outage simulation.\n"},"startRequestDate":{"type":"string","description":"Date and time when MongoDB Cloud started the regional outage simulation.\n"},"state":{"type":"string","description":"Current phase of the outage simulation:\n* `START_REQUESTED` - User has requested cluster outage simulation.\n* `STARTING` - MongoDB Cloud is starting cluster outage simulation.\n* `SIMULATING` - MongoDB Cloud is simulating cluster outage.\n* `RECOVERY_REQUESTED` - User has requested recovery from the simulated outage.\n* `RECOVERING` - MongoDB Cloud is recovering the cluster from the simulated outage.\n* `COMPLETE` - MongoDB Cloud has completed the cluster outage simulation.\n"}},"required":["clusterName","outageFilters","projectId","simulationId","startRequestDate","state"],"inputProperties":{"clusterName":{"type":"string","description":"Name of the Atlas Cluster that is/will undergoing outage simulation.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"outageFilters":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterOutageSimulationOutageFilter:ClusterOutageSimulationOutageFilter"},"description":"List of settings that specify the type of cluster outage simulation.\n"},"projectId":{"type":"string","description":"The unique ID for the project that contains the cluster that is/will undergoing outage simulation.\n"}},"requiredInputs":["clusterName","outageFilters","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering ClusterOutageSimulation resources.\n","properties":{"clusterName":{"type":"string","description":"Name of the Atlas Cluster that is/will undergoing outage simulation.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"outageFilters":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ClusterOutageSimulationOutageFilter:ClusterOutageSimulationOutageFilter"},"description":"List of settings that specify the type of cluster outage simulation.\n"},"projectId":{"type":"string","description":"The unique ID for the project that contains the cluster that is/will undergoing outage simulation.\n"},"simulationId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the outage simulation.\n"},"startRequestDate":{"type":"string","description":"Date and time when MongoDB Cloud started the regional outage simulation.\n"},"state":{"type":"string","description":"Current phase of the outage simulation:\n* `START_REQUESTED` - User has requested cluster outage simulation.\n* `STARTING` - MongoDB Cloud is starting cluster outage simulation.\n* `SIMULATING` - MongoDB Cloud is simulating cluster outage.\n* `RECOVERY_REQUESTED` - User has requested recovery from the simulated outage.\n* `RECOVERING` - MongoDB Cloud is recovering the cluster from the simulated outage.\n* `COMPLETE` - MongoDB Cloud has completed the cluster outage simulation.\n"}},"type":"object"}},"mongodbatlas:index/customDbRole:CustomDbRole":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CustomDbRole`\" pulumi-lang-dotnet=\"`mongodbatlas.CustomDbRole`\" pulumi-lang-go=\"`CustomDbRole`\" pulumi-lang-python=\"`CustomDbRole`\" pulumi-lang-yaml=\"`mongodbatlas.CustomDbRole`\" pulumi-lang-java=\"`mongodbatlas.CustomDbRole`\"\u003e`mongodbatlas.CustomDbRole`\u003c/span\u003e provides a Custom DB Role resource. The customDBRoles resource lets you retrieve, create and modify the custom MongoDB roles in your cluster. Use custom MongoDB roles to specify custom sets of actions which cannot be described by the built-in Atlas database user privileges.\n\n\u003e **IMPORTANT**  You define custom roles at the project level for all clusters in the project. The \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CustomDbRole`\" pulumi-lang-dotnet=\"`mongodbatlas.CustomDbRole`\" pulumi-lang-go=\"`CustomDbRole`\" pulumi-lang-python=\"`CustomDbRole`\" pulumi-lang-yaml=\"`mongodbatlas.CustomDbRole`\" pulumi-lang-java=\"`mongodbatlas.CustomDbRole`\"\u003e`mongodbatlas.CustomDbRole`\u003c/span\u003e resource supports a subset of MongoDB privilege actions. For a complete list of [privilege actions](https://docs.mongodb.com/manual/reference/privilege-actions/) available for this resource, see [Custom Role actions](https://docs.atlas.mongodb.com/reference/api/custom-role-actions/). Custom roles must include actions that all project's clusters support, and that are compatible with each MongoDB version used by your project's clusters. For example, if your project has MongoDB 4.2 clusters, you can't create custom roles that use actions introduced in MongoDB 4.4.\n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testRole = new mongodbatlas.CustomDbRole(\"test_role\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    roleName: \"myCustomRole\",\n    actions: [\n        {\n            action: \"UPDATE\",\n            resources: [{\n                collectionName: \"\",\n                databaseName: \"anyDatabase\",\n            }],\n        },\n        {\n            action: \"INSERT\",\n            resources: [{\n                collectionName: \"\",\n                databaseName: \"anyDatabase\",\n            }],\n        },\n        {\n            action: \"REMOVE\",\n            resources: [{\n                collectionName: \"\",\n                databaseName: \"anyDatabase\",\n            }],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_role = mongodbatlas.CustomDbRole(\"test_role\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    role_name=\"myCustomRole\",\n    actions=[\n        {\n            \"action\": \"UPDATE\",\n            \"resources\": [{\n                \"collection_name\": \"\",\n                \"database_name\": \"anyDatabase\",\n            }],\n        },\n        {\n            \"action\": \"INSERT\",\n            \"resources\": [{\n                \"collection_name\": \"\",\n                \"database_name\": \"anyDatabase\",\n            }],\n        },\n        {\n            \"action\": \"REMOVE\",\n            \"resources\": [{\n                \"collection_name\": \"\",\n                \"database_name\": \"anyDatabase\",\n            }],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRole = new Mongodbatlas.CustomDbRole(\"test_role\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        RoleName = \"myCustomRole\",\n        Actions = new[]\n        {\n            new Mongodbatlas.Inputs.CustomDbRoleActionArgs\n            {\n                Action = \"UPDATE\",\n                Resources = new[]\n                {\n                    new Mongodbatlas.Inputs.CustomDbRoleActionResourceArgs\n                    {\n                        CollectionName = \"\",\n                        DatabaseName = \"anyDatabase\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.CustomDbRoleActionArgs\n            {\n                Action = \"INSERT\",\n                Resources = new[]\n                {\n                    new Mongodbatlas.Inputs.CustomDbRoleActionResourceArgs\n                    {\n                        CollectionName = \"\",\n                        DatabaseName = \"anyDatabase\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.CustomDbRoleActionArgs\n            {\n                Action = \"REMOVE\",\n                Resources = new[]\n                {\n                    new Mongodbatlas.Inputs.CustomDbRoleActionResourceArgs\n                    {\n                        CollectionName = \"\",\n                        DatabaseName = \"anyDatabase\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCustomDbRole(ctx, \"test_role\", \u0026mongodbatlas.CustomDbRoleArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tRoleName:  pulumi.String(\"myCustomRole\"),\n\t\t\tActions: mongodbatlas.CustomDbRoleActionArray{\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"UPDATE\"),\n\t\t\t\t\tResources: mongodbatlas.CustomDbRoleActionResourceArray{\n\t\t\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionResourceArgs{\n\t\t\t\t\t\t\tCollectionName: pulumi.String(\"\"),\n\t\t\t\t\t\t\tDatabaseName:   pulumi.String(\"anyDatabase\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"INSERT\"),\n\t\t\t\t\tResources: mongodbatlas.CustomDbRoleActionResourceArray{\n\t\t\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionResourceArgs{\n\t\t\t\t\t\t\tCollectionName: pulumi.String(\"\"),\n\t\t\t\t\t\t\tDatabaseName:   pulumi.String(\"anyDatabase\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"REMOVE\"),\n\t\t\t\t\tResources: mongodbatlas.CustomDbRoleActionResourceArray{\n\t\t\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionResourceArgs{\n\t\t\t\t\t\t\tCollectionName: pulumi.String(\"\"),\n\t\t\t\t\t\t\tDatabaseName:   pulumi.String(\"anyDatabase\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CustomDbRole;\nimport com.pulumi.mongodbatlas.CustomDbRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.CustomDbRoleActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testRole = new CustomDbRole(\"testRole\", CustomDbRoleArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .roleName(\"myCustomRole\")\n            .actions(            \n                CustomDbRoleActionArgs.builder()\n                    .action(\"UPDATE\")\n                    .resources(CustomDbRoleActionResourceArgs.builder()\n                        .collectionName(\"\")\n                        .databaseName(\"anyDatabase\")\n                        .build())\n                    .build(),\n                CustomDbRoleActionArgs.builder()\n                    .action(\"INSERT\")\n                    .resources(CustomDbRoleActionResourceArgs.builder()\n                        .collectionName(\"\")\n                        .databaseName(\"anyDatabase\")\n                        .build())\n                    .build(),\n                CustomDbRoleActionArgs.builder()\n                    .action(\"REMOVE\")\n                    .resources(CustomDbRoleActionResourceArgs.builder()\n                        .collectionName(\"\")\n                        .databaseName(\"anyDatabase\")\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRole:\n    type: mongodbatlas:CustomDbRole\n    name: test_role\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      roleName: myCustomRole\n      actions:\n        - action: UPDATE\n          resources:\n            - collectionName: \"\"\n              databaseName: anyDatabase\n        - action: INSERT\n          resources:\n            - collectionName: \"\"\n              databaseName: anyDatabase\n        - action: REMOVE\n          resources:\n            - collectionName: \"\"\n              databaseName: anyDatabase\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With Inherited Roles\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst inheritedRoleOne = new mongodbatlas.CustomDbRole(\"inherited_role_one\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    roleName: \"insertRole\",\n    actions: [{\n        action: \"INSERT\",\n        resources: [{\n            collectionName: \"\",\n            databaseName: \"anyDatabase\",\n        }],\n    }],\n});\nconst inheritedRoleTwo = new mongodbatlas.CustomDbRole(\"inherited_role_two\", {\n    projectId: inheritedRoleOne.projectId,\n    roleName: \"statusServerRole\",\n    actions: [{\n        action: \"SERVER_STATUS\",\n        resources: [{\n            cluster: true,\n        }],\n    }],\n});\nconst testRole = new mongodbatlas.CustomDbRole(\"test_role\", {\n    projectId: inheritedRoleOne.projectId,\n    roleName: \"myCustomRole\",\n    actions: [\n        {\n            action: \"UPDATE\",\n            resources: [{\n                collectionName: \"\",\n                databaseName: \"anyDatabase\",\n            }],\n        },\n        {\n            action: \"REMOVE\",\n            resources: [{\n                collectionName: \"\",\n                databaseName: \"anyDatabase\",\n            }],\n        },\n    ],\n    inheritedRoles: [\n        {\n            roleName: inheritedRoleOne.roleName,\n            databaseName: \"admin\",\n        },\n        {\n            roleName: inheritedRoleTwo.roleName,\n            databaseName: \"admin\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ninherited_role_one = mongodbatlas.CustomDbRole(\"inherited_role_one\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    role_name=\"insertRole\",\n    actions=[{\n        \"action\": \"INSERT\",\n        \"resources\": [{\n            \"collection_name\": \"\",\n            \"database_name\": \"anyDatabase\",\n        }],\n    }])\ninherited_role_two = mongodbatlas.CustomDbRole(\"inherited_role_two\",\n    project_id=inherited_role_one.project_id,\n    role_name=\"statusServerRole\",\n    actions=[{\n        \"action\": \"SERVER_STATUS\",\n        \"resources\": [{\n            \"cluster\": True,\n        }],\n    }])\ntest_role = mongodbatlas.CustomDbRole(\"test_role\",\n    project_id=inherited_role_one.project_id,\n    role_name=\"myCustomRole\",\n    actions=[\n        {\n            \"action\": \"UPDATE\",\n            \"resources\": [{\n                \"collection_name\": \"\",\n                \"database_name\": \"anyDatabase\",\n            }],\n        },\n        {\n            \"action\": \"REMOVE\",\n            \"resources\": [{\n                \"collection_name\": \"\",\n                \"database_name\": \"anyDatabase\",\n            }],\n        },\n    ],\n    inherited_roles=[\n        {\n            \"role_name\": inherited_role_one.role_name,\n            \"database_name\": \"admin\",\n        },\n        {\n            \"role_name\": inherited_role_two.role_name,\n            \"database_name\": \"admin\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var inheritedRoleOne = new Mongodbatlas.CustomDbRole(\"inherited_role_one\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        RoleName = \"insertRole\",\n        Actions = new[]\n        {\n            new Mongodbatlas.Inputs.CustomDbRoleActionArgs\n            {\n                Action = \"INSERT\",\n                Resources = new[]\n                {\n                    new Mongodbatlas.Inputs.CustomDbRoleActionResourceArgs\n                    {\n                        CollectionName = \"\",\n                        DatabaseName = \"anyDatabase\",\n                    },\n                },\n            },\n        },\n    });\n\n    var inheritedRoleTwo = new Mongodbatlas.CustomDbRole(\"inherited_role_two\", new()\n    {\n        ProjectId = inheritedRoleOne.ProjectId,\n        RoleName = \"statusServerRole\",\n        Actions = new[]\n        {\n            new Mongodbatlas.Inputs.CustomDbRoleActionArgs\n            {\n                Action = \"SERVER_STATUS\",\n                Resources = new[]\n                {\n                    new Mongodbatlas.Inputs.CustomDbRoleActionResourceArgs\n                    {\n                        Cluster = true,\n                    },\n                },\n            },\n        },\n    });\n\n    var testRole = new Mongodbatlas.CustomDbRole(\"test_role\", new()\n    {\n        ProjectId = inheritedRoleOne.ProjectId,\n        RoleName = \"myCustomRole\",\n        Actions = new[]\n        {\n            new Mongodbatlas.Inputs.CustomDbRoleActionArgs\n            {\n                Action = \"UPDATE\",\n                Resources = new[]\n                {\n                    new Mongodbatlas.Inputs.CustomDbRoleActionResourceArgs\n                    {\n                        CollectionName = \"\",\n                        DatabaseName = \"anyDatabase\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.CustomDbRoleActionArgs\n            {\n                Action = \"REMOVE\",\n                Resources = new[]\n                {\n                    new Mongodbatlas.Inputs.CustomDbRoleActionResourceArgs\n                    {\n                        CollectionName = \"\",\n                        DatabaseName = \"anyDatabase\",\n                    },\n                },\n            },\n        },\n        InheritedRoles = new[]\n        {\n            new Mongodbatlas.Inputs.CustomDbRoleInheritedRoleArgs\n            {\n                RoleName = inheritedRoleOne.RoleName,\n                DatabaseName = \"admin\",\n            },\n            new Mongodbatlas.Inputs.CustomDbRoleInheritedRoleArgs\n            {\n                RoleName = inheritedRoleTwo.RoleName,\n                DatabaseName = \"admin\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinheritedRoleOne, err := mongodbatlas.NewCustomDbRole(ctx, \"inherited_role_one\", \u0026mongodbatlas.CustomDbRoleArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tRoleName:  pulumi.String(\"insertRole\"),\n\t\t\tActions: mongodbatlas.CustomDbRoleActionArray{\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"INSERT\"),\n\t\t\t\t\tResources: mongodbatlas.CustomDbRoleActionResourceArray{\n\t\t\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionResourceArgs{\n\t\t\t\t\t\t\tCollectionName: pulumi.String(\"\"),\n\t\t\t\t\t\t\tDatabaseName:   pulumi.String(\"anyDatabase\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinheritedRoleTwo, err := mongodbatlas.NewCustomDbRole(ctx, \"inherited_role_two\", \u0026mongodbatlas.CustomDbRoleArgs{\n\t\t\tProjectId: inheritedRoleOne.ProjectId,\n\t\t\tRoleName:  pulumi.String(\"statusServerRole\"),\n\t\t\tActions: mongodbatlas.CustomDbRoleActionArray{\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"SERVER_STATUS\"),\n\t\t\t\t\tResources: mongodbatlas.CustomDbRoleActionResourceArray{\n\t\t\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionResourceArgs{\n\t\t\t\t\t\t\tCluster: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCustomDbRole(ctx, \"test_role\", \u0026mongodbatlas.CustomDbRoleArgs{\n\t\t\tProjectId: inheritedRoleOne.ProjectId,\n\t\t\tRoleName:  pulumi.String(\"myCustomRole\"),\n\t\t\tActions: mongodbatlas.CustomDbRoleActionArray{\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"UPDATE\"),\n\t\t\t\t\tResources: mongodbatlas.CustomDbRoleActionResourceArray{\n\t\t\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionResourceArgs{\n\t\t\t\t\t\t\tCollectionName: pulumi.String(\"\"),\n\t\t\t\t\t\t\tDatabaseName:   pulumi.String(\"anyDatabase\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"REMOVE\"),\n\t\t\t\t\tResources: mongodbatlas.CustomDbRoleActionResourceArray{\n\t\t\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionResourceArgs{\n\t\t\t\t\t\t\tCollectionName: pulumi.String(\"\"),\n\t\t\t\t\t\t\tDatabaseName:   pulumi.String(\"anyDatabase\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tInheritedRoles: mongodbatlas.CustomDbRoleInheritedRoleArray{\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleInheritedRoleArgs{\n\t\t\t\t\tRoleName:     inheritedRoleOne.RoleName,\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleInheritedRoleArgs{\n\t\t\t\t\tRoleName:     inheritedRoleTwo.RoleName,\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CustomDbRole;\nimport com.pulumi.mongodbatlas.CustomDbRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.CustomDbRoleActionArgs;\nimport com.pulumi.mongodbatlas.inputs.CustomDbRoleInheritedRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var inheritedRoleOne = new CustomDbRole(\"inheritedRoleOne\", CustomDbRoleArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .roleName(\"insertRole\")\n            .actions(CustomDbRoleActionArgs.builder()\n                .action(\"INSERT\")\n                .resources(CustomDbRoleActionResourceArgs.builder()\n                    .collectionName(\"\")\n                    .databaseName(\"anyDatabase\")\n                    .build())\n                .build())\n            .build());\n\n        var inheritedRoleTwo = new CustomDbRole(\"inheritedRoleTwo\", CustomDbRoleArgs.builder()\n            .projectId(inheritedRoleOne.projectId())\n            .roleName(\"statusServerRole\")\n            .actions(CustomDbRoleActionArgs.builder()\n                .action(\"SERVER_STATUS\")\n                .resources(CustomDbRoleActionResourceArgs.builder()\n                    .cluster(true)\n                    .build())\n                .build())\n            .build());\n\n        var testRole = new CustomDbRole(\"testRole\", CustomDbRoleArgs.builder()\n            .projectId(inheritedRoleOne.projectId())\n            .roleName(\"myCustomRole\")\n            .actions(            \n                CustomDbRoleActionArgs.builder()\n                    .action(\"UPDATE\")\n                    .resources(CustomDbRoleActionResourceArgs.builder()\n                        .collectionName(\"\")\n                        .databaseName(\"anyDatabase\")\n                        .build())\n                    .build(),\n                CustomDbRoleActionArgs.builder()\n                    .action(\"REMOVE\")\n                    .resources(CustomDbRoleActionResourceArgs.builder()\n                        .collectionName(\"\")\n                        .databaseName(\"anyDatabase\")\n                        .build())\n                    .build())\n            .inheritedRoles(            \n                CustomDbRoleInheritedRoleArgs.builder()\n                    .roleName(inheritedRoleOne.roleName())\n                    .databaseName(\"admin\")\n                    .build(),\n                CustomDbRoleInheritedRoleArgs.builder()\n                    .roleName(inheritedRoleTwo.roleName())\n                    .databaseName(\"admin\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  inheritedRoleOne:\n    type: mongodbatlas:CustomDbRole\n    name: inherited_role_one\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      roleName: insertRole\n      actions:\n        - action: INSERT\n          resources:\n            - collectionName: \"\"\n              databaseName: anyDatabase\n  inheritedRoleTwo:\n    type: mongodbatlas:CustomDbRole\n    name: inherited_role_two\n    properties:\n      projectId: ${inheritedRoleOne.projectId}\n      roleName: statusServerRole\n      actions:\n        - action: SERVER_STATUS\n          resources:\n            - cluster: true\n  testRole:\n    type: mongodbatlas:CustomDbRole\n    name: test_role\n    properties:\n      projectId: ${inheritedRoleOne.projectId}\n      roleName: myCustomRole\n      actions:\n        - action: UPDATE\n          resources:\n            - collectionName: \"\"\n              databaseName: anyDatabase\n        - action: REMOVE\n          resources:\n            - collectionName: \"\"\n              databaseName: anyDatabase\n      inheritedRoles:\n        - roleName: ${inheritedRoleOne.roleName}\n          databaseName: admin\n        - roleName: ${inheritedRoleTwo.roleName}\n          databaseName: admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDatabase users can be imported using project ID and username, in the format `PROJECTID-ROLENAME`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/customDbRole:CustomDbRole my_role 1112222b3bf99403840e8934-MyCustomRole\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/custom-roles/)\n\n","properties":{"actions":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CustomDbRoleAction:CustomDbRoleAction"}},"inheritedRoles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CustomDbRoleInheritedRole:CustomDbRoleInheritedRole"}},"projectId":{"type":"string","description":"The unique ID for the project.\n"},"roleName":{"type":"string","description":"Name of the custom role.\n\n\u003e **IMPORTANT** The specified role name can only contain letters, digits, underscores, and dashes. Additionally, you cannot specify a role name which meets any of the following criteria:\n\n* Is a name already used by an existing custom role in the project\n* Is a name of any of the built-in roles\n* Is `atlasAdmin`\n* Starts with `xgen-`\n"}},"required":["projectId","roleName"],"inputProperties":{"actions":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CustomDbRoleAction:CustomDbRoleAction"}},"inheritedRoles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CustomDbRoleInheritedRole:CustomDbRoleInheritedRole"}},"projectId":{"type":"string","description":"The unique ID for the project.\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"Name of the custom role.\n\n\u003e **IMPORTANT** The specified role name can only contain letters, digits, underscores, and dashes. Additionally, you cannot specify a role name which meets any of the following criteria:\n\n* Is a name already used by an existing custom role in the project\n* Is a name of any of the built-in roles\n* Is `atlasAdmin`\n* Starts with `xgen-`\n","willReplaceOnChanges":true}},"requiredInputs":["projectId","roleName"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomDbRole resources.\n","properties":{"actions":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CustomDbRoleAction:CustomDbRoleAction"}},"inheritedRoles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/CustomDbRoleInheritedRole:CustomDbRoleInheritedRole"}},"projectId":{"type":"string","description":"The unique ID for the project.\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"Name of the custom role.\n\n\u003e **IMPORTANT** The specified role name can only contain letters, digits, underscores, and dashes. Additionally, you cannot specify a role name which meets any of the following criteria:\n\n* Is a name already used by an existing custom role in the project\n* Is a name of any of the built-in roles\n* Is `atlasAdmin`\n* Starts with `xgen-`\n","willReplaceOnChanges":true}},"type":"object"}},"mongodbatlas:index/customDnsConfigurationClusterAws:CustomDnsConfigurationClusterAws":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CustomDnsConfigurationClusterAws`\" pulumi-lang-dotnet=\"`mongodbatlas.CustomDnsConfigurationClusterAws`\" pulumi-lang-go=\"`CustomDnsConfigurationClusterAws`\" pulumi-lang-python=\"`CustomDnsConfigurationClusterAws`\" pulumi-lang-yaml=\"`mongodbatlas.CustomDnsConfigurationClusterAws`\" pulumi-lang-java=\"`mongodbatlas.CustomDnsConfigurationClusterAws`\"\u003e`mongodbatlas.CustomDnsConfigurationClusterAws`\u003c/span\u003e provides a Custom DNS Configuration for Atlas Clusters on AWS resource. This represents a Custom DNS Configuration for Atlas Clusters on AWS that can be updated in an Atlas project.\n\n\u003e **IMPORTANT:**You must have one of the following roles to successfully handle the resource: \u003cbr\u003e - Organization Owner \u003cbr\u003e - Project Owner\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.CustomDnsConfigurationClusterAws(\"test\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.CustomDnsConfigurationClusterAws(\"test\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.CustomDnsConfigurationClusterAws(\"test\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Enabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCustomDnsConfigurationClusterAws(ctx, \"test\", \u0026mongodbatlas.CustomDnsConfigurationClusterAwsArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CustomDnsConfigurationClusterAws;\nimport com.pulumi.mongodbatlas.CustomDnsConfigurationClusterAwsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new CustomDnsConfigurationClusterAws(\"test\", CustomDnsConfigurationClusterAwsArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .enabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:CustomDnsConfigurationClusterAws\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      enabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nCustom DNS Configuration for Atlas Clusters on AWS must be imported using Project ID, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/customDnsConfigurationClusterAws:CustomDnsConfigurationClusterAws test 1112222b3bf99403840e8934\n```\n\nSee detailed information for arguments and attributes: [MongoDB API Custom DNS Configuration for Atlas Clusters on AWS](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/AWS-Clusters-DNS/operation/getAWSCustomDNS).\n\n","properties":{"enabled":{"type":"boolean","description":"Indicates whether the project's clusters deployed to AWS use custom DNS. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the `Get All Clusters` and `Get One Cluster` endpoints return the `connectionStrings.private` and `connectionStrings.privateSrv` fields for clusters deployed to AWS .\n"},"projectId":{"type":"string","description":"Required \tUnique identifier for the project.\n"}},"required":["enabled","projectId"],"inputProperties":{"enabled":{"type":"boolean","description":"Indicates whether the project's clusters deployed to AWS use custom DNS. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the `Get All Clusters` and `Get One Cluster` endpoints return the `connectionStrings.private` and `connectionStrings.privateSrv` fields for clusters deployed to AWS .\n"},"projectId":{"type":"string","description":"Required \tUnique identifier for the project.\n","willReplaceOnChanges":true}},"requiredInputs":["enabled","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering CustomDnsConfigurationClusterAws resources.\n","properties":{"enabled":{"type":"boolean","description":"Indicates whether the project's clusters deployed to AWS use custom DNS. If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the `Get All Clusters` and `Get One Cluster` endpoints return the `connectionStrings.private` and `connectionStrings.privateSrv` fields for clusters deployed to AWS .\n"},"projectId":{"type":"string","description":"Required \tUnique identifier for the project.\n","willReplaceOnChanges":true}},"type":"object"}},"mongodbatlas:index/databaseUser:DatabaseUser":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.DatabaseUser`\" pulumi-lang-dotnet=\"`mongodbatlas.DatabaseUser`\" pulumi-lang-go=\"`DatabaseUser`\" pulumi-lang-python=\"`DatabaseUser`\" pulumi-lang-yaml=\"`mongodbatlas.DatabaseUser`\" pulumi-lang-java=\"`mongodbatlas.DatabaseUser`\"\u003e`mongodbatlas.DatabaseUser`\u003c/span\u003e provides a Database User resource. This represents a database user which will be applied to all clusters within the project.\n\nEach user has a set of roles that provide access to the project’s databases. User's roles apply to all the clusters in the project: if two clusters have a \u003cspan pulumi-lang-nodejs=\"`products`\" pulumi-lang-dotnet=\"`Products`\" pulumi-lang-go=\"`products`\" pulumi-lang-python=\"`products`\" pulumi-lang-yaml=\"`products`\" pulumi-lang-java=\"`products`\"\u003e`products`\u003c/span\u003e database and a user has a role granting \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e access on the products database, the user has that access on both clusters.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\u003e **WARNING:** The password argument is required for creation but should be removed after creation if it will be managed externally. More details can be found in the password argument documentation.\n\n\u003e **IMPORTANT:** All arguments including the password will be stored in the raw state as plain-text. Read more about sensitive data in state.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.DatabaseUser(\"test\", {\n    username: \"test-acc-username\",\n    password: \"test-acc-password\",\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    authDatabaseName: \"admin\",\n    roles: [\n        {\n            roleName: \"readWrite\",\n            databaseName: \"dbforApp\",\n        },\n        {\n            roleName: \"readAnyDatabase\",\n            databaseName: \"admin\",\n        },\n    ],\n    labels: [{\n        key: \"My Key\",\n        value: \"My Value\",\n    }],\n    scopes: [\n        {\n            name: \"My cluster name\",\n            type: \"CLUSTER\",\n        },\n        {\n            name: \"My second cluster name\",\n            type: \"CLUSTER\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.DatabaseUser(\"test\",\n    username=\"test-acc-username\",\n    password=\"test-acc-password\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    auth_database_name=\"admin\",\n    roles=[\n        {\n            \"role_name\": \"readWrite\",\n            \"database_name\": \"dbforApp\",\n        },\n        {\n            \"role_name\": \"readAnyDatabase\",\n            \"database_name\": \"admin\",\n        },\n    ],\n    labels=[{\n        \"key\": \"My Key\",\n        \"value\": \"My Value\",\n    }],\n    scopes=[\n        {\n            \"name\": \"My cluster name\",\n            \"type\": \"CLUSTER\",\n        },\n        {\n            \"name\": \"My second cluster name\",\n            \"type\": \"CLUSTER\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.DatabaseUser(\"test\", new()\n    {\n        Username = \"test-acc-username\",\n        Password = \"test-acc-password\",\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        AuthDatabaseName = \"admin\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"readWrite\",\n                DatabaseName = \"dbforApp\",\n            },\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"readAnyDatabase\",\n                DatabaseName = \"admin\",\n            },\n        },\n        Labels = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserLabelArgs\n            {\n                Key = \"My Key\",\n                Value = \"My Value\",\n            },\n        },\n        Scopes = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserScopeArgs\n            {\n                Name = \"My cluster name\",\n                Type = \"CLUSTER\",\n            },\n            new Mongodbatlas.Inputs.DatabaseUserScopeArgs\n            {\n                Name = \"My second cluster name\",\n                Type = \"CLUSTER\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewDatabaseUser(ctx, \"test\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tUsername:         pulumi.String(\"test-acc-username\"),\n\t\t\tPassword:         pulumi.String(\"test-acc-password\"),\n\t\t\tProjectId:        pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tAuthDatabaseName: pulumi.String(\"admin\"),\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"readWrite\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"dbforApp\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"readAnyDatabase\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: mongodbatlas.DatabaseUserLabelArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"My Key\"),\n\t\t\t\t\tValue: pulumi.String(\"My Value\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScopes: mongodbatlas.DatabaseUserScopeArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserScopeArgs{\n\t\t\t\t\tName: pulumi.String(\"My cluster name\"),\n\t\t\t\t\tType: pulumi.String(\"CLUSTER\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.DatabaseUserScopeArgs{\n\t\t\t\t\tName: pulumi.String(\"My second cluster name\"),\n\t\t\t\t\tType: pulumi.String(\"CLUSTER\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserLabelArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserScopeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new DatabaseUser(\"test\", DatabaseUserArgs.builder()\n            .username(\"test-acc-username\")\n            .password(\"test-acc-password\")\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .authDatabaseName(\"admin\")\n            .roles(            \n                DatabaseUserRoleArgs.builder()\n                    .roleName(\"readWrite\")\n                    .databaseName(\"dbforApp\")\n                    .build(),\n                DatabaseUserRoleArgs.builder()\n                    .roleName(\"readAnyDatabase\")\n                    .databaseName(\"admin\")\n                    .build())\n            .labels(DatabaseUserLabelArgs.builder()\n                .key(\"My Key\")\n                .value(\"My Value\")\n                .build())\n            .scopes(            \n                DatabaseUserScopeArgs.builder()\n                    .name(\"My cluster name\")\n                    .type(\"CLUSTER\")\n                    .build(),\n                DatabaseUserScopeArgs.builder()\n                    .name(\"My second cluster name\")\n                    .type(\"CLUSTER\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:DatabaseUser\n    properties:\n      username: test-acc-username\n      password: test-acc-password\n      projectId: \u003cPROJECT-ID\u003e\n      authDatabaseName: admin\n      roles:\n        - roleName: readWrite\n          databaseName: dbforApp\n        - roleName: readAnyDatabase\n          databaseName: admin\n      labels:\n        - key: My Key\n          value: My Value\n      scopes:\n        - name: My cluster name\n          type: CLUSTER\n        - name: My second cluster name\n          type: CLUSTER\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.DatabaseUser(\"test\", {\n    username: \"test-acc-username\",\n    x509Type: \"MANAGED\",\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    authDatabaseName: \"$external\",\n    roles: [{\n        roleName: \"readAnyDatabase\",\n        databaseName: \"admin\",\n    }],\n    labels: [{\n        key: \"%s\",\n        value: \"%s\",\n    }],\n    scopes: [{\n        name: \"My cluster name\",\n        type: \"CLUSTER\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.DatabaseUser(\"test\",\n    username=\"test-acc-username\",\n    x509_type=\"MANAGED\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    auth_database_name=\"$external\",\n    roles=[{\n        \"role_name\": \"readAnyDatabase\",\n        \"database_name\": \"admin\",\n    }],\n    labels=[{\n        \"key\": \"%s\",\n        \"value\": \"%s\",\n    }],\n    scopes=[{\n        \"name\": \"My cluster name\",\n        \"type\": \"CLUSTER\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.DatabaseUser(\"test\", new()\n    {\n        Username = \"test-acc-username\",\n        X509Type = \"MANAGED\",\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        AuthDatabaseName = \"$external\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"readAnyDatabase\",\n                DatabaseName = \"admin\",\n            },\n        },\n        Labels = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserLabelArgs\n            {\n                Key = \"%s\",\n                Value = \"%s\",\n            },\n        },\n        Scopes = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserScopeArgs\n            {\n                Name = \"My cluster name\",\n                Type = \"CLUSTER\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewDatabaseUser(ctx, \"test\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tUsername:         pulumi.String(\"test-acc-username\"),\n\t\t\tX509Type:         pulumi.String(\"MANAGED\"),\n\t\t\tProjectId:        pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tAuthDatabaseName: pulumi.String(\"$external\"),\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"readAnyDatabase\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: mongodbatlas.DatabaseUserLabelArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"%s\"),\n\t\t\t\t\tValue: pulumi.String(\"%s\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScopes: mongodbatlas.DatabaseUserScopeArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserScopeArgs{\n\t\t\t\t\tName: pulumi.String(\"My cluster name\"),\n\t\t\t\t\tType: pulumi.String(\"CLUSTER\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserLabelArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserScopeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new DatabaseUser(\"test\", DatabaseUserArgs.builder()\n            .username(\"test-acc-username\")\n            .x509Type(\"MANAGED\")\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .authDatabaseName(\"$external\")\n            .roles(DatabaseUserRoleArgs.builder()\n                .roleName(\"readAnyDatabase\")\n                .databaseName(\"admin\")\n                .build())\n            .labels(DatabaseUserLabelArgs.builder()\n                .key(\"%s\")\n                .value(\"%s\")\n                .build())\n            .scopes(DatabaseUserScopeArgs.builder()\n                .name(\"My cluster name\")\n                .type(\"CLUSTER\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:DatabaseUser\n    properties:\n      username: test-acc-username\n      x509Type: MANAGED\n      projectId: \u003cPROJECT-ID\u003e\n      authDatabaseName: $external\n      roles:\n        - roleName: readAnyDatabase\n          databaseName: admin\n      labels:\n        - key: '%s'\n          value: '%s'\n      scopes:\n        - name: My cluster name\n          type: CLUSTER\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.DatabaseUser(\"test\", {\n    username: testAwsIamRole.arn,\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    authDatabaseName: \"$external\",\n    awsIamType: \"ROLE\",\n    roles: [{\n        roleName: \"readAnyDatabase\",\n        databaseName: \"admin\",\n    }],\n    labels: [{\n        key: \"%s\",\n        value: \"%s\",\n    }],\n    scopes: [{\n        name: \"My cluster name\",\n        type: \"CLUSTER\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.DatabaseUser(\"test\",\n    username=test_aws_iam_role[\"arn\"],\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    auth_database_name=\"$external\",\n    aws_iam_type=\"ROLE\",\n    roles=[{\n        \"role_name\": \"readAnyDatabase\",\n        \"database_name\": \"admin\",\n    }],\n    labels=[{\n        \"key\": \"%s\",\n        \"value\": \"%s\",\n    }],\n    scopes=[{\n        \"name\": \"My cluster name\",\n        \"type\": \"CLUSTER\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.DatabaseUser(\"test\", new()\n    {\n        Username = testAwsIamRole.Arn,\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        AuthDatabaseName = \"$external\",\n        AwsIamType = \"ROLE\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"readAnyDatabase\",\n                DatabaseName = \"admin\",\n            },\n        },\n        Labels = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserLabelArgs\n            {\n                Key = \"%s\",\n                Value = \"%s\",\n            },\n        },\n        Scopes = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserScopeArgs\n            {\n                Name = \"My cluster name\",\n                Type = \"CLUSTER\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewDatabaseUser(ctx, \"test\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tUsername:         pulumi.Any(testAwsIamRole.Arn),\n\t\t\tProjectId:        pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tAuthDatabaseName: pulumi.String(\"$external\"),\n\t\t\tAwsIamType:       pulumi.String(\"ROLE\"),\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"readAnyDatabase\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: mongodbatlas.DatabaseUserLabelArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"%s\"),\n\t\t\t\t\tValue: pulumi.String(\"%s\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tScopes: mongodbatlas.DatabaseUserScopeArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserScopeArgs{\n\t\t\t\t\tName: pulumi.String(\"My cluster name\"),\n\t\t\t\t\tType: pulumi.String(\"CLUSTER\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserLabelArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserScopeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new DatabaseUser(\"test\", DatabaseUserArgs.builder()\n            .username(testAwsIamRole.arn())\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .authDatabaseName(\"$external\")\n            .awsIamType(\"ROLE\")\n            .roles(DatabaseUserRoleArgs.builder()\n                .roleName(\"readAnyDatabase\")\n                .databaseName(\"admin\")\n                .build())\n            .labels(DatabaseUserLabelArgs.builder()\n                .key(\"%s\")\n                .value(\"%s\")\n                .build())\n            .scopes(DatabaseUserScopeArgs.builder()\n                .name(\"My cluster name\")\n                .type(\"CLUSTER\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:DatabaseUser\n    properties:\n      username: ${testAwsIamRole.arn}\n      projectId: \u003cPROJECT-ID\u003e\n      authDatabaseName: $external\n      awsIamType: ROLE\n      roles:\n        - roleName: readAnyDatabase\n          databaseName: admin\n      labels:\n        - key: '%s'\n          value: '%s'\n      scopes:\n        - name: My cluster name\n          type: CLUSTER\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n## Example of how to create a OIDC federated authentication user\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.DatabaseUser(\"test\", {\n    username: \"64d613677e1ad50839cce4db/testUserOr\",\n    projectId: \"6414908c207f4d22f4d8f232\",\n    authDatabaseName: \"admin\",\n    oidcAuthType: \"IDP_GROUP\",\n    roles: [{\n        roleName: \"readWriteAnyDatabase\",\n        databaseName: \"admin\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.DatabaseUser(\"test\",\n    username=\"64d613677e1ad50839cce4db/testUserOr\",\n    project_id=\"6414908c207f4d22f4d8f232\",\n    auth_database_name=\"admin\",\n    oidc_auth_type=\"IDP_GROUP\",\n    roles=[{\n        \"role_name\": \"readWriteAnyDatabase\",\n        \"database_name\": \"admin\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.DatabaseUser(\"test\", new()\n    {\n        Username = \"64d613677e1ad50839cce4db/testUserOr\",\n        ProjectId = \"6414908c207f4d22f4d8f232\",\n        AuthDatabaseName = \"admin\",\n        OidcAuthType = \"IDP_GROUP\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"readWriteAnyDatabase\",\n                DatabaseName = \"admin\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewDatabaseUser(ctx, \"test\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tUsername:         pulumi.String(\"64d613677e1ad50839cce4db/testUserOr\"),\n\t\t\tProjectId:        pulumi.String(\"6414908c207f4d22f4d8f232\"),\n\t\t\tAuthDatabaseName: pulumi.String(\"admin\"),\n\t\t\tOidcAuthType:     pulumi.String(\"IDP_GROUP\"),\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"readWriteAnyDatabase\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new DatabaseUser(\"test\", DatabaseUserArgs.builder()\n            .username(\"64d613677e1ad50839cce4db/testUserOr\")\n            .projectId(\"6414908c207f4d22f4d8f232\")\n            .authDatabaseName(\"admin\")\n            .oidcAuthType(\"IDP_GROUP\")\n            .roles(DatabaseUserRoleArgs.builder()\n                .roleName(\"readWriteAnyDatabase\")\n                .databaseName(\"admin\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:DatabaseUser\n    properties:\n      username: 64d613677e1ad50839cce4db/testUserOr\n      projectId: 6414908c207f4d22f4d8f232\n      authDatabaseName: admin\n      oidcAuthType: IDP_GROUP\n      roles:\n        - roleName: readWriteAnyDatabase\n          databaseName: admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e format: Atlas OIDC IdP ID (found in federation settings), followed by a '/', followed by the IdP group name\n\nNote: OIDC support is only avalible starting in [MongoDB 7.0](https://www.mongodb.com/evolved#mdbsevenzero) or later. To learn more, see the [MongoDB Atlas documentation](https://www.mongodb.com/docs/atlas/security-oidc/).\n\n\n### Further Examples\n- Database User\n\n## Import\n\nDatabase users can be imported using project ID, username, and auth database name in the format:\n\n1. \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`authDatabaseName`\" pulumi-lang-dotnet=\"`AuthDatabaseName`\" pulumi-lang-go=\"`authDatabaseName`\" pulumi-lang-python=\"`auth_database_name`\" pulumi-lang-yaml=\"`authDatabaseName`\" pulumi-lang-java=\"`authDatabaseName`\"\u003e`auth_database_name`\u003c/span\u003e Doesn't  work if `-` is used in both the \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e and the \u003cspan pulumi-lang-nodejs=\"`authDatabaseName`\" pulumi-lang-dotnet=\"`AuthDatabaseName`\" pulumi-lang-go=\"`authDatabaseName`\" pulumi-lang-python=\"`auth_database_name`\" pulumi-lang-yaml=\"`authDatabaseName`\" pulumi-lang-java=\"`authDatabaseName`\"\u003e`auth_database_name`\u003c/span\u003e. For example `my-username` and `my-db` should use (2).\n2. \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e/\u003cspan pulumi-lang-nodejs=\"`authDatabaseName`\" pulumi-lang-dotnet=\"`AuthDatabaseName`\" pulumi-lang-go=\"`authDatabaseName`\" pulumi-lang-python=\"`auth_database_name`\" pulumi-lang-yaml=\"`authDatabaseName`\" pulumi-lang-java=\"`authDatabaseName`\"\u003e`auth_database_name`\u003c/span\u003e Works when neither \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e nor \u003cspan pulumi-lang-nodejs=\"`authDatabaseName`\" pulumi-lang-dotnet=\"`AuthDatabaseName`\" pulumi-lang-go=\"`authDatabaseName`\" pulumi-lang-python=\"`auth_database_name`\" pulumi-lang-yaml=\"`authDatabaseName`\" pulumi-lang-java=\"`authDatabaseName`\"\u003e`auth_database_name`\u003c/span\u003e use `/`.\n\n```sh\nterraform import mongodbatlas_database_user.my_user 1112222b3bf99403840e8934-my_user-admin # (1)\nterraform import mongodbatlas_database_user.my_user 1112222b3bf99403840e8934/my-username-dash/my-db-name # (2)\n```\n\n\u003e **NOTE:** Terraform will want to change the password after importing the user if a \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e argument is specified.\n\n","properties":{"authDatabaseName":{"type":"string","description":"Database against which Atlas authenticates the user. A user must provide both a username and authentication database to log into MongoDB.\nAccepted values include:\n"},"awsIamType":{"type":"string","description":"If this value is set, the new database user authenticates with AWS IAM credentials. If no value is given, Atlas uses the default value of `NONE`. The accepted types are:\n* `NONE` -\tThe user does not use AWS IAM credentials.\n* `USER` - New database user has AWS IAM user credentials.\n* `ROLE` -  New database user has credentials associated with an AWS IAM role.\n"},"description":{"type":"string","description":"Description of this database user.\n"},"labels":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/DatabaseUserLabel:DatabaseUserLabel"}},"ldapAuthType":{"type":"string","description":"Method by which the provided \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e is authenticated. If no value is given, Atlas uses the default value of `NONE`.\n* `NONE` -\tAtlas authenticates this user through [SCRAM-SHA](https://docs.mongodb.com/manual/core/security-scram/), not LDAP.\n* `USER` - LDAP server authenticates this user through the user's LDAP user. \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e must also be a fully qualified distinguished name, as defined in [RFC-2253](https://tools.ietf.org/html/rfc2253).\n* `GROUP` - LDAP server authenticates this user using their LDAP user and authorizes this user using their LDAP group. To learn more about LDAP security, see [Set up User Authentication and Authorization with LDAP](https://docs.atlas.mongodb.com/security-ldaps). \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e must also be a fully qualified distinguished name, as defined in [RFC-2253](https://tools.ietf.org/html/rfc2253).\n"},"oidcAuthType":{"type":"string","description":"Human-readable label that indicates whether the new database user authenticates with OIDC (OpenID Connect) federated authentication. If no value is given, Atlas uses the default value of `NONE`. The accepted types are:\n* `NONE` -\tThe user does not use OIDC federated authentication.\n* `IDP_GROUP` - OIDC Workforce federated authentication group. To learn more about OIDC federated authentication, see [Set up Workforce Identity Federation with OIDC](https://www.mongodb.com/docs/atlas/security-oidc/).\n* `USER` - OIDC Workload federated authentication user. To learn more about OIDC federated authentication, see [Set up Workload Identity Federation with OIDC](https://www.mongodb.com/docs/atlas/security-oidc/).\n"},"password":{"type":"string","description":"User's initial password. A value is required to create the database user, however the argument may be removed from your Terraform configuration after user creation without impacting the user, password or Terraform management. If you do change management of the password to outside of Terraform it is advised to remove the argument from the Terraform configuration. IMPORTANT --- Passwords may show up in Terraform related logs and it will be stored in the Terraform state file as plain-text. Password can be changed after creation using your preferred method, e.g. via the MongoDB Atlas UI, to ensure security.\n","secret":true},"projectId":{"type":"string","description":"The unique ID for the project to create the database user.\n"},"roles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/DatabaseUserRole:DatabaseUserRole"},"description":"List of user’s roles and the databases / collections on which the roles apply. A role allows the user to perform particular actions on the specified database. A role on the admin database can include privileges that apply to the other databases as well. See Roles below for more details.\n"},"scopes":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/DatabaseUserScope:DatabaseUserScope"}},"username":{"type":"string","description":"Username for authenticating to MongoDB. USER_ARN or ROLE_ARN if \u003cspan pulumi-lang-nodejs=\"`awsIamType`\" pulumi-lang-dotnet=\"`AwsIamType`\" pulumi-lang-go=\"`awsIamType`\" pulumi-lang-python=\"`aws_iam_type`\" pulumi-lang-yaml=\"`awsIamType`\" pulumi-lang-java=\"`awsIamType`\"\u003e`aws_iam_type`\u003c/span\u003e is USER or ROLE.\n"},"x509Type":{"type":"string","description":"X.509 method by which the provided username is authenticated. If no value is given, Atlas uses the default value of NONE. The accepted types are:\n* `NONE` -\tThe user does not use X.509 authentication.\n* `MANAGED` - The user is being created for use with Atlas-managed X.509.Externally authenticated users can only be created on the `$external` database.\n* `CUSTOMER` -  The user is being created for use with Self-Managed X.509. Users created with this x509Type require a Common Name (CN) in the username field. Externally authenticated users can only be created on the `$external` database.\n"}},"required":["authDatabaseName","awsIamType","ldapAuthType","oidcAuthType","projectId","roles","username","x509Type"],"inputProperties":{"authDatabaseName":{"type":"string","description":"Database against which Atlas authenticates the user. A user must provide both a username and authentication database to log into MongoDB.\nAccepted values include:\n"},"awsIamType":{"type":"string","description":"If this value is set, the new database user authenticates with AWS IAM credentials. If no value is given, Atlas uses the default value of `NONE`. The accepted types are:\n* `NONE` -\tThe user does not use AWS IAM credentials.\n* `USER` - New database user has AWS IAM user credentials.\n* `ROLE` -  New database user has credentials associated with an AWS IAM role.\n"},"description":{"type":"string","description":"Description of this database user.\n"},"labels":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/DatabaseUserLabel:DatabaseUserLabel"}},"ldapAuthType":{"type":"string","description":"Method by which the provided \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e is authenticated. If no value is given, Atlas uses the default value of `NONE`.\n* `NONE` -\tAtlas authenticates this user through [SCRAM-SHA](https://docs.mongodb.com/manual/core/security-scram/), not LDAP.\n* `USER` - LDAP server authenticates this user through the user's LDAP user. \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e must also be a fully qualified distinguished name, as defined in [RFC-2253](https://tools.ietf.org/html/rfc2253).\n* `GROUP` - LDAP server authenticates this user using their LDAP user and authorizes this user using their LDAP group. To learn more about LDAP security, see [Set up User Authentication and Authorization with LDAP](https://docs.atlas.mongodb.com/security-ldaps). \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e must also be a fully qualified distinguished name, as defined in [RFC-2253](https://tools.ietf.org/html/rfc2253).\n"},"oidcAuthType":{"type":"string","description":"Human-readable label that indicates whether the new database user authenticates with OIDC (OpenID Connect) federated authentication. If no value is given, Atlas uses the default value of `NONE`. The accepted types are:\n* `NONE` -\tThe user does not use OIDC federated authentication.\n* `IDP_GROUP` - OIDC Workforce federated authentication group. To learn more about OIDC federated authentication, see [Set up Workforce Identity Federation with OIDC](https://www.mongodb.com/docs/atlas/security-oidc/).\n* `USER` - OIDC Workload federated authentication user. To learn more about OIDC federated authentication, see [Set up Workload Identity Federation with OIDC](https://www.mongodb.com/docs/atlas/security-oidc/).\n"},"password":{"type":"string","description":"User's initial password. A value is required to create the database user, however the argument may be removed from your Terraform configuration after user creation without impacting the user, password or Terraform management. If you do change management of the password to outside of Terraform it is advised to remove the argument from the Terraform configuration. IMPORTANT --- Passwords may show up in Terraform related logs and it will be stored in the Terraform state file as plain-text. Password can be changed after creation using your preferred method, e.g. via the MongoDB Atlas UI, to ensure security.\n","secret":true},"projectId":{"type":"string","description":"The unique ID for the project to create the database user.\n"},"roles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/DatabaseUserRole:DatabaseUserRole"},"description":"List of user’s roles and the databases / collections on which the roles apply. A role allows the user to perform particular actions on the specified database. A role on the admin database can include privileges that apply to the other databases as well. See Roles below for more details.\n"},"scopes":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/DatabaseUserScope:DatabaseUserScope"}},"username":{"type":"string","description":"Username for authenticating to MongoDB. USER_ARN or ROLE_ARN if \u003cspan pulumi-lang-nodejs=\"`awsIamType`\" pulumi-lang-dotnet=\"`AwsIamType`\" pulumi-lang-go=\"`awsIamType`\" pulumi-lang-python=\"`aws_iam_type`\" pulumi-lang-yaml=\"`awsIamType`\" pulumi-lang-java=\"`awsIamType`\"\u003e`aws_iam_type`\u003c/span\u003e is USER or ROLE.\n"},"x509Type":{"type":"string","description":"X.509 method by which the provided username is authenticated. If no value is given, Atlas uses the default value of NONE. The accepted types are:\n* `NONE` -\tThe user does not use X.509 authentication.\n* `MANAGED` - The user is being created for use with Atlas-managed X.509.Externally authenticated users can only be created on the `$external` database.\n* `CUSTOMER` -  The user is being created for use with Self-Managed X.509. Users created with this x509Type require a Common Name (CN) in the username field. Externally authenticated users can only be created on the `$external` database.\n"}},"requiredInputs":["authDatabaseName","projectId","roles","username"],"stateInputs":{"description":"Input properties used for looking up and filtering DatabaseUser resources.\n","properties":{"authDatabaseName":{"type":"string","description":"Database against which Atlas authenticates the user. A user must provide both a username and authentication database to log into MongoDB.\nAccepted values include:\n"},"awsIamType":{"type":"string","description":"If this value is set, the new database user authenticates with AWS IAM credentials. If no value is given, Atlas uses the default value of `NONE`. The accepted types are:\n* `NONE` -\tThe user does not use AWS IAM credentials.\n* `USER` - New database user has AWS IAM user credentials.\n* `ROLE` -  New database user has credentials associated with an AWS IAM role.\n"},"description":{"type":"string","description":"Description of this database user.\n"},"labels":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/DatabaseUserLabel:DatabaseUserLabel"}},"ldapAuthType":{"type":"string","description":"Method by which the provided \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e is authenticated. If no value is given, Atlas uses the default value of `NONE`.\n* `NONE` -\tAtlas authenticates this user through [SCRAM-SHA](https://docs.mongodb.com/manual/core/security-scram/), not LDAP.\n* `USER` - LDAP server authenticates this user through the user's LDAP user. \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e must also be a fully qualified distinguished name, as defined in [RFC-2253](https://tools.ietf.org/html/rfc2253).\n* `GROUP` - LDAP server authenticates this user using their LDAP user and authorizes this user using their LDAP group. To learn more about LDAP security, see [Set up User Authentication and Authorization with LDAP](https://docs.atlas.mongodb.com/security-ldaps). \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e must also be a fully qualified distinguished name, as defined in [RFC-2253](https://tools.ietf.org/html/rfc2253).\n"},"oidcAuthType":{"type":"string","description":"Human-readable label that indicates whether the new database user authenticates with OIDC (OpenID Connect) federated authentication. If no value is given, Atlas uses the default value of `NONE`. The accepted types are:\n* `NONE` -\tThe user does not use OIDC federated authentication.\n* `IDP_GROUP` - OIDC Workforce federated authentication group. To learn more about OIDC federated authentication, see [Set up Workforce Identity Federation with OIDC](https://www.mongodb.com/docs/atlas/security-oidc/).\n* `USER` - OIDC Workload federated authentication user. To learn more about OIDC federated authentication, see [Set up Workload Identity Federation with OIDC](https://www.mongodb.com/docs/atlas/security-oidc/).\n"},"password":{"type":"string","description":"User's initial password. A value is required to create the database user, however the argument may be removed from your Terraform configuration after user creation without impacting the user, password or Terraform management. If you do change management of the password to outside of Terraform it is advised to remove the argument from the Terraform configuration. IMPORTANT --- Passwords may show up in Terraform related logs and it will be stored in the Terraform state file as plain-text. Password can be changed after creation using your preferred method, e.g. via the MongoDB Atlas UI, to ensure security.\n","secret":true},"projectId":{"type":"string","description":"The unique ID for the project to create the database user.\n"},"roles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/DatabaseUserRole:DatabaseUserRole"},"description":"List of user’s roles and the databases / collections on which the roles apply. A role allows the user to perform particular actions on the specified database. A role on the admin database can include privileges that apply to the other databases as well. See Roles below for more details.\n"},"scopes":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/DatabaseUserScope:DatabaseUserScope"}},"username":{"type":"string","description":"Username for authenticating to MongoDB. USER_ARN or ROLE_ARN if \u003cspan pulumi-lang-nodejs=\"`awsIamType`\" pulumi-lang-dotnet=\"`AwsIamType`\" pulumi-lang-go=\"`awsIamType`\" pulumi-lang-python=\"`aws_iam_type`\" pulumi-lang-yaml=\"`awsIamType`\" pulumi-lang-java=\"`awsIamType`\"\u003e`aws_iam_type`\u003c/span\u003e is USER or ROLE.\n"},"x509Type":{"type":"string","description":"X.509 method by which the provided username is authenticated. If no value is given, Atlas uses the default value of NONE. The accepted types are:\n* `NONE` -\tThe user does not use X.509 authentication.\n* `MANAGED` - The user is being created for use with Atlas-managed X.509.Externally authenticated users can only be created on the `$external` database.\n* `CUSTOMER` -  The user is being created for use with Self-Managed X.509. Users created with this x509Type require a Common Name (CN) in the username field. Externally authenticated users can only be created on the `$external` database.\n"}},"type":"object"}},"mongodbatlas:index/encryptionAtRest:EncryptionAtRest":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-go=\"`EncryptionAtRest`\" pulumi-lang-python=\"`EncryptionAtRest`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRest`\"\u003e`mongodbatlas.EncryptionAtRest`\u003c/span\u003e allows management of Encryption at Rest for an Atlas project using Customer Key Management configuration. The following providers are supported:\n- [Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms)\n- [Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms)\n- [Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms)\n\nThe encryption at rest Terraform module makes use of this resource and simplifies its use. It is currently limited to AWS KMS.\n\nAtlas does not automatically rotate user-managed encryption keys. Defer to your preferred Encryption at Rest provider’s documentation and guidance for best practices on key rotation. Atlas automatically creates a 90-day key rotation alert when you configure Encryption at Rest using your Key Management in an Atlas project.\n\nSee [Encryption at Rest](https://docs.atlas.mongodb.com/security-kms-encryption/index.html) for more information, including prerequisites and restrictions.\n\n\u003e **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes.\n\n\u003e **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-encryption-at-rest-using-customer-key-management\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\n\u003e **IMPORTANT NOTE** To disable encryption at rest with customer key management for a project, set \u003cspan pulumi-lang-nodejs=\"`encryptionAtRestProvider`\" pulumi-lang-dotnet=\"`EncryptionAtRestProvider`\" pulumi-lang-go=\"`encryptionAtRestProvider`\" pulumi-lang-python=\"`encryption_at_rest_provider`\" pulumi-lang-yaml=\"`encryptionAtRestProvider`\" pulumi-lang-java=\"`encryptionAtRestProvider`\"\u003e`encryption_at_rest_provider`\u003c/span\u003e to `\"NONE\"` in all existing clusters in the project that use custom key management or delete said clusters.\n\n## Enabling Encryption at Rest for existing Atlas cluster\n\nAfter configuring at least one key management provider for an Atlas project, Project Owners can enable customer key management for each Atlas cluster for which they require encryption. For clusters defined in terraform, the \u003cspan pulumi-lang-nodejs=\"`encryptionAtRestProvider`\" pulumi-lang-dotnet=\"`EncryptionAtRestProvider`\" pulumi-lang-go=\"`encryptionAtRestProvider`\" pulumi-lang-python=\"`encryption_at_rest_provider`\" pulumi-lang-yaml=\"`encryptionAtRestProvider`\" pulumi-lang-java=\"`encryptionAtRestProvider`\"\u003e`encryption_at_rest_provider`\u003c/span\u003e attribute can be used in both \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Cluster`\" pulumi-lang-dotnet=\"`mongodbatlas.Cluster`\" pulumi-lang-go=\"`Cluster`\" pulumi-lang-python=\"`Cluster`\" pulumi-lang-yaml=\"`mongodbatlas.Cluster`\" pulumi-lang-java=\"`mongodbatlas.Cluster`\"\u003e`mongodbatlas.Cluster`\u003c/span\u003e resources. The key management provider does not have to match the cluster cloud service provider.\n\nPlease reference [Enable Customer Key Management for an Atlas Cluster](https://www.mongodb.com/docs/atlas/security-kms-encryption/#enable-customer-key-management-for-an-service-cluster) documentation for additional considerations.\n\n\n## Example Usage\n\n### S\n\n### Configuring encryption at rest using customer key management in AWS\nThe configuration of encryption at rest with customer key management, \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-go=\"`EncryptionAtRest`\" pulumi-lang-python=\"`EncryptionAtRest`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRest`\"\u003e`mongodbatlas.EncryptionAtRest`\u003c/span\u003e, needs to be completed before a cluster is created in the project. Force this wait by using an implicit dependency via \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e as shown in the example below.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst setupOnly = new mongodbatlas.CloudProviderAccessSetup(\"setup_only\", {\n    projectId: atlasProjectId,\n    providerName: \"AWS\",\n});\nconst authRole = new mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", {\n    projectId: atlasProjectId,\n    roleId: setupOnly.roleId,\n    aws: {\n        iamAssumedRoleArn: testRole.arn,\n    },\n});\nconst testEncryptionAtRest = new mongodbatlas.EncryptionAtRest(\"test\", {\n    projectId: atlasProjectId,\n    awsKmsConfig: {\n        enabled: true,\n        customerMasterKeyId: kmsKey.id,\n        region: atlasRegion,\n        roleId: authRole.roleId,\n    },\n    enabledForSearchNodes: true,\n});\nconst cluster = new mongodbatlas.AdvancedCluster(\"cluster\", {\n    projectId: testEncryptionAtRest.projectId,\n    name: \"MyCluster\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    encryptionAtRestProvider: \"AWS\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst test = mongodbatlas.getEncryptionAtRestOutput({\n    projectId: testEncryptionAtRest.projectId,\n});\nexport const isAwsKmsEncryptionAtRestValid = test.apply(test =\u003e test.awsKmsConfig?.valid);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nsetup_only = mongodbatlas.CloudProviderAccessSetup(\"setup_only\",\n    project_id=atlas_project_id,\n    provider_name=\"AWS\")\nauth_role = mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\",\n    project_id=atlas_project_id,\n    role_id=setup_only.role_id,\n    aws={\n        \"iam_assumed_role_arn\": test_role[\"arn\"],\n    })\ntest_encryption_at_rest = mongodbatlas.EncryptionAtRest(\"test\",\n    project_id=atlas_project_id,\n    aws_kms_config={\n        \"enabled\": True,\n        \"customer_master_key_id\": kms_key[\"id\"],\n        \"region\": atlas_region,\n        \"role_id\": auth_role.role_id,\n    },\n    enabled_for_search_nodes=True)\ncluster = mongodbatlas.AdvancedCluster(\"cluster\",\n    project_id=test_encryption_at_rest.project_id,\n    name=\"MyCluster\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    encryption_at_rest_provider=\"AWS\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id)\npulumi.export(\"isAwsKmsEncryptionAtRestValid\", test.aws_kms_config.valid)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var setupOnly = new Mongodbatlas.CloudProviderAccessSetup(\"setup_only\", new()\n    {\n        ProjectId = atlasProjectId,\n        ProviderName = \"AWS\",\n    });\n\n    var authRole = new Mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", new()\n    {\n        ProjectId = atlasProjectId,\n        RoleId = setupOnly.RoleId,\n        Aws = new Mongodbatlas.Inputs.CloudProviderAccessAuthorizationAwsArgs\n        {\n            IamAssumedRoleArn = testRole.Arn,\n        },\n    });\n\n    var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest(\"test\", new()\n    {\n        ProjectId = atlasProjectId,\n        AwsKmsConfig = new Mongodbatlas.Inputs.EncryptionAtRestAwsKmsConfigArgs\n        {\n            Enabled = true,\n            CustomerMasterKeyId = kmsKey.Id,\n            Region = atlasRegion,\n            RoleId = authRole.RoleId,\n        },\n        EnabledForSearchNodes = true,\n    });\n\n    var cluster = new Mongodbatlas.AdvancedCluster(\"cluster\", new()\n    {\n        ProjectId = testEncryptionAtRest.ProjectId,\n        Name = \"MyCluster\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        EncryptionAtRestProvider = \"AWS\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new()\n    {\n        ProjectId = testEncryptionAtRest.ProjectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"isAwsKmsEncryptionAtRestValid\"] = test.Apply(getEncryptionAtRestResult =\u003e getEncryptionAtRestResult.AwsKmsConfig?.Valid),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsetupOnly, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"setup_only\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.Any(atlasProjectId),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tauthRole, err := mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"auth_role\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: pulumi.Any(atlasProjectId),\n\t\t\tRoleId:    setupOnly.RoleId,\n\t\t\tAws: \u0026mongodbatlas.CloudProviderAccessAuthorizationAwsArgs{\n\t\t\t\tIamAssumedRoleArn: pulumi.Any(testRole.Arn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestEncryptionAtRest, err := mongodbatlas.NewEncryptionAtRest(ctx, \"test\", \u0026mongodbatlas.EncryptionAtRestArgs{\n\t\t\tProjectId: pulumi.Any(atlasProjectId),\n\t\t\tAwsKmsConfig: \u0026mongodbatlas.EncryptionAtRestAwsKmsConfigArgs{\n\t\t\t\tEnabled:             pulumi.Bool(true),\n\t\t\t\tCustomerMasterKeyId: pulumi.Any(kmsKey.Id),\n\t\t\t\tRegion:              pulumi.Any(atlasRegion),\n\t\t\t\tRoleId:              authRole.RoleId,\n\t\t\t},\n\t\t\tEnabledForSearchNodes: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewAdvancedCluster(ctx, \"cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:                testEncryptionAtRest.ProjectId,\n\t\t\tName:                     pulumi.String(\"MyCluster\"),\n\t\t\tClusterType:              pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled:            pulumi.Bool(true),\n\t\t\tEncryptionAtRestProvider: pulumi.String(\"AWS\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest := mongodbatlas.LookupEncryptionAtRestOutput(ctx, mongodbatlas.GetEncryptionAtRestOutputArgs{\n\t\t\tProjectId: testEncryptionAtRest.ProjectId,\n\t\t}, nil)\n\t\tctx.Export(\"isAwsKmsEncryptionAtRestValid\", test.ApplyT(func(test mongodbatlas.GetEncryptionAtRestResult) (*bool, error) {\n\t\t\treturn \u0026test.AwsKmsConfig.Valid, nil\n\t\t}).(pulumi.BoolPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;\nimport com.pulumi.mongodbatlas.EncryptionAtRest;\nimport com.pulumi.mongodbatlas.EncryptionAtRestArgs;\nimport com.pulumi.mongodbatlas.inputs.EncryptionAtRestAwsKmsConfigArgs;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var setupOnly = new CloudProviderAccessSetup(\"setupOnly\", CloudProviderAccessSetupArgs.builder()\n            .projectId(atlasProjectId)\n            .providerName(\"AWS\")\n            .build());\n\n        var authRole = new CloudProviderAccessAuthorization(\"authRole\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(atlasProjectId)\n            .roleId(setupOnly.roleId())\n            .aws(CloudProviderAccessAuthorizationAwsArgs.builder()\n                .iamAssumedRoleArn(testRole.arn())\n                .build())\n            .build());\n\n        var testEncryptionAtRest = new EncryptionAtRest(\"testEncryptionAtRest\", EncryptionAtRestArgs.builder()\n            .projectId(atlasProjectId)\n            .awsKmsConfig(EncryptionAtRestAwsKmsConfigArgs.builder()\n                .enabled(true)\n                .customerMasterKeyId(kmsKey.id())\n                .region(atlasRegion)\n                .roleId(authRole.roleId())\n                .build())\n            .enabledForSearchNodes(true)\n            .build());\n\n        var cluster = new AdvancedCluster(\"cluster\", AdvancedClusterArgs.builder()\n            .projectId(testEncryptionAtRest.projectId())\n            .name(\"MyCluster\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .encryptionAtRestProvider(\"AWS\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()\n            .projectId(testEncryptionAtRest.projectId())\n            .build());\n\n        ctx.export(\"isAwsKmsEncryptionAtRestValid\", test.applyValue(_test -\u003e _test.awsKmsConfig().valid()));\n    }\n}\n```\n```yaml\nresources:\n  setupOnly:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: setup_only\n    properties:\n      projectId: ${atlasProjectId}\n      providerName: AWS\n  authRole:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    name: auth_role\n    properties:\n      projectId: ${atlasProjectId}\n      roleId: ${setupOnly.roleId}\n      aws:\n        iamAssumedRoleArn: ${testRole.arn}\n  testEncryptionAtRest:\n    type: mongodbatlas:EncryptionAtRest\n    name: test\n    properties:\n      projectId: ${atlasProjectId}\n      awsKmsConfig:\n        enabled: true\n        customerMasterKeyId: ${kmsKey.id}\n        region: ${atlasRegion}\n        roleId: ${authRole.roleId}\n      enabledForSearchNodes: true\n  cluster:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: ${testEncryptionAtRest.projectId}\n      name: MyCluster\n      clusterType: REPLICASET\n      backupEnabled: true\n      encryptionAtRestProvider: AWS\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: US_EAST_1\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getEncryptionAtRest\n      arguments:\n        projectId: ${testEncryptionAtRest.projectId}\noutputs:\n  isAwsKmsEncryptionAtRestValid: ${test.awsKmsConfig.valid}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**NOTE**  If using the two resources path for cloud provider access, \u003cspan pulumi-lang-nodejs=\"`cloudProviderAccessSetup`\" pulumi-lang-dotnet=\"`CloudProviderAccessSetup`\" pulumi-lang-go=\"`cloudProviderAccessSetup`\" pulumi-lang-python=\"`cloud_provider_access_setup`\" pulumi-lang-yaml=\"`cloudProviderAccessSetup`\" pulumi-lang-java=\"`cloudProviderAccessSetup`\"\u003e`cloud_provider_access_setup`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cloudProviderAccessAuthorization`\" pulumi-lang-dotnet=\"`CloudProviderAccessAuthorization`\" pulumi-lang-go=\"`cloudProviderAccessAuthorization`\" pulumi-lang-python=\"`cloud_provider_access_authorization`\" pulumi-lang-yaml=\"`cloudProviderAccessAuthorization`\" pulumi-lang-java=\"`cloudProviderAccessAuthorization`\"\u003e`cloud_provider_access_authorization`\u003c/span\u003e, you may need to define a \u003cspan pulumi-lang-nodejs=\"`dependsOn`\" pulumi-lang-dotnet=\"`DependsOn`\" pulumi-lang-go=\"`dependsOn`\" pulumi-lang-python=\"`depends_on`\" pulumi-lang-yaml=\"`dependsOn`\" pulumi-lang-java=\"`dependsOn`\"\u003e`depends_on`\u003c/span\u003e statement for these two resources, because terraform is not able to infer the dependency.\n\n### Configuring encryption at rest using customer key management in Azure\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testEncryptionAtRest = new mongodbatlas.EncryptionAtRest(\"test\", {\n    projectId: atlasProjectId,\n    azureKeyVaultConfig: {\n        enabled: true,\n        azureEnvironment: \"AZURE\",\n        subscriptionId: azureSubscriptionId,\n        resourceGroupName: azureResourceGroupName,\n        keyVaultName: azureKeyVaultName,\n        keyIdentifier: azureKeyIdentifier,\n        roleId: azureRoleId,\n    },\n});\nconst test = mongodbatlas.getEncryptionAtRestOutput({\n    projectId: testEncryptionAtRest.projectId,\n});\nexport const isAzureEncryptionAtRestValid = test.apply(test =\u003e test.azureKeyVaultConfig?.valid);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_encryption_at_rest = mongodbatlas.EncryptionAtRest(\"test\",\n    project_id=atlas_project_id,\n    azure_key_vault_config={\n        \"enabled\": True,\n        \"azure_environment\": \"AZURE\",\n        \"subscription_id\": azure_subscription_id,\n        \"resource_group_name\": azure_resource_group_name,\n        \"key_vault_name\": azure_key_vault_name,\n        \"key_identifier\": azure_key_identifier,\n        \"role_id\": azure_role_id,\n    })\ntest = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id)\npulumi.export(\"isAzureEncryptionAtRestValid\", test.azure_key_vault_config.valid)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest(\"test\", new()\n    {\n        ProjectId = atlasProjectId,\n        AzureKeyVaultConfig = new Mongodbatlas.Inputs.EncryptionAtRestAzureKeyVaultConfigArgs\n        {\n            Enabled = true,\n            AzureEnvironment = \"AZURE\",\n            SubscriptionId = azureSubscriptionId,\n            ResourceGroupName = azureResourceGroupName,\n            KeyVaultName = azureKeyVaultName,\n            KeyIdentifier = azureKeyIdentifier,\n            RoleId = azureRoleId,\n        },\n    });\n\n    var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new()\n    {\n        ProjectId = testEncryptionAtRest.ProjectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"isAzureEncryptionAtRestValid\"] = test.Apply(getEncryptionAtRestResult =\u003e getEncryptionAtRestResult.AzureKeyVaultConfig?.Valid),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestEncryptionAtRest, err := mongodbatlas.NewEncryptionAtRest(ctx, \"test\", \u0026mongodbatlas.EncryptionAtRestArgs{\n\t\t\tProjectId: pulumi.Any(atlasProjectId),\n\t\t\tAzureKeyVaultConfig: \u0026mongodbatlas.EncryptionAtRestAzureKeyVaultConfigArgs{\n\t\t\t\tEnabled:           pulumi.Bool(true),\n\t\t\t\tAzureEnvironment:  pulumi.String(\"AZURE\"),\n\t\t\t\tSubscriptionId:    pulumi.Any(azureSubscriptionId),\n\t\t\t\tResourceGroupName: pulumi.Any(azureResourceGroupName),\n\t\t\t\tKeyVaultName:      pulumi.Any(azureKeyVaultName),\n\t\t\t\tKeyIdentifier:     pulumi.Any(azureKeyIdentifier),\n\t\t\t\tRoleId:            pulumi.Any(azureRoleId),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest := mongodbatlas.LookupEncryptionAtRestOutput(ctx, mongodbatlas.GetEncryptionAtRestOutputArgs{\n\t\t\tProjectId: testEncryptionAtRest.ProjectId,\n\t\t}, nil)\n\t\tctx.Export(\"isAzureEncryptionAtRestValid\", test.ApplyT(func(test mongodbatlas.GetEncryptionAtRestResult) (*bool, error) {\n\t\t\treturn \u0026test.AzureKeyVaultConfig.Valid, nil\n\t\t}).(pulumi.BoolPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.EncryptionAtRest;\nimport com.pulumi.mongodbatlas.EncryptionAtRestArgs;\nimport com.pulumi.mongodbatlas.inputs.EncryptionAtRestAzureKeyVaultConfigArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testEncryptionAtRest = new EncryptionAtRest(\"testEncryptionAtRest\", EncryptionAtRestArgs.builder()\n            .projectId(atlasProjectId)\n            .azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs.builder()\n                .enabled(true)\n                .azureEnvironment(\"AZURE\")\n                .subscriptionId(azureSubscriptionId)\n                .resourceGroupName(azureResourceGroupName)\n                .keyVaultName(azureKeyVaultName)\n                .keyIdentifier(azureKeyIdentifier)\n                .roleId(azureRoleId)\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()\n            .projectId(testEncryptionAtRest.projectId())\n            .build());\n\n        ctx.export(\"isAzureEncryptionAtRestValid\", test.applyValue(_test -\u003e _test.azureKeyVaultConfig().valid()));\n    }\n}\n```\n```yaml\nresources:\n  testEncryptionAtRest:\n    type: mongodbatlas:EncryptionAtRest\n    name: test\n    properties:\n      projectId: ${atlasProjectId}\n      azureKeyVaultConfig:\n        enabled: true\n        azureEnvironment: AZURE\n        subscriptionId: ${azureSubscriptionId}\n        resourceGroupName: ${azureResourceGroupName}\n        keyVaultName: ${azureKeyVaultName}\n        keyIdentifier: ${azureKeyIdentifier}\n        roleId: ${azureRoleId}\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getEncryptionAtRest\n      arguments:\n        projectId: ${testEncryptionAtRest.projectId}\noutputs:\n  isAzureEncryptionAtRestValid: ${test.azureKeyVaultConfig.valid}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Manage Customer Keys with Azure Key Vault Over Private Endpoints\nIt is possible to configure Atlas Encryption at Rest to communicate with Customer Managed Keys (Azure Key Vault or AWS KMS) over private network interfaces (Azure Private Link or AWS PrivateLink). This requires enabling the `azure_key_vault_config.require_private_networking` or the `aws_kms_config.require_private_networking` attribute, together with the configuration of the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-go=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-python=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\"\u003e`mongodbatlas.EncryptionAtRestPrivateEndpoint`\u003c/span\u003e resource. \n\nPlease review the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-go=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-python=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\"\u003e`mongodbatlas.EncryptionAtRestPrivateEndpoint`\u003c/span\u003e resource documentation and complete the example for details on this functionality.\n\n\n### Configuring encryption at rest using customer key management in GCP\nFor GCP environments using static service account key, we recommend configuring encryption at rest with customer key management. For more details see our Migration Guide: Encryption at Rest (GCP) Service Account JSON to Role-based Auth.\n\nThis approach uses role-based authentication through Cloud Provider Access for a more secure solution.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.CloudProviderAccessSetup(\"this\", {\n    projectId: atlasProjectId,\n    providerName: \"GCP\",\n});\nconst thisCloudProviderAccessAuthorization = new mongodbatlas.CloudProviderAccessAuthorization(\"this\", {\n    projectId: atlasProjectId,\n    roleId: _this.roleId,\n});\nconst test = new mongodbatlas.EncryptionAtRest(\"test\", {\n    projectId: atlasProjectId,\n    googleCloudKmsConfig: {\n        enabled: true,\n        keyVersionResourceId: cryptoKey.primary[0].name,\n        roleId: thisCloudProviderAccessAuthorization.roleId,\n    },\n}, {\n    dependsOn: [\n        encrypterDecrypterBinding,\n        viewerBinding,\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.CloudProviderAccessSetup(\"this\",\n    project_id=atlas_project_id,\n    provider_name=\"GCP\")\nthis_cloud_provider_access_authorization = mongodbatlas.CloudProviderAccessAuthorization(\"this\",\n    project_id=atlas_project_id,\n    role_id=this.role_id)\ntest = mongodbatlas.EncryptionAtRest(\"test\",\n    project_id=atlas_project_id,\n    google_cloud_kms_config={\n        \"enabled\": True,\n        \"key_version_resource_id\": crypto_key[\"primary\"][0][\"name\"],\n        \"role_id\": this_cloud_provider_access_authorization.role_id,\n    },\n    opts = pulumi.ResourceOptions(depends_on=[\n            encrypter_decrypter_binding,\n            viewer_binding,\n        ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.CloudProviderAccessSetup(\"this\", new()\n    {\n        ProjectId = atlasProjectId,\n        ProviderName = \"GCP\",\n    });\n\n    var thisCloudProviderAccessAuthorization = new Mongodbatlas.CloudProviderAccessAuthorization(\"this\", new()\n    {\n        ProjectId = atlasProjectId,\n        RoleId = @this.RoleId,\n    });\n\n    var test = new Mongodbatlas.EncryptionAtRest(\"test\", new()\n    {\n        ProjectId = atlasProjectId,\n        GoogleCloudKmsConfig = new Mongodbatlas.Inputs.EncryptionAtRestGoogleCloudKmsConfigArgs\n        {\n            Enabled = true,\n            KeyVersionResourceId = cryptoKey.Primary[0].Name,\n            RoleId = thisCloudProviderAccessAuthorization.RoleId,\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            encrypterDecrypterBinding,\n            viewerBinding,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"this\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.Any(atlasProjectId),\n\t\t\tProviderName: pulumi.String(\"GCP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisCloudProviderAccessAuthorization, err := mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"this\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: pulumi.Any(atlasProjectId),\n\t\t\tRoleId:    this.RoleId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewEncryptionAtRest(ctx, \"test\", \u0026mongodbatlas.EncryptionAtRestArgs{\n\t\t\tProjectId: pulumi.Any(atlasProjectId),\n\t\t\tGoogleCloudKmsConfig: \u0026mongodbatlas.EncryptionAtRestGoogleCloudKmsConfigArgs{\n\t\t\t\tEnabled:              pulumi.Bool(true),\n\t\t\t\tKeyVersionResourceId: pulumi.Any(cryptoKey.Primary[0].Name),\n\t\t\t\tRoleId:               thisCloudProviderAccessAuthorization.RoleId,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tencrypterDecrypterBinding,\n\t\t\tviewerBinding,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport com.pulumi.mongodbatlas.EncryptionAtRest;\nimport com.pulumi.mongodbatlas.EncryptionAtRestArgs;\nimport com.pulumi.mongodbatlas.inputs.EncryptionAtRestGoogleCloudKmsConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new CloudProviderAccessSetup(\"this\", CloudProviderAccessSetupArgs.builder()\n            .projectId(atlasProjectId)\n            .providerName(\"GCP\")\n            .build());\n\n        var thisCloudProviderAccessAuthorization = new CloudProviderAccessAuthorization(\"thisCloudProviderAccessAuthorization\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(atlasProjectId)\n            .roleId(this_.roleId())\n            .build());\n\n        var test = new EncryptionAtRest(\"test\", EncryptionAtRestArgs.builder()\n            .projectId(atlasProjectId)\n            .googleCloudKmsConfig(EncryptionAtRestGoogleCloudKmsConfigArgs.builder()\n                .enabled(true)\n                .keyVersionResourceId(cryptoKey.primary()[0].name())\n                .roleId(thisCloudProviderAccessAuthorization.roleId())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(                \n                    encrypterDecrypterBinding,\n                    viewerBinding)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:CloudProviderAccessSetup\n    properties:\n      projectId: ${atlasProjectId}\n      providerName: GCP\n  thisCloudProviderAccessAuthorization:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    name: this\n    properties:\n      projectId: ${atlasProjectId}\n      roleId: ${this.roleId}\n  test:\n    type: mongodbatlas:EncryptionAtRest\n    properties:\n      projectId: ${atlasProjectId}\n      googleCloudKmsConfig:\n        enabled: true\n        keyVersionResourceId: ${cryptoKey.primary[0].name}\n        roleId: ${thisCloudProviderAccessAuthorization.roleId}\n    options:\n      dependsOn:\n        - ${encrypterDecrypterBinding}\n        - ${viewerBinding}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS KMS Encryption at Rest\n- Azure Key Vault Encryption at Rest\n- GCP KMS Encryption at Rest\n\n\n\n## Import \n\nEncryption at Rest Settings can be imported using project ID, in the format \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e, e.g.\n\n```\n$ terraform import mongodbatlas_encryption_at_rest.example 1112222b3bf99403840e8934\n```\n\nFor more information see: [MongoDB Atlas API Reference for Encryption at Rest using Customer Key Management.](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-encryption-at-rest-using-customer-key-management)\n","properties":{"awsKmsConfig":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestAwsKmsConfig:EncryptionAtRestAwsKmsConfig","description":"Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project.\n"},"azureKeyVaultConfig":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestAzureKeyVaultConfig:EncryptionAtRestAzureKeyVaultConfig","description":"Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).\n"},"enabledForSearchNodes":{"type":"boolean","description":"Flag that indicates whether Encryption at Rest for Dedicated Search Nodes is enabled in the specified project.\n"},"googleCloudKmsConfig":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestGoogleCloudKmsConfig:EncryptionAtRestGoogleCloudKmsConfig","description":"Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS).\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"required":["enabledForSearchNodes","projectId"],"inputProperties":{"awsKmsConfig":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestAwsKmsConfig:EncryptionAtRestAwsKmsConfig","description":"Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project.\n"},"azureKeyVaultConfig":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestAzureKeyVaultConfig:EncryptionAtRestAzureKeyVaultConfig","description":"Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).\n"},"enabledForSearchNodes":{"type":"boolean","description":"Flag that indicates whether Encryption at Rest for Dedicated Search Nodes is enabled in the specified project.\n"},"googleCloudKmsConfig":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestGoogleCloudKmsConfig:EncryptionAtRestGoogleCloudKmsConfig","description":"Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS).\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering EncryptionAtRest resources.\n","properties":{"awsKmsConfig":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestAwsKmsConfig:EncryptionAtRestAwsKmsConfig","description":"Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project.\n"},"azureKeyVaultConfig":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestAzureKeyVaultConfig:EncryptionAtRestAzureKeyVaultConfig","description":"Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).\n"},"enabledForSearchNodes":{"type":"boolean","description":"Flag that indicates whether Encryption at Rest for Dedicated Search Nodes is enabled in the specified project.\n"},"googleCloudKmsConfig":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestGoogleCloudKmsConfig:EncryptionAtRestGoogleCloudKmsConfig","description":"Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS).\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object"}},"mongodbatlas:index/encryptionAtRestPrivateEndpoint:EncryptionAtRestPrivateEndpoint":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-go=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-python=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\"\u003e`mongodbatlas.EncryptionAtRestPrivateEndpoint`\u003c/span\u003e provides a resource for managing a private endpoint used for encryption at rest with customer-managed keys. This ensures all traffic between Atlas and customer key management systems take place over private network interfaces.\n\n\u003e **NOTE:** As a prerequisite to configuring a private endpoint for Azure Key Vault or AWS KMS, the corresponding \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-go=\"`EncryptionAtRest`\" pulumi-lang-python=\"`EncryptionAtRest`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRest`\"\u003e`mongodbatlas.EncryptionAtRest`\u003c/span\u003e resource has to be adjusted by configuring to true `azure_key_vault_config.require_private_networking` or `aws_kms_config.require_private_networking`, respectively. This attribute should be updated in place, ensuring the customer-managed keys encryption is never disabled.\n\n\u003e **NOTE:** This resource does not support update operations. To modify values of a private endpoint the existing resource must be deleted and a new one can be created with the modified values.\n\n## Example Usage\n\n### S\n\n\u003e **NOTE:** Only Azure Key Vault with Azure Private Link and AWS KMS over AWS PrivateLink is supported at this time.\n\n### Configuring Atlas Encryption at Rest using Azure Key Vault with Azure Private Link\nTo learn more about existing limitations, see [Manage Customer Keys with Azure Key Vault Over Private Endpoints](https://www.mongodb.com/docs/atlas/security/azure-kms-over-private-endpoint/#manage-customer-keys-with-azure-key-vault-over-private-endpoints).\n\nMake sure to reference the complete example section for detailed steps and considerations.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azapi from \"@pulumi/azapi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst ear = new mongodbatlas.EncryptionAtRest(\"ear\", {\n    projectId: atlasProjectId,\n    azureKeyVaultConfig: {\n        requirePrivateNetworking: true,\n        enabled: true,\n        azureEnvironment: \"AZURE\",\n        tenantId: azureTenantId,\n        subscriptionId: azureSubscriptionId,\n        clientId: azureClientId,\n        secret: azureClientSecret,\n        resourceGroupName: azureResourceGroupName,\n        keyVaultName: azureKeyVaultName,\n        keyIdentifier: azureKeyIdentifier,\n    },\n});\n// Creates private endpoint\nconst endpoint = new mongodbatlas.EncryptionAtRestPrivateEndpoint(\"endpoint\", {\n    projectId: ear.projectId,\n    cloudProvider: \"AZURE\",\n    regionName: azureRegionName,\n});\nconst keyVaultResourceId = `/subscriptions/${azureSubscriptionId}/resourceGroups/${azureResourceGroupName}/providers/Microsoft.KeyVault/vaults/${azureKeyVaultName}`;\n// Approves private endpoint connection from Azure Key Vault\nconst approval = new azapi.index.UpdateResource(\"approval\", {\n    type: \"Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01\",\n    name: endpoint.privateEndpointConnectionName,\n    parentId: keyVaultResourceId,\n    body: JSON.stringify({\n        properties: {\n            privateLinkServiceConnectionState: {\n                description: \"Approved via Terraform\",\n                status: \"Approved\",\n            },\n        },\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_azapi as azapi\nimport pulumi_mongodbatlas as mongodbatlas\n\near = mongodbatlas.EncryptionAtRest(\"ear\",\n    project_id=atlas_project_id,\n    azure_key_vault_config={\n        \"require_private_networking\": True,\n        \"enabled\": True,\n        \"azure_environment\": \"AZURE\",\n        \"tenant_id\": azure_tenant_id,\n        \"subscription_id\": azure_subscription_id,\n        \"client_id\": azure_client_id,\n        \"secret\": azure_client_secret,\n        \"resource_group_name\": azure_resource_group_name,\n        \"key_vault_name\": azure_key_vault_name,\n        \"key_identifier\": azure_key_identifier,\n    })\n# Creates private endpoint\nendpoint = mongodbatlas.EncryptionAtRestPrivateEndpoint(\"endpoint\",\n    project_id=ear.project_id,\n    cloud_provider=\"AZURE\",\n    region_name=azure_region_name)\nkey_vault_resource_id = f\"/subscriptions/{azure_subscription_id}/resourceGroups/{azure_resource_group_name}/providers/Microsoft.KeyVault/vaults/{azure_key_vault_name}\"\n# Approves private endpoint connection from Azure Key Vault\napproval = azapi.index.UpdateResource(\"approval\",\n    type=Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01,\n    name=endpoint.private_endpoint_connection_name,\n    parent_id=key_vault_resource_id,\n    body=json.dumps({\n        properties: {\n            privateLinkServiceConnectionState: {\n                description: Approved via Terraform,\n                status: Approved,\n            },\n        },\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Azapi = Pulumi.Azapi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ear = new Mongodbatlas.EncryptionAtRest(\"ear\", new()\n    {\n        ProjectId = atlasProjectId,\n        AzureKeyVaultConfig = new Mongodbatlas.Inputs.EncryptionAtRestAzureKeyVaultConfigArgs\n        {\n            RequirePrivateNetworking = true,\n            Enabled = true,\n            AzureEnvironment = \"AZURE\",\n            TenantId = azureTenantId,\n            SubscriptionId = azureSubscriptionId,\n            ClientId = azureClientId,\n            Secret = azureClientSecret,\n            ResourceGroupName = azureResourceGroupName,\n            KeyVaultName = azureKeyVaultName,\n            KeyIdentifier = azureKeyIdentifier,\n        },\n    });\n\n    // Creates private endpoint\n    var endpoint = new Mongodbatlas.EncryptionAtRestPrivateEndpoint(\"endpoint\", new()\n    {\n        ProjectId = ear.ProjectId,\n        CloudProvider = \"AZURE\",\n        RegionName = azureRegionName,\n    });\n\n    var keyVaultResourceId = $\"/subscriptions/{azureSubscriptionId}/resourceGroups/{azureResourceGroupName}/providers/Microsoft.KeyVault/vaults/{azureKeyVaultName}\";\n\n    // Approves private endpoint connection from Azure Key Vault\n    var approval = new Azapi.Index.UpdateResource(\"approval\", new()\n    {\n        Type = \"Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01\",\n        Name = endpoint.PrivateEndpointConnectionName,\n        ParentId = keyVaultResourceId,\n        Body = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"properties\"] = new Dictionary\u003cstring, object?\u003e\n            {\n                [\"privateLinkServiceConnectionState\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"description\"] = \"Approved via Terraform\",\n                    [\"status\"] = \"Approved\",\n                },\n            },\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azapi/sdk/go/azapi\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\near, err := mongodbatlas.NewEncryptionAtRest(ctx, \"ear\", \u0026mongodbatlas.EncryptionAtRestArgs{\nProjectId: pulumi.Any(atlasProjectId),\nAzureKeyVaultConfig: \u0026mongodbatlas.EncryptionAtRestAzureKeyVaultConfigArgs{\nRequirePrivateNetworking: pulumi.Bool(true),\nEnabled: pulumi.Bool(true),\nAzureEnvironment: pulumi.String(\"AZURE\"),\nTenantId: pulumi.Any(azureTenantId),\nSubscriptionId: pulumi.Any(azureSubscriptionId),\nClientId: pulumi.Any(azureClientId),\nSecret: pulumi.Any(azureClientSecret),\nResourceGroupName: pulumi.Any(azureResourceGroupName),\nKeyVaultName: pulumi.Any(azureKeyVaultName),\nKeyIdentifier: pulumi.Any(azureKeyIdentifier),\n},\n})\nif err != nil {\nreturn err\n}\n// Creates private endpoint\nendpoint, err := mongodbatlas.NewEncryptionAtRestPrivateEndpoint(ctx, \"endpoint\", \u0026mongodbatlas.EncryptionAtRestPrivateEndpointArgs{\nProjectId: ear.ProjectId,\nCloudProvider: pulumi.String(\"AZURE\"),\nRegionName: pulumi.Any(azureRegionName),\n})\nif err != nil {\nreturn err\n}\nkeyVaultResourceId := fmt.Sprintf(\"/subscriptions/%v/resourceGroups/%v/providers/Microsoft.KeyVault/vaults/%v\", azureSubscriptionId, azureResourceGroupName, azureKeyVaultName);\n// Approves private endpoint connection from Azure Key Vault\n_, err = azapi.NewUpdateResource(ctx, \"approval\", \u0026azapi.UpdateResourceArgs{\nType: \"Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01\",\nName: endpoint.PrivateEndpointConnectionName,\nParentId: keyVaultResourceId,\nBody: %!v(PANIC=Format method: fatal: An assertion has failed: unlowered function toJSON),\n})\nif err != nil {\nreturn err\n}\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.EncryptionAtRest;\nimport com.pulumi.mongodbatlas.EncryptionAtRestArgs;\nimport com.pulumi.mongodbatlas.inputs.EncryptionAtRestAzureKeyVaultConfigArgs;\nimport com.pulumi.mongodbatlas.EncryptionAtRestPrivateEndpoint;\nimport com.pulumi.mongodbatlas.EncryptionAtRestPrivateEndpointArgs;\nimport com.pulumi.azapi.UpdateResource;\nimport com.pulumi.azapi.UpdateResourceArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ear = new EncryptionAtRest(\"ear\", EncryptionAtRestArgs.builder()\n            .projectId(atlasProjectId)\n            .azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs.builder()\n                .requirePrivateNetworking(true)\n                .enabled(true)\n                .azureEnvironment(\"AZURE\")\n                .tenantId(azureTenantId)\n                .subscriptionId(azureSubscriptionId)\n                .clientId(azureClientId)\n                .secret(azureClientSecret)\n                .resourceGroupName(azureResourceGroupName)\n                .keyVaultName(azureKeyVaultName)\n                .keyIdentifier(azureKeyIdentifier)\n                .build())\n            .build());\n\n        // Creates private endpoint\n        var endpoint = new EncryptionAtRestPrivateEndpoint(\"endpoint\", EncryptionAtRestPrivateEndpointArgs.builder()\n            .projectId(ear.projectId())\n            .cloudProvider(\"AZURE\")\n            .regionName(azureRegionName)\n            .build());\n\n        final var keyVaultResourceId = String.format(\"/subscriptions/%s/resourceGroups/%s/providers/Microsoft.KeyVault/vaults/%s\", azureSubscriptionId,azureResourceGroupName,azureKeyVaultName);\n\n        // Approves private endpoint connection from Azure Key Vault\n        var approval = new UpdateResource(\"approval\", UpdateResourceArgs.builder()\n            .type(\"Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01\")\n            .name(endpoint.privateEndpointConnectionName())\n            .parentId(keyVaultResourceId)\n            .body(serializeJson(\n                jsonObject(\n                    jsonProperty(\"properties\", jsonObject(\n                        jsonProperty(\"privateLinkServiceConnectionState\", jsonObject(\n                            jsonProperty(\"description\", \"Approved via Terraform\"),\n                            jsonProperty(\"status\", \"Approved\")\n                        ))\n                    ))\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ear:\n    type: mongodbatlas:EncryptionAtRest\n    properties:\n      projectId: ${atlasProjectId}\n      azureKeyVaultConfig:\n        requirePrivateNetworking: true\n        enabled: true\n        azureEnvironment: AZURE\n        tenantId: ${azureTenantId}\n        subscriptionId: ${azureSubscriptionId}\n        clientId: ${azureClientId}\n        secret: ${azureClientSecret}\n        resourceGroupName: ${azureResourceGroupName}\n        keyVaultName: ${azureKeyVaultName}\n        keyIdentifier: ${azureKeyIdentifier}\n  # Creates private endpoint\n  endpoint:\n    type: mongodbatlas:EncryptionAtRestPrivateEndpoint\n    properties:\n      projectId: ${ear.projectId}\n      cloudProvider: AZURE\n      regionName: ${azureRegionName}\n  # Approves private endpoint connection from Azure Key Vault\n  approval:\n    type: azapi:UpdateResource\n    properties:\n      type: Microsoft.KeyVault/Vaults/PrivateEndpointConnections@2023-07-01\n      name: ${endpoint.privateEndpointConnectionName}\n      parentId: ${keyVaultResourceId}\n      body:\n        fn::toJSON:\n          properties:\n            privateLinkServiceConnectionState:\n              description: Approved via Terraform\n              status: Approved\nvariables:\n  keyVaultResourceId: /subscriptions/${azureSubscriptionId}/resourceGroups/${azureResourceGroupName}/providers/Microsoft.KeyVault/vaults/${azureKeyVaultName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Configuring Atlas Encryption at Rest using AWS KMS with AWS PrivateLink\n\nMake sure to reference the complete example section for detailed steps and considerations.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst ear = new mongodbatlas.EncryptionAtRest(\"ear\", {\n    projectId: atlasProjectId,\n    awsKmsConfig: {\n        requirePrivateNetworking: true,\n        enabled: true,\n        customerMasterKeyId: awsKmsKeyId,\n        region: atlasAwsRegion,\n        roleId: authRole.roleId,\n    },\n});\n// Creates private endpoint\nconst endpoint = new mongodbatlas.EncryptionAtRestPrivateEndpoint(\"endpoint\", {\n    projectId: ear.projectId,\n    cloudProvider: \"AWS\",\n    regionName: atlasAwsRegion,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\near = mongodbatlas.EncryptionAtRest(\"ear\",\n    project_id=atlas_project_id,\n    aws_kms_config={\n        \"require_private_networking\": True,\n        \"enabled\": True,\n        \"customer_master_key_id\": aws_kms_key_id,\n        \"region\": atlas_aws_region,\n        \"role_id\": auth_role[\"roleId\"],\n    })\n# Creates private endpoint\nendpoint = mongodbatlas.EncryptionAtRestPrivateEndpoint(\"endpoint\",\n    project_id=ear.project_id,\n    cloud_provider=\"AWS\",\n    region_name=atlas_aws_region)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ear = new Mongodbatlas.EncryptionAtRest(\"ear\", new()\n    {\n        ProjectId = atlasProjectId,\n        AwsKmsConfig = new Mongodbatlas.Inputs.EncryptionAtRestAwsKmsConfigArgs\n        {\n            RequirePrivateNetworking = true,\n            Enabled = true,\n            CustomerMasterKeyId = awsKmsKeyId,\n            Region = atlasAwsRegion,\n            RoleId = authRole.RoleId,\n        },\n    });\n\n    // Creates private endpoint\n    var endpoint = new Mongodbatlas.EncryptionAtRestPrivateEndpoint(\"endpoint\", new()\n    {\n        ProjectId = ear.ProjectId,\n        CloudProvider = \"AWS\",\n        RegionName = atlasAwsRegion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tear, err := mongodbatlas.NewEncryptionAtRest(ctx, \"ear\", \u0026mongodbatlas.EncryptionAtRestArgs{\n\t\t\tProjectId: pulumi.Any(atlasProjectId),\n\t\t\tAwsKmsConfig: \u0026mongodbatlas.EncryptionAtRestAwsKmsConfigArgs{\n\t\t\t\tRequirePrivateNetworking: pulumi.Bool(true),\n\t\t\t\tEnabled:                  pulumi.Bool(true),\n\t\t\t\tCustomerMasterKeyId:      pulumi.Any(awsKmsKeyId),\n\t\t\t\tRegion:                   pulumi.Any(atlasAwsRegion),\n\t\t\t\tRoleId:                   pulumi.Any(authRole.RoleId),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Creates private endpoint\n\t\t_, err = mongodbatlas.NewEncryptionAtRestPrivateEndpoint(ctx, \"endpoint\", \u0026mongodbatlas.EncryptionAtRestPrivateEndpointArgs{\n\t\t\tProjectId:     ear.ProjectId,\n\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\tRegionName:    pulumi.Any(atlasAwsRegion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.EncryptionAtRest;\nimport com.pulumi.mongodbatlas.EncryptionAtRestArgs;\nimport com.pulumi.mongodbatlas.inputs.EncryptionAtRestAwsKmsConfigArgs;\nimport com.pulumi.mongodbatlas.EncryptionAtRestPrivateEndpoint;\nimport com.pulumi.mongodbatlas.EncryptionAtRestPrivateEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ear = new EncryptionAtRest(\"ear\", EncryptionAtRestArgs.builder()\n            .projectId(atlasProjectId)\n            .awsKmsConfig(EncryptionAtRestAwsKmsConfigArgs.builder()\n                .requirePrivateNetworking(true)\n                .enabled(true)\n                .customerMasterKeyId(awsKmsKeyId)\n                .region(atlasAwsRegion)\n                .roleId(authRole.roleId())\n                .build())\n            .build());\n\n        // Creates private endpoint\n        var endpoint = new EncryptionAtRestPrivateEndpoint(\"endpoint\", EncryptionAtRestPrivateEndpointArgs.builder()\n            .projectId(ear.projectId())\n            .cloudProvider(\"AWS\")\n            .regionName(atlasAwsRegion)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ear:\n    type: mongodbatlas:EncryptionAtRest\n    properties:\n      projectId: ${atlasProjectId}\n      awsKmsConfig:\n        requirePrivateNetworking: true\n        enabled: true\n        customerMasterKeyId: ${awsKmsKeyId}\n        region: ${atlasAwsRegion}\n        roleId: ${authRole.roleId}\n  # Creates private endpoint\n  endpoint:\n    type: mongodbatlas:EncryptionAtRestPrivateEndpoint\n    properties:\n      projectId: ${ear.projectId}\n      cloudProvider: AWS\n      regionName: ${atlasAwsRegion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS KMS Encryption at Rest Private Endpoint\n- Azure Key Vault Encryption at Rest Private Endpoint\n\n\n## Import \n\nEncryption At Rest Private Endpoint resource can be imported using the project ID, cloud provider, and private endpoint ID. The format must be `{project_id}-{cloud_provider}-{private_endpoint_id}` e.g.\n\n```\n$ terraform import mongodbatlas_encryption_at_rest_private_endpoint.test 650972848269185c55f40ca1-AZURE-650972848269185c55f40ca2\n$ terraform import mongodbatlas_encryption_at_rest_private_endpoint.test 650972848269185c55f40ca2-AWS-650972848269185c55f40ca3\n```\n\nFor more information see: \n- [MongoDB Atlas API - Private Endpoint for Encryption at Rest Using Customer Key Management](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getencryptionatrestprivateendpoint) Documentation.\n- [Manage Customer Keys with Azure Key Vault Over Private Endpoints](https://www.mongodb.com/docs/atlas/security/azure-kms-over-private-endpoint/).\n","properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud provider for the Encryption At Rest private endpoint.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"errorMessage":{"type":"string","description":"Error message for failures associated with the Encryption At Rest private endpoint.\n"},"privateEndpointConnectionName":{"type":"string","description":"Connection name of the Azure Private Endpoint.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"regionName":{"type":"string","description":"Cloud provider region in which the Encryption At Rest private endpoint is located.\n"},"status":{"type":"string","description":"State of the Encryption At Rest private endpoint.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestPrivateEndpointTimeouts:EncryptionAtRestPrivateEndpointTimeouts"}},"required":["cloudProvider","deleteOnCreateTimeout","errorMessage","privateEndpointConnectionName","projectId","regionName","status"],"inputProperties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud provider for the Encryption At Rest private endpoint.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"regionName":{"type":"string","description":"Cloud provider region in which the Encryption At Rest private endpoint is located.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestPrivateEndpointTimeouts:EncryptionAtRestPrivateEndpointTimeouts"}},"requiredInputs":["cloudProvider","projectId","regionName"],"stateInputs":{"description":"Input properties used for looking up and filtering EncryptionAtRestPrivateEndpoint resources.\n","properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud provider for the Encryption At Rest private endpoint.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"errorMessage":{"type":"string","description":"Error message for failures associated with the Encryption At Rest private endpoint.\n"},"privateEndpointConnectionName":{"type":"string","description":"Connection name of the Azure Private Endpoint.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"regionName":{"type":"string","description":"Cloud provider region in which the Encryption At Rest private endpoint is located.\n"},"status":{"type":"string","description":"State of the Encryption At Rest private endpoint.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/EncryptionAtRestPrivateEndpointTimeouts:EncryptionAtRestPrivateEndpointTimeouts"}},"type":"object"}},"mongodbatlas:index/eventTrigger:EventTrigger":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EventTrigger`\" pulumi-lang-dotnet=\"`mongodbatlas.EventTrigger`\" pulumi-lang-go=\"`EventTrigger`\" pulumi-lang-python=\"`EventTrigger`\" pulumi-lang-yaml=\"`mongodbatlas.EventTrigger`\" pulumi-lang-java=\"`mongodbatlas.EventTrigger`\"\u003e`mongodbatlas.EventTrigger`\u003c/span\u003e provides a Event Trigger resource.\n\nNote: If the \u003cspan pulumi-lang-nodejs=\"`appId`\" pulumi-lang-dotnet=\"`AppId`\" pulumi-lang-go=\"`appId`\" pulumi-lang-python=\"`app_id`\" pulumi-lang-yaml=\"`appId`\" pulumi-lang-java=\"`appId`\"\u003e`app_id`\u003c/span\u003e changes in the\u003cspan pulumi-lang-nodejs=\" mongodbatlas.EventTrigger \" pulumi-lang-dotnet=\" mongodbatlas.EventTrigger \" pulumi-lang-go=\" EventTrigger \" pulumi-lang-python=\" EventTrigger \" pulumi-lang-yaml=\" mongodbatlas.EventTrigger \" pulumi-lang-java=\" mongodbatlas.EventTrigger \"\u003e mongodbatlas.EventTrigger \u003c/span\u003eresource, it will force a replacement and delete itself from the old Atlas App Services app. If it still exists, then it creates itself in the new  Atlas App Services app. See [Atlas Triggers](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/aws-eventbridge/) to learn more.   \n\n## Example Usage\n\n### S\n\n### Example Usage: Database Trigger with Function\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.EventTrigger(\"test\", {\n    projectId: \"PROJECT ID\",\n    appId: \"APPLICATION ID\",\n    name: \"NAME OF THE TRIGGER\",\n    type: \"DATABASE\",\n    functionId: \"FUNCTION ID\",\n    disabled: false,\n    configOperationTypes: [\n        \"INSERT\",\n        \"UPDATE\",\n    ],\n    configDatabase: \"DATABASE NAME\",\n    configCollection: \"COLLECTION NAME\",\n    configServiceId: \"SERVICE ID\",\n    configMatch: `{\n  \\\\\"updateDescription.updatedFields\\\\\": {\n    \\\\\"status\\\\\": \\\\\"blocked\\\\\"\n  }\n}\n`,\n    configProject: \"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\",\n    configFullDocument: false,\n    configFullDocumentBefore: false,\n    eventProcessors: {\n        awsEventbridge: {\n            configAccountId: \"AWS ACCOUNT ID\",\n            configRegion: \"AWS REGIOn\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.EventTrigger(\"test\",\n    project_id=\"PROJECT ID\",\n    app_id=\"APPLICATION ID\",\n    name=\"NAME OF THE TRIGGER\",\n    type=\"DATABASE\",\n    function_id=\"FUNCTION ID\",\n    disabled=False,\n    config_operation_types=[\n        \"INSERT\",\n        \"UPDATE\",\n    ],\n    config_database=\"DATABASE NAME\",\n    config_collection=\"COLLECTION NAME\",\n    config_service_id=\"SERVICE ID\",\n    config_match=\"\"\"{\n  \\\"updateDescription.updatedFields\\\": {\n    \\\"status\\\": \\\"blocked\\\"\n  }\n}\n\"\"\",\n    config_project=\"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\",\n    config_full_document=False,\n    config_full_document_before=False,\n    event_processors={\n        \"aws_eventbridge\": {\n            \"config_account_id\": \"AWS ACCOUNT ID\",\n            \"config_region\": \"AWS REGIOn\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.EventTrigger(\"test\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        AppId = \"APPLICATION ID\",\n        Name = \"NAME OF THE TRIGGER\",\n        Type = \"DATABASE\",\n        FunctionId = \"FUNCTION ID\",\n        Disabled = false,\n        ConfigOperationTypes = new[]\n        {\n            \"INSERT\",\n            \"UPDATE\",\n        },\n        ConfigDatabase = \"DATABASE NAME\",\n        ConfigCollection = \"COLLECTION NAME\",\n        ConfigServiceId = \"SERVICE ID\",\n        ConfigMatch = @\"{\n  \\\"\"updateDescription.updatedFields\\\"\": {\n    \\\"\"status\\\"\": \\\"\"blocked\\\"\"\n  }\n}\n\",\n        ConfigProject = \"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\",\n        ConfigFullDocument = false,\n        ConfigFullDocumentBefore = false,\n        EventProcessors = new Mongodbatlas.Inputs.EventTriggerEventProcessorsArgs\n        {\n            AwsEventbridge = new Mongodbatlas.Inputs.EventTriggerEventProcessorsAwsEventbridgeArgs\n            {\n                ConfigAccountId = \"AWS ACCOUNT ID\",\n                ConfigRegion = \"AWS REGIOn\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewEventTrigger(ctx, \"test\", \u0026mongodbatlas.EventTriggerArgs{\n\t\t\tProjectId:  pulumi.String(\"PROJECT ID\"),\n\t\t\tAppId:      pulumi.String(\"APPLICATION ID\"),\n\t\t\tName:       pulumi.String(\"NAME OF THE TRIGGER\"),\n\t\t\tType:       pulumi.String(\"DATABASE\"),\n\t\t\tFunctionId: pulumi.String(\"FUNCTION ID\"),\n\t\t\tDisabled:   pulumi.Bool(false),\n\t\t\tConfigOperationTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"INSERT\"),\n\t\t\t\tpulumi.String(\"UPDATE\"),\n\t\t\t},\n\t\t\tConfigDatabase:   pulumi.String(\"DATABASE NAME\"),\n\t\t\tConfigCollection: pulumi.String(\"COLLECTION NAME\"),\n\t\t\tConfigServiceId:  pulumi.String(\"SERVICE ID\"),\n\t\t\tConfigMatch: pulumi.String(`{\n  \\\"updateDescription.updatedFields\\\": {\n    \\\"status\\\": \\\"blocked\\\"\n  }\n}\n`),\n\t\t\tConfigProject:            pulumi.String(\"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\"),\n\t\t\tConfigFullDocument:       pulumi.Bool(false),\n\t\t\tConfigFullDocumentBefore: pulumi.Bool(false),\n\t\t\tEventProcessors: \u0026mongodbatlas.EventTriggerEventProcessorsArgs{\n\t\t\t\tAwsEventbridge: \u0026mongodbatlas.EventTriggerEventProcessorsAwsEventbridgeArgs{\n\t\t\t\t\tConfigAccountId: pulumi.String(\"AWS ACCOUNT ID\"),\n\t\t\t\t\tConfigRegion:    pulumi.String(\"AWS REGIOn\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.EventTrigger;\nimport com.pulumi.mongodbatlas.EventTriggerArgs;\nimport com.pulumi.mongodbatlas.inputs.EventTriggerEventProcessorsArgs;\nimport com.pulumi.mongodbatlas.inputs.EventTriggerEventProcessorsAwsEventbridgeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new EventTrigger(\"test\", EventTriggerArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .appId(\"APPLICATION ID\")\n            .name(\"NAME OF THE TRIGGER\")\n            .type(\"DATABASE\")\n            .functionId(\"FUNCTION ID\")\n            .disabled(false)\n            .configOperationTypes(            \n                \"INSERT\",\n                \"UPDATE\")\n            .configDatabase(\"DATABASE NAME\")\n            .configCollection(\"COLLECTION NAME\")\n            .configServiceId(\"SERVICE ID\")\n            .configMatch(\"\"\"\n{\n  \\\"updateDescription.updatedFields\\\": {\n    \\\"status\\\": \\\"blocked\\\"\n  }\n}\n            \"\"\")\n            .configProject(\"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\")\n            .configFullDocument(false)\n            .configFullDocumentBefore(false)\n            .eventProcessors(EventTriggerEventProcessorsArgs.builder()\n                .awsEventbridge(EventTriggerEventProcessorsAwsEventbridgeArgs.builder()\n                    .configAccountId(\"AWS ACCOUNT ID\")\n                    .configRegion(\"AWS REGIOn\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:EventTrigger\n    properties:\n      projectId: PROJECT ID\n      appId: APPLICATION ID\n      name: NAME OF THE TRIGGER\n      type: DATABASE\n      functionId: FUNCTION ID\n      disabled: false\n      configOperationTypes:\n        - INSERT\n        - UPDATE\n      configDatabase: DATABASE NAME\n      configCollection: COLLECTION NAME\n      configServiceId: SERVICE ID\n      configMatch: |\n        {\n          \\\"updateDescription.updatedFields\\\": {\n            \\\"status\\\": \\\"blocked\\\"\n          }\n        }\n      configProject: '{\"updateDescription.updatedFields\":{\"status\":\"blocked\"}}'\n      configFullDocument: false\n      configFullDocumentBefore: false\n      eventProcessors:\n        awsEventbridge:\n          configAccountId: AWS ACCOUNT ID\n          configRegion: AWS REGIOn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nNote: Terraform allows creating [database triggers,](https://www.mongodb.com/docs/atlas/app-services/triggers/database-triggers/#:~:text=Database%20triggers%20use%20MongoDB%20change,trigger%20created%20in%20a%20collection.) but not Atlas Functions. See [Define a Function](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/functions/#define-a-function) in the Atlas documentation for more details on creating functions in Atlas.\n\n### Example Usage: Database Trigger with EventBridge\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.EventTrigger(\"test\", {\n    projectId: \"PROJECT ID\",\n    appId: \"APPLICATION ID\",\n    name: \"NAME OF THE TRIGGER\",\n    type: \"DATABASE\",\n    disabled: false,\n    unordered: false,\n    configOperationTypes: [\n        \"INSERT\",\n        \"UPDATE\",\n    ],\n    configOperationType: \"LOGIN\",\n    configProviders: [\"anon-user\"],\n    configDatabase: \"DATABASE NAME\",\n    configCollection: \"COLLECTION NAME\",\n    configServiceId: \"1\",\n    configMatch: \"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\",\n    configProject: \"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\",\n    configFullDocument: false,\n    configFullDocumentBefore: false,\n    configSchedule: \"*\",\n    eventProcessors: {\n        awsEventbridge: {\n            configAccountId: \"AWS ACCOUNT ID\",\n            configRegion: \"AWS REGIOn\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.EventTrigger(\"test\",\n    project_id=\"PROJECT ID\",\n    app_id=\"APPLICATION ID\",\n    name=\"NAME OF THE TRIGGER\",\n    type=\"DATABASE\",\n    disabled=False,\n    unordered=False,\n    config_operation_types=[\n        \"INSERT\",\n        \"UPDATE\",\n    ],\n    config_operation_type=\"LOGIN\",\n    config_providers=[\"anon-user\"],\n    config_database=\"DATABASE NAME\",\n    config_collection=\"COLLECTION NAME\",\n    config_service_id=\"1\",\n    config_match=\"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\",\n    config_project=\"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\",\n    config_full_document=False,\n    config_full_document_before=False,\n    config_schedule=\"*\",\n    event_processors={\n        \"aws_eventbridge\": {\n            \"config_account_id\": \"AWS ACCOUNT ID\",\n            \"config_region\": \"AWS REGIOn\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.EventTrigger(\"test\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        AppId = \"APPLICATION ID\",\n        Name = \"NAME OF THE TRIGGER\",\n        Type = \"DATABASE\",\n        Disabled = false,\n        Unordered = false,\n        ConfigOperationTypes = new[]\n        {\n            \"INSERT\",\n            \"UPDATE\",\n        },\n        ConfigOperationType = \"LOGIN\",\n        ConfigProviders = new[]\n        {\n            \"anon-user\",\n        },\n        ConfigDatabase = \"DATABASE NAME\",\n        ConfigCollection = \"COLLECTION NAME\",\n        ConfigServiceId = \"1\",\n        ConfigMatch = \"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\",\n        ConfigProject = \"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\",\n        ConfigFullDocument = false,\n        ConfigFullDocumentBefore = false,\n        ConfigSchedule = \"*\",\n        EventProcessors = new Mongodbatlas.Inputs.EventTriggerEventProcessorsArgs\n        {\n            AwsEventbridge = new Mongodbatlas.Inputs.EventTriggerEventProcessorsAwsEventbridgeArgs\n            {\n                ConfigAccountId = \"AWS ACCOUNT ID\",\n                ConfigRegion = \"AWS REGIOn\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewEventTrigger(ctx, \"test\", \u0026mongodbatlas.EventTriggerArgs{\n\t\t\tProjectId: pulumi.String(\"PROJECT ID\"),\n\t\t\tAppId:     pulumi.String(\"APPLICATION ID\"),\n\t\t\tName:      pulumi.String(\"NAME OF THE TRIGGER\"),\n\t\t\tType:      pulumi.String(\"DATABASE\"),\n\t\t\tDisabled:  pulumi.Bool(false),\n\t\t\tUnordered: pulumi.Bool(false),\n\t\t\tConfigOperationTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"INSERT\"),\n\t\t\t\tpulumi.String(\"UPDATE\"),\n\t\t\t},\n\t\t\tConfigOperationType: pulumi.String(\"LOGIN\"),\n\t\t\tConfigProviders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"anon-user\"),\n\t\t\t},\n\t\t\tConfigDatabase:           pulumi.String(\"DATABASE NAME\"),\n\t\t\tConfigCollection:         pulumi.String(\"COLLECTION NAME\"),\n\t\t\tConfigServiceId:          pulumi.String(\"1\"),\n\t\t\tConfigMatch:              pulumi.String(\"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\"),\n\t\t\tConfigProject:            pulumi.String(\"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\"),\n\t\t\tConfigFullDocument:       pulumi.Bool(false),\n\t\t\tConfigFullDocumentBefore: pulumi.Bool(false),\n\t\t\tConfigSchedule:           pulumi.String(\"*\"),\n\t\t\tEventProcessors: \u0026mongodbatlas.EventTriggerEventProcessorsArgs{\n\t\t\t\tAwsEventbridge: \u0026mongodbatlas.EventTriggerEventProcessorsAwsEventbridgeArgs{\n\t\t\t\t\tConfigAccountId: pulumi.String(\"AWS ACCOUNT ID\"),\n\t\t\t\t\tConfigRegion:    pulumi.String(\"AWS REGIOn\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.EventTrigger;\nimport com.pulumi.mongodbatlas.EventTriggerArgs;\nimport com.pulumi.mongodbatlas.inputs.EventTriggerEventProcessorsArgs;\nimport com.pulumi.mongodbatlas.inputs.EventTriggerEventProcessorsAwsEventbridgeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new EventTrigger(\"test\", EventTriggerArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .appId(\"APPLICATION ID\")\n            .name(\"NAME OF THE TRIGGER\")\n            .type(\"DATABASE\")\n            .disabled(false)\n            .unordered(false)\n            .configOperationTypes(            \n                \"INSERT\",\n                \"UPDATE\")\n            .configOperationType(\"LOGIN\")\n            .configProviders(\"anon-user\")\n            .configDatabase(\"DATABASE NAME\")\n            .configCollection(\"COLLECTION NAME\")\n            .configServiceId(\"1\")\n            .configMatch(\"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\")\n            .configProject(\"{\\\"updateDescription.updatedFields\\\":{\\\"status\\\":\\\"blocked\\\"}}\")\n            .configFullDocument(false)\n            .configFullDocumentBefore(false)\n            .configSchedule(\"*\")\n            .eventProcessors(EventTriggerEventProcessorsArgs.builder()\n                .awsEventbridge(EventTriggerEventProcessorsAwsEventbridgeArgs.builder()\n                    .configAccountId(\"AWS ACCOUNT ID\")\n                    .configRegion(\"AWS REGIOn\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:EventTrigger\n    properties:\n      projectId: PROJECT ID\n      appId: APPLICATION ID\n      name: NAME OF THE TRIGGER\n      type: DATABASE\n      disabled: false\n      unordered: false\n      configOperationTypes:\n        - INSERT\n        - UPDATE\n      configOperationType: LOGIN\n      configProviders:\n        - anon-user\n      configDatabase: DATABASE NAME\n      configCollection: COLLECTION NAME\n      configServiceId: '1'\n      configMatch: '{\"updateDescription.updatedFields\":{\"status\":\"blocked\"}}'\n      configProject: '{\"updateDescription.updatedFields\":{\"status\":\"blocked\"}}'\n      configFullDocument: false\n      configFullDocumentBefore: false\n      configSchedule: '*'\n      eventProcessors:\n        awsEventbridge:\n          configAccountId: AWS ACCOUNT ID\n          configRegion: AWS REGIOn\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Usage: Authentication Trigger\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.EventTrigger(\"test\", {\n    projectId: \"PROJECT ID\",\n    appId: \"APPLICATION ID\",\n    name: \"NAME OF THE TRIGGER\",\n    type: \"AUTHENTICATION\",\n    functionId: \"1\",\n    disabled: false,\n    configOperationType: \"LOGIN\",\n    configProviders: [\"anon-user\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.EventTrigger(\"test\",\n    project_id=\"PROJECT ID\",\n    app_id=\"APPLICATION ID\",\n    name=\"NAME OF THE TRIGGER\",\n    type=\"AUTHENTICATION\",\n    function_id=\"1\",\n    disabled=False,\n    config_operation_type=\"LOGIN\",\n    config_providers=[\"anon-user\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.EventTrigger(\"test\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        AppId = \"APPLICATION ID\",\n        Name = \"NAME OF THE TRIGGER\",\n        Type = \"AUTHENTICATION\",\n        FunctionId = \"1\",\n        Disabled = false,\n        ConfigOperationType = \"LOGIN\",\n        ConfigProviders = new[]\n        {\n            \"anon-user\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewEventTrigger(ctx, \"test\", \u0026mongodbatlas.EventTriggerArgs{\n\t\t\tProjectId:           pulumi.String(\"PROJECT ID\"),\n\t\t\tAppId:               pulumi.String(\"APPLICATION ID\"),\n\t\t\tName:                pulumi.String(\"NAME OF THE TRIGGER\"),\n\t\t\tType:                pulumi.String(\"AUTHENTICATION\"),\n\t\t\tFunctionId:          pulumi.String(\"1\"),\n\t\t\tDisabled:            pulumi.Bool(false),\n\t\t\tConfigOperationType: pulumi.String(\"LOGIN\"),\n\t\t\tConfigProviders: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"anon-user\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.EventTrigger;\nimport com.pulumi.mongodbatlas.EventTriggerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new EventTrigger(\"test\", EventTriggerArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .appId(\"APPLICATION ID\")\n            .name(\"NAME OF THE TRIGGER\")\n            .type(\"AUTHENTICATION\")\n            .functionId(\"1\")\n            .disabled(false)\n            .configOperationType(\"LOGIN\")\n            .configProviders(\"anon-user\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:EventTrigger\n    properties:\n      projectId: PROJECT ID\n      appId: APPLICATION ID\n      name: NAME OF THE TRIGGER\n      type: AUTHENTICATION\n      functionId: '1'\n      disabled: false\n      configOperationType: LOGIN\n      configProviders:\n        - anon-user\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Usage: Scheduled Trigger\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.EventTrigger(\"test\", {\n    projectId: \"PROJECT ID\",\n    appId: \"APPLICATION ID\",\n    name: \"NAME OF THE TRIGGER\",\n    type: \"SCHEDULED\",\n    functionId: \"1\",\n    disabled: false,\n    configSchedule: \"*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.EventTrigger(\"test\",\n    project_id=\"PROJECT ID\",\n    app_id=\"APPLICATION ID\",\n    name=\"NAME OF THE TRIGGER\",\n    type=\"SCHEDULED\",\n    function_id=\"1\",\n    disabled=False,\n    config_schedule=\"*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.EventTrigger(\"test\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        AppId = \"APPLICATION ID\",\n        Name = \"NAME OF THE TRIGGER\",\n        Type = \"SCHEDULED\",\n        FunctionId = \"1\",\n        Disabled = false,\n        ConfigSchedule = \"*\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewEventTrigger(ctx, \"test\", \u0026mongodbatlas.EventTriggerArgs{\n\t\t\tProjectId:      pulumi.String(\"PROJECT ID\"),\n\t\t\tAppId:          pulumi.String(\"APPLICATION ID\"),\n\t\t\tName:           pulumi.String(\"NAME OF THE TRIGGER\"),\n\t\t\tType:           pulumi.String(\"SCHEDULED\"),\n\t\t\tFunctionId:     pulumi.String(\"1\"),\n\t\t\tDisabled:       pulumi.Bool(false),\n\t\t\tConfigSchedule: pulumi.String(\"*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.EventTrigger;\nimport com.pulumi.mongodbatlas.EventTriggerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new EventTrigger(\"test\", EventTriggerArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .appId(\"APPLICATION ID\")\n            .name(\"NAME OF THE TRIGGER\")\n            .type(\"SCHEDULED\")\n            .functionId(\"1\")\n            .disabled(false)\n            .configSchedule(\"*\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:EventTrigger\n    properties:\n      projectId: PROJECT ID\n      appId: APPLICATION ID\n      name: NAME OF THE TRIGGER\n      type: SCHEDULED\n      functionId: '1'\n      disabled: false\n      configSchedule: '*'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nEvent trigger can be imported using project ID, App ID and Trigger ID, in the format \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e--\u003cspan pulumi-lang-nodejs=\"`appId`\" pulumi-lang-dotnet=\"`AppId`\" pulumi-lang-go=\"`appId`\" pulumi-lang-python=\"`app_id`\" pulumi-lang-yaml=\"`appId`\" pulumi-lang-java=\"`appId`\"\u003e`app_id`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`triggerId`\" pulumi-lang-dotnet=\"`TriggerId`\" pulumi-lang-go=\"`triggerId`\" pulumi-lang-python=\"`trigger_id`\" pulumi-lang-yaml=\"`triggerId`\" pulumi-lang-java=\"`triggerId`\"\u003e`trigger_id`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/eventTrigger:EventTrigger test 1112222b3bf99403840e8934--testing-example--1112222b3bf99403840e8934\n```\nFor more details on this resource see [Triggers resource](https://www.mongodb.com/docs/atlas/app-services/admin/api/v3/#tag/triggers) in Atlas App Services Documentation. \n\n","properties":{"appId":{"type":"string","description":"The ObjectID of your application.\n* For more details on \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`appId`\" pulumi-lang-dotnet=\"`AppId`\" pulumi-lang-go=\"`appId`\" pulumi-lang-python=\"`app_id`\" pulumi-lang-yaml=\"`appId`\" pulumi-lang-java=\"`appId`\"\u003e`app_id`\u003c/span\u003e see: https://www.mongodb.com/docs/api/doc/atlas-app-services-admin-api-v3/#topic-project-amp-application-ids\n"},"configCollection":{"type":"string","description":"Optional for `DATABASE` type. The name of the MongoDB collection that the trigger watches for change events. The collection must be part of the specified database.\n"},"configDatabase":{"type":"string","description":"Required for `DATABASE` type. The name of the MongoDB database to watch.\n"},"configFullDocument":{"type":"boolean","description":"Optional for `DATABASE` type. If true, indicates that `UPDATE` change events should include the most current [majority-committed](https://docs.mongodb.com/manual/reference/read-concern-majority/) version of the modified document in the fullDocument field.\n"},"configFullDocumentBefore":{"type":"boolean"},"configMatch":{"type":"string","description":"Optional for `DATABASE` type. A [$match](https://docs.mongodb.com/manual/reference/operator/aggregation/match/) expression document that MongoDB Realm includes in the underlying change stream pipeline for the trigger. This is useful when you want to filter change events beyond their operation type. The trigger will only fire if the expression evaluates to true for a given change event.\n"},"configOperationType":{"type":"string","description":"Required for `AUTHENTICATION` type. The [authentication operation type](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/authentication-triggers/#authentication-events) to listen for. Possible Values: `LOGIN`, `CREATE`, `DELETE`\n"},"configOperationTypes":{"type":"array","items":{"type":"string"},"description":"Required for `DATABASE` type. The [database event operation types](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/database-triggers/#std-label-atlas-database-event-operation-types) to listen for. This must contain at least one value. Possible Values: `INSERT`, `UPDATE`, `REPLACE`, `DELETE`\n"},"configProject":{"type":"string","description":"Optional for `DATABASE` type. A [$project](https://docs.mongodb.com/manual/reference/operator/aggregation/project/) expression document that Realm uses to filter the fields that appear in change event objects.\n"},"configProviders":{"type":"array","items":{"type":"string"},"description":"Required for `AUTHENTICATION` type. A list of one or more [authentication provider](https://www.mongodb.com/docs/atlas/app-services/authentication/#authentication-providers-1) id values. The trigger will only listen for authentication events produced by these providers.\n"},"configSchedule":{"type":"string","description":"Required for `SCHEDULED` type. A [cron expression](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/scheduled-triggers/#cron-expressions) that defines the trigger schedule.\n"},"configScheduleType":{"type":"string"},"configServiceId":{"type":"string","description":"Required for `DATABASE` type. The ID of the MongoDB Service associated with the trigger.\n"},"disabled":{"type":"boolean","description":"Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the trigger is disabled.\n"},"eventProcessors":{"$ref":"#/types/mongodbatlas:index/EventTriggerEventProcessors:EventTriggerEventProcessors","description":"An object where each field name is an event processor ID and each value is an object that configures its corresponding event processor. The following event processors are supported: `AWS_EVENTBRIDGE` For an example configuration object, see [Send Trigger Events to AWS EventBridge](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/aws-eventbridge/#send-trigger-events-to-aws-eventbridge).\n* `event_processors.0.aws_eventbridge.config_account_id` - (Optional) AWS Account ID.\n* `event_processors.0.aws_eventbridge.config_region` - (Optional) Region of AWS Account.\n"},"functionId":{"type":"string","description":"The ID of the function associated with the trigger.\n"},"functionName":{"type":"string","description":"The name of the function associated with the trigger.\n"},"name":{"type":"string","description":"The name of the trigger.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create the trigger.\n"},"triggerId":{"type":"string","description":"The unique ID of the trigger.\n"},"type":{"type":"string","description":"The type of the trigger. Possible Values: `DATABASE`, `AUTHENTICATION`,`SCHEDULED`\n"},"unordered":{"type":"boolean","description":"Only Available for Database Triggers. If true, event ordering is disabled and this trigger can process events in parallel. If false, event ordering is enabled and the trigger executes serially.\n"}},"required":["appId","configCollection","configDatabase","configFullDocument","configFullDocumentBefore","configMatch","configOperationType","configOperationTypes","configProject","configProviders","configSchedule","configScheduleType","configServiceId","disabled","functionName","name","projectId","triggerId","type","unordered"],"inputProperties":{"appId":{"type":"string","description":"The ObjectID of your application.\n* For more details on \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`appId`\" pulumi-lang-dotnet=\"`AppId`\" pulumi-lang-go=\"`appId`\" pulumi-lang-python=\"`app_id`\" pulumi-lang-yaml=\"`appId`\" pulumi-lang-java=\"`appId`\"\u003e`app_id`\u003c/span\u003e see: https://www.mongodb.com/docs/api/doc/atlas-app-services-admin-api-v3/#topic-project-amp-application-ids\n","willReplaceOnChanges":true},"configCollection":{"type":"string","description":"Optional for `DATABASE` type. The name of the MongoDB collection that the trigger watches for change events. The collection must be part of the specified database.\n"},"configDatabase":{"type":"string","description":"Required for `DATABASE` type. The name of the MongoDB database to watch.\n"},"configFullDocument":{"type":"boolean","description":"Optional for `DATABASE` type. If true, indicates that `UPDATE` change events should include the most current [majority-committed](https://docs.mongodb.com/manual/reference/read-concern-majority/) version of the modified document in the fullDocument field.\n"},"configFullDocumentBefore":{"type":"boolean"},"configMatch":{"type":"string","description":"Optional for `DATABASE` type. A [$match](https://docs.mongodb.com/manual/reference/operator/aggregation/match/) expression document that MongoDB Realm includes in the underlying change stream pipeline for the trigger. This is useful when you want to filter change events beyond their operation type. The trigger will only fire if the expression evaluates to true for a given change event.\n"},"configOperationType":{"type":"string","description":"Required for `AUTHENTICATION` type. The [authentication operation type](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/authentication-triggers/#authentication-events) to listen for. Possible Values: `LOGIN`, `CREATE`, `DELETE`\n"},"configOperationTypes":{"type":"array","items":{"type":"string"},"description":"Required for `DATABASE` type. The [database event operation types](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/database-triggers/#std-label-atlas-database-event-operation-types) to listen for. This must contain at least one value. Possible Values: `INSERT`, `UPDATE`, `REPLACE`, `DELETE`\n"},"configProject":{"type":"string","description":"Optional for `DATABASE` type. A [$project](https://docs.mongodb.com/manual/reference/operator/aggregation/project/) expression document that Realm uses to filter the fields that appear in change event objects.\n"},"configProviders":{"type":"array","items":{"type":"string"},"description":"Required for `AUTHENTICATION` type. A list of one or more [authentication provider](https://www.mongodb.com/docs/atlas/app-services/authentication/#authentication-providers-1) id values. The trigger will only listen for authentication events produced by these providers.\n"},"configSchedule":{"type":"string","description":"Required for `SCHEDULED` type. A [cron expression](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/scheduled-triggers/#cron-expressions) that defines the trigger schedule.\n"},"configServiceId":{"type":"string","description":"Required for `DATABASE` type. The ID of the MongoDB Service associated with the trigger.\n"},"disabled":{"type":"boolean","description":"Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the trigger is disabled.\n"},"eventProcessors":{"$ref":"#/types/mongodbatlas:index/EventTriggerEventProcessors:EventTriggerEventProcessors","description":"An object where each field name is an event processor ID and each value is an object that configures its corresponding event processor. The following event processors are supported: `AWS_EVENTBRIDGE` For an example configuration object, see [Send Trigger Events to AWS EventBridge](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/aws-eventbridge/#send-trigger-events-to-aws-eventbridge).\n* `event_processors.0.aws_eventbridge.config_account_id` - (Optional) AWS Account ID.\n* `event_processors.0.aws_eventbridge.config_region` - (Optional) Region of AWS Account.\n"},"functionId":{"type":"string","description":"The ID of the function associated with the trigger.\n"},"name":{"type":"string","description":"The name of the trigger.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create the trigger.\n"},"type":{"type":"string","description":"The type of the trigger. Possible Values: `DATABASE`, `AUTHENTICATION`,`SCHEDULED`\n"},"unordered":{"type":"boolean","description":"Only Available for Database Triggers. If true, event ordering is disabled and this trigger can process events in parallel. If false, event ordering is enabled and the trigger executes serially.\n"}},"requiredInputs":["appId","projectId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering EventTrigger resources.\n","properties":{"appId":{"type":"string","description":"The ObjectID of your application.\n* For more details on \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`appId`\" pulumi-lang-dotnet=\"`AppId`\" pulumi-lang-go=\"`appId`\" pulumi-lang-python=\"`app_id`\" pulumi-lang-yaml=\"`appId`\" pulumi-lang-java=\"`appId`\"\u003e`app_id`\u003c/span\u003e see: https://www.mongodb.com/docs/api/doc/atlas-app-services-admin-api-v3/#topic-project-amp-application-ids\n","willReplaceOnChanges":true},"configCollection":{"type":"string","description":"Optional for `DATABASE` type. The name of the MongoDB collection that the trigger watches for change events. The collection must be part of the specified database.\n"},"configDatabase":{"type":"string","description":"Required for `DATABASE` type. The name of the MongoDB database to watch.\n"},"configFullDocument":{"type":"boolean","description":"Optional for `DATABASE` type. If true, indicates that `UPDATE` change events should include the most current [majority-committed](https://docs.mongodb.com/manual/reference/read-concern-majority/) version of the modified document in the fullDocument field.\n"},"configFullDocumentBefore":{"type":"boolean"},"configMatch":{"type":"string","description":"Optional for `DATABASE` type. A [$match](https://docs.mongodb.com/manual/reference/operator/aggregation/match/) expression document that MongoDB Realm includes in the underlying change stream pipeline for the trigger. This is useful when you want to filter change events beyond their operation type. The trigger will only fire if the expression evaluates to true for a given change event.\n"},"configOperationType":{"type":"string","description":"Required for `AUTHENTICATION` type. The [authentication operation type](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/authentication-triggers/#authentication-events) to listen for. Possible Values: `LOGIN`, `CREATE`, `DELETE`\n"},"configOperationTypes":{"type":"array","items":{"type":"string"},"description":"Required for `DATABASE` type. The [database event operation types](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/database-triggers/#std-label-atlas-database-event-operation-types) to listen for. This must contain at least one value. Possible Values: `INSERT`, `UPDATE`, `REPLACE`, `DELETE`\n"},"configProject":{"type":"string","description":"Optional for `DATABASE` type. A [$project](https://docs.mongodb.com/manual/reference/operator/aggregation/project/) expression document that Realm uses to filter the fields that appear in change event objects.\n"},"configProviders":{"type":"array","items":{"type":"string"},"description":"Required for `AUTHENTICATION` type. A list of one or more [authentication provider](https://www.mongodb.com/docs/atlas/app-services/authentication/#authentication-providers-1) id values. The trigger will only listen for authentication events produced by these providers.\n"},"configSchedule":{"type":"string","description":"Required for `SCHEDULED` type. A [cron expression](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/scheduled-triggers/#cron-expressions) that defines the trigger schedule.\n"},"configScheduleType":{"type":"string"},"configServiceId":{"type":"string","description":"Required for `DATABASE` type. The ID of the MongoDB Service associated with the trigger.\n"},"disabled":{"type":"boolean","description":"Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e If \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the trigger is disabled.\n"},"eventProcessors":{"$ref":"#/types/mongodbatlas:index/EventTriggerEventProcessors:EventTriggerEventProcessors","description":"An object where each field name is an event processor ID and each value is an object that configures its corresponding event processor. The following event processors are supported: `AWS_EVENTBRIDGE` For an example configuration object, see [Send Trigger Events to AWS EventBridge](https://www.mongodb.com/docs/atlas/atlas-ui/triggers/aws-eventbridge/#send-trigger-events-to-aws-eventbridge).\n* `event_processors.0.aws_eventbridge.config_account_id` - (Optional) AWS Account ID.\n* `event_processors.0.aws_eventbridge.config_region` - (Optional) Region of AWS Account.\n"},"functionId":{"type":"string","description":"The ID of the function associated with the trigger.\n"},"functionName":{"type":"string","description":"The name of the function associated with the trigger.\n"},"name":{"type":"string","description":"The name of the trigger.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create the trigger.\n"},"triggerId":{"type":"string","description":"The unique ID of the trigger.\n"},"type":{"type":"string","description":"The type of the trigger. Possible Values: `DATABASE`, `AUTHENTICATION`,`SCHEDULED`\n"},"unordered":{"type":"boolean","description":"Only Available for Database Triggers. If true, event ordering is disabled and this trigger can process events in parallel. If false, event ordering is enabled and the trigger executes serially.\n"}},"type":"object"}},"mongodbatlas:index/federatedDatabaseInstance:FederatedDatabaseInstance":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedDatabaseInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedDatabaseInstance`\" pulumi-lang-go=\"`FederatedDatabaseInstance`\" pulumi-lang-python=\"`FederatedDatabaseInstance`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedDatabaseInstance`\" pulumi-lang-java=\"`mongodbatlas.FederatedDatabaseInstance`\"\u003e`mongodbatlas.FederatedDatabaseInstance`\u003c/span\u003e provides a Federated Database Instance resource.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n### S With MongoDB Atlas Cluster As Storage Database\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.FederatedDatabaseInstance(\"test\", {\n    projectId: \"PROJECT ID\",\n    name: \"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\",\n    storageDatabases: [{\n        name: \"VirtualDatabase0\",\n        collections: [{\n            name: \"NAME OF THE COLLECTION\",\n            dataSources: [{\n                collection: \"COLLECTION IN THE CLUSTER\",\n                database: \"DB IN THE CLUSTER\",\n                storeName: \"CLUSTER NAME\",\n            }],\n        }],\n    }],\n    storageStores: [{\n        name: \"STORE 1 NAME\",\n        clusterName: \"CLUSTER NAME\",\n        projectId: \"PROJECT ID\",\n        provider: \"atlas\",\n        readPreference: {\n            mode: \"secondary\",\n        },\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.FederatedDatabaseInstance(\"test\",\n    project_id=\"PROJECT ID\",\n    name=\"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\",\n    storage_databases=[{\n        \"name\": \"VirtualDatabase0\",\n        \"collections\": [{\n            \"name\": \"NAME OF THE COLLECTION\",\n            \"data_sources\": [{\n                \"collection\": \"COLLECTION IN THE CLUSTER\",\n                \"database\": \"DB IN THE CLUSTER\",\n                \"store_name\": \"CLUSTER NAME\",\n            }],\n        }],\n    }],\n    storage_stores=[{\n        \"name\": \"STORE 1 NAME\",\n        \"cluster_name\": \"CLUSTER NAME\",\n        \"project_id\": \"PROJECT ID\",\n        \"provider\": \"atlas\",\n        \"read_preference\": {\n            \"mode\": \"secondary\",\n        },\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.FederatedDatabaseInstance(\"test\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Name = \"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\",\n        StorageDatabases = new[]\n        {\n            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseArgs\n            {\n                Name = \"VirtualDatabase0\",\n                Collections = new[]\n                {\n                    new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseCollectionArgs\n                    {\n                        Name = \"NAME OF THE COLLECTION\",\n                        DataSources = new[]\n                        {\n                            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs\n                            {\n                                Collection = \"COLLECTION IN THE CLUSTER\",\n                                Database = \"DB IN THE CLUSTER\",\n                                StoreName = \"CLUSTER NAME\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        StorageStores = new[]\n        {\n            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageStoreArgs\n            {\n                Name = \"STORE 1 NAME\",\n                ClusterName = \"CLUSTER NAME\",\n                ProjectId = \"PROJECT ID\",\n                Provider = \"atlas\",\n                ReadPreference = new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageStoreReadPreferenceArgs\n                {\n                    Mode = \"secondary\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedDatabaseInstance(ctx, \"test\", \u0026mongodbatlas.FederatedDatabaseInstanceArgs{\n\t\t\tProjectId: pulumi.String(\"PROJECT ID\"),\n\t\t\tName:      pulumi.String(\"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\"),\n\t\t\tStorageDatabases: mongodbatlas.FederatedDatabaseInstanceStorageDatabaseArray{\n\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"VirtualDatabase0\"),\n\t\t\t\t\tCollections: mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionArray{\n\t\t\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"NAME OF THE COLLECTION\"),\n\t\t\t\t\t\t\tDataSources: mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArray{\n\t\t\t\t\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs{\n\t\t\t\t\t\t\t\t\tCollection: pulumi.String(\"COLLECTION IN THE CLUSTER\"),\n\t\t\t\t\t\t\t\t\tDatabase:   pulumi.String(\"DB IN THE CLUSTER\"),\n\t\t\t\t\t\t\t\t\tStoreName:  pulumi.String(\"CLUSTER NAME\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorageStores: mongodbatlas.FederatedDatabaseInstanceStorageStoreArray{\n\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageStoreArgs{\n\t\t\t\t\tName:        pulumi.String(\"STORE 1 NAME\"),\n\t\t\t\t\tClusterName: pulumi.String(\"CLUSTER NAME\"),\n\t\t\t\t\tProjectId:   pulumi.String(\"PROJECT ID\"),\n\t\t\t\t\tProvider:    pulumi.String(\"atlas\"),\n\t\t\t\t\tReadPreference: \u0026mongodbatlas.FederatedDatabaseInstanceStorageStoreReadPreferenceArgs{\n\t\t\t\t\t\tMode: pulumi.String(\"secondary\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedDatabaseInstance;\nimport com.pulumi.mongodbatlas.FederatedDatabaseInstanceArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceStorageDatabaseArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceStorageStoreArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceStorageStoreReadPreferenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new FederatedDatabaseInstance(\"test\", FederatedDatabaseInstanceArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .name(\"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\")\n            .storageDatabases(FederatedDatabaseInstanceStorageDatabaseArgs.builder()\n                .name(\"VirtualDatabase0\")\n                .collections(FederatedDatabaseInstanceStorageDatabaseCollectionArgs.builder()\n                    .name(\"NAME OF THE COLLECTION\")\n                    .dataSources(FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs.builder()\n                        .collection(\"COLLECTION IN THE CLUSTER\")\n                        .database(\"DB IN THE CLUSTER\")\n                        .storeName(\"CLUSTER NAME\")\n                        .build())\n                    .build())\n                .build())\n            .storageStores(FederatedDatabaseInstanceStorageStoreArgs.builder()\n                .name(\"STORE 1 NAME\")\n                .clusterName(\"CLUSTER NAME\")\n                .projectId(\"PROJECT ID\")\n                .provider(\"atlas\")\n                .readPreference(FederatedDatabaseInstanceStorageStoreReadPreferenceArgs.builder()\n                    .mode(\"secondary\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:FederatedDatabaseInstance\n    properties:\n      projectId: PROJECT ID\n      name: TENANT NAME OF THE FEDERATED DATABASE INSTANCE\n      storageDatabases:\n        - name: VirtualDatabase0\n          collections:\n            - name: NAME OF THE COLLECTION\n              dataSources:\n                - collection: COLLECTION IN THE CLUSTER\n                  database: DB IN THE CLUSTER\n                  storeName: CLUSTER NAME\n      storageStores:\n        - name: STORE 1 NAME\n          clusterName: CLUSTER NAME\n          projectId: PROJECT ID\n          provider: atlas\n          readPreference:\n            mode: secondary\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS Federated Database Instance\n- Azure Federated Database Instance\n\n\n### S With Amazon S3 Bucket As Storage Database\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.FederatedDatabaseInstance(\"test\", {\n    projectId: \"PROJECT ID\",\n    name: \"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\",\n    cloudProviderConfig: {\n        aws: {\n            roleId: \"AWS ROLE ID\",\n            testS3Bucket: \"S3 BUCKET NAME\",\n        },\n    },\n    storageDatabases: [{\n        name: \"VirtualDatabase0\",\n        collections: [{\n            name: \"NAME OF THE COLLECTION\",\n            dataSources: [\n                {\n                    collection: \"COLLECTION IN THE CLUSTER\",\n                    database: \"DB IN THE CLUSTER\",\n                    storeName: \"CLUSTER NAME\",\n                },\n                {\n                    storeName: \"S3 BUCKET NAME\",\n                    path: \"S3 BUCKET PATH\",\n                },\n            ],\n        }],\n    }],\n    storageStores: [\n        {\n            name: \"STORE 1 NAME\",\n            clusterName: \"CLUSTER NAME\",\n            projectId: \"PROJECT ID\",\n            provider: \"atlas\",\n            readPreference: {\n                mode: \"secondary\",\n            },\n        },\n        {\n            bucket: \"STORE 2 NAME\",\n            delimiter: \"/\",\n            name: \"S3 BUCKET NAME\",\n            prefix: \"S3 BUCKET PREFIX\",\n            provider: \"s3\",\n            region: \"AWS REGION\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.FederatedDatabaseInstance(\"test\",\n    project_id=\"PROJECT ID\",\n    name=\"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\",\n    cloud_provider_config={\n        \"aws\": {\n            \"role_id\": \"AWS ROLE ID\",\n            \"test_s3_bucket\": \"S3 BUCKET NAME\",\n        },\n    },\n    storage_databases=[{\n        \"name\": \"VirtualDatabase0\",\n        \"collections\": [{\n            \"name\": \"NAME OF THE COLLECTION\",\n            \"data_sources\": [\n                {\n                    \"collection\": \"COLLECTION IN THE CLUSTER\",\n                    \"database\": \"DB IN THE CLUSTER\",\n                    \"store_name\": \"CLUSTER NAME\",\n                },\n                {\n                    \"store_name\": \"S3 BUCKET NAME\",\n                    \"path\": \"S3 BUCKET PATH\",\n                },\n            ],\n        }],\n    }],\n    storage_stores=[\n        {\n            \"name\": \"STORE 1 NAME\",\n            \"cluster_name\": \"CLUSTER NAME\",\n            \"project_id\": \"PROJECT ID\",\n            \"provider\": \"atlas\",\n            \"read_preference\": {\n                \"mode\": \"secondary\",\n            },\n        },\n        {\n            \"bucket\": \"STORE 2 NAME\",\n            \"delimiter\": \"/\",\n            \"name\": \"S3 BUCKET NAME\",\n            \"prefix\": \"S3 BUCKET PREFIX\",\n            \"provider\": \"s3\",\n            \"region\": \"AWS REGION\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.FederatedDatabaseInstance(\"test\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Name = \"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\",\n        CloudProviderConfig = new Mongodbatlas.Inputs.FederatedDatabaseInstanceCloudProviderConfigArgs\n        {\n            Aws = new Mongodbatlas.Inputs.FederatedDatabaseInstanceCloudProviderConfigAwsArgs\n            {\n                RoleId = \"AWS ROLE ID\",\n                TestS3Bucket = \"S3 BUCKET NAME\",\n            },\n        },\n        StorageDatabases = new[]\n        {\n            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseArgs\n            {\n                Name = \"VirtualDatabase0\",\n                Collections = new[]\n                {\n                    new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseCollectionArgs\n                    {\n                        Name = \"NAME OF THE COLLECTION\",\n                        DataSources = new[]\n                        {\n                            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs\n                            {\n                                Collection = \"COLLECTION IN THE CLUSTER\",\n                                Database = \"DB IN THE CLUSTER\",\n                                StoreName = \"CLUSTER NAME\",\n                            },\n                            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs\n                            {\n                                StoreName = \"S3 BUCKET NAME\",\n                                Path = \"S3 BUCKET PATH\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        StorageStores = new[]\n        {\n            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageStoreArgs\n            {\n                Name = \"STORE 1 NAME\",\n                ClusterName = \"CLUSTER NAME\",\n                ProjectId = \"PROJECT ID\",\n                Provider = \"atlas\",\n                ReadPreference = new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageStoreReadPreferenceArgs\n                {\n                    Mode = \"secondary\",\n                },\n            },\n            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageStoreArgs\n            {\n                Bucket = \"STORE 2 NAME\",\n                Delimiter = \"/\",\n                Name = \"S3 BUCKET NAME\",\n                Prefix = \"S3 BUCKET PREFIX\",\n                Provider = \"s3\",\n                Region = \"AWS REGION\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedDatabaseInstance(ctx, \"test\", \u0026mongodbatlas.FederatedDatabaseInstanceArgs{\n\t\t\tProjectId: pulumi.String(\"PROJECT ID\"),\n\t\t\tName:      pulumi.String(\"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\"),\n\t\t\tCloudProviderConfig: \u0026mongodbatlas.FederatedDatabaseInstanceCloudProviderConfigArgs{\n\t\t\t\tAws: \u0026mongodbatlas.FederatedDatabaseInstanceCloudProviderConfigAwsArgs{\n\t\t\t\t\tRoleId:       pulumi.String(\"AWS ROLE ID\"),\n\t\t\t\t\tTestS3Bucket: pulumi.String(\"S3 BUCKET NAME\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorageDatabases: mongodbatlas.FederatedDatabaseInstanceStorageDatabaseArray{\n\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"VirtualDatabase0\"),\n\t\t\t\t\tCollections: mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionArray{\n\t\t\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"NAME OF THE COLLECTION\"),\n\t\t\t\t\t\t\tDataSources: mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArray{\n\t\t\t\t\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs{\n\t\t\t\t\t\t\t\t\tCollection: pulumi.String(\"COLLECTION IN THE CLUSTER\"),\n\t\t\t\t\t\t\t\t\tDatabase:   pulumi.String(\"DB IN THE CLUSTER\"),\n\t\t\t\t\t\t\t\t\tStoreName:  pulumi.String(\"CLUSTER NAME\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs{\n\t\t\t\t\t\t\t\t\tStoreName: pulumi.String(\"S3 BUCKET NAME\"),\n\t\t\t\t\t\t\t\t\tPath:      pulumi.String(\"S3 BUCKET PATH\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorageStores: mongodbatlas.FederatedDatabaseInstanceStorageStoreArray{\n\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageStoreArgs{\n\t\t\t\t\tName:        pulumi.String(\"STORE 1 NAME\"),\n\t\t\t\t\tClusterName: pulumi.String(\"CLUSTER NAME\"),\n\t\t\t\t\tProjectId:   pulumi.String(\"PROJECT ID\"),\n\t\t\t\t\tProvider:    pulumi.String(\"atlas\"),\n\t\t\t\t\tReadPreference: \u0026mongodbatlas.FederatedDatabaseInstanceStorageStoreReadPreferenceArgs{\n\t\t\t\t\t\tMode: pulumi.String(\"secondary\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageStoreArgs{\n\t\t\t\t\tBucket:    pulumi.String(\"STORE 2 NAME\"),\n\t\t\t\t\tDelimiter: pulumi.String(\"/\"),\n\t\t\t\t\tName:      pulumi.String(\"S3 BUCKET NAME\"),\n\t\t\t\t\tPrefix:    pulumi.String(\"S3 BUCKET PREFIX\"),\n\t\t\t\t\tProvider:  pulumi.String(\"s3\"),\n\t\t\t\t\tRegion:    pulumi.String(\"AWS REGION\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedDatabaseInstance;\nimport com.pulumi.mongodbatlas.FederatedDatabaseInstanceArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceCloudProviderConfigArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceCloudProviderConfigAwsArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceStorageDatabaseArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceStorageStoreArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceStorageStoreReadPreferenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new FederatedDatabaseInstance(\"test\", FederatedDatabaseInstanceArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .name(\"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\")\n            .cloudProviderConfig(FederatedDatabaseInstanceCloudProviderConfigArgs.builder()\n                .aws(FederatedDatabaseInstanceCloudProviderConfigAwsArgs.builder()\n                    .roleId(\"AWS ROLE ID\")\n                    .testS3Bucket(\"S3 BUCKET NAME\")\n                    .build())\n                .build())\n            .storageDatabases(FederatedDatabaseInstanceStorageDatabaseArgs.builder()\n                .name(\"VirtualDatabase0\")\n                .collections(FederatedDatabaseInstanceStorageDatabaseCollectionArgs.builder()\n                    .name(\"NAME OF THE COLLECTION\")\n                    .dataSources(                    \n                        FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs.builder()\n                            .collection(\"COLLECTION IN THE CLUSTER\")\n                            .database(\"DB IN THE CLUSTER\")\n                            .storeName(\"CLUSTER NAME\")\n                            .build(),\n                        FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs.builder()\n                            .storeName(\"S3 BUCKET NAME\")\n                            .path(\"S3 BUCKET PATH\")\n                            .build())\n                    .build())\n                .build())\n            .storageStores(            \n                FederatedDatabaseInstanceStorageStoreArgs.builder()\n                    .name(\"STORE 1 NAME\")\n                    .clusterName(\"CLUSTER NAME\")\n                    .projectId(\"PROJECT ID\")\n                    .provider(\"atlas\")\n                    .readPreference(FederatedDatabaseInstanceStorageStoreReadPreferenceArgs.builder()\n                        .mode(\"secondary\")\n                        .build())\n                    .build(),\n                FederatedDatabaseInstanceStorageStoreArgs.builder()\n                    .bucket(\"STORE 2 NAME\")\n                    .delimiter(\"/\")\n                    .name(\"S3 BUCKET NAME\")\n                    .prefix(\"S3 BUCKET PREFIX\")\n                    .provider(\"s3\")\n                    .region(\"AWS REGION\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:FederatedDatabaseInstance\n    properties:\n      projectId: PROJECT ID\n      name: TENANT NAME OF THE FEDERATED DATABASE INSTANCE\n      cloudProviderConfig:\n        aws:\n          roleId: AWS ROLE ID\n          testS3Bucket: S3 BUCKET NAME\n      storageDatabases:\n        - name: VirtualDatabase0\n          collections:\n            - name: NAME OF THE COLLECTION\n              dataSources:\n                - collection: COLLECTION IN THE CLUSTER\n                  database: DB IN THE CLUSTER\n                  storeName: CLUSTER NAME\n                - storeName: S3 BUCKET NAME\n                  path: S3 BUCKET PATH\n      storageStores:\n        - name: STORE 1 NAME\n          clusterName: CLUSTER NAME\n          projectId: PROJECT ID\n          provider: atlas\n          readPreference:\n            mode: secondary\n        - bucket: STORE 2 NAME\n          delimiter: /\n          name: S3 BUCKET NAME\n          prefix: S3 BUCKET PREFIX\n          provider: s3\n          region: AWS REGION\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example of Azure Blob Storage as storage database\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.FederatedDatabaseInstance(\"test\", {\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    name: \"\u003cTENANT_NAME_OF_THE_FEDERATED DATABASE_INSTANCE\u003e\",\n    cloudProviderConfig: {\n        azure: {\n            roleId: \"\u003cAZURE_ROLE_ID\u003e\",\n        },\n    },\n    storageDatabases: [{\n        name: \"VirtualDatabase0\",\n        collections: [{\n            name: \"NAME OF THE COLLECTION\",\n            dataSources: [\n                {\n                    collection: \"COLLECTION IN THE CLUSTER\",\n                    database: \"DB IN THE CLUSTER\",\n                    storeName: \"CLUSTER NAME\",\n                },\n                {\n                    storeName: \"AZURE BLOB STORAGE NAME\",\n                    path: \"AZURE BLOB PATH\",\n                },\n            ],\n        }],\n    }],\n    storageStores: [\n        {\n            name: \"STORE NAME\",\n            clusterName: \"CLUSTER NAME\",\n            projectId: \"PROJECT ID\",\n            provider: \"atlas\",\n            readPreference: {\n                mode: \"secondary\",\n            },\n        },\n        {\n            name: \"AZURE BLOB STORAGE NAME\",\n            provider: \"azure\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.FederatedDatabaseInstance(\"test\",\n    project_id=\"\u003cPROJECT_ID\u003e\",\n    name=\"\u003cTENANT_NAME_OF_THE_FEDERATED DATABASE_INSTANCE\u003e\",\n    cloud_provider_config={\n        \"azure\": {\n            \"role_id\": \"\u003cAZURE_ROLE_ID\u003e\",\n        },\n    },\n    storage_databases=[{\n        \"name\": \"VirtualDatabase0\",\n        \"collections\": [{\n            \"name\": \"NAME OF THE COLLECTION\",\n            \"data_sources\": [\n                {\n                    \"collection\": \"COLLECTION IN THE CLUSTER\",\n                    \"database\": \"DB IN THE CLUSTER\",\n                    \"store_name\": \"CLUSTER NAME\",\n                },\n                {\n                    \"store_name\": \"AZURE BLOB STORAGE NAME\",\n                    \"path\": \"AZURE BLOB PATH\",\n                },\n            ],\n        }],\n    }],\n    storage_stores=[\n        {\n            \"name\": \"STORE NAME\",\n            \"cluster_name\": \"CLUSTER NAME\",\n            \"project_id\": \"PROJECT ID\",\n            \"provider\": \"atlas\",\n            \"read_preference\": {\n                \"mode\": \"secondary\",\n            },\n        },\n        {\n            \"name\": \"AZURE BLOB STORAGE NAME\",\n            \"provider\": \"azure\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.FederatedDatabaseInstance(\"test\", new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        Name = \"\u003cTENANT_NAME_OF_THE_FEDERATED DATABASE_INSTANCE\u003e\",\n        CloudProviderConfig = new Mongodbatlas.Inputs.FederatedDatabaseInstanceCloudProviderConfigArgs\n        {\n            Azure = new Mongodbatlas.Inputs.FederatedDatabaseInstanceCloudProviderConfigAzureArgs\n            {\n                RoleId = \"\u003cAZURE_ROLE_ID\u003e\",\n            },\n        },\n        StorageDatabases = new[]\n        {\n            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseArgs\n            {\n                Name = \"VirtualDatabase0\",\n                Collections = new[]\n                {\n                    new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseCollectionArgs\n                    {\n                        Name = \"NAME OF THE COLLECTION\",\n                        DataSources = new[]\n                        {\n                            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs\n                            {\n                                Collection = \"COLLECTION IN THE CLUSTER\",\n                                Database = \"DB IN THE CLUSTER\",\n                                StoreName = \"CLUSTER NAME\",\n                            },\n                            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs\n                            {\n                                StoreName = \"AZURE BLOB STORAGE NAME\",\n                                Path = \"AZURE BLOB PATH\",\n                            },\n                        },\n                    },\n                },\n            },\n        },\n        StorageStores = new[]\n        {\n            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageStoreArgs\n            {\n                Name = \"STORE NAME\",\n                ClusterName = \"CLUSTER NAME\",\n                ProjectId = \"PROJECT ID\",\n                Provider = \"atlas\",\n                ReadPreference = new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageStoreReadPreferenceArgs\n                {\n                    Mode = \"secondary\",\n                },\n            },\n            new Mongodbatlas.Inputs.FederatedDatabaseInstanceStorageStoreArgs\n            {\n                Name = \"AZURE BLOB STORAGE NAME\",\n                Provider = \"azure\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedDatabaseInstance(ctx, \"test\", \u0026mongodbatlas.FederatedDatabaseInstanceArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT_ID\u003e\"),\n\t\t\tName:      pulumi.String(\"\u003cTENANT_NAME_OF_THE_FEDERATED DATABASE_INSTANCE\u003e\"),\n\t\t\tCloudProviderConfig: \u0026mongodbatlas.FederatedDatabaseInstanceCloudProviderConfigArgs{\n\t\t\t\tAzure: \u0026mongodbatlas.FederatedDatabaseInstanceCloudProviderConfigAzureArgs{\n\t\t\t\t\tRoleId: pulumi.String(\"\u003cAZURE_ROLE_ID\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorageDatabases: mongodbatlas.FederatedDatabaseInstanceStorageDatabaseArray{\n\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseArgs{\n\t\t\t\t\tName: pulumi.String(\"VirtualDatabase0\"),\n\t\t\t\t\tCollections: mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionArray{\n\t\t\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"NAME OF THE COLLECTION\"),\n\t\t\t\t\t\t\tDataSources: mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArray{\n\t\t\t\t\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs{\n\t\t\t\t\t\t\t\t\tCollection: pulumi.String(\"COLLECTION IN THE CLUSTER\"),\n\t\t\t\t\t\t\t\t\tDatabase:   pulumi.String(\"DB IN THE CLUSTER\"),\n\t\t\t\t\t\t\t\t\tStoreName:  pulumi.String(\"CLUSTER NAME\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs{\n\t\t\t\t\t\t\t\t\tStoreName: pulumi.String(\"AZURE BLOB STORAGE NAME\"),\n\t\t\t\t\t\t\t\t\tPath:      pulumi.String(\"AZURE BLOB PATH\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tStorageStores: mongodbatlas.FederatedDatabaseInstanceStorageStoreArray{\n\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageStoreArgs{\n\t\t\t\t\tName:        pulumi.String(\"STORE NAME\"),\n\t\t\t\t\tClusterName: pulumi.String(\"CLUSTER NAME\"),\n\t\t\t\t\tProjectId:   pulumi.String(\"PROJECT ID\"),\n\t\t\t\t\tProvider:    pulumi.String(\"atlas\"),\n\t\t\t\t\tReadPreference: \u0026mongodbatlas.FederatedDatabaseInstanceStorageStoreReadPreferenceArgs{\n\t\t\t\t\t\tMode: pulumi.String(\"secondary\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.FederatedDatabaseInstanceStorageStoreArgs{\n\t\t\t\t\tName:     pulumi.String(\"AZURE BLOB STORAGE NAME\"),\n\t\t\t\t\tProvider: pulumi.String(\"azure\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedDatabaseInstance;\nimport com.pulumi.mongodbatlas.FederatedDatabaseInstanceArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceCloudProviderConfigArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceCloudProviderConfigAzureArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceStorageDatabaseArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceStorageStoreArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceStorageStoreReadPreferenceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new FederatedDatabaseInstance(\"test\", FederatedDatabaseInstanceArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .name(\"\u003cTENANT_NAME_OF_THE_FEDERATED DATABASE_INSTANCE\u003e\")\n            .cloudProviderConfig(FederatedDatabaseInstanceCloudProviderConfigArgs.builder()\n                .azure(FederatedDatabaseInstanceCloudProviderConfigAzureArgs.builder()\n                    .roleId(\"\u003cAZURE_ROLE_ID\u003e\")\n                    .build())\n                .build())\n            .storageDatabases(FederatedDatabaseInstanceStorageDatabaseArgs.builder()\n                .name(\"VirtualDatabase0\")\n                .collections(FederatedDatabaseInstanceStorageDatabaseCollectionArgs.builder()\n                    .name(\"NAME OF THE COLLECTION\")\n                    .dataSources(                    \n                        FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs.builder()\n                            .collection(\"COLLECTION IN THE CLUSTER\")\n                            .database(\"DB IN THE CLUSTER\")\n                            .storeName(\"CLUSTER NAME\")\n                            .build(),\n                        FederatedDatabaseInstanceStorageDatabaseCollectionDataSourceArgs.builder()\n                            .storeName(\"AZURE BLOB STORAGE NAME\")\n                            .path(\"AZURE BLOB PATH\")\n                            .build())\n                    .build())\n                .build())\n            .storageStores(            \n                FederatedDatabaseInstanceStorageStoreArgs.builder()\n                    .name(\"STORE NAME\")\n                    .clusterName(\"CLUSTER NAME\")\n                    .projectId(\"PROJECT ID\")\n                    .provider(\"atlas\")\n                    .readPreference(FederatedDatabaseInstanceStorageStoreReadPreferenceArgs.builder()\n                        .mode(\"secondary\")\n                        .build())\n                    .build(),\n                FederatedDatabaseInstanceStorageStoreArgs.builder()\n                    .name(\"AZURE BLOB STORAGE NAME\")\n                    .provider(\"azure\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:FederatedDatabaseInstance\n    properties:\n      projectId: \u003cPROJECT_ID\u003e\n      name: \u003cTENANT_NAME_OF_THE_FEDERATED DATABASE_INSTANCE\u003e\n      cloudProviderConfig:\n        azure:\n          roleId: \u003cAZURE_ROLE_ID\u003e\n      storageDatabases:\n        - name: VirtualDatabase0\n          collections:\n            - name: NAME OF THE COLLECTION\n              dataSources:\n                - collection: COLLECTION IN THE CLUSTER\n                  database: DB IN THE CLUSTER\n                  storeName: CLUSTER NAME\n                - storeName: AZURE BLOB STORAGE NAME\n                  path: AZURE BLOB PATH\n      storageStores:\n        - name: STORE NAME\n          clusterName: CLUSTER NAME\n          projectId: PROJECT ID\n          provider: atlas\n          readPreference:\n            mode: secondary\n        - name: AZURE BLOB STORAGE NAME\n          provider: azure\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example specifying data process region and provider\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.FederatedDatabaseInstance(\"test\", {\n    projectId: \"PROJECT ID\",\n    name: \"NAME OF THE FEDERATED DATABASE INSTANCE\",\n    dataProcessRegion: {\n        cloudProvider: \"AWS\",\n        region: \"OREGON_USA\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.FederatedDatabaseInstance(\"test\",\n    project_id=\"PROJECT ID\",\n    name=\"NAME OF THE FEDERATED DATABASE INSTANCE\",\n    data_process_region={\n        \"cloud_provider\": \"AWS\",\n        \"region\": \"OREGON_USA\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.FederatedDatabaseInstance(\"test\", new()\n    {\n        ProjectId = \"PROJECT ID\",\n        Name = \"NAME OF THE FEDERATED DATABASE INSTANCE\",\n        DataProcessRegion = new Mongodbatlas.Inputs.FederatedDatabaseInstanceDataProcessRegionArgs\n        {\n            CloudProvider = \"AWS\",\n            Region = \"OREGON_USA\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedDatabaseInstance(ctx, \"test\", \u0026mongodbatlas.FederatedDatabaseInstanceArgs{\n\t\t\tProjectId: pulumi.String(\"PROJECT ID\"),\n\t\t\tName:      pulumi.String(\"NAME OF THE FEDERATED DATABASE INSTANCE\"),\n\t\t\tDataProcessRegion: \u0026mongodbatlas.FederatedDatabaseInstanceDataProcessRegionArgs{\n\t\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\t\tRegion:        pulumi.String(\"OREGON_USA\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedDatabaseInstance;\nimport com.pulumi.mongodbatlas.FederatedDatabaseInstanceArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedDatabaseInstanceDataProcessRegionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new FederatedDatabaseInstance(\"test\", FederatedDatabaseInstanceArgs.builder()\n            .projectId(\"PROJECT ID\")\n            .name(\"NAME OF THE FEDERATED DATABASE INSTANCE\")\n            .dataProcessRegion(FederatedDatabaseInstanceDataProcessRegionArgs.builder()\n                .cloudProvider(\"AWS\")\n                .region(\"OREGON_USA\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:FederatedDatabaseInstance\n    properties:\n      projectId: PROJECT ID\n      name: NAME OF THE FEDERATED DATABASE INSTANCE\n      dataProcessRegion:\n        cloudProvider: AWS\n        region: OREGON_USA\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\n- The Federated Database Instance can be imported using project ID, name of the instance, in the format \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e--\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, e.g.\n  ```sh\n  $ pulumi import mongodbatlas:index/federatedDatabaseInstance:FederatedDatabaseInstance example 1112222b3bf99403840e8934--test\n```\n\n- The Federated Database Instance can be imported using project ID, name of the instance and name of the AWS S3 bucket, in the format \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e--\u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e--\u003cspan pulumi-lang-nodejs=\"`awsTestS3Bucket`\" pulumi-lang-dotnet=\"`AwsTestS3Bucket`\" pulumi-lang-go=\"`awsTestS3Bucket`\" pulumi-lang-python=\"`aws_test_s3_bucket`\" pulumi-lang-yaml=\"`awsTestS3Bucket`\" pulumi-lang-java=\"`awsTestS3Bucket`\"\u003e`aws_test_s3_bucket`\u003c/span\u003e, e.g.\n\n  ```sh\n  $ pulumi import mongodbatlas:index/federatedDatabaseInstance:FederatedDatabaseInstance example 1112222b3bf99403840e8934--test--s3-test\n```\n\nSee [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation) Documentation for more information.\n\n","properties":{"cloudProviderConfig":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceCloudProviderConfig:FederatedDatabaseInstanceCloudProviderConfig","description":"Cloud provider linked to this data federated instance.\n* `cloud_provider_config.aws` - AWS provider of the cloud service where the Federated Database Instance can access the S3 Bucket.\n* `cloud_provider_config.aws.role_id` - (Required) Unique identifier of the role that the Federated Instance can use to access the data stores. If necessary, use the Atlas [UI](https://docs.atlas.mongodb.com/security/manage-iam-roles/) or [API](https://docs.atlas.mongodb.com/reference/api/cloud-provider-access-get-roles/) to retrieve the role ID. You must also specify the \u003cspan pulumi-lang-nodejs=\"`testS3Bucket`\" pulumi-lang-dotnet=\"`TestS3Bucket`\" pulumi-lang-go=\"`testS3Bucket`\" pulumi-lang-python=\"`test_s3_bucket`\" pulumi-lang-yaml=\"`testS3Bucket`\" pulumi-lang-java=\"`testS3Bucket`\"\u003e`test_s3_bucket`\u003c/span\u003e.\n* `cloud_provider_config.aws.test_s3_bucket` - (Required) Name of the S3 data bucket that the provided role ID is authorized to access. You must also specify the \u003cspan pulumi-lang-nodejs=\"`roleId`\" pulumi-lang-dotnet=\"`RoleId`\" pulumi-lang-go=\"`roleId`\" pulumi-lang-python=\"`role_id`\" pulumi-lang-yaml=\"`roleId`\" pulumi-lang-java=\"`roleId`\"\u003e`role_id`\u003c/span\u003e.\n* `cloud_provider_config.azure` - Microsoft Azure provider of the cloud service where the Federated Database Instance can access Blob Storage.\n* `cloud_provider_config.azure.role_id` - (Required) Unique identifier of the role that the Federated Database Instance can use to access the data stores.\n"},"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceDataProcessRegion:FederatedDatabaseInstanceDataProcessRegion","description":"The cloud provider region to which the Federated Instance routes client connections for data processing.\n* `data_process_region.cloud_provider` - (Required) Name of the cloud service provider. Supported providers: `AWS`, `AZURE`.\n* `data_process_region.region` - (Required) Name of the region to which the Federated Instance routes client connections for data processing. See the [documentation](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation/operation/createFederatedDatabase) for the available region.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"The list of hostnames assigned to the Federated Database Instance. Each string in the array is a hostname assigned to the Federated Database Instance.\n"},"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"state":{"type":"string","description":"Current state of the Federated Database Instance:\n* `ACTIVE` - The Federated Database Instance is active and verified. You can query the data stores associated with the Federated Database Instance.\n* `DELETED` - The Federated Database Instance was deleted.\n"},"storageDatabases":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageDatabase:FederatedDatabaseInstanceStorageDatabase"},"description":"Configuration details for mapping each data store to queryable databases and collections. For complete documentation on this object and its nested fields, see [databases](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#databases). An empty object indicates that the Federated Database Instance has no mapping configuration for any data store.\n* `storage_databases.#.name` - Name of the database to which the Federated Database Instance maps the data contained in the data store.\n* `storage_databases.#.collections` -     Array of objects where each object represents a collection and data sources that map to a [stores](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#stores) data store.\n* `storage_databases.#.collections.#.name` - Name of the collection.\n* `storage_databases.#.collections.#.data_sources` -     Array of objects where each object represents a stores data store to map with the collection.\n* `storage_databases.#.collections.#.data_sources.#.store_name` -     Name of a data store to map to the `\u003ccollection\u003e`. Must match the name of an object in the stores array.\n* `storage_databases.#.collections.#.data_sources.#.dataset_name` -     Human-readable label that identifies the dataset that Atlas generates for an ingestion pipeline run or Online Archive.\n* `storage_databases.#.collections.#.data_sources.#.default_format` - Default format that Federated Database assumes if it encounters a file without an extension while searching the storeName.\n* `storage_databases.#.collections.#.data_sources.#.path` - File path that controls how MongoDB Cloud searches for and parses files in the storeName before mapping them to a collection. Specify / to capture all files and folders from the prefix path.\n* `storage_databases.#.collections.#.data_sources.#.database` - Human-readable label that identifies the database, which contains the collection in the cluster.\n* `storage_databases.#.collections.#.data_sources.#.allow_insecure` - Flag that validates the scheme in the specified URLs. If true, allows insecure HTTP scheme, doesn't verify the server's certificate chain and hostname, and accepts any certificate with any hostname presented by the server. If false, allows secure HTTPS scheme only.\n* `storage_databases.#.collections.#.data_sources.#.database_regex` - Regex pattern to use for creating the wildcard database.\n* `storage_databases.#.collections.#.data_sources.#.collection` - Human-readable label that identifies the collection in the database.\n* `storage_databases.#.collections.#.data_sources.#.collection_regex` - Regex pattern to use for creating the wildcard (*) collection.\n* `storage_databases.#.collections.#.data_sources.#.provenance_field_name` - Name for the field that includes the provenance of the documents in the results.\n* `storage_databases.#.collections.#.data_sources.#.storeName` - Human-readable label that identifies the data store that MongoDB Cloud maps to the collection.\n* `storage_databases.#.collections.#.data_sources.#.urls` - URLs of the publicly accessible data files. You can't specify URLs that require authentication.\n* `storage_databases.#.views` -     Array of objects where each object represents an [aggregation pipeline](https://docs.mongodb.com/manual/core/aggregation-pipeline/#id1) on a collection. To learn more about views, see [Views](https://docs.mongodb.com/manual/core/views/).\n* `storage_databases.#.views.#.name` - Name of the view.\n* `storage_databases.#.views.#.source` -  Name of the source collection for the view.\n* `storage_databases.#.views.#.pipeline`- Aggregation pipeline stage(s) to apply to the source collection.\n"},"storageStores":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageStore:FederatedDatabaseInstanceStorageStore"},"description":"Each object in the array represents a data store. Federated Database uses the storage.databases configuration details to map data in each data store to queryable databases and collections. For complete documentation on this object and its nested fields, see [stores](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#stores). An empty object indicates that the Federated Database Instance has no configured data stores.\n* `storage_stores.#.name` - Name of the data store.\n* `storage_stores.#.provider` - Defines where the data is stored.\n* `storage_stores.#.region` - Name of the AWS region in which the S3 bucket is hosted.\n* `storage_stores.#.bucket` - Name of the AWS S3 bucket.\n* `storage_stores.#.prefix` - Prefix the Federated Database Instance applies when searching for files in the S3 bucket.\n* `storage_stores.#.delimiter` - The delimiter that separates `storage_databases.#.collections.#.data_sources.#.path` segments in the data store.\n* `storage_stores.#.include_tags` - Determines whether or not to use S3 tags on the files in the given path as additional partition attributes.\n* `storage_stores.#.cluster_name` - Human-readable label of the MongoDB Cloud cluster on which the store is based.\n* `storage_stores.#.allow_insecure` - Flag that validates the scheme in the specified URLs.\n* `storage_stores.#.public` - Flag that indicates whether the bucket is public.\n* `storage_stores.#.default_format` - Default format that Data Federation assumes if it encounters a file without an extension while searching the storeName.\n* `storage_stores.#.urls` - Comma-separated list of publicly accessible HTTP URLs where data is stored.\n* `storage_stores.#.read_preference` - MongoDB Cloud cluster read preference, which describes how to route read requests to the cluster.\n* `storage_stores.#.read_preference.maxStalenessSeconds` - Maximum replication lag, or staleness, for reads from secondaries.\n* `storage_stores.#.read_preference.mode` - Read preference mode that specifies to which replica set member to route the read requests.\n* `storage_stores.#.read_preference.tag_sets` - List that contains tag sets or tag specification documents.\n* `storage_stores.#.read_preference.tags` - List of all tags within a tag set\n* `storage_stores.#.read_preference.tags.name` - Human-readable label of the tag.\n* `storage_stores.#.read_preference.tags.value` - Value of the tag.\n"}},"required":["cloudProviderConfig","dataProcessRegion","hostnames","name","projectId","state","storageDatabases","storageStores"],"inputProperties":{"cloudProviderConfig":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceCloudProviderConfig:FederatedDatabaseInstanceCloudProviderConfig","description":"Cloud provider linked to this data federated instance.\n* `cloud_provider_config.aws` - AWS provider of the cloud service where the Federated Database Instance can access the S3 Bucket.\n* `cloud_provider_config.aws.role_id` - (Required) Unique identifier of the role that the Federated Instance can use to access the data stores. If necessary, use the Atlas [UI](https://docs.atlas.mongodb.com/security/manage-iam-roles/) or [API](https://docs.atlas.mongodb.com/reference/api/cloud-provider-access-get-roles/) to retrieve the role ID. You must also specify the \u003cspan pulumi-lang-nodejs=\"`testS3Bucket`\" pulumi-lang-dotnet=\"`TestS3Bucket`\" pulumi-lang-go=\"`testS3Bucket`\" pulumi-lang-python=\"`test_s3_bucket`\" pulumi-lang-yaml=\"`testS3Bucket`\" pulumi-lang-java=\"`testS3Bucket`\"\u003e`test_s3_bucket`\u003c/span\u003e.\n* `cloud_provider_config.aws.test_s3_bucket` - (Required) Name of the S3 data bucket that the provided role ID is authorized to access. You must also specify the \u003cspan pulumi-lang-nodejs=\"`roleId`\" pulumi-lang-dotnet=\"`RoleId`\" pulumi-lang-go=\"`roleId`\" pulumi-lang-python=\"`role_id`\" pulumi-lang-yaml=\"`roleId`\" pulumi-lang-java=\"`roleId`\"\u003e`role_id`\u003c/span\u003e.\n* `cloud_provider_config.azure` - Microsoft Azure provider of the cloud service where the Federated Database Instance can access Blob Storage.\n* `cloud_provider_config.azure.role_id` - (Required) Unique identifier of the role that the Federated Database Instance can use to access the data stores.\n"},"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceDataProcessRegion:FederatedDatabaseInstanceDataProcessRegion","description":"The cloud provider region to which the Federated Instance routes client connections for data processing.\n* `data_process_region.cloud_provider` - (Required) Name of the cloud service provider. Supported providers: `AWS`, `AZURE`.\n* `data_process_region.region` - (Required) Name of the region to which the Federated Instance routes client connections for data processing. See the [documentation](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation/operation/createFederatedDatabase) for the available region.\n"},"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n","willReplaceOnChanges":true},"storageDatabases":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageDatabase:FederatedDatabaseInstanceStorageDatabase"},"description":"Configuration details for mapping each data store to queryable databases and collections. For complete documentation on this object and its nested fields, see [databases](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#databases). An empty object indicates that the Federated Database Instance has no mapping configuration for any data store.\n* `storage_databases.#.name` - Name of the database to which the Federated Database Instance maps the data contained in the data store.\n* `storage_databases.#.collections` -     Array of objects where each object represents a collection and data sources that map to a [stores](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#stores) data store.\n* `storage_databases.#.collections.#.name` - Name of the collection.\n* `storage_databases.#.collections.#.data_sources` -     Array of objects where each object represents a stores data store to map with the collection.\n* `storage_databases.#.collections.#.data_sources.#.store_name` -     Name of a data store to map to the `\u003ccollection\u003e`. Must match the name of an object in the stores array.\n* `storage_databases.#.collections.#.data_sources.#.dataset_name` -     Human-readable label that identifies the dataset that Atlas generates for an ingestion pipeline run or Online Archive.\n* `storage_databases.#.collections.#.data_sources.#.default_format` - Default format that Federated Database assumes if it encounters a file without an extension while searching the storeName.\n* `storage_databases.#.collections.#.data_sources.#.path` - File path that controls how MongoDB Cloud searches for and parses files in the storeName before mapping them to a collection. Specify / to capture all files and folders from the prefix path.\n* `storage_databases.#.collections.#.data_sources.#.database` - Human-readable label that identifies the database, which contains the collection in the cluster.\n* `storage_databases.#.collections.#.data_sources.#.allow_insecure` - Flag that validates the scheme in the specified URLs. If true, allows insecure HTTP scheme, doesn't verify the server's certificate chain and hostname, and accepts any certificate with any hostname presented by the server. If false, allows secure HTTPS scheme only.\n* `storage_databases.#.collections.#.data_sources.#.database_regex` - Regex pattern to use for creating the wildcard database.\n* `storage_databases.#.collections.#.data_sources.#.collection` - Human-readable label that identifies the collection in the database.\n* `storage_databases.#.collections.#.data_sources.#.collection_regex` - Regex pattern to use for creating the wildcard (*) collection.\n* `storage_databases.#.collections.#.data_sources.#.provenance_field_name` - Name for the field that includes the provenance of the documents in the results.\n* `storage_databases.#.collections.#.data_sources.#.storeName` - Human-readable label that identifies the data store that MongoDB Cloud maps to the collection.\n* `storage_databases.#.collections.#.data_sources.#.urls` - URLs of the publicly accessible data files. You can't specify URLs that require authentication.\n* `storage_databases.#.views` -     Array of objects where each object represents an [aggregation pipeline](https://docs.mongodb.com/manual/core/aggregation-pipeline/#id1) on a collection. To learn more about views, see [Views](https://docs.mongodb.com/manual/core/views/).\n* `storage_databases.#.views.#.name` - Name of the view.\n* `storage_databases.#.views.#.source` -  Name of the source collection for the view.\n* `storage_databases.#.views.#.pipeline`- Aggregation pipeline stage(s) to apply to the source collection.\n"},"storageStores":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageStore:FederatedDatabaseInstanceStorageStore"},"description":"Each object in the array represents a data store. Federated Database uses the storage.databases configuration details to map data in each data store to queryable databases and collections. For complete documentation on this object and its nested fields, see [stores](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#stores). An empty object indicates that the Federated Database Instance has no configured data stores.\n* `storage_stores.#.name` - Name of the data store.\n* `storage_stores.#.provider` - Defines where the data is stored.\n* `storage_stores.#.region` - Name of the AWS region in which the S3 bucket is hosted.\n* `storage_stores.#.bucket` - Name of the AWS S3 bucket.\n* `storage_stores.#.prefix` - Prefix the Federated Database Instance applies when searching for files in the S3 bucket.\n* `storage_stores.#.delimiter` - The delimiter that separates `storage_databases.#.collections.#.data_sources.#.path` segments in the data store.\n* `storage_stores.#.include_tags` - Determines whether or not to use S3 tags on the files in the given path as additional partition attributes.\n* `storage_stores.#.cluster_name` - Human-readable label of the MongoDB Cloud cluster on which the store is based.\n* `storage_stores.#.allow_insecure` - Flag that validates the scheme in the specified URLs.\n* `storage_stores.#.public` - Flag that indicates whether the bucket is public.\n* `storage_stores.#.default_format` - Default format that Data Federation assumes if it encounters a file without an extension while searching the storeName.\n* `storage_stores.#.urls` - Comma-separated list of publicly accessible HTTP URLs where data is stored.\n* `storage_stores.#.read_preference` - MongoDB Cloud cluster read preference, which describes how to route read requests to the cluster.\n* `storage_stores.#.read_preference.maxStalenessSeconds` - Maximum replication lag, or staleness, for reads from secondaries.\n* `storage_stores.#.read_preference.mode` - Read preference mode that specifies to which replica set member to route the read requests.\n* `storage_stores.#.read_preference.tag_sets` - List that contains tag sets or tag specification documents.\n* `storage_stores.#.read_preference.tags` - List of all tags within a tag set\n* `storage_stores.#.read_preference.tags.name` - Human-readable label of the tag.\n* `storage_stores.#.read_preference.tags.value` - Value of the tag.\n"}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering FederatedDatabaseInstance resources.\n","properties":{"cloudProviderConfig":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceCloudProviderConfig:FederatedDatabaseInstanceCloudProviderConfig","description":"Cloud provider linked to this data federated instance.\n* `cloud_provider_config.aws` - AWS provider of the cloud service where the Federated Database Instance can access the S3 Bucket.\n* `cloud_provider_config.aws.role_id` - (Required) Unique identifier of the role that the Federated Instance can use to access the data stores. If necessary, use the Atlas [UI](https://docs.atlas.mongodb.com/security/manage-iam-roles/) or [API](https://docs.atlas.mongodb.com/reference/api/cloud-provider-access-get-roles/) to retrieve the role ID. You must also specify the \u003cspan pulumi-lang-nodejs=\"`testS3Bucket`\" pulumi-lang-dotnet=\"`TestS3Bucket`\" pulumi-lang-go=\"`testS3Bucket`\" pulumi-lang-python=\"`test_s3_bucket`\" pulumi-lang-yaml=\"`testS3Bucket`\" pulumi-lang-java=\"`testS3Bucket`\"\u003e`test_s3_bucket`\u003c/span\u003e.\n* `cloud_provider_config.aws.test_s3_bucket` - (Required) Name of the S3 data bucket that the provided role ID is authorized to access. You must also specify the \u003cspan pulumi-lang-nodejs=\"`roleId`\" pulumi-lang-dotnet=\"`RoleId`\" pulumi-lang-go=\"`roleId`\" pulumi-lang-python=\"`role_id`\" pulumi-lang-yaml=\"`roleId`\" pulumi-lang-java=\"`roleId`\"\u003e`role_id`\u003c/span\u003e.\n* `cloud_provider_config.azure` - Microsoft Azure provider of the cloud service where the Federated Database Instance can access Blob Storage.\n* `cloud_provider_config.azure.role_id` - (Required) Unique identifier of the role that the Federated Database Instance can use to access the data stores.\n"},"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceDataProcessRegion:FederatedDatabaseInstanceDataProcessRegion","description":"The cloud provider region to which the Federated Instance routes client connections for data processing.\n* `data_process_region.cloud_provider` - (Required) Name of the cloud service provider. Supported providers: `AWS`, `AZURE`.\n* `data_process_region.region` - (Required) Name of the region to which the Federated Instance routes client connections for data processing. See the [documentation](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation/operation/createFederatedDatabase) for the available region.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"The list of hostnames assigned to the Federated Database Instance. Each string in the array is a hostname assigned to the Federated Database Instance.\n"},"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n","willReplaceOnChanges":true},"state":{"type":"string","description":"Current state of the Federated Database Instance:\n* `ACTIVE` - The Federated Database Instance is active and verified. You can query the data stores associated with the Federated Database Instance.\n* `DELETED` - The Federated Database Instance was deleted.\n"},"storageDatabases":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageDatabase:FederatedDatabaseInstanceStorageDatabase"},"description":"Configuration details for mapping each data store to queryable databases and collections. For complete documentation on this object and its nested fields, see [databases](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#databases). An empty object indicates that the Federated Database Instance has no mapping configuration for any data store.\n* `storage_databases.#.name` - Name of the database to which the Federated Database Instance maps the data contained in the data store.\n* `storage_databases.#.collections` -     Array of objects where each object represents a collection and data sources that map to a [stores](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#stores) data store.\n* `storage_databases.#.collections.#.name` - Name of the collection.\n* `storage_databases.#.collections.#.data_sources` -     Array of objects where each object represents a stores data store to map with the collection.\n* `storage_databases.#.collections.#.data_sources.#.store_name` -     Name of a data store to map to the `\u003ccollection\u003e`. Must match the name of an object in the stores array.\n* `storage_databases.#.collections.#.data_sources.#.dataset_name` -     Human-readable label that identifies the dataset that Atlas generates for an ingestion pipeline run or Online Archive.\n* `storage_databases.#.collections.#.data_sources.#.default_format` - Default format that Federated Database assumes if it encounters a file without an extension while searching the storeName.\n* `storage_databases.#.collections.#.data_sources.#.path` - File path that controls how MongoDB Cloud searches for and parses files in the storeName before mapping them to a collection. Specify / to capture all files and folders from the prefix path.\n* `storage_databases.#.collections.#.data_sources.#.database` - Human-readable label that identifies the database, which contains the collection in the cluster.\n* `storage_databases.#.collections.#.data_sources.#.allow_insecure` - Flag that validates the scheme in the specified URLs. If true, allows insecure HTTP scheme, doesn't verify the server's certificate chain and hostname, and accepts any certificate with any hostname presented by the server. If false, allows secure HTTPS scheme only.\n* `storage_databases.#.collections.#.data_sources.#.database_regex` - Regex pattern to use for creating the wildcard database.\n* `storage_databases.#.collections.#.data_sources.#.collection` - Human-readable label that identifies the collection in the database.\n* `storage_databases.#.collections.#.data_sources.#.collection_regex` - Regex pattern to use for creating the wildcard (*) collection.\n* `storage_databases.#.collections.#.data_sources.#.provenance_field_name` - Name for the field that includes the provenance of the documents in the results.\n* `storage_databases.#.collections.#.data_sources.#.storeName` - Human-readable label that identifies the data store that MongoDB Cloud maps to the collection.\n* `storage_databases.#.collections.#.data_sources.#.urls` - URLs of the publicly accessible data files. You can't specify URLs that require authentication.\n* `storage_databases.#.views` -     Array of objects where each object represents an [aggregation pipeline](https://docs.mongodb.com/manual/core/aggregation-pipeline/#id1) on a collection. To learn more about views, see [Views](https://docs.mongodb.com/manual/core/views/).\n* `storage_databases.#.views.#.name` - Name of the view.\n* `storage_databases.#.views.#.source` -  Name of the source collection for the view.\n* `storage_databases.#.views.#.pipeline`- Aggregation pipeline stage(s) to apply to the source collection.\n"},"storageStores":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedDatabaseInstanceStorageStore:FederatedDatabaseInstanceStorageStore"},"description":"Each object in the array represents a data store. Federated Database uses the storage.databases configuration details to map data in each data store to queryable databases and collections. For complete documentation on this object and its nested fields, see [stores](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#stores). An empty object indicates that the Federated Database Instance has no configured data stores.\n* `storage_stores.#.name` - Name of the data store.\n* `storage_stores.#.provider` - Defines where the data is stored.\n* `storage_stores.#.region` - Name of the AWS region in which the S3 bucket is hosted.\n* `storage_stores.#.bucket` - Name of the AWS S3 bucket.\n* `storage_stores.#.prefix` - Prefix the Federated Database Instance applies when searching for files in the S3 bucket.\n* `storage_stores.#.delimiter` - The delimiter that separates `storage_databases.#.collections.#.data_sources.#.path` segments in the data store.\n* `storage_stores.#.include_tags` - Determines whether or not to use S3 tags on the files in the given path as additional partition attributes.\n* `storage_stores.#.cluster_name` - Human-readable label of the MongoDB Cloud cluster on which the store is based.\n* `storage_stores.#.allow_insecure` - Flag that validates the scheme in the specified URLs.\n* `storage_stores.#.public` - Flag that indicates whether the bucket is public.\n* `storage_stores.#.default_format` - Default format that Data Federation assumes if it encounters a file without an extension while searching the storeName.\n* `storage_stores.#.urls` - Comma-separated list of publicly accessible HTTP URLs where data is stored.\n* `storage_stores.#.read_preference` - MongoDB Cloud cluster read preference, which describes how to route read requests to the cluster.\n* `storage_stores.#.read_preference.maxStalenessSeconds` - Maximum replication lag, or staleness, for reads from secondaries.\n* `storage_stores.#.read_preference.mode` - Read preference mode that specifies to which replica set member to route the read requests.\n* `storage_stores.#.read_preference.tag_sets` - List that contains tag sets or tag specification documents.\n* `storage_stores.#.read_preference.tags` - List of all tags within a tag set\n* `storage_stores.#.read_preference.tags.name` - Human-readable label of the tag.\n* `storage_stores.#.read_preference.tags.value` - Value of the tag.\n"}},"type":"object"}},"mongodbatlas:index/federatedQueryLimit:FederatedQueryLimit":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedQueryLimit`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedQueryLimit`\" pulumi-lang-go=\"`FederatedQueryLimit`\" pulumi-lang-python=\"`FederatedQueryLimit`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedQueryLimit`\" pulumi-lang-java=\"`mongodbatlas.FederatedQueryLimit`\"\u003e`mongodbatlas.FederatedQueryLimit`\u003c/span\u003e provides a Federated Database Instance Query Limits resource. To learn more about Atlas Data Federation see https://www.mongodb.com/docs/atlas/data-federation/overview/.\n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n### S\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.FederatedQueryLimit(\"test\", {\n    projectId: \"64707f06c519c20c3a2b1b03\",\n    tenantName: \"FederatedDatabseInstance0\",\n    limitName: \"bytesProcessed.weekly\",\n    overrunPolicy: \"BLOCK\",\n    value: 5147483648,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.FederatedQueryLimit(\"test\",\n    project_id=\"64707f06c519c20c3a2b1b03\",\n    tenant_name=\"FederatedDatabseInstance0\",\n    limit_name=\"bytesProcessed.weekly\",\n    overrun_policy=\"BLOCK\",\n    value=5147483648)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.FederatedQueryLimit(\"test\", new()\n    {\n        ProjectId = \"64707f06c519c20c3a2b1b03\",\n        TenantName = \"FederatedDatabseInstance0\",\n        LimitName = \"bytesProcessed.weekly\",\n        OverrunPolicy = \"BLOCK\",\n        Value = 5147483648,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedQueryLimit(ctx, \"test\", \u0026mongodbatlas.FederatedQueryLimitArgs{\n\t\t\tProjectId:     pulumi.String(\"64707f06c519c20c3a2b1b03\"),\n\t\t\tTenantName:    pulumi.String(\"FederatedDatabseInstance0\"),\n\t\t\tLimitName:     pulumi.String(\"bytesProcessed.weekly\"),\n\t\t\tOverrunPolicy: pulumi.String(\"BLOCK\"),\n\t\t\tValue:         pulumi.Int(5147483648),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedQueryLimit;\nimport com.pulumi.mongodbatlas.FederatedQueryLimitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new FederatedQueryLimit(\"test\", FederatedQueryLimitArgs.builder()\n            .projectId(\"64707f06c519c20c3a2b1b03\")\n            .tenantName(\"FederatedDatabseInstance0\")\n            .limitName(\"bytesProcessed.weekly\")\n            .overrunPolicy(\"BLOCK\")\n            .value(5147483648)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:FederatedQueryLimit\n    properties:\n      projectId: 64707f06c519c20c3a2b1b03\n      tenantName: FederatedDatabseInstance0\n      limitName: bytesProcessed.weekly\n      overrunPolicy: BLOCK\n      value: 5.147483648e+09\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Federated Query Limit\n\n## Import\n\nThe Federated Database Instance Query Limit can be imported using project ID, name of the instance and limit name, in the format: \n\u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e--\u003cspan pulumi-lang-nodejs=\"`tenantName`\" pulumi-lang-dotnet=\"`TenantName`\" pulumi-lang-go=\"`tenantName`\" pulumi-lang-python=\"`tenant_name`\" pulumi-lang-yaml=\"`tenantName`\" pulumi-lang-java=\"`tenantName`\"\u003e`tenant_name`\u003c/span\u003e--\u003cspan pulumi-lang-nodejs=\"`limitName`\" pulumi-lang-dotnet=\"`LimitName`\" pulumi-lang-go=\"`limitName`\" pulumi-lang-python=\"`limit_name`\" pulumi-lang-yaml=\"`limitName`\" pulumi-lang-java=\"`limitName`\"\u003e`limit_name`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/federatedQueryLimit:FederatedQueryLimit example 1112222b3bf99403840e8934--FederatedDatabaseInstance0--bytesProcessed.daily\n```\n\nSee [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation/operation/createOneDataFederationQueryLimit) Documentation for more information.\n\n","properties":{"currentUsage":{"type":"integer","description":"Amount that indicates the current usage of the limit.\n"},"defaultLimit":{"type":"integer","description":"Default value of the limit.\n* `lastModifiedDate` - Only used for Data Federation limits. Timestamp that indicates when this usage limit was last modified. This field uses the ISO 8601 timestamp format in UTC.\n* `maximumLimit` - Maximum value of the limit.\n"},"lastModifiedDate":{"type":"string"},"limitName":{"type":"string","description":"String enum that indicates whether the identity provider is active or not. Accepted values are:\n* `bytesProcessed.query`: Limit on the number of bytes processed during a single data federation query.\n* `bytesProcessed.daily`: Limit on the number of bytes processed for the data federation instance for the current day.\n* `bytesProcessed.weekly`: Limit on the number of bytes processed for the data federation instance for the current week.\n* `bytesProcessed.monthly`: Limit on the number of bytes processed for the data federation instance for the current month.\n"},"maximumLimit":{"type":"integer"},"overrunPolicy":{"type":"string","description":"String enum that identifies action to take when the usage limit is exceeded. If limit span is set to QUERY, this is ignored because MongoDB Cloud stops the query when it exceeds the usage limit. Accepted values are \"BLOCK\" OR \"BLOCK_AND_KILL\"\n"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"tenantName":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"value":{"type":"integer","description":"Amount to set the limit to.\n"}},"required":["currentUsage","lastModifiedDate","limitName","overrunPolicy","projectId","tenantName","value"],"inputProperties":{"defaultLimit":{"type":"integer","description":"Default value of the limit.\n* `lastModifiedDate` - Only used for Data Federation limits. Timestamp that indicates when this usage limit was last modified. This field uses the ISO 8601 timestamp format in UTC.\n* `maximumLimit` - Maximum value of the limit.\n"},"limitName":{"type":"string","description":"String enum that indicates whether the identity provider is active or not. Accepted values are:\n* `bytesProcessed.query`: Limit on the number of bytes processed during a single data federation query.\n* `bytesProcessed.daily`: Limit on the number of bytes processed for the data federation instance for the current day.\n* `bytesProcessed.weekly`: Limit on the number of bytes processed for the data federation instance for the current week.\n* `bytesProcessed.monthly`: Limit on the number of bytes processed for the data federation instance for the current month.\n"},"maximumLimit":{"type":"integer"},"overrunPolicy":{"type":"string","description":"String enum that identifies action to take when the usage limit is exceeded. If limit span is set to QUERY, this is ignored because MongoDB Cloud stops the query when it exceeds the usage limit. Accepted values are \"BLOCK\" OR \"BLOCK_AND_KILL\"\n"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"tenantName":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"value":{"type":"integer","description":"Amount to set the limit to.\n"}},"requiredInputs":["limitName","overrunPolicy","projectId","tenantName","value"],"stateInputs":{"description":"Input properties used for looking up and filtering FederatedQueryLimit resources.\n","properties":{"currentUsage":{"type":"integer","description":"Amount that indicates the current usage of the limit.\n"},"defaultLimit":{"type":"integer","description":"Default value of the limit.\n* `lastModifiedDate` - Only used for Data Federation limits. Timestamp that indicates when this usage limit was last modified. This field uses the ISO 8601 timestamp format in UTC.\n* `maximumLimit` - Maximum value of the limit.\n"},"lastModifiedDate":{"type":"string"},"limitName":{"type":"string","description":"String enum that indicates whether the identity provider is active or not. Accepted values are:\n* `bytesProcessed.query`: Limit on the number of bytes processed during a single data federation query.\n* `bytesProcessed.daily`: Limit on the number of bytes processed for the data federation instance for the current day.\n* `bytesProcessed.weekly`: Limit on the number of bytes processed for the data federation instance for the current week.\n* `bytesProcessed.monthly`: Limit on the number of bytes processed for the data federation instance for the current month.\n"},"maximumLimit":{"type":"integer"},"overrunPolicy":{"type":"string","description":"String enum that identifies action to take when the usage limit is exceeded. If limit span is set to QUERY, this is ignored because MongoDB Cloud stops the query when it exceeds the usage limit. Accepted values are \"BLOCK\" OR \"BLOCK_AND_KILL\"\n"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"tenantName":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"value":{"type":"integer","description":"Amount to set the limit to.\n"}},"type":"object"}},"mongodbatlas:index/federatedSettingsIdentityProvider:FederatedSettingsIdentityProvider":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-go=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-python=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsIdentityProvider`\"\u003e`mongodbatlas.FederatedSettingsIdentityProvider`\u003c/span\u003e provides an Atlas federated settings identity provider resource provides a subset of settings to be maintained post import of the existing resource.\n\n## Example Usage\n\n\u003e **IMPORTANT** If you want to use a SAML Identity Provider, you **MUST** import this resource before you can manage it with this provider. \n\nSAML IdP:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst identityProvider = new mongodbatlas.FederatedSettingsIdentityProvider(\"identity_provider\", {\n    federationSettingsId: \"627a9687f7f7f7f774de306f14\",\n    name: \"mongodb_federation_test\",\n    associatedDomains: [\"yourdomain.com\"],\n    ssoDebugEnabled: true,\n    status: \"ACTIVE\",\n    ssoUrl: \"https://mysso.oktapreview.com/app/mysso_terraformtestsso/exk17q7f7f7f7f50h8/sso/saml\",\n    issuerUri: \"http://www.okta.com/exk17q7f7f7f7fp50h8\",\n    requestBinding: \"HTTP-POST\",\n    responseSignatureAlgorithm: \"SHA-256\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nidentity_provider = mongodbatlas.FederatedSettingsIdentityProvider(\"identity_provider\",\n    federation_settings_id=\"627a9687f7f7f7f774de306f14\",\n    name=\"mongodb_federation_test\",\n    associated_domains=[\"yourdomain.com\"],\n    sso_debug_enabled=True,\n    status=\"ACTIVE\",\n    sso_url=\"https://mysso.oktapreview.com/app/mysso_terraformtestsso/exk17q7f7f7f7f50h8/sso/saml\",\n    issuer_uri=\"http://www.okta.com/exk17q7f7f7f7fp50h8\",\n    request_binding=\"HTTP-POST\",\n    response_signature_algorithm=\"SHA-256\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var identityProvider = new Mongodbatlas.FederatedSettingsIdentityProvider(\"identity_provider\", new()\n    {\n        FederationSettingsId = \"627a9687f7f7f7f774de306f14\",\n        Name = \"mongodb_federation_test\",\n        AssociatedDomains = new[]\n        {\n            \"yourdomain.com\",\n        },\n        SsoDebugEnabled = true,\n        Status = \"ACTIVE\",\n        SsoUrl = \"https://mysso.oktapreview.com/app/mysso_terraformtestsso/exk17q7f7f7f7f50h8/sso/saml\",\n        IssuerUri = \"http://www.okta.com/exk17q7f7f7f7fp50h8\",\n        RequestBinding = \"HTTP-POST\",\n        ResponseSignatureAlgorithm = \"SHA-256\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedSettingsIdentityProvider(ctx, \"identity_provider\", \u0026mongodbatlas.FederatedSettingsIdentityProviderArgs{\n\t\t\tFederationSettingsId: pulumi.String(\"627a9687f7f7f7f774de306f14\"),\n\t\t\tName:                 pulumi.String(\"mongodb_federation_test\"),\n\t\t\tAssociatedDomains: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"yourdomain.com\"),\n\t\t\t},\n\t\t\tSsoDebugEnabled:            pulumi.Bool(true),\n\t\t\tStatus:                     pulumi.String(\"ACTIVE\"),\n\t\t\tSsoUrl:                     pulumi.String(\"https://mysso.oktapreview.com/app/mysso_terraformtestsso/exk17q7f7f7f7f50h8/sso/saml\"),\n\t\t\tIssuerUri:                  pulumi.String(\"http://www.okta.com/exk17q7f7f7f7fp50h8\"),\n\t\t\tRequestBinding:             pulumi.String(\"HTTP-POST\"),\n\t\t\tResponseSignatureAlgorithm: pulumi.String(\"SHA-256\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;\nimport com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var identityProvider = new FederatedSettingsIdentityProvider(\"identityProvider\", FederatedSettingsIdentityProviderArgs.builder()\n            .federationSettingsId(\"627a9687f7f7f7f774de306f14\")\n            .name(\"mongodb_federation_test\")\n            .associatedDomains(\"yourdomain.com\")\n            .ssoDebugEnabled(true)\n            .status(\"ACTIVE\")\n            .ssoUrl(\"https://mysso.oktapreview.com/app/mysso_terraformtestsso/exk17q7f7f7f7f50h8/sso/saml\")\n            .issuerUri(\"http://www.okta.com/exk17q7f7f7f7fp50h8\")\n            .requestBinding(\"HTTP-POST\")\n            .responseSignatureAlgorithm(\"SHA-256\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  identityProvider:\n    type: mongodbatlas:FederatedSettingsIdentityProvider\n    name: identity_provider\n    properties:\n      federationSettingsId: 627a9687f7f7f7f774de306f14\n      name: mongodb_federation_test\n      associatedDomains:\n        - yourdomain.com\n      ssoDebugEnabled: true\n      status: ACTIVE\n      ssoUrl: https://mysso.oktapreview.com/app/mysso_terraformtestsso/exk17q7f7f7f7f50h8/sso/saml\n      issuerUri: http://www.okta.com/exk17q7f7f7f7fp50h8\n      requestBinding: HTTP-POST\n      responseSignatureAlgorithm: SHA-256\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nOIDC IdP:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst oidc = new mongodbatlas.FederatedSettingsIdentityProvider(\"oidc\", {\n    federationSettingsId: _this.id,\n    audience: tokenAudience,\n    authorizationType: \"USER\",\n    description: \"oidc\",\n    issuerUri: `https://sts.windows.net/${thisAzurermUserAssignedIdentity.tenantId}/`,\n    idpType: \"WORKLOAD\",\n    name: \"OIDC-for-azure\",\n    protocol: \"OIDC\",\n    userClaim: \"sub\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\noidc = mongodbatlas.FederatedSettingsIdentityProvider(\"oidc\",\n    federation_settings_id=this[\"id\"],\n    audience=token_audience,\n    authorization_type=\"USER\",\n    description=\"oidc\",\n    issuer_uri=f\"https://sts.windows.net/{this_azurerm_user_assigned_identity['tenantId']}/\",\n    idp_type=\"WORKLOAD\",\n    name=\"OIDC-for-azure\",\n    protocol=\"OIDC\",\n    user_claim=\"sub\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var oidc = new Mongodbatlas.FederatedSettingsIdentityProvider(\"oidc\", new()\n    {\n        FederationSettingsId = @this.Id,\n        Audience = tokenAudience,\n        AuthorizationType = \"USER\",\n        Description = \"oidc\",\n        IssuerUri = $\"https://sts.windows.net/{thisAzurermUserAssignedIdentity.TenantId}/\",\n        IdpType = \"WORKLOAD\",\n        Name = \"OIDC-for-azure\",\n        Protocol = \"OIDC\",\n        UserClaim = \"sub\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedSettingsIdentityProvider(ctx, \"oidc\", \u0026mongodbatlas.FederatedSettingsIdentityProviderArgs{\n\t\t\tFederationSettingsId: pulumi.Any(this.Id),\n\t\t\tAudience:             pulumi.Any(tokenAudience),\n\t\t\tAuthorizationType:    pulumi.String(\"USER\"),\n\t\t\tDescription:          pulumi.String(\"oidc\"),\n\t\t\tIssuerUri:            pulumi.Sprintf(\"https://sts.windows.net/%v/\", thisAzurermUserAssignedIdentity.TenantId),\n\t\t\tIdpType:              pulumi.String(\"WORKLOAD\"),\n\t\t\tName:                 pulumi.String(\"OIDC-for-azure\"),\n\t\t\tProtocol:             pulumi.String(\"OIDC\"),\n\t\t\tUserClaim:            pulumi.String(\"sub\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;\nimport com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var oidc = new FederatedSettingsIdentityProvider(\"oidc\", FederatedSettingsIdentityProviderArgs.builder()\n            .federationSettingsId(this_.id())\n            .audience(tokenAudience)\n            .authorizationType(\"USER\")\n            .description(\"oidc\")\n            .issuerUri(String.format(\"https://sts.windows.net/%s/\", thisAzurermUserAssignedIdentity.tenantId()))\n            .idpType(\"WORKLOAD\")\n            .name(\"OIDC-for-azure\")\n            .protocol(\"OIDC\")\n            .userClaim(\"sub\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  oidc:\n    type: mongodbatlas:FederatedSettingsIdentityProvider\n    properties:\n      federationSettingsId: ${this.id}\n      audience: ${tokenAudience}\n      authorizationType: USER\n      description: oidc\n      issuerUri: https://sts.windows.net/${thisAzurermUserAssignedIdentity.tenantId}/\n      idpType: WORKLOAD\n      name: OIDC-for-azure\n      protocol: OIDC\n      userClaim: sub\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Further Examples\n- Azure Federated Settings Identity Provider\n\n## Import\n\nIdentity Provider **must** be imported before using federation_settings_id-idp_id, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/federatedSettingsIdentityProvider:FederatedSettingsIdentityProvider identity_provider 6287a663c660f52b1c441c6c-0oad4fas87jL5Xnk12971234\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://www.mongodb.com/docs/atlas/reference/api/federation-configuration/)\n\n","properties":{"associatedDomains":{"type":"array","items":{"type":"string"},"description":"List that contains the domains associated with the identity provider.\n"},"audience":{"type":"string","description":"Identifier of the intended recipient of the token used in OIDC IdP.\n"},"authorizationType":{"type":"string","description":"Indicates whether authorization is granted based on group membership or user ID. Valid values are `GROUP` or `USER`.\n"},"clientId":{"type":"string","description":"Client identifier that is assigned to an application by the OIDC Identity Provider.\n"},"description":{"type":"string","description":"The description of the identity provider.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"groupsClaim":{"type":"string","description":"Identifier of the claim which contains OIDC IdP Group IDs in the token.\n"},"idpId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the IdP.\n"},"idpType":{"type":"string"},"issuerUri":{"type":"string","description":"Unique string that identifies the issuer of the IdP.\n"},"name":{"type":"string","description":"Human-readable label that identifies the identity provider.\n"},"oktaIdpId":{"type":"string","description":"Unique 20-hexadecimal digit string that identifies the IdP.\n"},"protocol":{"type":"string","description":"The protocol of the identity provider. Either `SAML` or `OIDC`.\n"},"requestBinding":{"type":"string","description":"SAML Authentication Request Protocol HTTP method binding (`POST` or `REDIRECT`) that Federated Authentication uses to send the authentication request. Atlas supports the following binding values:\n- HTTP POST\n- HTTP REDIRECT\n"},"requestedScopes":{"type":"array","items":{"type":"string"},"description":"Scopes that MongoDB applications will request from the authorization endpoint used for OIDC IdPs.\n"},"responseSignatureAlgorithm":{"type":"string","description":"Signature algorithm that Federated Authentication uses to encrypt the identity provider signature.  Valid values include `SHA-1 `and `SHA-256`.\n"},"ssoDebugEnabled":{"type":"boolean","description":"Flag that indicates whether the identity provider has SSO debug enabled.\n"},"ssoUrl":{"type":"string","description":"Unique string that identifies the intended audience of the SAML assertion.\n"},"status":{"type":"string","description":"String enum that indicates whether the identity provider is active or not. Accepted values are ACTIVE or INACTIVE.\n"},"userClaim":{"type":"string","description":"Identifier of the claim which contains the user ID in the token used for OIDC IdPs.\nuserClaim is required for OIDC IdP with authorizationType GROUP and USER.\n"}},"required":["federationSettingsId","idpId","idpType","issuerUri","name","oktaIdpId","protocol"],"inputProperties":{"associatedDomains":{"type":"array","items":{"type":"string"},"description":"List that contains the domains associated with the identity provider.\n"},"audience":{"type":"string","description":"Identifier of the intended recipient of the token used in OIDC IdP.\n"},"authorizationType":{"type":"string","description":"Indicates whether authorization is granted based on group membership or user ID. Valid values are `GROUP` or `USER`.\n"},"clientId":{"type":"string","description":"Client identifier that is assigned to an application by the OIDC Identity Provider.\n"},"description":{"type":"string","description":"The description of the identity provider.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"groupsClaim":{"type":"string","description":"Identifier of the claim which contains OIDC IdP Group IDs in the token.\n"},"idpType":{"type":"string"},"issuerUri":{"type":"string","description":"Unique string that identifies the issuer of the IdP.\n"},"name":{"type":"string","description":"Human-readable label that identifies the identity provider.\n"},"protocol":{"type":"string","description":"The protocol of the identity provider. Either `SAML` or `OIDC`.\n"},"requestBinding":{"type":"string","description":"SAML Authentication Request Protocol HTTP method binding (`POST` or `REDIRECT`) that Federated Authentication uses to send the authentication request. Atlas supports the following binding values:\n- HTTP POST\n- HTTP REDIRECT\n"},"requestedScopes":{"type":"array","items":{"type":"string"},"description":"Scopes that MongoDB applications will request from the authorization endpoint used for OIDC IdPs.\n"},"responseSignatureAlgorithm":{"type":"string","description":"Signature algorithm that Federated Authentication uses to encrypt the identity provider signature.  Valid values include `SHA-1 `and `SHA-256`.\n"},"ssoDebugEnabled":{"type":"boolean","description":"Flag that indicates whether the identity provider has SSO debug enabled.\n"},"ssoUrl":{"type":"string","description":"Unique string that identifies the intended audience of the SAML assertion.\n"},"status":{"type":"string","description":"String enum that indicates whether the identity provider is active or not. Accepted values are ACTIVE or INACTIVE.\n"},"userClaim":{"type":"string","description":"Identifier of the claim which contains the user ID in the token used for OIDC IdPs.\nuserClaim is required for OIDC IdP with authorizationType GROUP and USER.\n"}},"requiredInputs":["federationSettingsId","issuerUri"],"stateInputs":{"description":"Input properties used for looking up and filtering FederatedSettingsIdentityProvider resources.\n","properties":{"associatedDomains":{"type":"array","items":{"type":"string"},"description":"List that contains the domains associated with the identity provider.\n"},"audience":{"type":"string","description":"Identifier of the intended recipient of the token used in OIDC IdP.\n"},"authorizationType":{"type":"string","description":"Indicates whether authorization is granted based on group membership or user ID. Valid values are `GROUP` or `USER`.\n"},"clientId":{"type":"string","description":"Client identifier that is assigned to an application by the OIDC Identity Provider.\n"},"description":{"type":"string","description":"The description of the identity provider.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"groupsClaim":{"type":"string","description":"Identifier of the claim which contains OIDC IdP Group IDs in the token.\n"},"idpId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the IdP.\n"},"idpType":{"type":"string"},"issuerUri":{"type":"string","description":"Unique string that identifies the issuer of the IdP.\n"},"name":{"type":"string","description":"Human-readable label that identifies the identity provider.\n"},"oktaIdpId":{"type":"string","description":"Unique 20-hexadecimal digit string that identifies the IdP.\n"},"protocol":{"type":"string","description":"The protocol of the identity provider. Either `SAML` or `OIDC`.\n"},"requestBinding":{"type":"string","description":"SAML Authentication Request Protocol HTTP method binding (`POST` or `REDIRECT`) that Federated Authentication uses to send the authentication request. Atlas supports the following binding values:\n- HTTP POST\n- HTTP REDIRECT\n"},"requestedScopes":{"type":"array","items":{"type":"string"},"description":"Scopes that MongoDB applications will request from the authorization endpoint used for OIDC IdPs.\n"},"responseSignatureAlgorithm":{"type":"string","description":"Signature algorithm that Federated Authentication uses to encrypt the identity provider signature.  Valid values include `SHA-1 `and `SHA-256`.\n"},"ssoDebugEnabled":{"type":"boolean","description":"Flag that indicates whether the identity provider has SSO debug enabled.\n"},"ssoUrl":{"type":"string","description":"Unique string that identifies the intended audience of the SAML assertion.\n"},"status":{"type":"string","description":"String enum that indicates whether the identity provider is active or not. Accepted values are ACTIVE or INACTIVE.\n"},"userClaim":{"type":"string","description":"Identifier of the claim which contains the user ID in the token used for OIDC IdPs.\nuserClaim is required for OIDC IdP with authorizationType GROUP and USER.\n"}},"type":"object"}},"mongodbatlas:index/federatedSettingsOrgConfig:FederatedSettingsOrgConfig":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsOrgConfig`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsOrgConfig`\" pulumi-lang-go=\"`FederatedSettingsOrgConfig`\" pulumi-lang-python=\"`FederatedSettingsOrgConfig`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsOrgConfig`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsOrgConfig`\"\u003e`mongodbatlas.FederatedSettingsOrgConfig`\u003c/span\u003e provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.\n\n## Example Usage\n\n\u003e **IMPORTANT** You **MUST** import this resource before you can manage it with this provider. \n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst orgConnection = new mongodbatlas.FederatedSettingsOrgConfig(\"org_connection\", {\n    federationSettingsId: \"627a9687f7f7f7f774de306f14\",\n    orgId: \"627a9683ea7ff7f74de306f14\",\n    dataAccessIdentityProviderIds: [\"64d613677e1ad50839cce4db\"],\n    domainRestrictionEnabled: false,\n    domainAllowLists: [\"mydomain.com\"],\n    postAuthRoleGrants: [\"ORG_MEMBER\"],\n    identityProviderId: \"0oaqyt9fc2ySTWnA0357\",\n});\nconst orgConfigsDs = mongodbatlas.getFederatedSettingsOrgConfigs({\n    federationSettingsId: orgConnectionMongodbatlasFederatedSettingsOrgConfig.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\norg_connection = mongodbatlas.FederatedSettingsOrgConfig(\"org_connection\",\n    federation_settings_id=\"627a9687f7f7f7f774de306f14\",\n    org_id=\"627a9683ea7ff7f74de306f14\",\n    data_access_identity_provider_ids=[\"64d613677e1ad50839cce4db\"],\n    domain_restriction_enabled=False,\n    domain_allow_lists=[\"mydomain.com\"],\n    post_auth_role_grants=[\"ORG_MEMBER\"],\n    identity_provider_id=\"0oaqyt9fc2ySTWnA0357\")\norg_configs_ds = mongodbatlas.get_federated_settings_org_configs(federation_settings_id=org_connection_mongodbatlas_federated_settings_org_config[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var orgConnection = new Mongodbatlas.FederatedSettingsOrgConfig(\"org_connection\", new()\n    {\n        FederationSettingsId = \"627a9687f7f7f7f774de306f14\",\n        OrgId = \"627a9683ea7ff7f74de306f14\",\n        DataAccessIdentityProviderIds = new[]\n        {\n            \"64d613677e1ad50839cce4db\",\n        },\n        DomainRestrictionEnabled = false,\n        DomainAllowLists = new[]\n        {\n            \"mydomain.com\",\n        },\n        PostAuthRoleGrants = new[]\n        {\n            \"ORG_MEMBER\",\n        },\n        IdentityProviderId = \"0oaqyt9fc2ySTWnA0357\",\n    });\n\n    var orgConfigsDs = Mongodbatlas.GetFederatedSettingsOrgConfigs.Invoke(new()\n    {\n        FederationSettingsId = orgConnectionMongodbatlasFederatedSettingsOrgConfig.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedSettingsOrgConfig(ctx, \"org_connection\", \u0026mongodbatlas.FederatedSettingsOrgConfigArgs{\n\t\t\tFederationSettingsId: pulumi.String(\"627a9687f7f7f7f774de306f14\"),\n\t\t\tOrgId:                pulumi.String(\"627a9683ea7ff7f74de306f14\"),\n\t\t\tDataAccessIdentityProviderIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"64d613677e1ad50839cce4db\"),\n\t\t\t},\n\t\t\tDomainRestrictionEnabled: pulumi.Bool(false),\n\t\t\tDomainAllowLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"mydomain.com\"),\n\t\t\t},\n\t\t\tPostAuthRoleGrants: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_MEMBER\"),\n\t\t\t},\n\t\t\tIdentityProviderId: pulumi.String(\"0oaqyt9fc2ySTWnA0357\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.LookupFederatedSettingsOrgConfigs(ctx, \u0026mongodbatlas.LookupFederatedSettingsOrgConfigsArgs{\n\t\t\tFederationSettingsId: orgConnectionMongodbatlasFederatedSettingsOrgConfig.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var orgConnection = new FederatedSettingsOrgConfig(\"orgConnection\", FederatedSettingsOrgConfigArgs.builder()\n            .federationSettingsId(\"627a9687f7f7f7f774de306f14\")\n            .orgId(\"627a9683ea7ff7f74de306f14\")\n            .dataAccessIdentityProviderIds(\"64d613677e1ad50839cce4db\")\n            .domainRestrictionEnabled(false)\n            .domainAllowLists(\"mydomain.com\")\n            .postAuthRoleGrants(\"ORG_MEMBER\")\n            .identityProviderId(\"0oaqyt9fc2ySTWnA0357\")\n            .build());\n\n        final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs.builder()\n            .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  orgConnection:\n    type: mongodbatlas:FederatedSettingsOrgConfig\n    name: org_connection\n    properties:\n      federationSettingsId: 627a9687f7f7f7f774de306f14\n      orgId: 627a9683ea7ff7f74de306f14\n      dataAccessIdentityProviderIds:\n        - 64d613677e1ad50839cce4db\n      domainRestrictionEnabled: false\n      domainAllowLists:\n        - mydomain.com\n      postAuthRoleGrants:\n        - ORG_MEMBER\n      identityProviderId: 0oaqyt9fc2ySTWnA0357\nvariables:\n  orgConfigsDs:\n    fn::invoke:\n      function: mongodbatlas:getFederatedSettingsOrgConfigs\n      arguments:\n        federationSettingsId: ${orgConnectionMongodbatlasFederatedSettingsOrgConfig.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Azure Federated Identity Provider with Org Config\n- Federated Settings Org Role Mappings\n\n## Import\n\nFederatedSettingsOrgConfig must be imported using federation_settings_id-org_id, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/federatedSettingsOrgConfig:FederatedSettingsOrgConfig org_connection 627a9687f7f7f7f774de306f14-627a9683ea7ff7f74de306f14\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://www.mongodb.com/docs/atlas/reference/api/federation-configuration/)\n\n","properties":{"dataAccessIdentityProviderIds":{"type":"array","items":{"type":"string"},"description":"The collection of unique ids representing the identity providers that can be used for data access in this organization.\n"},"domainAllowLists":{"type":"array","items":{"type":"string"},"description":"List that contains the approved domains from which organization users can log in.\n"},"domainRestrictionEnabled":{"type":"boolean","description":"Flag that indicates whether domain restriction is enabled for the connected organization.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"identityProviderId":{"type":"string","description":"Legacy 20-hexadecimal digit string that identifies the SAML access identity provider that this connected org config is associated with. Removing the attribute or providing the value `\"\"` will detach/remove the SAML identity provider. This id can be found in two ways:\n1. Within the Federation Management UI in Atlas in the Identity Providers tab by clicking the info icon in the IdP ID row of a configured SAML identity provider\n2. \u003cspan pulumi-lang-nodejs=\"`oktaIdpId`\" pulumi-lang-dotnet=\"`OktaIdpId`\" pulumi-lang-go=\"`oktaIdpId`\" pulumi-lang-python=\"`okta_idp_id`\" pulumi-lang-yaml=\"`oktaIdpId`\" pulumi-lang-java=\"`oktaIdpId`\"\u003e`okta_idp_id`\u003c/span\u003e on the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-go=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-python=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsIdentityProvider`\"\u003e`mongodbatlas.FederatedSettingsIdentityProvider`\u003c/span\u003e resource\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"postAuthRoleGrants":{"type":"array","items":{"type":"string"},"description":"List that contains the default [roles](https://www.mongodb.com/docs/atlas/reference/user-roles/#std-label-organization-roles) granted to users who authenticate through the IdP in a connected organization.\n"},"userConflicts":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedSettingsOrgConfigUserConflict:FederatedSettingsOrgConfigUserConflict"},"description":"List that contains the users who have an email address that doesn't match any domain on the allowed list. See below\n"}},"required":["domainRestrictionEnabled","federationSettingsId","orgId","userConflicts"],"inputProperties":{"dataAccessIdentityProviderIds":{"type":"array","items":{"type":"string"},"description":"The collection of unique ids representing the identity providers that can be used for data access in this organization.\n"},"domainAllowLists":{"type":"array","items":{"type":"string"},"description":"List that contains the approved domains from which organization users can log in.\n"},"domainRestrictionEnabled":{"type":"boolean","description":"Flag that indicates whether domain restriction is enabled for the connected organization.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"identityProviderId":{"type":"string","description":"Legacy 20-hexadecimal digit string that identifies the SAML access identity provider that this connected org config is associated with. Removing the attribute or providing the value `\"\"` will detach/remove the SAML identity provider. This id can be found in two ways:\n1. Within the Federation Management UI in Atlas in the Identity Providers tab by clicking the info icon in the IdP ID row of a configured SAML identity provider\n2. \u003cspan pulumi-lang-nodejs=\"`oktaIdpId`\" pulumi-lang-dotnet=\"`OktaIdpId`\" pulumi-lang-go=\"`oktaIdpId`\" pulumi-lang-python=\"`okta_idp_id`\" pulumi-lang-yaml=\"`oktaIdpId`\" pulumi-lang-java=\"`oktaIdpId`\"\u003e`okta_idp_id`\u003c/span\u003e on the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-go=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-python=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsIdentityProvider`\"\u003e`mongodbatlas.FederatedSettingsIdentityProvider`\u003c/span\u003e resource\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"postAuthRoleGrants":{"type":"array","items":{"type":"string"},"description":"List that contains the default [roles](https://www.mongodb.com/docs/atlas/reference/user-roles/#std-label-organization-roles) granted to users who authenticate through the IdP in a connected organization.\n"}},"requiredInputs":["domainRestrictionEnabled","federationSettingsId","orgId"],"stateInputs":{"description":"Input properties used for looking up and filtering FederatedSettingsOrgConfig resources.\n","properties":{"dataAccessIdentityProviderIds":{"type":"array","items":{"type":"string"},"description":"The collection of unique ids representing the identity providers that can be used for data access in this organization.\n"},"domainAllowLists":{"type":"array","items":{"type":"string"},"description":"List that contains the approved domains from which organization users can log in.\n"},"domainRestrictionEnabled":{"type":"boolean","description":"Flag that indicates whether domain restriction is enabled for the connected organization.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"identityProviderId":{"type":"string","description":"Legacy 20-hexadecimal digit string that identifies the SAML access identity provider that this connected org config is associated with. Removing the attribute or providing the value `\"\"` will detach/remove the SAML identity provider. This id can be found in two ways:\n1. Within the Federation Management UI in Atlas in the Identity Providers tab by clicking the info icon in the IdP ID row of a configured SAML identity provider\n2. \u003cspan pulumi-lang-nodejs=\"`oktaIdpId`\" pulumi-lang-dotnet=\"`OktaIdpId`\" pulumi-lang-go=\"`oktaIdpId`\" pulumi-lang-python=\"`okta_idp_id`\" pulumi-lang-yaml=\"`oktaIdpId`\" pulumi-lang-java=\"`oktaIdpId`\"\u003e`okta_idp_id`\u003c/span\u003e on the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-go=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-python=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsIdentityProvider`\"\u003e`mongodbatlas.FederatedSettingsIdentityProvider`\u003c/span\u003e resource\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"postAuthRoleGrants":{"type":"array","items":{"type":"string"},"description":"List that contains the default [roles](https://www.mongodb.com/docs/atlas/reference/user-roles/#std-label-organization-roles) granted to users who authenticate through the IdP in a connected organization.\n"},"userConflicts":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedSettingsOrgConfigUserConflict:FederatedSettingsOrgConfigUserConflict"},"description":"List that contains the users who have an email address that doesn't match any domain on the allowed list. See below\n"}},"type":"object"}},"mongodbatlas:index/federatedSettingsOrgRoleMapping:FederatedSettingsOrgRoleMapping":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsOrgRoleMapping`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsOrgRoleMapping`\" pulumi-lang-go=\"`FederatedSettingsOrgRoleMapping`\" pulumi-lang-python=\"`FederatedSettingsOrgRoleMapping`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsOrgRoleMapping`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsOrgRoleMapping`\"\u003e`mongodbatlas.FederatedSettingsOrgRoleMapping`\u003c/span\u003e provides an Role Mapping resource. This allows organization role mapping to be created.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst orgGroupRoleMappingImport = new mongodbatlas.FederatedSettingsOrgRoleMapping(\"org_group_role_mapping_import\", {\n    federationSettingsId: \"627a9687f7f7f7f774de306f14\",\n    orgId: \"627a9683e7f7f7ff7fe306f14\",\n    externalGroupName: \"myGrouptest\",\n    roleAssignments: [\n        {\n            orgId: \"627a9683e7f7f7ff7fe306f14\",\n            roles: [\n                \"ORG_MEMBER\",\n                \"ORG_GROUP_CREATOR\",\n                \"ORG_BILLING_ADMIN\",\n            ],\n        },\n        {\n            groupId: \"628aa20d7f7f7f7f7098b81b8\",\n            roles: [\n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n                \"GROUP_SEARCH_INDEX_EDITOR\",\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n            ],\n        },\n        {\n            groupId: \"628aa20d7f7f7f7f7078b81b8\",\n            roles: [\n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n                \"GROUP_SEARCH_INDEX_EDITOR\",\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n                \"GROUP_DATA_ACCESS_READ_WRITE\",\n            ],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\norg_group_role_mapping_import = mongodbatlas.FederatedSettingsOrgRoleMapping(\"org_group_role_mapping_import\",\n    federation_settings_id=\"627a9687f7f7f7f774de306f14\",\n    org_id=\"627a9683e7f7f7ff7fe306f14\",\n    external_group_name=\"myGrouptest\",\n    role_assignments=[\n        {\n            \"org_id\": \"627a9683e7f7f7ff7fe306f14\",\n            \"roles\": [\n                \"ORG_MEMBER\",\n                \"ORG_GROUP_CREATOR\",\n                \"ORG_BILLING_ADMIN\",\n            ],\n        },\n        {\n            \"group_id\": \"628aa20d7f7f7f7f7098b81b8\",\n            \"roles\": [\n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n                \"GROUP_SEARCH_INDEX_EDITOR\",\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n            ],\n        },\n        {\n            \"group_id\": \"628aa20d7f7f7f7f7078b81b8\",\n            \"roles\": [\n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n                \"GROUP_SEARCH_INDEX_EDITOR\",\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n                \"GROUP_DATA_ACCESS_READ_WRITE\",\n            ],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var orgGroupRoleMappingImport = new Mongodbatlas.FederatedSettingsOrgRoleMapping(\"org_group_role_mapping_import\", new()\n    {\n        FederationSettingsId = \"627a9687f7f7f7f774de306f14\",\n        OrgId = \"627a9683e7f7f7ff7fe306f14\",\n        ExternalGroupName = \"myGrouptest\",\n        RoleAssignments = new[]\n        {\n            new Mongodbatlas.Inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs\n            {\n                OrgId = \"627a9683e7f7f7ff7fe306f14\",\n                Roles = new[]\n                {\n                    \"ORG_MEMBER\",\n                    \"ORG_GROUP_CREATOR\",\n                    \"ORG_BILLING_ADMIN\",\n                },\n            },\n            new Mongodbatlas.Inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs\n            {\n                GroupId = \"628aa20d7f7f7f7f7098b81b8\",\n                Roles = new[]\n                {\n                    \"GROUP_OWNER\",\n                    \"GROUP_DATA_ACCESS_ADMIN\",\n                    \"GROUP_SEARCH_INDEX_EDITOR\",\n                    \"GROUP_DATA_ACCESS_READ_ONLY\",\n                },\n            },\n            new Mongodbatlas.Inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs\n            {\n                GroupId = \"628aa20d7f7f7f7f7078b81b8\",\n                Roles = new[]\n                {\n                    \"GROUP_OWNER\",\n                    \"GROUP_DATA_ACCESS_ADMIN\",\n                    \"GROUP_SEARCH_INDEX_EDITOR\",\n                    \"GROUP_DATA_ACCESS_READ_ONLY\",\n                    \"GROUP_DATA_ACCESS_READ_WRITE\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedSettingsOrgRoleMapping(ctx, \"org_group_role_mapping_import\", \u0026mongodbatlas.FederatedSettingsOrgRoleMappingArgs{\n\t\t\tFederationSettingsId: pulumi.String(\"627a9687f7f7f7f774de306f14\"),\n\t\t\tOrgId:                pulumi.String(\"627a9683e7f7f7ff7fe306f14\"),\n\t\t\tExternalGroupName:    pulumi.String(\"myGrouptest\"),\n\t\t\tRoleAssignments: mongodbatlas.FederatedSettingsOrgRoleMappingRoleAssignmentArray{\n\t\t\t\t\u0026mongodbatlas.FederatedSettingsOrgRoleMappingRoleAssignmentArgs{\n\t\t\t\t\tOrgId: pulumi.String(\"627a9683e7f7f7ff7fe306f14\"),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ORG_MEMBER\"),\n\t\t\t\t\t\tpulumi.String(\"ORG_GROUP_CREATOR\"),\n\t\t\t\t\t\tpulumi.String(\"ORG_BILLING_ADMIN\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.FederatedSettingsOrgRoleMappingRoleAssignmentArgs{\n\t\t\t\t\tGroupId: pulumi.String(\"628aa20d7f7f7f7f7098b81b8\"),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_OWNER\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_ADMIN\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_SEARCH_INDEX_EDITOR\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_READ_ONLY\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.FederatedSettingsOrgRoleMappingRoleAssignmentArgs{\n\t\t\t\t\tGroupId: pulumi.String(\"628aa20d7f7f7f7f7078b81b8\"),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_OWNER\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_ADMIN\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_SEARCH_INDEX_EDITOR\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_READ_ONLY\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_READ_WRITE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping(\"orgGroupRoleMappingImport\", FederatedSettingsOrgRoleMappingArgs.builder()\n            .federationSettingsId(\"627a9687f7f7f7f774de306f14\")\n            .orgId(\"627a9683e7f7f7ff7fe306f14\")\n            .externalGroupName(\"myGrouptest\")\n            .roleAssignments(            \n                FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()\n                    .orgId(\"627a9683e7f7f7ff7fe306f14\")\n                    .roles(                    \n                        \"ORG_MEMBER\",\n                        \"ORG_GROUP_CREATOR\",\n                        \"ORG_BILLING_ADMIN\")\n                    .build(),\n                FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()\n                    .groupId(\"628aa20d7f7f7f7f7098b81b8\")\n                    .roles(                    \n                        \"GROUP_OWNER\",\n                        \"GROUP_DATA_ACCESS_ADMIN\",\n                        \"GROUP_SEARCH_INDEX_EDITOR\",\n                        \"GROUP_DATA_ACCESS_READ_ONLY\")\n                    .build(),\n                FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()\n                    .groupId(\"628aa20d7f7f7f7f7078b81b8\")\n                    .roles(                    \n                        \"GROUP_OWNER\",\n                        \"GROUP_DATA_ACCESS_ADMIN\",\n                        \"GROUP_SEARCH_INDEX_EDITOR\",\n                        \"GROUP_DATA_ACCESS_READ_ONLY\",\n                        \"GROUP_DATA_ACCESS_READ_WRITE\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  orgGroupRoleMappingImport:\n    type: mongodbatlas:FederatedSettingsOrgRoleMapping\n    name: org_group_role_mapping_import\n    properties:\n      federationSettingsId: 627a9687f7f7f7f774de306f14\n      orgId: 627a9683e7f7f7ff7fe306f14\n      externalGroupName: myGrouptest\n      roleAssignments:\n        - orgId: 627a9683e7f7f7ff7fe306f14\n          roles:\n            - ORG_MEMBER\n            - ORG_GROUP_CREATOR\n            - ORG_BILLING_ADMIN\n        - groupId: 628aa20d7f7f7f7f7098b81b8\n          roles:\n            - GROUP_OWNER\n            - GROUP_DATA_ACCESS_ADMIN\n            - GROUP_SEARCH_INDEX_EDITOR\n            - GROUP_DATA_ACCESS_READ_ONLY\n        - groupId: 628aa20d7f7f7f7f7078b81b8\n          roles:\n            - GROUP_OWNER\n            - GROUP_DATA_ACCESS_ADMIN\n            - GROUP_SEARCH_INDEX_EDITOR\n            - GROUP_DATA_ACCESS_READ_ONLY\n            - GROUP_DATA_ACCESS_READ_WRITE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Okta and MongoDB Atlas Federated Settings Configuration\n\n## Import\n\nFederatedSettingsOrgRoleMapping can be imported using federation_settings_id-org_id-role_mapping_id, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/federatedSettingsOrgRoleMapping:FederatedSettingsOrgRoleMapping org_group_role_mapping_import 6287a663c7f7f7f71c441c6c-627a96837f7f7f7e306f14-628ae97f7f7468ea3727\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://www.mongodb.com/docs/atlas/reference/api/federation-configuration/)\n\n","properties":{"externalGroupName":{"type":"string","description":"Unique label that identifies the identity provider group to which this role mapping applies.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"roleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedSettingsOrgRoleMappingRoleAssignment:FederatedSettingsOrgRoleMappingRoleAssignment"},"description":"Atlas roles and the unique identifiers of the groups and organizations associated with each role.\n"},"roleMappingId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this role mapping.\n"}},"required":["externalGroupName","federationSettingsId","orgId","roleAssignments","roleMappingId"],"inputProperties":{"externalGroupName":{"type":"string","description":"Unique label that identifies the identity provider group to which this role mapping applies.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"roleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedSettingsOrgRoleMappingRoleAssignment:FederatedSettingsOrgRoleMappingRoleAssignment"},"description":"Atlas roles and the unique identifiers of the groups and organizations associated with each role.\n"}},"requiredInputs":["externalGroupName","federationSettingsId","orgId","roleAssignments"],"stateInputs":{"description":"Input properties used for looking up and filtering FederatedSettingsOrgRoleMapping resources.\n","properties":{"externalGroupName":{"type":"string","description":"Unique label that identifies the identity provider group to which this role mapping applies.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"roleAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/FederatedSettingsOrgRoleMappingRoleAssignment:FederatedSettingsOrgRoleMappingRoleAssignment"},"description":"Atlas roles and the unique identifiers of the groups and organizations associated with each role.\n"},"roleMappingId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this role mapping.\n"}},"type":"object"}},"mongodbatlas:index/flexCluster:FlexCluster":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FlexCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.FlexCluster`\" pulumi-lang-go=\"`FlexCluster`\" pulumi-lang-python=\"`FlexCluster`\" pulumi-lang-yaml=\"`mongodbatlas.FlexCluster`\" pulumi-lang-java=\"`mongodbatlas.FlexCluster`\"\u003e`mongodbatlas.FlexCluster`\u003c/span\u003e provides a Flex Cluster resource. The resource lets you create, update, delete and import a flex cluster.\n\n**RECOMMENDATION:** We recommend using the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e resource instead of the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FlexCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.FlexCluster`\" pulumi-lang-go=\"`FlexCluster`\" pulumi-lang-python=\"`FlexCluster`\" pulumi-lang-yaml=\"`mongodbatlas.FlexCluster`\" pulumi-lang-java=\"`mongodbatlas.FlexCluster`\"\u003e`mongodbatlas.FlexCluster`\u003c/span\u003e resource to create and manage Flex clusters. The \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e resource not only supports Flex clusters, but also supports tenant and dedicated clusters, providing easier migration between different cluster types. For more information, see the Advanced Cluster resource.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example_clusterFlexCluster = new mongodbatlas.FlexCluster(\"example-cluster\", {\n    projectId: projectId,\n    name: clusterName,\n    providerSettings: {\n        backingProviderName: \"AWS\",\n        regionName: \"US_EAST_1\",\n    },\n    terminationProtectionEnabled: true,\n});\nconst example_cluster = example_clusterFlexCluster.name.apply(name =\u003e mongodbatlas.getFlexClusterOutput({\n    projectId: projectId,\n    name: name,\n}));\nconst example_clusters = mongodbatlas.getFlexClusters({\n    projectId: projectId,\n});\nexport const mongodbatlasFlexCluster = example_cluster.apply(example_cluster =\u003e example_cluster.name);\nexport const mongodbatlasFlexClustersNames = example_clusters.then(example_clusters =\u003e .map(cluster =\u003e (cluster.name)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample_cluster_flex_cluster = mongodbatlas.FlexCluster(\"example-cluster\",\n    project_id=project_id,\n    name=cluster_name,\n    provider_settings={\n        \"backing_provider_name\": \"AWS\",\n        \"region_name\": \"US_EAST_1\",\n    },\n    termination_protection_enabled=True)\nexample_cluster = example_cluster_flex_cluster.name.apply(lambda name: mongodbatlas.get_flex_cluster_output(project_id=project_id,\n    name=name))\nexample_clusters = mongodbatlas.get_flex_clusters(project_id=project_id)\npulumi.export(\"mongodbatlasFlexCluster\", example_cluster.name)\npulumi.export(\"mongodbatlasFlexClustersNames\", [cluster.name for cluster in example_clusters.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_clusterFlexCluster = new Mongodbatlas.FlexCluster(\"example-cluster\", new()\n    {\n        ProjectId = projectId,\n        Name = clusterName,\n        ProviderSettings = new Mongodbatlas.Inputs.FlexClusterProviderSettingsArgs\n        {\n            BackingProviderName = \"AWS\",\n            RegionName = \"US_EAST_1\",\n        },\n        TerminationProtectionEnabled = true,\n    });\n\n    var example_cluster = Mongodbatlas.GetFlexCluster.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_clusterFlexCluster.Name,\n    });\n\n    var example_clusters = Mongodbatlas.GetFlexClusters.Invoke(new()\n    {\n        ProjectId = projectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbatlasFlexCluster\"] = example_cluster.Apply(example_cluster =\u003e example_cluster.Apply(getFlexClusterResult =\u003e getFlexClusterResult.Name)),\n        [\"mongodbatlasFlexClustersNames\"] = example_clusters.Apply(example_clusters =\u003e .Select(cluster =\u003e \n        {\n            return cluster.Name;\n        }).ToList()),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Flex Cluster\n\n\n## Import \n\nYou can import the Flex Cluster resource by using the Project ID and Flex Cluster name, in the format `PROJECT_ID-FLEX_CLUSTER_NAME`. For example:\n```\n$ terraform import mongodbatlas_flex_cluster.test 6117ac2fe2a3d04ed27a987v-yourFlexClusterName\n```\n\nFor more information see: [MongoDB Atlas API - Flex Cluster](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Flex-Clusters/operation/createFlexcluster) Documentation.\n","properties":{"backupSettings":{"$ref":"#/types/mongodbatlas:index/FlexClusterBackupSettings:FlexClusterBackupSettings","description":"Flex backup configuration\n"},"clusterType":{"type":"string","description":"Flex cluster topology.\n"},"connectionStrings":{"$ref":"#/types/mongodbatlas:index/FlexClusterConnectionStrings:FlexClusterConnectionStrings","description":"Collection of Uniform Resource Locators that point to the MongoDB database.\n"},"createDate":{"type":"string","description":"Date and time when MongoDB Cloud created this instance. This parameter expresses its value in ISO 8601 format in UTC.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"mongoDbVersion":{"type":"string","description":"Version of MongoDB that the instance runs.\n"},"name":{"type":"string","description":"Human-readable label that identifies the instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the project.\n"},"providerSettings":{"$ref":"#/types/mongodbatlas:index/FlexClusterProviderSettings:FlexClusterProviderSettings","description":"Group of cloud provider settings that configure the provisioned MongoDB flex cluster.\n"},"stateName":{"type":"string","description":"Human-readable label that indicates the current operating condition of this instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the instance.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, MongoDB Cloud won't delete the cluster. If set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, MongoDB Cloud will delete the cluster.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/FlexClusterTimeouts:FlexClusterTimeouts"},"versionReleaseSystem":{"type":"string","description":"Method by which the cluster maintains the MongoDB versions.\n"}},"required":["backupSettings","clusterType","connectionStrings","createDate","deleteOnCreateTimeout","mongoDbVersion","name","projectId","providerSettings","stateName","terminationProtectionEnabled","versionReleaseSystem"],"inputProperties":{"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"name":{"type":"string","description":"Human-readable label that identifies the instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the project.\n"},"providerSettings":{"$ref":"#/types/mongodbatlas:index/FlexClusterProviderSettings:FlexClusterProviderSettings","description":"Group of cloud provider settings that configure the provisioned MongoDB flex cluster.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the instance.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, MongoDB Cloud won't delete the cluster. If set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, MongoDB Cloud will delete the cluster.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/FlexClusterTimeouts:FlexClusterTimeouts"}},"requiredInputs":["projectId","providerSettings"],"stateInputs":{"description":"Input properties used for looking up and filtering FlexCluster resources.\n","properties":{"backupSettings":{"$ref":"#/types/mongodbatlas:index/FlexClusterBackupSettings:FlexClusterBackupSettings","description":"Flex backup configuration\n"},"clusterType":{"type":"string","description":"Flex cluster topology.\n"},"connectionStrings":{"$ref":"#/types/mongodbatlas:index/FlexClusterConnectionStrings:FlexClusterConnectionStrings","description":"Collection of Uniform Resource Locators that point to the MongoDB database.\n"},"createDate":{"type":"string","description":"Date and time when MongoDB Cloud created this instance. This parameter expresses its value in ISO 8601 format in UTC.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"mongoDbVersion":{"type":"string","description":"Version of MongoDB that the instance runs.\n"},"name":{"type":"string","description":"Human-readable label that identifies the instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the project.\n"},"providerSettings":{"$ref":"#/types/mongodbatlas:index/FlexClusterProviderSettings:FlexClusterProviderSettings","description":"Group of cloud provider settings that configure the provisioned MongoDB flex cluster.\n"},"stateName":{"type":"string","description":"Human-readable label that indicates the current operating condition of this instance.\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the instance.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, MongoDB Cloud won't delete the cluster. If set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, MongoDB Cloud will delete the cluster.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/FlexClusterTimeouts:FlexClusterTimeouts"},"versionReleaseSystem":{"type":"string","description":"Method by which the cluster maintains the MongoDB versions.\n"}},"type":"object"}},"mongodbatlas:index/globalClusterConfig:GlobalClusterConfig":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.GlobalClusterConfig`\" pulumi-lang-dotnet=\"`mongodbatlas.GlobalClusterConfig`\" pulumi-lang-go=\"`GlobalClusterConfig`\" pulumi-lang-python=\"`GlobalClusterConfig`\" pulumi-lang-yaml=\"`mongodbatlas.GlobalClusterConfig`\" pulumi-lang-java=\"`mongodbatlas.GlobalClusterConfig`\"\u003e`mongodbatlas.GlobalClusterConfig`\u003c/span\u003e provides a Global Cluster Configuration resource.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\u003e **NOTE:** This resource can only be used with Atlas-managed clusters. See doc for \u003cspan pulumi-lang-nodejs=\"`globalClusterSelfManagedSharding`\" pulumi-lang-dotnet=\"`GlobalClusterSelfManagedSharding`\" pulumi-lang-go=\"`globalClusterSelfManagedSharding`\" pulumi-lang-python=\"`global_cluster_self_managed_sharding`\" pulumi-lang-yaml=\"`globalClusterSelfManagedSharding`\" pulumi-lang-java=\"`globalClusterSelfManagedSharding`\"\u003e`global_cluster_self_managed_sharding`\u003c/span\u003e attribute in \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e resource for more information.\n\n\u003e **IMPORTANT:** You can update a Global Cluster Configuration to add new custom zone mappings and managed namespaces. However, once configured, you can't modify or partially delete custom zone mappings (you must remove them all at once). You can add or remove, but can't modify, managed namespaces. Any update that changes an existing managed namespace results in an error. [Read more about Global Cluster Configuration](https://www.mongodb.com/docs/atlas/global-clusters/). For more details, see [Global Clusters API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-global-clusters)\n\n## Examples Usage\n\n### Example Global cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.AdvancedCluster(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"\u003cCLUSTER-NAME\u003e\",\n    clusterType: \"GEOSHARDED\",\n    backupEnabled: true,\n    replicationSpecs: [\n        {\n            zoneName: \"Zone 1\",\n            regionConfigs: [{\n                electableSpecs: {\n                    instanceSize: \"M30\",\n                    nodeCount: 3,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"EU_CENTRAL_1\",\n            }],\n        },\n        {\n            zoneName: \"Zone 2\",\n            regionConfigs: [{\n                electableSpecs: {\n                    instanceSize: \"M30\",\n                    nodeCount: 3,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"US_EAST_2\",\n            }],\n        },\n    ],\n});\nconst config = new mongodbatlas.GlobalClusterConfig(\"config\", {\n    projectId: test.projectId,\n    clusterName: test.name,\n    managedNamespaces: [{\n        db: \"mydata\",\n        collection: \"publishers\",\n        customShardKey: \"city\",\n        isCustomShardKeyHashed: false,\n        isShardKeyUnique: false,\n    }],\n    customZoneMappings: [{\n        location: \"CA\",\n        zone: \"Zone 1\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.AdvancedCluster(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"\u003cCLUSTER-NAME\u003e\",\n    cluster_type=\"GEOSHARDED\",\n    backup_enabled=True,\n    replication_specs=[\n        {\n            \"zone_name\": \"Zone 1\",\n            \"region_configs\": [{\n                \"electable_specs\": {\n                    \"instance_size\": \"M30\",\n                    \"node_count\": 3,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"EU_CENTRAL_1\",\n            }],\n        },\n        {\n            \"zone_name\": \"Zone 2\",\n            \"region_configs\": [{\n                \"electable_specs\": {\n                    \"instance_size\": \"M30\",\n                    \"node_count\": 3,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"US_EAST_2\",\n            }],\n        },\n    ])\nconfig = mongodbatlas.GlobalClusterConfig(\"config\",\n    project_id=test.project_id,\n    cluster_name=test.name,\n    managed_namespaces=[{\n        \"db\": \"mydata\",\n        \"collection\": \"publishers\",\n        \"custom_shard_key\": \"city\",\n        \"is_custom_shard_key_hashed\": False,\n        \"is_shard_key_unique\": False,\n    }],\n    custom_zone_mappings=[{\n        \"location\": \"CA\",\n        \"zone\": \"Zone 1\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.AdvancedCluster(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"\u003cCLUSTER-NAME\u003e\",\n        ClusterType = \"GEOSHARDED\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                ZoneName = \"Zone 1\",\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"EU_CENTRAL_1\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                ZoneName = \"Zone 2\",\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_2\",\n                    },\n                },\n            },\n        },\n    });\n\n    var config = new Mongodbatlas.GlobalClusterConfig(\"config\", new()\n    {\n        ProjectId = test.ProjectId,\n        ClusterName = test.Name,\n        ManagedNamespaces = new[]\n        {\n            new Mongodbatlas.Inputs.GlobalClusterConfigManagedNamespaceArgs\n            {\n                Db = \"mydata\",\n                Collection = \"publishers\",\n                CustomShardKey = \"city\",\n                IsCustomShardKeyHashed = false,\n                IsShardKeyUnique = false,\n            },\n        },\n        CustomZoneMappings = new[]\n        {\n            new Mongodbatlas.Inputs.GlobalClusterConfigCustomZoneMappingArgs\n            {\n                Location = \"CA\",\n                Zone = \"Zone 1\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.NewAdvancedCluster(ctx, \"test\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"\u003cCLUSTER-NAME\u003e\"),\n\t\t\tClusterType:   pulumi.String(\"GEOSHARDED\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName: pulumi.String(\"Zone 1\"),\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_CENTRAL_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName: pulumi.String(\"Zone 2\"),\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewGlobalClusterConfig(ctx, \"config\", \u0026mongodbatlas.GlobalClusterConfigArgs{\n\t\t\tProjectId:   test.ProjectId,\n\t\t\tClusterName: test.Name,\n\t\t\tManagedNamespaces: mongodbatlas.GlobalClusterConfigManagedNamespaceArray{\n\t\t\t\t\u0026mongodbatlas.GlobalClusterConfigManagedNamespaceArgs{\n\t\t\t\t\tDb:                     pulumi.String(\"mydata\"),\n\t\t\t\t\tCollection:             pulumi.String(\"publishers\"),\n\t\t\t\t\tCustomShardKey:         pulumi.String(\"city\"),\n\t\t\t\t\tIsCustomShardKeyHashed: pulumi.Bool(false),\n\t\t\t\t\tIsShardKeyUnique:       pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomZoneMappings: mongodbatlas.GlobalClusterConfigCustomZoneMappingArray{\n\t\t\t\t\u0026mongodbatlas.GlobalClusterConfigCustomZoneMappingArgs{\n\t\t\t\t\tLocation: pulumi.String(\"CA\"),\n\t\t\t\t\tZone:     pulumi.String(\"Zone 1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.GlobalClusterConfig;\nimport com.pulumi.mongodbatlas.GlobalClusterConfigArgs;\nimport com.pulumi.mongodbatlas.inputs.GlobalClusterConfigManagedNamespaceArgs;\nimport com.pulumi.mongodbatlas.inputs.GlobalClusterConfigCustomZoneMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new AdvancedCluster(\"test\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"\u003cCLUSTER-NAME\u003e\")\n            .clusterType(\"GEOSHARDED\")\n            .backupEnabled(true)\n            .replicationSpecs(            \n                AdvancedClusterReplicationSpecArgs.builder()\n                    .zoneName(\"Zone 1\")\n                    .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M30\")\n                            .nodeCount(3)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"EU_CENTRAL_1\")\n                        .build())\n                    .build(),\n                AdvancedClusterReplicationSpecArgs.builder()\n                    .zoneName(\"Zone 2\")\n                    .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M30\")\n                            .nodeCount(3)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"US_EAST_2\")\n                        .build())\n                    .build())\n            .build());\n\n        var config = new GlobalClusterConfig(\"config\", GlobalClusterConfigArgs.builder()\n            .projectId(test.projectId())\n            .clusterName(test.name())\n            .managedNamespaces(GlobalClusterConfigManagedNamespaceArgs.builder()\n                .db(\"mydata\")\n                .collection(\"publishers\")\n                .customShardKey(\"city\")\n                .isCustomShardKeyHashed(false)\n                .isShardKeyUnique(false)\n                .build())\n            .customZoneMappings(GlobalClusterConfigCustomZoneMappingArgs.builder()\n                .location(\"CA\")\n                .zone(\"Zone 1\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: \u003cCLUSTER-NAME\u003e\n      clusterType: GEOSHARDED\n      backupEnabled: true\n      replicationSpecs:\n        - zoneName: Zone 1\n          regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: EU_CENTRAL_1\n        - zoneName: Zone 2\n          regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_2\n  config:\n    type: mongodbatlas:GlobalClusterConfig\n    properties:\n      projectId: ${test.projectId}\n      clusterName: ${test.name}\n      managedNamespaces:\n        - db: mydata\n          collection: publishers\n          customShardKey: city\n          isCustomShardKeyHashed: false\n          isShardKeyUnique: false\n      customZoneMappings:\n        - location: CA\n          zone: Zone 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nGlobal Clusters can be imported using project ID and cluster name, in the format `PROJECTID-CLUSTER_NAME`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/globalClusterConfig:GlobalClusterConfig config 1112222b3bf99403840e8934-Cluster0\n```\n\nSee detailed information for arguments and attributes: [MongoDB API Global Clusters](https://docs.atlas.mongodb.com/reference/api/global-clusters/)\n\n","properties":{"clusterName":{"type":"string","description":"The name of the Global Cluster.\n"},"customZoneMappingZoneId":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of all custom zone mappings defined for the Global Cluster to `replication_specs.*.zone_id`. Atlas automatically maps each location code to the closest geographical zone. Custom zone mappings allow administrators to override these automatic mappings. If your Global Cluster does not have any custom zone mappings, this document is empty.\n"},"customZoneMappings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/GlobalClusterConfigCustomZoneMapping:GlobalClusterConfigCustomZoneMapping"},"description":"Each element in the list maps one ISO location code to a zone in your Global Cluster. See Custom Zone Mapping below for more details.\n"},"managedNamespaces":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/GlobalClusterConfigManagedNamespace:GlobalClusterConfigManagedNamespace"},"description":"Add a managed namespaces to a Global Cluster. For more information about managed namespaces, see [Global Clusters](https://docs.atlas.mongodb.com/reference/api/global-clusters/). See Managed Namespace below for more details.\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"required":["clusterName","customZoneMappingZoneId","managedNamespaces","projectId"],"inputProperties":{"clusterName":{"type":"string","description":"The name of the Global Cluster.\n","willReplaceOnChanges":true},"customZoneMappings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/GlobalClusterConfigCustomZoneMapping:GlobalClusterConfigCustomZoneMapping"},"description":"Each element in the list maps one ISO location code to a zone in your Global Cluster. See Custom Zone Mapping below for more details.\n"},"managedNamespaces":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/GlobalClusterConfigManagedNamespace:GlobalClusterConfigManagedNamespace"},"description":"Add a managed namespaces to a Global Cluster. For more information about managed namespaces, see [Global Clusters](https://docs.atlas.mongodb.com/reference/api/global-clusters/). See Managed Namespace below for more details.\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n","willReplaceOnChanges":true}},"requiredInputs":["clusterName","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering GlobalClusterConfig resources.\n","properties":{"clusterName":{"type":"string","description":"The name of the Global Cluster.\n","willReplaceOnChanges":true},"customZoneMappingZoneId":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of all custom zone mappings defined for the Global Cluster to `replication_specs.*.zone_id`. Atlas automatically maps each location code to the closest geographical zone. Custom zone mappings allow administrators to override these automatic mappings. If your Global Cluster does not have any custom zone mappings, this document is empty.\n"},"customZoneMappings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/GlobalClusterConfigCustomZoneMapping:GlobalClusterConfigCustomZoneMapping"},"description":"Each element in the list maps one ISO location code to a zone in your Global Cluster. See Custom Zone Mapping below for more details.\n"},"managedNamespaces":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/GlobalClusterConfigManagedNamespace:GlobalClusterConfigManagedNamespace"},"description":"Add a managed namespaces to a Global Cluster. For more information about managed namespaces, see [Global Clusters](https://docs.atlas.mongodb.com/reference/api/global-clusters/). See Managed Namespace below for more details.\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n","willReplaceOnChanges":true}},"type":"object"}},"mongodbatlas:index/ldapConfiguration:LdapConfiguration":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.LdapConfiguration`\" pulumi-lang-dotnet=\"`mongodbatlas.LdapConfiguration`\" pulumi-lang-go=\"`LdapConfiguration`\" pulumi-lang-python=\"`LdapConfiguration`\" pulumi-lang-yaml=\"`mongodbatlas.LdapConfiguration`\" pulumi-lang-java=\"`mongodbatlas.LdapConfiguration`\"\u003e`mongodbatlas.LdapConfiguration`\u003c/span\u003e provides an LDAP Configuration resource. This allows an LDAP configuration for an Atlas project to be created and managed. This endpoint doesn’t verify connectivity using the provided LDAP over TLS configuration details. To verify a configuration before saving it, use the resource to verify the LDAP configuration.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.Project(\"test\", {\n    name: \"NAME OF THE PROJECT\",\n    orgId: \"ORG ID\",\n});\nconst testLdapConfiguration = new mongodbatlas.LdapConfiguration(\"test\", {\n    projectId: test.id,\n    authenticationEnabled: true,\n    hostname: \"HOSTNAME\",\n    port: 636,\n    bindUsername: \"USERNAME\",\n    bindPassword: \"PASSWORD\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.Project(\"test\",\n    name=\"NAME OF THE PROJECT\",\n    org_id=\"ORG ID\")\ntest_ldap_configuration = mongodbatlas.LdapConfiguration(\"test\",\n    project_id=test.id,\n    authentication_enabled=True,\n    hostname=\"HOSTNAME\",\n    port=636,\n    bind_username=\"USERNAME\",\n    bind_password=\"PASSWORD\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.Project(\"test\", new()\n    {\n        Name = \"NAME OF THE PROJECT\",\n        OrgId = \"ORG ID\",\n    });\n\n    var testLdapConfiguration = new Mongodbatlas.LdapConfiguration(\"test\", new()\n    {\n        ProjectId = test.Id,\n        AuthenticationEnabled = true,\n        Hostname = \"HOSTNAME\",\n        Port = 636,\n        BindUsername = \"USERNAME\",\n        BindPassword = \"PASSWORD\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.NewProject(ctx, \"test\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.String(\"NAME OF THE PROJECT\"),\n\t\t\tOrgId: pulumi.String(\"ORG ID\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewLdapConfiguration(ctx, \"test\", \u0026mongodbatlas.LdapConfigurationArgs{\n\t\t\tProjectId:             test.ID(),\n\t\t\tAuthenticationEnabled: pulumi.Bool(true),\n\t\t\tHostname:              pulumi.String(\"HOSTNAME\"),\n\t\t\tPort:                  pulumi.Int(636),\n\t\t\tBindUsername:          pulumi.String(\"USERNAME\"),\n\t\t\tBindPassword:          pulumi.String(\"PASSWORD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.LdapConfiguration;\nimport com.pulumi.mongodbatlas.LdapConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Project(\"test\", ProjectArgs.builder()\n            .name(\"NAME OF THE PROJECT\")\n            .orgId(\"ORG ID\")\n            .build());\n\n        var testLdapConfiguration = new LdapConfiguration(\"testLdapConfiguration\", LdapConfigurationArgs.builder()\n            .projectId(test.id())\n            .authenticationEnabled(true)\n            .hostname(\"HOSTNAME\")\n            .port(636)\n            .bindUsername(\"USERNAME\")\n            .bindPassword(\"PASSWORD\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:Project\n    properties:\n      name: NAME OF THE PROJECT\n      orgId: ORG ID\n  testLdapConfiguration:\n    type: mongodbatlas:LdapConfiguration\n    name: test\n    properties:\n      projectId: ${test.id}\n      authenticationEnabled: true\n      hostname: HOSTNAME\n      port: 636\n      bindUsername: USERNAME\n      bindPassword: PASSWORD\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### LDAP With User To DN Mapping\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.Project(\"test\", {\n    name: \"NAME OF THE PROJECT\",\n    orgId: \"ORG ID\",\n});\nconst testLdapConfiguration = new mongodbatlas.LdapConfiguration(\"test\", {\n    projectId: test.id,\n    authenticationEnabled: true,\n    hostname: \"HOSTNAME\",\n    port: 636,\n    bindUsername: \"USERNAME\",\n    bindPassword: \"PASSWORD\",\n    caCertificate: \"CA CERTIFICATE\",\n    authzQueryTemplate: \"{USER}?memberOf?base\",\n    userToDnMappings: [{\n        match: \"(.+)\",\n        ldapQuery: \"DC=example,DC=com??sub?(userPrincipalName={0})\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.Project(\"test\",\n    name=\"NAME OF THE PROJECT\",\n    org_id=\"ORG ID\")\ntest_ldap_configuration = mongodbatlas.LdapConfiguration(\"test\",\n    project_id=test.id,\n    authentication_enabled=True,\n    hostname=\"HOSTNAME\",\n    port=636,\n    bind_username=\"USERNAME\",\n    bind_password=\"PASSWORD\",\n    ca_certificate=\"CA CERTIFICATE\",\n    authz_query_template=\"{USER}?memberOf?base\",\n    user_to_dn_mappings=[{\n        \"match\": \"(.+)\",\n        \"ldap_query\": \"DC=example,DC=com??sub?(userPrincipalName={0})\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.Project(\"test\", new()\n    {\n        Name = \"NAME OF THE PROJECT\",\n        OrgId = \"ORG ID\",\n    });\n\n    var testLdapConfiguration = new Mongodbatlas.LdapConfiguration(\"test\", new()\n    {\n        ProjectId = test.Id,\n        AuthenticationEnabled = true,\n        Hostname = \"HOSTNAME\",\n        Port = 636,\n        BindUsername = \"USERNAME\",\n        BindPassword = \"PASSWORD\",\n        CaCertificate = \"CA CERTIFICATE\",\n        AuthzQueryTemplate = \"{USER}?memberOf?base\",\n        UserToDnMappings = new[]\n        {\n            new Mongodbatlas.Inputs.LdapConfigurationUserToDnMappingArgs\n            {\n                Match = \"(.+)\",\n                LdapQuery = \"DC=example,DC=com??sub?(userPrincipalName={0})\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.NewProject(ctx, \"test\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.String(\"NAME OF THE PROJECT\"),\n\t\t\tOrgId: pulumi.String(\"ORG ID\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewLdapConfiguration(ctx, \"test\", \u0026mongodbatlas.LdapConfigurationArgs{\n\t\t\tProjectId:             test.ID(),\n\t\t\tAuthenticationEnabled: pulumi.Bool(true),\n\t\t\tHostname:              pulumi.String(\"HOSTNAME\"),\n\t\t\tPort:                  pulumi.Int(636),\n\t\t\tBindUsername:          pulumi.String(\"USERNAME\"),\n\t\t\tBindPassword:          pulumi.String(\"PASSWORD\"),\n\t\t\tCaCertificate:         pulumi.String(\"CA CERTIFICATE\"),\n\t\t\tAuthzQueryTemplate:    pulumi.String(\"{USER}?memberOf?base\"),\n\t\t\tUserToDnMappings: mongodbatlas.LdapConfigurationUserToDnMappingArray{\n\t\t\t\t\u0026mongodbatlas.LdapConfigurationUserToDnMappingArgs{\n\t\t\t\t\tMatch:     pulumi.String(\"(.+)\"),\n\t\t\t\t\tLdapQuery: pulumi.String(\"DC=example,DC=com??sub?(userPrincipalName={0})\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.LdapConfiguration;\nimport com.pulumi.mongodbatlas.LdapConfigurationArgs;\nimport com.pulumi.mongodbatlas.inputs.LdapConfigurationUserToDnMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Project(\"test\", ProjectArgs.builder()\n            .name(\"NAME OF THE PROJECT\")\n            .orgId(\"ORG ID\")\n            .build());\n\n        var testLdapConfiguration = new LdapConfiguration(\"testLdapConfiguration\", LdapConfigurationArgs.builder()\n            .projectId(test.id())\n            .authenticationEnabled(true)\n            .hostname(\"HOSTNAME\")\n            .port(636)\n            .bindUsername(\"USERNAME\")\n            .bindPassword(\"PASSWORD\")\n            .caCertificate(\"CA CERTIFICATE\")\n            .authzQueryTemplate(\"{USER}?memberOf?base\")\n            .userToDnMappings(LdapConfigurationUserToDnMappingArgs.builder()\n                .match(\"(.+)\")\n                .ldapQuery(\"DC=example,DC=com??sub?(userPrincipalName={0})\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:Project\n    properties:\n      name: NAME OF THE PROJECT\n      orgId: ORG ID\n  testLdapConfiguration:\n    type: mongodbatlas:LdapConfiguration\n    name: test\n    properties:\n      projectId: ${test.id}\n      authenticationEnabled: true\n      hostname: HOSTNAME\n      port: 636\n      bindUsername: USERNAME\n      bindPassword: PASSWORD\n      caCertificate: CA CERTIFICATE\n      authzQueryTemplate: '{USER}?memberOf?base'\n      userToDnMappings:\n        - match: (.+)\n          ldapQuery: DC=example,DC=com??sub?(userPrincipalName={0})\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLDAP Configuration must be imported using project ID, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/ldapConfiguration:LdapConfiguration test 5d09d6a59ccf6445652a444a\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/ldaps-configuration-save)\n\n","properties":{"authenticationEnabled":{"type":"boolean","description":"Specifies whether user authentication with LDAP is enabled.\n"},"authorizationEnabled":{"type":"boolean","description":"Specifies whether user authorization with LDAP is enabled. You cannot enable user authorization with LDAP without first enabling user authentication with LDAP.\n"},"authzQueryTemplate":{"type":"string","description":"An LDAP query template that Atlas executes to obtain the LDAP groups to which the authenticated user belongs. Used only for user authorization. Use the {USER} placeholder in the URL to substitute the authenticated username. The query is relative to the host specified with hostname. The formatting for the query must conform to RFC4515 and RFC 4516. If you do not provide a query template, Atlas attempts to use the default value: `{USER}?memberOf?base`.\n"},"bindPassword":{"type":"string","description":"The password used to authenticate the \u003cspan pulumi-lang-nodejs=\"`bindUsername`\" pulumi-lang-dotnet=\"`BindUsername`\" pulumi-lang-go=\"`bindUsername`\" pulumi-lang-python=\"`bind_username`\" pulumi-lang-yaml=\"`bindUsername`\" pulumi-lang-java=\"`bindUsername`\"\u003e`bind_username`\u003c/span\u003e.\n","secret":true},"bindUsername":{"type":"string","description":"The user DN that Atlas uses to connect to the LDAP server. Must be the full DN, such as `CN=BindUser,CN=Users,DC=myldapserver,DC=mycompany,DC=com`.\n"},"caCertificate":{"type":"string","description":"CA certificate used to verify the identify of the LDAP server. Self-signed certificates are allowed.\n"},"hostname":{"type":"string","description":"The hostname or IP address of the LDAP server. The server must be visible to the internet or connected to your Atlas cluster with VPC Peering.\n"},"port":{"type":"integer","description":"The port to which the LDAP server listens for client connections. Default: \u003cspan pulumi-lang-nodejs=\"`636`\" pulumi-lang-dotnet=\"`636`\" pulumi-lang-go=\"`636`\" pulumi-lang-python=\"`636`\" pulumi-lang-yaml=\"`636`\" pulumi-lang-java=\"`636`\"\u003e`636`\u003c/span\u003e\n"},"projectId":{"type":"string","description":"The unique ID for the project to configure LDAP.\n"},"userToDnMappings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/LdapConfigurationUserToDnMapping:LdapConfigurationUserToDnMapping"},"description":"Maps an LDAP username for authentication to an LDAP Distinguished Name (DN). Each document contains a \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression and either a \u003cspan pulumi-lang-nodejs=\"`substitution`\" pulumi-lang-dotnet=\"`Substitution`\" pulumi-lang-go=\"`substitution`\" pulumi-lang-python=\"`substitution`\" pulumi-lang-yaml=\"`substitution`\" pulumi-lang-java=\"`substitution`\"\u003e`substitution`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ldapQuery`\" pulumi-lang-dotnet=\"`LdapQuery`\" pulumi-lang-go=\"`ldapQuery`\" pulumi-lang-python=\"`ldap_query`\" pulumi-lang-yaml=\"`ldapQuery`\" pulumi-lang-java=\"`ldapQuery`\"\u003e`ldap_query`\u003c/span\u003e template used to transform the LDAP username extracted from the regular expression. Atlas steps through the each document in the array in the given order, checking the authentication username against the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e filter. If a match is found, Atlas applies the transformation and uses the output to authenticate the user. Atlas does not check the remaining documents in the array. For more details and examples see the [MongoDB Atlas API Reference](https://docs.atlas.mongodb.com/reference/api/ldaps-configuration-save/).\n* `user_to_dn_mapping.0.match` - (Optional) A regular expression to match against a provided LDAP username. Each parenthesis-enclosed section represents a regular expression capture group used by the \u003cspan pulumi-lang-nodejs=\"`substitution`\" pulumi-lang-dotnet=\"`Substitution`\" pulumi-lang-go=\"`substitution`\" pulumi-lang-python=\"`substitution`\" pulumi-lang-yaml=\"`substitution`\" pulumi-lang-java=\"`substitution`\"\u003e`substitution`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ldapQuery`\" pulumi-lang-dotnet=\"`LdapQuery`\" pulumi-lang-go=\"`ldapQuery`\" pulumi-lang-python=\"`ldap_query`\" pulumi-lang-yaml=\"`ldapQuery`\" pulumi-lang-java=\"`ldapQuery`\"\u003e`ldap_query`\u003c/span\u003e template.\n* `user_to_dn_mapping.0.substitution` - (Optional) An LDAP Distinguished Name (DN) formatting template that converts the LDAP name matched by the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression into an LDAP Distinguished Name. Each bracket-enclosed numeric value is replaced by the corresponding regular expression capture group extracted from the LDAP username that matched the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression.\n* `user_to_dn_mapping.0.ldap_query` - (Optional) An LDAP query formatting template that inserts the LDAP name matched by the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression into an LDAP query URI as specified by RFC 4515 and RFC 4516. Each numeric value is replaced by the corresponding regular expression capture group extracted from the LDAP username that matched the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression.\n"}},"required":["authenticationEnabled","authorizationEnabled","authzQueryTemplate","bindPassword","bindUsername","caCertificate","hostname","projectId","userToDnMappings"],"inputProperties":{"authenticationEnabled":{"type":"boolean","description":"Specifies whether user authentication with LDAP is enabled.\n"},"authorizationEnabled":{"type":"boolean","description":"Specifies whether user authorization with LDAP is enabled. You cannot enable user authorization with LDAP without first enabling user authentication with LDAP.\n"},"authzQueryTemplate":{"type":"string","description":"An LDAP query template that Atlas executes to obtain the LDAP groups to which the authenticated user belongs. Used only for user authorization. Use the {USER} placeholder in the URL to substitute the authenticated username. The query is relative to the host specified with hostname. The formatting for the query must conform to RFC4515 and RFC 4516. If you do not provide a query template, Atlas attempts to use the default value: `{USER}?memberOf?base`.\n"},"bindPassword":{"type":"string","description":"The password used to authenticate the \u003cspan pulumi-lang-nodejs=\"`bindUsername`\" pulumi-lang-dotnet=\"`BindUsername`\" pulumi-lang-go=\"`bindUsername`\" pulumi-lang-python=\"`bind_username`\" pulumi-lang-yaml=\"`bindUsername`\" pulumi-lang-java=\"`bindUsername`\"\u003e`bind_username`\u003c/span\u003e.\n","secret":true},"bindUsername":{"type":"string","description":"The user DN that Atlas uses to connect to the LDAP server. Must be the full DN, such as `CN=BindUser,CN=Users,DC=myldapserver,DC=mycompany,DC=com`.\n"},"caCertificate":{"type":"string","description":"CA certificate used to verify the identify of the LDAP server. Self-signed certificates are allowed.\n"},"hostname":{"type":"string","description":"The hostname or IP address of the LDAP server. The server must be visible to the internet or connected to your Atlas cluster with VPC Peering.\n"},"port":{"type":"integer","description":"The port to which the LDAP server listens for client connections. Default: \u003cspan pulumi-lang-nodejs=\"`636`\" pulumi-lang-dotnet=\"`636`\" pulumi-lang-go=\"`636`\" pulumi-lang-python=\"`636`\" pulumi-lang-yaml=\"`636`\" pulumi-lang-java=\"`636`\"\u003e`636`\u003c/span\u003e\n"},"projectId":{"type":"string","description":"The unique ID for the project to configure LDAP.\n"},"userToDnMappings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/LdapConfigurationUserToDnMapping:LdapConfigurationUserToDnMapping"},"description":"Maps an LDAP username for authentication to an LDAP Distinguished Name (DN). Each document contains a \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression and either a \u003cspan pulumi-lang-nodejs=\"`substitution`\" pulumi-lang-dotnet=\"`Substitution`\" pulumi-lang-go=\"`substitution`\" pulumi-lang-python=\"`substitution`\" pulumi-lang-yaml=\"`substitution`\" pulumi-lang-java=\"`substitution`\"\u003e`substitution`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ldapQuery`\" pulumi-lang-dotnet=\"`LdapQuery`\" pulumi-lang-go=\"`ldapQuery`\" pulumi-lang-python=\"`ldap_query`\" pulumi-lang-yaml=\"`ldapQuery`\" pulumi-lang-java=\"`ldapQuery`\"\u003e`ldap_query`\u003c/span\u003e template used to transform the LDAP username extracted from the regular expression. Atlas steps through the each document in the array in the given order, checking the authentication username against the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e filter. If a match is found, Atlas applies the transformation and uses the output to authenticate the user. Atlas does not check the remaining documents in the array. For more details and examples see the [MongoDB Atlas API Reference](https://docs.atlas.mongodb.com/reference/api/ldaps-configuration-save/).\n* `user_to_dn_mapping.0.match` - (Optional) A regular expression to match against a provided LDAP username. Each parenthesis-enclosed section represents a regular expression capture group used by the \u003cspan pulumi-lang-nodejs=\"`substitution`\" pulumi-lang-dotnet=\"`Substitution`\" pulumi-lang-go=\"`substitution`\" pulumi-lang-python=\"`substitution`\" pulumi-lang-yaml=\"`substitution`\" pulumi-lang-java=\"`substitution`\"\u003e`substitution`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ldapQuery`\" pulumi-lang-dotnet=\"`LdapQuery`\" pulumi-lang-go=\"`ldapQuery`\" pulumi-lang-python=\"`ldap_query`\" pulumi-lang-yaml=\"`ldapQuery`\" pulumi-lang-java=\"`ldapQuery`\"\u003e`ldap_query`\u003c/span\u003e template.\n* `user_to_dn_mapping.0.substitution` - (Optional) An LDAP Distinguished Name (DN) formatting template that converts the LDAP name matched by the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression into an LDAP Distinguished Name. Each bracket-enclosed numeric value is replaced by the corresponding regular expression capture group extracted from the LDAP username that matched the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression.\n* `user_to_dn_mapping.0.ldap_query` - (Optional) An LDAP query formatting template that inserts the LDAP name matched by the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression into an LDAP query URI as specified by RFC 4515 and RFC 4516. Each numeric value is replaced by the corresponding regular expression capture group extracted from the LDAP username that matched the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression.\n"}},"requiredInputs":["authenticationEnabled","bindPassword","bindUsername","hostname","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering LdapConfiguration resources.\n","properties":{"authenticationEnabled":{"type":"boolean","description":"Specifies whether user authentication with LDAP is enabled.\n"},"authorizationEnabled":{"type":"boolean","description":"Specifies whether user authorization with LDAP is enabled. You cannot enable user authorization with LDAP without first enabling user authentication with LDAP.\n"},"authzQueryTemplate":{"type":"string","description":"An LDAP query template that Atlas executes to obtain the LDAP groups to which the authenticated user belongs. Used only for user authorization. Use the {USER} placeholder in the URL to substitute the authenticated username. The query is relative to the host specified with hostname. The formatting for the query must conform to RFC4515 and RFC 4516. If you do not provide a query template, Atlas attempts to use the default value: `{USER}?memberOf?base`.\n"},"bindPassword":{"type":"string","description":"The password used to authenticate the \u003cspan pulumi-lang-nodejs=\"`bindUsername`\" pulumi-lang-dotnet=\"`BindUsername`\" pulumi-lang-go=\"`bindUsername`\" pulumi-lang-python=\"`bind_username`\" pulumi-lang-yaml=\"`bindUsername`\" pulumi-lang-java=\"`bindUsername`\"\u003e`bind_username`\u003c/span\u003e.\n","secret":true},"bindUsername":{"type":"string","description":"The user DN that Atlas uses to connect to the LDAP server. Must be the full DN, such as `CN=BindUser,CN=Users,DC=myldapserver,DC=mycompany,DC=com`.\n"},"caCertificate":{"type":"string","description":"CA certificate used to verify the identify of the LDAP server. Self-signed certificates are allowed.\n"},"hostname":{"type":"string","description":"The hostname or IP address of the LDAP server. The server must be visible to the internet or connected to your Atlas cluster with VPC Peering.\n"},"port":{"type":"integer","description":"The port to which the LDAP server listens for client connections. Default: \u003cspan pulumi-lang-nodejs=\"`636`\" pulumi-lang-dotnet=\"`636`\" pulumi-lang-go=\"`636`\" pulumi-lang-python=\"`636`\" pulumi-lang-yaml=\"`636`\" pulumi-lang-java=\"`636`\"\u003e`636`\u003c/span\u003e\n"},"projectId":{"type":"string","description":"The unique ID for the project to configure LDAP.\n"},"userToDnMappings":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/LdapConfigurationUserToDnMapping:LdapConfigurationUserToDnMapping"},"description":"Maps an LDAP username for authentication to an LDAP Distinguished Name (DN). Each document contains a \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression and either a \u003cspan pulumi-lang-nodejs=\"`substitution`\" pulumi-lang-dotnet=\"`Substitution`\" pulumi-lang-go=\"`substitution`\" pulumi-lang-python=\"`substitution`\" pulumi-lang-yaml=\"`substitution`\" pulumi-lang-java=\"`substitution`\"\u003e`substitution`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ldapQuery`\" pulumi-lang-dotnet=\"`LdapQuery`\" pulumi-lang-go=\"`ldapQuery`\" pulumi-lang-python=\"`ldap_query`\" pulumi-lang-yaml=\"`ldapQuery`\" pulumi-lang-java=\"`ldapQuery`\"\u003e`ldap_query`\u003c/span\u003e template used to transform the LDAP username extracted from the regular expression. Atlas steps through the each document in the array in the given order, checking the authentication username against the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e filter. If a match is found, Atlas applies the transformation and uses the output to authenticate the user. Atlas does not check the remaining documents in the array. For more details and examples see the [MongoDB Atlas API Reference](https://docs.atlas.mongodb.com/reference/api/ldaps-configuration-save/).\n* `user_to_dn_mapping.0.match` - (Optional) A regular expression to match against a provided LDAP username. Each parenthesis-enclosed section represents a regular expression capture group used by the \u003cspan pulumi-lang-nodejs=\"`substitution`\" pulumi-lang-dotnet=\"`Substitution`\" pulumi-lang-go=\"`substitution`\" pulumi-lang-python=\"`substitution`\" pulumi-lang-yaml=\"`substitution`\" pulumi-lang-java=\"`substitution`\"\u003e`substitution`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ldapQuery`\" pulumi-lang-dotnet=\"`LdapQuery`\" pulumi-lang-go=\"`ldapQuery`\" pulumi-lang-python=\"`ldap_query`\" pulumi-lang-yaml=\"`ldapQuery`\" pulumi-lang-java=\"`ldapQuery`\"\u003e`ldap_query`\u003c/span\u003e template.\n* `user_to_dn_mapping.0.substitution` - (Optional) An LDAP Distinguished Name (DN) formatting template that converts the LDAP name matched by the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression into an LDAP Distinguished Name. Each bracket-enclosed numeric value is replaced by the corresponding regular expression capture group extracted from the LDAP username that matched the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression.\n* `user_to_dn_mapping.0.ldap_query` - (Optional) An LDAP query formatting template that inserts the LDAP name matched by the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression into an LDAP query URI as specified by RFC 4515 and RFC 4516. Each numeric value is replaced by the corresponding regular expression capture group extracted from the LDAP username that matched the \u003cspan pulumi-lang-nodejs=\"`match`\" pulumi-lang-dotnet=\"`Match`\" pulumi-lang-go=\"`match`\" pulumi-lang-python=\"`match`\" pulumi-lang-yaml=\"`match`\" pulumi-lang-java=\"`match`\"\u003e`match`\u003c/span\u003e regular expression.\n"}},"type":"object"}},"mongodbatlas:index/ldapVerify:LdapVerify":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.LdapVerify`\" pulumi-lang-dotnet=\"`mongodbatlas.LdapVerify`\" pulumi-lang-go=\"`LdapVerify`\" pulumi-lang-python=\"`LdapVerify`\" pulumi-lang-yaml=\"`mongodbatlas.LdapVerify`\" pulumi-lang-java=\"`mongodbatlas.LdapVerify`\"\u003e`mongodbatlas.LdapVerify`\u003c/span\u003e provides an LDAP Verify resource. This allows a a verification of an LDAP configuration over TLS for an Atlas project. Atlas retains only the most recent request for each project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.Project(\"test\", {\n    name: \"NAME OF THE PROJECT\",\n    orgId: \"ORG ID\",\n});\nconst testAdvancedCluster = new mongodbatlas.AdvancedCluster(\"test\", {\n    projectId: test.id,\n    name: \"NAME OF THE CLUSTER\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst testLdapVerify = new mongodbatlas.LdapVerify(\"test\", {\n    projectId: test.id,\n    hostname: \"HOSTNAME\",\n    port: 636,\n    bindUsername: \"USERNAME\",\n    bindPassword: \"PASSWORD\",\n}, {\n    dependsOn: [testAdvancedCluster],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.Project(\"test\",\n    name=\"NAME OF THE PROJECT\",\n    org_id=\"ORG ID\")\ntest_advanced_cluster = mongodbatlas.AdvancedCluster(\"test\",\n    project_id=test.id,\n    name=\"NAME OF THE CLUSTER\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest_ldap_verify = mongodbatlas.LdapVerify(\"test\",\n    project_id=test.id,\n    hostname=\"HOSTNAME\",\n    port=636,\n    bind_username=\"USERNAME\",\n    bind_password=\"PASSWORD\",\n    opts = pulumi.ResourceOptions(depends_on=[test_advanced_cluster]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.Project(\"test\", new()\n    {\n        Name = \"NAME OF THE PROJECT\",\n        OrgId = \"ORG ID\",\n    });\n\n    var testAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"test\", new()\n    {\n        ProjectId = test.Id,\n        Name = \"NAME OF THE CLUSTER\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var testLdapVerify = new Mongodbatlas.LdapVerify(\"test\", new()\n    {\n        ProjectId = test.Id,\n        Hostname = \"HOSTNAME\",\n        Port = 636,\n        BindUsername = \"USERNAME\",\n        BindPassword = \"PASSWORD\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            testAdvancedCluster,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.NewProject(ctx, \"test\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.String(\"NAME OF THE PROJECT\"),\n\t\t\tOrgId: pulumi.String(\"ORG ID\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"test\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     test.ID(),\n\t\t\tName:          pulumi.String(\"NAME OF THE CLUSTER\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewLdapVerify(ctx, \"test\", \u0026mongodbatlas.LdapVerifyArgs{\n\t\t\tProjectId:    test.ID(),\n\t\t\tHostname:     pulumi.String(\"HOSTNAME\"),\n\t\t\tPort:         pulumi.Int(636),\n\t\t\tBindUsername: pulumi.String(\"USERNAME\"),\n\t\t\tBindPassword: pulumi.String(\"PASSWORD\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestAdvancedCluster,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.LdapVerify;\nimport com.pulumi.mongodbatlas.LdapVerifyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Project(\"test\", ProjectArgs.builder()\n            .name(\"NAME OF THE PROJECT\")\n            .orgId(\"ORG ID\")\n            .build());\n\n        var testAdvancedCluster = new AdvancedCluster(\"testAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(test.id())\n            .name(\"NAME OF THE CLUSTER\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var testLdapVerify = new LdapVerify(\"testLdapVerify\", LdapVerifyArgs.builder()\n            .projectId(test.id())\n            .hostname(\"HOSTNAME\")\n            .port(636)\n            .bindUsername(\"USERNAME\")\n            .bindPassword(\"PASSWORD\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(testAdvancedCluster)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:Project\n    properties:\n      name: NAME OF THE PROJECT\n      orgId: ORG ID\n  testAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: test\n    properties:\n      projectId: ${test.id}\n      name: NAME OF THE CLUSTER\n      clusterType: REPLICASET\n      backupEnabled: true # enable cloud backup snapshots\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: US_EAST_1\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  testLdapVerify:\n    type: mongodbatlas:LdapVerify\n    name: test\n    properties:\n      projectId: ${test.id}\n      hostname: HOSTNAME\n      port: 636\n      bindUsername: USERNAME\n      bindPassword: PASSWORD\n    options:\n      dependsOn:\n        - ${testAdvancedCluster}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nLDAP Configuration must be imported using project ID and request ID, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/ldapVerify:LdapVerify test 5d09d6a59ccf6445652a444a-5d09d6a59ccf6445652a444a\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/ldaps-configuration-request-verification)\n\n","properties":{"authzQueryTemplate":{"type":"string","description":"An LDAP query template that Atlas executes to obtain the LDAP groups to which the authenticated user belongs. Used only for user authorization. Use the {USER} placeholder in the URL to substitute the authenticated username. The query is relative to the host specified with hostname. The formatting for the query must conform to RFC4515 and RFC 4516. If you do not provide a query template, Atlas attempts to use the default value: `{USER}?memberOf?base`.\n"},"bindPassword":{"type":"string","description":"The password used to authenticate the \u003cspan pulumi-lang-nodejs=\"`bindUsername`\" pulumi-lang-dotnet=\"`BindUsername`\" pulumi-lang-go=\"`bindUsername`\" pulumi-lang-python=\"`bind_username`\" pulumi-lang-yaml=\"`bindUsername`\" pulumi-lang-java=\"`bindUsername`\"\u003e`bind_username`\u003c/span\u003e.\n"},"bindUsername":{"type":"string","description":"The user DN that Atlas uses to connect to the LDAP server. Must be the full DN, such as `CN=BindUser,CN=Users,DC=myldapserver,DC=mycompany,DC=com`.\n"},"caCertificate":{"type":"string","description":"CA certificate used to verify the identify of the LDAP server. Self-signed certificates are allowed.\n"},"hostname":{"type":"string","description":"The hostname or IP address of the LDAP server. The server must be visible to the internet or connected to your Atlas cluster with VPC Peering.\n"},"links":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/LdapVerifyLink:LdapVerifyLink"},"description":"One or more links to sub-resources. The relations in the URLs are explained in the Web Linking Specification.\n"},"port":{"type":"integer","description":"The port to which the LDAP server listens for client connections. Default: \u003cspan pulumi-lang-nodejs=\"`636`\" pulumi-lang-dotnet=\"`636`\" pulumi-lang-go=\"`636`\" pulumi-lang-python=\"`636`\" pulumi-lang-yaml=\"`636`\" pulumi-lang-java=\"`636`\"\u003e`636`\u003c/span\u003e\n"},"projectId":{"type":"string","description":"The unique ID for the project to configure LDAP.\n"},"requestId":{"type":"string","description":"The unique identifier for the request to verify the LDAP over TLS/SSL configuration.\n"},"status":{"type":"string","description":"The current status of the LDAP over TLS/SSL configuration. One of the following values: `PENDING`, `SUCCESS`, and `FAILED`.\n"},"validations":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/LdapVerifyValidation:LdapVerifyValidation"},"description":"Array of validation messages related to the verification of the provided LDAP over TLS/SSL configuration details. The array contains a document for each test that Atlas runs. Atlas stops running tests after the first failure. The following return values can be seen here: [Values](https://docs.atlas.mongodb.com/reference/api/ldaps-configuration-request-verification)\n"}},"required":["authzQueryTemplate","bindPassword","bindUsername","caCertificate","hostname","links","port","projectId","requestId","status","validations"],"inputProperties":{"authzQueryTemplate":{"type":"string","description":"An LDAP query template that Atlas executes to obtain the LDAP groups to which the authenticated user belongs. Used only for user authorization. Use the {USER} placeholder in the URL to substitute the authenticated username. The query is relative to the host specified with hostname. The formatting for the query must conform to RFC4515 and RFC 4516. If you do not provide a query template, Atlas attempts to use the default value: `{USER}?memberOf?base`.\n","willReplaceOnChanges":true},"bindPassword":{"type":"string","description":"The password used to authenticate the \u003cspan pulumi-lang-nodejs=\"`bindUsername`\" pulumi-lang-dotnet=\"`BindUsername`\" pulumi-lang-go=\"`bindUsername`\" pulumi-lang-python=\"`bind_username`\" pulumi-lang-yaml=\"`bindUsername`\" pulumi-lang-java=\"`bindUsername`\"\u003e`bind_username`\u003c/span\u003e.\n","willReplaceOnChanges":true},"bindUsername":{"type":"string","description":"The user DN that Atlas uses to connect to the LDAP server. Must be the full DN, such as `CN=BindUser,CN=Users,DC=myldapserver,DC=mycompany,DC=com`.\n","willReplaceOnChanges":true},"caCertificate":{"type":"string","description":"CA certificate used to verify the identify of the LDAP server. Self-signed certificates are allowed.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"The hostname or IP address of the LDAP server. The server must be visible to the internet or connected to your Atlas cluster with VPC Peering.\n","willReplaceOnChanges":true},"port":{"type":"integer","description":"The port to which the LDAP server listens for client connections. Default: \u003cspan pulumi-lang-nodejs=\"`636`\" pulumi-lang-dotnet=\"`636`\" pulumi-lang-go=\"`636`\" pulumi-lang-python=\"`636`\" pulumi-lang-yaml=\"`636`\" pulumi-lang-java=\"`636`\"\u003e`636`\u003c/span\u003e\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The unique ID for the project to configure LDAP.\n","willReplaceOnChanges":true}},"requiredInputs":["bindPassword","bindUsername","hostname","port","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering LdapVerify resources.\n","properties":{"authzQueryTemplate":{"type":"string","description":"An LDAP query template that Atlas executes to obtain the LDAP groups to which the authenticated user belongs. Used only for user authorization. Use the {USER} placeholder in the URL to substitute the authenticated username. The query is relative to the host specified with hostname. The formatting for the query must conform to RFC4515 and RFC 4516. If you do not provide a query template, Atlas attempts to use the default value: `{USER}?memberOf?base`.\n","willReplaceOnChanges":true},"bindPassword":{"type":"string","description":"The password used to authenticate the \u003cspan pulumi-lang-nodejs=\"`bindUsername`\" pulumi-lang-dotnet=\"`BindUsername`\" pulumi-lang-go=\"`bindUsername`\" pulumi-lang-python=\"`bind_username`\" pulumi-lang-yaml=\"`bindUsername`\" pulumi-lang-java=\"`bindUsername`\"\u003e`bind_username`\u003c/span\u003e.\n","willReplaceOnChanges":true},"bindUsername":{"type":"string","description":"The user DN that Atlas uses to connect to the LDAP server. Must be the full DN, such as `CN=BindUser,CN=Users,DC=myldapserver,DC=mycompany,DC=com`.\n","willReplaceOnChanges":true},"caCertificate":{"type":"string","description":"CA certificate used to verify the identify of the LDAP server. Self-signed certificates are allowed.\n","willReplaceOnChanges":true},"hostname":{"type":"string","description":"The hostname or IP address of the LDAP server. The server must be visible to the internet or connected to your Atlas cluster with VPC Peering.\n","willReplaceOnChanges":true},"links":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/LdapVerifyLink:LdapVerifyLink"},"description":"One or more links to sub-resources. The relations in the URLs are explained in the Web Linking Specification.\n"},"port":{"type":"integer","description":"The port to which the LDAP server listens for client connections. Default: \u003cspan pulumi-lang-nodejs=\"`636`\" pulumi-lang-dotnet=\"`636`\" pulumi-lang-go=\"`636`\" pulumi-lang-python=\"`636`\" pulumi-lang-yaml=\"`636`\" pulumi-lang-java=\"`636`\"\u003e`636`\u003c/span\u003e\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The unique ID for the project to configure LDAP.\n","willReplaceOnChanges":true},"requestId":{"type":"string","description":"The unique identifier for the request to verify the LDAP over TLS/SSL configuration.\n"},"status":{"type":"string","description":"The current status of the LDAP over TLS/SSL configuration. One of the following values: `PENDING`, `SUCCESS`, and `FAILED`.\n"},"validations":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/LdapVerifyValidation:LdapVerifyValidation"},"description":"Array of validation messages related to the verification of the provided LDAP over TLS/SSL configuration details. The array contains a document for each test that Atlas runs. Atlas stops running tests after the first failure. The following return values can be seen here: [Values](https://docs.atlas.mongodb.com/reference/api/ldaps-configuration-request-verification)\n"}},"type":"object"}},"mongodbatlas:index/logIntegration:LogIntegration":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.LogIntegration`\" pulumi-lang-dotnet=\"`mongodbatlas.LogIntegration`\" pulumi-lang-go=\"`LogIntegration`\" pulumi-lang-python=\"`LogIntegration`\" pulumi-lang-yaml=\"`mongodbatlas.LogIntegration`\" pulumi-lang-java=\"`mongodbatlas.LogIntegration`\"\u003e`mongodbatlas.LogIntegration`\u003c/span\u003e provides a resource for managing log integration configurations at the project level. This resource allows you to continually export \u003cspan pulumi-lang-nodejs=\"`mongod`\" pulumi-lang-dotnet=\"`Mongod`\" pulumi-lang-go=\"`mongod`\" pulumi-lang-python=\"`mongod`\" pulumi-lang-yaml=\"`mongod`\" pulumi-lang-java=\"`mongod`\"\u003e`mongod`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongos`\" pulumi-lang-dotnet=\"`Mongos`\" pulumi-lang-go=\"`mongos`\" pulumi-lang-python=\"`mongos`\" pulumi-lang-yaml=\"`mongos`\" pulumi-lang-java=\"`mongos`\"\u003e`mongos`\u003c/span\u003e, and audit logs at 1-minute intervals. Supported integration types include AWS S3, Google Cloud Storage, Azure Blob Storage, Datadog, Splunk, and OpenTelemetry.\n\nTo use this resource, the requesting Service Account or API Key must have the Organization Owner or Project Owner role.\n\n## Example Usage\n\n### S\n\n### AWS S3\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// Set up cloud provider access in Atlas for AWS\nconst setup = new mongodbatlas.CloudProviderAccessSetup(\"setup\", {\n    projectId: project.id,\n    providerName: \"AWS\",\n});\nconst auth = new mongodbatlas.CloudProviderAccessAuthorization(\"auth\", {\n    projectId: project.id,\n    roleId: setup.roleId,\n    aws: {\n        iamAssumedRoleArn: atlasRole.arn,\n    },\n});\nconst example = new mongodbatlas.LogIntegration(\"example\", {\n    projectId: project.id,\n    type: \"S3_LOG_EXPORT\",\n    logTypes: [\"MONGOD_AUDIT\"],\n    bucketName: logBucket.bucket,\n    iamRoleId: auth.roleId,\n    prefixPath: \"atlas-logs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\n# Set up cloud provider access in Atlas for AWS\nsetup = mongodbatlas.CloudProviderAccessSetup(\"setup\",\n    project_id=project[\"id\"],\n    provider_name=\"AWS\")\nauth = mongodbatlas.CloudProviderAccessAuthorization(\"auth\",\n    project_id=project[\"id\"],\n    role_id=setup.role_id,\n    aws={\n        \"iam_assumed_role_arn\": atlas_role[\"arn\"],\n    })\nexample = mongodbatlas.LogIntegration(\"example\",\n    project_id=project[\"id\"],\n    type=\"S3_LOG_EXPORT\",\n    log_types=[\"MONGOD_AUDIT\"],\n    bucket_name=log_bucket[\"bucket\"],\n    iam_role_id=auth.role_id,\n    prefix_path=\"atlas-logs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Set up cloud provider access in Atlas for AWS\n    var setup = new Mongodbatlas.CloudProviderAccessSetup(\"setup\", new()\n    {\n        ProjectId = project.Id,\n        ProviderName = \"AWS\",\n    });\n\n    var auth = new Mongodbatlas.CloudProviderAccessAuthorization(\"auth\", new()\n    {\n        ProjectId = project.Id,\n        RoleId = setup.RoleId,\n        Aws = new Mongodbatlas.Inputs.CloudProviderAccessAuthorizationAwsArgs\n        {\n            IamAssumedRoleArn = atlasRole.Arn,\n        },\n    });\n\n    var example = new Mongodbatlas.LogIntegration(\"example\", new()\n    {\n        ProjectId = project.Id,\n        Type = \"S3_LOG_EXPORT\",\n        LogTypes = new[]\n        {\n            \"MONGOD_AUDIT\",\n        },\n        BucketName = logBucket.Bucket,\n        IamRoleId = auth.RoleId,\n        PrefixPath = \"atlas-logs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Set up cloud provider access in Atlas for AWS\n\t\tsetup, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"setup\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tauth, err := mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"auth\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRoleId:    setup.RoleId,\n\t\t\tAws: \u0026mongodbatlas.CloudProviderAccessAuthorizationAwsArgs{\n\t\t\t\tIamAssumedRoleArn: pulumi.Any(atlasRole.Arn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewLogIntegration(ctx, \"example\", \u0026mongodbatlas.LogIntegrationArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tType:      pulumi.String(\"S3_LOG_EXPORT\"),\n\t\t\tLogTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"MONGOD_AUDIT\"),\n\t\t\t},\n\t\t\tBucketName: pulumi.Any(logBucket.Bucket),\n\t\t\tIamRoleId:  auth.RoleId,\n\t\t\tPrefixPath: pulumi.String(\"atlas-logs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;\nimport com.pulumi.mongodbatlas.LogIntegration;\nimport com.pulumi.mongodbatlas.LogIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Set up cloud provider access in Atlas for AWS\n        var setup = new CloudProviderAccessSetup(\"setup\", CloudProviderAccessSetupArgs.builder()\n            .projectId(project.id())\n            .providerName(\"AWS\")\n            .build());\n\n        var auth = new CloudProviderAccessAuthorization(\"auth\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(project.id())\n            .roleId(setup.roleId())\n            .aws(CloudProviderAccessAuthorizationAwsArgs.builder()\n                .iamAssumedRoleArn(atlasRole.arn())\n                .build())\n            .build());\n\n        var example = new LogIntegration(\"example\", LogIntegrationArgs.builder()\n            .projectId(project.id())\n            .type(\"S3_LOG_EXPORT\")\n            .logTypes(\"MONGOD_AUDIT\")\n            .bucketName(logBucket.bucket())\n            .iamRoleId(auth.roleId())\n            .prefixPath(\"atlas-logs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Set up cloud provider access in Atlas for AWS\n  setup:\n    type: mongodbatlas:CloudProviderAccessSetup\n    properties:\n      projectId: ${project.id}\n      providerName: AWS\n  auth:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    properties:\n      projectId: ${project.id}\n      roleId: ${setup.roleId}\n      aws:\n        iamAssumedRoleArn: ${atlasRole.arn}\n  example:\n    type: mongodbatlas:LogIntegration\n    properties:\n      projectId: ${project.id}\n      type: S3_LOG_EXPORT\n      logTypes:\n        - MONGOD_AUDIT\n      bucketName: ${logBucket.bucket}\n      iamRoleId: ${auth.roleId}\n      prefixPath: atlas-logs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Google Cloud Storage (GCS)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// Set up cloud provider access in Atlas for GCP\nconst setup = new mongodbatlas.CloudProviderAccessSetup(\"setup\", {\n    projectId: project.id,\n    providerName: \"GCP\",\n});\nconst auth = new mongodbatlas.CloudProviderAccessAuthorization(\"auth\", {\n    projectId: project.id,\n    roleId: setup.roleId,\n});\nconst example = new mongodbatlas.LogIntegration(\"example\", {\n    projectId: project.id,\n    type: \"GCS_LOG_EXPORT\",\n    logTypes: [\"MONGOD\"],\n    bucketName: logBucket.name,\n    roleId: auth.roleId,\n    prefixPath: \"atlas-logs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\n# Set up cloud provider access in Atlas for GCP\nsetup = mongodbatlas.CloudProviderAccessSetup(\"setup\",\n    project_id=project[\"id\"],\n    provider_name=\"GCP\")\nauth = mongodbatlas.CloudProviderAccessAuthorization(\"auth\",\n    project_id=project[\"id\"],\n    role_id=setup.role_id)\nexample = mongodbatlas.LogIntegration(\"example\",\n    project_id=project[\"id\"],\n    type=\"GCS_LOG_EXPORT\",\n    log_types=[\"MONGOD\"],\n    bucket_name=log_bucket[\"name\"],\n    role_id=auth.role_id,\n    prefix_path=\"atlas-logs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Set up cloud provider access in Atlas for GCP\n    var setup = new Mongodbatlas.CloudProviderAccessSetup(\"setup\", new()\n    {\n        ProjectId = project.Id,\n        ProviderName = \"GCP\",\n    });\n\n    var auth = new Mongodbatlas.CloudProviderAccessAuthorization(\"auth\", new()\n    {\n        ProjectId = project.Id,\n        RoleId = setup.RoleId,\n    });\n\n    var example = new Mongodbatlas.LogIntegration(\"example\", new()\n    {\n        ProjectId = project.Id,\n        Type = \"GCS_LOG_EXPORT\",\n        LogTypes = new[]\n        {\n            \"MONGOD\",\n        },\n        BucketName = logBucket.Name,\n        RoleId = auth.RoleId,\n        PrefixPath = \"atlas-logs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Set up cloud provider access in Atlas for GCP\n\t\tsetup, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"setup\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tProviderName: pulumi.String(\"GCP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tauth, err := mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"auth\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRoleId:    setup.RoleId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewLogIntegration(ctx, \"example\", \u0026mongodbatlas.LogIntegrationArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tType:      pulumi.String(\"GCS_LOG_EXPORT\"),\n\t\t\tLogTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"MONGOD\"),\n\t\t\t},\n\t\t\tBucketName: pulumi.Any(logBucket.Name),\n\t\t\tRoleId:     auth.RoleId,\n\t\t\tPrefixPath: pulumi.String(\"atlas-logs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport com.pulumi.mongodbatlas.LogIntegration;\nimport com.pulumi.mongodbatlas.LogIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Set up cloud provider access in Atlas for GCP\n        var setup = new CloudProviderAccessSetup(\"setup\", CloudProviderAccessSetupArgs.builder()\n            .projectId(project.id())\n            .providerName(\"GCP\")\n            .build());\n\n        var auth = new CloudProviderAccessAuthorization(\"auth\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(project.id())\n            .roleId(setup.roleId())\n            .build());\n\n        var example = new LogIntegration(\"example\", LogIntegrationArgs.builder()\n            .projectId(project.id())\n            .type(\"GCS_LOG_EXPORT\")\n            .logTypes(\"MONGOD\")\n            .bucketName(logBucket.name())\n            .roleId(auth.roleId())\n            .prefixPath(\"atlas-logs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Set up cloud provider access in Atlas for GCP\n  setup:\n    type: mongodbatlas:CloudProviderAccessSetup\n    properties:\n      projectId: ${project.id}\n      providerName: GCP\n  auth:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    properties:\n      projectId: ${project.id}\n      roleId: ${setup.roleId}\n  example:\n    type: mongodbatlas:LogIntegration\n    properties:\n      projectId: ${project.id}\n      type: GCS_LOG_EXPORT\n      logTypes:\n        - MONGOD\n      bucketName: ${logBucket.name}\n      roleId: ${auth.roleId}\n      prefixPath: atlas-logs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Azure Blob Storage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// Set up cloud provider access in Atlas for Azure\nconst setup = new mongodbatlas.CloudProviderAccessSetup(\"setup\", {\n    projectId: project.id,\n    providerName: \"AZURE\",\n    azureConfigs: [{\n        atlasAzureAppId: atlasAzureAppId,\n        servicePrincipalId: azureServicePrincipalId,\n        tenantId: azureTenantId,\n    }],\n});\nconst auth = new mongodbatlas.CloudProviderAccessAuthorization(\"auth\", {\n    projectId: project.id,\n    roleId: setup.roleId,\n    azure: {\n        atlasAzureAppId: atlasAzureAppId,\n        servicePrincipalId: azureServicePrincipalId,\n        tenantId: azureTenantId,\n    },\n});\nconst example = new mongodbatlas.LogIntegration(\"example\", {\n    projectId: project.id,\n    type: \"AZURE_LOG_EXPORT\",\n    logTypes: [\"MONGOD\"],\n    roleId: auth.roleId,\n    storageAccountName: logStorage.name,\n    storageContainerName: logContainer.name,\n    prefixPath: \"atlas-logs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\n# Set up cloud provider access in Atlas for Azure\nsetup = mongodbatlas.CloudProviderAccessSetup(\"setup\",\n    project_id=project[\"id\"],\n    provider_name=\"AZURE\",\n    azure_configs=[{\n        \"atlas_azure_app_id\": atlas_azure_app_id,\n        \"service_principal_id\": azure_service_principal_id,\n        \"tenant_id\": azure_tenant_id,\n    }])\nauth = mongodbatlas.CloudProviderAccessAuthorization(\"auth\",\n    project_id=project[\"id\"],\n    role_id=setup.role_id,\n    azure={\n        \"atlas_azure_app_id\": atlas_azure_app_id,\n        \"service_principal_id\": azure_service_principal_id,\n        \"tenant_id\": azure_tenant_id,\n    })\nexample = mongodbatlas.LogIntegration(\"example\",\n    project_id=project[\"id\"],\n    type=\"AZURE_LOG_EXPORT\",\n    log_types=[\"MONGOD\"],\n    role_id=auth.role_id,\n    storage_account_name=log_storage[\"name\"],\n    storage_container_name=log_container[\"name\"],\n    prefix_path=\"atlas-logs\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Set up cloud provider access in Atlas for Azure\n    var setup = new Mongodbatlas.CloudProviderAccessSetup(\"setup\", new()\n    {\n        ProjectId = project.Id,\n        ProviderName = \"AZURE\",\n        AzureConfigs = new[]\n        {\n            new Mongodbatlas.Inputs.CloudProviderAccessSetupAzureConfigArgs\n            {\n                AtlasAzureAppId = atlasAzureAppId,\n                ServicePrincipalId = azureServicePrincipalId,\n                TenantId = azureTenantId,\n            },\n        },\n    });\n\n    var auth = new Mongodbatlas.CloudProviderAccessAuthorization(\"auth\", new()\n    {\n        ProjectId = project.Id,\n        RoleId = setup.RoleId,\n        Azure = new Mongodbatlas.Inputs.CloudProviderAccessAuthorizationAzureArgs\n        {\n            AtlasAzureAppId = atlasAzureAppId,\n            ServicePrincipalId = azureServicePrincipalId,\n            TenantId = azureTenantId,\n        },\n    });\n\n    var example = new Mongodbatlas.LogIntegration(\"example\", new()\n    {\n        ProjectId = project.Id,\n        Type = \"AZURE_LOG_EXPORT\",\n        LogTypes = new[]\n        {\n            \"MONGOD\",\n        },\n        RoleId = auth.RoleId,\n        StorageAccountName = logStorage.Name,\n        StorageContainerName = logContainer.Name,\n        PrefixPath = \"atlas-logs\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Set up cloud provider access in Atlas for Azure\n\t\tsetup, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"setup\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.Any(project.Id),\n\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\tAzureConfigs: mongodbatlas.CloudProviderAccessSetupAzureConfigArray{\n\t\t\t\t\u0026mongodbatlas.CloudProviderAccessSetupAzureConfigArgs{\n\t\t\t\t\tAtlasAzureAppId:    pulumi.Any(atlasAzureAppId),\n\t\t\t\t\tServicePrincipalId: pulumi.Any(azureServicePrincipalId),\n\t\t\t\t\tTenantId:           pulumi.Any(azureTenantId),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tauth, err := mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"auth\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tRoleId:    setup.RoleId,\n\t\t\tAzure: \u0026mongodbatlas.CloudProviderAccessAuthorizationAzureArgs{\n\t\t\t\tAtlasAzureAppId:    pulumi.Any(atlasAzureAppId),\n\t\t\t\tServicePrincipalId: pulumi.Any(azureServicePrincipalId),\n\t\t\t\tTenantId:           pulumi.Any(azureTenantId),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewLogIntegration(ctx, \"example\", \u0026mongodbatlas.LogIntegrationArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tType:      pulumi.String(\"AZURE_LOG_EXPORT\"),\n\t\t\tLogTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"MONGOD\"),\n\t\t\t},\n\t\t\tRoleId:               auth.RoleId,\n\t\t\tStorageAccountName:   pulumi.Any(logStorage.Name),\n\t\t\tStorageContainerName: pulumi.Any(logContainer.Name),\n\t\t\tPrefixPath:           pulumi.String(\"atlas-logs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessSetupAzureConfigArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAzureArgs;\nimport com.pulumi.mongodbatlas.LogIntegration;\nimport com.pulumi.mongodbatlas.LogIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Set up cloud provider access in Atlas for Azure\n        var setup = new CloudProviderAccessSetup(\"setup\", CloudProviderAccessSetupArgs.builder()\n            .projectId(project.id())\n            .providerName(\"AZURE\")\n            .azureConfigs(CloudProviderAccessSetupAzureConfigArgs.builder()\n                .atlasAzureAppId(atlasAzureAppId)\n                .servicePrincipalId(azureServicePrincipalId)\n                .tenantId(azureTenantId)\n                .build())\n            .build());\n\n        var auth = new CloudProviderAccessAuthorization(\"auth\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(project.id())\n            .roleId(setup.roleId())\n            .azure(CloudProviderAccessAuthorizationAzureArgs.builder()\n                .atlasAzureAppId(atlasAzureAppId)\n                .servicePrincipalId(azureServicePrincipalId)\n                .tenantId(azureTenantId)\n                .build())\n            .build());\n\n        var example = new LogIntegration(\"example\", LogIntegrationArgs.builder()\n            .projectId(project.id())\n            .type(\"AZURE_LOG_EXPORT\")\n            .logTypes(\"MONGOD\")\n            .roleId(auth.roleId())\n            .storageAccountName(logStorage.name())\n            .storageContainerName(logContainer.name())\n            .prefixPath(\"atlas-logs\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Set up cloud provider access in Atlas for Azure\n  setup:\n    type: mongodbatlas:CloudProviderAccessSetup\n    properties:\n      projectId: ${project.id}\n      providerName: AZURE\n      azureConfigs:\n        - atlasAzureAppId: ${atlasAzureAppId}\n          servicePrincipalId: ${azureServicePrincipalId}\n          tenantId: ${azureTenantId}\n  auth:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    properties:\n      projectId: ${project.id}\n      roleId: ${setup.roleId}\n      azure:\n        atlasAzureAppId: ${atlasAzureAppId}\n        servicePrincipalId: ${azureServicePrincipalId}\n        tenantId: ${azureTenantId}\n  example:\n    type: mongodbatlas:LogIntegration\n    properties:\n      projectId: ${project.id}\n      type: AZURE_LOG_EXPORT\n      logTypes:\n        - MONGOD\n      roleId: ${auth.roleId}\n      storageAccountName: ${logStorage.name}\n      storageContainerName: ${logContainer.name}\n      prefixPath: atlas-logs\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Datadog\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.LogIntegration(\"example\", {\n    projectId: project.id,\n    type: \"DATADOG_LOG_EXPORT\",\n    logTypes: [\"MONGOD\"],\n    apiKey: datadogApiKey,\n    region: datadogRegion,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.LogIntegration(\"example\",\n    project_id=project[\"id\"],\n    type=\"DATADOG_LOG_EXPORT\",\n    log_types=[\"MONGOD\"],\n    api_key=datadog_api_key,\n    region=datadog_region)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.LogIntegration(\"example\", new()\n    {\n        ProjectId = project.Id,\n        Type = \"DATADOG_LOG_EXPORT\",\n        LogTypes = new[]\n        {\n            \"MONGOD\",\n        },\n        ApiKey = datadogApiKey,\n        Region = datadogRegion,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewLogIntegration(ctx, \"example\", \u0026mongodbatlas.LogIntegrationArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tType:      pulumi.String(\"DATADOG_LOG_EXPORT\"),\n\t\t\tLogTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"MONGOD\"),\n\t\t\t},\n\t\t\tApiKey: pulumi.Any(datadogApiKey),\n\t\t\tRegion: pulumi.Any(datadogRegion),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.LogIntegration;\nimport com.pulumi.mongodbatlas.LogIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new LogIntegration(\"example\", LogIntegrationArgs.builder()\n            .projectId(project.id())\n            .type(\"DATADOG_LOG_EXPORT\")\n            .logTypes(\"MONGOD\")\n            .apiKey(datadogApiKey)\n            .region(datadogRegion)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:LogIntegration\n    properties:\n      projectId: ${project.id}\n      type: DATADOG_LOG_EXPORT\n      logTypes:\n        - MONGOD\n      apiKey: ${datadogApiKey}\n      region: ${datadogRegion}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Splunk\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.LogIntegration(\"example\", {\n    projectId: project.id,\n    type: \"SPLUNK_LOG_EXPORT\",\n    logTypes: [\"MONGOD\"],\n    hecToken: splunkHecToken,\n    hecUrl: splunkHecUrl,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.LogIntegration(\"example\",\n    project_id=project[\"id\"],\n    type=\"SPLUNK_LOG_EXPORT\",\n    log_types=[\"MONGOD\"],\n    hec_token=splunk_hec_token,\n    hec_url=splunk_hec_url)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.LogIntegration(\"example\", new()\n    {\n        ProjectId = project.Id,\n        Type = \"SPLUNK_LOG_EXPORT\",\n        LogTypes = new[]\n        {\n            \"MONGOD\",\n        },\n        HecToken = splunkHecToken,\n        HecUrl = splunkHecUrl,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewLogIntegration(ctx, \"example\", \u0026mongodbatlas.LogIntegrationArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tType:      pulumi.String(\"SPLUNK_LOG_EXPORT\"),\n\t\t\tLogTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"MONGOD\"),\n\t\t\t},\n\t\t\tHecToken: pulumi.Any(splunkHecToken),\n\t\t\tHecUrl:   pulumi.Any(splunkHecUrl),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.LogIntegration;\nimport com.pulumi.mongodbatlas.LogIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new LogIntegration(\"example\", LogIntegrationArgs.builder()\n            .projectId(project.id())\n            .type(\"SPLUNK_LOG_EXPORT\")\n            .logTypes(\"MONGOD\")\n            .hecToken(splunkHecToken)\n            .hecUrl(splunkHecUrl)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:LogIntegration\n    properties:\n      projectId: ${project.id}\n      type: SPLUNK_LOG_EXPORT\n      logTypes:\n        - MONGOD\n      hecToken: ${splunkHecToken}\n      hecUrl: ${splunkHecUrl}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### OpenTelemetry\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.LogIntegration(\"example\", {\n    projectId: project.id,\n    type: \"OTEL_LOG_EXPORT\",\n    logTypes: [\"MONGOD\"],\n    otelEndpoint: otelEndpoint,\n    otelSuppliedHeaders: otelSuppliedHeaders,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.LogIntegration(\"example\",\n    project_id=project[\"id\"],\n    type=\"OTEL_LOG_EXPORT\",\n    log_types=[\"MONGOD\"],\n    otel_endpoint=otel_endpoint,\n    otel_supplied_headers=otel_supplied_headers)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.LogIntegration(\"example\", new()\n    {\n        ProjectId = project.Id,\n        Type = \"OTEL_LOG_EXPORT\",\n        LogTypes = new[]\n        {\n            \"MONGOD\",\n        },\n        OtelEndpoint = otelEndpoint,\n        OtelSuppliedHeaders = otelSuppliedHeaders,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewLogIntegration(ctx, \"example\", \u0026mongodbatlas.LogIntegrationArgs{\n\t\t\tProjectId: pulumi.Any(project.Id),\n\t\t\tType:      pulumi.String(\"OTEL_LOG_EXPORT\"),\n\t\t\tLogTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"MONGOD\"),\n\t\t\t},\n\t\t\tOtelEndpoint:        pulumi.Any(otelEndpoint),\n\t\t\tOtelSuppliedHeaders: pulumi.Any(otelSuppliedHeaders),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.LogIntegration;\nimport com.pulumi.mongodbatlas.LogIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new LogIntegration(\"example\", LogIntegrationArgs.builder()\n            .projectId(project.id())\n            .type(\"OTEL_LOG_EXPORT\")\n            .logTypes(\"MONGOD\")\n            .otelEndpoint(otelEndpoint)\n            .otelSuppliedHeaders(otelSuppliedHeaders)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:LogIntegration\n    properties:\n      projectId: ${project.id}\n      type: OTEL_LOG_EXPORT\n      logTypes:\n        - MONGOD\n      otelEndpoint: ${otelEndpoint}\n      otelSuppliedHeaders: ${otelSuppliedHeaders}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Log Integration Examples\n\n\n## Import \n\nLog integration resource can be imported using the project ID and log integration ID, separated by a slash, e.g.\n\n```\n$ terraform import mongodbatlas_log_integration.test 650972848269185c55f40ca1/6789abcd1234ef5678901234\n```\n\nFor more information see: [MongoDB Atlas API - Log Integration](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-push-based-log-export) Documentation.\n","properties":{"apiKey":{"type":"string","description":"Required for type: DATADOG_LOG_EXPORT. API key for authentication.","secret":true},"bucketName":{"type":"string","description":"Required for type: GCS_LOG_EXPORT, S3_LOG_EXPORT. Name of the bucket to store log files."},"hecToken":{"type":"string","description":"Required for type: SPLUNK_LOG_EXPORT. HTTP Event Collector (HEC) token for authentication.","secret":true},"hecUrl":{"type":"string","description":"Required for type: SPLUNK_LOG_EXPORT. HTTP Event Collector (HEC) endpoint URL."},"iamRoleId":{"type":"string","description":"Required for type: S3_LOG_EXPORT. Unique 24-character hexadecimal string that identifies the AWS IAM role that Atlas uses to access the S3 bucket."},"integrationId":{"type":"string","description":"Unique 24-character hexadecimal digit string that identifies the log integration configuration."},"kmsKey":{"type":"string","description":"Optional for type: S3_LOG_EXPORT. AWS KMS key ID or ARN for server-side encryption (optional). If not provided, uses bucket default encryption settings."},"logTypes":{"type":"array","items":{"type":"string"},"description":"Array of log types exported by this integration.\n"},"otelEndpoint":{"type":"string","description":"Required for type: OTEL_LOG_EXPORT. OpenTelemetry collector endpoint URL. Must be HTTPS and not exceed 2048 characters."},"otelSuppliedHeaders":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/LogIntegrationOtelSuppliedHeader:LogIntegrationOtelSuppliedHeader"},"description":"Required for type: OTEL_LOG_EXPORT. HTTP headers for authentication and configuration. Maximum 10 headers, total size limit 2KB.","secret":true},"prefixPath":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT, GCS_LOG_EXPORT, S3_LOG_EXPORT. Path prefix where the log files will be stored. Atlas will add further sub-directories based on the log type."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"region":{"type":"string","description":"Required for type: DATADOG_LOG_EXPORT. Datadog site/region for log ingestion. Valid values: US1, US3, US5, EU, AP1, AP2, US1_FED."},"roleId":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT, GCS_LOG_EXPORT. Unique 24-character hexadecimal string that identifies the Atlas Cloud Provider Access role."},"storageAccountName":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT. Storage account name where logs will be stored."},"storageContainerName":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT. Storage container name for log files."},"type":{"type":"string","description":"Human-readable label that identifies the service to which you want to integrate with Atlas. The value must match the log integration type. This value cannot be modified after the integration is created.\n"}},"required":["integrationId","logTypes","projectId","type"],"inputProperties":{"apiKey":{"type":"string","description":"Required for type: DATADOG_LOG_EXPORT. API key for authentication.","secret":true},"bucketName":{"type":"string","description":"Required for type: GCS_LOG_EXPORT, S3_LOG_EXPORT. Name of the bucket to store log files."},"hecToken":{"type":"string","description":"Required for type: SPLUNK_LOG_EXPORT. HTTP Event Collector (HEC) token for authentication.","secret":true},"hecUrl":{"type":"string","description":"Required for type: SPLUNK_LOG_EXPORT. HTTP Event Collector (HEC) endpoint URL."},"iamRoleId":{"type":"string","description":"Required for type: S3_LOG_EXPORT. Unique 24-character hexadecimal string that identifies the AWS IAM role that Atlas uses to access the S3 bucket."},"kmsKey":{"type":"string","description":"Optional for type: S3_LOG_EXPORT. AWS KMS key ID or ARN for server-side encryption (optional). If not provided, uses bucket default encryption settings."},"logTypes":{"type":"array","items":{"type":"string"},"description":"Array of log types exported by this integration.\n"},"otelEndpoint":{"type":"string","description":"Required for type: OTEL_LOG_EXPORT. OpenTelemetry collector endpoint URL. Must be HTTPS and not exceed 2048 characters."},"otelSuppliedHeaders":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/LogIntegrationOtelSuppliedHeader:LogIntegrationOtelSuppliedHeader"},"description":"Required for type: OTEL_LOG_EXPORT. HTTP headers for authentication and configuration. Maximum 10 headers, total size limit 2KB.","secret":true},"prefixPath":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT, GCS_LOG_EXPORT, S3_LOG_EXPORT. Path prefix where the log files will be stored. Atlas will add further sub-directories based on the log type."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"region":{"type":"string","description":"Required for type: DATADOG_LOG_EXPORT. Datadog site/region for log ingestion. Valid values: US1, US3, US5, EU, AP1, AP2, US1_FED."},"roleId":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT, GCS_LOG_EXPORT. Unique 24-character hexadecimal string that identifies the Atlas Cloud Provider Access role."},"storageAccountName":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT. Storage account name where logs will be stored."},"storageContainerName":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT. Storage container name for log files."},"type":{"type":"string","description":"Human-readable label that identifies the service to which you want to integrate with Atlas. The value must match the log integration type. This value cannot be modified after the integration is created.\n"}},"requiredInputs":["logTypes","projectId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering LogIntegration resources.\n","properties":{"apiKey":{"type":"string","description":"Required for type: DATADOG_LOG_EXPORT. API key for authentication.","secret":true},"bucketName":{"type":"string","description":"Required for type: GCS_LOG_EXPORT, S3_LOG_EXPORT. Name of the bucket to store log files."},"hecToken":{"type":"string","description":"Required for type: SPLUNK_LOG_EXPORT. HTTP Event Collector (HEC) token for authentication.","secret":true},"hecUrl":{"type":"string","description":"Required for type: SPLUNK_LOG_EXPORT. HTTP Event Collector (HEC) endpoint URL."},"iamRoleId":{"type":"string","description":"Required for type: S3_LOG_EXPORT. Unique 24-character hexadecimal string that identifies the AWS IAM role that Atlas uses to access the S3 bucket."},"integrationId":{"type":"string","description":"Unique 24-character hexadecimal digit string that identifies the log integration configuration."},"kmsKey":{"type":"string","description":"Optional for type: S3_LOG_EXPORT. AWS KMS key ID or ARN for server-side encryption (optional). If not provided, uses bucket default encryption settings."},"logTypes":{"type":"array","items":{"type":"string"},"description":"Array of log types exported by this integration.\n"},"otelEndpoint":{"type":"string","description":"Required for type: OTEL_LOG_EXPORT. OpenTelemetry collector endpoint URL. Must be HTTPS and not exceed 2048 characters."},"otelSuppliedHeaders":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/LogIntegrationOtelSuppliedHeader:LogIntegrationOtelSuppliedHeader"},"description":"Required for type: OTEL_LOG_EXPORT. HTTP headers for authentication and configuration. Maximum 10 headers, total size limit 2KB.","secret":true},"prefixPath":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT, GCS_LOG_EXPORT, S3_LOG_EXPORT. Path prefix where the log files will be stored. Atlas will add further sub-directories based on the log type."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"region":{"type":"string","description":"Required for type: DATADOG_LOG_EXPORT. Datadog site/region for log ingestion. Valid values: US1, US3, US5, EU, AP1, AP2, US1_FED."},"roleId":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT, GCS_LOG_EXPORT. Unique 24-character hexadecimal string that identifies the Atlas Cloud Provider Access role."},"storageAccountName":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT. Storage account name where logs will be stored."},"storageContainerName":{"type":"string","description":"Required for type: AZURE_LOG_EXPORT. Storage container name for log files."},"type":{"type":"string","description":"Human-readable label that identifies the service to which you want to integrate with Atlas. The value must match the log integration type. This value cannot be modified after the integration is created.\n"}},"type":"object"}},"mongodbatlas:index/maintenanceWindow:MaintenanceWindow":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.MaintenanceWindow`\" pulumi-lang-dotnet=\"`mongodbatlas.MaintenanceWindow`\" pulumi-lang-go=\"`MaintenanceWindow`\" pulumi-lang-python=\"`MaintenanceWindow`\" pulumi-lang-yaml=\"`mongodbatlas.MaintenanceWindow`\" pulumi-lang-java=\"`mongodbatlas.MaintenanceWindow`\"\u003e`mongodbatlas.MaintenanceWindow`\u003c/span\u003e provides a resource to schedule the maintenance window for your MongoDB Atlas Project and/or set to defer a scheduled maintenance up to two times. Please refer to [Maintenance Windows](https://www.mongodb.com/docs/atlas/tutorial/cluster-maintenance-window/#configure-maintenance-window) documentation for more details.\n\n\u003e **NOTE:** Only a single maintenance window resource can be defined per project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **NOTE:** Maintenance window times use the project's configured timezone. To change the timezone, update the Project Time Zone setting in the Atlas Project Settings.\n\n## Maintenance Window Considerations:\n\n- Urgent Maintenance Activities Cannot Wait: Urgent maintenance activities such as security patches cannot wait for your chosen window. Atlas will start those maintenance activities when needed.\n\nOnce maintenance is scheduled for your cluster, you cannot change your maintenance window until the current maintenance efforts have completed.\n- Maintenance Requires Replica Set Elections: Atlas performs maintenance the same way as the manual maintenance procedure. This requires at least one replica set election during the maintenance window per replica set.\n- Maintenance Starts As Close to the Hour As Possible: Maintenance always begins as close to the scheduled hour as possible, but in-progress cluster updates or expected system issues could delay the start time.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.MaintenanceWindow(\"test\", {\n    projectId: \"\u003cyour-project-id\u003e\",\n    dayOfWeek: 3,\n    hourOfDay: 4,\n    protectedHours: {\n        startHourOfDay: 9,\n        endHourOfDay: 17,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.MaintenanceWindow(\"test\",\n    project_id=\"\u003cyour-project-id\u003e\",\n    day_of_week=3,\n    hour_of_day=4,\n    protected_hours={\n        \"start_hour_of_day\": 9,\n        \"end_hour_of_day\": 17,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.MaintenanceWindow(\"test\", new()\n    {\n        ProjectId = \"\u003cyour-project-id\u003e\",\n        DayOfWeek = 3,\n        HourOfDay = 4,\n        ProtectedHours = new Mongodbatlas.Inputs.MaintenanceWindowProtectedHoursArgs\n        {\n            StartHourOfDay = 9,\n            EndHourOfDay = 17,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewMaintenanceWindow(ctx, \"test\", \u0026mongodbatlas.MaintenanceWindowArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cyour-project-id\u003e\"),\n\t\t\tDayOfWeek: pulumi.Int(3),\n\t\t\tHourOfDay: pulumi.Int(4),\n\t\t\tProtectedHours: \u0026mongodbatlas.MaintenanceWindowProtectedHoursArgs{\n\t\t\t\tStartHourOfDay: pulumi.Int(9),\n\t\t\t\tEndHourOfDay:   pulumi.Int(17),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MaintenanceWindow;\nimport com.pulumi.mongodbatlas.MaintenanceWindowArgs;\nimport com.pulumi.mongodbatlas.inputs.MaintenanceWindowProtectedHoursArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new MaintenanceWindow(\"test\", MaintenanceWindowArgs.builder()\n            .projectId(\"\u003cyour-project-id\u003e\")\n            .dayOfWeek(3)\n            .hourOfDay(4)\n            .protectedHours(MaintenanceWindowProtectedHoursArgs.builder()\n                .startHourOfDay(9)\n                .endHourOfDay(17)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:MaintenanceWindow\n    properties:\n      projectId: \u003cyour-project-id\u003e\n      dayOfWeek: 3\n      hourOfDay: 4\n      protectedHours:\n        startHourOfDay: 9\n        endHourOfDay: 17\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Automatic Deferral\n\nUse \u003cspan pulumi-lang-nodejs=\"`autoDeferOnceEnabled`\" pulumi-lang-dotnet=\"`AutoDeferOnceEnabled`\" pulumi-lang-go=\"`autoDeferOnceEnabled`\" pulumi-lang-python=\"`auto_defer_once_enabled`\" pulumi-lang-yaml=\"`autoDeferOnceEnabled`\" pulumi-lang-java=\"`autoDeferOnceEnabled`\"\u003e`auto_defer_once_enabled`\u003c/span\u003e to enable or disable automatic deferral.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.MaintenanceWindow(\"test\", {\n    projectId: \"\u003cyour-project-id\u003e\",\n    dayOfWeek: 3,\n    hourOfDay: 4,\n    autoDeferOnceEnabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.MaintenanceWindow(\"test\",\n    project_id=\"\u003cyour-project-id\u003e\",\n    day_of_week=3,\n    hour_of_day=4,\n    auto_defer_once_enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.MaintenanceWindow(\"test\", new()\n    {\n        ProjectId = \"\u003cyour-project-id\u003e\",\n        DayOfWeek = 3,\n        HourOfDay = 4,\n        AutoDeferOnceEnabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewMaintenanceWindow(ctx, \"test\", \u0026mongodbatlas.MaintenanceWindowArgs{\n\t\t\tProjectId:            pulumi.String(\"\u003cyour-project-id\u003e\"),\n\t\t\tDayOfWeek:            pulumi.Int(3),\n\t\t\tHourOfDay:            pulumi.Int(4),\n\t\t\tAutoDeferOnceEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MaintenanceWindow;\nimport com.pulumi.mongodbatlas.MaintenanceWindowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new MaintenanceWindow(\"test\", MaintenanceWindowArgs.builder()\n            .projectId(\"\u003cyour-project-id\u003e\")\n            .dayOfWeek(3)\n            .hourOfDay(4)\n            .autoDeferOnceEnabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:MaintenanceWindow\n    properties:\n      projectId: \u003cyour-project-id\u003e\n      dayOfWeek: 3\n      hourOfDay: 4\n      autoDeferOnceEnabled: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### One-Time Manual Deferral\n\nUse \u003cspan pulumi-lang-nodejs=\"`defer`\" pulumi-lang-dotnet=\"`Defer`\" pulumi-lang-go=\"`defer`\" pulumi-lang-python=\"`defer`\" pulumi-lang-yaml=\"`defer`\" pulumi-lang-java=\"`defer`\"\u003e`defer`\u003c/span\u003e to defer the next scheduled maintenance event by one week. This only works when maintenance is already scheduled.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.MaintenanceWindow(\"test\", {\n    projectId: \"\u003cyour-project-id\u003e\",\n    dayOfWeek: 3,\n    hourOfDay: 4,\n    defer: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.MaintenanceWindow(\"test\",\n    project_id=\"\u003cyour-project-id\u003e\",\n    day_of_week=3,\n    hour_of_day=4,\n    defer=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.MaintenanceWindow(\"test\", new()\n    {\n        ProjectId = \"\u003cyour-project-id\u003e\",\n        DayOfWeek = 3,\n        HourOfDay = 4,\n        Defer = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewMaintenanceWindow(ctx, \"test\", \u0026mongodbatlas.MaintenanceWindowArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cyour-project-id\u003e\"),\n\t\t\tDayOfWeek: pulumi.Int(3),\n\t\t\tHourOfDay: pulumi.Int(4),\n\t\t\tDefer:     pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MaintenanceWindow;\nimport com.pulumi.mongodbatlas.MaintenanceWindowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new MaintenanceWindow(\"test\", MaintenanceWindowArgs.builder()\n            .projectId(\"\u003cyour-project-id\u003e\")\n            .dayOfWeek(3)\n            .hourOfDay(4)\n            .defer(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:MaintenanceWindow\n    properties:\n      projectId: \u003cyour-project-id\u003e\n      dayOfWeek: 3\n      hourOfDay: 4\n      defer: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Configure Maintenance Window\n\n## Import\n\nMaintenance Window entries can be imported using project project_id, in the format `PROJECTID`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/maintenanceWindow:MaintenanceWindow test 5d0f1f73cf09a29120e173cf\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/maintenance-windows/)\n\n","properties":{"autoDefer":{"type":"boolean","description":"Boolean flag to **toggle** automatic deferral on/off. Each change flips the current state (ON → OFF or OFF → ON). Achieves the same outcome as \u003cspan pulumi-lang-nodejs=\"`autoDeferOnceEnabled`\" pulumi-lang-dotnet=\"`AutoDeferOnceEnabled`\" pulumi-lang-go=\"`autoDeferOnceEnabled`\" pulumi-lang-python=\"`auto_defer_once_enabled`\" pulumi-lang-yaml=\"`autoDeferOnceEnabled`\" pulumi-lang-java=\"`autoDeferOnceEnabled`\"\u003e`auto_defer_once_enabled`\u003c/span\u003e but through a toggle operation, which can make the current state opaque to Terraform and introduce state drift. **For most use cases, prefer \u003cspan pulumi-lang-nodejs=\"`autoDeferOnceEnabled`\" pulumi-lang-dotnet=\"`AutoDeferOnceEnabled`\" pulumi-lang-go=\"`autoDeferOnceEnabled`\" pulumi-lang-python=\"`auto_defer_once_enabled`\" pulumi-lang-yaml=\"`autoDeferOnceEnabled`\" pulumi-lang-java=\"`autoDeferOnceEnabled`\"\u003e`auto_defer_once_enabled`\u003c/span\u003e instead.** \u003c!-- see CLOUDP-375465 for details --\u003e\n"},"autoDeferOnceEnabled":{"type":"boolean","description":"**Recommended** field to enable or disable automatic deferral of all scheduled maintenance for the given project by one week. Achieves the same outcome as \u003cspan pulumi-lang-nodejs=\"`autoDefer`\" pulumi-lang-dotnet=\"`AutoDefer`\" pulumi-lang-go=\"`autoDefer`\" pulumi-lang-python=\"`auto_defer`\" pulumi-lang-yaml=\"`autoDefer`\" pulumi-lang-java=\"`autoDefer`\"\u003e`auto_defer`\u003c/span\u003e, but by directly setting the value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, which is idempotent and keeps Terraform state aligned with Atlas. If \u003cspan pulumi-lang-nodejs=\"`autoDefer`\" pulumi-lang-dotnet=\"`AutoDefer`\" pulumi-lang-go=\"`autoDefer`\" pulumi-lang-python=\"`auto_defer`\" pulumi-lang-yaml=\"`autoDefer`\" pulumi-lang-java=\"`autoDefer`\"\u003e`auto_defer`\u003c/span\u003e is used to toggle the underlying flag, it will also affect the value of this attribute.\n"},"dayOfWeek":{"type":"integer","description":"Day of the week when you would like the maintenance window to start as a 1-based integer: Su=1, M=2, T=3, W=4, T=5, F=6, Sa=7.\n"},"defer":{"type":"boolean","description":"Defer the next scheduled maintenance event for the given project by one week. Only works when maintenance is already scheduled.\n"},"hourOfDay":{"type":"integer","description":"Hour of the day when you would like the maintenance window to start. This parameter uses the 24-hour clock, where midnight is 0, noon is 12. Uses the project's configured timezone.\n"},"numberOfDeferrals":{"type":"integer","description":"Number of times the current maintenance event for this project has been deferred, there can be a maximum of 2 deferrals.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Maintenance Window.\n"},"protectedHours":{"$ref":"#/types/mongodbatlas:index/MaintenanceWindowProtectedHours:MaintenanceWindowProtectedHours","description":"Defines the time period during which there will be no standard updates to the clusters. See Protected Hours.\n"},"startAsap":{"type":"boolean","description":"Flag indicating whether project maintenance has been directed to start immediately. If requested, this field returns true from the time the request was made until the time the maintenance event completes.\n"},"timeZoneId":{"type":"string","description":"Identifier for the current time zone of the maintenance window. This can only be updated via the Project Settings UI.\n"}},"required":["autoDefer","autoDeferOnceEnabled","dayOfWeek","defer","hourOfDay","numberOfDeferrals","projectId","startAsap","timeZoneId"],"inputProperties":{"autoDefer":{"type":"boolean","description":"Boolean flag to **toggle** automatic deferral on/off. Each change flips the current state (ON → OFF or OFF → ON). Achieves the same outcome as \u003cspan pulumi-lang-nodejs=\"`autoDeferOnceEnabled`\" pulumi-lang-dotnet=\"`AutoDeferOnceEnabled`\" pulumi-lang-go=\"`autoDeferOnceEnabled`\" pulumi-lang-python=\"`auto_defer_once_enabled`\" pulumi-lang-yaml=\"`autoDeferOnceEnabled`\" pulumi-lang-java=\"`autoDeferOnceEnabled`\"\u003e`auto_defer_once_enabled`\u003c/span\u003e but through a toggle operation, which can make the current state opaque to Terraform and introduce state drift. **For most use cases, prefer \u003cspan pulumi-lang-nodejs=\"`autoDeferOnceEnabled`\" pulumi-lang-dotnet=\"`AutoDeferOnceEnabled`\" pulumi-lang-go=\"`autoDeferOnceEnabled`\" pulumi-lang-python=\"`auto_defer_once_enabled`\" pulumi-lang-yaml=\"`autoDeferOnceEnabled`\" pulumi-lang-java=\"`autoDeferOnceEnabled`\"\u003e`auto_defer_once_enabled`\u003c/span\u003e instead.** \u003c!-- see CLOUDP-375465 for details --\u003e\n"},"autoDeferOnceEnabled":{"type":"boolean","description":"**Recommended** field to enable or disable automatic deferral of all scheduled maintenance for the given project by one week. Achieves the same outcome as \u003cspan pulumi-lang-nodejs=\"`autoDefer`\" pulumi-lang-dotnet=\"`AutoDefer`\" pulumi-lang-go=\"`autoDefer`\" pulumi-lang-python=\"`auto_defer`\" pulumi-lang-yaml=\"`autoDefer`\" pulumi-lang-java=\"`autoDefer`\"\u003e`auto_defer`\u003c/span\u003e, but by directly setting the value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, which is idempotent and keeps Terraform state aligned with Atlas. If \u003cspan pulumi-lang-nodejs=\"`autoDefer`\" pulumi-lang-dotnet=\"`AutoDefer`\" pulumi-lang-go=\"`autoDefer`\" pulumi-lang-python=\"`auto_defer`\" pulumi-lang-yaml=\"`autoDefer`\" pulumi-lang-java=\"`autoDefer`\"\u003e`auto_defer`\u003c/span\u003e is used to toggle the underlying flag, it will also affect the value of this attribute.\n"},"dayOfWeek":{"type":"integer","description":"Day of the week when you would like the maintenance window to start as a 1-based integer: Su=1, M=2, T=3, W=4, T=5, F=6, Sa=7.\n"},"defer":{"type":"boolean","description":"Defer the next scheduled maintenance event for the given project by one week. Only works when maintenance is already scheduled.\n"},"hourOfDay":{"type":"integer","description":"Hour of the day when you would like the maintenance window to start. This parameter uses the 24-hour clock, where midnight is 0, noon is 12. Uses the project's configured timezone.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Maintenance Window.\n"},"protectedHours":{"$ref":"#/types/mongodbatlas:index/MaintenanceWindowProtectedHours:MaintenanceWindowProtectedHours","description":"Defines the time period during which there will be no standard updates to the clusters. See Protected Hours.\n"}},"requiredInputs":["dayOfWeek","hourOfDay","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering MaintenanceWindow resources.\n","properties":{"autoDefer":{"type":"boolean","description":"Boolean flag to **toggle** automatic deferral on/off. Each change flips the current state (ON → OFF or OFF → ON). Achieves the same outcome as \u003cspan pulumi-lang-nodejs=\"`autoDeferOnceEnabled`\" pulumi-lang-dotnet=\"`AutoDeferOnceEnabled`\" pulumi-lang-go=\"`autoDeferOnceEnabled`\" pulumi-lang-python=\"`auto_defer_once_enabled`\" pulumi-lang-yaml=\"`autoDeferOnceEnabled`\" pulumi-lang-java=\"`autoDeferOnceEnabled`\"\u003e`auto_defer_once_enabled`\u003c/span\u003e but through a toggle operation, which can make the current state opaque to Terraform and introduce state drift. **For most use cases, prefer \u003cspan pulumi-lang-nodejs=\"`autoDeferOnceEnabled`\" pulumi-lang-dotnet=\"`AutoDeferOnceEnabled`\" pulumi-lang-go=\"`autoDeferOnceEnabled`\" pulumi-lang-python=\"`auto_defer_once_enabled`\" pulumi-lang-yaml=\"`autoDeferOnceEnabled`\" pulumi-lang-java=\"`autoDeferOnceEnabled`\"\u003e`auto_defer_once_enabled`\u003c/span\u003e instead.** \u003c!-- see CLOUDP-375465 for details --\u003e\n"},"autoDeferOnceEnabled":{"type":"boolean","description":"**Recommended** field to enable or disable automatic deferral of all scheduled maintenance for the given project by one week. Achieves the same outcome as \u003cspan pulumi-lang-nodejs=\"`autoDefer`\" pulumi-lang-dotnet=\"`AutoDefer`\" pulumi-lang-go=\"`autoDefer`\" pulumi-lang-python=\"`auto_defer`\" pulumi-lang-yaml=\"`autoDefer`\" pulumi-lang-java=\"`autoDefer`\"\u003e`auto_defer`\u003c/span\u003e, but by directly setting the value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, which is idempotent and keeps Terraform state aligned with Atlas. If \u003cspan pulumi-lang-nodejs=\"`autoDefer`\" pulumi-lang-dotnet=\"`AutoDefer`\" pulumi-lang-go=\"`autoDefer`\" pulumi-lang-python=\"`auto_defer`\" pulumi-lang-yaml=\"`autoDefer`\" pulumi-lang-java=\"`autoDefer`\"\u003e`auto_defer`\u003c/span\u003e is used to toggle the underlying flag, it will also affect the value of this attribute.\n"},"dayOfWeek":{"type":"integer","description":"Day of the week when you would like the maintenance window to start as a 1-based integer: Su=1, M=2, T=3, W=4, T=5, F=6, Sa=7.\n"},"defer":{"type":"boolean","description":"Defer the next scheduled maintenance event for the given project by one week. Only works when maintenance is already scheduled.\n"},"hourOfDay":{"type":"integer","description":"Hour of the day when you would like the maintenance window to start. This parameter uses the 24-hour clock, where midnight is 0, noon is 12. Uses the project's configured timezone.\n"},"numberOfDeferrals":{"type":"integer","description":"Number of times the current maintenance event for this project has been deferred, there can be a maximum of 2 deferrals.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Maintenance Window.\n"},"protectedHours":{"$ref":"#/types/mongodbatlas:index/MaintenanceWindowProtectedHours:MaintenanceWindowProtectedHours","description":"Defines the time period during which there will be no standard updates to the clusters. See Protected Hours.\n"},"startAsap":{"type":"boolean","description":"Flag indicating whether project maintenance has been directed to start immediately. If requested, this field returns true from the time the request was made until the time the maintenance event completes.\n"},"timeZoneId":{"type":"string","description":"Identifier for the current time zone of the maintenance window. This can only be updated via the Project Settings UI.\n"}},"type":"object"}},"mongodbatlas:index/mongodbEmployeeAccessGrant:MongodbEmployeeAccessGrant":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.MongodbEmployeeAccessGrant`\" pulumi-lang-dotnet=\"`mongodbatlas.MongodbEmployeeAccessGrant`\" pulumi-lang-go=\"`MongodbEmployeeAccessGrant`\" pulumi-lang-python=\"`MongodbEmployeeAccessGrant`\" pulumi-lang-yaml=\"`mongodbatlas.MongodbEmployeeAccessGrant`\" pulumi-lang-java=\"`mongodbatlas.MongodbEmployeeAccessGrant`\"\u003e`mongodbatlas.MongodbEmployeeAccessGrant`\u003c/span\u003e provides a MongoDB Employee Access Grant resource. The resource lets you create, delete, update and import a MongoDB employee access grant.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.MongodbEmployeeAccessGrant(\"example\", {\n    projectId: projectId,\n    clusterName: clusterName,\n    grantType: \"CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\",\n    expirationTime: \"2025-01-01T12:00:00Z\",\n});\nconst dsExample = mongodbatlas.getMongodbEmployeeAccessGrant({\n    projectId: projectId,\n    clusterName: clusterName,\n});\nexport const grantType = dsExample.then(dsExample =\u003e dsExample.grantType);\nexport const expirationTime = dsExample.then(dsExample =\u003e dsExample.expirationTime);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.MongodbEmployeeAccessGrant(\"example\",\n    project_id=project_id,\n    cluster_name=cluster_name,\n    grant_type=\"CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\",\n    expiration_time=\"2025-01-01T12:00:00Z\")\nds_example = mongodbatlas.get_mongodb_employee_access_grant(project_id=project_id,\n    cluster_name=cluster_name)\npulumi.export(\"grantType\", ds_example.grant_type)\npulumi.export(\"expirationTime\", ds_example.expiration_time)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.MongodbEmployeeAccessGrant(\"example\", new()\n    {\n        ProjectId = projectId,\n        ClusterName = clusterName,\n        GrantType = \"CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\",\n        ExpirationTime = \"2025-01-01T12:00:00Z\",\n    });\n\n    var dsExample = Mongodbatlas.GetMongodbEmployeeAccessGrant.Invoke(new()\n    {\n        ProjectId = projectId,\n        ClusterName = clusterName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"grantType\"] = dsExample.Apply(getMongodbEmployeeAccessGrantResult =\u003e getMongodbEmployeeAccessGrantResult.GrantType),\n        [\"expirationTime\"] = dsExample.Apply(getMongodbEmployeeAccessGrantResult =\u003e getMongodbEmployeeAccessGrantResult.ExpirationTime),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewMongodbEmployeeAccessGrant(ctx, \"example\", \u0026mongodbatlas.MongodbEmployeeAccessGrantArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tClusterName:    pulumi.Any(clusterName),\n\t\t\tGrantType:      pulumi.String(\"CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\"),\n\t\t\tExpirationTime: pulumi.String(\"2025-01-01T12:00:00Z\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdsExample, err := mongodbatlas.LookupMongodbEmployeeAccessGrant(ctx, \u0026mongodbatlas.LookupMongodbEmployeeAccessGrantArgs{\n\t\t\tProjectId:   projectId,\n\t\t\tClusterName: clusterName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"grantType\", dsExample.GrantType)\n\t\tctx.Export(\"expirationTime\", dsExample.ExpirationTime)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbEmployeeAccessGrant;\nimport com.pulumi.mongodbatlas.MongodbEmployeeAccessGrantArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetMongodbEmployeeAccessGrantArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new MongodbEmployeeAccessGrant(\"example\", MongodbEmployeeAccessGrantArgs.builder()\n            .projectId(projectId)\n            .clusterName(clusterName)\n            .grantType(\"CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\")\n            .expirationTime(\"2025-01-01T12:00:00Z\")\n            .build());\n\n        final var dsExample = MongodbatlasFunctions.getMongodbEmployeeAccessGrant(GetMongodbEmployeeAccessGrantArgs.builder()\n            .projectId(projectId)\n            .clusterName(clusterName)\n            .build());\n\n        ctx.export(\"grantType\", dsExample.grantType());\n        ctx.export(\"expirationTime\", dsExample.expirationTime());\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:MongodbEmployeeAccessGrant\n    properties:\n      projectId: ${projectId}\n      clusterName: ${clusterName}\n      grantType: CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\n      expirationTime: 2025-01-01T12:00:00Z\nvariables:\n  dsExample:\n    fn::invoke:\n      function: mongodbatlas:getMongodbEmployeeAccessGrant\n      arguments:\n        projectId: ${projectId}\n        clusterName: ${clusterName}\noutputs:\n  grantType: ${dsExample.grantType}\n  expirationTime: ${dsExample.expirationTime}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Grant log access to MongoDB employees\n\n\n## Import \n\nThe resource can be imported using project ID and cluster name, in the format `PROJECTID-CLUSTERNAME`, e.g.\n\n```\n$ terraform import mongodbatlas_mongodb_employee_access_grant.test 650972848269185c55f40ca1-MyCluster\n```\n\nFor more information see: [MongoDB Employee Access Grant API doc](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-grantmongodbemployeeaccess).\n","properties":{"clusterName":{"type":"string","description":"Human-readable label that identifies this cluster.\n"},"expirationTime":{"type":"string","description":"Expiration date for the employee access grant.\n"},"grantType":{"type":"string","description":"Level of access to grant to MongoDB Employees. Possible values are CLUSTER*DATABASE*LOGS, CLUSTER*INFRASTRUCTURE or CLUSTER*INFRASTRUCTURE*AND*APP*SERVICES*SYNC_DATA.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"}},"required":["clusterName","expirationTime","grantType","projectId"],"inputProperties":{"clusterName":{"type":"string","description":"Human-readable label that identifies this cluster.\n"},"expirationTime":{"type":"string","description":"Expiration date for the employee access grant.\n"},"grantType":{"type":"string","description":"Level of access to grant to MongoDB Employees. Possible values are CLUSTER*DATABASE*LOGS, CLUSTER*INFRASTRUCTURE or CLUSTER*INFRASTRUCTURE*AND*APP*SERVICES*SYNC_DATA.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"}},"requiredInputs":["clusterName","expirationTime","grantType","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering MongodbEmployeeAccessGrant resources.\n","properties":{"clusterName":{"type":"string","description":"Human-readable label that identifies this cluster.\n"},"expirationTime":{"type":"string","description":"Expiration date for the employee access grant.\n"},"grantType":{"type":"string","description":"Level of access to grant to MongoDB Employees. Possible values are CLUSTER*DATABASE*LOGS, CLUSTER*INFRASTRUCTURE or CLUSTER*INFRASTRUCTURE*AND*APP*SERVICES*SYNC_DATA.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"}},"type":"object"}},"mongodbatlas:index/networkContainer:NetworkContainer":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.NetworkContainer`\" pulumi-lang-dotnet=\"`mongodbatlas.NetworkContainer`\" pulumi-lang-go=\"`NetworkContainer`\" pulumi-lang-python=\"`NetworkContainer`\" pulumi-lang-yaml=\"`mongodbatlas.NetworkContainer`\" pulumi-lang-java=\"`mongodbatlas.NetworkContainer`\"\u003e`mongodbatlas.NetworkContainer`\u003c/span\u003e provides a Network Peering Container resource. The resource lets you create, edit and delete network peering containers. You must delete network peering containers before creating clusters in your project. You can't delete a network peering container if your project contains clusters. The resource requires your Project ID.  Each cloud provider requires slightly different attributes so read the argument reference carefully.\n\n Network peering container is a general term used to describe any cloud providers' VPC/VNet concept.  Containers only need to be created if the peering connection to the cloud provider will be created before the first cluster that requires the container.  If the cluster has been/will be created first Atlas automatically creates the required container per the \"containers per cloud provider\" information that follows (in this case you can obtain the container id from the cluster resource attribute \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e).\n\nThe following is the maximum number of Network Peering containers per cloud provider:\n\u003cbr\u003e \u0026#8226;  GCP -  One container per project.\n\u003cbr\u003e \u0026#8226;  AWS and Azure - One container per cloud provider region.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n\n## Example Usage\n\n### Example with AWS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.NetworkContainer(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    atlasCidrBlock: \"10.8.0.0/21\",\n    providerName: \"AWS\",\n    regionName: \"US_EAST_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.NetworkContainer(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    atlas_cidr_block=\"10.8.0.0/21\",\n    provider_name=\"AWS\",\n    region_name=\"US_EAST_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.NetworkContainer(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        AtlasCidrBlock = \"10.8.0.0/21\",\n        ProviderName = \"AWS\",\n        RegionName = \"US_EAST_1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewNetworkContainer(ctx, \"test\", \u0026mongodbatlas.NetworkContainerArgs{\n\t\t\tProjectId:      pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tAtlasCidrBlock: pulumi.String(\"10.8.0.0/21\"),\n\t\t\tProviderName:   pulumi.String(\"AWS\"),\n\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkContainer;\nimport com.pulumi.mongodbatlas.NetworkContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new NetworkContainer(\"test\", NetworkContainerArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .atlasCidrBlock(\"10.8.0.0/21\")\n            .providerName(\"AWS\")\n            .regionName(\"US_EAST_1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:NetworkContainer\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      atlasCidrBlock: 10.8.0.0/21\n      providerName: AWS\n      regionName: US_EAST_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with GCP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.NetworkContainer(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    atlasCidrBlock: \"10.8.0.0/21\",\n    providerName: \"GCP\",\n    regions: [\n        \"US_EAST_4\",\n        \"US_WEST_3\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.NetworkContainer(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    atlas_cidr_block=\"10.8.0.0/21\",\n    provider_name=\"GCP\",\n    regions=[\n        \"US_EAST_4\",\n        \"US_WEST_3\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.NetworkContainer(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        AtlasCidrBlock = \"10.8.0.0/21\",\n        ProviderName = \"GCP\",\n        Regions = new[]\n        {\n            \"US_EAST_4\",\n            \"US_WEST_3\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewNetworkContainer(ctx, \"test\", \u0026mongodbatlas.NetworkContainerArgs{\n\t\t\tProjectId:      pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tAtlasCidrBlock: pulumi.String(\"10.8.0.0/21\"),\n\t\t\tProviderName:   pulumi.String(\"GCP\"),\n\t\t\tRegions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"US_EAST_4\"),\n\t\t\t\tpulumi.String(\"US_WEST_3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkContainer;\nimport com.pulumi.mongodbatlas.NetworkContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new NetworkContainer(\"test\", NetworkContainerArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .atlasCidrBlock(\"10.8.0.0/21\")\n            .providerName(\"GCP\")\n            .regions(            \n                \"US_EAST_4\",\n                \"US_WEST_3\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:NetworkContainer\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      atlasCidrBlock: 10.8.0.0/21\n      providerName: GCP\n      regions:\n        - US_EAST_4\n        - US_WEST_3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with Azure\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.NetworkContainer(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    atlasCidrBlock: \"10.8.0.0/21\",\n    providerName: \"AZURE\",\n    region: \"US_EAST_2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.NetworkContainer(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    atlas_cidr_block=\"10.8.0.0/21\",\n    provider_name=\"AZURE\",\n    region=\"US_EAST_2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.NetworkContainer(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        AtlasCidrBlock = \"10.8.0.0/21\",\n        ProviderName = \"AZURE\",\n        Region = \"US_EAST_2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewNetworkContainer(ctx, \"test\", \u0026mongodbatlas.NetworkContainerArgs{\n\t\t\tProjectId:      pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tAtlasCidrBlock: pulumi.String(\"10.8.0.0/21\"),\n\t\t\tProviderName:   pulumi.String(\"AZURE\"),\n\t\t\tRegion:         pulumi.String(\"US_EAST_2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkContainer;\nimport com.pulumi.mongodbatlas.NetworkContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new NetworkContainer(\"test\", NetworkContainerArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .atlasCidrBlock(\"10.8.0.0/21\")\n            .providerName(\"AZURE\")\n            .region(\"US_EAST_2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:NetworkContainer\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      atlasCidrBlock: 10.8.0.0/21\n      providerName: AZURE\n      region: US_EAST_2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- GCP and MongoDB Atlas VPC Peering\n\n## Import\n\nNetwork Peering Containers can be imported using project ID and network peering container id, in the format `PROJECTID-CONTAINER-ID`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/networkContainer:NetworkContainer my_container 1112222b3bf99403840e8934-5cbf563d87d9d67253be590a\n```\n\nSee detailed information for arguments and attributes: [MongoDB API Network Peering Container](https://docs.atlas.mongodb.com/reference/api/vpc-create-container/)\n\n","properties":{"atlasCidrBlock":{"type":"string","description":"CIDR block that Atlas uses for the Network Peering containers in your project.  Atlas uses the specified CIDR block for all other Network Peering connections created in the project. The Atlas CIDR block must be at least a /24 and at most a /21 in one of the following [private networks](https://tools.ietf.org/html/rfc1918.html#section-3):\n* Lower bound: 10.0.0.0 -\tUpper bound: 10.255.255.255 -\tPrefix: 10/8\n* Lower bound: 172.16.0.0 -\tUpper bound:172.31.255.255 -\tPrefix:\t172.16/12\n* Lower bound: 192.168.0.0 -\tUpper bound:192.168.255.255 -\tPrefix:\t192.168/16\n\n**Atlas locks this value** if an M10+ cluster or a Network Peering connection already exists. To modify the CIDR block, ensure there are no M10+ clusters in the project and no other Network Peering connections in the project.\n\n**Important**: Atlas limits the number of MongoDB nodes per Network Peering connection based on the CIDR block and the region selected for the project. Contact [MongoDB Support](https://www.mongodb.com/contact?tck=docs_atlas) for any questions on Atlas limits of MongoDB nodes per Network Peering connection.\n"},"azureSubscriptionId":{"type":"string","description":"Unique identifier of the Azure subscription in which the VNet resides.\n"},"containerId":{"type":"string","description":"The Network Peering Container ID.\n"},"gcpProjectId":{"type":"string","description":"Unique identifier of the GCP project in which the network peer resides. Returns null. This value is populated once you create a new network peering connection with the network peering resource.\n"},"networkName":{"type":"string","description":"Unique identifier of the Network Peering connection in the Atlas project. Returns null. This value is populated once you create a new network peering connection with the network peering resource.\n"},"projectId":{"type":"string","description":"Unique identifier for the Atlas project for this Network Peering Container.\n"},"providerName":{"type":"string","description":"Cloud provider for this Network Peering connection.  Accepted values are GCP, AWS, AZURE. If omitted, Atlas sets this parameter to AWS.\n"},"provisioned":{"type":"boolean","description":"Indicates whether the project has Network Peering connections deployed in the container.\n"},"region":{"type":"string","description":"Atlas region where the container resides, see the reference list for Atlas Azure region names [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n"},"regionName":{"type":"string","description":"The Atlas AWS region name for where this container will exist, see the reference list for Atlas AWS region names [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/).\n"},"regions":{"type":"array","items":{"type":"string"},"description":"Atlas regions where the container resides. Provide this field only if you provide an \u003cspan pulumi-lang-nodejs=\"`atlasCidrBlock`\" pulumi-lang-dotnet=\"`AtlasCidrBlock`\" pulumi-lang-go=\"`atlasCidrBlock`\" pulumi-lang-python=\"`atlas_cidr_block`\" pulumi-lang-yaml=\"`atlasCidrBlock`\" pulumi-lang-java=\"`atlasCidrBlock`\"\u003e`atlas_cidr_block`\u003c/span\u003e smaller than `/18`. [GCP Regions values](https://docs.atlas.mongodb.com/reference/api/vpc-create-container/#request-body-parameters).\n"},"vnetName":{"type":"string","description":"The name of the Azure VNet. Returns null. This value is populated once you create a new network peering connection with the network peering resource.\n"},"vpcId":{"type":"string","description":"Unique identifier of Atlas' AWS VPC.\n"}},"required":["atlasCidrBlock","azureSubscriptionId","containerId","gcpProjectId","networkName","projectId","provisioned","region","regionName","regions","vnetName","vpcId"],"inputProperties":{"atlasCidrBlock":{"type":"string","description":"CIDR block that Atlas uses for the Network Peering containers in your project.  Atlas uses the specified CIDR block for all other Network Peering connections created in the project. The Atlas CIDR block must be at least a /24 and at most a /21 in one of the following [private networks](https://tools.ietf.org/html/rfc1918.html#section-3):\n* Lower bound: 10.0.0.0 -\tUpper bound: 10.255.255.255 -\tPrefix: 10/8\n* Lower bound: 172.16.0.0 -\tUpper bound:172.31.255.255 -\tPrefix:\t172.16/12\n* Lower bound: 192.168.0.0 -\tUpper bound:192.168.255.255 -\tPrefix:\t192.168/16\n\n**Atlas locks this value** if an M10+ cluster or a Network Peering connection already exists. To modify the CIDR block, ensure there are no M10+ clusters in the project and no other Network Peering connections in the project.\n\n**Important**: Atlas limits the number of MongoDB nodes per Network Peering connection based on the CIDR block and the region selected for the project. Contact [MongoDB Support](https://www.mongodb.com/contact?tck=docs_atlas) for any questions on Atlas limits of MongoDB nodes per Network Peering connection.\n"},"projectId":{"type":"string","description":"Unique identifier for the Atlas project for this Network Peering Container.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Cloud provider for this Network Peering connection.  Accepted values are GCP, AWS, AZURE. If omitted, Atlas sets this parameter to AWS.\n"},"region":{"type":"string","description":"Atlas region where the container resides, see the reference list for Atlas Azure region names [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n"},"regionName":{"type":"string","description":"The Atlas AWS region name for where this container will exist, see the reference list for Atlas AWS region names [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/).\n"},"regions":{"type":"array","items":{"type":"string"},"description":"Atlas regions where the container resides. Provide this field only if you provide an \u003cspan pulumi-lang-nodejs=\"`atlasCidrBlock`\" pulumi-lang-dotnet=\"`AtlasCidrBlock`\" pulumi-lang-go=\"`atlasCidrBlock`\" pulumi-lang-python=\"`atlas_cidr_block`\" pulumi-lang-yaml=\"`atlasCidrBlock`\" pulumi-lang-java=\"`atlasCidrBlock`\"\u003e`atlas_cidr_block`\u003c/span\u003e smaller than `/18`. [GCP Regions values](https://docs.atlas.mongodb.com/reference/api/vpc-create-container/#request-body-parameters).\n"}},"requiredInputs":["atlasCidrBlock","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkContainer resources.\n","properties":{"atlasCidrBlock":{"type":"string","description":"CIDR block that Atlas uses for the Network Peering containers in your project.  Atlas uses the specified CIDR block for all other Network Peering connections created in the project. The Atlas CIDR block must be at least a /24 and at most a /21 in one of the following [private networks](https://tools.ietf.org/html/rfc1918.html#section-3):\n* Lower bound: 10.0.0.0 -\tUpper bound: 10.255.255.255 -\tPrefix: 10/8\n* Lower bound: 172.16.0.0 -\tUpper bound:172.31.255.255 -\tPrefix:\t172.16/12\n* Lower bound: 192.168.0.0 -\tUpper bound:192.168.255.255 -\tPrefix:\t192.168/16\n\n**Atlas locks this value** if an M10+ cluster or a Network Peering connection already exists. To modify the CIDR block, ensure there are no M10+ clusters in the project and no other Network Peering connections in the project.\n\n**Important**: Atlas limits the number of MongoDB nodes per Network Peering connection based on the CIDR block and the region selected for the project. Contact [MongoDB Support](https://www.mongodb.com/contact?tck=docs_atlas) for any questions on Atlas limits of MongoDB nodes per Network Peering connection.\n"},"azureSubscriptionId":{"type":"string","description":"Unique identifier of the Azure subscription in which the VNet resides.\n"},"containerId":{"type":"string","description":"The Network Peering Container ID.\n"},"gcpProjectId":{"type":"string","description":"Unique identifier of the GCP project in which the network peer resides. Returns null. This value is populated once you create a new network peering connection with the network peering resource.\n"},"networkName":{"type":"string","description":"Unique identifier of the Network Peering connection in the Atlas project. Returns null. This value is populated once you create a new network peering connection with the network peering resource.\n"},"projectId":{"type":"string","description":"Unique identifier for the Atlas project for this Network Peering Container.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Cloud provider for this Network Peering connection.  Accepted values are GCP, AWS, AZURE. If omitted, Atlas sets this parameter to AWS.\n"},"provisioned":{"type":"boolean","description":"Indicates whether the project has Network Peering connections deployed in the container.\n"},"region":{"type":"string","description":"Atlas region where the container resides, see the reference list for Atlas Azure region names [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n"},"regionName":{"type":"string","description":"The Atlas AWS region name for where this container will exist, see the reference list for Atlas AWS region names [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/).\n"},"regions":{"type":"array","items":{"type":"string"},"description":"Atlas regions where the container resides. Provide this field only if you provide an \u003cspan pulumi-lang-nodejs=\"`atlasCidrBlock`\" pulumi-lang-dotnet=\"`AtlasCidrBlock`\" pulumi-lang-go=\"`atlasCidrBlock`\" pulumi-lang-python=\"`atlas_cidr_block`\" pulumi-lang-yaml=\"`atlasCidrBlock`\" pulumi-lang-java=\"`atlasCidrBlock`\"\u003e`atlas_cidr_block`\u003c/span\u003e smaller than `/18`. [GCP Regions values](https://docs.atlas.mongodb.com/reference/api/vpc-create-container/#request-body-parameters).\n"},"vnetName":{"type":"string","description":"The name of the Azure VNet. Returns null. This value is populated once you create a new network peering connection with the network peering resource.\n"},"vpcId":{"type":"string","description":"Unique identifier of Atlas' AWS VPC.\n"}},"type":"object"}},"mongodbatlas:index/networkPeering:NetworkPeering":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.NetworkPeering`\" pulumi-lang-dotnet=\"`mongodbatlas.NetworkPeering`\" pulumi-lang-go=\"`NetworkPeering`\" pulumi-lang-python=\"`NetworkPeering`\" pulumi-lang-yaml=\"`mongodbatlas.NetworkPeering`\" pulumi-lang-java=\"`mongodbatlas.NetworkPeering`\"\u003e`mongodbatlas.NetworkPeering`\u003c/span\u003e provides a Network Peering Connection resource. The resource lets you create, edit and delete network peering connections. The resource requires your Project ID.  \n\nEnsure you have first created a network container if it is required for your configuration.  See the\u003cspan pulumi-lang-nodejs=\" networkContainer \" pulumi-lang-dotnet=\" NetworkContainer \" pulumi-lang-go=\" networkContainer \" pulumi-lang-python=\" network_container \" pulumi-lang-yaml=\" networkContainer \" pulumi-lang-java=\" networkContainer \"\u003e network_container \u003c/span\u003eresource documentation to determine if you need a network container first.  Examples for creating both container and peering resource are shown below as well as examples for creating the peering connection only.\n\n\u003e **GCP AND AZURE ONLY:** Connect via Peering Only mode is deprecated, so no longer needed.  See [disable Peering Only mode](https://docs.atlas.mongodb.com/reference/faq/connection-changes/#disable-peering-mode) for details\n\n\u003e **AZURE ONLY:** To create the peering request with an Azure VNET, you must grant Atlas the following permissions on the virtual network.\n    Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read\n    Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write\n    Microsoft.Network/virtualNetworks/virtualNetworkPeerings/delete\n    Microsoft.Network/virtualNetworks/peer/action\nFor more information see https://docs.atlas.mongodb.com/security-vpc-peering/ and https://docs.atlas.mongodb.com/reference/api/vpc-create-peering-connection/\n\n\u003e **Create a Whitelist:** Ensure you whitelist the private IP ranges of the subnets in which your application is hosted in order to connect to your Atlas cluster.  See the\u003cspan pulumi-lang-nodejs=\" projectIpWhitelist \" pulumi-lang-dotnet=\" ProjectIpWhitelist \" pulumi-lang-go=\" projectIpWhitelist \" pulumi-lang-python=\" project_ip_whitelist \" pulumi-lang-yaml=\" projectIpWhitelist \" pulumi-lang-java=\" projectIpWhitelist \"\u003e project_ip_whitelist \u003c/span\u003eresource.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n\n## Example Usage\n\n### Container \u0026 Peering Connection\n\n### Example with AWS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// Container example provided but not always required, \n// see network_container documentation for details. \nconst test = new mongodbatlas.NetworkContainer(\"test\", {\n    projectId: projectId,\n    atlasCidrBlock: \"10.8.0.0/21\",\n    providerName: \"AWS\",\n    regionName: \"US_EAST_1\",\n});\n// Create the peering connection request\nconst testNetworkPeering = new mongodbatlas.NetworkPeering(\"test\", {\n    accepterRegionName: \"us-east-1\",\n    projectId: projectId,\n    containerId: \"507f1f77bcf86cd799439011\",\n    providerName: \"AWS\",\n    routeTableCidrBlock: \"192.168.0.0/24\",\n    vpcId: \"vpc-abc123abc123\",\n    awsAccountId: \"abc123abc123\",\n});\n// the following assumes an AWS provider is configured\n// Accept the peering connection request\nconst peer = new aws.index.VpcPeeringConnectionAccepter(\"peer\", {\n    vpcPeeringConnectionId: testNetworkPeering.connectionId,\n    autoAccept: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_mongodbatlas as mongodbatlas\n\n# Container example provided but not always required, \n# see network_container documentation for details. \ntest = mongodbatlas.NetworkContainer(\"test\",\n    project_id=project_id,\n    atlas_cidr_block=\"10.8.0.0/21\",\n    provider_name=\"AWS\",\n    region_name=\"US_EAST_1\")\n# Create the peering connection request\ntest_network_peering = mongodbatlas.NetworkPeering(\"test\",\n    accepter_region_name=\"us-east-1\",\n    project_id=project_id,\n    container_id=\"507f1f77bcf86cd799439011\",\n    provider_name=\"AWS\",\n    route_table_cidr_block=\"192.168.0.0/24\",\n    vpc_id=\"vpc-abc123abc123\",\n    aws_account_id=\"abc123abc123\")\n# the following assumes an AWS provider is configured\n# Accept the peering connection request\npeer = aws.index.VpcPeeringConnectionAccepter(\"peer\",\n    vpc_peering_connection_id=test_network_peering.connection_id,\n    auto_accept=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Container example provided but not always required, \n    // see network_container documentation for details. \n    var test = new Mongodbatlas.NetworkContainer(\"test\", new()\n    {\n        ProjectId = projectId,\n        AtlasCidrBlock = \"10.8.0.0/21\",\n        ProviderName = \"AWS\",\n        RegionName = \"US_EAST_1\",\n    });\n\n    // Create the peering connection request\n    var testNetworkPeering = new Mongodbatlas.NetworkPeering(\"test\", new()\n    {\n        AccepterRegionName = \"us-east-1\",\n        ProjectId = projectId,\n        ContainerId = \"507f1f77bcf86cd799439011\",\n        ProviderName = \"AWS\",\n        RouteTableCidrBlock = \"192.168.0.0/24\",\n        VpcId = \"vpc-abc123abc123\",\n        AwsAccountId = \"abc123abc123\",\n    });\n\n    // the following assumes an AWS provider is configured\n    // Accept the peering connection request\n    var peer = new Aws.Index.VpcPeeringConnectionAccepter(\"peer\", new()\n    {\n        VpcPeeringConnectionId = testNetworkPeering.ConnectionId,\n        AutoAccept = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Container example provided but not always required,\n\t\t// see network_container documentation for details.\n\t\t_, err := mongodbatlas.NewNetworkContainer(ctx, \"test\", \u0026mongodbatlas.NetworkContainerArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tAtlasCidrBlock: pulumi.String(\"10.8.0.0/21\"),\n\t\t\tProviderName:   pulumi.String(\"AWS\"),\n\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create the peering connection request\n\t\ttestNetworkPeering, err := mongodbatlas.NewNetworkPeering(ctx, \"test\", \u0026mongodbatlas.NetworkPeeringArgs{\n\t\t\tAccepterRegionName:  pulumi.String(\"us-east-1\"),\n\t\t\tProjectId:           pulumi.Any(projectId),\n\t\t\tContainerId:         pulumi.String(\"507f1f77bcf86cd799439011\"),\n\t\t\tProviderName:        pulumi.String(\"AWS\"),\n\t\t\tRouteTableCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t\tVpcId:               pulumi.String(\"vpc-abc123abc123\"),\n\t\t\tAwsAccountId:        pulumi.String(\"abc123abc123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// the following assumes an AWS provider is configured\n\t\t// Accept the peering connection request\n\t\t_, err = aws.NewVpcPeeringConnectionAccepter(ctx, \"peer\", \u0026aws.VpcPeeringConnectionAccepterArgs{\n\t\t\tVpcPeeringConnectionId: testNetworkPeering.ConnectionId,\n\t\t\tAutoAccept:             true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkContainer;\nimport com.pulumi.mongodbatlas.NetworkContainerArgs;\nimport com.pulumi.mongodbatlas.NetworkPeering;\nimport com.pulumi.mongodbatlas.NetworkPeeringArgs;\nimport com.pulumi.aws.VpcPeeringConnectionAccepter;\nimport com.pulumi.aws.VpcPeeringConnectionAccepterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Container example provided but not always required, \n        // see network_container documentation for details. \n        var test = new NetworkContainer(\"test\", NetworkContainerArgs.builder()\n            .projectId(projectId)\n            .atlasCidrBlock(\"10.8.0.0/21\")\n            .providerName(\"AWS\")\n            .regionName(\"US_EAST_1\")\n            .build());\n\n        // Create the peering connection request\n        var testNetworkPeering = new NetworkPeering(\"testNetworkPeering\", NetworkPeeringArgs.builder()\n            .accepterRegionName(\"us-east-1\")\n            .projectId(projectId)\n            .containerId(\"507f1f77bcf86cd799439011\")\n            .providerName(\"AWS\")\n            .routeTableCidrBlock(\"192.168.0.0/24\")\n            .vpcId(\"vpc-abc123abc123\")\n            .awsAccountId(\"abc123abc123\")\n            .build());\n\n        // the following assumes an AWS provider is configured\n        // Accept the peering connection request\n        var peer = new VpcPeeringConnectionAccepter(\"peer\", VpcPeeringConnectionAccepterArgs.builder()\n            .vpcPeeringConnectionId(testNetworkPeering.connectionId())\n            .autoAccept(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Container example provided but not always required, \n  # see network_container documentation for details.\n  test:\n    type: mongodbatlas:NetworkContainer\n    properties:\n      projectId: ${projectId}\n      atlasCidrBlock: 10.8.0.0/21\n      providerName: AWS\n      regionName: US_EAST_1\n  # Create the peering connection request\n  testNetworkPeering:\n    type: mongodbatlas:NetworkPeering\n    name: test\n    properties:\n      accepterRegionName: us-east-1\n      projectId: ${projectId}\n      containerId: 507f1f77bcf86cd799439011\n      providerName: AWS\n      routeTableCidrBlock: 192.168.0.0/24\n      vpcId: vpc-abc123abc123\n      awsAccountId: abc123abc123\n  # the following assumes an AWS provider is configured\n  # Accept the peering connection request\n  peer:\n    type: aws:VpcPeeringConnectionAccepter\n    properties:\n      vpcPeeringConnectionId: ${testNetworkPeering.connectionId}\n      autoAccept: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with GCP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as google from \"@pulumi/google\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// Container example provided but not always required, \n// see network_container documentation for details. \nconst test = new mongodbatlas.NetworkContainer(\"test\", {\n    projectId: projectId,\n    atlasCidrBlock: \"10.8.0.0/21\",\n    providerName: \"GCP\",\n});\n// Create the peering connection request\nconst testNetworkPeering = new mongodbatlas.NetworkPeering(\"test\", {\n    projectId: projectId,\n    containerId: test.containerId,\n    providerName: \"GCP\",\n    gcpProjectId: GCP_PROJECT_ID,\n    networkName: \"default\",\n});\n// the following assumes a GCP provider is configured\nconst _default = google.index.ComputeNetwork({\n    name: \"default\",\n});\n// Create the GCP peer\nconst peering = new google.index.ComputeNetworkPeering(\"peering\", {\n    name: \"peering-gcp-terraform-test\",\n    network: _default.selfLink,\n    peerNetwork: `https://www.googleapis.com/compute/v1/projects/${testNetworkPeering.atlasGcpProjectId}/global/networks/${testNetworkPeering.atlasVpcName}`,\n});\n// Create the cluster once the peering connection is completed\nconst testAdvancedCluster = new mongodbatlas.AdvancedCluster(\"test\", {\n    projectId: projectId,\n    name: \"terraform-manually-test\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"GCP\",\n            regionName: \"US_EAST_4\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n}, {\n    dependsOn: [peering],\n});\n```\n```python\nimport pulumi\nimport pulumi_google as google\nimport pulumi_mongodbatlas as mongodbatlas\n\n# Container example provided but not always required, \n# see network_container documentation for details. \ntest = mongodbatlas.NetworkContainer(\"test\",\n    project_id=project_id,\n    atlas_cidr_block=\"10.8.0.0/21\",\n    provider_name=\"GCP\")\n# Create the peering connection request\ntest_network_peering = mongodbatlas.NetworkPeering(\"test\",\n    project_id=project_id,\n    container_id=test.container_id,\n    provider_name=\"GCP\",\n    gcp_project_id=gc_p__projec_t__id,\n    network_name=\"default\")\n# the following assumes a GCP provider is configured\ndefault = google.index.compute_network(name=\"default\")\n# Create the GCP peer\npeering = google.index.ComputeNetworkPeering(\"peering\",\n    name=peering-gcp-terraform-test,\n    network=default.self_link,\n    peer_network=fhttps://www.googleapis.com/compute/v1/projects/{test_network_peering.atlas_gcp_project_id}/global/networks/{test_network_peering.atlas_vpc_name})\n# Create the cluster once the peering connection is completed\ntest_advanced_cluster = mongodbatlas.AdvancedCluster(\"test\",\n    project_id=project_id,\n    name=\"terraform-manually-test\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"GCP\",\n            \"region_name\": \"US_EAST_4\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }],\n    opts = pulumi.ResourceOptions(depends_on=[peering]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Google = Pulumi.Google;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Container example provided but not always required, \n    // see network_container documentation for details. \n    var test = new Mongodbatlas.NetworkContainer(\"test\", new()\n    {\n        ProjectId = projectId,\n        AtlasCidrBlock = \"10.8.0.0/21\",\n        ProviderName = \"GCP\",\n    });\n\n    // Create the peering connection request\n    var testNetworkPeering = new Mongodbatlas.NetworkPeering(\"test\", new()\n    {\n        ProjectId = projectId,\n        ContainerId = test.ContainerId,\n        ProviderName = \"GCP\",\n        GcpProjectId = GCP_PROJECT_ID,\n        NetworkName = \"default\",\n    });\n\n    // the following assumes a GCP provider is configured\n    var @default = Google.Index.ComputeNetwork.Invoke(new()\n    {\n        Name = \"default\",\n    });\n\n    // Create the GCP peer\n    var peering = new Google.Index.ComputeNetworkPeering(\"peering\", new()\n    {\n        Name = \"peering-gcp-terraform-test\",\n        Network = @default.SelfLink,\n        PeerNetwork = $\"https://www.googleapis.com/compute/v1/projects/{testNetworkPeering.AtlasGcpProjectId}/global/networks/{testNetworkPeering.AtlasVpcName}\",\n    });\n\n    // Create the cluster once the peering connection is completed\n    var testAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"test\", new()\n    {\n        ProjectId = projectId,\n        Name = \"terraform-manually-test\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"GCP\",\n                        RegionName = \"US_EAST_4\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            peering,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-google/sdk/go/google\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Container example provided but not always required,\n\t\t// see network_container documentation for details.\n\t\ttest, err := mongodbatlas.NewNetworkContainer(ctx, \"test\", \u0026mongodbatlas.NetworkContainerArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tAtlasCidrBlock: pulumi.String(\"10.8.0.0/21\"),\n\t\t\tProviderName:   pulumi.String(\"GCP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create the peering connection request\n\t\ttestNetworkPeering, err := mongodbatlas.NewNetworkPeering(ctx, \"test\", \u0026mongodbatlas.NetworkPeeringArgs{\n\t\t\tProjectId:    pulumi.Any(projectId),\n\t\t\tContainerId:  test.ContainerId,\n\t\t\tProviderName: pulumi.String(\"GCP\"),\n\t\t\tGcpProjectId: pulumi.Any(GCP_PROJECT_ID),\n\t\t\tNetworkName:  pulumi.String(\"default\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// the following assumes a GCP provider is configured\n\t\t_default, err := google.ComputeNetwork(ctx, map[string]interface{}{\n\t\t\t\"name\": \"default\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create the GCP peer\n\t\tpeering, err := google.NewComputeNetworkPeering(ctx, \"peering\", \u0026google.ComputeNetworkPeeringArgs{\n\t\t\tName:        \"peering-gcp-terraform-test\",\n\t\t\tNetwork:     _default.SelfLink,\n\t\t\tPeerNetwork: pulumi.Sprintf(\"https://www.googleapis.com/compute/v1/projects/%v/global/networks/%v\", testNetworkPeering.AtlasGcpProjectId, testNetworkPeering.AtlasVpcName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create the cluster once the peering connection is completed\n\t\t_, err = mongodbatlas.NewAdvancedCluster(ctx, \"test\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tName:          pulumi.String(\"terraform-manually-test\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"GCP\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_4\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tpeering,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkContainer;\nimport com.pulumi.mongodbatlas.NetworkContainerArgs;\nimport com.pulumi.mongodbatlas.NetworkPeering;\nimport com.pulumi.mongodbatlas.NetworkPeeringArgs;\nimport com.pulumi.google.GoogleFunctions;\nimport com.pulumi.google.ComputeNetworkPeering;\nimport com.pulumi.google.ComputeNetworkPeeringArgs;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Container example provided but not always required, \n        // see network_container documentation for details. \n        var test = new NetworkContainer(\"test\", NetworkContainerArgs.builder()\n            .projectId(projectId)\n            .atlasCidrBlock(\"10.8.0.0/21\")\n            .providerName(\"GCP\")\n            .build());\n\n        // Create the peering connection request\n        var testNetworkPeering = new NetworkPeering(\"testNetworkPeering\", NetworkPeeringArgs.builder()\n            .projectId(projectId)\n            .containerId(test.containerId())\n            .providerName(\"GCP\")\n            .gcpProjectId(GCP_PROJECT_ID)\n            .networkName(\"default\")\n            .build());\n\n        // the following assumes a GCP provider is configured\n        final var default = GoogleFunctions.ComputeNetwork(Map.of(\"name\", \"default\"));\n\n        // Create the GCP peer\n        var peering = new ComputeNetworkPeering(\"peering\", ComputeNetworkPeeringArgs.builder()\n            .name(\"peering-gcp-terraform-test\")\n            .network(default_.selfLink())\n            .peerNetwork(String.format(\"https://www.googleapis.com/compute/v1/projects/%s/global/networks/%s\", testNetworkPeering.atlasGcpProjectId(),testNetworkPeering.atlasVpcName()))\n            .build());\n\n        // Create the cluster once the peering connection is completed\n        var testAdvancedCluster = new AdvancedCluster(\"testAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(projectId)\n            .name(\"terraform-manually-test\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"GCP\")\n                    .regionName(\"US_EAST_4\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(peering)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Container example provided but not always required, \n  # see network_container documentation for details.\n  test:\n    type: mongodbatlas:NetworkContainer\n    properties:\n      projectId: ${projectId}\n      atlasCidrBlock: 10.8.0.0/21\n      providerName: GCP\n  # Create the peering connection request\n  testNetworkPeering:\n    type: mongodbatlas:NetworkPeering\n    name: test\n    properties:\n      projectId: ${projectId}\n      containerId: ${test.containerId}\n      providerName: GCP\n      gcpProjectId: ${GCP_PROJECT_ID}\n      networkName: default\n  # Create the GCP peer\n  peering:\n    type: google:ComputeNetworkPeering\n    properties:\n      name: peering-gcp-terraform-test\n      network: ${default.selfLink}\n      peerNetwork: https://www.googleapis.com/compute/v1/projects/${testNetworkPeering.atlasGcpProjectId}/global/networks/${testNetworkPeering.atlasVpcName}\n  # Create the cluster once the peering connection is completed\n  testAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: test\n    properties:\n      projectId: ${projectId}\n      name: terraform-manually-test\n      clusterType: REPLICASET\n      backupEnabled: true\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: GCP\n              regionName: US_EAST_4\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n    options:\n      dependsOn:\n        - ${peering}\nvariables:\n  # the following assumes a GCP provider is configured\n  default:\n    fn::invoke:\n      function: google:ComputeNetwork\n      arguments:\n        name: default\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example with Azure\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// Ensure you have created the required Azure service principal first, see\n// see https://docs.atlas.mongodb.com/security-vpc-peering/\n// Container example provided but not always required, \n// see network_container documentation for details. \nconst test = new mongodbatlas.NetworkContainer(\"test\", {\n    projectId: projectId,\n    atlasCidrBlock: ATLAS_CIDR_BLOCK,\n    providerName: \"AZURE\",\n    region: \"US_EAST_2\",\n});\n// Create the peering connection request\nconst testNetworkPeering = new mongodbatlas.NetworkPeering(\"test\", {\n    projectId: projectId,\n    containerId: test.containerId,\n    providerName: \"AZURE\",\n    azureDirectoryId: AZURE_DIRECTORY_ID,\n    azureSubscriptionId: AZURE_SUBSCRIPTION_ID,\n    resourceGroupName: AZURE_RESOURCES_GROUP_NAME,\n    vnetName: AZURE_VNET_NAME,\n});\n// Create the cluster once the peering connection is completed\nconst testAdvancedCluster = new mongodbatlas.AdvancedCluster(\"test\", {\n    projectId: projectId,\n    name: \"terraform-manually-test\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AZURE\",\n            regionName: \"US_EAST_2\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n}, {\n    dependsOn: [testNetworkPeering],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\n# Ensure you have created the required Azure service principal first, see\n# see https://docs.atlas.mongodb.com/security-vpc-peering/\n# Container example provided but not always required, \n# see network_container documentation for details. \ntest = mongodbatlas.NetworkContainer(\"test\",\n    project_id=project_id,\n    atlas_cidr_block=atla_s__cid_r__block,\n    provider_name=\"AZURE\",\n    region=\"US_EAST_2\")\n# Create the peering connection request\ntest_network_peering = mongodbatlas.NetworkPeering(\"test\",\n    project_id=project_id,\n    container_id=test.container_id,\n    provider_name=\"AZURE\",\n    azure_directory_id=azur_e__director_y__id,\n    azure_subscription_id=azur_e__subscriptio_n__id,\n    resource_group_name=azur_e__resource_s__grou_p__name,\n    vnet_name=azur_e__vne_t__name)\n# Create the cluster once the peering connection is completed\ntest_advanced_cluster = mongodbatlas.AdvancedCluster(\"test\",\n    project_id=project_id,\n    name=\"terraform-manually-test\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AZURE\",\n            \"region_name\": \"US_EAST_2\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }],\n    opts = pulumi.ResourceOptions(depends_on=[test_network_peering]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // Ensure you have created the required Azure service principal first, see\n    // see https://docs.atlas.mongodb.com/security-vpc-peering/\n    // Container example provided but not always required, \n    // see network_container documentation for details. \n    var test = new Mongodbatlas.NetworkContainer(\"test\", new()\n    {\n        ProjectId = projectId,\n        AtlasCidrBlock = ATLAS_CIDR_BLOCK,\n        ProviderName = \"AZURE\",\n        Region = \"US_EAST_2\",\n    });\n\n    // Create the peering connection request\n    var testNetworkPeering = new Mongodbatlas.NetworkPeering(\"test\", new()\n    {\n        ProjectId = projectId,\n        ContainerId = test.ContainerId,\n        ProviderName = \"AZURE\",\n        AzureDirectoryId = AZURE_DIRECTORY_ID,\n        AzureSubscriptionId = AZURE_SUBSCRIPTION_ID,\n        ResourceGroupName = AZURE_RESOURCES_GROUP_NAME,\n        VnetName = AZURE_VNET_NAME,\n    });\n\n    // Create the cluster once the peering connection is completed\n    var testAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"test\", new()\n    {\n        ProjectId = projectId,\n        Name = \"terraform-manually-test\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AZURE\",\n                        RegionName = \"US_EAST_2\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            testNetworkPeering,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// Ensure you have created the required Azure service principal first, see\n\t\t// see https://docs.atlas.mongodb.com/security-vpc-peering/\n\t\t// Container example provided but not always required,\n\t\t// see network_container documentation for details.\n\t\ttest, err := mongodbatlas.NewNetworkContainer(ctx, \"test\", \u0026mongodbatlas.NetworkContainerArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tAtlasCidrBlock: pulumi.Any(ATLAS_CIDR_BLOCK),\n\t\t\tProviderName:   pulumi.String(\"AZURE\"),\n\t\t\tRegion:         pulumi.String(\"US_EAST_2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create the peering connection request\n\t\ttestNetworkPeering, err := mongodbatlas.NewNetworkPeering(ctx, \"test\", \u0026mongodbatlas.NetworkPeeringArgs{\n\t\t\tProjectId:           pulumi.Any(projectId),\n\t\t\tContainerId:         test.ContainerId,\n\t\t\tProviderName:        pulumi.String(\"AZURE\"),\n\t\t\tAzureDirectoryId:    pulumi.Any(AZURE_DIRECTORY_ID),\n\t\t\tAzureSubscriptionId: pulumi.Any(AZURE_SUBSCRIPTION_ID),\n\t\t\tResourceGroupName:   pulumi.Any(AZURE_RESOURCES_GROUP_NAME),\n\t\t\tVnetName:            pulumi.Any(AZURE_VNET_NAME),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create the cluster once the peering connection is completed\n\t\t_, err = mongodbatlas.NewAdvancedCluster(ctx, \"test\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tName:          pulumi.String(\"terraform-manually-test\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_2\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestNetworkPeering,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkContainer;\nimport com.pulumi.mongodbatlas.NetworkContainerArgs;\nimport com.pulumi.mongodbatlas.NetworkPeering;\nimport com.pulumi.mongodbatlas.NetworkPeeringArgs;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // Ensure you have created the required Azure service principal first, see\n        // see https://docs.atlas.mongodb.com/security-vpc-peering/\n        // Container example provided but not always required, \n        // see network_container documentation for details. \n        var test = new NetworkContainer(\"test\", NetworkContainerArgs.builder()\n            .projectId(projectId)\n            .atlasCidrBlock(ATLAS_CIDR_BLOCK)\n            .providerName(\"AZURE\")\n            .region(\"US_EAST_2\")\n            .build());\n\n        // Create the peering connection request\n        var testNetworkPeering = new NetworkPeering(\"testNetworkPeering\", NetworkPeeringArgs.builder()\n            .projectId(projectId)\n            .containerId(test.containerId())\n            .providerName(\"AZURE\")\n            .azureDirectoryId(AZURE_DIRECTORY_ID)\n            .azureSubscriptionId(AZURE_SUBSCRIPTION_ID)\n            .resourceGroupName(AZURE_RESOURCES_GROUP_NAME)\n            .vnetName(AZURE_VNET_NAME)\n            .build());\n\n        // Create the cluster once the peering connection is completed\n        var testAdvancedCluster = new AdvancedCluster(\"testAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(projectId)\n            .name(\"terraform-manually-test\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AZURE\")\n                    .regionName(\"US_EAST_2\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(testNetworkPeering)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  # Ensure you have created the required Azure service principal first, see\n  # see https://docs.atlas.mongodb.com/security-vpc-peering/\n\n  # Container example provided but not always required, \n  # see network_container documentation for details.\n  test:\n    type: mongodbatlas:NetworkContainer\n    properties:\n      projectId: ${projectId}\n      atlasCidrBlock: ${ATLAS_CIDR_BLOCK}\n      providerName: AZURE\n      region: US_EAST_2\n  # Create the peering connection request\n  testNetworkPeering:\n    type: mongodbatlas:NetworkPeering\n    name: test\n    properties:\n      projectId: ${projectId}\n      containerId: ${test.containerId}\n      providerName: AZURE\n      azureDirectoryId: ${AZURE_DIRECTORY_ID}\n      azureSubscriptionId: ${AZURE_SUBSCRIPTION_ID}\n      resourceGroupName: ${AZURE_RESOURCES_GROUP_NAME}\n      vnetName: ${AZURE_VNET_NAME}\n  # Create the cluster once the peering connection is completed\n  testAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: test\n    properties:\n      projectId: ${projectId}\n      name: terraform-manually-test\n      clusterType: REPLICASET\n      backupEnabled: true\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AZURE\n              regionName: US_EAST_2\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n    options:\n      dependsOn:\n        - ${testNetworkPeering}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Peering Connection Only, Container Exists\nYou can create a peering connection if an appropriate container for your cloud provider already exists in your project (see the\u003cspan pulumi-lang-nodejs=\" networkContainer \" pulumi-lang-dotnet=\" NetworkContainer \" pulumi-lang-go=\" networkContainer \" pulumi-lang-python=\" network_container \" pulumi-lang-yaml=\" networkContainer \" pulumi-lang-java=\" networkContainer \"\u003e network_container \u003c/span\u003eresource for more information).  A container may already exist if you have already created a cluster in your project, if so you may obtain the \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e from the cluster resource as shown in the examples below.\n\n## Import\n\nNetwork Peering Connections can be imported using project ID and network peering id, in the format `PROJECTID-PEERID-PROVIDERNAME`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/networkPeering:NetworkPeering my_peering 1112222b3bf99403840e8934-5cbf563d87d9d67253be590a-AWS\n```\n\nUse the [MongoDB Atlas CLI][https://www.mongodb.com/docs/atlas/cli/current/command/atlas-networking-peering-list/#std-label-atlas-networking-peering-list] to obtain your \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`peeringId`\" pulumi-lang-dotnet=\"`PeeringId`\" pulumi-lang-go=\"`peeringId`\" pulumi-lang-python=\"`peering_id`\" pulumi-lang-yaml=\"`peeringId`\" pulumi-lang-java=\"`peeringId`\"\u003e`peering_id`\u003c/span\u003e. Attention gcp and azure users: The `atlas networking peering list` command returns only `AWS` peerings by default. You have to include the `--provider` parameter to list peerings for your cloud provider. Valid values are AWS, AZURE, or GCP.\n\n```sh\natlas projects list\natlas networking peering list --projectId \u003cprojectId\u003e --provider \u003cAZURE|GCP|AWS\u003e\n```\nSee detailed information for arguments and attributes: [MongoDB API Network Peering Connection](https://docs.atlas.mongodb.com/reference/api/vpc-create-peering-connection/)\n\n","properties":{"accepterRegionName":{"type":"string","description":"Specifies the AWS region where the peer VPC resides. For complete lists of supported regions, see [Amazon Web Services](https://docs.atlas.mongodb.com/reference/amazon-aws/).\n"},"atlasCidrBlock":{"type":"string"},"atlasGcpProjectId":{"type":"string","description":"The Atlas GCP Project ID for the GCP VPC used by your atlas cluster that is needed to set up the reciprocal connection.\n"},"atlasId":{"type":"string"},"atlasVpcName":{"type":"string","description":"Name of the GCP VPC used by your atlas cluster that is needed to set up the reciprocal connection.\n"},"awsAccountId":{"type":"string","description":"AWS Account ID of the owner of the peer VPC.\n"},"azureDirectoryId":{"type":"string","description":"Unique identifier for an Azure AD directory.\n"},"azureSubscriptionId":{"type":"string","description":"Unique identifier of the Azure subscription in which the VNet resides.\n"},"connectionId":{"type":"string","description":"Unique identifier of the Atlas network peering container.\n"},"containerId":{"type":"string","description":"Unique identifier of the MongoDB Atlas container for the provider (GCP) or provider/region (AWS, AZURE). You can create an MongoDB Atlas container using the\u003cspan pulumi-lang-nodejs=\" networkContainer \" pulumi-lang-dotnet=\" NetworkContainer \" pulumi-lang-go=\" networkContainer \" pulumi-lang-python=\" network_container \" pulumi-lang-yaml=\" networkContainer \" pulumi-lang-java=\" networkContainer \"\u003e network_container \u003c/span\u003eresource or it can be obtained from the cluster returned values if a cluster has been created before the first container.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n**AWS ONLY:**\n"},"errorMessage":{"type":"string","description":"When `\"status\" : \"FAILED\"`, Atlas provides a description of the error.\n"},"errorState":{"type":"string","description":"Description of the Atlas error when \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e is `Failed`, Otherwise, Atlas returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e.\n"},"errorStateName":{"type":"string","description":"Error state, if any. The VPC peering connection error state value can be one of the following: `REJECTED`, `EXPIRED`, `INVALID_ARGUMENT`.\n"},"gcpProjectId":{"type":"string","description":"GCP project ID of the owner of the network peer.\n"},"networkName":{"type":"string","description":"Name of the network peer to which Atlas connects.\n\n**AZURE ONLY:**\n"},"peerId":{"type":"string","description":"Unique identifier of the Atlas network peer.\n"},"projectId":{"type":"string","description":"The unique ID for the MongoDB Atlas project.\n"},"providerName":{"type":"string","description":"Cloud provider to whom the peering connection is being made. (Possible Values `AWS`, `AZURE`, `GCP`).\n"},"resourceGroupName":{"type":"string","description":"Name of your Azure resource group.\n"},"routeTableCidrBlock":{"type":"string","description":"AWS VPC CIDR block or subnet.\n\n**GCP ONLY:**\n"},"status":{"type":"string","description":"Status of the Atlas network peering connection.  Azure/GCP: `ADDING_PEER`, `AVAILABLE`, `FAILED`, `DELETING` GCP Only:  `WAITING_FOR_USER`.\n"},"statusName":{"type":"string","description":"(AWS Only) The VPC peering connection status value can be one of the following: `INITIATING`, `PENDING_ACCEPTANCE`, `FAILED`, `FINALIZING`, `AVAILABLE`, `TERMINATING`.\n"},"vnetName":{"type":"string","description":"Name of your Azure VNet.\n"},"vpcId":{"type":"string","description":"Unique identifier of the AWS peer VPC (Note: this is **not** the same as the Atlas AWS VPC that is returned by the\u003cspan pulumi-lang-nodejs=\" networkContainer \" pulumi-lang-dotnet=\" NetworkContainer \" pulumi-lang-go=\" networkContainer \" pulumi-lang-python=\" network_container \" pulumi-lang-yaml=\" networkContainer \" pulumi-lang-java=\" networkContainer \"\u003e network_container \u003c/span\u003eresource).\n"}},"required":["accepterRegionName","atlasCidrBlock","atlasGcpProjectId","atlasId","atlasVpcName","awsAccountId","azureDirectoryId","azureSubscriptionId","connectionId","containerId","errorMessage","errorState","errorStateName","gcpProjectId","networkName","peerId","projectId","providerName","resourceGroupName","routeTableCidrBlock","status","statusName","vnetName","vpcId"],"inputProperties":{"accepterRegionName":{"type":"string","description":"Specifies the AWS region where the peer VPC resides. For complete lists of supported regions, see [Amazon Web Services](https://docs.atlas.mongodb.com/reference/amazon-aws/).\n"},"atlasCidrBlock":{"type":"string","willReplaceOnChanges":true},"atlasGcpProjectId":{"type":"string","description":"The Atlas GCP Project ID for the GCP VPC used by your atlas cluster that is needed to set up the reciprocal connection.\n"},"atlasVpcName":{"type":"string","description":"Name of the GCP VPC used by your atlas cluster that is needed to set up the reciprocal connection.\n"},"awsAccountId":{"type":"string","description":"AWS Account ID of the owner of the peer VPC.\n"},"azureDirectoryId":{"type":"string","description":"Unique identifier for an Azure AD directory.\n","willReplaceOnChanges":true},"azureSubscriptionId":{"type":"string","description":"Unique identifier of the Azure subscription in which the VNet resides.\n","willReplaceOnChanges":true},"containerId":{"type":"string","description":"Unique identifier of the MongoDB Atlas container for the provider (GCP) or provider/region (AWS, AZURE). You can create an MongoDB Atlas container using the\u003cspan pulumi-lang-nodejs=\" networkContainer \" pulumi-lang-dotnet=\" NetworkContainer \" pulumi-lang-go=\" networkContainer \" pulumi-lang-python=\" network_container \" pulumi-lang-yaml=\" networkContainer \" pulumi-lang-java=\" networkContainer \"\u003e network_container \u003c/span\u003eresource or it can be obtained from the cluster returned values if a cluster has been created before the first container.\n","willReplaceOnChanges":true},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n**AWS ONLY:**\n"},"gcpProjectId":{"type":"string","description":"GCP project ID of the owner of the network peer.\n","willReplaceOnChanges":true},"networkName":{"type":"string","description":"Name of the network peer to which Atlas connects.\n\n**AZURE ONLY:**\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The unique ID for the MongoDB Atlas project.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Cloud provider to whom the peering connection is being made. (Possible Values `AWS`, `AZURE`, `GCP`).\n"},"resourceGroupName":{"type":"string","description":"Name of your Azure resource group.\n","willReplaceOnChanges":true},"routeTableCidrBlock":{"type":"string","description":"AWS VPC CIDR block or subnet.\n\n**GCP ONLY:**\n"},"vnetName":{"type":"string","description":"Name of your Azure VNet.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"Unique identifier of the AWS peer VPC (Note: this is **not** the same as the Atlas AWS VPC that is returned by the\u003cspan pulumi-lang-nodejs=\" networkContainer \" pulumi-lang-dotnet=\" NetworkContainer \" pulumi-lang-go=\" networkContainer \" pulumi-lang-python=\" network_container \" pulumi-lang-yaml=\" networkContainer \" pulumi-lang-java=\" networkContainer \"\u003e network_container \u003c/span\u003eresource).\n","willReplaceOnChanges":true}},"requiredInputs":["containerId","projectId","providerName"],"stateInputs":{"description":"Input properties used for looking up and filtering NetworkPeering resources.\n","properties":{"accepterRegionName":{"type":"string","description":"Specifies the AWS region where the peer VPC resides. For complete lists of supported regions, see [Amazon Web Services](https://docs.atlas.mongodb.com/reference/amazon-aws/).\n"},"atlasCidrBlock":{"type":"string","willReplaceOnChanges":true},"atlasGcpProjectId":{"type":"string","description":"The Atlas GCP Project ID for the GCP VPC used by your atlas cluster that is needed to set up the reciprocal connection.\n"},"atlasId":{"type":"string"},"atlasVpcName":{"type":"string","description":"Name of the GCP VPC used by your atlas cluster that is needed to set up the reciprocal connection.\n"},"awsAccountId":{"type":"string","description":"AWS Account ID of the owner of the peer VPC.\n"},"azureDirectoryId":{"type":"string","description":"Unique identifier for an Azure AD directory.\n","willReplaceOnChanges":true},"azureSubscriptionId":{"type":"string","description":"Unique identifier of the Azure subscription in which the VNet resides.\n","willReplaceOnChanges":true},"connectionId":{"type":"string","description":"Unique identifier of the Atlas network peering container.\n"},"containerId":{"type":"string","description":"Unique identifier of the MongoDB Atlas container for the provider (GCP) or provider/region (AWS, AZURE). You can create an MongoDB Atlas container using the\u003cspan pulumi-lang-nodejs=\" networkContainer \" pulumi-lang-dotnet=\" NetworkContainer \" pulumi-lang-go=\" networkContainer \" pulumi-lang-python=\" network_container \" pulumi-lang-yaml=\" networkContainer \" pulumi-lang-java=\" networkContainer \"\u003e network_container \u003c/span\u003eresource or it can be obtained from the cluster returned values if a cluster has been created before the first container.\n","willReplaceOnChanges":true},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n**AWS ONLY:**\n"},"errorMessage":{"type":"string","description":"When `\"status\" : \"FAILED\"`, Atlas provides a description of the error.\n"},"errorState":{"type":"string","description":"Description of the Atlas error when \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e is `Failed`, Otherwise, Atlas returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e.\n"},"errorStateName":{"type":"string","description":"Error state, if any. The VPC peering connection error state value can be one of the following: `REJECTED`, `EXPIRED`, `INVALID_ARGUMENT`.\n"},"gcpProjectId":{"type":"string","description":"GCP project ID of the owner of the network peer.\n","willReplaceOnChanges":true},"networkName":{"type":"string","description":"Name of the network peer to which Atlas connects.\n\n**AZURE ONLY:**\n","willReplaceOnChanges":true},"peerId":{"type":"string","description":"Unique identifier of the Atlas network peer.\n"},"projectId":{"type":"string","description":"The unique ID for the MongoDB Atlas project.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Cloud provider to whom the peering connection is being made. (Possible Values `AWS`, `AZURE`, `GCP`).\n"},"resourceGroupName":{"type":"string","description":"Name of your Azure resource group.\n","willReplaceOnChanges":true},"routeTableCidrBlock":{"type":"string","description":"AWS VPC CIDR block or subnet.\n\n**GCP ONLY:**\n"},"status":{"type":"string","description":"Status of the Atlas network peering connection.  Azure/GCP: `ADDING_PEER`, `AVAILABLE`, `FAILED`, `DELETING` GCP Only:  `WAITING_FOR_USER`.\n"},"statusName":{"type":"string","description":"(AWS Only) The VPC peering connection status value can be one of the following: `INITIATING`, `PENDING_ACCEPTANCE`, `FAILED`, `FINALIZING`, `AVAILABLE`, `TERMINATING`.\n"},"vnetName":{"type":"string","description":"Name of your Azure VNet.\n","willReplaceOnChanges":true},"vpcId":{"type":"string","description":"Unique identifier of the AWS peer VPC (Note: this is **not** the same as the Atlas AWS VPC that is returned by the\u003cspan pulumi-lang-nodejs=\" networkContainer \" pulumi-lang-dotnet=\" NetworkContainer \" pulumi-lang-go=\" networkContainer \" pulumi-lang-python=\" network_container \" pulumi-lang-yaml=\" networkContainer \" pulumi-lang-java=\" networkContainer \"\u003e network_container \u003c/span\u003eresource).\n","willReplaceOnChanges":true}},"type":"object"}},"mongodbatlas:index/onlineArchive:OnlineArchive":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.OnlineArchive`\" pulumi-lang-dotnet=\"`mongodbatlas.OnlineArchive`\" pulumi-lang-go=\"`OnlineArchive`\" pulumi-lang-python=\"`OnlineArchive`\" pulumi-lang-yaml=\"`mongodbatlas.OnlineArchive`\" pulumi-lang-java=\"`mongodbatlas.OnlineArchive`\"\u003e`mongodbatlas.OnlineArchive`\u003c/span\u003e resource provides access to create, edit, pause and resume an online archive for a collection. \n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\u003e **IMPORTANT:** The collection must exists before performing an online archive.\n\n\u003e **IMPORTANT:** There are fields that are immutable after creation, i.e if \u003cspan pulumi-lang-nodejs=\"`dateField`\" pulumi-lang-dotnet=\"`DateField`\" pulumi-lang-go=\"`dateField`\" pulumi-lang-python=\"`date_field`\" pulumi-lang-yaml=\"`dateField`\" pulumi-lang-java=\"`dateField`\"\u003e`date_field`\u003c/span\u003e value does not exist in the collection, the online archive state will be pending forever, and this field cannot be updated, that means a destroy is required, known error `ONLINE_ARCHIVE_CANNOT_MODIFY_FIELD`\n\n\u003e **IMPORTANT:** Support for Online Archive on `GCP` is available in Private Preview. To request access and participate in the Private Preview release of this feature, complete the [sign-up form](https://www.mongodb.com/products/platform/atlas-online-archive#promo).\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.OnlineArchive(\"test\", {\n    projectId: projectId,\n    clusterName: clusterName,\n    collName: collectionName,\n    dbName: databaseName,\n    partitionFields: [\n        {\n            fieldName: \"dateField\",\n            order: 0,\n        },\n        {\n            fieldName: \"firstName\",\n            order: 1,\n        },\n        {\n            fieldName: \"lastName\",\n            order: 2,\n        },\n    ],\n    criteria: {\n        type: \"DATE\",\n        dateField: \"dateField\",\n        expireAfterDays: 5,\n    },\n    schedule: {\n        type: \"DAILY\",\n        endHour: 1,\n        endMinute: 1,\n        startHour: 1,\n        startMinute: 1,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.OnlineArchive(\"test\",\n    project_id=project_id,\n    cluster_name=cluster_name,\n    coll_name=collection_name,\n    db_name=database_name,\n    partition_fields=[\n        {\n            \"field_name\": \"dateField\",\n            \"order\": 0,\n        },\n        {\n            \"field_name\": \"firstName\",\n            \"order\": 1,\n        },\n        {\n            \"field_name\": \"lastName\",\n            \"order\": 2,\n        },\n    ],\n    criteria={\n        \"type\": \"DATE\",\n        \"date_field\": \"dateField\",\n        \"expire_after_days\": 5,\n    },\n    schedule={\n        \"type\": \"DAILY\",\n        \"end_hour\": 1,\n        \"end_minute\": 1,\n        \"start_hour\": 1,\n        \"start_minute\": 1,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.OnlineArchive(\"test\", new()\n    {\n        ProjectId = projectId,\n        ClusterName = clusterName,\n        CollName = collectionName,\n        DbName = databaseName,\n        PartitionFields = new[]\n        {\n            new Mongodbatlas.Inputs.OnlineArchivePartitionFieldArgs\n            {\n                FieldName = \"dateField\",\n                Order = 0,\n            },\n            new Mongodbatlas.Inputs.OnlineArchivePartitionFieldArgs\n            {\n                FieldName = \"firstName\",\n                Order = 1,\n            },\n            new Mongodbatlas.Inputs.OnlineArchivePartitionFieldArgs\n            {\n                FieldName = \"lastName\",\n                Order = 2,\n            },\n        },\n        Criteria = new Mongodbatlas.Inputs.OnlineArchiveCriteriaArgs\n        {\n            Type = \"DATE\",\n            DateField = \"dateField\",\n            ExpireAfterDays = 5,\n        },\n        Schedule = new Mongodbatlas.Inputs.OnlineArchiveScheduleArgs\n        {\n            Type = \"DAILY\",\n            EndHour = 1,\n            EndMinute = 1,\n            StartHour = 1,\n            StartMinute = 1,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewOnlineArchive(ctx, \"test\", \u0026mongodbatlas.OnlineArchiveArgs{\n\t\t\tProjectId:   pulumi.Any(projectId),\n\t\t\tClusterName: pulumi.Any(clusterName),\n\t\t\tCollName:    pulumi.Any(collectionName),\n\t\t\tDbName:      pulumi.Any(databaseName),\n\t\t\tPartitionFields: mongodbatlas.OnlineArchivePartitionFieldArray{\n\t\t\t\t\u0026mongodbatlas.OnlineArchivePartitionFieldArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"dateField\"),\n\t\t\t\t\tOrder:     pulumi.Int(0),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.OnlineArchivePartitionFieldArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"firstName\"),\n\t\t\t\t\tOrder:     pulumi.Int(1),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.OnlineArchivePartitionFieldArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"lastName\"),\n\t\t\t\t\tOrder:     pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCriteria: \u0026mongodbatlas.OnlineArchiveCriteriaArgs{\n\t\t\t\tType:            pulumi.String(\"DATE\"),\n\t\t\t\tDateField:       pulumi.String(\"dateField\"),\n\t\t\t\tExpireAfterDays: pulumi.Int(5),\n\t\t\t},\n\t\t\tSchedule: \u0026mongodbatlas.OnlineArchiveScheduleArgs{\n\t\t\t\tType:        pulumi.String(\"DAILY\"),\n\t\t\t\tEndHour:     pulumi.Int(1),\n\t\t\t\tEndMinute:   pulumi.Int(1),\n\t\t\t\tStartHour:   pulumi.Int(1),\n\t\t\t\tStartMinute: pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.OnlineArchive;\nimport com.pulumi.mongodbatlas.OnlineArchiveArgs;\nimport com.pulumi.mongodbatlas.inputs.OnlineArchivePartitionFieldArgs;\nimport com.pulumi.mongodbatlas.inputs.OnlineArchiveCriteriaArgs;\nimport com.pulumi.mongodbatlas.inputs.OnlineArchiveScheduleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new OnlineArchive(\"test\", OnlineArchiveArgs.builder()\n            .projectId(projectId)\n            .clusterName(clusterName)\n            .collName(collectionName)\n            .dbName(databaseName)\n            .partitionFields(            \n                OnlineArchivePartitionFieldArgs.builder()\n                    .fieldName(\"dateField\")\n                    .order(0)\n                    .build(),\n                OnlineArchivePartitionFieldArgs.builder()\n                    .fieldName(\"firstName\")\n                    .order(1)\n                    .build(),\n                OnlineArchivePartitionFieldArgs.builder()\n                    .fieldName(\"lastName\")\n                    .order(2)\n                    .build())\n            .criteria(OnlineArchiveCriteriaArgs.builder()\n                .type(\"DATE\")\n                .dateField(\"dateField\")\n                .expireAfterDays(5)\n                .build())\n            .schedule(OnlineArchiveScheduleArgs.builder()\n                .type(\"DAILY\")\n                .endHour(1)\n                .endMinute(1)\n                .startHour(1)\n                .startMinute(1)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:OnlineArchive\n    properties:\n      projectId: ${projectId}\n      clusterName: ${clusterName}\n      collName: ${collectionName}\n      dbName: ${databaseName}\n      partitionFields:\n        - fieldName: dateField\n          order: 0\n        - fieldName: firstName\n          order: 1\n        - fieldName: lastName\n          order: 2\n      criteria:\n        type: DATE\n        dateField: dateField\n        expireAfterDays: 5\n      schedule:\n        type: DAILY\n        endHour: 1\n        endMinute: 1\n        startHour: 1\n        startMinute: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nFor custom criteria example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.OnlineArchive(\"test\", {\n    projectId: projectId,\n    clusterName: clusterName,\n    collName: collectionName,\n    dbName: databaseName,\n    partitionFields: [\n        {\n            fieldName: \"firstName\",\n            order: 0,\n        },\n        {\n            fieldName: \"secondName\",\n            order: 1,\n        },\n    ],\n    criteria: {\n        type: \"CUSTOM\",\n        query: \"{ \\\"department\\\": \\\"engineering\\\" }\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.OnlineArchive(\"test\",\n    project_id=project_id,\n    cluster_name=cluster_name,\n    coll_name=collection_name,\n    db_name=database_name,\n    partition_fields=[\n        {\n            \"field_name\": \"firstName\",\n            \"order\": 0,\n        },\n        {\n            \"field_name\": \"secondName\",\n            \"order\": 1,\n        },\n    ],\n    criteria={\n        \"type\": \"CUSTOM\",\n        \"query\": \"{ \\\"department\\\": \\\"engineering\\\" }\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.OnlineArchive(\"test\", new()\n    {\n        ProjectId = projectId,\n        ClusterName = clusterName,\n        CollName = collectionName,\n        DbName = databaseName,\n        PartitionFields = new[]\n        {\n            new Mongodbatlas.Inputs.OnlineArchivePartitionFieldArgs\n            {\n                FieldName = \"firstName\",\n                Order = 0,\n            },\n            new Mongodbatlas.Inputs.OnlineArchivePartitionFieldArgs\n            {\n                FieldName = \"secondName\",\n                Order = 1,\n            },\n        },\n        Criteria = new Mongodbatlas.Inputs.OnlineArchiveCriteriaArgs\n        {\n            Type = \"CUSTOM\",\n            Query = \"{ \\\"department\\\": \\\"engineering\\\" }\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewOnlineArchive(ctx, \"test\", \u0026mongodbatlas.OnlineArchiveArgs{\n\t\t\tProjectId:   pulumi.Any(projectId),\n\t\t\tClusterName: pulumi.Any(clusterName),\n\t\t\tCollName:    pulumi.Any(collectionName),\n\t\t\tDbName:      pulumi.Any(databaseName),\n\t\t\tPartitionFields: mongodbatlas.OnlineArchivePartitionFieldArray{\n\t\t\t\t\u0026mongodbatlas.OnlineArchivePartitionFieldArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"firstName\"),\n\t\t\t\t\tOrder:     pulumi.Int(0),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.OnlineArchivePartitionFieldArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"secondName\"),\n\t\t\t\t\tOrder:     pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCriteria: \u0026mongodbatlas.OnlineArchiveCriteriaArgs{\n\t\t\t\tType:  pulumi.String(\"CUSTOM\"),\n\t\t\t\tQuery: pulumi.String(\"{ \\\"department\\\": \\\"engineering\\\" }\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.OnlineArchive;\nimport com.pulumi.mongodbatlas.OnlineArchiveArgs;\nimport com.pulumi.mongodbatlas.inputs.OnlineArchivePartitionFieldArgs;\nimport com.pulumi.mongodbatlas.inputs.OnlineArchiveCriteriaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new OnlineArchive(\"test\", OnlineArchiveArgs.builder()\n            .projectId(projectId)\n            .clusterName(clusterName)\n            .collName(collectionName)\n            .dbName(databaseName)\n            .partitionFields(            \n                OnlineArchivePartitionFieldArgs.builder()\n                    .fieldName(\"firstName\")\n                    .order(0)\n                    .build(),\n                OnlineArchivePartitionFieldArgs.builder()\n                    .fieldName(\"secondName\")\n                    .order(1)\n                    .build())\n            .criteria(OnlineArchiveCriteriaArgs.builder()\n                .type(\"CUSTOM\")\n                .query(\"{ \\\"department\\\": \\\"engineering\\\" }\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:OnlineArchive\n    properties:\n      projectId: ${projectId}\n      clusterName: ${clusterName}\n      collName: ${collectionName}\n      dbName: ${databaseName}\n      partitionFields:\n        - fieldName: firstName\n          order: 0\n        - fieldName: secondName\n          order: 1\n      criteria:\n        type: CUSTOM\n        query: '{ \"department\": \"engineering\" }'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nDefining custom provider and region example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.OnlineArchive(\"test\", {\n    projectId: projectId,\n    clusterName: clusterName,\n    collName: collectionName,\n    dbName: databaseName,\n    dataProcessRegion: {\n        cloudProvider: \"AZURE\",\n        region: \"US_EAST_2\",\n    },\n    partitionFields: [{\n        fieldName: \"firstName\",\n        order: 0,\n    }],\n    criteria: {\n        type: \"CUSTOM\",\n        query: \"{ \\\"department\\\": \\\"engineering\\\" }\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.OnlineArchive(\"test\",\n    project_id=project_id,\n    cluster_name=cluster_name,\n    coll_name=collection_name,\n    db_name=database_name,\n    data_process_region={\n        \"cloud_provider\": \"AZURE\",\n        \"region\": \"US_EAST_2\",\n    },\n    partition_fields=[{\n        \"field_name\": \"firstName\",\n        \"order\": 0,\n    }],\n    criteria={\n        \"type\": \"CUSTOM\",\n        \"query\": \"{ \\\"department\\\": \\\"engineering\\\" }\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.OnlineArchive(\"test\", new()\n    {\n        ProjectId = projectId,\n        ClusterName = clusterName,\n        CollName = collectionName,\n        DbName = databaseName,\n        DataProcessRegion = new Mongodbatlas.Inputs.OnlineArchiveDataProcessRegionArgs\n        {\n            CloudProvider = \"AZURE\",\n            Region = \"US_EAST_2\",\n        },\n        PartitionFields = new[]\n        {\n            new Mongodbatlas.Inputs.OnlineArchivePartitionFieldArgs\n            {\n                FieldName = \"firstName\",\n                Order = 0,\n            },\n        },\n        Criteria = new Mongodbatlas.Inputs.OnlineArchiveCriteriaArgs\n        {\n            Type = \"CUSTOM\",\n            Query = \"{ \\\"department\\\": \\\"engineering\\\" }\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewOnlineArchive(ctx, \"test\", \u0026mongodbatlas.OnlineArchiveArgs{\n\t\t\tProjectId:   pulumi.Any(projectId),\n\t\t\tClusterName: pulumi.Any(clusterName),\n\t\t\tCollName:    pulumi.Any(collectionName),\n\t\t\tDbName:      pulumi.Any(databaseName),\n\t\t\tDataProcessRegion: \u0026mongodbatlas.OnlineArchiveDataProcessRegionArgs{\n\t\t\t\tCloudProvider: pulumi.String(\"AZURE\"),\n\t\t\t\tRegion:        pulumi.String(\"US_EAST_2\"),\n\t\t\t},\n\t\t\tPartitionFields: mongodbatlas.OnlineArchivePartitionFieldArray{\n\t\t\t\t\u0026mongodbatlas.OnlineArchivePartitionFieldArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"firstName\"),\n\t\t\t\t\tOrder:     pulumi.Int(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCriteria: \u0026mongodbatlas.OnlineArchiveCriteriaArgs{\n\t\t\t\tType:  pulumi.String(\"CUSTOM\"),\n\t\t\t\tQuery: pulumi.String(\"{ \\\"department\\\": \\\"engineering\\\" }\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.OnlineArchive;\nimport com.pulumi.mongodbatlas.OnlineArchiveArgs;\nimport com.pulumi.mongodbatlas.inputs.OnlineArchiveDataProcessRegionArgs;\nimport com.pulumi.mongodbatlas.inputs.OnlineArchivePartitionFieldArgs;\nimport com.pulumi.mongodbatlas.inputs.OnlineArchiveCriteriaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new OnlineArchive(\"test\", OnlineArchiveArgs.builder()\n            .projectId(projectId)\n            .clusterName(clusterName)\n            .collName(collectionName)\n            .dbName(databaseName)\n            .dataProcessRegion(OnlineArchiveDataProcessRegionArgs.builder()\n                .cloudProvider(\"AZURE\")\n                .region(\"US_EAST_2\")\n                .build())\n            .partitionFields(OnlineArchivePartitionFieldArgs.builder()\n                .fieldName(\"firstName\")\n                .order(0)\n                .build())\n            .criteria(OnlineArchiveCriteriaArgs.builder()\n                .type(\"CUSTOM\")\n                .query(\"{ \\\"department\\\": \\\"engineering\\\" }\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:OnlineArchive\n    properties:\n      projectId: ${projectId}\n      clusterName: ${clusterName}\n      collName: ${collectionName}\n      dbName: ${databaseName}\n      dataProcessRegion:\n        cloudProvider: AZURE\n        region: US_EAST_2\n      partitionFields:\n        - fieldName: firstName\n          order: 0\n      criteria:\n        type: CUSTOM\n        query: '{ \"department\": \"engineering\" }'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Further Examples\n- Online Archive Example\n\n## Import \n\n```bash\nterraform import mongodbatlas_online_archive.users_archive \u003cproject_id\u003e-\u003ccluster_name\u003e-\u003carchive_id\u003e\n```\n\nSee [MongoDB Atlas API](https://docs.atlas.mongodb.com/reference/api/online-archive-create-one/) Documentation for more information.\n","properties":{"archiveId":{"type":"string","description":"ID of the online archive.\n"},"clusterName":{"type":"string","description":"Name of the cluster that contains the collection.\n"},"collName":{"type":"string","description":"Name of the collection.\n"},"collectionType":{"type":"string","description":"Type of MongoDB collection that you want to return. This value can be \"TIMESERIES\" or \"STANDARD\". Default is \"STANDARD\".\n"},"criteria":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveCriteria:OnlineArchiveCriteria","description":"Criteria to use for archiving data. See criteria.\n"},"dataExpirationRule":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveDataExpirationRule:OnlineArchiveDataExpirationRule","description":"Rule for specifying when data should be deleted from the archive. See data expiration rule.\n"},"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveDataProcessRegion:OnlineArchiveDataProcessRegion","description":"Settings to configure the region where you wish to store your archived data. See data process region. This field is immutable hence cannot be updated.\n"},"dbName":{"type":"string","description":"Name of the database that contains the collection.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"partitionFields":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/OnlineArchivePartitionField:OnlineArchivePartitionField"},"description":"Fields to use to partition data. You can specify up to two frequently queried fields (or up to three fields when one of them is \u003cspan pulumi-lang-nodejs=\"`dateField`\" pulumi-lang-dotnet=\"`DateField`\" pulumi-lang-go=\"`dateField`\" pulumi-lang-python=\"`date_field`\" pulumi-lang-yaml=\"`dateField`\" pulumi-lang-java=\"`dateField`\"\u003e`date_field`\u003c/span\u003e) to use for partitioning data. Queries that don’t contain the specified fields require a full collection scan of all archived documents, which takes longer and increases your costs. To learn more about how partition improves query performance, see [Data Structure in S3](https://www.mongodb.com/docs/atlas/data-federation/admin/optimize-query-performance/#data-structure-in-s3). The value of a partition field can be up to a maximum of 700 characters. Documents with values exceeding 700 characters are not archived. See partition fields.\n"},"paused":{"type":"boolean","description":"State of the online archive. This is required for pausing an active online archive or resuming a paused online archive. If the collection has another active online archive, the resume request fails.\n"},"projectId":{"type":"string","description":"The unique ID for the project\n"},"schedule":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveSchedule:OnlineArchiveSchedule","description":"Regular frequency and duration when archiving process occurs. See schedule.\n"},"state":{"type":"string","description":"Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted\n"},"syncCreation":{"type":"boolean","description":"Flag that indicates whether the provider will wait for the state of the online archive to reach `IDLE` or `ACTIVE` when creating an online archive. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"required":["archiveId","clusterName","collName","collectionType","criteria","dataProcessRegion","dbName","partitionFields","paused","projectId","state"],"inputProperties":{"clusterName":{"type":"string","description":"Name of the cluster that contains the collection.\n","willReplaceOnChanges":true},"collName":{"type":"string","description":"Name of the collection.\n"},"collectionType":{"type":"string","description":"Type of MongoDB collection that you want to return. This value can be \"TIMESERIES\" or \"STANDARD\". Default is \"STANDARD\".\n"},"criteria":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveCriteria:OnlineArchiveCriteria","description":"Criteria to use for archiving data. See criteria.\n"},"dataExpirationRule":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveDataExpirationRule:OnlineArchiveDataExpirationRule","description":"Rule for specifying when data should be deleted from the archive. See data expiration rule.\n"},"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveDataProcessRegion:OnlineArchiveDataProcessRegion","description":"Settings to configure the region where you wish to store your archived data. See data process region. This field is immutable hence cannot be updated.\n"},"dbName":{"type":"string","description":"Name of the database that contains the collection.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"partitionFields":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/OnlineArchivePartitionField:OnlineArchivePartitionField"},"description":"Fields to use to partition data. You can specify up to two frequently queried fields (or up to three fields when one of them is \u003cspan pulumi-lang-nodejs=\"`dateField`\" pulumi-lang-dotnet=\"`DateField`\" pulumi-lang-go=\"`dateField`\" pulumi-lang-python=\"`date_field`\" pulumi-lang-yaml=\"`dateField`\" pulumi-lang-java=\"`dateField`\"\u003e`date_field`\u003c/span\u003e) to use for partitioning data. Queries that don’t contain the specified fields require a full collection scan of all archived documents, which takes longer and increases your costs. To learn more about how partition improves query performance, see [Data Structure in S3](https://www.mongodb.com/docs/atlas/data-federation/admin/optimize-query-performance/#data-structure-in-s3). The value of a partition field can be up to a maximum of 700 characters. Documents with values exceeding 700 characters are not archived. See partition fields.\n"},"paused":{"type":"boolean","description":"State of the online archive. This is required for pausing an active online archive or resuming a paused online archive. If the collection has another active online archive, the resume request fails.\n"},"projectId":{"type":"string","description":"The unique ID for the project\n","willReplaceOnChanges":true},"schedule":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveSchedule:OnlineArchiveSchedule","description":"Regular frequency and duration when archiving process occurs. See schedule.\n"},"syncCreation":{"type":"boolean","description":"Flag that indicates whether the provider will wait for the state of the online archive to reach `IDLE` or `ACTIVE` when creating an online archive. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"requiredInputs":["clusterName","collName","criteria","dbName","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering OnlineArchive resources.\n","properties":{"archiveId":{"type":"string","description":"ID of the online archive.\n"},"clusterName":{"type":"string","description":"Name of the cluster that contains the collection.\n","willReplaceOnChanges":true},"collName":{"type":"string","description":"Name of the collection.\n"},"collectionType":{"type":"string","description":"Type of MongoDB collection that you want to return. This value can be \"TIMESERIES\" or \"STANDARD\". Default is \"STANDARD\".\n"},"criteria":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveCriteria:OnlineArchiveCriteria","description":"Criteria to use for archiving data. See criteria.\n"},"dataExpirationRule":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveDataExpirationRule:OnlineArchiveDataExpirationRule","description":"Rule for specifying when data should be deleted from the archive. See data expiration rule.\n"},"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveDataProcessRegion:OnlineArchiveDataProcessRegion","description":"Settings to configure the region where you wish to store your archived data. See data process region. This field is immutable hence cannot be updated.\n"},"dbName":{"type":"string","description":"Name of the database that contains the collection.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"partitionFields":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/OnlineArchivePartitionField:OnlineArchivePartitionField"},"description":"Fields to use to partition data. You can specify up to two frequently queried fields (or up to three fields when one of them is \u003cspan pulumi-lang-nodejs=\"`dateField`\" pulumi-lang-dotnet=\"`DateField`\" pulumi-lang-go=\"`dateField`\" pulumi-lang-python=\"`date_field`\" pulumi-lang-yaml=\"`dateField`\" pulumi-lang-java=\"`dateField`\"\u003e`date_field`\u003c/span\u003e) to use for partitioning data. Queries that don’t contain the specified fields require a full collection scan of all archived documents, which takes longer and increases your costs. To learn more about how partition improves query performance, see [Data Structure in S3](https://www.mongodb.com/docs/atlas/data-federation/admin/optimize-query-performance/#data-structure-in-s3). The value of a partition field can be up to a maximum of 700 characters. Documents with values exceeding 700 characters are not archived. See partition fields.\n"},"paused":{"type":"boolean","description":"State of the online archive. This is required for pausing an active online archive or resuming a paused online archive. If the collection has another active online archive, the resume request fails.\n"},"projectId":{"type":"string","description":"The unique ID for the project\n","willReplaceOnChanges":true},"schedule":{"$ref":"#/types/mongodbatlas:index/OnlineArchiveSchedule:OnlineArchiveSchedule","description":"Regular frequency and duration when archiving process occurs. See schedule.\n"},"state":{"type":"string","description":"Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted\n"},"syncCreation":{"type":"boolean","description":"Flag that indicates whether the provider will wait for the state of the online archive to reach `IDLE` or `ACTIVE` when creating an online archive. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"}},"mongodbatlas:index/orgInvitation:OrgInvitation":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.OrgInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.OrgInvitation`\" pulumi-lang-go=\"`OrgInvitation`\" pulumi-lang-python=\"`OrgInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.OrgInvitation`\" pulumi-lang-java=\"`mongodbatlas.OrgInvitation`\"\u003e`mongodbatlas.OrgInvitation`\u003c/span\u003e invites a user to join an Atlas organization.\n\n\u003e **DEPRECATION:** This resource is deprecated. Migrate to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-go=\"`CloudUserOrgAssignment`\" pulumi-lang-python=\"`CloudUserOrgAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserOrgAssignment`\"\u003e`mongodbatlas.CloudUserOrgAssignment`\u003c/span\u003e for managing organization membership. See the Org Invitation to Cloud User Org Assignment Migration Guide.\n\nEach invitation for an Atlas user includes roles that Atlas grants the user when they accept the invitation.\n\nThe [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles a user can have.\n\n\u003e **IMPORTANT:** This resource is only for managing invitations, not for managing the Atlas User being invited. Possible provider behavior depending on the invitee's action:\n* If the user has not yet accepted the invitation, the provider leaves the invitation as is.\n* If the user has accepted the invitation and is now an organization member, the provider will remove the invitation from the Terraform state.  The invitation must then be removed from the Terraform resource configuration.\n* If the user accepts the invitation and then leaves the organization, the provider will re-add the invitation if the resource definition is not removed from the Terraform configuration.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test0 = new mongodbatlas.OrgInvitation(\"test0\", {\n    username: \"test0-acc-username\",\n    orgId: \"\u003cORG_ID\u003e\",\n    roles: [\"ORG_OWNER\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest0 = mongodbatlas.OrgInvitation(\"test0\",\n    username=\"test0-acc-username\",\n    org_id=\"\u003cORG_ID\u003e\",\n    roles=[\"ORG_OWNER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test0 = new Mongodbatlas.OrgInvitation(\"test0\", new()\n    {\n        Username = \"test0-acc-username\",\n        OrgId = \"\u003cORG_ID\u003e\",\n        Roles = new[]\n        {\n            \"ORG_OWNER\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewOrgInvitation(ctx, \"test0\", \u0026mongodbatlas.OrgInvitationArgs{\n\t\t\tUsername: pulumi.String(\"test0-acc-username\"),\n\t\t\tOrgId:    pulumi.String(\"\u003cORG_ID\u003e\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_OWNER\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.OrgInvitation;\nimport com.pulumi.mongodbatlas.OrgInvitationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test0 = new OrgInvitation(\"test0\", OrgInvitationArgs.builder()\n            .username(\"test0-acc-username\")\n            .orgId(\"\u003cORG_ID\u003e\")\n            .roles(\"ORG_OWNER\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test0:\n    type: mongodbatlas:OrgInvitation\n    properties:\n      username: test0-acc-username\n      orgId: \u003cORG_ID\u003e\n      roles:\n        - ORG_OWNER\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test0 = new mongodbatlas.OrgInvitation(\"test0\", {\n    username: \"test0-acc-username\",\n    orgId: \"\u003cORG_ID\u003e\",\n    roles: [\n        \"ORG_MEMBER\",\n        \"ORG_BILLING_ADMIN\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest0 = mongodbatlas.OrgInvitation(\"test0\",\n    username=\"test0-acc-username\",\n    org_id=\"\u003cORG_ID\u003e\",\n    roles=[\n        \"ORG_MEMBER\",\n        \"ORG_BILLING_ADMIN\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test0 = new Mongodbatlas.OrgInvitation(\"test0\", new()\n    {\n        Username = \"test0-acc-username\",\n        OrgId = \"\u003cORG_ID\u003e\",\n        Roles = new[]\n        {\n            \"ORG_MEMBER\",\n            \"ORG_BILLING_ADMIN\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewOrgInvitation(ctx, \"test0\", \u0026mongodbatlas.OrgInvitationArgs{\n\t\t\tUsername: pulumi.String(\"test0-acc-username\"),\n\t\t\tOrgId:    pulumi.String(\"\u003cORG_ID\u003e\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_MEMBER\"),\n\t\t\t\tpulumi.String(\"ORG_BILLING_ADMIN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.OrgInvitation;\nimport com.pulumi.mongodbatlas.OrgInvitationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test0 = new OrgInvitation(\"test0\", OrgInvitationArgs.builder()\n            .username(\"test0-acc-username\")\n            .orgId(\"\u003cORG_ID\u003e\")\n            .roles(            \n                \"ORG_MEMBER\",\n                \"ORG_BILLING_ADMIN\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test0:\n    type: mongodbatlas:OrgInvitation\n    properties:\n      username: test0-acc-username\n      orgId: \u003cORG_ID\u003e\n      roles:\n        - ORG_MEMBER\n        - ORG_BILLING_ADMIN\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test1 = new mongodbatlas.OrgInvitation(\"test1\", {\n    username: \"test1-acc-username\",\n    orgId: \"\u003cORG_ID\u003e\",\n    teamsIds: [\n        \"\u003cTEAM-0-ID\u003e\",\n        \"\u003cTEAM-1-ID\u003e\",\n    ],\n    roles: [\"ORG_MEMBER\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest1 = mongodbatlas.OrgInvitation(\"test1\",\n    username=\"test1-acc-username\",\n    org_id=\"\u003cORG_ID\u003e\",\n    teams_ids=[\n        \"\u003cTEAM-0-ID\u003e\",\n        \"\u003cTEAM-1-ID\u003e\",\n    ],\n    roles=[\"ORG_MEMBER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test1 = new Mongodbatlas.OrgInvitation(\"test1\", new()\n    {\n        Username = \"test1-acc-username\",\n        OrgId = \"\u003cORG_ID\u003e\",\n        TeamsIds = new[]\n        {\n            \"\u003cTEAM-0-ID\u003e\",\n            \"\u003cTEAM-1-ID\u003e\",\n        },\n        Roles = new[]\n        {\n            \"ORG_MEMBER\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewOrgInvitation(ctx, \"test1\", \u0026mongodbatlas.OrgInvitationArgs{\n\t\t\tUsername: pulumi.String(\"test1-acc-username\"),\n\t\t\tOrgId:    pulumi.String(\"\u003cORG_ID\u003e\"),\n\t\t\tTeamsIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"\u003cTEAM-0-ID\u003e\"),\n\t\t\t\tpulumi.String(\"\u003cTEAM-1-ID\u003e\"),\n\t\t\t},\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_MEMBER\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.OrgInvitation;\nimport com.pulumi.mongodbatlas.OrgInvitationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test1 = new OrgInvitation(\"test1\", OrgInvitationArgs.builder()\n            .username(\"test1-acc-username\")\n            .orgId(\"\u003cORG_ID\u003e\")\n            .teamsIds(            \n                \"\u003cTEAM-0-ID\u003e\",\n                \"\u003cTEAM-1-ID\u003e\")\n            .roles(\"ORG_MEMBER\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test1:\n    type: mongodbatlas:OrgInvitation\n    properties:\n      username: test1-acc-username\n      orgId: \u003cORG_ID\u003e\n      teamsIds:\n        - \u003cTEAM-0-ID\u003e\n        - \u003cTEAM-1-ID\u003e\n      roles:\n        - ORG_MEMBER\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Migrate Org Invitation to Cloud User Org Assignment\n\n## Import\n\n\u003e **IMPORTANT:**\nAn organization invitation can **not** be imported once it has been accepted.\n\nImport a user's invitation to an organization by separating the \u003cspan pulumi-lang-nodejs=\"`orgId`\" pulumi-lang-dotnet=\"`OrgId`\" pulumi-lang-go=\"`orgId`\" pulumi-lang-python=\"`org_id`\" pulumi-lang-yaml=\"`orgId`\" pulumi-lang-java=\"`orgId`\"\u003e`org_id`\u003c/span\u003e and the \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e with a hyphen:\n\n\n```sh\n$ pulumi import mongodbatlas:index/orgInvitation:OrgInvitation my_user 1112222b3bf99403840e8934-my_user@mongodb.com\n```\n\n","properties":{"createdAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when Atlas sent the invitation.\n"},"expiresAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the invitation expires. Users have 30 days to accept an invitation.\n"},"invitationId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the invitation in Atlas.\n"},"inviterUsername":{"type":"string","description":"Atlas user who invited \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e to the organization.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization to which you want to invite a user.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"Atlas roles to assign to the invited user. If the user accepts the invitation, Atlas assigns these roles to them. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles a user can have.\n"},"teamsIds":{"type":"array","items":{"type":"string"},"description":"An array of unique 24-hexadecimal digit strings that identify the teams that the user was invited to join.\n"},"username":{"type":"string","description":"Email address of the invited user. This is the address to which Atlas sends the invite. If the user accepts the invitation, they log in to Atlas with this username.\n"}},"required":["createdAt","expiresAt","invitationId","inviterUsername","orgId","roles","teamsIds","username"],"inputProperties":{"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization to which you want to invite a user.\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"type":"string"},"description":"Atlas roles to assign to the invited user. If the user accepts the invitation, Atlas assigns these roles to them. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles a user can have.\n"},"teamsIds":{"type":"array","items":{"type":"string"},"description":"An array of unique 24-hexadecimal digit strings that identify the teams that the user was invited to join.\n"},"username":{"type":"string","description":"Email address of the invited user. This is the address to which Atlas sends the invite. If the user accepts the invitation, they log in to Atlas with this username.\n","willReplaceOnChanges":true}},"requiredInputs":["orgId","roles","username"],"stateInputs":{"description":"Input properties used for looking up and filtering OrgInvitation resources.\n","properties":{"createdAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when Atlas sent the invitation.\n"},"expiresAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the invitation expires. Users have 30 days to accept an invitation.\n"},"invitationId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the invitation in Atlas.\n"},"inviterUsername":{"type":"string","description":"Atlas user who invited \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e to the organization.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization to which you want to invite a user.\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"type":"string"},"description":"Atlas roles to assign to the invited user. If the user accepts the invitation, Atlas assigns these roles to them. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles a user can have.\n"},"teamsIds":{"type":"array","items":{"type":"string"},"description":"An array of unique 24-hexadecimal digit strings that identify the teams that the user was invited to join.\n"},"username":{"type":"string","description":"Email address of the invited user. This is the address to which Atlas sends the invite. If the user accepts the invitation, they log in to Atlas with this username.\n","willReplaceOnChanges":true}},"type":"object"}},"mongodbatlas:index/organization:Organization":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Organization`\" pulumi-lang-dotnet=\"`mongodbatlas.Organization`\" pulumi-lang-go=\"`Organization`\" pulumi-lang-python=\"`Organization`\" pulumi-lang-yaml=\"`mongodbatlas.Organization`\" pulumi-lang-java=\"`mongodbatlas.Organization`\"\u003e`mongodbatlas.Organization`\u003c/span\u003e provides programmatic management (including creation) of a MongoDB Atlas Organization resource.\n\n\u003e **IMPORTANT NOTE:**  When you establish an Atlas organization using this resource, it automatically generates a set of initial credentials. Defining \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`roleNames`\" pulumi-lang-dotnet=\"`RoleNames`\" pulumi-lang-go=\"`roleNames`\" pulumi-lang-python=\"`role_names`\" pulumi-lang-yaml=\"`roleNames`\" pulumi-lang-java=\"`roleNames`\"\u003e`role_names`\u003c/span\u003e creates a Programmatic API Key (public and private key) — in this case, \u003cspan pulumi-lang-nodejs=\"`roleNames`\" pulumi-lang-dotnet=\"`RoleNames`\" pulumi-lang-go=\"`roleNames`\" pulumi-lang-python=\"`role_names`\" pulumi-lang-yaml=\"`roleNames`\" pulumi-lang-java=\"`roleNames`\"\u003e`role_names`\u003c/span\u003e must have the ORG_OWNER role specified. Defining a \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e block creates a Service Account (client ID and client secret) instead. The API does not allow creating both in the same request. These credential values are stored in the Terraform state and used by the resource for subsequent operations on the organization.\n\n\u003e **IMPORTANT NOTE:** To use this resource, the requesting API Key must have the Organization Owner role. The requesting API Key's organization must be a paying organization. To learn more, see Configure a Paying Organization in the MongoDB Atlas documentation.\n\n## Example Usage\n\n### With Programmatic API Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.Organization(\"this\", {\n    orgOwnerId: \"\u003cORG_OWNER_ID\u003e\",\n    name: \"testCreateORG\",\n    description: \"test API key from Org Creation\",\n    roleNames: [\"ORG_OWNER\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.Organization(\"this\",\n    org_owner_id=\"\u003cORG_OWNER_ID\u003e\",\n    name=\"testCreateORG\",\n    description=\"test API key from Org Creation\",\n    role_names=[\"ORG_OWNER\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.Organization(\"this\", new()\n    {\n        OrgOwnerId = \"\u003cORG_OWNER_ID\u003e\",\n        Name = \"testCreateORG\",\n        Description = \"test API key from Org Creation\",\n        RoleNames = new[]\n        {\n            \"ORG_OWNER\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewOrganization(ctx, \"this\", \u0026mongodbatlas.OrganizationArgs{\n\t\t\tOrgOwnerId:  pulumi.String(\"\u003cORG_OWNER_ID\u003e\"),\n\t\t\tName:        pulumi.String(\"testCreateORG\"),\n\t\t\tDescription: pulumi.String(\"test API key from Org Creation\"),\n\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_OWNER\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Organization;\nimport com.pulumi.mongodbatlas.OrganizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new Organization(\"this\", OrganizationArgs.builder()\n            .orgOwnerId(\"\u003cORG_OWNER_ID\u003e\")\n            .name(\"testCreateORG\")\n            .description(\"test API key from Org Creation\")\n            .roleNames(\"ORG_OWNER\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:Organization\n    properties:\n      orgOwnerId: \u003cORG_OWNER_ID\u003e\n      name: testCreateORG\n      description: test API key from Org Creation\n      roleNames:\n        - ORG_OWNER\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nYou can import an existing organization using the organization ID, e.g.:\n\n```sh\n$ pulumi import mongodbatlas:index/organization:Organization this 5d09d6a59ccf6445652a444a\n```\n\n\u003e **IMPORTANT:** When importing an existing organization, you should **NOT** specify the creation-only attributes (\u003cspan pulumi-lang-nodejs=\"`orgOwnerId`\" pulumi-lang-dotnet=\"`OrgOwnerId`\" pulumi-lang-go=\"`orgOwnerId`\" pulumi-lang-python=\"`org_owner_id`\" pulumi-lang-yaml=\"`orgOwnerId`\" pulumi-lang-java=\"`orgOwnerId`\"\u003e`org_owner_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`roleNames`\" pulumi-lang-dotnet=\"`RoleNames`\" pulumi-lang-go=\"`roleNames`\" pulumi-lang-python=\"`role_names`\" pulumi-lang-yaml=\"`roleNames`\" pulumi-lang-java=\"`roleNames`\"\u003e`role_names`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`federationSettingsId`\" pulumi-lang-dotnet=\"`FederationSettingsId`\" pulumi-lang-go=\"`federationSettingsId`\" pulumi-lang-python=\"`federation_settings_id`\" pulumi-lang-yaml=\"`federationSettingsId`\" pulumi-lang-java=\"`federationSettingsId`\"\u003e`federation_settings_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e) in your Terraform configuration.\n\nSee the Guide: Importing MongoDB Atlas Organizations for more information.\n\nFor more information about the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Organization`\" pulumi-lang-dotnet=\"`mongodbatlas.Organization`\" pulumi-lang-go=\"`Organization`\" pulumi-lang-python=\"`Organization`\" pulumi-lang-yaml=\"`mongodbatlas.Organization`\" pulumi-lang-java=\"`mongodbatlas.Organization`\"\u003e`mongodbatlas.Organization`\u003c/span\u003e resource see: [MongoDB Atlas Admin API Organization](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations).\n\n","properties":{"apiAccessListRequired":{"type":"boolean","description":"Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.\n"},"description":{"type":"string","description":"Programmatic API Key description. This attribute is required in creation and can't be updated later.\n\n\u003e **NOTE:** Creating an organization will return a set of credentials that are stored in the Terraform state and used by the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Organization`\" pulumi-lang-dotnet=\"`mongodbatlas.Organization`\" pulumi-lang-go=\"`Organization`\" pulumi-lang-python=\"`Organization`\" pulumi-lang-yaml=\"`mongodbatlas.Organization`\" pulumi-lang-java=\"`mongodbatlas.Organization`\"\u003e`mongodbatlas.Organization`\u003c/span\u003e resource for subsequent operations (read, update, delete) on the new organization. The credentials stored depend on the authentication method used during creation:\n- **Programmatic API Key:** \u003cspan pulumi-lang-nodejs=\"`publicKey`\" pulumi-lang-dotnet=\"`PublicKey`\" pulumi-lang-go=\"`publicKey`\" pulumi-lang-python=\"`public_key`\" pulumi-lang-yaml=\"`publicKey`\" pulumi-lang-java=\"`publicKey`\"\u003e`public_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateKey`\" pulumi-lang-dotnet=\"`PrivateKey`\" pulumi-lang-go=\"`privateKey`\" pulumi-lang-python=\"`private_key`\" pulumi-lang-yaml=\"`privateKey`\" pulumi-lang-java=\"`privateKey`\"\u003e`private_key`\u003c/span\u003e are stored. These credentials do not expire.\n- **Service Account:** `service_account.client_id` and `service_account.secrets.0.secret` are stored. Service Account secrets expire after the configured \u003cspan pulumi-lang-nodejs=\"`secretExpiresAfterHours`\" pulumi-lang-dotnet=\"`SecretExpiresAfterHours`\" pulumi-lang-go=\"`secretExpiresAfterHours`\" pulumi-lang-python=\"`secret_expires_after_hours`\" pulumi-lang-yaml=\"`secretExpiresAfterHours`\" pulumi-lang-java=\"`secretExpiresAfterHours`\"\u003e`secret_expires_after_hours`\u003c/span\u003e period. When the secret expires, the resource automatically falls back to provider-level credentials for subsequent operations.\n- In case of importing the resource, no organization-specific credentials are stored and provider credentials are used instead.\n- Terraform state contains sensitive credential data. Follow Terraform's best practices for sensitive data in state.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federation to link the newly created organization to. If specified, the proposed Organization Owner of the new organization must have the Organization Owner role in an organization associated with the federation. This attribute can't be updated after creation.\n"},"genAiFeaturesEnabled":{"type":"boolean","description":"Flag that indicates whether this organization has access to generative AI features. This setting only applies to Atlas Commercial and defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. With this setting on, Project Owners may be able to enable or disable individual AI features at the project level. To learn more, see https://www.mongodb.com/docs/generative-ai-faq/.\n"},"multiFactorAuthRequired":{"type":"boolean","description":"Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization. To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.\n"},"name":{"type":"string","description":"The name of the organization.\n"},"orgId":{"type":"string","description":"The organization id.\n"},"orgOwnerId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Atlas user that you want to assign the Organization Owner role. This user must be a member of the same organization as the calling API key.  This is only required when authenticating with Programmatic API Keys. [MongoDB Atlas Admin API - Get User By Username](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/MongoDB-Cloud-Users/operation/getUserByUsername). This attribute is required in creation and can't be updated later.\n"},"privateKey":{"type":"string","description":"Private key returned for this organization API key. This key displays unredacted when first created and is stored in the Terraform state file. Used for subsequent resource operations. Only populated when no \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e block is defined.\n","secret":true},"publicKey":{"type":"string","description":"Public API key value set for the specified organization API key. Stored in the Terraform state and used for subsequent resource operations. Only populated when no \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e block is defined.\n","secret":true},"restrictEmployeeAccess":{"type":"boolean","description":"Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission. Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"List of Organization roles that the Programmatic API key needs to have. Ensure that you provide at least one role and ensure all roles are valid for the Organization.  You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles that you can assign to a Programmatic API key. This attribute is required in creation and can't be updated later.\n"},"securityContact":{"type":"string","description":"String that specifies a single email address for the specified organization to receive security-related notifications. Specifying a security contact does not grant them authorization or access to Atlas for security decisions or approvals.\n"},"serviceAccount":{"$ref":"#/types/mongodbatlas:index/OrganizationServiceAccount:OrganizationServiceAccount","description":"Block to create a Service Account instead of a Programmatic API Key when creating the organization. The API does not allow creating both in the same request. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`roleNames`\" pulumi-lang-dotnet=\"`RoleNames`\" pulumi-lang-go=\"`roleNames`\" pulumi-lang-python=\"`role_names`\" pulumi-lang-yaml=\"`roleNames`\" pulumi-lang-java=\"`roleNames`\"\u003e`role_names`\u003c/span\u003e. This block can't be updated after creation. See Service Account.\n"},"skipDefaultAlertsSettings":{"type":"boolean","description":"Flag that indicates whether to prevent Atlas from automatically creating organization-level alerts not explicitly managed through Terraform. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. \n\n\u003e **NOTE:** - If you create an organization with our Terraform provider version \u003e=1.30.0, this field is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e by default.\u003cbr\u003e - If you have an existing organization created with our Terraform provider version \u003c1.30.0, this field might be \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, which is the [API default value](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorganization). To prevent the creation of future default alerts, set this explicitly to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"required":["apiAccessListRequired","multiFactorAuthRequired","name","orgId","privateKey","publicKey","restrictEmployeeAccess","skipDefaultAlertsSettings"],"inputProperties":{"apiAccessListRequired":{"type":"boolean","description":"Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.\n"},"description":{"type":"string","description":"Programmatic API Key description. This attribute is required in creation and can't be updated later.\n\n\u003e **NOTE:** Creating an organization will return a set of credentials that are stored in the Terraform state and used by the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Organization`\" pulumi-lang-dotnet=\"`mongodbatlas.Organization`\" pulumi-lang-go=\"`Organization`\" pulumi-lang-python=\"`Organization`\" pulumi-lang-yaml=\"`mongodbatlas.Organization`\" pulumi-lang-java=\"`mongodbatlas.Organization`\"\u003e`mongodbatlas.Organization`\u003c/span\u003e resource for subsequent operations (read, update, delete) on the new organization. The credentials stored depend on the authentication method used during creation:\n- **Programmatic API Key:** \u003cspan pulumi-lang-nodejs=\"`publicKey`\" pulumi-lang-dotnet=\"`PublicKey`\" pulumi-lang-go=\"`publicKey`\" pulumi-lang-python=\"`public_key`\" pulumi-lang-yaml=\"`publicKey`\" pulumi-lang-java=\"`publicKey`\"\u003e`public_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateKey`\" pulumi-lang-dotnet=\"`PrivateKey`\" pulumi-lang-go=\"`privateKey`\" pulumi-lang-python=\"`private_key`\" pulumi-lang-yaml=\"`privateKey`\" pulumi-lang-java=\"`privateKey`\"\u003e`private_key`\u003c/span\u003e are stored. These credentials do not expire.\n- **Service Account:** `service_account.client_id` and `service_account.secrets.0.secret` are stored. Service Account secrets expire after the configured \u003cspan pulumi-lang-nodejs=\"`secretExpiresAfterHours`\" pulumi-lang-dotnet=\"`SecretExpiresAfterHours`\" pulumi-lang-go=\"`secretExpiresAfterHours`\" pulumi-lang-python=\"`secret_expires_after_hours`\" pulumi-lang-yaml=\"`secretExpiresAfterHours`\" pulumi-lang-java=\"`secretExpiresAfterHours`\"\u003e`secret_expires_after_hours`\u003c/span\u003e period. When the secret expires, the resource automatically falls back to provider-level credentials for subsequent operations.\n- In case of importing the resource, no organization-specific credentials are stored and provider credentials are used instead.\n- Terraform state contains sensitive credential data. Follow Terraform's best practices for sensitive data in state.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federation to link the newly created organization to. If specified, the proposed Organization Owner of the new organization must have the Organization Owner role in an organization associated with the federation. This attribute can't be updated after creation.\n"},"genAiFeaturesEnabled":{"type":"boolean","description":"Flag that indicates whether this organization has access to generative AI features. This setting only applies to Atlas Commercial and defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. With this setting on, Project Owners may be able to enable or disable individual AI features at the project level. To learn more, see https://www.mongodb.com/docs/generative-ai-faq/.\n"},"multiFactorAuthRequired":{"type":"boolean","description":"Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization. To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.\n"},"name":{"type":"string","description":"The name of the organization.\n"},"orgOwnerId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Atlas user that you want to assign the Organization Owner role. This user must be a member of the same organization as the calling API key.  This is only required when authenticating with Programmatic API Keys. [MongoDB Atlas Admin API - Get User By Username](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/MongoDB-Cloud-Users/operation/getUserByUsername). This attribute is required in creation and can't be updated later.\n"},"restrictEmployeeAccess":{"type":"boolean","description":"Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission. Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"List of Organization roles that the Programmatic API key needs to have. Ensure that you provide at least one role and ensure all roles are valid for the Organization.  You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles that you can assign to a Programmatic API key. This attribute is required in creation and can't be updated later.\n"},"securityContact":{"type":"string","description":"String that specifies a single email address for the specified organization to receive security-related notifications. Specifying a security contact does not grant them authorization or access to Atlas for security decisions or approvals.\n"},"serviceAccount":{"$ref":"#/types/mongodbatlas:index/OrganizationServiceAccount:OrganizationServiceAccount","description":"Block to create a Service Account instead of a Programmatic API Key when creating the organization. The API does not allow creating both in the same request. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`roleNames`\" pulumi-lang-dotnet=\"`RoleNames`\" pulumi-lang-go=\"`roleNames`\" pulumi-lang-python=\"`role_names`\" pulumi-lang-yaml=\"`roleNames`\" pulumi-lang-java=\"`roleNames`\"\u003e`role_names`\u003c/span\u003e. This block can't be updated after creation. See Service Account.\n"},"skipDefaultAlertsSettings":{"type":"boolean","description":"Flag that indicates whether to prevent Atlas from automatically creating organization-level alerts not explicitly managed through Terraform. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. \n\n\u003e **NOTE:** - If you create an organization with our Terraform provider version \u003e=1.30.0, this field is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e by default.\u003cbr\u003e - If you have an existing organization created with our Terraform provider version \u003c1.30.0, this field might be \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, which is the [API default value](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorganization). To prevent the creation of future default alerts, set this explicitly to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Organization resources.\n","properties":{"apiAccessListRequired":{"type":"boolean","description":"Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.\n"},"description":{"type":"string","description":"Programmatic API Key description. This attribute is required in creation and can't be updated later.\n\n\u003e **NOTE:** Creating an organization will return a set of credentials that are stored in the Terraform state and used by the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Organization`\" pulumi-lang-dotnet=\"`mongodbatlas.Organization`\" pulumi-lang-go=\"`Organization`\" pulumi-lang-python=\"`Organization`\" pulumi-lang-yaml=\"`mongodbatlas.Organization`\" pulumi-lang-java=\"`mongodbatlas.Organization`\"\u003e`mongodbatlas.Organization`\u003c/span\u003e resource for subsequent operations (read, update, delete) on the new organization. The credentials stored depend on the authentication method used during creation:\n- **Programmatic API Key:** \u003cspan pulumi-lang-nodejs=\"`publicKey`\" pulumi-lang-dotnet=\"`PublicKey`\" pulumi-lang-go=\"`publicKey`\" pulumi-lang-python=\"`public_key`\" pulumi-lang-yaml=\"`publicKey`\" pulumi-lang-java=\"`publicKey`\"\u003e`public_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateKey`\" pulumi-lang-dotnet=\"`PrivateKey`\" pulumi-lang-go=\"`privateKey`\" pulumi-lang-python=\"`private_key`\" pulumi-lang-yaml=\"`privateKey`\" pulumi-lang-java=\"`privateKey`\"\u003e`private_key`\u003c/span\u003e are stored. These credentials do not expire.\n- **Service Account:** `service_account.client_id` and `service_account.secrets.0.secret` are stored. Service Account secrets expire after the configured \u003cspan pulumi-lang-nodejs=\"`secretExpiresAfterHours`\" pulumi-lang-dotnet=\"`SecretExpiresAfterHours`\" pulumi-lang-go=\"`secretExpiresAfterHours`\" pulumi-lang-python=\"`secret_expires_after_hours`\" pulumi-lang-yaml=\"`secretExpiresAfterHours`\" pulumi-lang-java=\"`secretExpiresAfterHours`\"\u003e`secret_expires_after_hours`\u003c/span\u003e period. When the secret expires, the resource automatically falls back to provider-level credentials for subsequent operations.\n- In case of importing the resource, no organization-specific credentials are stored and provider credentials are used instead.\n- Terraform state contains sensitive credential data. Follow Terraform's best practices for sensitive data in state.\n"},"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federation to link the newly created organization to. If specified, the proposed Organization Owner of the new organization must have the Organization Owner role in an organization associated with the federation. This attribute can't be updated after creation.\n"},"genAiFeaturesEnabled":{"type":"boolean","description":"Flag that indicates whether this organization has access to generative AI features. This setting only applies to Atlas Commercial and defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. With this setting on, Project Owners may be able to enable or disable individual AI features at the project level. To learn more, see https://www.mongodb.com/docs/generative-ai-faq/.\n"},"multiFactorAuthRequired":{"type":"boolean","description":"Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization. To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.\n"},"name":{"type":"string","description":"The name of the organization.\n"},"orgId":{"type":"string","description":"The organization id.\n"},"orgOwnerId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Atlas user that you want to assign the Organization Owner role. This user must be a member of the same organization as the calling API key.  This is only required when authenticating with Programmatic API Keys. [MongoDB Atlas Admin API - Get User By Username](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/MongoDB-Cloud-Users/operation/getUserByUsername). This attribute is required in creation and can't be updated later.\n"},"privateKey":{"type":"string","description":"Private key returned for this organization API key. This key displays unredacted when first created and is stored in the Terraform state file. Used for subsequent resource operations. Only populated when no \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e block is defined.\n","secret":true},"publicKey":{"type":"string","description":"Public API key value set for the specified organization API key. Stored in the Terraform state and used for subsequent resource operations. Only populated when no \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e block is defined.\n","secret":true},"restrictEmployeeAccess":{"type":"boolean","description":"Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission. Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"List of Organization roles that the Programmatic API key needs to have. Ensure that you provide at least one role and ensure all roles are valid for the Organization.  You must specify an array even if you are only associating a single role with the Programmatic API key. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles that you can assign to a Programmatic API key. This attribute is required in creation and can't be updated later.\n"},"securityContact":{"type":"string","description":"String that specifies a single email address for the specified organization to receive security-related notifications. Specifying a security contact does not grant them authorization or access to Atlas for security decisions or approvals.\n"},"serviceAccount":{"$ref":"#/types/mongodbatlas:index/OrganizationServiceAccount:OrganizationServiceAccount","description":"Block to create a Service Account instead of a Programmatic API Key when creating the organization. The API does not allow creating both in the same request. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`roleNames`\" pulumi-lang-dotnet=\"`RoleNames`\" pulumi-lang-go=\"`roleNames`\" pulumi-lang-python=\"`role_names`\" pulumi-lang-yaml=\"`roleNames`\" pulumi-lang-java=\"`roleNames`\"\u003e`role_names`\u003c/span\u003e. This block can't be updated after creation. See Service Account.\n"},"skipDefaultAlertsSettings":{"type":"boolean","description":"Flag that indicates whether to prevent Atlas from automatically creating organization-level alerts not explicitly managed through Terraform. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. \n\n\u003e **NOTE:** - If you create an organization with our Terraform provider version \u003e=1.30.0, this field is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e by default.\u003cbr\u003e - If you have an existing organization created with our Terraform provider version \u003c1.30.0, this field might be \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, which is the [API default value](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorganization). To prevent the creation of future default alerts, set this explicitly to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object"}},"mongodbatlas:index/privateEndpointRegionalMode:PrivateEndpointRegionalMode":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateEndpointRegionalMode`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateEndpointRegionalMode`\" pulumi-lang-go=\"`PrivateEndpointRegionalMode`\" pulumi-lang-python=\"`PrivateEndpointRegionalMode`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateEndpointRegionalMode`\" pulumi-lang-java=\"`mongodbatlas.PrivateEndpointRegionalMode`\"\u003e`mongodbatlas.PrivateEndpointRegionalMode`\u003c/span\u003e provides a Private Endpoint Regional Mode resource. This represents a regionalized private endpoint setting for a Project. Enable it to allow region specific private endpoints.\n\n\u003e **IMPORTANT:**You must have one of the following roles to successfully handle the resource: \u003cbr\u003e - Organization Owner \u003cbr\u003e - Project Owner\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\u003e **WARNING:**Your [connection strings](https://www.mongodb.com/docs/atlas/reference/faq/connection-changes/#std-label-connstring-privatelink) to existing multi-region and global sharded clusters change when you enable this setting.  You must update your applications to use the new connection strings. This might cause downtime.\n\n## Import\n\nPrivate Endpoint Regional Mode can be imported using project id in format `{project_id}`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/privateEndpointRegionalMode:PrivateEndpointRegionalMode test 1112222b3bf99403840e8934\n```\n\nSee detailed information for arguments and attributes: **Private Endpoints** [Get Regional Mode](https://www.mongodb.com/docs/atlas/reference/api/private-endpoints-get-regional-mode/) | [Update Regional Mode](https://www.mongodb.com/docs/atlas/reference/api/private-endpoints-update-regional-mode/)\n\n","properties":{"enabled":{"type":"boolean","description":"Flag that indicates whether the regionalized private endpoint setting is enabled for the project.   Set this value to true to create more than one private endpoint in a cloud provider region to connect to multi-region and global Atlas sharded clusters. You can enable this setting only if your Atlas project contains no replica sets. You can't disable this setting if you have:\n* More than one private endpoint in more than one region, or\n* More than one private endpoint in one region and one private endpoint in one or more regions.\nYou can create only sharded clusters when you enable the regionalized private endpoint setting. You can't create replica sets.\n"},"projectId":{"type":"string","description":"Unique identifier for the project.\n"}},"required":["enabled","projectId"],"inputProperties":{"enabled":{"type":"boolean","description":"Flag that indicates whether the regionalized private endpoint setting is enabled for the project.   Set this value to true to create more than one private endpoint in a cloud provider region to connect to multi-region and global Atlas sharded clusters. You can enable this setting only if your Atlas project contains no replica sets. You can't disable this setting if you have:\n* More than one private endpoint in more than one region, or\n* More than one private endpoint in one region and one private endpoint in one or more regions.\nYou can create only sharded clusters when you enable the regionalized private endpoint setting. You can't create replica sets.\n"},"projectId":{"type":"string","description":"Unique identifier for the project.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateEndpointRegionalMode resources.\n","properties":{"enabled":{"type":"boolean","description":"Flag that indicates whether the regionalized private endpoint setting is enabled for the project.   Set this value to true to create more than one private endpoint in a cloud provider region to connect to multi-region and global Atlas sharded clusters. You can enable this setting only if your Atlas project contains no replica sets. You can't disable this setting if you have:\n* More than one private endpoint in more than one region, or\n* More than one private endpoint in one region and one private endpoint in one or more regions.\nYou can create only sharded clusters when you enable the regionalized private endpoint setting. You can't create replica sets.\n"},"projectId":{"type":"string","description":"Unique identifier for the project.\n","willReplaceOnChanges":true}},"type":"object"}},"mongodbatlas:index/privateLinkEndpoint:PrivateLinkEndpoint":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-go=\"`PrivateLinkEndpoint`\" pulumi-lang-python=\"`PrivateLinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpoint`\"\u003e`mongodbatlas.PrivateLinkEndpoint`\u003c/span\u003e provides a Private Endpoint resource. This represents a [Private Endpoint Service](https://www.mongodb.com/docs/atlas/security-private-endpoint/#private-endpoint-concepts) that can be created in an Atlas project.\n\n\u003e **IMPORTANT:** This resource creates a Private Endpoint *Service* in MongoDB Atlas. The endpoint itself is created in your cloud provider using the information returned by this resource. The complementary resource \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-go=\"`PrivateLinkEndpointService`\" pulumi-lang-python=\"`PrivateLinkEndpointService`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpointService`\"\u003e`mongodbatlas.PrivateLinkEndpointService`\u003c/span\u003e is used to link your cloud provider's endpoint to the Atlas service.\n\nThe private link Terraform module makes use of this resource and simplifies its use.\n\n\u003e **NOTE:** You must have Organization Owner or Project Owner role. A network container is created for a private endpoint if one does not yet exist in the project. Before configuring a private endpoint for a new region, review the [Multi-Region Private Endpoints](https://www.mongodb.com/docs/atlas/troubleshoot-private-endpoints/#multi-region-private-endpoints) troubleshooting documentation.\n\n\u003e **IMPORTANT:** For GCP, MongoDB encourages customers to use the port-mapped architecture by setting \u003cspan pulumi-lang-nodejs=\"`portMappingEnabled \" pulumi-lang-dotnet=\"`PortMappingEnabled \" pulumi-lang-go=\"`portMappingEnabled \" pulumi-lang-python=\"`port_mapping_enabled \" pulumi-lang-yaml=\"`portMappingEnabled \" pulumi-lang-java=\"`portMappingEnabled \"\u003e`port_mapping_enabled \u003c/span\u003e= true`. This architecture uses a single set of resources to support up to 150 nodes. The legacy architecture requires dedicated resources for each Atlas node, which can lead to IP address exhaustion. For migration guidance, see the GCP Private Service Connect to Port-Mapped Architecture.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.PrivateLinkEndpoint(\"this\", {\n    projectId: projectId,\n    providerName: \"AWS\",\n    region: \"US_EAST_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.PrivateLinkEndpoint(\"this\",\n    project_id=project_id,\n    provider_name=\"AWS\",\n    region=\"US_EAST_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.PrivateLinkEndpoint(\"this\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"AWS\",\n        Region = \"US_EAST_1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewPrivateLinkEndpoint(ctx, \"this\", \u0026mongodbatlas.PrivateLinkEndpointArgs{\n\t\t\tProjectId:    pulumi.Any(projectId),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\tRegion:       pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpoint;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new PrivateLinkEndpoint(\"this\", PrivateLinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"AWS\")\n            .region(\"US_EAST_1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:PrivateLinkEndpoint\n    properties:\n      projectId: ${projectId}\n      providerName: AWS\n      region: US_EAST_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS PrivateLink Endpoint\n- Azure PrivateLink Endpoint\n- GCP Private Service Connect Endpoint (Port-Mapped Architecture)\n\n## Import\n\nPrivate Endpoint Service can be imported using project ID, private link ID, provider name and region, in the format `{project_id}-{private_link_id}-{provider_name}-{region}`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/privateLinkEndpoint:PrivateLinkEndpoint this 1112222b3bf99403840e8934-3242342343112-AWS-us-east-1\n```\n\nFor more information, see:\n- [MongoDB API Private Endpoint Service](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupprivateendpointendpointservice) for detailed arguments and attributes.\n- [Set Up a Private Endpoint](https://www.mongodb.com/docs/atlas/security-private-endpoint/) for general guidance on private endpoints in MongoDB Atlas.\n\n","properties":{"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"endpointGroupNames":{"type":"array","items":{"type":"string"},"description":"List of private endpoint names associated with the private endpoint service for port-mapped architectures. For GCP legacy private endpoint architectures, this is a list of endpoint group names associated with the private endpoint service.\n"},"endpointServiceName":{"type":"string","description":"Name of the PrivateLink endpoint service in AWS. Returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e while Atlas creates the endpoint service.\n"},"errorMessage":{"type":"string","description":"Error message for the private endpoint connection. Returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e if there are no errors.\n"},"interfaceEndpoints":{"type":"array","items":{"type":"string"},"description":"Unique identifiers of the interface endpoints in your VPC that you added to the AWS PrivateLink connection.\n"},"portMappingEnabled":{"type":"boolean","description":"Flag that indicates whether this resource uses GCP port-mapping. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the resource uses port-mapped architecture. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e or unset, the resource uses GCP legacy private endpoint architecture. Only applicable for GCP provider.\n"},"privateEndpoints":{"type":"array","items":{"type":"string"},"description":"All private endpoints that you have added to this Azure Private Link Service.\n"},"privateLinkId":{"type":"string","description":"Unique identifier of the private endpoint connection.\n"},"privateLinkServiceName":{"type":"string","description":"Name of the Azure Private Link Service that Atlas manages.\n"},"privateLinkServiceResourceId":{"type":"string","description":"Resource ID of the Azure Private Link Service.\n"},"projectId":{"type":"string","description":"Unique identifier for the project, also known as \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e in the official documentation.\n"},"providerName":{"type":"string","description":"Name of the cloud provider for which you want to create the private endpoint service. Atlas accepts `AWS`, `AZURE`, `GCP`.\n"},"region":{"type":"string","description":"Cloud provider region in which you want to create the private endpoint connection.\nAccepted values are: [AWS regions](https://docs.atlas.mongodb.com/reference/amazon-aws/#amazon-aws), [AZURE regions](https://docs.atlas.mongodb.com/reference/microsoft-azure/#microsoft-azure) and [GCP regions](https://docs.atlas.mongodb.com/reference/google-gcp/#std-label-google-gcp)\n"},"regionName":{"type":"string","description":"Region for the Private Service Connect endpoint service.\n"},"serviceAttachmentNames":{"type":"array","items":{"type":"string"},"description":"List containing one service attachment connected to the private endpoint service for port-mapped architecture. For GCP legacy private endpoint architecture, this is a list of service attachments connected to the private endpoint service (one per Atlas node). Returns an empty list while Atlas creates the service attachments.\n"},"status":{"type":"string","description":"values:\n* `AVAILABLE` - Atlas created the load balancer and the GCP Private Service Connect service.\n* `INITIATING` - Atlas is creating the load balancer and the GCP Private Service Connect service.\n* `FAILED` - Atlas failed to create the load balancer and the GCP Private Service Connect service.\n* `DELETING` - Atlas is deleting the GCP Private Service Connect service.\n"}},"required":["endpointGroupNames","endpointServiceName","errorMessage","interfaceEndpoints","privateEndpoints","privateLinkId","privateLinkServiceName","privateLinkServiceResourceId","projectId","providerName","region","regionName","serviceAttachmentNames","status"],"inputProperties":{"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"portMappingEnabled":{"type":"boolean","description":"Flag that indicates whether this resource uses GCP port-mapping. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the resource uses port-mapped architecture. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e or unset, the resource uses GCP legacy private endpoint architecture. Only applicable for GCP provider.\n"},"projectId":{"type":"string","description":"Unique identifier for the project, also known as \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e in the official documentation.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Name of the cloud provider for which you want to create the private endpoint service. Atlas accepts `AWS`, `AZURE`, `GCP`.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Cloud provider region in which you want to create the private endpoint connection.\nAccepted values are: [AWS regions](https://docs.atlas.mongodb.com/reference/amazon-aws/#amazon-aws), [AZURE regions](https://docs.atlas.mongodb.com/reference/microsoft-azure/#microsoft-azure) and [GCP regions](https://docs.atlas.mongodb.com/reference/google-gcp/#std-label-google-gcp)\n","willReplaceOnChanges":true}},"requiredInputs":["projectId","providerName","region"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateLinkEndpoint resources.\n","properties":{"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"endpointGroupNames":{"type":"array","items":{"type":"string"},"description":"List of private endpoint names associated with the private endpoint service for port-mapped architectures. For GCP legacy private endpoint architectures, this is a list of endpoint group names associated with the private endpoint service.\n"},"endpointServiceName":{"type":"string","description":"Name of the PrivateLink endpoint service in AWS. Returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e while Atlas creates the endpoint service.\n"},"errorMessage":{"type":"string","description":"Error message for the private endpoint connection. Returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e if there are no errors.\n"},"interfaceEndpoints":{"type":"array","items":{"type":"string"},"description":"Unique identifiers of the interface endpoints in your VPC that you added to the AWS PrivateLink connection.\n"},"portMappingEnabled":{"type":"boolean","description":"Flag that indicates whether this resource uses GCP port-mapping. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the resource uses port-mapped architecture. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e or unset, the resource uses GCP legacy private endpoint architecture. Only applicable for GCP provider.\n"},"privateEndpoints":{"type":"array","items":{"type":"string"},"description":"All private endpoints that you have added to this Azure Private Link Service.\n"},"privateLinkId":{"type":"string","description":"Unique identifier of the private endpoint connection.\n"},"privateLinkServiceName":{"type":"string","description":"Name of the Azure Private Link Service that Atlas manages.\n"},"privateLinkServiceResourceId":{"type":"string","description":"Resource ID of the Azure Private Link Service.\n"},"projectId":{"type":"string","description":"Unique identifier for the project, also known as \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e in the official documentation.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Name of the cloud provider for which you want to create the private endpoint service. Atlas accepts `AWS`, `AZURE`, `GCP`.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Cloud provider region in which you want to create the private endpoint connection.\nAccepted values are: [AWS regions](https://docs.atlas.mongodb.com/reference/amazon-aws/#amazon-aws), [AZURE regions](https://docs.atlas.mongodb.com/reference/microsoft-azure/#microsoft-azure) and [GCP regions](https://docs.atlas.mongodb.com/reference/google-gcp/#std-label-google-gcp)\n","willReplaceOnChanges":true},"regionName":{"type":"string","description":"Region for the Private Service Connect endpoint service.\n"},"serviceAttachmentNames":{"type":"array","items":{"type":"string"},"description":"List containing one service attachment connected to the private endpoint service for port-mapped architecture. For GCP legacy private endpoint architecture, this is a list of service attachments connected to the private endpoint service (one per Atlas node). Returns an empty list while Atlas creates the service attachments.\n"},"status":{"type":"string","description":"values:\n* `AVAILABLE` - Atlas created the load balancer and the GCP Private Service Connect service.\n* `INITIATING` - Atlas is creating the load balancer and the GCP Private Service Connect service.\n* `FAILED` - Atlas failed to create the load balancer and the GCP Private Service Connect service.\n* `DELETING` - Atlas is deleting the GCP Private Service Connect service.\n"}},"type":"object"}},"mongodbatlas:index/privateLinkEndpointService:PrivateLinkEndpointService":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-go=\"`PrivateLinkEndpointService`\" pulumi-lang-python=\"`PrivateLinkEndpointService`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpointService`\"\u003e`mongodbatlas.PrivateLinkEndpointService`\u003c/span\u003e provides a Private Endpoint Interface Link resource. This represents a Private Endpoint Interface Link, which adds one [Interface Endpoint](https://www.mongodb.com/docs/atlas/security-private-endpoint/#private-endpoint-concepts) to a private endpoint connection in an Atlas project.\n\n\u003e **IMPORTANT:** This resource links your cloud provider's Private Endpoint to the MongoDB Atlas Private Endpoint Service. It does not create the service itself (this is done by \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-go=\"`PrivateLinkEndpoint`\" pulumi-lang-python=\"`PrivateLinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpoint`\"\u003e`mongodbatlas.PrivateLinkEndpoint`\u003c/span\u003e). You first create the service in Atlas with \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-go=\"`PrivateLinkEndpoint`\" pulumi-lang-python=\"`PrivateLinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpoint`\"\u003e`mongodbatlas.PrivateLinkEndpoint`\u003c/span\u003e, then the endpoint is created in your cloud provider, and you link them together with the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-go=\"`PrivateLinkEndpointService`\" pulumi-lang-python=\"`PrivateLinkEndpointService`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpointService`\"\u003e`mongodbatlas.PrivateLinkEndpointService`\u003c/span\u003e resource.\n\nThe private link Terraform module makes use of this resource and simplifies its use.\n\n\u003e **NOTE:** You must have Organization Owner or Project Owner role. Create and delete operations wait for all clusters on the project to IDLE to ensure the latest connection strings can be retrieved (default timeout: 2hrs).\n\n\u003e **IMPORTANT:** For GCP, MongoDB encourages customers to use the port-mapped architecture by setting \u003cspan pulumi-lang-nodejs=\"`portMappingEnabled \" pulumi-lang-dotnet=\"`PortMappingEnabled \" pulumi-lang-go=\"`portMappingEnabled \" pulumi-lang-python=\"`port_mapping_enabled \" pulumi-lang-yaml=\"`portMappingEnabled \" pulumi-lang-java=\"`portMappingEnabled \"\u003e`port_mapping_enabled \u003c/span\u003e= true` on the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-go=\"`PrivateLinkEndpoint`\" pulumi-lang-python=\"`PrivateLinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpoint`\"\u003e`mongodbatlas.PrivateLinkEndpoint`\u003c/span\u003e resource. This architecture uses a single set of resources to support up to 150 nodes. The legacy architecture requires dedicated resources for each Atlas node, which can lead to IP address exhaustion. For migration guidance, see the GCP Private Service Connect to Port-Mapped Architecture.\n\n## Example with AWS\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.PrivateLinkEndpoint(\"this\", {\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    providerName: \"AWS\",\n    region: \"US_EAST_1\",\n});\nconst ptfeService = new aws.index.VpcEndpoint(\"ptfe_service\", {\n    vpcId: \"vpc-7fc0a543\",\n    serviceName: _this.endpointServiceName,\n    vpcEndpointType: \"Interface\",\n    subnetIds: [\"subnet-de0406d2\"],\n    securityGroupIds: [\"sg-3f238186\"],\n});\nconst thisPrivateLinkEndpointService = new mongodbatlas.PrivateLinkEndpointService(\"this\", {\n    projectId: _this.projectId,\n    privateLinkId: _this.privateLinkId,\n    endpointServiceId: ptfeService.id,\n    providerName: \"AWS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.PrivateLinkEndpoint(\"this\",\n    project_id=\"\u003cPROJECT_ID\u003e\",\n    provider_name=\"AWS\",\n    region=\"US_EAST_1\")\nptfe_service = aws.index.VpcEndpoint(\"ptfe_service\",\n    vpc_id=vpc-7fc0a543,\n    service_name=this.endpoint_service_name,\n    vpc_endpoint_type=Interface,\n    subnet_ids=[subnet-de0406d2],\n    security_group_ids=[sg-3f238186])\nthis_private_link_endpoint_service = mongodbatlas.PrivateLinkEndpointService(\"this\",\n    project_id=this.project_id,\n    private_link_id=this.private_link_id,\n    endpoint_service_id=ptfe_service[\"id\"],\n    provider_name=\"AWS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.PrivateLinkEndpoint(\"this\", new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        ProviderName = \"AWS\",\n        Region = \"US_EAST_1\",\n    });\n\n    var ptfeService = new Aws.Index.VpcEndpoint(\"ptfe_service\", new()\n    {\n        VpcId = \"vpc-7fc0a543\",\n        ServiceName = @this.EndpointServiceName,\n        VpcEndpointType = \"Interface\",\n        SubnetIds = new[]\n        {\n            \"subnet-de0406d2\",\n        },\n        SecurityGroupIds = new[]\n        {\n            \"sg-3f238186\",\n        },\n    });\n\n    var thisPrivateLinkEndpointService = new Mongodbatlas.PrivateLinkEndpointService(\"this\", new()\n    {\n        ProjectId = @this.ProjectId,\n        PrivateLinkId = @this.PrivateLinkId,\n        EndpointServiceId = ptfeService.Id,\n        ProviderName = \"AWS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := mongodbatlas.NewPrivateLinkEndpoint(ctx, \"this\", \u0026mongodbatlas.PrivateLinkEndpointArgs{\n\t\t\tProjectId:    pulumi.String(\"\u003cPROJECT_ID\u003e\"),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\tRegion:       pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tptfeService, err := aws.NewVpcEndpoint(ctx, \"ptfe_service\", \u0026aws.VpcEndpointArgs{\n\t\t\tVpcId:           \"vpc-7fc0a543\",\n\t\t\tServiceName:     this.EndpointServiceName,\n\t\t\tVpcEndpointType: \"Interface\",\n\t\t\tSubnetIds: []string{\n\t\t\t\t\"subnet-de0406d2\",\n\t\t\t},\n\t\t\tSecurityGroupIds: []string{\n\t\t\t\t\"sg-3f238186\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewPrivateLinkEndpointService(ctx, \"this\", \u0026mongodbatlas.PrivateLinkEndpointServiceArgs{\n\t\t\tProjectId:         this.ProjectId,\n\t\t\tPrivateLinkId:     this.PrivateLinkId,\n\t\t\tEndpointServiceId: ptfeService.Id,\n\t\t\tProviderName:      pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpoint;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointArgs;\nimport com.pulumi.aws.VpcEndpoint;\nimport com.pulumi.aws.VpcEndpointArgs;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointService;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new PrivateLinkEndpoint(\"this\", PrivateLinkEndpointArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .providerName(\"AWS\")\n            .region(\"US_EAST_1\")\n            .build());\n\n        var ptfeService = new VpcEndpoint(\"ptfeService\", VpcEndpointArgs.builder()\n            .vpcId(\"vpc-7fc0a543\")\n            .serviceName(this_.endpointServiceName())\n            .vpcEndpointType(\"Interface\")\n            .subnetIds(List.of(\"subnet-de0406d2\"))\n            .securityGroupIds(List.of(\"sg-3f238186\"))\n            .build());\n\n        var thisPrivateLinkEndpointService = new PrivateLinkEndpointService(\"thisPrivateLinkEndpointService\", PrivateLinkEndpointServiceArgs.builder()\n            .projectId(this_.projectId())\n            .privateLinkId(this_.privateLinkId())\n            .endpointServiceId(ptfeService.id())\n            .providerName(\"AWS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:PrivateLinkEndpoint\n    properties:\n      projectId: \u003cPROJECT_ID\u003e\n      providerName: AWS\n      region: US_EAST_1\n  ptfeService:\n    type: aws:VpcEndpoint\n    name: ptfe_service\n    properties:\n      vpcId: vpc-7fc0a543\n      serviceName: ${this.endpointServiceName}\n      vpcEndpointType: Interface\n      subnetIds:\n        - subnet-de0406d2\n      securityGroupIds:\n        - sg-3f238186\n  thisPrivateLinkEndpointService:\n    type: mongodbatlas:PrivateLinkEndpointService\n    name: this\n    properties:\n      projectId: ${this.projectId}\n      privateLinkId: ${this.privateLinkId}\n      endpointServiceId: ${ptfeService.id}\n      providerName: AWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example with Azure\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azurerm from \"@pulumi/azurerm\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.PrivateLinkEndpoint(\"this\", {\n    projectId: projectId,\n    providerName: \"AZURE\",\n    region: \"eastus2\",\n});\nconst thisPrivateEndpoint = new azurerm.index.PrivateEndpoint(\"this\", {\n    name: \"endpoint-this\",\n    location: thisAzurermResourceGroup.location,\n    resourceGroupName: resourceGroupName,\n    subnetId: thisAzurermSubnet.id,\n    privateServiceConnection: [{\n        name: _this.privateLinkServiceName,\n        privateConnectionResourceId: _this.privateLinkServiceResourceId,\n        isManualConnection: true,\n        requestMessage: \"Azure Private Link this\",\n    }],\n});\nconst thisPrivateLinkEndpointService = new mongodbatlas.PrivateLinkEndpointService(\"this\", {\n    projectId: _this.projectId,\n    privateLinkId: _this.privateLinkId,\n    endpointServiceId: thisPrivateEndpoint.id,\n    privateEndpointIpAddress: thisPrivateEndpoint.privateServiceConnection[0].privateIpAddress,\n    providerName: \"AZURE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azurerm as azurerm\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.PrivateLinkEndpoint(\"this\",\n    project_id=project_id,\n    provider_name=\"AZURE\",\n    region=\"eastus2\")\nthis_private_endpoint = azurerm.index.PrivateEndpoint(\"this\",\n    name=endpoint-this,\n    location=this_azurerm_resource_group.location,\n    resource_group_name=resource_group_name,\n    subnet_id=this_azurerm_subnet.id,\n    private_service_connection=[{\n        name: this.private_link_service_name,\n        privateConnectionResourceId: this.private_link_service_resource_id,\n        isManualConnection: True,\n        requestMessage: Azure Private Link this,\n    }])\nthis_private_link_endpoint_service = mongodbatlas.PrivateLinkEndpointService(\"this\",\n    project_id=this.project_id,\n    private_link_id=this.private_link_id,\n    endpoint_service_id=this_private_endpoint[\"id\"],\n    private_endpoint_ip_address=this_private_endpoint[\"privateServiceConnection\"][0][\"privateIpAddress\"],\n    provider_name=\"AZURE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azurerm = Pulumi.Azurerm;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.PrivateLinkEndpoint(\"this\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"AZURE\",\n        Region = \"eastus2\",\n    });\n\n    var thisPrivateEndpoint = new Azurerm.Index.PrivateEndpoint(\"this\", new()\n    {\n        Name = \"endpoint-this\",\n        Location = thisAzurermResourceGroup.Location,\n        ResourceGroupName = resourceGroupName,\n        SubnetId = thisAzurermSubnet.Id,\n        PrivateServiceConnection = new[]\n        {\n            \n            {\n                { \"name\", @this.PrivateLinkServiceName },\n                { \"privateConnectionResourceId\", @this.PrivateLinkServiceResourceId },\n                { \"isManualConnection\", true },\n                { \"requestMessage\", \"Azure Private Link this\" },\n            },\n        },\n    });\n\n    var thisPrivateLinkEndpointService = new Mongodbatlas.PrivateLinkEndpointService(\"this\", new()\n    {\n        ProjectId = @this.ProjectId,\n        PrivateLinkId = @this.PrivateLinkId,\n        EndpointServiceId = thisPrivateEndpoint.Id,\n        PrivateEndpointIpAddress = thisPrivateEndpoint.PrivateServiceConnection[0].PrivateIpAddress,\n        ProviderName = \"AZURE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azurerm/sdk/go/azurerm\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := mongodbatlas.NewPrivateLinkEndpoint(ctx, \"this\", \u0026mongodbatlas.PrivateLinkEndpointArgs{\n\t\t\tProjectId:    pulumi.Any(projectId),\n\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\tRegion:       pulumi.String(\"eastus2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisPrivateEndpoint, err := azurerm.NewPrivateEndpoint(ctx, \"this\", \u0026azurerm.PrivateEndpointArgs{\n\t\t\tName:              \"endpoint-this\",\n\t\t\tLocation:          thisAzurermResourceGroup.Location,\n\t\t\tResourceGroupName: resourceGroupName,\n\t\t\tSubnetId:          thisAzurermSubnet.Id,\n\t\t\tPrivateServiceConnection: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"name\":                        this.PrivateLinkServiceName,\n\t\t\t\t\t\"privateConnectionResourceId\": this.PrivateLinkServiceResourceId,\n\t\t\t\t\t\"isManualConnection\":          true,\n\t\t\t\t\t\"requestMessage\":              \"Azure Private Link this\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewPrivateLinkEndpointService(ctx, \"this\", \u0026mongodbatlas.PrivateLinkEndpointServiceArgs{\n\t\t\tProjectId:                this.ProjectId,\n\t\t\tPrivateLinkId:            this.PrivateLinkId,\n\t\t\tEndpointServiceId:        thisPrivateEndpoint.Id,\n\t\t\tPrivateEndpointIpAddress: thisPrivateEndpoint.PrivateServiceConnection[0].PrivateIpAddress,\n\t\t\tProviderName:             pulumi.String(\"AZURE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpoint;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointArgs;\nimport com.pulumi.azurerm.PrivateEndpoint;\nimport com.pulumi.azurerm.PrivateEndpointArgs;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointService;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new PrivateLinkEndpoint(\"this\", PrivateLinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"AZURE\")\n            .region(\"eastus2\")\n            .build());\n\n        var thisPrivateEndpoint = new PrivateEndpoint(\"thisPrivateEndpoint\", PrivateEndpointArgs.builder()\n            .name(\"endpoint-this\")\n            .location(thisAzurermResourceGroup.location())\n            .resourceGroupName(resourceGroupName)\n            .subnetId(thisAzurermSubnet.id())\n            .privateServiceConnection(List.of(Map.ofEntries(\n                Map.entry(\"name\", this_.privateLinkServiceName()),\n                Map.entry(\"privateConnectionResourceId\", this_.privateLinkServiceResourceId()),\n                Map.entry(\"isManualConnection\", true),\n                Map.entry(\"requestMessage\", \"Azure Private Link this\")\n            )))\n            .build());\n\n        var thisPrivateLinkEndpointService = new PrivateLinkEndpointService(\"thisPrivateLinkEndpointService\", PrivateLinkEndpointServiceArgs.builder()\n            .projectId(this_.projectId())\n            .privateLinkId(this_.privateLinkId())\n            .endpointServiceId(thisPrivateEndpoint.id())\n            .privateEndpointIpAddress(thisPrivateEndpoint.privateServiceConnection()[0].privateIpAddress())\n            .providerName(\"AZURE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:PrivateLinkEndpoint\n    properties:\n      projectId: ${projectId}\n      providerName: AZURE\n      region: eastus2\n  thisPrivateEndpoint:\n    type: azurerm:PrivateEndpoint\n    name: this\n    properties:\n      name: endpoint-this\n      location: ${thisAzurermResourceGroup.location}\n      resourceGroupName: ${resourceGroupName}\n      subnetId: ${thisAzurermSubnet.id}\n      privateServiceConnection:\n        - name: ${this.privateLinkServiceName}\n          privateConnectionResourceId: ${this.privateLinkServiceResourceId}\n          isManualConnection: true\n          requestMessage: Azure Private Link this\n  thisPrivateLinkEndpointService:\n    type: mongodbatlas:PrivateLinkEndpointService\n    name: this\n    properties:\n      projectId: ${this.projectId}\n      privateLinkId: ${this.privateLinkId}\n      endpointServiceId: ${thisPrivateEndpoint.id}\n      privateEndpointIpAddress: ${thisPrivateEndpoint.privateServiceConnection[0].privateIpAddress}\n      providerName: AZURE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example with GCP (Legacy Architecture)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as google from \"@pulumi/google\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.PrivateLinkEndpoint(\"this\", {\n    projectId: projectId,\n    providerName: \"GCP\",\n    region: gcpRegion,\n});\n// Create a Google Network\nconst _default = new google.index.ComputeNetwork(\"default\", {\n    project: gcpProjectId,\n    name: \"my-network\",\n    autoCreateSubnetworks: false,\n});\n// Create a Google Sub Network\nconst defaultComputeSubnetwork = new google.index.ComputeSubnetwork(\"default\", {\n    project: _default.project,\n    name: \"my-subnet\",\n    ipCidrRange: \"10.0.0.0/16\",\n    region: gcpRegion,\n    network: _default.id,\n});\n// Create Google 50 Addresses (required for GCP legacy private endpoint architecture)\nconst defaultComputeAddress: google.index.ComputeAddress[] = [];\nfor (const range = {value: 0}; range.value \u003c 50; range.value++) {\n    defaultComputeAddress.push(new google.index.ComputeAddress(`default-${range.value}`, {\n        project: defaultComputeSubnetwork.project,\n        name: `tf-this${range.value}`,\n        subnetwork: defaultComputeSubnetwork.id,\n        addressType: \"INTERNAL\",\n        address: `10.0.42.${range.value}`,\n        region: gcpRegion,\n    }, {\n    dependsOn: [_this],\n}));\n}\n// Create 50 Forwarding rules (required for GCP legacy private endpoint architecture)\nconst defaultComputeForwardingRule: google.index.ComputeForwardingRule[] = [];\nfor (const range = {value: 0}; range.value \u003c 50; range.value++) {\n    defaultComputeForwardingRule.push(new google.index.ComputeForwardingRule(`default-${range.value}`, {\n        target: _this.serviceAttachmentNames[range.value],\n        project: defaultComputeAddress[range.value].project,\n        region: defaultComputeAddress[range.value].region,\n        name: defaultComputeAddress[range.value].name,\n        ipAddress: defaultComputeAddress[range.value].id,\n        network: _default.id,\n        loadBalancingScheme: \"\",\n    }));\n}\nconst thisPrivateLinkEndpointService = new mongodbatlas.PrivateLinkEndpointService(\"this\", {\n    endpoints: defaultComputeAddress.map((v, k) =\u003e ({key: k, value: v})).map(entry =\u003e ({\n        ipAddress: entry.value.address,\n        endpointName: defaultComputeForwardingRule[entry.key].name,\n    })),\n    projectId: _this.projectId,\n    privateLinkId: _this.privateLinkId,\n    providerName: \"GCP\",\n    endpointServiceId: _default.name,\n    gcpProjectId: gcpProjectId,\n}, {\n    dependsOn: [defaultComputeForwardingRule],\n});\n```\n```python\nimport pulumi\nimport pulumi_google as google\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.PrivateLinkEndpoint(\"this\",\n    project_id=project_id,\n    provider_name=\"GCP\",\n    region=gcp_region)\n# Create a Google Network\ndefault = google.index.ComputeNetwork(\"default\",\n    project=gcp_project_id,\n    name=my-network,\n    auto_create_subnetworks=False)\n# Create a Google Sub Network\ndefault_compute_subnetwork = google.index.ComputeSubnetwork(\"default\",\n    project=default.project,\n    name=my-subnet,\n    ip_cidr_range=10.0.0.0/16,\n    region=gcp_region,\n    network=default.id)\n# Create Google 50 Addresses (required for GCP legacy private endpoint architecture)\ndefault_compute_address = []\nfor range in [{\"value\": i} for i in range(0, 50)]:\n    default_compute_address.append(google.index.ComputeAddress(f\"default-{range['value']}\",\n        project=default_compute_subnetwork.project,\n        name=ftf-this{range.value},\n        subnetwork=default_compute_subnetwork.id,\n        address_type=INTERNAL,\n        address=f10.0.42.{range.value},\n        region=gcp_region,\n        opts = pulumi.ResourceOptions(depends_on=[this])))\n# Create 50 Forwarding rules (required for GCP legacy private endpoint architecture)\ndefault_compute_forwarding_rule = []\nfor range in [{\"value\": i} for i in range(0, 50)]:\n    default_compute_forwarding_rule.append(google.index.ComputeForwardingRule(f\"default-{range['value']}\",\n        target=this.service_attachment_names[range.value],\n        project=default_compute_address[range.value].project,\n        region=default_compute_address[range.value].region,\n        name=default_compute_address[range.value].name,\n        ip_address=default_compute_address[range.value].id,\n        network=default.id,\n        load_balancing_scheme=))\nthis_private_link_endpoint_service = mongodbatlas.PrivateLinkEndpointService(\"this\",\n    endpoints=[{\n        \"ip_address\": entry[\"value\"][\"address\"],\n        \"endpoint_name\": default_compute_forwarding_rule[entry[\"key\"]][\"name\"],\n    } for entry in [{\"key\": k, \"value\": v} for k, v in default_compute_address.items()]],\n    project_id=this.project_id,\n    private_link_id=this.private_link_id,\n    provider_name=\"GCP\",\n    endpoint_service_id=default[\"name\"],\n    gcp_project_id=gcp_project_id,\n    opts = pulumi.ResourceOptions(depends_on=[default_compute_forwarding_rule]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Google = Pulumi.Google;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.PrivateLinkEndpoint(\"this\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"GCP\",\n        Region = gcpRegion,\n    });\n\n    // Create a Google Network\n    var @default = new Google.Index.ComputeNetwork(\"default\", new()\n    {\n        Project = gcpProjectId,\n        Name = \"my-network\",\n        AutoCreateSubnetworks = false,\n    });\n\n    // Create a Google Sub Network\n    var defaultComputeSubnetwork = new Google.Index.ComputeSubnetwork(\"default\", new()\n    {\n        Project = @default.Project,\n        Name = \"my-subnet\",\n        IpCidrRange = \"10.0.0.0/16\",\n        Region = gcpRegion,\n        Network = @default.Id,\n    });\n\n    // Create Google 50 Addresses (required for GCP legacy private endpoint architecture)\n    var defaultComputeAddress = new List\u003cGoogle.Index.ComputeAddress\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 50; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultComputeAddress.Add(new Google.Index.ComputeAddress($\"default-{range.Value}\", new()\n        {\n            Project = defaultComputeSubnetwork.Project,\n            Name = $\"tf-this{range.Value}\",\n            Subnetwork = defaultComputeSubnetwork.Id,\n            AddressType = \"INTERNAL\",\n            Address = $\"10.0.42.{range.Value}\",\n            Region = gcpRegion,\n        }, new CustomResourceOptions\n        {\n            DependsOn =\n            {\n                @this,\n            },\n        }));\n    }\n    // Create 50 Forwarding rules (required for GCP legacy private endpoint architecture)\n    var defaultComputeForwardingRule = new List\u003cGoogle.Index.ComputeForwardingRule\u003e();\n    for (var rangeIndex = 0; rangeIndex \u003c 50; rangeIndex++)\n    {\n        var range = new { Value = rangeIndex };\n        defaultComputeForwardingRule.Add(new Google.Index.ComputeForwardingRule($\"default-{range.Value}\", new()\n        {\n            Target = @this.ServiceAttachmentNames[range.Value],\n            Project = defaultComputeAddress[range.Value].Project,\n            Region = defaultComputeAddress[range.Value].Region,\n            Name = defaultComputeAddress[range.Value].Name,\n            IpAddress = defaultComputeAddress[range.Value].Id,\n            Network = @default.Id,\n            LoadBalancingScheme = \"\",\n        }));\n    }\n    var thisPrivateLinkEndpointService = new Mongodbatlas.PrivateLinkEndpointService(\"this\", new()\n    {\n        Endpoints = defaultComputeAddress.Select((v, k) =\u003e new { Key = k, Value = v }).Select(entry =\u003e \n        {\n            return new Mongodbatlas.Inputs.PrivateLinkEndpointServiceEndpointArgs\n            {\n                IpAddress = entry.Value.Address,\n                EndpointName = defaultComputeForwardingRule[entry.Key].Name,\n            };\n        }).ToList(),\n        ProjectId = @this.ProjectId,\n        PrivateLinkId = @this.PrivateLinkId,\n        ProviderName = \"GCP\",\n        EndpointServiceId = @default.Name,\n        GcpProjectId = gcpProjectId,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            defaultComputeForwardingRule,\n        },\n    });\n\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example with GCP (Port-Mapped Architecture)\n\nThe port-mapped architecture uses port mapping to reduce resource provisioning. In the GCP legacy private endpoint architecture, service attachments were mapped 1:1 with Atlas nodes (one service attachment per node). In the port-mapped architecture, regardless of cloud provider, one service attachment can be mapped to up to 150 nodes via ports designated per node, enabling direct targeting of specific nodes using only one customer IP address. Enable it by setting \u003cspan pulumi-lang-nodejs=\"`portMappingEnabled \" pulumi-lang-dotnet=\"`PortMappingEnabled \" pulumi-lang-go=\"`portMappingEnabled \" pulumi-lang-python=\"`port_mapping_enabled \" pulumi-lang-yaml=\"`portMappingEnabled \" pulumi-lang-java=\"`portMappingEnabled \"\u003e`port_mapping_enabled \u003c/span\u003e= true` on the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-go=\"`PrivateLinkEndpoint`\" pulumi-lang-python=\"`PrivateLinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpoint`\"\u003e`mongodbatlas.PrivateLinkEndpoint`\u003c/span\u003e resource.\n\n**Important:** For the port-mapped architecture, use \u003cspan pulumi-lang-nodejs=\"`endpointServiceId`\" pulumi-lang-dotnet=\"`EndpointServiceId`\" pulumi-lang-go=\"`endpointServiceId`\" pulumi-lang-python=\"`endpoint_service_id`\" pulumi-lang-yaml=\"`endpointServiceId`\" pulumi-lang-java=\"`endpointServiceId`\"\u003e`endpoint_service_id`\u003c/span\u003e (the forwarding rule name) and \u003cspan pulumi-lang-nodejs=\"`privateEndpointIpAddress`\" pulumi-lang-dotnet=\"`PrivateEndpointIpAddress`\" pulumi-lang-go=\"`privateEndpointIpAddress`\" pulumi-lang-python=\"`private_endpoint_ip_address`\" pulumi-lang-yaml=\"`privateEndpointIpAddress`\" pulumi-lang-java=\"`privateEndpointIpAddress`\"\u003e`private_endpoint_ip_address`\u003c/span\u003e (the IP address). The \u003cspan pulumi-lang-nodejs=\"`endpoints`\" pulumi-lang-dotnet=\"`Endpoints`\" pulumi-lang-go=\"`endpoints`\" pulumi-lang-python=\"`endpoints`\" pulumi-lang-yaml=\"`endpoints`\" pulumi-lang-java=\"`endpoints`\"\u003e`endpoints`\u003c/span\u003e list is no longer used for the port-mapped architecture.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as google from \"@pulumi/google\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.PrivateLinkEndpoint(\"this\", {\n    projectId: projectId,\n    providerName: \"GCP\",\n    region: gcpRegion,\n    portMappingEnabled: true,\n});\n// Create a Google Network\nconst _default = new google.index.ComputeNetwork(\"default\", {\n    project: gcpProjectId,\n    name: \"my-network\",\n    autoCreateSubnetworks: false,\n});\n// Create a Google Sub Network\nconst defaultComputeSubnetwork = new google.index.ComputeSubnetwork(\"default\", {\n    project: _default.project,\n    name: \"my-subnet\",\n    ipCidrRange: \"10.0.0.0/16\",\n    region: gcpRegion,\n    network: _default.id,\n});\n// Create Google Address (1 address for port-mapped architecture)\nconst defaultComputeAddress = new google.index.ComputeAddress(\"default\", {\n    project: defaultComputeSubnetwork.project,\n    name: \"tf-this-psc-endpoint\",\n    subnetwork: defaultComputeSubnetwork.id,\n    addressType: \"INTERNAL\",\n    address: \"10.0.42.1\",\n    region: defaultComputeSubnetwork.region,\n}, {\n    dependsOn: [_this],\n});\n// Create Forwarding Rule (1 rule for port-mapped architecture)\nconst defaultComputeForwardingRule = new google.index.ComputeForwardingRule(\"default\", {\n    target: _this.serviceAttachmentNames[0],\n    project: defaultComputeAddress.project,\n    region: defaultComputeAddress.region,\n    name: defaultComputeAddress.name,\n    ipAddress: defaultComputeAddress.id,\n    network: _default.id,\n    loadBalancingScheme: \"\",\n});\nconst thisPrivateLinkEndpointService = new mongodbatlas.PrivateLinkEndpointService(\"this\", {\n    projectId: _this.projectId,\n    privateLinkId: _this.privateLinkId,\n    providerName: \"GCP\",\n    endpointServiceId: defaultComputeForwardingRule.name,\n    privateEndpointIpAddress: defaultComputeAddress.address,\n    gcpProjectId: gcpProjectId,\n}, {\n    dependsOn: [defaultComputeForwardingRule],\n});\n```\n```python\nimport pulumi\nimport pulumi_google as google\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.PrivateLinkEndpoint(\"this\",\n    project_id=project_id,\n    provider_name=\"GCP\",\n    region=gcp_region,\n    port_mapping_enabled=True)\n# Create a Google Network\ndefault = google.index.ComputeNetwork(\"default\",\n    project=gcp_project_id,\n    name=my-network,\n    auto_create_subnetworks=False)\n# Create a Google Sub Network\ndefault_compute_subnetwork = google.index.ComputeSubnetwork(\"default\",\n    project=default.project,\n    name=my-subnet,\n    ip_cidr_range=10.0.0.0/16,\n    region=gcp_region,\n    network=default.id)\n# Create Google Address (1 address for port-mapped architecture)\ndefault_compute_address = google.index.ComputeAddress(\"default\",\n    project=default_compute_subnetwork.project,\n    name=tf-this-psc-endpoint,\n    subnetwork=default_compute_subnetwork.id,\n    address_type=INTERNAL,\n    address=10.0.42.1,\n    region=default_compute_subnetwork.region,\n    opts = pulumi.ResourceOptions(depends_on=[this]))\n# Create Forwarding Rule (1 rule for port-mapped architecture)\ndefault_compute_forwarding_rule = google.index.ComputeForwardingRule(\"default\",\n    target=this.service_attachment_names[0],\n    project=default_compute_address.project,\n    region=default_compute_address.region,\n    name=default_compute_address.name,\n    ip_address=default_compute_address.id,\n    network=default.id,\n    load_balancing_scheme=)\nthis_private_link_endpoint_service = mongodbatlas.PrivateLinkEndpointService(\"this\",\n    project_id=this.project_id,\n    private_link_id=this.private_link_id,\n    provider_name=\"GCP\",\n    endpoint_service_id=default_compute_forwarding_rule[\"name\"],\n    private_endpoint_ip_address=default_compute_address[\"address\"],\n    gcp_project_id=gcp_project_id,\n    opts = pulumi.ResourceOptions(depends_on=[default_compute_forwarding_rule]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Google = Pulumi.Google;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.PrivateLinkEndpoint(\"this\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"GCP\",\n        Region = gcpRegion,\n        PortMappingEnabled = true,\n    });\n\n    // Create a Google Network\n    var @default = new Google.Index.ComputeNetwork(\"default\", new()\n    {\n        Project = gcpProjectId,\n        Name = \"my-network\",\n        AutoCreateSubnetworks = false,\n    });\n\n    // Create a Google Sub Network\n    var defaultComputeSubnetwork = new Google.Index.ComputeSubnetwork(\"default\", new()\n    {\n        Project = @default.Project,\n        Name = \"my-subnet\",\n        IpCidrRange = \"10.0.0.0/16\",\n        Region = gcpRegion,\n        Network = @default.Id,\n    });\n\n    // Create Google Address (1 address for port-mapped architecture)\n    var defaultComputeAddress = new Google.Index.ComputeAddress(\"default\", new()\n    {\n        Project = defaultComputeSubnetwork.Project,\n        Name = \"tf-this-psc-endpoint\",\n        Subnetwork = defaultComputeSubnetwork.Id,\n        AddressType = \"INTERNAL\",\n        Address = \"10.0.42.1\",\n        Region = defaultComputeSubnetwork.Region,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            @this,\n        },\n    });\n\n    // Create Forwarding Rule (1 rule for port-mapped architecture)\n    var defaultComputeForwardingRule = new Google.Index.ComputeForwardingRule(\"default\", new()\n    {\n        Target = @this.ServiceAttachmentNames[0],\n        Project = defaultComputeAddress.Project,\n        Region = defaultComputeAddress.Region,\n        Name = defaultComputeAddress.Name,\n        IpAddress = defaultComputeAddress.Id,\n        Network = @default.Id,\n        LoadBalancingScheme = \"\",\n    });\n\n    var thisPrivateLinkEndpointService = new Mongodbatlas.PrivateLinkEndpointService(\"this\", new()\n    {\n        ProjectId = @this.ProjectId,\n        PrivateLinkId = @this.PrivateLinkId,\n        ProviderName = \"GCP\",\n        EndpointServiceId = defaultComputeForwardingRule.Name,\n        PrivateEndpointIpAddress = defaultComputeAddress.Address,\n        GcpProjectId = gcpProjectId,\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            defaultComputeForwardingRule,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-google/sdk/go/google\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := mongodbatlas.NewPrivateLinkEndpoint(ctx, \"this\", \u0026mongodbatlas.PrivateLinkEndpointArgs{\n\t\t\tProjectId:          pulumi.Any(projectId),\n\t\t\tProviderName:       pulumi.String(\"GCP\"),\n\t\t\tRegion:             pulumi.Any(gcpRegion),\n\t\t\tPortMappingEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a Google Network\n\t\t_default, err := google.NewComputeNetwork(ctx, \"default\", \u0026google.ComputeNetworkArgs{\n\t\t\tProject:               gcpProjectId,\n\t\t\tName:                  \"my-network\",\n\t\t\tAutoCreateSubnetworks: false,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create a Google Sub Network\n\t\tdefaultComputeSubnetwork, err := google.NewComputeSubnetwork(ctx, \"default\", \u0026google.ComputeSubnetworkArgs{\n\t\t\tProject:     _default.Project,\n\t\t\tName:        \"my-subnet\",\n\t\t\tIpCidrRange: \"10.0.0.0/16\",\n\t\t\tRegion:      gcpRegion,\n\t\t\tNetwork:     _default.Id,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create Google Address (1 address for port-mapped architecture)\n\t\tdefaultComputeAddress, err := google.NewComputeAddress(ctx, \"default\", \u0026google.ComputeAddressArgs{\n\t\t\tProject:     defaultComputeSubnetwork.Project,\n\t\t\tName:        \"tf-this-psc-endpoint\",\n\t\t\tSubnetwork:  defaultComputeSubnetwork.Id,\n\t\t\tAddressType: \"INTERNAL\",\n\t\t\tAddress:     \"10.0.42.1\",\n\t\t\tRegion:      defaultComputeSubnetwork.Region,\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tthis,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Create Forwarding Rule (1 rule for port-mapped architecture)\n\t\tdefaultComputeForwardingRule, err := google.NewComputeForwardingRule(ctx, \"default\", \u0026google.ComputeForwardingRuleArgs{\n\t\t\tTarget:              this.ServiceAttachmentNames[0],\n\t\t\tProject:             defaultComputeAddress.Project,\n\t\t\tRegion:              defaultComputeAddress.Region,\n\t\t\tName:                defaultComputeAddress.Name,\n\t\t\tIpAddress:           defaultComputeAddress.Id,\n\t\t\tNetwork:             _default.Id,\n\t\t\tLoadBalancingScheme: \"\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewPrivateLinkEndpointService(ctx, \"this\", \u0026mongodbatlas.PrivateLinkEndpointServiceArgs{\n\t\t\tProjectId:                this.ProjectId,\n\t\t\tPrivateLinkId:            this.PrivateLinkId,\n\t\t\tProviderName:             pulumi.String(\"GCP\"),\n\t\t\tEndpointServiceId:        defaultComputeForwardingRule.Name,\n\t\t\tPrivateEndpointIpAddress: defaultComputeAddress.Address,\n\t\t\tGcpProjectId:             pulumi.Any(gcpProjectId),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tdefaultComputeForwardingRule,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpoint;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointArgs;\nimport com.pulumi.google.ComputeNetwork;\nimport com.pulumi.google.ComputeNetworkArgs;\nimport com.pulumi.google.ComputeSubnetwork;\nimport com.pulumi.google.ComputeSubnetworkArgs;\nimport com.pulumi.google.ComputeAddress;\nimport com.pulumi.google.ComputeAddressArgs;\nimport com.pulumi.google.ComputeForwardingRule;\nimport com.pulumi.google.ComputeForwardingRuleArgs;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointService;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointServiceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new PrivateLinkEndpoint(\"this\", PrivateLinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"GCP\")\n            .region(gcpRegion)\n            .portMappingEnabled(true)\n            .build());\n\n        // Create a Google Network\n        var default_ = new ComputeNetwork(\"default\", ComputeNetworkArgs.builder()\n            .project(gcpProjectId)\n            .name(\"my-network\")\n            .autoCreateSubnetworks(false)\n            .build());\n\n        // Create a Google Sub Network\n        var defaultComputeSubnetwork = new ComputeSubnetwork(\"defaultComputeSubnetwork\", ComputeSubnetworkArgs.builder()\n            .project(default_.project())\n            .name(\"my-subnet\")\n            .ipCidrRange(\"10.0.0.0/16\")\n            .region(gcpRegion)\n            .network(default_.id())\n            .build());\n\n        // Create Google Address (1 address for port-mapped architecture)\n        var defaultComputeAddress = new ComputeAddress(\"defaultComputeAddress\", ComputeAddressArgs.builder()\n            .project(defaultComputeSubnetwork.project())\n            .name(\"tf-this-psc-endpoint\")\n            .subnetwork(defaultComputeSubnetwork.id())\n            .addressType(\"INTERNAL\")\n            .address(\"10.0.42.1\")\n            .region(defaultComputeSubnetwork.region())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(List.of(this_))\n                .build());\n\n        // Create Forwarding Rule (1 rule for port-mapped architecture)\n        var defaultComputeForwardingRule = new ComputeForwardingRule(\"defaultComputeForwardingRule\", ComputeForwardingRuleArgs.builder()\n            .target(this_.serviceAttachmentNames()[0])\n            .project(defaultComputeAddress.project())\n            .region(defaultComputeAddress.region())\n            .name(defaultComputeAddress.name())\n            .ipAddress(defaultComputeAddress.id())\n            .network(default_.id())\n            .loadBalancingScheme(\"\")\n            .build());\n\n        var thisPrivateLinkEndpointService = new PrivateLinkEndpointService(\"thisPrivateLinkEndpointService\", PrivateLinkEndpointServiceArgs.builder()\n            .projectId(this_.projectId())\n            .privateLinkId(this_.privateLinkId())\n            .providerName(\"GCP\")\n            .endpointServiceId(defaultComputeForwardingRule.name())\n            .privateEndpointIpAddress(defaultComputeAddress.address())\n            .gcpProjectId(gcpProjectId)\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(defaultComputeForwardingRule)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:PrivateLinkEndpoint\n    properties:\n      projectId: ${projectId}\n      providerName: GCP\n      region: ${gcpRegion}\n      portMappingEnabled: true # Enable port-mapped architecture\n  # Create a Google Network\n  default:\n    type: google:ComputeNetwork\n    properties:\n      project: ${gcpProjectId}\n      name: my-network\n      autoCreateSubnetworks: false\n  # Create a Google Sub Network\n  defaultComputeSubnetwork:\n    type: google:ComputeSubnetwork\n    name: default\n    properties:\n      project: ${default.project}\n      name: my-subnet\n      ipCidrRange: 10.0.0.0/16\n      region: ${gcpRegion}\n      network: ${default.id}\n  # Create Google Address (1 address for port-mapped architecture)\n  defaultComputeAddress:\n    type: google:ComputeAddress\n    name: default\n    properties:\n      project: ${defaultComputeSubnetwork.project}\n      name: tf-this-psc-endpoint\n      subnetwork: ${defaultComputeSubnetwork.id}\n      addressType: INTERNAL\n      address: 10.0.42.1\n      region: ${defaultComputeSubnetwork.region}\n    options:\n      dependsOn:\n        - ${this}\n  # Create Forwarding Rule (1 rule for port-mapped architecture)\n  defaultComputeForwardingRule:\n    type: google:ComputeForwardingRule\n    name: default\n    properties:\n      target: ${this.serviceAttachmentNames[0]}\n      project: ${defaultComputeAddress.project}\n      region: ${defaultComputeAddress.region}\n      name: ${defaultComputeAddress.name}\n      ipAddress: ${defaultComputeAddress.id}\n      network: ${default.id}\n      loadBalancingScheme: \"\"\n  thisPrivateLinkEndpointService:\n    type: mongodbatlas:PrivateLinkEndpointService\n    name: this\n    properties:\n      projectId: ${this.projectId}\n      privateLinkId: ${this.privateLinkId}\n      providerName: GCP\n      endpointServiceId: ${defaultComputeForwardingRule.name}\n      privateEndpointIpAddress: ${defaultComputeAddress.address}\n      gcpProjectId: ${gcpProjectId}\n    options:\n      dependsOn:\n        - ${defaultComputeForwardingRule}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS PrivateLink Endpoint and Service\n- Azure Private Link Endpoint and Service\n- GCP Private Service Connect Endpoint and Service (Port-Mapped Architecture)\n\n## Import\n\nPrivate Endpoint Link Connection can be imported using project ID, private link ID, endpoint service ID, and provider name, in the format `{project_id}--{private_link_id}--{endpoint_service_id}--{provider_name}`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/privateLinkEndpointService:PrivateLinkEndpointService this 1112222b3bf99403840e8934--3242342343112--vpce-4242342343--AWS\n```\n\nFor more information, see:\n- [MongoDB API Private Endpoint Link Connection](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupprivateendpointendpointserviceendpoint) for detailed arguments and attributes.\n- [Set Up a Private Endpoint](https://www.mongodb.com/docs/atlas/security-private-endpoint/) for general guidance on private endpoints in MongoDB Atlas.\n\n","properties":{"awsConnectionStatus":{"type":"string","description":"Status of the interface endpoint for AWS.\nReturns one of the following values:\n* `NONE` - Atlas created the network load balancer and VPC endpoint service, but AWS hasn't yet created the VPC endpoint.\n* `PENDING_ACCEPTANCE` - AWS has received the connection request from your VPC endpoint to the Atlas VPC endpoint service.\n* `PENDING` - AWS is establishing the connection between your VPC endpoint and the Atlas VPC endpoint service.\n* `AVAILABLE` - Atlas VPC resources are connected to the VPC endpoint in your VPC. You can connect to Atlas clusters in this region using AWS PrivateLink.\n* `REJECTED` - AWS failed to establish a connection between Atlas VPC resources to the VPC endpoint in your VPC.\n* `DELETING` - Atlas is removing the interface endpoint from the private endpoint connection.\n"},"azureStatus":{"type":"string","description":"Status of the interface endpoint for AZURE.\nReturns one of the following values:\n* `INITIATING` - Atlas has not yet accepted the connection to your private endpoint.\n* `AVAILABLE` - Atlas approved the connection to your private endpoint.\n* `FAILED` - Atlas failed to accept the connection your private endpoint.\n* `DELETING` - Atlas is removing the connection to your private endpoint from the Private Link service.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"deleteRequested":{"type":"boolean","description":"Indicates if Atlas received a request to remove the interface endpoint from the private endpoint connection.\n"},"endpointGroupName":{"type":"string"},"endpointServiceId":{"type":"string","description":"Unique identifier of the interface endpoint you created in your VPC. For `AWS` and `AZURE`, this is the interface endpoint identifier. For `GCP` port-mapped architecture, this is the forwarding rule name. For `GCP` legacy private endpoint architecture, this is the endpoint group name.\n"},"endpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/PrivateLinkEndpointServiceEndpoint:PrivateLinkEndpointServiceEndpoint"},"description":"Collection of individual private endpoints that comprise your endpoint group. Only for GCP legacy private endpoint architecture. **Note:** For the port-mapped architecture, this field is no longer used - use \u003cspan pulumi-lang-nodejs=\"`endpointServiceId`\" pulumi-lang-dotnet=\"`EndpointServiceId`\" pulumi-lang-go=\"`endpointServiceId`\" pulumi-lang-python=\"`endpoint_service_id`\" pulumi-lang-yaml=\"`endpointServiceId`\" pulumi-lang-java=\"`endpointServiceId`\"\u003e`endpoint_service_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateEndpointIpAddress`\" pulumi-lang-dotnet=\"`PrivateEndpointIpAddress`\" pulumi-lang-go=\"`privateEndpointIpAddress`\" pulumi-lang-python=\"`private_endpoint_ip_address`\" pulumi-lang-yaml=\"`privateEndpointIpAddress`\" pulumi-lang-java=\"`privateEndpointIpAddress`\"\u003e`private_endpoint_ip_address`\u003c/span\u003e instead.\n"},"errorMessage":{"type":"string","description":"Error message pertaining to the interface endpoint. Returns null if there are no errors.\n"},"gcpEndpointStatus":{"type":"string","description":"Status of the individual endpoint. Only populated for port-mapped architecture. Returns one of the following values: `INITIATING`, `AVAILABLE`, `FAILED`, `DELETING`.\n"},"gcpProjectId":{"type":"string","description":"Unique identifier of the GCP project in which you created your endpoints. **Required for `GCP`** (both legacy and port-mapped architectures). Only for `GCP`.\n"},"gcpStatus":{"type":"string","description":"Status of the interface endpoint.\nReturns one of the following values:\n* `INITIATING` - Atlas has not yet accepted the connection to your private endpoint.\n* `AVAILABLE` - Atlas approved the connection to your private endpoint.\n* `FAILED` - Atlas failed to accept the connection your private endpoint.\n* `DELETING` - Atlas is removing the connection to your private endpoint from the Private Link service.\n"},"interfaceEndpointId":{"type":"string","description":"Unique identifier of the interface endpoint.\n"},"portMappingEnabled":{"type":"boolean","description":"Flag that indicates whether the underlying \u003cspan pulumi-lang-nodejs=\"`privatelinkEndpoint`\" pulumi-lang-dotnet=\"`PrivatelinkEndpoint`\" pulumi-lang-go=\"`privatelinkEndpoint`\" pulumi-lang-python=\"`privatelink_endpoint`\" pulumi-lang-yaml=\"`privatelinkEndpoint`\" pulumi-lang-java=\"`privatelinkEndpoint`\"\u003e`privatelink_endpoint`\u003c/span\u003e resource uses GCP port-mapping. This is a read-only attribute that reflects the architecture type. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the endpoint service uses the port-mapped architecture. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, it uses the GCP legacy private endpoint architecture. Only applicable for GCP provider.\n"},"privateEndpointConnectionName":{"type":"string","description":"Name of the connection for this private endpoint that Atlas generates.\n"},"privateEndpointIpAddress":{"type":"string","description":"Private IP address of the private endpoint network interface. **Required for `AZURE and GCP Port-Mapped`.** For port-mapped architecture, this is required and is the IP address of the forwarding rule. For GCP legacy private endpoint architecture, this is not used.\n"},"privateEndpointResourceId":{"type":"string","description":"Unique identifier of the private endpoint.\n"},"privateLinkId":{"type":"string","description":"Unique identifier of the `AWS`, `AZURE` or `GCP` PrivateLink connection which is created by \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-go=\"`PrivateLinkEndpoint`\" pulumi-lang-python=\"`PrivateLinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpoint`\"\u003e`mongodbatlas.PrivateLinkEndpoint`\u003c/span\u003e resource.\n"},"projectId":{"type":"string","description":"Unique identifier for the project, also known as \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e in the official documentation.\n"},"providerName":{"type":"string","description":"Cloud provider for which you want to create a private endpoint. Atlas accepts `AWS`, `AZURE` or `GCP`.\n"}},"required":["awsConnectionStatus","azureStatus","deleteRequested","endpointGroupName","endpointServiceId","endpoints","errorMessage","gcpEndpointStatus","gcpStatus","interfaceEndpointId","portMappingEnabled","privateEndpointConnectionName","privateEndpointIpAddress","privateEndpointResourceId","privateLinkId","projectId","providerName"],"inputProperties":{"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"endpointServiceId":{"type":"string","description":"Unique identifier of the interface endpoint you created in your VPC. For `AWS` and `AZURE`, this is the interface endpoint identifier. For `GCP` port-mapped architecture, this is the forwarding rule name. For `GCP` legacy private endpoint architecture, this is the endpoint group name.\n","willReplaceOnChanges":true},"endpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/PrivateLinkEndpointServiceEndpoint:PrivateLinkEndpointServiceEndpoint"},"description":"Collection of individual private endpoints that comprise your endpoint group. Only for GCP legacy private endpoint architecture. **Note:** For the port-mapped architecture, this field is no longer used - use \u003cspan pulumi-lang-nodejs=\"`endpointServiceId`\" pulumi-lang-dotnet=\"`EndpointServiceId`\" pulumi-lang-go=\"`endpointServiceId`\" pulumi-lang-python=\"`endpoint_service_id`\" pulumi-lang-yaml=\"`endpointServiceId`\" pulumi-lang-java=\"`endpointServiceId`\"\u003e`endpoint_service_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateEndpointIpAddress`\" pulumi-lang-dotnet=\"`PrivateEndpointIpAddress`\" pulumi-lang-go=\"`privateEndpointIpAddress`\" pulumi-lang-python=\"`private_endpoint_ip_address`\" pulumi-lang-yaml=\"`privateEndpointIpAddress`\" pulumi-lang-java=\"`privateEndpointIpAddress`\"\u003e`private_endpoint_ip_address`\u003c/span\u003e instead.\n"},"gcpProjectId":{"type":"string","description":"Unique identifier of the GCP project in which you created your endpoints. **Required for `GCP`** (both legacy and port-mapped architectures). Only for `GCP`.\n","willReplaceOnChanges":true},"privateEndpointIpAddress":{"type":"string","description":"Private IP address of the private endpoint network interface. **Required for `AZURE and GCP Port-Mapped`.** For port-mapped architecture, this is required and is the IP address of the forwarding rule. For GCP legacy private endpoint architecture, this is not used.\n"},"privateLinkId":{"type":"string","description":"Unique identifier of the `AWS`, `AZURE` or `GCP` PrivateLink connection which is created by \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-go=\"`PrivateLinkEndpoint`\" pulumi-lang-python=\"`PrivateLinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpoint`\"\u003e`mongodbatlas.PrivateLinkEndpoint`\u003c/span\u003e resource.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"Unique identifier for the project, also known as \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e in the official documentation.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Cloud provider for which you want to create a private endpoint. Atlas accepts `AWS`, `AZURE` or `GCP`.\n","willReplaceOnChanges":true}},"requiredInputs":["endpointServiceId","privateLinkId","projectId","providerName"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivateLinkEndpointService resources.\n","properties":{"awsConnectionStatus":{"type":"string","description":"Status of the interface endpoint for AWS.\nReturns one of the following values:\n* `NONE` - Atlas created the network load balancer and VPC endpoint service, but AWS hasn't yet created the VPC endpoint.\n* `PENDING_ACCEPTANCE` - AWS has received the connection request from your VPC endpoint to the Atlas VPC endpoint service.\n* `PENDING` - AWS is establishing the connection between your VPC endpoint and the Atlas VPC endpoint service.\n* `AVAILABLE` - Atlas VPC resources are connected to the VPC endpoint in your VPC. You can connect to Atlas clusters in this region using AWS PrivateLink.\n* `REJECTED` - AWS failed to establish a connection between Atlas VPC resources to the VPC endpoint in your VPC.\n* `DELETING` - Atlas is removing the interface endpoint from the private endpoint connection.\n"},"azureStatus":{"type":"string","description":"Status of the interface endpoint for AZURE.\nReturns one of the following values:\n* `INITIATING` - Atlas has not yet accepted the connection to your private endpoint.\n* `AVAILABLE` - Atlas approved the connection to your private endpoint.\n* `FAILED` - Atlas failed to accept the connection your private endpoint.\n* `DELETING` - Atlas is removing the connection to your private endpoint from the Private Link service.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","willReplaceOnChanges":true},"deleteRequested":{"type":"boolean","description":"Indicates if Atlas received a request to remove the interface endpoint from the private endpoint connection.\n"},"endpointGroupName":{"type":"string"},"endpointServiceId":{"type":"string","description":"Unique identifier of the interface endpoint you created in your VPC. For `AWS` and `AZURE`, this is the interface endpoint identifier. For `GCP` port-mapped architecture, this is the forwarding rule name. For `GCP` legacy private endpoint architecture, this is the endpoint group name.\n","willReplaceOnChanges":true},"endpoints":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/PrivateLinkEndpointServiceEndpoint:PrivateLinkEndpointServiceEndpoint"},"description":"Collection of individual private endpoints that comprise your endpoint group. Only for GCP legacy private endpoint architecture. **Note:** For the port-mapped architecture, this field is no longer used - use \u003cspan pulumi-lang-nodejs=\"`endpointServiceId`\" pulumi-lang-dotnet=\"`EndpointServiceId`\" pulumi-lang-go=\"`endpointServiceId`\" pulumi-lang-python=\"`endpoint_service_id`\" pulumi-lang-yaml=\"`endpointServiceId`\" pulumi-lang-java=\"`endpointServiceId`\"\u003e`endpoint_service_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`privateEndpointIpAddress`\" pulumi-lang-dotnet=\"`PrivateEndpointIpAddress`\" pulumi-lang-go=\"`privateEndpointIpAddress`\" pulumi-lang-python=\"`private_endpoint_ip_address`\" pulumi-lang-yaml=\"`privateEndpointIpAddress`\" pulumi-lang-java=\"`privateEndpointIpAddress`\"\u003e`private_endpoint_ip_address`\u003c/span\u003e instead.\n"},"errorMessage":{"type":"string","description":"Error message pertaining to the interface endpoint. Returns null if there are no errors.\n"},"gcpEndpointStatus":{"type":"string","description":"Status of the individual endpoint. Only populated for port-mapped architecture. Returns one of the following values: `INITIATING`, `AVAILABLE`, `FAILED`, `DELETING`.\n"},"gcpProjectId":{"type":"string","description":"Unique identifier of the GCP project in which you created your endpoints. **Required for `GCP`** (both legacy and port-mapped architectures). Only for `GCP`.\n","willReplaceOnChanges":true},"gcpStatus":{"type":"string","description":"Status of the interface endpoint.\nReturns one of the following values:\n* `INITIATING` - Atlas has not yet accepted the connection to your private endpoint.\n* `AVAILABLE` - Atlas approved the connection to your private endpoint.\n* `FAILED` - Atlas failed to accept the connection your private endpoint.\n* `DELETING` - Atlas is removing the connection to your private endpoint from the Private Link service.\n"},"interfaceEndpointId":{"type":"string","description":"Unique identifier of the interface endpoint.\n"},"portMappingEnabled":{"type":"boolean","description":"Flag that indicates whether the underlying \u003cspan pulumi-lang-nodejs=\"`privatelinkEndpoint`\" pulumi-lang-dotnet=\"`PrivatelinkEndpoint`\" pulumi-lang-go=\"`privatelinkEndpoint`\" pulumi-lang-python=\"`privatelink_endpoint`\" pulumi-lang-yaml=\"`privatelinkEndpoint`\" pulumi-lang-java=\"`privatelinkEndpoint`\"\u003e`privatelink_endpoint`\u003c/span\u003e resource uses GCP port-mapping. This is a read-only attribute that reflects the architecture type. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the endpoint service uses the port-mapped architecture. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, it uses the GCP legacy private endpoint architecture. Only applicable for GCP provider.\n"},"privateEndpointConnectionName":{"type":"string","description":"Name of the connection for this private endpoint that Atlas generates.\n"},"privateEndpointIpAddress":{"type":"string","description":"Private IP address of the private endpoint network interface. **Required for `AZURE and GCP Port-Mapped`.** For port-mapped architecture, this is required and is the IP address of the forwarding rule. For GCP legacy private endpoint architecture, this is not used.\n"},"privateEndpointResourceId":{"type":"string","description":"Unique identifier of the private endpoint.\n"},"privateLinkId":{"type":"string","description":"Unique identifier of the `AWS`, `AZURE` or `GCP` PrivateLink connection which is created by \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-go=\"`PrivateLinkEndpoint`\" pulumi-lang-python=\"`PrivateLinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpoint`\"\u003e`mongodbatlas.PrivateLinkEndpoint`\u003c/span\u003e resource.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"Unique identifier for the project, also known as \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e in the official documentation.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Cloud provider for which you want to create a private endpoint. Atlas accepts `AWS`, `AZURE` or `GCP`.\n","willReplaceOnChanges":true}},"type":"object"}},"mongodbatlas:index/privatelinkEndpointServiceDataFederationOnlineArchive:PrivatelinkEndpointServiceDataFederationOnlineArchive":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive`\" pulumi-lang-go=\"`PrivatelinkEndpointServiceDataFederationOnlineArchive`\" pulumi-lang-python=\"`PrivatelinkEndpointServiceDataFederationOnlineArchive`\" pulumi-lang-yaml=\"`mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive`\" pulumi-lang-java=\"`mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive`\"\u003e`mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive`\u003c/span\u003e provides a Private Endpoint Service resource for Data Federation and Online Archive. The resource allows you to create and manage a private endpoint for Federated Database Instances and Online Archives to the specified project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **NOTE:** Updates are limited to the \u003cspan pulumi-lang-nodejs=\"`comment`\" pulumi-lang-dotnet=\"`Comment`\" pulumi-lang-go=\"`comment`\" pulumi-lang-python=\"`comment`\" pulumi-lang-yaml=\"`comment`\" pulumi-lang-java=\"`comment`\"\u003e`comment`\u003c/span\u003e argument.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst atlas_project = new mongodbatlas.Project(\"atlas-project\", {\n    orgId: atlasOrgId,\n    name: atlasProjectName,\n});\nconst test = new aws.index.VpcEndpoint(\"test\", {\n    vpcId: \"vpc-7fc0a543\",\n    serviceName: \"\u003cSERVICE-NAME\u003e\",\n    vpcEndpointType: \"Interface\",\n    subnetIds: [\"subnet-de0406d2\"],\n    securityGroupIds: [\"sg-3f238186\"],\n});\nconst testPrivatelinkEndpointServiceDataFederationOnlineArchive = new mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\", {\n    projectId: atlas_project.id,\n    endpointId: test.id,\n    providerName: \"AWS\",\n    comment: \"Test\",\n    region: \"US_EAST_1\",\n    customerEndpointDnsName: test.dnsEntry[0].dnsName,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_mongodbatlas as mongodbatlas\n\natlas_project = mongodbatlas.Project(\"atlas-project\",\n    org_id=atlas_org_id,\n    name=atlas_project_name)\ntest = aws.index.VpcEndpoint(\"test\",\n    vpc_id=vpc-7fc0a543,\n    service_name=\u003cSERVICE-NAME\u003e,\n    vpc_endpoint_type=Interface,\n    subnet_ids=[subnet-de0406d2],\n    security_group_ids=[sg-3f238186])\ntest_privatelink_endpoint_service_data_federation_online_archive = mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\",\n    project_id=atlas_project.id,\n    endpoint_id=test[\"id\"],\n    provider_name=\"AWS\",\n    comment=\"Test\",\n    region=\"US_EAST_1\",\n    customer_endpoint_dns_name=test[\"dnsEntry\"][0][\"dnsName\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var atlas_project = new Mongodbatlas.Project(\"atlas-project\", new()\n    {\n        OrgId = atlasOrgId,\n        Name = atlasProjectName,\n    });\n\n    var test = new Aws.Index.VpcEndpoint(\"test\", new()\n    {\n        VpcId = \"vpc-7fc0a543\",\n        ServiceName = \"\u003cSERVICE-NAME\u003e\",\n        VpcEndpointType = \"Interface\",\n        SubnetIds = new[]\n        {\n            \"subnet-de0406d2\",\n        },\n        SecurityGroupIds = new[]\n        {\n            \"sg-3f238186\",\n        },\n    });\n\n    var testPrivatelinkEndpointServiceDataFederationOnlineArchive = new Mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\", new()\n    {\n        ProjectId = atlas_project.Id,\n        EndpointId = test.Id,\n        ProviderName = \"AWS\",\n        Comment = \"Test\",\n        Region = \"US_EAST_1\",\n        CustomerEndpointDnsName = test.DnsEntry[0].DnsName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tatlas_project, err := mongodbatlas.NewProject(ctx, \"atlas-project\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tOrgId: pulumi.Any(atlasOrgId),\n\t\t\tName:  pulumi.Any(atlasProjectName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := aws.NewVpcEndpoint(ctx, \"test\", \u0026aws.VpcEndpointArgs{\n\t\t\tVpcId:           \"vpc-7fc0a543\",\n\t\t\tServiceName:     \"\u003cSERVICE-NAME\u003e\",\n\t\t\tVpcEndpointType: \"Interface\",\n\t\t\tSubnetIds: []string{\n\t\t\t\t\"subnet-de0406d2\",\n\t\t\t},\n\t\t\tSecurityGroupIds: []string{\n\t\t\t\t\"sg-3f238186\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewPrivatelinkEndpointServiceDataFederationOnlineArchive(ctx, \"test\", \u0026mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs{\n\t\t\tProjectId:               atlas_project.ID(),\n\t\t\tEndpointId:              test.Id,\n\t\t\tProviderName:            pulumi.String(\"AWS\"),\n\t\t\tComment:                 pulumi.String(\"Test\"),\n\t\t\tRegion:                  pulumi.String(\"US_EAST_1\"),\n\t\t\tCustomerEndpointDnsName: test.DnsEntry[0].DnsName,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.aws.VpcEndpoint;\nimport com.pulumi.aws.VpcEndpointArgs;\nimport com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive;\nimport com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var atlas_project = new Project(\"atlas-project\", ProjectArgs.builder()\n            .orgId(atlasOrgId)\n            .name(atlasProjectName)\n            .build());\n\n        var test = new VpcEndpoint(\"test\", VpcEndpointArgs.builder()\n            .vpcId(\"vpc-7fc0a543\")\n            .serviceName(\"\u003cSERVICE-NAME\u003e\")\n            .vpcEndpointType(\"Interface\")\n            .subnetIds(List.of(\"subnet-de0406d2\"))\n            .securityGroupIds(List.of(\"sg-3f238186\"))\n            .build());\n\n        var testPrivatelinkEndpointServiceDataFederationOnlineArchive = new PrivatelinkEndpointServiceDataFederationOnlineArchive(\"testPrivatelinkEndpointServiceDataFederationOnlineArchive\", PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs.builder()\n            .projectId(atlas_project.id())\n            .endpointId(test.id())\n            .providerName(\"AWS\")\n            .comment(\"Test\")\n            .region(\"US_EAST_1\")\n            .customerEndpointDnsName(test.dnsEntry()[0].dnsName())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  atlas-project:\n    type: mongodbatlas:Project\n    properties:\n      orgId: ${atlasOrgId}\n      name: ${atlasProjectName}\n  test:\n    type: aws:VpcEndpoint\n    properties:\n      vpcId: vpc-7fc0a543\n      serviceName: \u003cSERVICE-NAME\u003e\n      vpcEndpointType: Interface\n      subnetIds:\n        - subnet-de0406d2\n      securityGroupIds:\n        - sg-3f238186\n  testPrivatelinkEndpointServiceDataFederationOnlineArchive:\n    type: mongodbatlas:PrivatelinkEndpointServiceDataFederationOnlineArchive\n    name: test\n    properties:\n      projectId: ${[\"atlas-project\"].id}\n      endpointId: ${test.id}\n      providerName: AWS\n      comment: Test\n      region: US_EAST_1\n      customerEndpointDnsName: ${test.dnsEntry[0].dnsName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nThe \u003cspan pulumi-lang-nodejs=\"`serviceName`\" pulumi-lang-dotnet=\"`ServiceName`\" pulumi-lang-go=\"`serviceName`\" pulumi-lang-python=\"`service_name`\" pulumi-lang-yaml=\"`serviceName`\" pulumi-lang-java=\"`serviceName`\"\u003e`service_name`\u003c/span\u003e value for the region in question can be found in the [MongoDB Atlas Administration](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createdatafederationprivateendpoint) documentation.\n\n### Further Examples\n- AWS PrivateLink for Data Federation and Online Archive\n\n## Import\n\nPrivate Endpoint Service resource for Data Federation and Online Archive can be imported using project ID, endpoint ID, in the format \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e--\u003cspan pulumi-lang-nodejs=\"`endpointId`\" pulumi-lang-dotnet=\"`EndpointId`\" pulumi-lang-go=\"`endpointId`\" pulumi-lang-python=\"`endpoint_id`\" pulumi-lang-yaml=\"`endpointId`\" pulumi-lang-java=\"`endpointId`\"\u003e`endpoint_id`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/privatelinkEndpointServiceDataFederationOnlineArchive:PrivatelinkEndpointServiceDataFederationOnlineArchive example 1112222b3bf99403840e8934--vpce-3bf78b0ddee411ba1\n```\n\nSee [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation/operation/createDataFederationPrivateEndpoint) Documentation for more information.\n\n","properties":{"comment":{"type":"string","description":"Human-readable string to associate with this private endpoint.\n"},"customerEndpointDnsName":{"type":"string","description":"Human-readable label to identify VPC endpoint DNS name. If defined, you must also specify a value for \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e.\n"},"endpointId":{"type":"string","description":"Unique 22-character alphanumeric string that identifies the private endpoint. See [Atlas Data Federation supports Amazon Web Services private endpoints using the AWS PrivateLink feature](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation/operation/createDataFederationPrivateEndpoint).\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"providerName":{"type":"string","description":"Human-readable label that identifies the cloud service provider.\n"},"region":{"type":"string","description":"Human-readable label to identify the region of VPC endpoint.  Requires the **Atlas region name**, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/). If defined, you must also specify a value for \u003cspan pulumi-lang-nodejs=\"`customerEndpointDnsName`\" pulumi-lang-dotnet=\"`CustomerEndpointDnsName`\" pulumi-lang-go=\"`customerEndpointDnsName`\" pulumi-lang-python=\"`customer_endpoint_dns_name`\" pulumi-lang-yaml=\"`customerEndpointDnsName`\" pulumi-lang-java=\"`customerEndpointDnsName`\"\u003e`customer_endpoint_dns_name`\u003c/span\u003e.\n"},"type":{"type":"string","description":"Human-readable label that identifies the resource type associated with this private endpoint.\n"}},"required":["endpointId","projectId","providerName","type"],"inputProperties":{"comment":{"type":"string","description":"Human-readable string to associate with this private endpoint.\n"},"customerEndpointDnsName":{"type":"string","description":"Human-readable label to identify VPC endpoint DNS name. If defined, you must also specify a value for \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e.\n","willReplaceOnChanges":true},"endpointId":{"type":"string","description":"Unique 22-character alphanumeric string that identifies the private endpoint. See [Atlas Data Federation supports Amazon Web Services private endpoints using the AWS PrivateLink feature](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation/operation/createDataFederationPrivateEndpoint).\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Human-readable label that identifies the cloud service provider.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Human-readable label to identify the region of VPC endpoint.  Requires the **Atlas region name**, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/). If defined, you must also specify a value for \u003cspan pulumi-lang-nodejs=\"`customerEndpointDnsName`\" pulumi-lang-dotnet=\"`CustomerEndpointDnsName`\" pulumi-lang-go=\"`customerEndpointDnsName`\" pulumi-lang-python=\"`customer_endpoint_dns_name`\" pulumi-lang-yaml=\"`customerEndpointDnsName`\" pulumi-lang-java=\"`customerEndpointDnsName`\"\u003e`customer_endpoint_dns_name`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"requiredInputs":["endpointId","projectId","providerName"],"stateInputs":{"description":"Input properties used for looking up and filtering PrivatelinkEndpointServiceDataFederationOnlineArchive resources.\n","properties":{"comment":{"type":"string","description":"Human-readable string to associate with this private endpoint.\n"},"customerEndpointDnsName":{"type":"string","description":"Human-readable label to identify VPC endpoint DNS name. If defined, you must also specify a value for \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e.\n","willReplaceOnChanges":true},"endpointId":{"type":"string","description":"Unique 22-character alphanumeric string that identifies the private endpoint. See [Atlas Data Federation supports Amazon Web Services private endpoints using the AWS PrivateLink feature](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation/operation/createDataFederationPrivateEndpoint).\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Human-readable label that identifies the cloud service provider.\n","willReplaceOnChanges":true},"region":{"type":"string","description":"Human-readable label to identify the region of VPC endpoint.  Requires the **Atlas region name**, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/). If defined, you must also specify a value for \u003cspan pulumi-lang-nodejs=\"`customerEndpointDnsName`\" pulumi-lang-dotnet=\"`CustomerEndpointDnsName`\" pulumi-lang-go=\"`customerEndpointDnsName`\" pulumi-lang-python=\"`customer_endpoint_dns_name`\" pulumi-lang-yaml=\"`customerEndpointDnsName`\" pulumi-lang-java=\"`customerEndpointDnsName`\"\u003e`customer_endpoint_dns_name`\u003c/span\u003e.\n","willReplaceOnChanges":true},"type":{"type":"string","description":"Human-readable label that identifies the resource type associated with this private endpoint.\n"}},"type":"object"}},"mongodbatlas:index/project:Project":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Project`\" pulumi-lang-dotnet=\"`mongodbatlas.Project`\" pulumi-lang-go=\"`Project`\" pulumi-lang-python=\"`Project`\" pulumi-lang-yaml=\"`mongodbatlas.Project`\" pulumi-lang-java=\"`mongodbatlas.Project`\"\u003e`mongodbatlas.Project`\u003c/span\u003e provides a Project resource. This allows project to be created.\n\n\u003e **NOTE:** If Backup Compliance Policy is enabled for the project for which this backup schedule is defined, you cannot delete the Atlas project if any snapshots exist.  See [Backup Compliance Policy Prohibited Actions and Considerations](https://www.mongodb.com/docs/atlas/backup/cloud-backup/backup-compliance-policy/#configure-a-backup-compliance-policy).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getRolesOrgId({});\nconst testProject = new mongodbatlas.Project(\"test\", {\n    name: \"project-name\",\n    orgId: test.then(test =\u003e test.orgId),\n    projectOwnerId: \"\u003cOWNER_ACCOUNT_ID\u003e\",\n    limits: [\n        {\n            name: \"atlas.project.deployment.clusters\",\n            value: 26,\n        },\n        {\n            name: \"atlas.project.deployment.nodesPerPrivateLinkRegion\",\n            value: 51,\n        },\n    ],\n    isCollectDatabaseSpecificsStatisticsEnabled: true,\n    isDataExplorerEnabled: true,\n    isExtendedStorageSizesEnabled: true,\n    isPerformanceAdvisorEnabled: true,\n    isRealtimePerformancePanelEnabled: true,\n    isSchemaAdvisorEnabled: true,\n    isSlowOperationThresholdingEnabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_roles_org_id()\ntest_project = mongodbatlas.Project(\"test\",\n    name=\"project-name\",\n    org_id=test.org_id,\n    project_owner_id=\"\u003cOWNER_ACCOUNT_ID\u003e\",\n    limits=[\n        {\n            \"name\": \"atlas.project.deployment.clusters\",\n            \"value\": 26,\n        },\n        {\n            \"name\": \"atlas.project.deployment.nodesPerPrivateLinkRegion\",\n            \"value\": 51,\n        },\n    ],\n    is_collect_database_specifics_statistics_enabled=True,\n    is_data_explorer_enabled=True,\n    is_extended_storage_sizes_enabled=True,\n    is_performance_advisor_enabled=True,\n    is_realtime_performance_panel_enabled=True,\n    is_schema_advisor_enabled=True,\n    is_slow_operation_thresholding_enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetRolesOrgId.Invoke();\n\n    var testProject = new Mongodbatlas.Project(\"test\", new()\n    {\n        Name = \"project-name\",\n        OrgId = test.Apply(getRolesOrgIdResult =\u003e getRolesOrgIdResult.OrgId),\n        ProjectOwnerId = \"\u003cOWNER_ACCOUNT_ID\u003e\",\n        Limits = new[]\n        {\n            new Mongodbatlas.Inputs.ProjectLimitArgs\n            {\n                Name = \"atlas.project.deployment.clusters\",\n                Value = 26,\n            },\n            new Mongodbatlas.Inputs.ProjectLimitArgs\n            {\n                Name = \"atlas.project.deployment.nodesPerPrivateLinkRegion\",\n                Value = 51,\n            },\n        },\n        IsCollectDatabaseSpecificsStatisticsEnabled = true,\n        IsDataExplorerEnabled = true,\n        IsExtendedStorageSizesEnabled = true,\n        IsPerformanceAdvisorEnabled = true,\n        IsRealtimePerformancePanelEnabled = true,\n        IsSchemaAdvisorEnabled = true,\n        IsSlowOperationThresholdingEnabled = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.GetRolesOrgId(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewProject(ctx, \"test\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:           pulumi.String(\"project-name\"),\n\t\t\tOrgId:          pulumi.String(test.OrgId),\n\t\t\tProjectOwnerId: pulumi.String(\"\u003cOWNER_ACCOUNT_ID\u003e\"),\n\t\t\tLimits: mongodbatlas.ProjectLimitArray{\n\t\t\t\t\u0026mongodbatlas.ProjectLimitArgs{\n\t\t\t\t\tName:  pulumi.String(\"atlas.project.deployment.clusters\"),\n\t\t\t\t\tValue: pulumi.Int(26),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.ProjectLimitArgs{\n\t\t\t\t\tName:  pulumi.String(\"atlas.project.deployment.nodesPerPrivateLinkRegion\"),\n\t\t\t\t\tValue: pulumi.Int(51),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIsCollectDatabaseSpecificsStatisticsEnabled: pulumi.Bool(true),\n\t\t\tIsDataExplorerEnabled:                       pulumi.Bool(true),\n\t\t\tIsExtendedStorageSizesEnabled:               pulumi.Bool(true),\n\t\t\tIsPerformanceAdvisorEnabled:                 pulumi.Bool(true),\n\t\t\tIsRealtimePerformancePanelEnabled:           pulumi.Bool(true),\n\t\t\tIsSchemaAdvisorEnabled:                      pulumi.Bool(true),\n\t\t\tIsSlowOperationThresholdingEnabled:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getRolesOrgId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var testProject = new Project(\"testProject\", ProjectArgs.builder()\n            .name(\"project-name\")\n            .orgId(test.orgId())\n            .projectOwnerId(\"\u003cOWNER_ACCOUNT_ID\u003e\")\n            .limits(            \n                ProjectLimitArgs.builder()\n                    .name(\"atlas.project.deployment.clusters\")\n                    .value(26)\n                    .build(),\n                ProjectLimitArgs.builder()\n                    .name(\"atlas.project.deployment.nodesPerPrivateLinkRegion\")\n                    .value(51)\n                    .build())\n            .isCollectDatabaseSpecificsStatisticsEnabled(true)\n            .isDataExplorerEnabled(true)\n            .isExtendedStorageSizesEnabled(true)\n            .isPerformanceAdvisorEnabled(true)\n            .isRealtimePerformancePanelEnabled(true)\n            .isSchemaAdvisorEnabled(true)\n            .isSlowOperationThresholdingEnabled(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testProject:\n    type: mongodbatlas:Project\n    name: test\n    properties:\n      name: project-name\n      orgId: ${test.orgId}\n      projectOwnerId: \u003cOWNER_ACCOUNT_ID\u003e\n      limits:\n        - name: atlas.project.deployment.clusters\n          value: 26\n        - name: atlas.project.deployment.nodesPerPrivateLinkRegion\n          value: 51\n      isCollectDatabaseSpecificsStatisticsEnabled: true\n      isDataExplorerEnabled: true\n      isExtendedStorageSizesEnabled: true\n      isPerformanceAdvisorEnabled: true\n      isRealtimePerformancePanelEnabled: true\n      isSchemaAdvisorEnabled: true\n      isSlowOperationThresholdingEnabled: true\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getRolesOrgId\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Atlas Project with custom limits\n\n## Import\n\nProject must be imported using project ID, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/project:Project my_project 5d09d6a59ccf6445652a444a\n```\nFor more information see: [MongoDB Atlas Admin API Projects](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Projects) and [MongoDB Atlas Admin API Teams](https://docs.atlas.mongodb.com/reference/api/teams/) Documentation for more information.\n\n","properties":{"clusterCount":{"type":"integer","description":"The number of Atlas clusters deployed in the project.\n"},"created":{"type":"string","description":"The ISO-8601-formatted timestamp of when Atlas created the project.\n"},"ipAddresses":{"$ref":"#/types/mongodbatlas:index/ProjectIpAddresses:ProjectIpAddresses","description":"IP addresses in a project categorized by services. See IP Addresses. **WARNING:** This attribute is deprecated, use the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-go=\"`getProjectIpAddresses`\" pulumi-lang-python=\"`get_project_ip_addresses`\" pulumi-lang-yaml=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-java=\"`mongodbatlas.getProjectIpAddresses`\"\u003e`mongodbatlas.getProjectIpAddresses`\u003c/span\u003e data source instead.\n","deprecationMessage":"This parameter is deprecated. Please transition to\u003cspan pulumi-lang-nodejs=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-dotnet=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-go=\" getProjectIpAddresses \" pulumi-lang-python=\" get_project_ip_addresses \" pulumi-lang-yaml=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-java=\" mongodbatlas.getProjectIpAddresses \"\u003e mongodbatlas.getProjectIpAddresses \u003c/span\u003edata source."},"isCollectDatabaseSpecificsStatisticsEnabled":{"type":"boolean","description":"Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project. By default, this flag is set to true.\n"},"isDataExplorerEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Data Explorer for the project. If enabled, you can query your database with an easy to use interface.  When Data Explorer is disabled, you cannot terminate slow operations from the [Real-Time Performance Panel](https://www.mongodb.com/docs/atlas/real-time-performance-panel/#std-label-real-time-metrics-status-tab) or create indexes from the [Performance Advisor](https://www.mongodb.com/docs/atlas/performance-advisor/#std-label-performance-advisor). You can still view Performance Advisor recommendations, but you must create those indexes from [mongosh](https://www.mongodb.com/docs/mongodb-shell/#mongodb-binary-bin.mongosh). By default, this flag is set to true.\n"},"isExtendedStorageSizesEnabled":{"type":"boolean","description":"Flag that indicates whether to enable extended storage sizes for the specified project. Clusters with extended storage sizes must be on AWS or GCP, and cannot span multiple regions. When extending storage size, initial syncs and cross-project snapshot restores will be slow. This setting should only be used as a measure of temporary relief; consider sharding if more storage is required.\n"},"isPerformanceAdvisorEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Performance Advisor and Profiler for the project. If enabled, you can analyze database logs to recommend performance improvements. By default, this flag is set to true.\n"},"isRealtimePerformancePanelEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Real Time Performance Panel for the project. If enabled, you can see real time metrics from your MongoDB database. By default, this flag is set to true.\n"},"isSchemaAdvisorEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Schema Advisor for the project. If enabled, you receive customized recommendations to optimize your data model and enhance performance. Disable this setting to disable schema suggestions in the [Performance Advisor](https://www.mongodb.com/docs/atlas/performance-advisor/#std-label-performance-advisor) and the [Data Explorer](https://www.mongodb.com/docs/atlas/atlas-ui/#std-label-atlas-ui). By default, this flag is set to true.\n"},"isSlowOperationThresholdingEnabled":{"type":"boolean","description":"(Optional) Flag that enables MongoDB Cloud to use its slow operation threshold for the specified project. The threshold determines which operations the Performance Advisor and Query Profiler considers slow. When enabled, MongoDB Cloud uses the average execution time for operations on your cluster to determine slow-running queries. As a result, the threshold is more pertinent to your cluster workload. The slow operation threshold is enabled by default for dedicated clusters (M10+). When disabled, MongoDB Cloud considers any operation that takes longer than 100 milliseconds to be slow. **Note**: To use this attribute, the requesting API Key must have the Project Owner role, if not it will show a warning and will return \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If you are not using this field, you don't need to take any action.\n","deprecationMessage":"This parameter is deprecated."},"limits":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectLimit:ProjectLimit"}},"name":{"type":"string","description":"The name of the project you want to create.\n"},"orgId":{"type":"string","description":"The ID of the organization you want to create the project within.\n"},"projectOwnerId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Atlas user account to be granted the [Project Owner](https://docs.atlas.mongodb.com/reference/user-roles/#mongodb-authrole-Project-Owner) role on the specified project. If you set this parameter, it overrides the default value of the oldest [Organization Owner](https://docs.atlas.mongodb.com/reference/user-roles/#mongodb-authrole-Organization-Owner).\n"},"regionUsageRestrictions":{"type":"string","description":"Designates that this project can be used for government regions only.  If not set the project will default to standard regions.   You cannot deploy clusters across government and standard regions in the same project. AWS is the only cloud provider for AtlasGov.  For more information see [MongoDB Atlas for Government](https://www.mongodb.com/docs/atlas/government/api/#creating-a-project).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the project. See below.\n"},"teams":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectTeam:ProjectTeam"},"deprecationMessage":"This parameter is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-go=\"`TeamProjectAssignment`\" pulumi-lang-python=\"`TeamProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.TeamProjectAssignment`\"\u003e`mongodbatlas.TeamProjectAssignment`\u003c/span\u003e. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management."},"withDefaultAlertsSettings":{"type":"boolean","description":"Flag that indicates whether to create the project with default alert settings. This setting cannot be updated after project creation. By default, this flag is set to true.\n"}},"required":["clusterCount","created","ipAddresses","isCollectDatabaseSpecificsStatisticsEnabled","isDataExplorerEnabled","isExtendedStorageSizesEnabled","isPerformanceAdvisorEnabled","isRealtimePerformancePanelEnabled","isSchemaAdvisorEnabled","isSlowOperationThresholdingEnabled","name","orgId","regionUsageRestrictions","withDefaultAlertsSettings"],"inputProperties":{"isCollectDatabaseSpecificsStatisticsEnabled":{"type":"boolean","description":"Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project. By default, this flag is set to true.\n"},"isDataExplorerEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Data Explorer for the project. If enabled, you can query your database with an easy to use interface.  When Data Explorer is disabled, you cannot terminate slow operations from the [Real-Time Performance Panel](https://www.mongodb.com/docs/atlas/real-time-performance-panel/#std-label-real-time-metrics-status-tab) or create indexes from the [Performance Advisor](https://www.mongodb.com/docs/atlas/performance-advisor/#std-label-performance-advisor). You can still view Performance Advisor recommendations, but you must create those indexes from [mongosh](https://www.mongodb.com/docs/mongodb-shell/#mongodb-binary-bin.mongosh). By default, this flag is set to true.\n"},"isExtendedStorageSizesEnabled":{"type":"boolean","description":"Flag that indicates whether to enable extended storage sizes for the specified project. Clusters with extended storage sizes must be on AWS or GCP, and cannot span multiple regions. When extending storage size, initial syncs and cross-project snapshot restores will be slow. This setting should only be used as a measure of temporary relief; consider sharding if more storage is required.\n"},"isPerformanceAdvisorEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Performance Advisor and Profiler for the project. If enabled, you can analyze database logs to recommend performance improvements. By default, this flag is set to true.\n"},"isRealtimePerformancePanelEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Real Time Performance Panel for the project. If enabled, you can see real time metrics from your MongoDB database. By default, this flag is set to true.\n"},"isSchemaAdvisorEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Schema Advisor for the project. If enabled, you receive customized recommendations to optimize your data model and enhance performance. Disable this setting to disable schema suggestions in the [Performance Advisor](https://www.mongodb.com/docs/atlas/performance-advisor/#std-label-performance-advisor) and the [Data Explorer](https://www.mongodb.com/docs/atlas/atlas-ui/#std-label-atlas-ui). By default, this flag is set to true.\n"},"isSlowOperationThresholdingEnabled":{"type":"boolean","description":"(Optional) Flag that enables MongoDB Cloud to use its slow operation threshold for the specified project. The threshold determines which operations the Performance Advisor and Query Profiler considers slow. When enabled, MongoDB Cloud uses the average execution time for operations on your cluster to determine slow-running queries. As a result, the threshold is more pertinent to your cluster workload. The slow operation threshold is enabled by default for dedicated clusters (M10+). When disabled, MongoDB Cloud considers any operation that takes longer than 100 milliseconds to be slow. **Note**: To use this attribute, the requesting API Key must have the Project Owner role, if not it will show a warning and will return \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If you are not using this field, you don't need to take any action.\n","deprecationMessage":"This parameter is deprecated."},"limits":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectLimit:ProjectLimit"}},"name":{"type":"string","description":"The name of the project you want to create.\n"},"orgId":{"type":"string","description":"The ID of the organization you want to create the project within.\n"},"projectOwnerId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Atlas user account to be granted the [Project Owner](https://docs.atlas.mongodb.com/reference/user-roles/#mongodb-authrole-Project-Owner) role on the specified project. If you set this parameter, it overrides the default value of the oldest [Organization Owner](https://docs.atlas.mongodb.com/reference/user-roles/#mongodb-authrole-Organization-Owner).\n"},"regionUsageRestrictions":{"type":"string","description":"Designates that this project can be used for government regions only.  If not set the project will default to standard regions.   You cannot deploy clusters across government and standard regions in the same project. AWS is the only cloud provider for AtlasGov.  For more information see [MongoDB Atlas for Government](https://www.mongodb.com/docs/atlas/government/api/#creating-a-project).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the project. See below.\n"},"teams":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectTeam:ProjectTeam"},"deprecationMessage":"This parameter is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-go=\"`TeamProjectAssignment`\" pulumi-lang-python=\"`TeamProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.TeamProjectAssignment`\"\u003e`mongodbatlas.TeamProjectAssignment`\u003c/span\u003e. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management."},"withDefaultAlertsSettings":{"type":"boolean","description":"Flag that indicates whether to create the project with default alert settings. This setting cannot be updated after project creation. By default, this flag is set to true.\n"}},"requiredInputs":["orgId"],"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"clusterCount":{"type":"integer","description":"The number of Atlas clusters deployed in the project.\n"},"created":{"type":"string","description":"The ISO-8601-formatted timestamp of when Atlas created the project.\n"},"ipAddresses":{"$ref":"#/types/mongodbatlas:index/ProjectIpAddresses:ProjectIpAddresses","description":"IP addresses in a project categorized by services. See IP Addresses. **WARNING:** This attribute is deprecated, use the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-go=\"`getProjectIpAddresses`\" pulumi-lang-python=\"`get_project_ip_addresses`\" pulumi-lang-yaml=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-java=\"`mongodbatlas.getProjectIpAddresses`\"\u003e`mongodbatlas.getProjectIpAddresses`\u003c/span\u003e data source instead.\n","deprecationMessage":"This parameter is deprecated. Please transition to\u003cspan pulumi-lang-nodejs=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-dotnet=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-go=\" getProjectIpAddresses \" pulumi-lang-python=\" get_project_ip_addresses \" pulumi-lang-yaml=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-java=\" mongodbatlas.getProjectIpAddresses \"\u003e mongodbatlas.getProjectIpAddresses \u003c/span\u003edata source."},"isCollectDatabaseSpecificsStatisticsEnabled":{"type":"boolean","description":"Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project. By default, this flag is set to true.\n"},"isDataExplorerEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Data Explorer for the project. If enabled, you can query your database with an easy to use interface.  When Data Explorer is disabled, you cannot terminate slow operations from the [Real-Time Performance Panel](https://www.mongodb.com/docs/atlas/real-time-performance-panel/#std-label-real-time-metrics-status-tab) or create indexes from the [Performance Advisor](https://www.mongodb.com/docs/atlas/performance-advisor/#std-label-performance-advisor). You can still view Performance Advisor recommendations, but you must create those indexes from [mongosh](https://www.mongodb.com/docs/mongodb-shell/#mongodb-binary-bin.mongosh). By default, this flag is set to true.\n"},"isExtendedStorageSizesEnabled":{"type":"boolean","description":"Flag that indicates whether to enable extended storage sizes for the specified project. Clusters with extended storage sizes must be on AWS or GCP, and cannot span multiple regions. When extending storage size, initial syncs and cross-project snapshot restores will be slow. This setting should only be used as a measure of temporary relief; consider sharding if more storage is required.\n"},"isPerformanceAdvisorEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Performance Advisor and Profiler for the project. If enabled, you can analyze database logs to recommend performance improvements. By default, this flag is set to true.\n"},"isRealtimePerformancePanelEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Real Time Performance Panel for the project. If enabled, you can see real time metrics from your MongoDB database. By default, this flag is set to true.\n"},"isSchemaAdvisorEnabled":{"type":"boolean","description":"Flag that indicates whether to enable Schema Advisor for the project. If enabled, you receive customized recommendations to optimize your data model and enhance performance. Disable this setting to disable schema suggestions in the [Performance Advisor](https://www.mongodb.com/docs/atlas/performance-advisor/#std-label-performance-advisor) and the [Data Explorer](https://www.mongodb.com/docs/atlas/atlas-ui/#std-label-atlas-ui). By default, this flag is set to true.\n"},"isSlowOperationThresholdingEnabled":{"type":"boolean","description":"(Optional) Flag that enables MongoDB Cloud to use its slow operation threshold for the specified project. The threshold determines which operations the Performance Advisor and Query Profiler considers slow. When enabled, MongoDB Cloud uses the average execution time for operations on your cluster to determine slow-running queries. As a result, the threshold is more pertinent to your cluster workload. The slow operation threshold is enabled by default for dedicated clusters (M10+). When disabled, MongoDB Cloud considers any operation that takes longer than 100 milliseconds to be slow. **Note**: To use this attribute, the requesting API Key must have the Project Owner role, if not it will show a warning and will return \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If you are not using this field, you don't need to take any action.\n","deprecationMessage":"This parameter is deprecated."},"limits":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectLimit:ProjectLimit"}},"name":{"type":"string","description":"The name of the project you want to create.\n"},"orgId":{"type":"string","description":"The ID of the organization you want to create the project within.\n"},"projectOwnerId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Atlas user account to be granted the [Project Owner](https://docs.atlas.mongodb.com/reference/user-roles/#mongodb-authrole-Project-Owner) role on the specified project. If you set this parameter, it overrides the default value of the oldest [Organization Owner](https://docs.atlas.mongodb.com/reference/user-roles/#mongodb-authrole-Organization-Owner).\n"},"regionUsageRestrictions":{"type":"string","description":"Designates that this project can be used for government regions only.  If not set the project will default to standard regions.   You cannot deploy clusters across government and standard regions in the same project. AWS is the only cloud provider for AtlasGov.  For more information see [MongoDB Atlas for Government](https://www.mongodb.com/docs/atlas/government/api/#creating-a-project).\n"},"tags":{"type":"object","additionalProperties":{"type":"string"},"description":"Map that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the project. See below.\n"},"teams":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectTeam:ProjectTeam"},"deprecationMessage":"This parameter is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-go=\"`TeamProjectAssignment`\" pulumi-lang-python=\"`TeamProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.TeamProjectAssignment`\"\u003e`mongodbatlas.TeamProjectAssignment`\u003c/span\u003e. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management."},"withDefaultAlertsSettings":{"type":"boolean","description":"Flag that indicates whether to create the project with default alert settings. This setting cannot be updated after project creation. By default, this flag is set to true.\n"}},"type":"object"}},"mongodbatlas:index/projectApiKey:ProjectApiKey":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-go=\"`ProjectApiKey`\" pulumi-lang-python=\"`ProjectApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-java=\"`mongodbatlas.ProjectApiKey`\"\u003e`mongodbatlas.ProjectApiKey`\u003c/span\u003e provides a Project API Key resource. This allows project API Key to be created.\n\n\u003e **IMPORTANT NOTE** The use of \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-go=\"`ProjectApiKey`\" pulumi-lang-python=\"`ProjectApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-java=\"`mongodbatlas.ProjectApiKey`\"\u003e`mongodbatlas.ProjectApiKey`\u003c/span\u003e resource is no longer the recommended approach. For new configurations, we recommend using the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ApiKey`\" pulumi-lang-go=\"`ApiKey`\" pulumi-lang-python=\"`ApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ApiKey`\" pulumi-lang-java=\"`mongodbatlas.ApiKey`\"\u003e`mongodbatlas.ApiKey`\u003c/span\u003e resource and the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-go=\"`ApiKeyProjectAssignment`\" pulumi-lang-python=\"`ApiKeyProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.ApiKeyProjectAssignment`\"\u003e`mongodbatlas.ApiKeyProjectAssignment`\u003c/span\u003e resource to assign the API Keys to projects. This approach is more flexible and aligns with best practices. For existing configurations, the migration to the new pattern is **not required**. If you want to migrate, see the Migration Guide for step-by-step instructions on migrating from \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-go=\"`ProjectApiKey`\" pulumi-lang-python=\"`ProjectApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-java=\"`mongodbatlas.ProjectApiKey`\"\u003e`mongodbatlas.ProjectApiKey`\u003c/span\u003e to the new pattern.\n\n\u003e **IMPORTANT WARNING:** Managing Atlas Programmatic API Keys (PAKs) with Terraform will expose sensitive organizational secrets in Terraform's state. We suggest following Terraform's best practices. You may also want to consider managing your PAKs via a more secure method, such as the [HashiCorp Vault MongoDB Atlas Secrets Engine](https://developer.hashicorp.com/vault/docs/secrets/mongodbatlas).\n\n## Example Usage\n\n### Create And Assign PAK Together\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.ProjectApiKey(\"test\", {\n    description: \"Description of your API key\",\n    projectAssignments: [{\n        projectId: \"64259ee860c43338194b0f8e\",\n        roleNames: [\"GROUP_OWNER\"],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.ProjectApiKey(\"test\",\n    description=\"Description of your API key\",\n    project_assignments=[{\n        \"project_id\": \"64259ee860c43338194b0f8e\",\n        \"role_names\": [\"GROUP_OWNER\"],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.ProjectApiKey(\"test\", new()\n    {\n        Description = \"Description of your API key\",\n        ProjectAssignments = new[]\n        {\n            new Mongodbatlas.Inputs.ProjectApiKeyProjectAssignmentArgs\n            {\n                ProjectId = \"64259ee860c43338194b0f8e\",\n                RoleNames = new[]\n                {\n                    \"GROUP_OWNER\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewProjectApiKey(ctx, \"test\", \u0026mongodbatlas.ProjectApiKeyArgs{\n\t\t\tDescription: pulumi.String(\"Description of your API key\"),\n\t\t\tProjectAssignments: mongodbatlas.ProjectApiKeyProjectAssignmentArray{\n\t\t\t\t\u0026mongodbatlas.ProjectApiKeyProjectAssignmentArgs{\n\t\t\t\t\tProjectId: pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_OWNER\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectApiKey;\nimport com.pulumi.mongodbatlas.ProjectApiKeyArgs;\nimport com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ProjectApiKey(\"test\", ProjectApiKeyArgs.builder()\n            .description(\"Description of your API key\")\n            .projectAssignments(ProjectApiKeyProjectAssignmentArgs.builder()\n                .projectId(\"64259ee860c43338194b0f8e\")\n                .roleNames(\"GROUP_OWNER\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:ProjectApiKey\n    properties:\n      description: Description of your API key\n      projectAssignments:\n        - projectId: 64259ee860c43338194b0f8e\n          roleNames:\n            - GROUP_OWNER\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create And Assign PAK To Multiple Projects\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.ProjectApiKey(\"test\", {\n    description: \"Description of your API key\",\n    projectAssignments: [\n        {\n            projectId: \"64259ee860c43338194b0f8e\",\n            roleNames: [\n                \"GROUP_READ_ONLY\",\n                \"GROUP_OWNER\",\n            ],\n        },\n        {\n            projectId: \"74259ee860c43338194b0f8e\",\n            roleNames: [\"GROUP_READ_ONLY\"],\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.ProjectApiKey(\"test\",\n    description=\"Description of your API key\",\n    project_assignments=[\n        {\n            \"project_id\": \"64259ee860c43338194b0f8e\",\n            \"role_names\": [\n                \"GROUP_READ_ONLY\",\n                \"GROUP_OWNER\",\n            ],\n        },\n        {\n            \"project_id\": \"74259ee860c43338194b0f8e\",\n            \"role_names\": [\"GROUP_READ_ONLY\"],\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.ProjectApiKey(\"test\", new()\n    {\n        Description = \"Description of your API key\",\n        ProjectAssignments = new[]\n        {\n            new Mongodbatlas.Inputs.ProjectApiKeyProjectAssignmentArgs\n            {\n                ProjectId = \"64259ee860c43338194b0f8e\",\n                RoleNames = new[]\n                {\n                    \"GROUP_READ_ONLY\",\n                    \"GROUP_OWNER\",\n                },\n            },\n            new Mongodbatlas.Inputs.ProjectApiKeyProjectAssignmentArgs\n            {\n                ProjectId = \"74259ee860c43338194b0f8e\",\n                RoleNames = new[]\n                {\n                    \"GROUP_READ_ONLY\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewProjectApiKey(ctx, \"test\", \u0026mongodbatlas.ProjectApiKeyArgs{\n\t\t\tDescription: pulumi.String(\"Description of your API key\"),\n\t\t\tProjectAssignments: mongodbatlas.ProjectApiKeyProjectAssignmentArray{\n\t\t\t\t\u0026mongodbatlas.ProjectApiKeyProjectAssignmentArgs{\n\t\t\t\t\tProjectId: pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_READ_ONLY\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_OWNER\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.ProjectApiKeyProjectAssignmentArgs{\n\t\t\t\t\tProjectId: pulumi.String(\"74259ee860c43338194b0f8e\"),\n\t\t\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_READ_ONLY\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectApiKey;\nimport com.pulumi.mongodbatlas.ProjectApiKeyArgs;\nimport com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ProjectApiKey(\"test\", ProjectApiKeyArgs.builder()\n            .description(\"Description of your API key\")\n            .projectAssignments(            \n                ProjectApiKeyProjectAssignmentArgs.builder()\n                    .projectId(\"64259ee860c43338194b0f8e\")\n                    .roleNames(                    \n                        \"GROUP_READ_ONLY\",\n                        \"GROUP_OWNER\")\n                    .build(),\n                ProjectApiKeyProjectAssignmentArgs.builder()\n                    .projectId(\"74259ee860c43338194b0f8e\")\n                    .roleNames(\"GROUP_READ_ONLY\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:ProjectApiKey\n    properties:\n      description: Description of your API key\n      projectAssignments:\n        - projectId: 64259ee860c43338194b0f8e\n          roleNames:\n            - GROUP_READ_ONLY\n            - GROUP_OWNER\n        - projectId: 74259ee860c43338194b0f8e\n          roleNames:\n            - GROUP_READ_ONLY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Legacy Module: Create and Assign Project API Key\n\n## Import\n\nAPI Keys must be imported using project ID, API Key ID e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/projectApiKey:ProjectApiKey test 5d09d6a59ccf6445652a444a-6576974933969669\n```\nSee [MongoDB Atlas API - API Key](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Programmatic-API-Keys/operation/createProjectApiKey) - Documentation for more information.\n\n","properties":{"apiKeyId":{"type":"string","description":"Unique identifier for this Project API key.\n"},"description":{"type":"string","description":"Description of this Project API key.\n\n\u003e **NOTE:** Project created by API Keys must belong to an existing organization.\n"},"privateKey":{"type":"string","secret":true},"projectAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectApiKeyProjectAssignment:ProjectApiKeyProjectAssignment"}},"publicKey":{"type":"string"}},"required":["apiKeyId","description","privateKey","projectAssignments","publicKey"],"inputProperties":{"description":{"type":"string","description":"Description of this Project API key.\n\n\u003e **NOTE:** Project created by API Keys must belong to an existing organization.\n"},"projectAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectApiKeyProjectAssignment:ProjectApiKeyProjectAssignment"}}},"requiredInputs":["description","projectAssignments"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectApiKey resources.\n","properties":{"apiKeyId":{"type":"string","description":"Unique identifier for this Project API key.\n"},"description":{"type":"string","description":"Description of this Project API key.\n\n\u003e **NOTE:** Project created by API Keys must belong to an existing organization.\n"},"privateKey":{"type":"string","secret":true},"projectAssignments":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectApiKeyProjectAssignment:ProjectApiKeyProjectAssignment"}},"publicKey":{"type":"string"}},"type":"object"}},"mongodbatlas:index/projectInvitation:ProjectInvitation":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-go=\"`ProjectInvitation`\" pulumi-lang-python=\"`ProjectInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-java=\"`mongodbatlas.ProjectInvitation`\"\u003e`mongodbatlas.ProjectInvitation`\u003c/span\u003e invites a user to join an Atlas project.\n\n\u003e **DEPRECATION:** This resource is deprecated. Migrate to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-go=\"`CloudUserProjectAssignment`\" pulumi-lang-python=\"`CloudUserProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserProjectAssignment`\"\u003e`mongodbatlas.CloudUserProjectAssignment`\u003c/span\u003e for managing project membership. See the Project Invitation to Cloud User Project Assignment Migration Guide.\n\nEach invitation for an Atlas user includes roles that Atlas grants the user when they accept the invitation.\n\nThe [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#project-roles) describes the roles which can be assigned to a user.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find GROUP-ID in the official documentation.\n\n\u003e **IMPORTANT:** This resource is only for managing invitations, not for managing the Atlas User being invited. Possible provider behavior depending on the invitee's action:\n* If the user has not yet accepted the invitation, the provider leaves the invitation as is.\n* If the user has accepted the invitation and is now a project member, the provider will remove the invitation from the Terraform state.  The invitation must then be removed from the Terraform resource configuration.\n* If the user accepts the invitation and then leaves the project, the provider will re-add the invitation if the resource definition is not removed from the Terraform configuration.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.ProjectInvitation(\"test\", {\n    username: \"test-acc-username\",\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    roles: [\"GROUP_DATA_ACCESS_READ_WRITE\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.ProjectInvitation(\"test\",\n    username=\"test-acc-username\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    roles=[\"GROUP_DATA_ACCESS_READ_WRITE\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.ProjectInvitation(\"test\", new()\n    {\n        Username = \"test-acc-username\",\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Roles = new[]\n        {\n            \"GROUP_DATA_ACCESS_READ_WRITE\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewProjectInvitation(ctx, \"test\", \u0026mongodbatlas.ProjectInvitationArgs{\n\t\t\tUsername:  pulumi.String(\"test-acc-username\"),\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_READ_WRITE\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectInvitation;\nimport com.pulumi.mongodbatlas.ProjectInvitationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ProjectInvitation(\"test\", ProjectInvitationArgs.builder()\n            .username(\"test-acc-username\")\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .roles(\"GROUP_DATA_ACCESS_READ_WRITE\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:ProjectInvitation\n    properties:\n      username: test-acc-username\n      projectId: \u003cPROJECT-ID\u003e\n      roles:\n        - GROUP_DATA_ACCESS_READ_WRITE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.ProjectInvitation(\"test\", {\n    username: \"test-acc-username\",\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    roles: [\n        \"GROUP_READ_ONLY\",\n        \"GROUP_DATA_ACCESS_READ_ONLY\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.ProjectInvitation(\"test\",\n    username=\"test-acc-username\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    roles=[\n        \"GROUP_READ_ONLY\",\n        \"GROUP_DATA_ACCESS_READ_ONLY\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.ProjectInvitation(\"test\", new()\n    {\n        Username = \"test-acc-username\",\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Roles = new[]\n        {\n            \"GROUP_READ_ONLY\",\n            \"GROUP_DATA_ACCESS_READ_ONLY\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewProjectInvitation(ctx, \"test\", \u0026mongodbatlas.ProjectInvitationArgs{\n\t\t\tUsername:  pulumi.String(\"test-acc-username\"),\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_READ_ONLY\"),\n\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_READ_ONLY\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectInvitation;\nimport com.pulumi.mongodbatlas.ProjectInvitationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ProjectInvitation(\"test\", ProjectInvitationArgs.builder()\n            .username(\"test-acc-username\")\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .roles(            \n                \"GROUP_READ_ONLY\",\n                \"GROUP_DATA_ACCESS_READ_ONLY\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:ProjectInvitation\n    properties:\n      username: test-acc-username\n      projectId: \u003cPROJECT-ID\u003e\n      roles:\n        - GROUP_READ_ONLY\n        - GROUP_DATA_ACCESS_READ_ONLY\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Migrate Project Invitation to Cloud User Project Assignment\n\n## Import\n\n\u003e **IMPORTANT:**\nA project invitation can **not** be imported once it has been accepted.\n\nImport a user's invitation to a project by separating the \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and the \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e with a hyphen:\n\n```sh\n$ pulumi import mongodbatlas:index/projectInvitation:ProjectInvitation my_user 1112222b3bf99403840e8934-my_user@mongodb.com\n```\n\n","properties":{"createdAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when Atlas sent the invitation.\n"},"expiresAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the invitation expires. Users have 30 days to accept an invitation.\n"},"invitationId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the invitation in Atlas.\n"},"inviterUsername":{"type":"string","description":"Atlas user who invited \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e to the project.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project to which you want to invite a user.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"List of Atlas roles to assign to the invited user. If the user accepts the invitation, Atlas assigns these roles to them. Refer to the [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#project-roles) for information on valid roles.\n"},"username":{"type":"string","description":"Email address to which Atlas sent the invitation. The user uses this email address as their Atlas username if they accept this invitation.\n"}},"required":["createdAt","expiresAt","invitationId","inviterUsername","projectId","roles","username"],"inputProperties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project to which you want to invite a user.\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"type":"string"},"description":"List of Atlas roles to assign to the invited user. If the user accepts the invitation, Atlas assigns these roles to them. Refer to the [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#project-roles) for information on valid roles.\n"},"username":{"type":"string","description":"Email address to which Atlas sent the invitation. The user uses this email address as their Atlas username if they accept this invitation.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId","roles","username"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectInvitation resources.\n","properties":{"createdAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when Atlas sent the invitation.\n"},"expiresAt":{"type":"string","description":"Timestamp in ISO 8601 date and time format in UTC when the invitation expires. Users have 30 days to accept an invitation.\n"},"invitationId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the invitation in Atlas.\n"},"inviterUsername":{"type":"string","description":"Atlas user who invited \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e to the project.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project to which you want to invite a user.\n","willReplaceOnChanges":true},"roles":{"type":"array","items":{"type":"string"},"description":"List of Atlas roles to assign to the invited user. If the user accepts the invitation, Atlas assigns these roles to them. Refer to the [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#project-roles) for information on valid roles.\n"},"username":{"type":"string","description":"Email address to which Atlas sent the invitation. The user uses this email address as their Atlas username if they accept this invitation.\n","willReplaceOnChanges":true}},"type":"object"}},"mongodbatlas:index/projectIpAccessList:ProjectIpAccessList":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectIpAccessList`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectIpAccessList`\" pulumi-lang-go=\"`ProjectIpAccessList`\" pulumi-lang-python=\"`ProjectIpAccessList`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectIpAccessList`\" pulumi-lang-java=\"`mongodbatlas.ProjectIpAccessList`\"\u003e`mongodbatlas.ProjectIpAccessList`\u003c/span\u003e provides an IP Access List entry resource. The access list grants access from IPs, CIDRs or AWS Security Groups (if VPC Peering is enabled) to clusters within the Project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **IMPORTANT:** When you remove an entry from the access list, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider, hence a change will force the destruction and recreation of entries.\n\n\u003e **IMPORTANT:** During creation this resource does not validate whether the specified \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e already exists in the project's access list (known limitation). Defining a duplicate entry will result in a successful resource creation associated to the existing entry.\n\n## Example Usage\n\n### Using CIDR Block\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.ProjectIpAccessList(\"this\", {\n    projectId: projectId,\n    cidrBlock: \"1.2.3.4/32\",\n    comment: \"cidr block test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.ProjectIpAccessList(\"this\",\n    project_id=project_id,\n    cidr_block=\"1.2.3.4/32\",\n    comment=\"cidr block test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.ProjectIpAccessList(\"this\", new()\n    {\n        ProjectId = projectId,\n        CidrBlock = \"1.2.3.4/32\",\n        Comment = \"cidr block test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewProjectIpAccessList(ctx, \"this\", \u0026mongodbatlas.ProjectIpAccessListArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t\tComment:   pulumi.String(\"cidr block test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectIpAccessList;\nimport com.pulumi.mongodbatlas.ProjectIpAccessListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new ProjectIpAccessList(\"this\", ProjectIpAccessListArgs.builder()\n            .projectId(projectId)\n            .cidrBlock(\"1.2.3.4/32\")\n            .comment(\"cidr block test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:ProjectIpAccessList\n    properties:\n      projectId: ${projectId}\n      cidrBlock: 1.2.3.4/32\n      comment: cidr block test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using IP Address\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.ProjectIpAccessList(\"this\", {\n    projectId: projectId,\n    ipAddress: \"2.3.4.5\",\n    comment: \"ip address test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.ProjectIpAccessList(\"this\",\n    project_id=project_id,\n    ip_address=\"2.3.4.5\",\n    comment=\"ip address test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.ProjectIpAccessList(\"this\", new()\n    {\n        ProjectId = projectId,\n        IpAddress = \"2.3.4.5\",\n        Comment = \"ip address test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewProjectIpAccessList(ctx, \"this\", \u0026mongodbatlas.ProjectIpAccessListArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t\tComment:   pulumi.String(\"ip address test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectIpAccessList;\nimport com.pulumi.mongodbatlas.ProjectIpAccessListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new ProjectIpAccessList(\"this\", ProjectIpAccessListArgs.builder()\n            .projectId(projectId)\n            .ipAddress(\"2.3.4.5\")\n            .comment(\"ip address test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:ProjectIpAccessList\n    properties:\n      projectId: ${projectId}\n      ipAddress: 2.3.4.5\n      comment: ip address test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using an AWS Security Group\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.NetworkContainer(\"this\", {\n    projectId: projectId,\n    atlasCidrBlock: \"192.168.208.0/21\",\n    providerName: \"AWS\",\n    regionName: \"US_EAST_1\",\n});\nconst thisNetworkPeering = new mongodbatlas.NetworkPeering(\"this\", {\n    projectId: projectId,\n    containerId: _this.containerId,\n    accepterRegionName: \"us-east-1\",\n    providerName: \"AWS\",\n    routeTableCidrBlock: \"172.31.0.0/16\",\n    vpcId: \"vpc-0d93d6f69f1578bd8\",\n    awsAccountId: \"232589400519\",\n});\nconst thisProjectIpAccessList = new mongodbatlas.ProjectIpAccessList(\"this\", {\n    projectId: projectId,\n    awsSecurityGroup: \"sg-0026348ec11780bd1\",\n    comment: \"AWS Security Group test\",\n}, {\n    dependsOn: [thisNetworkPeering],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.NetworkContainer(\"this\",\n    project_id=project_id,\n    atlas_cidr_block=\"192.168.208.0/21\",\n    provider_name=\"AWS\",\n    region_name=\"US_EAST_1\")\nthis_network_peering = mongodbatlas.NetworkPeering(\"this\",\n    project_id=project_id,\n    container_id=this.container_id,\n    accepter_region_name=\"us-east-1\",\n    provider_name=\"AWS\",\n    route_table_cidr_block=\"172.31.0.0/16\",\n    vpc_id=\"vpc-0d93d6f69f1578bd8\",\n    aws_account_id=\"232589400519\")\nthis_project_ip_access_list = mongodbatlas.ProjectIpAccessList(\"this\",\n    project_id=project_id,\n    aws_security_group=\"sg-0026348ec11780bd1\",\n    comment=\"AWS Security Group test\",\n    opts = pulumi.ResourceOptions(depends_on=[this_network_peering]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.NetworkContainer(\"this\", new()\n    {\n        ProjectId = projectId,\n        AtlasCidrBlock = \"192.168.208.0/21\",\n        ProviderName = \"AWS\",\n        RegionName = \"US_EAST_1\",\n    });\n\n    var thisNetworkPeering = new Mongodbatlas.NetworkPeering(\"this\", new()\n    {\n        ProjectId = projectId,\n        ContainerId = @this.ContainerId,\n        AccepterRegionName = \"us-east-1\",\n        ProviderName = \"AWS\",\n        RouteTableCidrBlock = \"172.31.0.0/16\",\n        VpcId = \"vpc-0d93d6f69f1578bd8\",\n        AwsAccountId = \"232589400519\",\n    });\n\n    var thisProjectIpAccessList = new Mongodbatlas.ProjectIpAccessList(\"this\", new()\n    {\n        ProjectId = projectId,\n        AwsSecurityGroup = \"sg-0026348ec11780bd1\",\n        Comment = \"AWS Security Group test\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            thisNetworkPeering,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthis, err := mongodbatlas.NewNetworkContainer(ctx, \"this\", \u0026mongodbatlas.NetworkContainerArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tAtlasCidrBlock: pulumi.String(\"192.168.208.0/21\"),\n\t\t\tProviderName:   pulumi.String(\"AWS\"),\n\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisNetworkPeering, err := mongodbatlas.NewNetworkPeering(ctx, \"this\", \u0026mongodbatlas.NetworkPeeringArgs{\n\t\t\tProjectId:           pulumi.Any(projectId),\n\t\t\tContainerId:         this.ContainerId,\n\t\t\tAccepterRegionName:  pulumi.String(\"us-east-1\"),\n\t\t\tProviderName:        pulumi.String(\"AWS\"),\n\t\t\tRouteTableCidrBlock: pulumi.String(\"172.31.0.0/16\"),\n\t\t\tVpcId:               pulumi.String(\"vpc-0d93d6f69f1578bd8\"),\n\t\t\tAwsAccountId:        pulumi.String(\"232589400519\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewProjectIpAccessList(ctx, \"this\", \u0026mongodbatlas.ProjectIpAccessListArgs{\n\t\t\tProjectId:        pulumi.Any(projectId),\n\t\t\tAwsSecurityGroup: pulumi.String(\"sg-0026348ec11780bd1\"),\n\t\t\tComment:          pulumi.String(\"AWS Security Group test\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tthisNetworkPeering,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkContainer;\nimport com.pulumi.mongodbatlas.NetworkContainerArgs;\nimport com.pulumi.mongodbatlas.NetworkPeering;\nimport com.pulumi.mongodbatlas.NetworkPeeringArgs;\nimport com.pulumi.mongodbatlas.ProjectIpAccessList;\nimport com.pulumi.mongodbatlas.ProjectIpAccessListArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var this_ = new NetworkContainer(\"this\", NetworkContainerArgs.builder()\n            .projectId(projectId)\n            .atlasCidrBlock(\"192.168.208.0/21\")\n            .providerName(\"AWS\")\n            .regionName(\"US_EAST_1\")\n            .build());\n\n        var thisNetworkPeering = new NetworkPeering(\"thisNetworkPeering\", NetworkPeeringArgs.builder()\n            .projectId(projectId)\n            .containerId(this_.containerId())\n            .accepterRegionName(\"us-east-1\")\n            .providerName(\"AWS\")\n            .routeTableCidrBlock(\"172.31.0.0/16\")\n            .vpcId(\"vpc-0d93d6f69f1578bd8\")\n            .awsAccountId(\"232589400519\")\n            .build());\n\n        var thisProjectIpAccessList = new ProjectIpAccessList(\"thisProjectIpAccessList\", ProjectIpAccessListArgs.builder()\n            .projectId(projectId)\n            .awsSecurityGroup(\"sg-0026348ec11780bd1\")\n            .comment(\"AWS Security Group test\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(thisNetworkPeering)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  this:\n    type: mongodbatlas:NetworkContainer\n    properties:\n      projectId: ${projectId}\n      atlasCidrBlock: 192.168.208.0/21\n      providerName: AWS\n      regionName: US_EAST_1\n  thisNetworkPeering:\n    type: mongodbatlas:NetworkPeering\n    name: this\n    properties:\n      projectId: ${projectId}\n      containerId: ${this.containerId}\n      accepterRegionName: us-east-1\n      providerName: AWS\n      routeTableCidrBlock: 172.31.0.0/16\n      vpcId: vpc-0d93d6f69f1578bd8\n      awsAccountId: '232589400519'\n  thisProjectIpAccessList:\n    type: mongodbatlas:ProjectIpAccessList\n    name: this\n    properties:\n      projectId: ${projectId}\n      awsSecurityGroup: sg-0026348ec11780bd1\n      comment: AWS Security Group test\n    options:\n      dependsOn:\n        - ${thisNetworkPeering}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **IMPORTANT:** In order to use AWS Security Group(s) VPC Peering must be enabled like above example.\n\n\n### Further Examples\n- Project IP Access List\n\n## Import\n\nIP Access List entries can be imported using the \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/projectIpAccessList:ProjectIpAccessList this 5d0f1f74cf09a29120e123cd-10.242.88.0/21\n```\n\nFor more information, see [MongoDB Atlas API Reference](https://docs.atlas.mongodb.com/reference/api/access-lists/).\n\n","properties":{"awsSecurityGroup":{"type":"string","description":"Unique identifier of the AWS security group to add to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e.\n"},"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n"},"comment":{"type":"string","description":"Remark that explains the purpose or scope of this IP access list entry.\n"},"ipAddress":{"type":"string","description":"Single IP address to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/ProjectIpAccessListTimeouts:ProjectIpAccessListTimeouts"}},"required":["awsSecurityGroup","cidrBlock","comment","ipAddress","projectId"],"inputProperties":{"awsSecurityGroup":{"type":"string","description":"Unique identifier of the AWS security group to add to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e.\n"},"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n"},"comment":{"type":"string","description":"Remark that explains the purpose or scope of this IP access list entry.\n"},"ipAddress":{"type":"string","description":"Single IP address to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/ProjectIpAccessListTimeouts:ProjectIpAccessListTimeouts"}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectIpAccessList resources.\n","properties":{"awsSecurityGroup":{"type":"string","description":"Unique identifier of the AWS security group to add to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e.\n"},"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n"},"comment":{"type":"string","description":"Remark that explains the purpose or scope of this IP access list entry.\n"},"ipAddress":{"type":"string","description":"Single IP address to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/ProjectIpAccessListTimeouts:ProjectIpAccessListTimeouts"}},"type":"object"}},"mongodbatlas:index/projectServiceAccount:ProjectServiceAccount":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-go=\"`ProjectServiceAccount`\" pulumi-lang-python=\"`ProjectServiceAccount`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-java=\"`mongodbatlas.ProjectServiceAccount`\"\u003e`mongodbatlas.ProjectServiceAccount`\u003c/span\u003e provides a Project Service Account resource. The resource lets you create, update, delete, and import a Service Account for the specified Project.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n\u003e **IMPORTANT:** The use of \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-go=\"`ProjectServiceAccount`\" pulumi-lang-python=\"`ProjectServiceAccount`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-java=\"`mongodbatlas.ProjectServiceAccount`\"\u003e`mongodbatlas.ProjectServiceAccount`\u003c/span\u003e resource is not recommended for users with Organization Owner permissions. Instead, use the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServiceAccount`\" pulumi-lang-dotnet=\"`mongodbatlas.ServiceAccount`\" pulumi-lang-go=\"`ServiceAccount`\" pulumi-lang-python=\"`ServiceAccount`\" pulumi-lang-yaml=\"`mongodbatlas.ServiceAccount`\" pulumi-lang-java=\"`mongodbatlas.ServiceAccount`\"\u003e`mongodbatlas.ServiceAccount`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServiceAccountProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.ServiceAccountProjectAssignment`\" pulumi-lang-go=\"`ServiceAccountProjectAssignment`\" pulumi-lang-python=\"`ServiceAccountProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.ServiceAccountProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.ServiceAccountProjectAssignment`\"\u003e`mongodbatlas.ServiceAccountProjectAssignment`\u003c/span\u003e resources to manage Service Account project assignments.\n\n\u003e **IMPORTANT:** Deleting a \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-go=\"`ProjectServiceAccount`\" pulumi-lang-python=\"`ProjectServiceAccount`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-java=\"`mongodbatlas.ProjectServiceAccount`\"\u003e`mongodbatlas.ProjectServiceAccount`\u003c/span\u003e resource unassigns the associated Service Account from the project, but doesn't delete it from the organization.\n\n## Example Usage\n\n## Import \n\nImport the Project Service Account resource by using the Project ID and Client ID in the format `PROJECT_ID/CLIENT_ID`, e.g.\n```\n$ terraform import mongodbatlas_project_service_account.test 6117ac2fe2a3d04ed27a987v/mdb_sa_id_1234567890abcdef12345678\n```\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`secretExpiresAfterHours`\" pulumi-lang-dotnet=\"`SecretExpiresAfterHours`\" pulumi-lang-go=\"`secretExpiresAfterHours`\" pulumi-lang-python=\"`secret_expires_after_hours`\" pulumi-lang-yaml=\"`secretExpiresAfterHours`\" pulumi-lang-java=\"`secretExpiresAfterHours`\"\u003e`secret_expires_after_hours`\u003c/span\u003e is not populated during import and should be omitted in the resource definition when importing the resource.\n\nFor more information, see [Create One Project Service Account](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupserviceaccount) in the MongoDB Atlas API documentation.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"description":{"type":"string","description":"Human readable description for the Service Account.\n"},"name":{"type":"string","description":"Human-readable name for the Service Account. The name is modifiable and does not have to be unique.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of project-level roles for the Service Account.\n"},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account and you cannot update it later.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectServiceAccountSecret:ProjectServiceAccountSecret"},"description":"A list of secrets associated with the specified Service Account.\n"}},"required":["clientId","createdAt","description","name","projectId","roles","secrets"],"inputProperties":{"description":{"type":"string","description":"Human readable description for the Service Account.\n"},"name":{"type":"string","description":"Human-readable name for the Service Account. The name is modifiable and does not have to be unique.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of project-level roles for the Service Account.\n"},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account and you cannot update it later.\n"}},"requiredInputs":["description","projectId","roles"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectServiceAccount resources.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"description":{"type":"string","description":"Human readable description for the Service Account.\n"},"name":{"type":"string","description":"Human-readable name for the Service Account. The name is modifiable and does not have to be unique.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of project-level roles for the Service Account.\n"},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account and you cannot update it later.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ProjectServiceAccountSecret:ProjectServiceAccountSecret"},"description":"A list of secrets associated with the specified Service Account.\n"}},"type":"object"}},"mongodbatlas:index/projectServiceAccountAccessListEntry:ProjectServiceAccountAccessListEntry":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectServiceAccountAccessListEntry`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectServiceAccountAccessListEntry`\" pulumi-lang-go=\"`ProjectServiceAccountAccessListEntry`\" pulumi-lang-python=\"`ProjectServiceAccountAccessListEntry`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectServiceAccountAccessListEntry`\" pulumi-lang-java=\"`mongodbatlas.ProjectServiceAccountAccessListEntry`\"\u003e`mongodbatlas.ProjectServiceAccountAccessListEntry`\u003c/span\u003e provides an Access List entry resource for Project Service Accounts. The resource lets you create, delete, and import an Access List entry for the specified Project Service Account.\n\n\u003e **IMPORTANT:** When you remove an entry from the access list, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider, hence a change will force the destruction and recreation of entries.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisProjectServiceAccount = new mongodbatlas.ProjectServiceAccount(\"this\", {\n    projectId: projectId,\n    name: \"example-project-service-account\",\n    description: \"Example Project Service Account\",\n    roles: [\"GROUP_READ_ONLY\"],\n    secretExpiresAfterHours: 2160,\n});\n// Add IP Access List Entry to Project Service Account using CIDR Block\nconst cidr = new mongodbatlas.ProjectServiceAccountAccessListEntry(\"cidr\", {\n    projectId: projectId,\n    clientId: thisProjectServiceAccount.clientId,\n    cidrBlock: \"1.2.3.4/32\",\n});\n// Add IP Access List Entry to Project Service Account using IP Address\nconst ip = new mongodbatlas.ProjectServiceAccountAccessListEntry(\"ip\", {\n    projectId: projectId,\n    clientId: thisProjectServiceAccount.clientId,\n    ipAddress: \"2.3.4.5\",\n});\n// Data source to read a single Access List entry for the Project Service Account\nconst _this = mongodbatlas.getProjectServiceAccountAccessListEntryOutput({\n    projectId: cidr.projectId,\n    clientId: cidr.clientId,\n    cidrBlock: cidr.cidrBlock,\n});\nexport const accessListEntryCidrBlock = _this.apply(_this =\u003e _this.cidrBlock);\n// Data source to read all Access List entries for the Project Service Account\nconst thisGetProjectServiceAccountAccessListEntries = mongodbatlas.getProjectServiceAccountAccessListEntriesOutput({\n    projectId: thisProjectServiceAccount.projectId,\n    clientId: thisProjectServiceAccount.clientId,\n});\nexport const allAccessListEntries = thisGetProjectServiceAccountAccessListEntries.apply(thisGetProjectServiceAccountAccessListEntries =\u003e thisGetProjectServiceAccountAccessListEntries.results);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_project_service_account = mongodbatlas.ProjectServiceAccount(\"this\",\n    project_id=project_id,\n    name=\"example-project-service-account\",\n    description=\"Example Project Service Account\",\n    roles=[\"GROUP_READ_ONLY\"],\n    secret_expires_after_hours=2160)\n# Add IP Access List Entry to Project Service Account using CIDR Block\ncidr = mongodbatlas.ProjectServiceAccountAccessListEntry(\"cidr\",\n    project_id=project_id,\n    client_id=this_project_service_account.client_id,\n    cidr_block=\"1.2.3.4/32\")\n# Add IP Access List Entry to Project Service Account using IP Address\nip = mongodbatlas.ProjectServiceAccountAccessListEntry(\"ip\",\n    project_id=project_id,\n    client_id=this_project_service_account.client_id,\n    ip_address=\"2.3.4.5\")\n# Data source to read a single Access List entry for the Project Service Account\nthis = mongodbatlas.get_project_service_account_access_list_entry_output(project_id=cidr.project_id,\n    client_id=cidr.client_id,\n    cidr_block=cidr.cidr_block)\npulumi.export(\"accessListEntryCidrBlock\", this.cidr_block)\n# Data source to read all Access List entries for the Project Service Account\nthis_get_project_service_account_access_list_entries = mongodbatlas.get_project_service_account_access_list_entries_output(project_id=this_project_service_account.project_id,\n    client_id=this_project_service_account.client_id)\npulumi.export(\"allAccessListEntries\", this_get_project_service_account_access_list_entries.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisProjectServiceAccount = new Mongodbatlas.ProjectServiceAccount(\"this\", new()\n    {\n        ProjectId = projectId,\n        Name = \"example-project-service-account\",\n        Description = \"Example Project Service Account\",\n        Roles = new[]\n        {\n            \"GROUP_READ_ONLY\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    // Add IP Access List Entry to Project Service Account using CIDR Block\n    var cidr = new Mongodbatlas.ProjectServiceAccountAccessListEntry(\"cidr\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n        CidrBlock = \"1.2.3.4/32\",\n    });\n\n    // Add IP Access List Entry to Project Service Account using IP Address\n    var ip = new Mongodbatlas.ProjectServiceAccountAccessListEntry(\"ip\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n        IpAddress = \"2.3.4.5\",\n    });\n\n    // Data source to read a single Access List entry for the Project Service Account\n    var @this = Mongodbatlas.GetProjectServiceAccountAccessListEntry.Invoke(new()\n    {\n        ProjectId = cidr.ProjectId,\n        ClientId = cidr.ClientId,\n        CidrBlock = cidr.CidrBlock,\n    });\n\n    // Data source to read all Access List entries for the Project Service Account\n    var thisGetProjectServiceAccountAccessListEntries = Mongodbatlas.GetProjectServiceAccountAccessListEntries.Invoke(new()\n    {\n        ProjectId = thisProjectServiceAccount.ProjectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accessListEntryCidrBlock\"] = @this.Apply(@this =\u003e @this.Apply(getProjectServiceAccountAccessListEntryResult =\u003e getProjectServiceAccountAccessListEntryResult.CidrBlock)),\n        [\"allAccessListEntries\"] = thisGetProjectServiceAccountAccessListEntries.Apply(getProjectServiceAccountAccessListEntriesResult =\u003e getProjectServiceAccountAccessListEntriesResult.Results),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisProjectServiceAccount, err := mongodbatlas.NewProjectServiceAccount(ctx, \"this\", \u0026mongodbatlas.ProjectServiceAccountArgs{\n\t\t\tProjectId:   pulumi.Any(projectId),\n\t\t\tName:        pulumi.String(\"example-project-service-account\"),\n\t\t\tDescription: pulumi.String(\"Example Project Service Account\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_READ_ONLY\"),\n\t\t\t},\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Project Service Account using CIDR Block\n\t\tcidr, err := mongodbatlas.NewProjectServiceAccountAccessListEntry(ctx, \"cidr\", \u0026mongodbatlas.ProjectServiceAccountAccessListEntryArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tClientId:  thisProjectServiceAccount.ClientId,\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Project Service Account using IP Address\n\t\t_, err = mongodbatlas.NewProjectServiceAccountAccessListEntry(ctx, \"ip\", \u0026mongodbatlas.ProjectServiceAccountAccessListEntryArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tClientId:  thisProjectServiceAccount.ClientId,\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Data source to read a single Access List entry for the Project Service Account\n\t\tthis := mongodbatlas.LookupProjectServiceAccountAccessListEntryOutput(ctx, mongodbatlas.GetProjectServiceAccountAccessListEntryOutputArgs{\n\t\t\tProjectId: cidr.ProjectId,\n\t\t\tClientId:  cidr.ClientId,\n\t\t\tCidrBlock: cidr.CidrBlock,\n\t\t}, nil)\n\t\tctx.Export(\"accessListEntryCidrBlock\", this.ApplyT(func(this mongodbatlas.GetProjectServiceAccountAccessListEntryResult) (*string, error) {\n\t\t\treturn \u0026this.CidrBlock, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\t// Data source to read all Access List entries for the Project Service Account\n\t\tthisGetProjectServiceAccountAccessListEntries := mongodbatlas.LookupProjectServiceAccountAccessListEntriesOutput(ctx, mongodbatlas.GetProjectServiceAccountAccessListEntriesOutputArgs{\n\t\t\tProjectId: thisProjectServiceAccount.ProjectId,\n\t\t\tClientId:  thisProjectServiceAccount.ClientId,\n\t\t}, nil)\n\t\tctx.Export(\"allAccessListEntries\", thisGetProjectServiceAccountAccessListEntries.ApplyT(func(thisGetProjectServiceAccountAccessListEntries mongodbatlas.GetProjectServiceAccountAccessListEntriesResult) ([]mongodbatlas.GetProjectServiceAccountAccessListEntriesResult, error) {\n\t\t\treturn []mongodbatlas.GetProjectServiceAccountAccessListEntriesResult(thisGetProjectServiceAccountAccessListEntries.Results), nil\n\t\t}).([]mongodbatlas.GetProjectServiceAccountAccessListEntriesResultOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectServiceAccount;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountAccessListEntry;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.inputs.GetProjectServiceAccountAccessListEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisProjectServiceAccount = new ProjectServiceAccount(\"thisProjectServiceAccount\", ProjectServiceAccountArgs.builder()\n            .projectId(projectId)\n            .name(\"example-project-service-account\")\n            .description(\"Example Project Service Account\")\n            .roles(\"GROUP_READ_ONLY\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        // Add IP Access List Entry to Project Service Account using CIDR Block\n        var cidr = new ProjectServiceAccountAccessListEntry(\"cidr\", ProjectServiceAccountAccessListEntryArgs.builder()\n            .projectId(projectId)\n            .clientId(thisProjectServiceAccount.clientId())\n            .cidrBlock(\"1.2.3.4/32\")\n            .build());\n\n        // Add IP Access List Entry to Project Service Account using IP Address\n        var ip = new ProjectServiceAccountAccessListEntry(\"ip\", ProjectServiceAccountAccessListEntryArgs.builder()\n            .projectId(projectId)\n            .clientId(thisProjectServiceAccount.clientId())\n            .ipAddress(\"2.3.4.5\")\n            .build());\n\n        // Data source to read a single Access List entry for the Project Service Account\n        final var this = MongodbatlasFunctions.getProjectServiceAccountAccessListEntry(GetProjectServiceAccountAccessListEntryArgs.builder()\n            .projectId(cidr.projectId())\n            .clientId(cidr.clientId())\n            .cidrBlock(cidr.cidrBlock())\n            .build());\n\n        ctx.export(\"accessListEntryCidrBlock\", this_.applyValue(_this_ -\u003e _this_.cidrBlock()));\n        // Data source to read all Access List entries for the Project Service Account\n        final var thisGetProjectServiceAccountAccessListEntries = MongodbatlasFunctions.getProjectServiceAccountAccessListEntries(GetProjectServiceAccountAccessListEntriesArgs.builder()\n            .projectId(thisProjectServiceAccount.projectId())\n            .clientId(thisProjectServiceAccount.clientId())\n            .build());\n\n        ctx.export(\"allAccessListEntries\", thisGetProjectServiceAccountAccessListEntries.applyValue(_thisGetProjectServiceAccountAccessListEntries -\u003e _thisGetProjectServiceAccountAccessListEntries.results()));\n    }\n}\n```\n```yaml\nresources:\n  thisProjectServiceAccount:\n    type: mongodbatlas:ProjectServiceAccount\n    name: this\n    properties:\n      projectId: ${projectId}\n      name: example-project-service-account\n      description: Example Project Service Account\n      roles:\n        - GROUP_READ_ONLY\n      secretExpiresAfterHours: 2160 # 90 days\n  # Add IP Access List Entry to Project Service Account using CIDR Block\n  cidr:\n    type: mongodbatlas:ProjectServiceAccountAccessListEntry\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisProjectServiceAccount.clientId}\n      cidrBlock: 1.2.3.4/32\n  # Add IP Access List Entry to Project Service Account using IP Address\n  ip:\n    type: mongodbatlas:ProjectServiceAccountAccessListEntry\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisProjectServiceAccount.clientId}\n      ipAddress: 2.3.4.5\nvariables:\n  # Data source to read a single Access List entry for the Project Service Account\n  this:\n    fn::invoke:\n      function: mongodbatlas:getProjectServiceAccountAccessListEntry\n      arguments:\n        projectId: ${cidr.projectId}\n        clientId: ${cidr.clientId}\n        cidrBlock: ${cidr.cidrBlock}\n  # Data source to read all Access List entries for the Project Service Account\n  thisGetProjectServiceAccountAccessListEntries:\n    fn::invoke:\n      function: mongodbatlas:getProjectServiceAccountAccessListEntries\n      arguments:\n        projectId: ${thisProjectServiceAccount.projectId}\n        clientId: ${thisProjectServiceAccount.clientId}\noutputs:\n  accessListEntryCidrBlock: ${this.cidrBlock}\n  allAccessListEntries: ${thisGetProjectServiceAccountAccessListEntries.results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAccess List entries for Project Service Accounts can be imported using the \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/projectServiceAccountAccessListEntry:ProjectServiceAccountAccessListEntry test 5d0f1f74cf09a29120e123cd-mdb_sa_id_1234567890abcdef12345678-10.242.88.0/21\n```\n\nFor more information, see [Add Access List Entries for One Project Service Account](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupserviceaccountaccesslist) in the MongoDB Atlas API documentation.\n\n","properties":{"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n"},"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"Date the entry was added to the access list. This attribute expresses its value in the ISO 8601 timestamp format in UTC.\n"},"ipAddress":{"type":"string","description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n"},"lastUsedAddress":{"type":"string","description":"Network address that issued the most recent request to the API.\n"},"lastUsedAt":{"type":"string","description":"Date when the API received the most recent request that originated from this network address.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project.\n"},"requestCount":{"type":"integer","description":"The number of requests that has originated from this network address.\n"}},"required":["cidrBlock","clientId","createdAt","ipAddress","lastUsedAddress","lastUsedAt","projectId","requestCount"],"inputProperties":{"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n"},"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"ipAddress":{"type":"string","description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project.\n"}},"requiredInputs":["clientId","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectServiceAccountAccessListEntry resources.\n","properties":{"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n"},"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"Date the entry was added to the access list. This attribute expresses its value in the ISO 8601 timestamp format in UTC.\n"},"ipAddress":{"type":"string","description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n"},"lastUsedAddress":{"type":"string","description":"Network address that issued the most recent request to the API.\n"},"lastUsedAt":{"type":"string","description":"Date when the API received the most recent request that originated from this network address.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project.\n"},"requestCount":{"type":"integer","description":"The number of requests that has originated from this network address.\n"}},"type":"object"}},"mongodbatlas:index/projectServiceAccountSecret:ProjectServiceAccountSecret":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectServiceAccountSecret`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectServiceAccountSecret`\" pulumi-lang-go=\"`ProjectServiceAccountSecret`\" pulumi-lang-python=\"`ProjectServiceAccountSecret`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectServiceAccountSecret`\" pulumi-lang-java=\"`mongodbatlas.ProjectServiceAccountSecret`\"\u003e`mongodbatlas.ProjectServiceAccountSecret`\u003c/span\u003e provides a Project Service Account Secret resource. The resource lets you create and delete secrets for a Project Service Account.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n\u003e **NOTE:** This resource does not support updates. To rotate a secret, see Guide: Service Account Secret Rotation.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisProjectServiceAccount = new mongodbatlas.ProjectServiceAccount(\"this\", {\n    projectId: projectId,\n    name: \"example-project-service-account\",\n    description: \"Example Project Service Account\",\n    roles: [\"GROUP_READ_ONLY\"],\n    secretExpiresAfterHours: 2160,\n});\nconst thisProjectServiceAccountSecret = new mongodbatlas.ProjectServiceAccountSecret(\"this\", {\n    projectId: projectId,\n    clientId: thisProjectServiceAccount.clientId,\n    secretExpiresAfterHours: 2160,\n});\nconst _this = pulumi.all([thisProjectServiceAccount.clientId, thisProjectServiceAccountSecret.secretId]).apply(([clientId, secretId]) =\u003e mongodbatlas.getProjectServiceAccountSecretOutput({\n    projectId: projectId,\n    clientId: clientId,\n    secretId: secretId,\n}));\nexport const secretId = thisProjectServiceAccountSecret.secretId;\nexport const secret = thisProjectServiceAccountSecret.secret;\nexport const secretExpiresAt = _this.apply(_this =\u003e _this.expiresAt);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_project_service_account = mongodbatlas.ProjectServiceAccount(\"this\",\n    project_id=project_id,\n    name=\"example-project-service-account\",\n    description=\"Example Project Service Account\",\n    roles=[\"GROUP_READ_ONLY\"],\n    secret_expires_after_hours=2160)\nthis_project_service_account_secret = mongodbatlas.ProjectServiceAccountSecret(\"this\",\n    project_id=project_id,\n    client_id=this_project_service_account.client_id,\n    secret_expires_after_hours=2160)\nthis = pulumi.Output.all(\n    client_id=this_project_service_account.client_id,\n    secret_id=this_project_service_account_secret.secret_id\n).apply(lambda resolved_outputs: mongodbatlas.get_project_service_account_secret_output(project_id=project_id,\n    client_id=resolved_outputs['client_id'],\n    secret_id=resolved_outputs['secret_id']))\n\npulumi.export(\"secretId\", this_project_service_account_secret.secret_id)\npulumi.export(\"secret\", this_project_service_account_secret.secret)\npulumi.export(\"secretExpiresAt\", this.expires_at)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisProjectServiceAccount = new Mongodbatlas.ProjectServiceAccount(\"this\", new()\n    {\n        ProjectId = projectId,\n        Name = \"example-project-service-account\",\n        Description = \"Example Project Service Account\",\n        Roles = new[]\n        {\n            \"GROUP_READ_ONLY\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var thisProjectServiceAccountSecret = new Mongodbatlas.ProjectServiceAccountSecret(\"this\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var @this = Mongodbatlas.GetProjectServiceAccountSecret.Invoke(new()\n    {\n        ProjectId = projectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n        SecretId = thisProjectServiceAccountSecret.SecretId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"secretId\"] = thisProjectServiceAccountSecret.SecretId,\n        [\"secret\"] = thisProjectServiceAccountSecret.Secret,\n        [\"secretExpiresAt\"] = @this.Apply(@this =\u003e @this.Apply(getProjectServiceAccountSecretResult =\u003e getProjectServiceAccountSecretResult.ExpiresAt)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisProjectServiceAccount, err := mongodbatlas.NewProjectServiceAccount(ctx, \"this\", \u0026mongodbatlas.ProjectServiceAccountArgs{\n\t\t\tProjectId:   pulumi.Any(projectId),\n\t\t\tName:        pulumi.String(\"example-project-service-account\"),\n\t\t\tDescription: pulumi.String(\"Example Project Service Account\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_READ_ONLY\"),\n\t\t\t},\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisProjectServiceAccountSecret, err := mongodbatlas.NewProjectServiceAccountSecret(ctx, \"this\", \u0026mongodbatlas.ProjectServiceAccountSecretArgs{\n\t\t\tProjectId:               pulumi.Any(projectId),\n\t\t\tClientId:                thisProjectServiceAccount.ClientId,\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthis := pulumi.All(thisProjectServiceAccount.ClientId, thisProjectServiceAccountSecret.SecretId).ApplyT(func(_args []interface{}) (mongodbatlas.GetProjectServiceAccountSecretResult, error) {\n\t\t\tclientId := _args[0].(string)\n\t\t\tsecretId := _args[1].(string)\n\t\t\treturn mongodbatlas.GetProjectServiceAccountSecretResult(interface{}(mongodbatlas.LookupProjectServiceAccountSecret(ctx, \u0026mongodbatlas.LookupProjectServiceAccountSecretArgs{\n\t\t\t\tProjectId: projectId,\n\t\t\t\tClientId:  clientId,\n\t\t\t\tSecretId:  secretId,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetProjectServiceAccountSecretResultOutput)\n\t\tctx.Export(\"secretId\", thisProjectServiceAccountSecret.SecretId)\n\t\tctx.Export(\"secret\", thisProjectServiceAccountSecret.Secret)\n\t\tctx.Export(\"secretExpiresAt\", this.ApplyT(func(this mongodbatlas.GetProjectServiceAccountSecretResult) (*string, error) {\n\t\t\treturn \u0026this.ExpiresAt, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectServiceAccount;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountSecret;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountSecretArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectServiceAccountSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisProjectServiceAccount = new ProjectServiceAccount(\"thisProjectServiceAccount\", ProjectServiceAccountArgs.builder()\n            .projectId(projectId)\n            .name(\"example-project-service-account\")\n            .description(\"Example Project Service Account\")\n            .roles(\"GROUP_READ_ONLY\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        var thisProjectServiceAccountSecret = new ProjectServiceAccountSecret(\"thisProjectServiceAccountSecret\", ProjectServiceAccountSecretArgs.builder()\n            .projectId(projectId)\n            .clientId(thisProjectServiceAccount.clientId())\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        final var this = Output.tuple(thisProjectServiceAccount.clientId(), thisProjectServiceAccountSecret.secretId()).applyValue(values -\u003e {\n            var clientId = values.t1;\n            var secretId = values.t2;\n            return MongodbatlasFunctions.getProjectServiceAccountSecret(GetProjectServiceAccountSecretArgs.builder()\n                .projectId(projectId)\n                .clientId(clientId)\n                .secretId(secretId)\n                .build());\n        });\n\n        ctx.export(\"secretId\", thisProjectServiceAccountSecret.secretId());\n        ctx.export(\"secret\", thisProjectServiceAccountSecret.secret());\n        ctx.export(\"secretExpiresAt\", this_.applyValue(_this_ -\u003e _this_.expiresAt()));\n    }\n}\n```\n```yaml\nresources:\n  thisProjectServiceAccount:\n    type: mongodbatlas:ProjectServiceAccount\n    name: this\n    properties:\n      projectId: ${projectId}\n      name: example-project-service-account\n      description: Example Project Service Account\n      roles:\n        - GROUP_READ_ONLY\n      secretExpiresAfterHours: 2160 # 90 days\n  thisProjectServiceAccountSecret:\n    type: mongodbatlas:ProjectServiceAccountSecret\n    name: this\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisProjectServiceAccount.clientId}\n      secretExpiresAfterHours: 2160 # 90 days\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getProjectServiceAccountSecret\n      arguments:\n        projectId: ${projectId}\n        clientId: ${thisProjectServiceAccount.clientId}\n        secretId: ${thisProjectServiceAccountSecret.secretId}\noutputs:\n  secretId: ${thisProjectServiceAccountSecret.secretId}\n  secret: ${thisProjectServiceAccountSecret.secret}\n  secretExpiresAt: ${this.expiresAt}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImport the Project Service Account Secret resource by using the Project ID, Client ID, and Secret ID in the format `PROJECT_ID/CLIENT_ID/SECRET_ID`, e.g.\n```sh\n$ pulumi import mongodbatlas:index/projectServiceAccountSecret:ProjectServiceAccountSecret test 6117ac2fe2a3d04ed27a987v/mdb_sa_id_1234567890abcdef12345678/04ed271234abcde2a3da123a\n```\n\nFor more information, see [Create One Project Service Account Secret](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-creategroupserviceaccountsecret) in the MongoDB Atlas API documentation.\n\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"lastUsedAt":{"type":"string","description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"maskedSecretValue":{"type":"string","description":"The masked Service Account secret.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"secret":{"type":"string","description":"The secret for the Service Account. It will be returned only the first time after creation.\n","secret":true},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account Secret and you cannot update it later.\n"},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"required":["clientId","createdAt","expiresAt","lastUsedAt","maskedSecretValue","projectId","secret","secretId"],"inputProperties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account Secret and you cannot update it later.\n"}},"requiredInputs":["clientId","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectServiceAccountSecret resources.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"lastUsedAt":{"type":"string","description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"maskedSecretValue":{"type":"string","description":"The masked Service Account secret.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"secret":{"type":"string","description":"The secret for the Service Account. It will be returned only the first time after creation.\n","secret":true},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account Secret and you cannot update it later.\n"},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object"}},"mongodbatlas:index/pushBasedLogExport:PushBasedLogExport":{"description":"\u003e **DEPRECATED:** This resource is deprecated and will be removed in the next major version. Please use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.LogIntegration`\" pulumi-lang-dotnet=\"`mongodbatlas.LogIntegration`\" pulumi-lang-go=\"`LogIntegration`\" pulumi-lang-python=\"`LogIntegration`\" pulumi-lang-yaml=\"`mongodbatlas.LogIntegration`\" pulumi-lang-java=\"`mongodbatlas.LogIntegration`\"\u003e`mongodbatlas.LogIntegration`\u003c/span\u003e instead. For migration instructions, see the Push-Based Log Export to Log Integration Migration Guide.\n\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PushBasedLogExport`\" pulumi-lang-dotnet=\"`mongodbatlas.PushBasedLogExport`\" pulumi-lang-go=\"`PushBasedLogExport`\" pulumi-lang-python=\"`PushBasedLogExport`\" pulumi-lang-yaml=\"`mongodbatlas.PushBasedLogExport`\" pulumi-lang-java=\"`mongodbatlas.PushBasedLogExport`\"\u003e`mongodbatlas.PushBasedLogExport`\u003c/span\u003e provides a resource for push-based log export feature. The resource lets you configure, enable \u0026 disable the project level settings for the push-based log export feature. Using this resource you \ncan continually push logs from mongod, mongos, and audit logs to an Amazon S3 bucket. Atlas exports logs every 5 minutes.\n\nThe push based log export Terraform module makes use of this resource and simplifies its use.\n\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nexport = async () =\u003e {\n    const project_tf = new mongodbatlas.Project(\"project-tf\", {\n        name: atlasProjectName,\n        orgId: atlasOrgId,\n    });\n    // Set up cloud provider access in Atlas using the created IAM role\n    const setupOnly = new mongodbatlas.CloudProviderAccessSetup(\"setup_only\", {\n        projectId: project_tf.id,\n        providerName: \"AWS\",\n    });\n    const authRole = new mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", {\n        projectId: project_tf.id,\n        roleId: setupOnly.roleId,\n        aws: {\n            iamAssumedRoleArn: testRole.arn,\n        },\n    });\n    // Set up push-based log export with authorized IAM role\n    const testPushBasedLogExport = new mongodbatlas.PushBasedLogExport(\"test\", {\n        projectId: project_tf.id,\n        bucketName: logBucket.bucket,\n        iamRoleId: authRole.roleId,\n        prefixPath: \"push-based-log-test\",\n    });\n    const test = mongodbatlas.getPushBasedLogExportOutput({\n        projectId: testPushBasedLogExport.projectId,\n    });\n    return {\n        test: test.apply(test =\u003e test.prefixPath),\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nproject_tf = mongodbatlas.Project(\"project-tf\",\n    name=atlas_project_name,\n    org_id=atlas_org_id)\n# Set up cloud provider access in Atlas using the created IAM role\nsetup_only = mongodbatlas.CloudProviderAccessSetup(\"setup_only\",\n    project_id=project_tf.id,\n    provider_name=\"AWS\")\nauth_role = mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\",\n    project_id=project_tf.id,\n    role_id=setup_only.role_id,\n    aws={\n        \"iam_assumed_role_arn\": test_role[\"arn\"],\n    })\n# Set up push-based log export with authorized IAM role\ntest_push_based_log_export = mongodbatlas.PushBasedLogExport(\"test\",\n    project_id=project_tf.id,\n    bucket_name=log_bucket[\"bucket\"],\n    iam_role_id=auth_role.role_id,\n    prefix_path=\"push-based-log-test\")\ntest = mongodbatlas.get_push_based_log_export_output(project_id=test_push_based_log_export.project_id)\npulumi.export(\"test\", test.prefix_path)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var project_tf = new Mongodbatlas.Project(\"project-tf\", new()\n    {\n        Name = atlasProjectName,\n        OrgId = atlasOrgId,\n    });\n\n    // Set up cloud provider access in Atlas using the created IAM role\n    var setupOnly = new Mongodbatlas.CloudProviderAccessSetup(\"setup_only\", new()\n    {\n        ProjectId = project_tf.Id,\n        ProviderName = \"AWS\",\n    });\n\n    var authRole = new Mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", new()\n    {\n        ProjectId = project_tf.Id,\n        RoleId = setupOnly.RoleId,\n        Aws = new Mongodbatlas.Inputs.CloudProviderAccessAuthorizationAwsArgs\n        {\n            IamAssumedRoleArn = testRole.Arn,\n        },\n    });\n\n    // Set up push-based log export with authorized IAM role\n    var testPushBasedLogExport = new Mongodbatlas.PushBasedLogExport(\"test\", new()\n    {\n        ProjectId = project_tf.Id,\n        BucketName = logBucket.Bucket,\n        IamRoleId = authRole.RoleId,\n        PrefixPath = \"push-based-log-test\",\n    });\n\n    var test = Mongodbatlas.GetPushBasedLogExport.Invoke(new()\n    {\n        ProjectId = testPushBasedLogExport.ProjectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"test\"] = test.Apply(getPushBasedLogExportResult =\u003e getPushBasedLogExportResult.PrefixPath),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject_tf, err := mongodbatlas.NewProject(ctx, \"project-tf\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.Any(atlasProjectName),\n\t\t\tOrgId: pulumi.Any(atlasOrgId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Set up cloud provider access in Atlas using the created IAM role\n\t\tsetupOnly, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"setup_only\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    project_tf.ID(),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tauthRole, err := mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"auth_role\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: project_tf.ID(),\n\t\t\tRoleId:    setupOnly.RoleId,\n\t\t\tAws: \u0026mongodbatlas.CloudProviderAccessAuthorizationAwsArgs{\n\t\t\t\tIamAssumedRoleArn: pulumi.Any(testRole.Arn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Set up push-based log export with authorized IAM role\n\t\ttestPushBasedLogExport, err := mongodbatlas.NewPushBasedLogExport(ctx, \"test\", \u0026mongodbatlas.PushBasedLogExportArgs{\n\t\t\tProjectId:  project_tf.ID(),\n\t\t\tBucketName: pulumi.Any(logBucket.Bucket),\n\t\t\tIamRoleId:  authRole.RoleId,\n\t\t\tPrefixPath: pulumi.String(\"push-based-log-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest := mongodbatlas.LookupPushBasedLogExportOutput(ctx, mongodbatlas.GetPushBasedLogExportOutputArgs{\n\t\t\tProjectId: testPushBasedLogExport.ProjectId,\n\t\t}, nil)\n\t\tctx.Export(\"test\", test.ApplyT(func(test mongodbatlas.GetPushBasedLogExportResult) (*string, error) {\n\t\t\treturn \u0026test.PrefixPath, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;\nimport com.pulumi.mongodbatlas.PushBasedLogExport;\nimport com.pulumi.mongodbatlas.PushBasedLogExportArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetPushBasedLogExportArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var project_tf = new Project(\"project-tf\", ProjectArgs.builder()\n            .name(atlasProjectName)\n            .orgId(atlasOrgId)\n            .build());\n\n        // Set up cloud provider access in Atlas using the created IAM role\n        var setupOnly = new CloudProviderAccessSetup(\"setupOnly\", CloudProviderAccessSetupArgs.builder()\n            .projectId(project_tf.id())\n            .providerName(\"AWS\")\n            .build());\n\n        var authRole = new CloudProviderAccessAuthorization(\"authRole\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(project_tf.id())\n            .roleId(setupOnly.roleId())\n            .aws(CloudProviderAccessAuthorizationAwsArgs.builder()\n                .iamAssumedRoleArn(testRole.arn())\n                .build())\n            .build());\n\n        // Set up push-based log export with authorized IAM role\n        var testPushBasedLogExport = new PushBasedLogExport(\"testPushBasedLogExport\", PushBasedLogExportArgs.builder()\n            .projectId(project_tf.id())\n            .bucketName(logBucket.bucket())\n            .iamRoleId(authRole.roleId())\n            .prefixPath(\"push-based-log-test\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getPushBasedLogExport(GetPushBasedLogExportArgs.builder()\n            .projectId(testPushBasedLogExport.projectId())\n            .build());\n\n        ctx.export(\"test\", test.applyValue(_test -\u003e _test.prefixPath()));\n    }\n}\n```\n```yaml\nresources:\n  project-tf:\n    type: mongodbatlas:Project\n    properties:\n      name: ${atlasProjectName}\n      orgId: ${atlasOrgId}\n  # Set up cloud provider access in Atlas using the created IAM role\n  setupOnly:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: setup_only\n    properties:\n      projectId: ${[\"project-tf\"].id}\n      providerName: AWS\n  authRole:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    name: auth_role\n    properties:\n      projectId: ${[\"project-tf\"].id}\n      roleId: ${setupOnly.roleId}\n      aws:\n        iamAssumedRoleArn: ${testRole.arn}\n  # Set up push-based log export with authorized IAM role\n  testPushBasedLogExport:\n    type: mongodbatlas:PushBasedLogExport\n    name: test\n    properties:\n      projectId: ${[\"project-tf\"].id}\n      bucketName: ${logBucket.bucket}\n      iamRoleId: ${authRole.roleId}\n      prefixPath: push-based-log-test\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getPushBasedLogExport\n      arguments:\n        projectId: ${testPushBasedLogExport.projectId}\noutputs:\n  test: ${test.prefixPath}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Push-Based Log Export\n\n\n## Import \n\nPush-based log export resource can be imported using the project ID, e.g.\n\n```\n$ terraform import mongodbatlas_push_based_log_export.test 650972848269185c55f40ca1\n```\n\nFor more information see: [MongoDB Atlas API - Push-Based Log Export](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-push-based-log-export) Documentation.\n","properties":{"bucketName":{"type":"string","description":"The name of the bucket to which the agent sends the logs to.\n"},"createDate":{"type":"string","description":"Date and time that this feature was enabled on."},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e."},"iamRoleId":{"type":"string","description":"ID of the AWS IAM role that is used to write to the S3 bucket.\n"},"prefixPath":{"type":"string","description":"S3 directory in which vector writes in order to store the logs. An empty string denotes the root directory."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"state":{"type":"string","description":"Describes whether or not the feature is enabled and what status it is in."},"timeouts":{"$ref":"#/types/mongodbatlas:index/PushBasedLogExportTimeouts:PushBasedLogExportTimeouts"}},"required":["bucketName","createDate","deleteOnCreateTimeout","iamRoleId","prefixPath","projectId","state"],"inputProperties":{"bucketName":{"type":"string","description":"The name of the bucket to which the agent sends the logs to.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e."},"iamRoleId":{"type":"string","description":"ID of the AWS IAM role that is used to write to the S3 bucket.\n"},"prefixPath":{"type":"string","description":"S3 directory in which vector writes in order to store the logs. An empty string denotes the root directory."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/PushBasedLogExportTimeouts:PushBasedLogExportTimeouts"}},"requiredInputs":["bucketName","iamRoleId","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering PushBasedLogExport resources.\n","properties":{"bucketName":{"type":"string","description":"The name of the bucket to which the agent sends the logs to.\n"},"createDate":{"type":"string","description":"Date and time that this feature was enabled on."},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e."},"iamRoleId":{"type":"string","description":"ID of the AWS IAM role that is used to write to the S3 bucket.\n"},"prefixPath":{"type":"string","description":"S3 directory in which vector writes in order to store the logs. An empty string denotes the root directory."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"state":{"type":"string","description":"Describes whether or not the feature is enabled and what status it is in."},"timeouts":{"$ref":"#/types/mongodbatlas:index/PushBasedLogExportTimeouts:PushBasedLogExportTimeouts"}},"type":"object"}},"mongodbatlas:index/resourcePolicy:ResourcePolicy":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ResourcePolicy`\" pulumi-lang-dotnet=\"`mongodbatlas.ResourcePolicy`\" pulumi-lang-go=\"`ResourcePolicy`\" pulumi-lang-python=\"`ResourcePolicy`\" pulumi-lang-yaml=\"`mongodbatlas.ResourcePolicy`\" pulumi-lang-java=\"`mongodbatlas.ResourcePolicy`\"\u003e`mongodbatlas.ResourcePolicy`\u003c/span\u003e provides a Resource Policy resource. The resource lets you create, edit and delete resource policies to prevent misconfigurations and reduce the need for corrective interventions in your organization.\n\n\n## Example Usage\n\n## Import \n\nResource Policy resource can be imported using the org ID and policy ID, in the format `{ORG_ID}-{POLICY_ID}`, e.g.\n\n```\nterraform import mongodbatlas_resource_policy.cloud_region 65def6ce0f722a1507105aa5-66f1c018dba9c04e7dcfaf36\n```\n\nFor more information see: [MongoDB Atlas API - Resource Policies](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-resource-policies) Documentation.\n","properties":{"createdByUser":{"$ref":"#/types/mongodbatlas:index/ResourcePolicyCreatedByUser:ResourcePolicyCreatedByUser","description":"The user that last updated the Atlas resource policy.\n"},"createdDate":{"type":"string","description":"Date and time in UTC when the Atlas resource policy was created.\n"},"description":{"type":"string","description":"Description of the Atlas resource policy.\n"},"lastUpdatedByUser":{"$ref":"#/types/mongodbatlas:index/ResourcePolicyLastUpdatedByUser:ResourcePolicyLastUpdatedByUser","description":"The user that last updated the Atlas resource policy.\n"},"lastUpdatedDate":{"type":"string","description":"Date and time in UTC when the Atlas resource policy was last updated.\n"},"name":{"type":"string","description":"Human-readable label that describes the Atlas resource policy.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n"},"policies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ResourcePolicyPolicy:ResourcePolicyPolicy"},"description":"List of policies that make up the Atlas resource policy.\n"},"version":{"type":"string","description":"A string that identifies the version of the Atlas resource policy.\n"}},"required":["createdByUser","createdDate","lastUpdatedByUser","lastUpdatedDate","name","orgId","policies","version"],"inputProperties":{"description":{"type":"string","description":"Description of the Atlas resource policy.\n"},"name":{"type":"string","description":"Human-readable label that describes the Atlas resource policy.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n"},"policies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ResourcePolicyPolicy:ResourcePolicyPolicy"},"description":"List of policies that make up the Atlas resource policy.\n"}},"requiredInputs":["orgId","policies"],"stateInputs":{"description":"Input properties used for looking up and filtering ResourcePolicy resources.\n","properties":{"createdByUser":{"$ref":"#/types/mongodbatlas:index/ResourcePolicyCreatedByUser:ResourcePolicyCreatedByUser","description":"The user that last updated the Atlas resource policy.\n"},"createdDate":{"type":"string","description":"Date and time in UTC when the Atlas resource policy was created.\n"},"description":{"type":"string","description":"Description of the Atlas resource policy.\n"},"lastUpdatedByUser":{"$ref":"#/types/mongodbatlas:index/ResourcePolicyLastUpdatedByUser:ResourcePolicyLastUpdatedByUser","description":"The user that last updated the Atlas resource policy.\n"},"lastUpdatedDate":{"type":"string","description":"Date and time in UTC when the Atlas resource policy was last updated.\n"},"name":{"type":"string","description":"Human-readable label that describes the Atlas resource policy.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n"},"policies":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ResourcePolicyPolicy:ResourcePolicyPolicy"},"description":"List of policies that make up the Atlas resource policy.\n"},"version":{"type":"string","description":"A string that identifies the version of the Atlas resource policy.\n"}},"type":"object"}},"mongodbatlas:index/searchDeployment:SearchDeployment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.SearchDeployment`\" pulumi-lang-dotnet=\"`mongodbatlas.SearchDeployment`\" pulumi-lang-go=\"`SearchDeployment`\" pulumi-lang-python=\"`SearchDeployment`\" pulumi-lang-yaml=\"`mongodbatlas.SearchDeployment`\" pulumi-lang-java=\"`mongodbatlas.SearchDeployment`\"\u003e`mongodbatlas.SearchDeployment`\u003c/span\u003e provides a Search Deployment resource. The resource lets you create, edit and delete dedicated search nodes in a cluster.\n\n\u003e **NOTE:** For details on supported cloud providers and existing limitations you can visit the [Search Node Documentation](https://www.mongodb.com/docs/atlas/cluster-config/multi-cloud-distribution/#search-nodes-for-workload-isolation).\n\n\u003e **NOTE:** Only a single search deployment resource can be defined for each cluster.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst exampleProject = new mongodbatlas.Project(\"example\", {\n    name: \"project-name\",\n    orgId: orgId,\n});\nconst exampleAdvancedCluster = new mongodbatlas.AdvancedCluster(\"example\", {\n    projectId: exampleProject.id,\n    name: \"ClusterExample\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n            providerName: \"AWS\",\n            priority: 7,\n            regionName: \"US_EAST_1\",\n        }],\n    }],\n});\nconst exampleSearchDeployment = new mongodbatlas.SearchDeployment(\"example\", {\n    projectId: exampleProject.id,\n    clusterName: exampleAdvancedCluster.name,\n    specs: [{\n        instanceSize: \"S20_HIGHCPU_NVME\",\n        nodeCount: 2,\n    }],\n});\nconst example = mongodbatlas.getSearchDeploymentOutput({\n    projectId: exampleSearchDeployment.projectId,\n    clusterName: exampleSearchDeployment.clusterName,\n});\nexport const mongodbatlasSearchDeploymentId = example.apply(example =\u003e example.id);\nexport const mongodbatlasSearchDeploymentEncryptionAtRestProvider = example.apply(example =\u003e example.encryptionAtRestProvider);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample_project = mongodbatlas.Project(\"example\",\n    name=\"project-name\",\n    org_id=org_id)\nexample_advanced_cluster = mongodbatlas.AdvancedCluster(\"example\",\n    project_id=example_project.id,\n    name=\"ClusterExample\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n            \"provider_name\": \"AWS\",\n            \"priority\": 7,\n            \"region_name\": \"US_EAST_1\",\n        }],\n    }])\nexample_search_deployment = mongodbatlas.SearchDeployment(\"example\",\n    project_id=example_project.id,\n    cluster_name=example_advanced_cluster.name,\n    specs=[{\n        \"instance_size\": \"S20_HIGHCPU_NVME\",\n        \"node_count\": 2,\n    }])\nexample = mongodbatlas.get_search_deployment_output(project_id=example_search_deployment.project_id,\n    cluster_name=example_search_deployment.cluster_name)\npulumi.export(\"mongodbatlasSearchDeploymentId\", example.id)\npulumi.export(\"mongodbatlasSearchDeploymentEncryptionAtRestProvider\", example.encryption_at_rest_provider)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleProject = new Mongodbatlas.Project(\"example\", new()\n    {\n        Name = \"project-name\",\n        OrgId = orgId,\n    });\n\n    var exampleAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"example\", new()\n    {\n        ProjectId = exampleProject.Id,\n        Name = \"ClusterExample\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                },\n            },\n        },\n    });\n\n    var exampleSearchDeployment = new Mongodbatlas.SearchDeployment(\"example\", new()\n    {\n        ProjectId = exampleProject.Id,\n        ClusterName = exampleAdvancedCluster.Name,\n        Specs = new[]\n        {\n            new Mongodbatlas.Inputs.SearchDeploymentSpecArgs\n            {\n                InstanceSize = \"S20_HIGHCPU_NVME\",\n                NodeCount = 2,\n            },\n        },\n    });\n\n    var example = Mongodbatlas.GetSearchDeployment.Invoke(new()\n    {\n        ProjectId = exampleSearchDeployment.ProjectId,\n        ClusterName = exampleSearchDeployment.ClusterName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbatlasSearchDeploymentId\"] = example.Apply(getSearchDeploymentResult =\u003e getSearchDeploymentResult.Id),\n        [\"mongodbatlasSearchDeploymentEncryptionAtRestProvider\"] = example.Apply(getSearchDeploymentResult =\u003e getSearchDeploymentResult.EncryptionAtRestProvider),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleProject, err := mongodbatlas.NewProject(ctx, \"example\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.String(\"project-name\"),\n\t\t\tOrgId: pulumi.Any(orgId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"example\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   exampleProject.ID(),\n\t\t\tName:        pulumi.String(\"ClusterExample\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSearchDeployment, err := mongodbatlas.NewSearchDeployment(ctx, \"example\", \u0026mongodbatlas.SearchDeploymentArgs{\n\t\t\tProjectId:   exampleProject.ID(),\n\t\t\tClusterName: exampleAdvancedCluster.Name,\n\t\t\tSpecs: mongodbatlas.SearchDeploymentSpecArray{\n\t\t\t\t\u0026mongodbatlas.SearchDeploymentSpecArgs{\n\t\t\t\t\tInstanceSize: pulumi.String(\"S20_HIGHCPU_NVME\"),\n\t\t\t\t\tNodeCount:    pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := mongodbatlas.LookupSearchDeploymentOutput(ctx, mongodbatlas.GetSearchDeploymentOutputArgs{\n\t\t\tProjectId:   exampleSearchDeployment.ProjectId,\n\t\t\tClusterName: exampleSearchDeployment.ClusterName,\n\t\t}, nil)\n\t\tctx.Export(\"mongodbatlasSearchDeploymentId\", example.ApplyT(func(example mongodbatlas.GetSearchDeploymentResult) (*string, error) {\n\t\t\treturn \u0026example.Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"mongodbatlasSearchDeploymentEncryptionAtRestProvider\", example.ApplyT(func(example mongodbatlas.GetSearchDeploymentResult) (*string, error) {\n\t\t\treturn \u0026example.EncryptionAtRestProvider, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.SearchDeployment;\nimport com.pulumi.mongodbatlas.SearchDeploymentArgs;\nimport com.pulumi.mongodbatlas.inputs.SearchDeploymentSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetSearchDeploymentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .name(\"project-name\")\n            .orgId(orgId)\n            .build());\n\n        var exampleAdvancedCluster = new AdvancedCluster(\"exampleAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(exampleProject.id())\n            .name(\"ClusterExample\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .providerName(\"AWS\")\n                    .priority(7)\n                    .regionName(\"US_EAST_1\")\n                    .build())\n                .build())\n            .build());\n\n        var exampleSearchDeployment = new SearchDeployment(\"exampleSearchDeployment\", SearchDeploymentArgs.builder()\n            .projectId(exampleProject.id())\n            .clusterName(exampleAdvancedCluster.name())\n            .specs(SearchDeploymentSpecArgs.builder()\n                .instanceSize(\"S20_HIGHCPU_NVME\")\n                .nodeCount(2)\n                .build())\n            .build());\n\n        final var example = MongodbatlasFunctions.getSearchDeployment(GetSearchDeploymentArgs.builder()\n            .projectId(exampleSearchDeployment.projectId())\n            .clusterName(exampleSearchDeployment.clusterName())\n            .build());\n\n        ctx.export(\"mongodbatlasSearchDeploymentId\", example.applyValue(_example -\u003e _example.id()));\n        ctx.export(\"mongodbatlasSearchDeploymentEncryptionAtRestProvider\", example.applyValue(_example -\u003e _example.encryptionAtRestProvider()));\n    }\n}\n```\n```yaml\nresources:\n  exampleProject:\n    type: mongodbatlas:Project\n    name: example\n    properties:\n      name: project-name\n      orgId: ${orgId}\n  exampleAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: example\n    properties:\n      projectId: ${exampleProject.id}\n      name: ClusterExample\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_1\n  exampleSearchDeployment:\n    type: mongodbatlas:SearchDeployment\n    name: example\n    properties:\n      projectId: ${exampleProject.id}\n      clusterName: ${exampleAdvancedCluster.name}\n      specs:\n        - instanceSize: S20_HIGHCPU_NVME\n          nodeCount: 2\nvariables:\n  example:\n    fn::invoke:\n      function: mongodbatlas:getSearchDeployment\n      arguments:\n        projectId: ${exampleSearchDeployment.projectId}\n        clusterName: ${exampleSearchDeployment.clusterName}\noutputs:\n  mongodbatlasSearchDeploymentId: ${example.id}\n  mongodbatlasSearchDeploymentEncryptionAtRestProvider: ${example.encryptionAtRestProvider}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Atlas Cluster with dedicated Search Nodes Deployment\n\n\n## Import \n\nSearch node resource can be imported using the project ID and cluster name, in the format `PROJECT_ID-CLUSTER_NAME`, e.g.\n\n```\n$ terraform import mongodbatlas_search_deployment.test 650972848269185c55f40ca1-Cluster0\n```\n\nAfter an import, a non-empty plan is expected if the configuration defines the \u003cspan pulumi-lang-nodejs=\"`skipWaitOnUpdate`\" pulumi-lang-dotnet=\"`SkipWaitOnUpdate`\" pulumi-lang-go=\"`skipWaitOnUpdate`\" pulumi-lang-python=\"`skip_wait_on_update`\" pulumi-lang-yaml=\"`skipWaitOnUpdate`\" pulumi-lang-java=\"`skipWaitOnUpdate`\"\u003e`skip_wait_on_update`\u003c/span\u003e attribute. However, the update will not have any effect on the search deployment since \u003cspan pulumi-lang-nodejs=\"`skipWaitOnUpdate`\" pulumi-lang-dotnet=\"`SkipWaitOnUpdate`\" pulumi-lang-go=\"`skipWaitOnUpdate`\" pulumi-lang-python=\"`skip_wait_on_update`\" pulumi-lang-yaml=\"`skipWaitOnUpdate`\" pulumi-lang-java=\"`skipWaitOnUpdate`\"\u003e`skip_wait_on_update`\u003c/span\u003e only relates to the update operations wait time.\n\nFor more information see: [MongoDB Atlas API - Search Node](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Atlas-Search/operation/createAtlasSearchDeployment) Documentation.\n","properties":{"clusterName":{"type":"string","description":"Label that identifies the cluster to return the search nodes for.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"encryptionAtRestProvider":{"type":"string","description":"Cloud service provider that manages your customer keys to provide an additional layer of Encryption At Rest for the cluster.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"skipWaitOnUpdate":{"type":"boolean","description":"If true, the resource update is executed without waiting until the state is `IDLE`, making the operation faster. This might cause update errors to go unnoticed and lead to non-empty plans at the next terraform execution.\n"},"specs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/SearchDeploymentSpec:SearchDeploymentSpec"},"description":"List of settings that configure the search nodes for your cluster. This list is currently limited to defining a single element.\n"},"stateName":{"type":"string","description":"Human-readable label that indicates the current operating condition of this search deployment.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/SearchDeploymentTimeouts:SearchDeploymentTimeouts"}},"required":["clusterName","deleteOnCreateTimeout","encryptionAtRestProvider","projectId","specs","stateName"],"inputProperties":{"clusterName":{"type":"string","description":"Label that identifies the cluster to return the search nodes for.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"skipWaitOnUpdate":{"type":"boolean","description":"If true, the resource update is executed without waiting until the state is `IDLE`, making the operation faster. This might cause update errors to go unnoticed and lead to non-empty plans at the next terraform execution.\n"},"specs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/SearchDeploymentSpec:SearchDeploymentSpec"},"description":"List of settings that configure the search nodes for your cluster. This list is currently limited to defining a single element.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/SearchDeploymentTimeouts:SearchDeploymentTimeouts"}},"requiredInputs":["clusterName","projectId","specs"],"stateInputs":{"description":"Input properties used for looking up and filtering SearchDeployment resources.\n","properties":{"clusterName":{"type":"string","description":"Label that identifies the cluster to return the search nodes for.\n"},"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"encryptionAtRestProvider":{"type":"string","description":"Cloud service provider that manages your customer keys to provide an additional layer of Encryption At Rest for the cluster.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"skipWaitOnUpdate":{"type":"boolean","description":"If true, the resource update is executed without waiting until the state is `IDLE`, making the operation faster. This might cause update errors to go unnoticed and lead to non-empty plans at the next terraform execution.\n"},"specs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/SearchDeploymentSpec:SearchDeploymentSpec"},"description":"List of settings that configure the search nodes for your cluster. This list is currently limited to defining a single element.\n"},"stateName":{"type":"string","description":"Human-readable label that indicates the current operating condition of this search deployment.\n"},"timeouts":{"$ref":"#/types/mongodbatlas:index/SearchDeploymentTimeouts:SearchDeploymentTimeouts"}},"type":"object"}},"mongodbatlas:index/searchIndex:SearchIndex":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.SearchIndex`\" pulumi-lang-dotnet=\"`mongodbatlas.SearchIndex`\" pulumi-lang-go=\"`SearchIndex`\" pulumi-lang-python=\"`SearchIndex`\" pulumi-lang-yaml=\"`mongodbatlas.SearchIndex`\" pulumi-lang-java=\"`mongodbatlas.SearchIndex`\"\u003e`mongodbatlas.SearchIndex`\u003c/span\u003e provides a Search Index resource. This allows indexes to be created.\n\n## Example Usage\n\n### Basic search index\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test_basic_search_index = new mongodbatlas.SearchIndex(\"test-basic-search-index\", {\n    name: \"test-basic-search-index\",\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    clusterName: \"\u003cCLUSTER_NAME\u003e\",\n    analyzer: \"lucene.standard\",\n    collectionName: \"collection_test\",\n    database: \"database_test\",\n    mappingsDynamic: true,\n    searchAnalyzer: \"lucene.standard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_basic_search_index = mongodbatlas.SearchIndex(\"test-basic-search-index\",\n    name=\"test-basic-search-index\",\n    project_id=\"\u003cPROJECT_ID\u003e\",\n    cluster_name=\"\u003cCLUSTER_NAME\u003e\",\n    analyzer=\"lucene.standard\",\n    collection_name=\"collection_test\",\n    database=\"database_test\",\n    mappings_dynamic=True,\n    search_analyzer=\"lucene.standard\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test_basic_search_index = new Mongodbatlas.SearchIndex(\"test-basic-search-index\", new()\n    {\n        Name = \"test-basic-search-index\",\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        ClusterName = \"\u003cCLUSTER_NAME\u003e\",\n        Analyzer = \"lucene.standard\",\n        CollectionName = \"collection_test\",\n        Database = \"database_test\",\n        MappingsDynamic = true,\n        SearchAnalyzer = \"lucene.standard\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewSearchIndex(ctx, \"test-basic-search-index\", \u0026mongodbatlas.SearchIndexArgs{\n\t\t\tName:            pulumi.String(\"test-basic-search-index\"),\n\t\t\tProjectId:       pulumi.String(\"\u003cPROJECT_ID\u003e\"),\n\t\t\tClusterName:     pulumi.String(\"\u003cCLUSTER_NAME\u003e\"),\n\t\t\tAnalyzer:        pulumi.String(\"lucene.standard\"),\n\t\t\tCollectionName:  pulumi.String(\"collection_test\"),\n\t\t\tDatabase:        pulumi.String(\"database_test\"),\n\t\t\tMappingsDynamic: pulumi.Bool(true),\n\t\t\tSearchAnalyzer:  pulumi.String(\"lucene.standard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.SearchIndex;\nimport com.pulumi.mongodbatlas.SearchIndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test_basic_search_index = new SearchIndex(\"test-basic-search-index\", SearchIndexArgs.builder()\n            .name(\"test-basic-search-index\")\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .clusterName(\"\u003cCLUSTER_NAME\u003e\")\n            .analyzer(\"lucene.standard\")\n            .collectionName(\"collection_test\")\n            .database(\"database_test\")\n            .mappingsDynamic(true)\n            .searchAnalyzer(\"lucene.standard\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test-basic-search-index:\n    type: mongodbatlas:SearchIndex\n    properties:\n      name: test-basic-search-index\n      projectId: \u003cPROJECT_ID\u003e\n      clusterName: \u003cCLUSTER_NAME\u003e\n      analyzer: lucene.standard\n      collectionName: collection_test\n      database: database_test\n      mappingsDynamic: true\n      searchAnalyzer: lucene.standard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Basic vector index\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test_basic_search_vector = new mongodbatlas.SearchIndex(\"test-basic-search-vector\", {\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    clusterName: \"\u003cCLUSTER_NAME\u003e\",\n    collectionName: \"collection_test\",\n    database: \"database_test\",\n    type: \"vectorSearch\",\n    fields: `[{\n      \\\\\"type\\\\\": \\\\\"vector\\\\\",\n      \\\\\"path\\\\\": \\\\\"plot_embedding\\\\\",\n      \\\\\"numDimensions\\\\\": 1536,\n      \\\\\"similarity\\\\\": \\\\\"euclidean\\\\\"\n}]\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_basic_search_vector = mongodbatlas.SearchIndex(\"test-basic-search-vector\",\n    project_id=\"\u003cPROJECT_ID\u003e\",\n    cluster_name=\"\u003cCLUSTER_NAME\u003e\",\n    collection_name=\"collection_test\",\n    database=\"database_test\",\n    type=\"vectorSearch\",\n    fields=\"\"\"[{\n      \\\"type\\\": \\\"vector\\\",\n      \\\"path\\\": \\\"plot_embedding\\\",\n      \\\"numDimensions\\\": 1536,\n      \\\"similarity\\\": \\\"euclidean\\\"\n}]\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test_basic_search_vector = new Mongodbatlas.SearchIndex(\"test-basic-search-vector\", new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        ClusterName = \"\u003cCLUSTER_NAME\u003e\",\n        CollectionName = \"collection_test\",\n        Database = \"database_test\",\n        Type = \"vectorSearch\",\n        Fields = @\"[{\n      \\\"\"type\\\"\": \\\"\"vector\\\"\",\n      \\\"\"path\\\"\": \\\"\"plot_embedding\\\"\",\n      \\\"\"numDimensions\\\"\": 1536,\n      \\\"\"similarity\\\"\": \\\"\"euclidean\\\"\"\n}]\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewSearchIndex(ctx, \"test-basic-search-vector\", \u0026mongodbatlas.SearchIndexArgs{\n\t\t\tProjectId:      pulumi.String(\"\u003cPROJECT_ID\u003e\"),\n\t\t\tClusterName:    pulumi.String(\"\u003cCLUSTER_NAME\u003e\"),\n\t\t\tCollectionName: pulumi.String(\"collection_test\"),\n\t\t\tDatabase:       pulumi.String(\"database_test\"),\n\t\t\tType:           pulumi.String(\"vectorSearch\"),\n\t\t\tFields: pulumi.String(`[{\n      \\\"type\\\": \\\"vector\\\",\n      \\\"path\\\": \\\"plot_embedding\\\",\n      \\\"numDimensions\\\": 1536,\n      \\\"similarity\\\": \\\"euclidean\\\"\n}]\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.SearchIndex;\nimport com.pulumi.mongodbatlas.SearchIndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test_basic_search_vector = new SearchIndex(\"test-basic-search-vector\", SearchIndexArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .clusterName(\"\u003cCLUSTER_NAME\u003e\")\n            .collectionName(\"collection_test\")\n            .database(\"database_test\")\n            .type(\"vectorSearch\")\n            .fields(\"\"\"\n[{\n      \\\"type\\\": \\\"vector\\\",\n      \\\"path\\\": \\\"plot_embedding\\\",\n      \\\"numDimensions\\\": 1536,\n      \\\"similarity\\\": \\\"euclidean\\\"\n}]\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test-basic-search-vector:\n    type: mongodbatlas:SearchIndex\n    properties:\n      projectId: \u003cPROJECT_ID\u003e\n      clusterName: \u003cCLUSTER_NAME\u003e\n      collectionName: collection_test\n      database: database_test\n      type: vectorSearch\n      fields: |\n        [{\n              \\\"type\\\": \\\"vector\\\",\n              \\\"path\\\": \\\"plot_embedding\\\",\n              \\\"numDimensions\\\": 1536,\n              \\\"similarity\\\": \\\"euclidean\\\"\n        }]\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Advanced search index (with custom analyzers)\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test_advanced_search_index = new mongodbatlas.SearchIndex(\"test-advanced-search-index\", {\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    clusterName: \"\u003cCLUSTER_NAME\u003e\",\n    analyzer: \"lucene.standard\",\n    collectionName: \"collection_test\",\n    database: \"database_test\",\n    mappingsDynamic: false,\n    mappingsFields: `{\n      \\\\\"address\\\\\": {\n        \\\\\"type\\\\\": \\\\\"document\\\\\",\n        \\\\\"fields\\\\\": {\n          \\\\\"city\\\\\": {\n            \\\\\"type\\\\\": \\\\\"string\\\\\",\n            \\\\\"analyzer\\\\\": \\\\\"lucene.simple\\\\\",\n            \\\\\"ignoreAbove\\\\\": 255\n          },\n          \\\\\"state\\\\\": {\n            \\\\\"type\\\\\": \\\\\"string\\\\\",\n            \\\\\"analyzer\\\\\": \\\\\"lucene.english\\\\\"\n          }\n        }\n      },\n      \\\\\"company\\\\\": {\n        \\\\\"type\\\\\": \\\\\"string\\\\\",\n        \\\\\"analyzer\\\\\": \\\\\"lucene.whitespace\\\\\",\n        \\\\\"multi\\\\\": {\n          \\\\\"mySecondaryAnalyzer\\\\\": {\n            \\\\\"type\\\\\": \\\\\"string\\\\\",\n            \\\\\"analyzer\\\\\": \\\\\"lucene.french\\\\\"\n          }\n        }\n      },\n      \\\\\"employees\\\\\": {\n        \\\\\"type\\\\\": \\\\\"string\\\\\",\n        \\\\\"analyzer\\\\\": \\\\\"lucene.standard\\\\\"\n      }\n}\n`,\n    name: \"test-advanced-search-index\",\n    searchAnalyzer: \"lucene.standard\",\n    analyzers: ` [{\n \\\\\"name\\\\\": \\\\\"index_analyzer_test_name\\\\\",\n \\\\\"charFilters\\\\\": [{\n\\\\\"type\\\\\": \\\\\"mapping\\\\\",\n\\\\\"mappings\\\\\": {\\\\\"\\\\\\\\\\\\\\\\\\\\\" : \\\\\"/\\\\\"}\n   \\\\t}],\n \\\\\"tokenizer\\\\\": {\n \\\\\"type\\\\\": \\\\\"nGram\\\\\",\n \\\\\"minGram\\\\\": 2,\n \\\\\"maxGram\\\\\": 5\n\\\\t},\n \\\\\"tokenFilters\\\\\": [{\n\\\\\"type\\\\\": \\\\\"length\\\\\",\n\\\\\"min\\\\\": 20,\n\\\\\"max\\\\\": 33\n   \\\\t}]\n }]\n`,\n    synonyms: [{\n        analyzer: \"lucene.simple\",\n        name: \"synonym_test\",\n        sourceCollection: \"collection_test\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_advanced_search_index = mongodbatlas.SearchIndex(\"test-advanced-search-index\",\n    project_id=\"\u003cPROJECT_ID\u003e\",\n    cluster_name=\"\u003cCLUSTER_NAME\u003e\",\n    analyzer=\"lucene.standard\",\n    collection_name=\"collection_test\",\n    database=\"database_test\",\n    mappings_dynamic=False,\n    mappings_fields=\"\"\"{\n      \\\"address\\\": {\n        \\\"type\\\": \\\"document\\\",\n        \\\"fields\\\": {\n          \\\"city\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"analyzer\\\": \\\"lucene.simple\\\",\n            \\\"ignoreAbove\\\": 255\n          },\n          \\\"state\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"analyzer\\\": \\\"lucene.english\\\"\n          }\n        }\n      },\n      \\\"company\\\": {\n        \\\"type\\\": \\\"string\\\",\n        \\\"analyzer\\\": \\\"lucene.whitespace\\\",\n        \\\"multi\\\": {\n          \\\"mySecondaryAnalyzer\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"analyzer\\\": \\\"lucene.french\\\"\n          }\n        }\n      },\n      \\\"employees\\\": {\n        \\\"type\\\": \\\"string\\\",\n        \\\"analyzer\\\": \\\"lucene.standard\\\"\n      }\n}\n\"\"\",\n    name=\"test-advanced-search-index\",\n    search_analyzer=\"lucene.standard\",\n    analyzers=\"\"\" [{\n \\\"name\\\": \\\"index_analyzer_test_name\\\",\n \\\"charFilters\\\": [{\n\\\"type\\\": \\\"mapping\\\",\n\\\"mappings\\\": {\\\"\\\\\\\\\\\" : \\\"/\\\"}\n   \\t}],\n \\\"tokenizer\\\": {\n \\\"type\\\": \\\"nGram\\\",\n \\\"minGram\\\": 2,\n \\\"maxGram\\\": 5\n\\t},\n \\\"tokenFilters\\\": [{\n\\\"type\\\": \\\"length\\\",\n\\\"min\\\": 20,\n\\\"max\\\": 33\n   \\t}]\n }]\n\"\"\",\n    synonyms=[{\n        \"analyzer\": \"lucene.simple\",\n        \"name\": \"synonym_test\",\n        \"source_collection\": \"collection_test\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test_advanced_search_index = new Mongodbatlas.SearchIndex(\"test-advanced-search-index\", new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        ClusterName = \"\u003cCLUSTER_NAME\u003e\",\n        Analyzer = \"lucene.standard\",\n        CollectionName = \"collection_test\",\n        Database = \"database_test\",\n        MappingsDynamic = false,\n        MappingsFields = @\"{\n      \\\"\"address\\\"\": {\n        \\\"\"type\\\"\": \\\"\"document\\\"\",\n        \\\"\"fields\\\"\": {\n          \\\"\"city\\\"\": {\n            \\\"\"type\\\"\": \\\"\"string\\\"\",\n            \\\"\"analyzer\\\"\": \\\"\"lucene.simple\\\"\",\n            \\\"\"ignoreAbove\\\"\": 255\n          },\n          \\\"\"state\\\"\": {\n            \\\"\"type\\\"\": \\\"\"string\\\"\",\n            \\\"\"analyzer\\\"\": \\\"\"lucene.english\\\"\"\n          }\n        }\n      },\n      \\\"\"company\\\"\": {\n        \\\"\"type\\\"\": \\\"\"string\\\"\",\n        \\\"\"analyzer\\\"\": \\\"\"lucene.whitespace\\\"\",\n        \\\"\"multi\\\"\": {\n          \\\"\"mySecondaryAnalyzer\\\"\": {\n            \\\"\"type\\\"\": \\\"\"string\\\"\",\n            \\\"\"analyzer\\\"\": \\\"\"lucene.french\\\"\"\n          }\n        }\n      },\n      \\\"\"employees\\\"\": {\n        \\\"\"type\\\"\": \\\"\"string\\\"\",\n        \\\"\"analyzer\\\"\": \\\"\"lucene.standard\\\"\"\n      }\n}\n\",\n        Name = \"test-advanced-search-index\",\n        SearchAnalyzer = \"lucene.standard\",\n        Analyzers = @\" [{\n \\\"\"name\\\"\": \\\"\"index_analyzer_test_name\\\"\",\n \\\"\"charFilters\\\"\": [{\n\\\"\"type\\\"\": \\\"\"mapping\\\"\",\n\\\"\"mappings\\\"\": {\\\"\"\\\\\\\\\\\"\" : \\\"\"/\\\"\"}\n   \\t}],\n \\\"\"tokenizer\\\"\": {\n \\\"\"type\\\"\": \\\"\"nGram\\\"\",\n \\\"\"minGram\\\"\": 2,\n \\\"\"maxGram\\\"\": 5\n\\t},\n \\\"\"tokenFilters\\\"\": [{\n\\\"\"type\\\"\": \\\"\"length\\\"\",\n\\\"\"min\\\"\": 20,\n\\\"\"max\\\"\": 33\n   \\t}]\n }]\n\",\n        Synonyms = new[]\n        {\n            new Mongodbatlas.Inputs.SearchIndexSynonymArgs\n            {\n                Analyzer = \"lucene.simple\",\n                Name = \"synonym_test\",\n                SourceCollection = \"collection_test\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewSearchIndex(ctx, \"test-advanced-search-index\", \u0026mongodbatlas.SearchIndexArgs{\n\t\t\tProjectId:       pulumi.String(\"\u003cPROJECT_ID\u003e\"),\n\t\t\tClusterName:     pulumi.String(\"\u003cCLUSTER_NAME\u003e\"),\n\t\t\tAnalyzer:        pulumi.String(\"lucene.standard\"),\n\t\t\tCollectionName:  pulumi.String(\"collection_test\"),\n\t\t\tDatabase:        pulumi.String(\"database_test\"),\n\t\t\tMappingsDynamic: pulumi.Bool(false),\n\t\t\tMappingsFields: pulumi.String(`{\n      \\\"address\\\": {\n        \\\"type\\\": \\\"document\\\",\n        \\\"fields\\\": {\n          \\\"city\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"analyzer\\\": \\\"lucene.simple\\\",\n            \\\"ignoreAbove\\\": 255\n          },\n          \\\"state\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"analyzer\\\": \\\"lucene.english\\\"\n          }\n        }\n      },\n      \\\"company\\\": {\n        \\\"type\\\": \\\"string\\\",\n        \\\"analyzer\\\": \\\"lucene.whitespace\\\",\n        \\\"multi\\\": {\n          \\\"mySecondaryAnalyzer\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"analyzer\\\": \\\"lucene.french\\\"\n          }\n        }\n      },\n      \\\"employees\\\": {\n        \\\"type\\\": \\\"string\\\",\n        \\\"analyzer\\\": \\\"lucene.standard\\\"\n      }\n}\n`),\n\t\t\tName:           pulumi.String(\"test-advanced-search-index\"),\n\t\t\tSearchAnalyzer: pulumi.String(\"lucene.standard\"),\n\t\t\tAnalyzers: pulumi.String(` [{\n \\\"name\\\": \\\"index_analyzer_test_name\\\",\n \\\"charFilters\\\": [{\n\\\"type\\\": \\\"mapping\\\",\n\\\"mappings\\\": {\\\"\\\\\\\\\\\" : \\\"/\\\"}\n   \\t}],\n \\\"tokenizer\\\": {\n \\\"type\\\": \\\"nGram\\\",\n \\\"minGram\\\": 2,\n \\\"maxGram\\\": 5\n\\t},\n \\\"tokenFilters\\\": [{\n\\\"type\\\": \\\"length\\\",\n\\\"min\\\": 20,\n\\\"max\\\": 33\n   \\t}]\n }]\n`),\n\t\t\tSynonyms: mongodbatlas.SearchIndexSynonymArray{\n\t\t\t\t\u0026mongodbatlas.SearchIndexSynonymArgs{\n\t\t\t\t\tAnalyzer:         pulumi.String(\"lucene.simple\"),\n\t\t\t\t\tName:             pulumi.String(\"synonym_test\"),\n\t\t\t\t\tSourceCollection: pulumi.String(\"collection_test\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.SearchIndex;\nimport com.pulumi.mongodbatlas.SearchIndexArgs;\nimport com.pulumi.mongodbatlas.inputs.SearchIndexSynonymArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test_advanced_search_index = new SearchIndex(\"test-advanced-search-index\", SearchIndexArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .clusterName(\"\u003cCLUSTER_NAME\u003e\")\n            .analyzer(\"lucene.standard\")\n            .collectionName(\"collection_test\")\n            .database(\"database_test\")\n            .mappingsDynamic(false)\n            .mappingsFields(\"\"\"\n{\n      \\\"address\\\": {\n        \\\"type\\\": \\\"document\\\",\n        \\\"fields\\\": {\n          \\\"city\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"analyzer\\\": \\\"lucene.simple\\\",\n            \\\"ignoreAbove\\\": 255\n          },\n          \\\"state\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"analyzer\\\": \\\"lucene.english\\\"\n          }\n        }\n      },\n      \\\"company\\\": {\n        \\\"type\\\": \\\"string\\\",\n        \\\"analyzer\\\": \\\"lucene.whitespace\\\",\n        \\\"multi\\\": {\n          \\\"mySecondaryAnalyzer\\\": {\n            \\\"type\\\": \\\"string\\\",\n            \\\"analyzer\\\": \\\"lucene.french\\\"\n          }\n        }\n      },\n      \\\"employees\\\": {\n        \\\"type\\\": \\\"string\\\",\n        \\\"analyzer\\\": \\\"lucene.standard\\\"\n      }\n}\n            \"\"\")\n            .name(\"test-advanced-search-index\")\n            .searchAnalyzer(\"lucene.standard\")\n            .analyzers(\"\"\"\n [{\n \\\"name\\\": \\\"index_analyzer_test_name\\\",\n \\\"charFilters\\\": [{\n\\\"type\\\": \\\"mapping\\\",\n\\\"mappings\\\": {\\\"\\\\\\\\\\\" : \\\"/\\\"}\n   \\t}],\n \\\"tokenizer\\\": {\n \\\"type\\\": \\\"nGram\\\",\n \\\"minGram\\\": 2,\n \\\"maxGram\\\": 5\n\\t},\n \\\"tokenFilters\\\": [{\n\\\"type\\\": \\\"length\\\",\n\\\"min\\\": 20,\n\\\"max\\\": 33\n   \\t}]\n }]\n            \"\"\")\n            .synonyms(SearchIndexSynonymArgs.builder()\n                .analyzer(\"lucene.simple\")\n                .name(\"synonym_test\")\n                .sourceCollection(\"collection_test\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test-advanced-search-index:\n    type: mongodbatlas:SearchIndex\n    properties:\n      projectId: \u003cPROJECT_ID\u003e\n      clusterName: \u003cCLUSTER_NAME\u003e\n      analyzer: lucene.standard\n      collectionName: collection_test\n      database: database_test\n      mappingsDynamic: false\n      mappingsFields: |\n        {\n              \\\"address\\\": {\n                \\\"type\\\": \\\"document\\\",\n                \\\"fields\\\": {\n                  \\\"city\\\": {\n                    \\\"type\\\": \\\"string\\\",\n                    \\\"analyzer\\\": \\\"lucene.simple\\\",\n                    \\\"ignoreAbove\\\": 255\n                  },\n                  \\\"state\\\": {\n                    \\\"type\\\": \\\"string\\\",\n                    \\\"analyzer\\\": \\\"lucene.english\\\"\n                  }\n                }\n              },\n              \\\"company\\\": {\n                \\\"type\\\": \\\"string\\\",\n                \\\"analyzer\\\": \\\"lucene.whitespace\\\",\n                \\\"multi\\\": {\n                  \\\"mySecondaryAnalyzer\\\": {\n                    \\\"type\\\": \\\"string\\\",\n                    \\\"analyzer\\\": \\\"lucene.french\\\"\n                  }\n                }\n              },\n              \\\"employees\\\": {\n                \\\"type\\\": \\\"string\\\",\n                \\\"analyzer\\\": \\\"lucene.standard\\\"\n              }\n        }\n      name: test-advanced-search-index\n      searchAnalyzer: lucene.standard\n      analyzers: |2\n         [{\n         \\\"name\\\": \\\"index_analyzer_test_name\\\",\n         \\\"charFilters\\\": [{\n        \\\"type\\\": \\\"mapping\\\",\n        \\\"mappings\\\": {\\\"\\\\\\\\\\\" : \\\"/\\\"}\n           \\t}],\n         \\\"tokenizer\\\": {\n         \\\"type\\\": \\\"nGram\\\",\n         \\\"minGram\\\": 2,\n         \\\"maxGram\\\": 5\n        \\t},\n         \\\"tokenFilters\\\": [{\n        \\\"type\\\": \\\"length\\\",\n        \\\"min\\\": 20,\n        \\\"max\\\": 33\n           \\t}]\n         }]\n      synonyms:\n        - analyzer: lucene.simple\n          name: synonym_test\n          sourceCollection: collection_test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Configurable dynamic (typeSets + dynamic object)\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst conf_dynamic = new mongodbatlas.SearchIndex(\"conf-dynamic\", {\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    clusterName: \"\u003cCLUSTER_NAME\u003e\",\n    collectionName: \"collection_test\",\n    database: \"database_test\",\n    name: \"conf-dynamic\",\n    type: \"search\",\n    mappingsDynamicConfig: \"{ \\\\\\\"typeSet\\\\\\\": \\\\\\\"type_set_name\\\\\\\" }\\n\",\n    typeSets: [{\n        name: \"type_set_name\",\n        types: `[\n  { \\\\\"type\\\\\": \\\\\"string\\\\\" }\n]\n`,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nconf_dynamic = mongodbatlas.SearchIndex(\"conf-dynamic\",\n    project_id=\"\u003cPROJECT_ID\u003e\",\n    cluster_name=\"\u003cCLUSTER_NAME\u003e\",\n    collection_name=\"collection_test\",\n    database=\"database_test\",\n    name=\"conf-dynamic\",\n    type=\"search\",\n    mappings_dynamic_config=\"{ \\\\\\\"typeSet\\\\\\\": \\\\\\\"type_set_name\\\\\\\" }\\n\",\n    type_sets=[{\n        \"name\": \"type_set_name\",\n        \"types\": \"\"\"[\n  { \\\"type\\\": \\\"string\\\" }\n]\n\"\"\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var conf_dynamic = new Mongodbatlas.SearchIndex(\"conf-dynamic\", new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        ClusterName = \"\u003cCLUSTER_NAME\u003e\",\n        CollectionName = \"collection_test\",\n        Database = \"database_test\",\n        Name = \"conf-dynamic\",\n        Type = \"search\",\n        MappingsDynamicConfig = @\"{ \\\"\"typeSet\\\"\": \\\"\"type_set_name\\\"\" }\n\",\n        TypeSets = new[]\n        {\n            new Mongodbatlas.Inputs.SearchIndexTypeSetArgs\n            {\n                Name = \"type_set_name\",\n                Types = @\"[\n  { \\\"\"type\\\"\": \\\"\"string\\\"\" }\n]\n\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewSearchIndex(ctx, \"conf-dynamic\", \u0026mongodbatlas.SearchIndexArgs{\n\t\t\tProjectId:             pulumi.String(\"\u003cPROJECT_ID\u003e\"),\n\t\t\tClusterName:           pulumi.String(\"\u003cCLUSTER_NAME\u003e\"),\n\t\t\tCollectionName:        pulumi.String(\"collection_test\"),\n\t\t\tDatabase:              pulumi.String(\"database_test\"),\n\t\t\tName:                  pulumi.String(\"conf-dynamic\"),\n\t\t\tType:                  pulumi.String(\"search\"),\n\t\t\tMappingsDynamicConfig: pulumi.String(\"{ \\\\\\\"typeSet\\\\\\\": \\\\\\\"type_set_name\\\\\\\" }\\n\"),\n\t\t\tTypeSets: mongodbatlas.SearchIndexTypeSetArray{\n\t\t\t\t\u0026mongodbatlas.SearchIndexTypeSetArgs{\n\t\t\t\t\tName:  pulumi.String(\"type_set_name\"),\n\t\t\t\t\tTypes: pulumi.String(\"[\\n  { \\\\\\\"type\\\\\\\": \\\\\\\"string\\\\\\\" }\\n]\\n\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.SearchIndex;\nimport com.pulumi.mongodbatlas.SearchIndexArgs;\nimport com.pulumi.mongodbatlas.inputs.SearchIndexTypeSetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var conf_dynamic = new SearchIndex(\"conf-dynamic\", SearchIndexArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .clusterName(\"\u003cCLUSTER_NAME\u003e\")\n            .collectionName(\"collection_test\")\n            .database(\"database_test\")\n            .name(\"conf-dynamic\")\n            .type(\"search\")\n            .mappingsDynamicConfig(\"\"\"\n{ \\\"typeSet\\\": \\\"type_set_name\\\" }\n            \"\"\")\n            .typeSets(SearchIndexTypeSetArgs.builder()\n                .name(\"type_set_name\")\n                .types(\"\"\"\n[\n  { \\\"type\\\": \\\"string\\\" }\n]\n                \"\"\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  conf-dynamic:\n    type: mongodbatlas:SearchIndex\n    properties:\n      projectId: \u003cPROJECT_ID\u003e\n      clusterName: \u003cCLUSTER_NAME\u003e\n      collectionName: collection_test\n      database: database_test\n      name: conf-dynamic\n      type: search\n      mappingsDynamicConfig: |\n        { \\\"typeSet\\\": \\\"type_set_name\\\" }\n      typeSets:\n        - name: type_set_name\n          types: |\n            [\n              { \\\"type\\\": \\\"string\\\" }\n            ]\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"analyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when creating the index. Defaults to [lucene.standard](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/standard/#std-label-ref-standard-analyzer)\n"},"analyzers":{"type":"string","description":"[Custom analyzers](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/custom/#std-label-custom-analyzers) to use in this index. This is an array of JSON objects.\n```\nanalyzers = \u003c\u003c-EOF\n[{\n\"name\": \"index_analyzer_test_name\",\n\"charFilters\": [{\n\"type\": \"mapping\",\n\"mappings\": {\"\\\\\" : \"/\"}\n}],\n\"tokenizer\": {\n\"type\": \"nGram\",\n\"minGram\": 2,\n\"maxGram\": 5\n},\n\"tokenFilters\": [{\n\"type\": \"length\",\n\"min\": 20,\n\"max\": 33\n}]\n}]\nEOF\n```\n"},"clusterName":{"type":"string","description":"The name of the cluster where you want to create the search index within.\n"},"collectionName":{"type":"string","description":"Name of the collection the index is on. **NOTE:** The collection must exist before creating the index.\n"},"database":{"type":"string","description":"Name of the database the collection is in.\n"},"fields":{"type":"string","description":"Array of [Fields](https://www.mongodb.com/docs/atlas/atlas-search/field-types/knn-vector/#std-label-fts-data-types-knn-vector) to configure this `vectorSearch` index. It is mandatory for vector searches and it must contain at least one \u003cspan pulumi-lang-nodejs=\"`vector`\" pulumi-lang-dotnet=\"`Vector`\" pulumi-lang-go=\"`vector`\" pulumi-lang-python=\"`vector`\" pulumi-lang-yaml=\"`vector`\" pulumi-lang-java=\"`vector`\"\u003e`vector`\u003c/span\u003e type field. This field needs to be a JSON string in order to be decoded correctly.\n"},"indexId":{"type":"string","description":"The unique identifier of the Atlas Search index.\n"},"mappingsDynamic":{"type":"boolean","description":"Indicates whether the search index uses dynamic or static mapping. For default dynamic mapping, set the value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. For static mapping, specify the fields to index using \u003cspan pulumi-lang-nodejs=\"`mappingsFields`\" pulumi-lang-dotnet=\"`MappingsFields`\" pulumi-lang-go=\"`mappingsFields`\" pulumi-lang-python=\"`mappings_fields`\" pulumi-lang-yaml=\"`mappingsFields`\" pulumi-lang-java=\"`mappingsFields`\"\u003e`mappings_fields`\u003c/span\u003e. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`mappingsDynamicConfig`\" pulumi-lang-dotnet=\"`MappingsDynamicConfig`\" pulumi-lang-go=\"`mappingsDynamicConfig`\" pulumi-lang-python=\"`mappings_dynamic_config`\" pulumi-lang-yaml=\"`mappingsDynamicConfig`\" pulumi-lang-java=\"`mappingsDynamicConfig`\"\u003e`mappings_dynamic_config`\u003c/span\u003e.\n"},"mappingsDynamicConfig":{"type":"string","description":"JSON object for `mappings.dynamic` when using configurable dynamic. See the MongoDB documentation for further information on [Static and Dynamic Mapping](https://www.mongodb.com/docs/atlas/atlas-search/define-field-mappings/#std-label-fts-field-mappings). Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`mappingsDynamic`\" pulumi-lang-dotnet=\"`MappingsDynamic`\" pulumi-lang-go=\"`mappingsDynamic`\" pulumi-lang-python=\"`mappings_dynamic`\" pulumi-lang-yaml=\"`mappingsDynamic`\" pulumi-lang-java=\"`mappingsDynamic`\"\u003e`mappings_dynamic`\u003c/span\u003e.\n"},"mappingsFields":{"type":"string","description":"attribute is required in search indexes when \u003cspan pulumi-lang-nodejs=\"`mappingsDynamic`\" pulumi-lang-dotnet=\"`MappingsDynamic`\" pulumi-lang-go=\"`mappingsDynamic`\" pulumi-lang-python=\"`mappings_dynamic`\" pulumi-lang-yaml=\"`mappingsDynamic`\" pulumi-lang-java=\"`mappingsDynamic`\"\u003e`mappings_dynamic`\u003c/span\u003e is false. This field needs to be a JSON string in order to be decoded correctly.\n"},"name":{"type":"string","description":"The name of the search index you want to create.\n"},"numPartitions":{"type":"integer","description":"Number of index partitions. Allowed values are [1, 2, 4]. Default value is 1.\n"},"projectId":{"type":"string","description":"The ID of the organization or project you want to create the search index within.\n"},"searchAnalyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when searching the index. Defaults to [lucene.standard](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/standard/#std-label-ref-standard-analyzer)\n"},"status":{"type":"string","description":"Current status of the index.\n"},"storedSource":{"type":"string","description":"String that can be \"true\" (store all fields), \"false\" (default, don't store any field), or a JSON string that contains the list of fields to store (include) or not store (exclude) on Atlas Search. To learn more, see [Stored Source Fields](https://www.mongodb.com/docs/atlas/atlas-search/stored-source-definition/).\n"},"synonyms":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/SearchIndexSynonym:SearchIndexSynonym"},"description":"Synonyms mapping definition to use in this index.\n"},"type":{"type":"string","description":"Type of index: \u003cspan pulumi-lang-nodejs=\"`search`\" pulumi-lang-dotnet=\"`Search`\" pulumi-lang-go=\"`search`\" pulumi-lang-python=\"`search`\" pulumi-lang-yaml=\"`search`\" pulumi-lang-java=\"`search`\"\u003e`search`\u003c/span\u003e or `vectorSearch`. Default type is \u003cspan pulumi-lang-nodejs=\"`search`\" pulumi-lang-dotnet=\"`Search`\" pulumi-lang-go=\"`search`\" pulumi-lang-python=\"`search`\" pulumi-lang-yaml=\"`search`\" pulumi-lang-java=\"`search`\"\u003e`search`\u003c/span\u003e.\n"},"typeSets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/SearchIndexTypeSet:SearchIndexTypeSet"},"description":"One or more blocks defining configurable dynamic type sets. Atlas only persists/returns `typeSets` when `mappings.dynamic` is an object referencing a `typeSet` name.\n"},"waitForIndexBuildCompletion":{"type":"boolean","description":"Wait for search index to achieve Active status before terraform considers resource built.\n"}},"required":["clusterName","collectionName","database","indexId","name","projectId","status"],"inputProperties":{"analyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when creating the index. Defaults to [lucene.standard](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/standard/#std-label-ref-standard-analyzer)\n"},"analyzers":{"type":"string","description":"[Custom analyzers](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/custom/#std-label-custom-analyzers) to use in this index. This is an array of JSON objects.\n```\nanalyzers = \u003c\u003c-EOF\n[{\n\"name\": \"index_analyzer_test_name\",\n\"charFilters\": [{\n\"type\": \"mapping\",\n\"mappings\": {\"\\\\\" : \"/\"}\n}],\n\"tokenizer\": {\n\"type\": \"nGram\",\n\"minGram\": 2,\n\"maxGram\": 5\n},\n\"tokenFilters\": [{\n\"type\": \"length\",\n\"min\": 20,\n\"max\": 33\n}]\n}]\nEOF\n```\n"},"clusterName":{"type":"string","description":"The name of the cluster where you want to create the search index within.\n","willReplaceOnChanges":true},"collectionName":{"type":"string","description":"Name of the collection the index is on. **NOTE:** The collection must exist before creating the index.\n"},"database":{"type":"string","description":"Name of the database the collection is in.\n"},"fields":{"type":"string","description":"Array of [Fields](https://www.mongodb.com/docs/atlas/atlas-search/field-types/knn-vector/#std-label-fts-data-types-knn-vector) to configure this `vectorSearch` index. It is mandatory for vector searches and it must contain at least one \u003cspan pulumi-lang-nodejs=\"`vector`\" pulumi-lang-dotnet=\"`Vector`\" pulumi-lang-go=\"`vector`\" pulumi-lang-python=\"`vector`\" pulumi-lang-yaml=\"`vector`\" pulumi-lang-java=\"`vector`\"\u003e`vector`\u003c/span\u003e type field. This field needs to be a JSON string in order to be decoded correctly.\n"},"mappingsDynamic":{"type":"boolean","description":"Indicates whether the search index uses dynamic or static mapping. For default dynamic mapping, set the value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. For static mapping, specify the fields to index using \u003cspan pulumi-lang-nodejs=\"`mappingsFields`\" pulumi-lang-dotnet=\"`MappingsFields`\" pulumi-lang-go=\"`mappingsFields`\" pulumi-lang-python=\"`mappings_fields`\" pulumi-lang-yaml=\"`mappingsFields`\" pulumi-lang-java=\"`mappingsFields`\"\u003e`mappings_fields`\u003c/span\u003e. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`mappingsDynamicConfig`\" pulumi-lang-dotnet=\"`MappingsDynamicConfig`\" pulumi-lang-go=\"`mappingsDynamicConfig`\" pulumi-lang-python=\"`mappings_dynamic_config`\" pulumi-lang-yaml=\"`mappingsDynamicConfig`\" pulumi-lang-java=\"`mappingsDynamicConfig`\"\u003e`mappings_dynamic_config`\u003c/span\u003e.\n"},"mappingsDynamicConfig":{"type":"string","description":"JSON object for `mappings.dynamic` when using configurable dynamic. See the MongoDB documentation for further information on [Static and Dynamic Mapping](https://www.mongodb.com/docs/atlas/atlas-search/define-field-mappings/#std-label-fts-field-mappings). Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`mappingsDynamic`\" pulumi-lang-dotnet=\"`MappingsDynamic`\" pulumi-lang-go=\"`mappingsDynamic`\" pulumi-lang-python=\"`mappings_dynamic`\" pulumi-lang-yaml=\"`mappingsDynamic`\" pulumi-lang-java=\"`mappingsDynamic`\"\u003e`mappings_dynamic`\u003c/span\u003e.\n"},"mappingsFields":{"type":"string","description":"attribute is required in search indexes when \u003cspan pulumi-lang-nodejs=\"`mappingsDynamic`\" pulumi-lang-dotnet=\"`MappingsDynamic`\" pulumi-lang-go=\"`mappingsDynamic`\" pulumi-lang-python=\"`mappings_dynamic`\" pulumi-lang-yaml=\"`mappingsDynamic`\" pulumi-lang-java=\"`mappingsDynamic`\"\u003e`mappings_dynamic`\u003c/span\u003e is false. This field needs to be a JSON string in order to be decoded correctly.\n"},"name":{"type":"string","description":"The name of the search index you want to create.\n"},"numPartitions":{"type":"integer","description":"Number of index partitions. Allowed values are [1, 2, 4]. Default value is 1.\n"},"projectId":{"type":"string","description":"The ID of the organization or project you want to create the search index within.\n","willReplaceOnChanges":true},"searchAnalyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when searching the index. Defaults to [lucene.standard](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/standard/#std-label-ref-standard-analyzer)\n"},"storedSource":{"type":"string","description":"String that can be \"true\" (store all fields), \"false\" (default, don't store any field), or a JSON string that contains the list of fields to store (include) or not store (exclude) on Atlas Search. To learn more, see [Stored Source Fields](https://www.mongodb.com/docs/atlas/atlas-search/stored-source-definition/).\n"},"synonyms":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/SearchIndexSynonym:SearchIndexSynonym"},"description":"Synonyms mapping definition to use in this index.\n"},"type":{"type":"string","description":"Type of index: \u003cspan pulumi-lang-nodejs=\"`search`\" pulumi-lang-dotnet=\"`Search`\" pulumi-lang-go=\"`search`\" pulumi-lang-python=\"`search`\" pulumi-lang-yaml=\"`search`\" pulumi-lang-java=\"`search`\"\u003e`search`\u003c/span\u003e or `vectorSearch`. Default type is \u003cspan pulumi-lang-nodejs=\"`search`\" pulumi-lang-dotnet=\"`Search`\" pulumi-lang-go=\"`search`\" pulumi-lang-python=\"`search`\" pulumi-lang-yaml=\"`search`\" pulumi-lang-java=\"`search`\"\u003e`search`\u003c/span\u003e.\n"},"typeSets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/SearchIndexTypeSet:SearchIndexTypeSet"},"description":"One or more blocks defining configurable dynamic type sets. Atlas only persists/returns `typeSets` when `mappings.dynamic` is an object referencing a `typeSet` name.\n"},"waitForIndexBuildCompletion":{"type":"boolean","description":"Wait for search index to achieve Active status before terraform considers resource built.\n"}},"requiredInputs":["clusterName","collectionName","database","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering SearchIndex resources.\n","properties":{"analyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when creating the index. Defaults to [lucene.standard](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/standard/#std-label-ref-standard-analyzer)\n"},"analyzers":{"type":"string","description":"[Custom analyzers](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/custom/#std-label-custom-analyzers) to use in this index. This is an array of JSON objects.\n```\nanalyzers = \u003c\u003c-EOF\n[{\n\"name\": \"index_analyzer_test_name\",\n\"charFilters\": [{\n\"type\": \"mapping\",\n\"mappings\": {\"\\\\\" : \"/\"}\n}],\n\"tokenizer\": {\n\"type\": \"nGram\",\n\"minGram\": 2,\n\"maxGram\": 5\n},\n\"tokenFilters\": [{\n\"type\": \"length\",\n\"min\": 20,\n\"max\": 33\n}]\n}]\nEOF\n```\n"},"clusterName":{"type":"string","description":"The name of the cluster where you want to create the search index within.\n","willReplaceOnChanges":true},"collectionName":{"type":"string","description":"Name of the collection the index is on. **NOTE:** The collection must exist before creating the index.\n"},"database":{"type":"string","description":"Name of the database the collection is in.\n"},"fields":{"type":"string","description":"Array of [Fields](https://www.mongodb.com/docs/atlas/atlas-search/field-types/knn-vector/#std-label-fts-data-types-knn-vector) to configure this `vectorSearch` index. It is mandatory for vector searches and it must contain at least one \u003cspan pulumi-lang-nodejs=\"`vector`\" pulumi-lang-dotnet=\"`Vector`\" pulumi-lang-go=\"`vector`\" pulumi-lang-python=\"`vector`\" pulumi-lang-yaml=\"`vector`\" pulumi-lang-java=\"`vector`\"\u003e`vector`\u003c/span\u003e type field. This field needs to be a JSON string in order to be decoded correctly.\n"},"indexId":{"type":"string","description":"The unique identifier of the Atlas Search index.\n"},"mappingsDynamic":{"type":"boolean","description":"Indicates whether the search index uses dynamic or static mapping. For default dynamic mapping, set the value to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. For static mapping, specify the fields to index using \u003cspan pulumi-lang-nodejs=\"`mappingsFields`\" pulumi-lang-dotnet=\"`MappingsFields`\" pulumi-lang-go=\"`mappingsFields`\" pulumi-lang-python=\"`mappings_fields`\" pulumi-lang-yaml=\"`mappingsFields`\" pulumi-lang-java=\"`mappingsFields`\"\u003e`mappings_fields`\u003c/span\u003e. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`mappingsDynamicConfig`\" pulumi-lang-dotnet=\"`MappingsDynamicConfig`\" pulumi-lang-go=\"`mappingsDynamicConfig`\" pulumi-lang-python=\"`mappings_dynamic_config`\" pulumi-lang-yaml=\"`mappingsDynamicConfig`\" pulumi-lang-java=\"`mappingsDynamicConfig`\"\u003e`mappings_dynamic_config`\u003c/span\u003e.\n"},"mappingsDynamicConfig":{"type":"string","description":"JSON object for `mappings.dynamic` when using configurable dynamic. See the MongoDB documentation for further information on [Static and Dynamic Mapping](https://www.mongodb.com/docs/atlas/atlas-search/define-field-mappings/#std-label-fts-field-mappings). Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`mappingsDynamic`\" pulumi-lang-dotnet=\"`MappingsDynamic`\" pulumi-lang-go=\"`mappingsDynamic`\" pulumi-lang-python=\"`mappings_dynamic`\" pulumi-lang-yaml=\"`mappingsDynamic`\" pulumi-lang-java=\"`mappingsDynamic`\"\u003e`mappings_dynamic`\u003c/span\u003e.\n"},"mappingsFields":{"type":"string","description":"attribute is required in search indexes when \u003cspan pulumi-lang-nodejs=\"`mappingsDynamic`\" pulumi-lang-dotnet=\"`MappingsDynamic`\" pulumi-lang-go=\"`mappingsDynamic`\" pulumi-lang-python=\"`mappings_dynamic`\" pulumi-lang-yaml=\"`mappingsDynamic`\" pulumi-lang-java=\"`mappingsDynamic`\"\u003e`mappings_dynamic`\u003c/span\u003e is false. This field needs to be a JSON string in order to be decoded correctly.\n"},"name":{"type":"string","description":"The name of the search index you want to create.\n"},"numPartitions":{"type":"integer","description":"Number of index partitions. Allowed values are [1, 2, 4]. Default value is 1.\n"},"projectId":{"type":"string","description":"The ID of the organization or project you want to create the search index within.\n","willReplaceOnChanges":true},"searchAnalyzer":{"type":"string","description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when searching the index. Defaults to [lucene.standard](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/standard/#std-label-ref-standard-analyzer)\n"},"status":{"type":"string","description":"Current status of the index.\n"},"storedSource":{"type":"string","description":"String that can be \"true\" (store all fields), \"false\" (default, don't store any field), or a JSON string that contains the list of fields to store (include) or not store (exclude) on Atlas Search. To learn more, see [Stored Source Fields](https://www.mongodb.com/docs/atlas/atlas-search/stored-source-definition/).\n"},"synonyms":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/SearchIndexSynonym:SearchIndexSynonym"},"description":"Synonyms mapping definition to use in this index.\n"},"type":{"type":"string","description":"Type of index: \u003cspan pulumi-lang-nodejs=\"`search`\" pulumi-lang-dotnet=\"`Search`\" pulumi-lang-go=\"`search`\" pulumi-lang-python=\"`search`\" pulumi-lang-yaml=\"`search`\" pulumi-lang-java=\"`search`\"\u003e`search`\u003c/span\u003e or `vectorSearch`. Default type is \u003cspan pulumi-lang-nodejs=\"`search`\" pulumi-lang-dotnet=\"`Search`\" pulumi-lang-go=\"`search`\" pulumi-lang-python=\"`search`\" pulumi-lang-yaml=\"`search`\" pulumi-lang-java=\"`search`\"\u003e`search`\u003c/span\u003e.\n"},"typeSets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/SearchIndexTypeSet:SearchIndexTypeSet"},"description":"One or more blocks defining configurable dynamic type sets. Atlas only persists/returns `typeSets` when `mappings.dynamic` is an object referencing a `typeSet` name.\n"},"waitForIndexBuildCompletion":{"type":"boolean","description":"Wait for search index to achieve Active status before terraform considers resource built.\n"}},"type":"object"}},"mongodbatlas:index/serverlessInstance:ServerlessInstance":{"description":"\u003e **DEPRECATION:** This resource is deprecated and will be removed in January 2026. For more details, see Migration Guide: Transition out of Serverless Instances and Shared-tier clusters.\n\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServerlessInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.ServerlessInstance`\" pulumi-lang-go=\"`ServerlessInstance`\" pulumi-lang-python=\"`ServerlessInstance`\" pulumi-lang-yaml=\"`mongodbatlas.ServerlessInstance`\" pulumi-lang-java=\"`mongodbatlas.ServerlessInstance`\"\u003e`mongodbatlas.ServerlessInstance`\u003c/span\u003e provides a Serverless Instance resource. This allows serverless instances to be created.\n\n\u003e **NOTE:**  Serverless instances do not support some Atlas features at this time.\nFor a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/).\n\n## Example Usage\n\n### Basic\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.ServerlessInstance(\"test\", {\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    name: \"\u003cSERVERLESS_INSTANCE_NAME\u003e\",\n    providerSettingsBackingProviderName: \"AWS\",\n    providerSettingsProviderName: \"SERVERLESS\",\n    providerSettingsRegionName: \"US_EAST_1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.ServerlessInstance(\"test\",\n    project_id=\"\u003cPROJECT_ID\u003e\",\n    name=\"\u003cSERVERLESS_INSTANCE_NAME\u003e\",\n    provider_settings_backing_provider_name=\"AWS\",\n    provider_settings_provider_name=\"SERVERLESS\",\n    provider_settings_region_name=\"US_EAST_1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.ServerlessInstance(\"test\", new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        Name = \"\u003cSERVERLESS_INSTANCE_NAME\u003e\",\n        ProviderSettingsBackingProviderName = \"AWS\",\n        ProviderSettingsProviderName = \"SERVERLESS\",\n        ProviderSettingsRegionName = \"US_EAST_1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewServerlessInstance(ctx, \"test\", \u0026mongodbatlas.ServerlessInstanceArgs{\n\t\t\tProjectId:                           pulumi.String(\"\u003cPROJECT_ID\u003e\"),\n\t\t\tName:                                pulumi.String(\"\u003cSERVERLESS_INSTANCE_NAME\u003e\"),\n\t\t\tProviderSettingsBackingProviderName: pulumi.String(\"AWS\"),\n\t\t\tProviderSettingsProviderName:        pulumi.String(\"SERVERLESS\"),\n\t\t\tProviderSettingsRegionName:          pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ServerlessInstance;\nimport com.pulumi.mongodbatlas.ServerlessInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new ServerlessInstance(\"test\", ServerlessInstanceArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .name(\"\u003cSERVERLESS_INSTANCE_NAME\u003e\")\n            .providerSettingsBackingProviderName(\"AWS\")\n            .providerSettingsProviderName(\"SERVERLESS\")\n            .providerSettingsRegionName(\"US_EAST_1\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:ServerlessInstance\n    properties:\n      projectId: \u003cPROJECT_ID\u003e\n      name: \u003cSERVERLESS_INSTANCE_NAME\u003e\n      providerSettingsBackingProviderName: AWS\n      providerSettingsProviderName: SERVERLESS\n      providerSettingsRegionName: US_EAST_1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nServerless Instance can be imported using the group ID and serverless instance name, in the format `GROUP_ID-SERVERLESS_INSTANCE_NAME`, e.g.\n\n```sh\n$ terraform import mongodbatlas_serverless_instance.my_serverless_instance 1112222b3bf99403840e8934-My Serverless Instance\n```\n\nFor more information see: [MongoDB Atlas API - Serverless Instance](https://docs.atlas.mongodb.com/reference/api/serverless-instances/) Documentation.\n\n","properties":{"autoIndexing":{"type":"boolean","description":"Flag that indicates whether the serverless instance uses [Serverless Auto Indexing](https://www.mongodb.com/docs/atlas/performance-advisor/auto-index-serverless/). This parameter defaults to true.\n","deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide."},"connectionStringsPrivateEndpointSrvs":{"type":"array","items":{"type":"string"},"description":"List of Serverless Private Endpoint Connections\n"},"connectionStringsStandardSrv":{"type":"string","description":"Public `mongodb+srv://` connection string that you can use to connect to this serverless instance.\n"},"continuousBackupEnabled":{"type":"boolean","description":"Flag that indicates whether the serverless instance uses [Serverless Continuous Backup](https://www.mongodb.com/docs/atlas/configure-serverless-backup). If this parameter is false or not used, the serverless instance uses [Basic Backup](https://www.mongodb.com/docs/atlas/configure-serverless-backup).\n","deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide."},"createDate":{"type":"string","description":"Timestamp that indicates when MongoDB Cloud created the serverless instance. The timestamp displays in the ISO 8601 date and time format in UTC.\n"},"links":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ServerlessInstanceLink:ServerlessInstanceLink"}},"mongoDbVersion":{"type":"string","description":"Version of MongoDB that the serverless instance runs, in `\u003cmajor version\u003e`.`\u003cminor version\u003e` format.\n"},"name":{"type":"string","description":"Human-readable label that identifies the serverless instance.\n"},"projectId":{"type":"string","description":"The ID of the organization or project you want to create the serverless instance within.\n"},"providerSettingsBackingProviderName":{"type":"string","description":"Cloud service provider on which MongoDB Cloud provisioned the serverless instance.\n"},"providerSettingsProviderName":{"type":"string","description":"Cloud service provider that applies to the provisioned the serverless instance.\n"},"providerSettingsRegionName":{"type":"string","description":"Human-readable label that identifies the physical location of your MongoDB serverless instance. The region you choose can affect network latency for clients accessing your databases.\n"},"stateName":{"type":"string","description":"Stage of deployment of this serverless instance when the resource made its request.\n"},"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ServerlessInstanceTag:ServerlessInstanceTag"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"}},"required":["autoIndexing","connectionStringsPrivateEndpointSrvs","connectionStringsStandardSrv","continuousBackupEnabled","createDate","links","mongoDbVersion","name","projectId","providerSettingsBackingProviderName","providerSettingsProviderName","providerSettingsRegionName","stateName","terminationProtectionEnabled"],"inputProperties":{"autoIndexing":{"type":"boolean","description":"Flag that indicates whether the serverless instance uses [Serverless Auto Indexing](https://www.mongodb.com/docs/atlas/performance-advisor/auto-index-serverless/). This parameter defaults to true.\n","deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide."},"continuousBackupEnabled":{"type":"boolean","description":"Flag that indicates whether the serverless instance uses [Serverless Continuous Backup](https://www.mongodb.com/docs/atlas/configure-serverless-backup). If this parameter is false or not used, the serverless instance uses [Basic Backup](https://www.mongodb.com/docs/atlas/configure-serverless-backup).\n","deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide."},"links":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ServerlessInstanceLink:ServerlessInstanceLink"}},"name":{"type":"string","description":"Human-readable label that identifies the serverless instance.\n"},"projectId":{"type":"string","description":"The ID of the organization or project you want to create the serverless instance within.\n"},"providerSettingsBackingProviderName":{"type":"string","description":"Cloud service provider on which MongoDB Cloud provisioned the serverless instance.\n"},"providerSettingsProviderName":{"type":"string","description":"Cloud service provider that applies to the provisioned the serverless instance.\n"},"providerSettingsRegionName":{"type":"string","description":"Human-readable label that identifies the physical location of your MongoDB serverless instance. The region you choose can affect network latency for clients accessing your databases.\n"},"stateName":{"type":"string","description":"Stage of deployment of this serverless instance when the resource made its request.\n"},"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ServerlessInstanceTag:ServerlessInstanceTag"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"}},"requiredInputs":["projectId","providerSettingsBackingProviderName","providerSettingsProviderName","providerSettingsRegionName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServerlessInstance resources.\n","properties":{"autoIndexing":{"type":"boolean","description":"Flag that indicates whether the serverless instance uses [Serverless Auto Indexing](https://www.mongodb.com/docs/atlas/performance-advisor/auto-index-serverless/). This parameter defaults to true.\n","deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide."},"connectionStringsPrivateEndpointSrvs":{"type":"array","items":{"type":"string"},"description":"List of Serverless Private Endpoint Connections\n"},"connectionStringsStandardSrv":{"type":"string","description":"Public `mongodb+srv://` connection string that you can use to connect to this serverless instance.\n"},"continuousBackupEnabled":{"type":"boolean","description":"Flag that indicates whether the serverless instance uses [Serverless Continuous Backup](https://www.mongodb.com/docs/atlas/configure-serverless-backup). If this parameter is false or not used, the serverless instance uses [Basic Backup](https://www.mongodb.com/docs/atlas/configure-serverless-backup).\n","deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide."},"createDate":{"type":"string","description":"Timestamp that indicates when MongoDB Cloud created the serverless instance. The timestamp displays in the ISO 8601 date and time format in UTC.\n"},"links":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ServerlessInstanceLink:ServerlessInstanceLink"}},"mongoDbVersion":{"type":"string","description":"Version of MongoDB that the serverless instance runs, in `\u003cmajor version\u003e`.`\u003cminor version\u003e` format.\n"},"name":{"type":"string","description":"Human-readable label that identifies the serverless instance.\n"},"projectId":{"type":"string","description":"The ID of the organization or project you want to create the serverless instance within.\n"},"providerSettingsBackingProviderName":{"type":"string","description":"Cloud service provider on which MongoDB Cloud provisioned the serverless instance.\n"},"providerSettingsProviderName":{"type":"string","description":"Cloud service provider that applies to the provisioned the serverless instance.\n"},"providerSettingsRegionName":{"type":"string","description":"Human-readable label that identifies the physical location of your MongoDB serverless instance. The region you choose can affect network latency for clients accessing your databases.\n"},"stateName":{"type":"string","description":"Stage of deployment of this serverless instance when the resource made its request.\n"},"tags":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ServerlessInstanceTag:ServerlessInstanceTag"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n"},"terminationProtectionEnabled":{"type":"boolean","description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n"}},"type":"object"}},"mongodbatlas:index/serviceAccount:ServiceAccount":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServiceAccount`\" pulumi-lang-dotnet=\"`mongodbatlas.ServiceAccount`\" pulumi-lang-go=\"`ServiceAccount`\" pulumi-lang-python=\"`ServiceAccount`\" pulumi-lang-yaml=\"`mongodbatlas.ServiceAccount`\" pulumi-lang-java=\"`mongodbatlas.ServiceAccount`\"\u003e`mongodbatlas.ServiceAccount`\u003c/span\u003e provides a Service Account resource. The resource lets you create, update, delete, and import a Service Account for the specified Organization.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n## Import \n\nImport the Service Account resource by using the Organization ID and Client ID in the format `ORG_ID/CLIENT_ID`, e.g.\n```\n$ terraform import mongodbatlas_service_account.test 6117ac2fe2a3d04ed27a987v/mdb_sa_id_1234567890abcdef12345678\n```\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`secretExpiresAfterHours`\" pulumi-lang-dotnet=\"`SecretExpiresAfterHours`\" pulumi-lang-go=\"`secretExpiresAfterHours`\" pulumi-lang-python=\"`secret_expires_after_hours`\" pulumi-lang-yaml=\"`secretExpiresAfterHours`\" pulumi-lang-java=\"`secretExpiresAfterHours`\"\u003e`secret_expires_after_hours`\u003c/span\u003e is not populated during import and should be omitted in the resource definition when importing the resource.\n\nFor more information, see [Create One Organization Service Account](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorgserviceaccount) in the MongoDB Atlas API documentation.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"description":{"type":"string","description":"Human readable description for the Service Account.\n"},"name":{"type":"string","description":"Human-readable name for the Service Account. The name is modifiable and does not have to be unique.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of organization-level roles for the Service Account.\n"},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account and you cannot update it later.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ServiceAccountSecret:ServiceAccountSecret"},"description":"A list of secrets associated with the specified Service Account.\n"}},"required":["clientId","createdAt","description","name","orgId","roles","secrets"],"inputProperties":{"description":{"type":"string","description":"Human readable description for the Service Account.\n"},"name":{"type":"string","description":"Human-readable name for the Service Account. The name is modifiable and does not have to be unique.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of organization-level roles for the Service Account.\n"},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account and you cannot update it later.\n"}},"requiredInputs":["description","orgId","roles"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceAccount resources.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"description":{"type":"string","description":"Human readable description for the Service Account.\n"},"name":{"type":"string","description":"Human-readable name for the Service Account. The name is modifiable and does not have to be unique.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"A list of organization-level roles for the Service Account.\n"},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account and you cannot update it later.\n"},"secrets":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/ServiceAccountSecret:ServiceAccountSecret"},"description":"A list of secrets associated with the specified Service Account.\n"}},"type":"object"}},"mongodbatlas:index/serviceAccountAccessListEntry:ServiceAccountAccessListEntry":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServiceAccountAccessListEntry`\" pulumi-lang-dotnet=\"`mongodbatlas.ServiceAccountAccessListEntry`\" pulumi-lang-go=\"`ServiceAccountAccessListEntry`\" pulumi-lang-python=\"`ServiceAccountAccessListEntry`\" pulumi-lang-yaml=\"`mongodbatlas.ServiceAccountAccessListEntry`\" pulumi-lang-java=\"`mongodbatlas.ServiceAccountAccessListEntry`\"\u003e`mongodbatlas.ServiceAccountAccessListEntry`\u003c/span\u003e provides an Access List entry resource for Service Accounts. The resource lets you create, delete, and import an Access List entry for the specified Service Account.\n\n\u003e **IMPORTANT:** When you remove an entry from the access list, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider, hence a change will force the destruction and recreation of entries.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisServiceAccount = new mongodbatlas.ServiceAccount(\"this\", {\n    orgId: orgId,\n    name: \"example-service-account\",\n    description: \"Example Service Account\",\n    roles: [\"ORG_READ_ONLY\"],\n    secretExpiresAfterHours: 2160,\n});\n// Add IP Access List Entry to Service Account using CIDR Block\nconst cidr = new mongodbatlas.ServiceAccountAccessListEntry(\"cidr\", {\n    orgId: orgId,\n    clientId: thisServiceAccount.clientId,\n    cidrBlock: \"1.2.3.4/32\",\n});\n// Add IP Access List Entry to Service Account using IP Address\nconst ip = new mongodbatlas.ServiceAccountAccessListEntry(\"ip\", {\n    orgId: orgId,\n    clientId: thisServiceAccount.clientId,\n    ipAddress: \"2.3.4.5\",\n});\n// Data source to read a single Access List entry for the Service Account\nconst _this = mongodbatlas.getServiceAccountAccessListEntryOutput({\n    orgId: cidr.orgId,\n    clientId: cidr.clientId,\n    cidrBlock: cidr.cidrBlock,\n});\nexport const accessListEntryCidrBlock = _this.apply(_this =\u003e _this.cidrBlock);\n// Data source to read all Access List entries for the Service Account\nconst thisGetServiceAccountAccessListEntries = mongodbatlas.getServiceAccountAccessListEntriesOutput({\n    orgId: thisServiceAccount.orgId,\n    clientId: thisServiceAccount.clientId,\n});\nexport const allAccessListEntries = thisGetServiceAccountAccessListEntries.apply(thisGetServiceAccountAccessListEntries =\u003e thisGetServiceAccountAccessListEntries.results);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_service_account = mongodbatlas.ServiceAccount(\"this\",\n    org_id=org_id,\n    name=\"example-service-account\",\n    description=\"Example Service Account\",\n    roles=[\"ORG_READ_ONLY\"],\n    secret_expires_after_hours=2160)\n# Add IP Access List Entry to Service Account using CIDR Block\ncidr = mongodbatlas.ServiceAccountAccessListEntry(\"cidr\",\n    org_id=org_id,\n    client_id=this_service_account.client_id,\n    cidr_block=\"1.2.3.4/32\")\n# Add IP Access List Entry to Service Account using IP Address\nip = mongodbatlas.ServiceAccountAccessListEntry(\"ip\",\n    org_id=org_id,\n    client_id=this_service_account.client_id,\n    ip_address=\"2.3.4.5\")\n# Data source to read a single Access List entry for the Service Account\nthis = mongodbatlas.get_service_account_access_list_entry_output(org_id=cidr.org_id,\n    client_id=cidr.client_id,\n    cidr_block=cidr.cidr_block)\npulumi.export(\"accessListEntryCidrBlock\", this.cidr_block)\n# Data source to read all Access List entries for the Service Account\nthis_get_service_account_access_list_entries = mongodbatlas.get_service_account_access_list_entries_output(org_id=this_service_account.org_id,\n    client_id=this_service_account.client_id)\npulumi.export(\"allAccessListEntries\", this_get_service_account_access_list_entries.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisServiceAccount = new Mongodbatlas.ServiceAccount(\"this\", new()\n    {\n        OrgId = orgId,\n        Name = \"example-service-account\",\n        Description = \"Example Service Account\",\n        Roles = new[]\n        {\n            \"ORG_READ_ONLY\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    // Add IP Access List Entry to Service Account using CIDR Block\n    var cidr = new Mongodbatlas.ServiceAccountAccessListEntry(\"cidr\", new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n        CidrBlock = \"1.2.3.4/32\",\n    });\n\n    // Add IP Access List Entry to Service Account using IP Address\n    var ip = new Mongodbatlas.ServiceAccountAccessListEntry(\"ip\", new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n        IpAddress = \"2.3.4.5\",\n    });\n\n    // Data source to read a single Access List entry for the Service Account\n    var @this = Mongodbatlas.GetServiceAccountAccessListEntry.Invoke(new()\n    {\n        OrgId = cidr.OrgId,\n        ClientId = cidr.ClientId,\n        CidrBlock = cidr.CidrBlock,\n    });\n\n    // Data source to read all Access List entries for the Service Account\n    var thisGetServiceAccountAccessListEntries = Mongodbatlas.GetServiceAccountAccessListEntries.Invoke(new()\n    {\n        OrgId = thisServiceAccount.OrgId,\n        ClientId = thisServiceAccount.ClientId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accessListEntryCidrBlock\"] = @this.Apply(@this =\u003e @this.Apply(getServiceAccountAccessListEntryResult =\u003e getServiceAccountAccessListEntryResult.CidrBlock)),\n        [\"allAccessListEntries\"] = thisGetServiceAccountAccessListEntries.Apply(getServiceAccountAccessListEntriesResult =\u003e getServiceAccountAccessListEntriesResult.Results),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisServiceAccount, err := mongodbatlas.NewServiceAccount(ctx, \"this\", \u0026mongodbatlas.ServiceAccountArgs{\n\t\t\tOrgId:       pulumi.Any(orgId),\n\t\t\tName:        pulumi.String(\"example-service-account\"),\n\t\t\tDescription: pulumi.String(\"Example Service Account\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_READ_ONLY\"),\n\t\t\t},\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Service Account using CIDR Block\n\t\tcidr, err := mongodbatlas.NewServiceAccountAccessListEntry(ctx, \"cidr\", \u0026mongodbatlas.ServiceAccountAccessListEntryArgs{\n\t\t\tOrgId:     pulumi.Any(orgId),\n\t\t\tClientId:  thisServiceAccount.ClientId,\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Service Account using IP Address\n\t\t_, err = mongodbatlas.NewServiceAccountAccessListEntry(ctx, \"ip\", \u0026mongodbatlas.ServiceAccountAccessListEntryArgs{\n\t\t\tOrgId:     pulumi.Any(orgId),\n\t\t\tClientId:  thisServiceAccount.ClientId,\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Data source to read a single Access List entry for the Service Account\n\t\tthis := mongodbatlas.LookupServiceAccountAccessListEntryOutput(ctx, mongodbatlas.GetServiceAccountAccessListEntryOutputArgs{\n\t\t\tOrgId:     cidr.OrgId,\n\t\t\tClientId:  cidr.ClientId,\n\t\t\tCidrBlock: cidr.CidrBlock,\n\t\t}, nil)\n\t\tctx.Export(\"accessListEntryCidrBlock\", this.ApplyT(func(this mongodbatlas.GetServiceAccountAccessListEntryResult) (*string, error) {\n\t\t\treturn \u0026this.CidrBlock, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\t// Data source to read all Access List entries for the Service Account\n\t\tthisGetServiceAccountAccessListEntries := mongodbatlas.LookupServiceAccountAccessListEntriesOutput(ctx, mongodbatlas.GetServiceAccountAccessListEntriesOutputArgs{\n\t\t\tOrgId:    thisServiceAccount.OrgId,\n\t\t\tClientId: thisServiceAccount.ClientId,\n\t\t}, nil)\n\t\tctx.Export(\"allAccessListEntries\", thisGetServiceAccountAccessListEntries.ApplyT(func(thisGetServiceAccountAccessListEntries mongodbatlas.GetServiceAccountAccessListEntriesResult) ([]mongodbatlas.GetServiceAccountAccessListEntriesResult, error) {\n\t\t\treturn []mongodbatlas.GetServiceAccountAccessListEntriesResult(thisGetServiceAccountAccessListEntries.Results), nil\n\t\t}).([]mongodbatlas.GetServiceAccountAccessListEntriesResultOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ServiceAccount;\nimport com.pulumi.mongodbatlas.ServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ServiceAccountAccessListEntry;\nimport com.pulumi.mongodbatlas.ServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountAccessListEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisServiceAccount = new ServiceAccount(\"thisServiceAccount\", ServiceAccountArgs.builder()\n            .orgId(orgId)\n            .name(\"example-service-account\")\n            .description(\"Example Service Account\")\n            .roles(\"ORG_READ_ONLY\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        // Add IP Access List Entry to Service Account using CIDR Block\n        var cidr = new ServiceAccountAccessListEntry(\"cidr\", ServiceAccountAccessListEntryArgs.builder()\n            .orgId(orgId)\n            .clientId(thisServiceAccount.clientId())\n            .cidrBlock(\"1.2.3.4/32\")\n            .build());\n\n        // Add IP Access List Entry to Service Account using IP Address\n        var ip = new ServiceAccountAccessListEntry(\"ip\", ServiceAccountAccessListEntryArgs.builder()\n            .orgId(orgId)\n            .clientId(thisServiceAccount.clientId())\n            .ipAddress(\"2.3.4.5\")\n            .build());\n\n        // Data source to read a single Access List entry for the Service Account\n        final var this = MongodbatlasFunctions.getServiceAccountAccessListEntry(GetServiceAccountAccessListEntryArgs.builder()\n            .orgId(cidr.orgId())\n            .clientId(cidr.clientId())\n            .cidrBlock(cidr.cidrBlock())\n            .build());\n\n        ctx.export(\"accessListEntryCidrBlock\", this_.applyValue(_this_ -\u003e _this_.cidrBlock()));\n        // Data source to read all Access List entries for the Service Account\n        final var thisGetServiceAccountAccessListEntries = MongodbatlasFunctions.getServiceAccountAccessListEntries(GetServiceAccountAccessListEntriesArgs.builder()\n            .orgId(thisServiceAccount.orgId())\n            .clientId(thisServiceAccount.clientId())\n            .build());\n\n        ctx.export(\"allAccessListEntries\", thisGetServiceAccountAccessListEntries.applyValue(_thisGetServiceAccountAccessListEntries -\u003e _thisGetServiceAccountAccessListEntries.results()));\n    }\n}\n```\n```yaml\nresources:\n  thisServiceAccount:\n    type: mongodbatlas:ServiceAccount\n    name: this\n    properties:\n      orgId: ${orgId}\n      name: example-service-account\n      description: Example Service Account\n      roles:\n        - ORG_READ_ONLY\n      secretExpiresAfterHours: 2160 # 90 days\n  # Add IP Access List Entry to Service Account using CIDR Block\n  cidr:\n    type: mongodbatlas:ServiceAccountAccessListEntry\n    properties:\n      orgId: ${orgId}\n      clientId: ${thisServiceAccount.clientId}\n      cidrBlock: 1.2.3.4/32\n  # Add IP Access List Entry to Service Account using IP Address\n  ip:\n    type: mongodbatlas:ServiceAccountAccessListEntry\n    properties:\n      orgId: ${orgId}\n      clientId: ${thisServiceAccount.clientId}\n      ipAddress: 2.3.4.5\nvariables:\n  # Data source to read a single Access List entry for the Service Account\n  this:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountAccessListEntry\n      arguments:\n        orgId: ${cidr.orgId}\n        clientId: ${cidr.clientId}\n        cidrBlock: ${cidr.cidrBlock}\n  # Data source to read all Access List entries for the Service Account\n  thisGetServiceAccountAccessListEntries:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountAccessListEntries\n      arguments:\n        orgId: ${thisServiceAccount.orgId}\n        clientId: ${thisServiceAccount.clientId}\noutputs:\n  accessListEntryCidrBlock: ${this.cidrBlock}\n  allAccessListEntries: ${thisGetServiceAccountAccessListEntries.results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAccess List entries for Service Accounts can be imported using the \u003cspan pulumi-lang-nodejs=\"`orgId`\" pulumi-lang-dotnet=\"`OrgId`\" pulumi-lang-go=\"`orgId`\" pulumi-lang-python=\"`org_id`\" pulumi-lang-yaml=\"`orgId`\" pulumi-lang-java=\"`orgId`\"\u003e`org_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/serviceAccountAccessListEntry:ServiceAccountAccessListEntry test 5d0f1f74cf09a29120e123cd-mdb_sa_id_1234567890abcdef12345678-10.242.88.0/21\n```\n\nFor more information, see [Add Access List Entries for One Organization Service Account](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorgserviceaccountaccesslist) in the MongoDB Atlas API documentation.\n\n","properties":{"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n"},"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"Date the entry was added to the access list. This attribute expresses its value in the ISO 8601 timestamp format in UTC.\n"},"ipAddress":{"type":"string","description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n"},"lastUsedAddress":{"type":"string","description":"Network address that issued the most recent request to the API.\n"},"lastUsedAt":{"type":"string","description":"Date when the API received the most recent request that originated from this network address.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"requestCount":{"type":"integer","description":"The number of requests that has originated from this network address.\n"}},"required":["cidrBlock","clientId","createdAt","ipAddress","lastUsedAddress","lastUsedAt","orgId","requestCount"],"inputProperties":{"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n"},"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"ipAddress":{"type":"string","description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"requiredInputs":["clientId","orgId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceAccountAccessListEntry resources.\n","properties":{"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n"},"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"Date the entry was added to the access list. This attribute expresses its value in the ISO 8601 timestamp format in UTC.\n"},"ipAddress":{"type":"string","description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n"},"lastUsedAddress":{"type":"string","description":"Network address that issued the most recent request to the API.\n"},"lastUsedAt":{"type":"string","description":"Date when the API received the most recent request that originated from this network address.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"requestCount":{"type":"integer","description":"The number of requests that has originated from this network address.\n"}},"type":"object"}},"mongodbatlas:index/serviceAccountProjectAssignment:ServiceAccountProjectAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServiceAccountProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.ServiceAccountProjectAssignment`\" pulumi-lang-go=\"`ServiceAccountProjectAssignment`\" pulumi-lang-python=\"`ServiceAccountProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.ServiceAccountProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.ServiceAccountProjectAssignment`\"\u003e`mongodbatlas.ServiceAccountProjectAssignment`\u003c/span\u003e provides a Service Account Project Assignment resource. The resource lets you assign a Service Account to a Project with specific roles.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisServiceAccount = new mongodbatlas.ServiceAccount(\"this\", {\n    orgId: orgId,\n    name: \"example-service-account\",\n    description: \"Example Service Account\",\n    roles: [\"ORG_MEMBER\"],\n    secretExpiresAfterHours: 2160,\n});\nconst thisServiceAccountProjectAssignment = new mongodbatlas.ServiceAccountProjectAssignment(\"this\", {\n    projectId: projectId,\n    clientId: thisServiceAccount.clientId,\n    roles: [\"GROUP_READ_ONLY\"],\n});\nconst _this = mongodbatlas.getServiceAccountProjectAssignmentOutput({\n    projectId: thisServiceAccountProjectAssignment.projectId,\n    clientId: thisServiceAccountProjectAssignment.clientId,\n});\nconst thisGetServiceAccountProjectAssignments = thisServiceAccount.clientId.apply(clientId =\u003e mongodbatlas.getServiceAccountProjectAssignmentsOutput({\n    orgId: orgId,\n    clientId: clientId,\n}));\nexport const serviceAccountProjectRoles = _this.apply(_this =\u003e _this.roles);\nexport const serviceAccountAssignedProjects = thisGetServiceAccountProjectAssignments.apply(thisGetServiceAccountProjectAssignments =\u003e thisGetServiceAccountProjectAssignments.results);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_service_account = mongodbatlas.ServiceAccount(\"this\",\n    org_id=org_id,\n    name=\"example-service-account\",\n    description=\"Example Service Account\",\n    roles=[\"ORG_MEMBER\"],\n    secret_expires_after_hours=2160)\nthis_service_account_project_assignment = mongodbatlas.ServiceAccountProjectAssignment(\"this\",\n    project_id=project_id,\n    client_id=this_service_account.client_id,\n    roles=[\"GROUP_READ_ONLY\"])\nthis = mongodbatlas.get_service_account_project_assignment_output(project_id=this_service_account_project_assignment.project_id,\n    client_id=this_service_account_project_assignment.client_id)\nthis_get_service_account_project_assignments = this_service_account.client_id.apply(lambda client_id: mongodbatlas.get_service_account_project_assignments_output(org_id=org_id,\n    client_id=client_id))\npulumi.export(\"serviceAccountProjectRoles\", this.roles)\npulumi.export(\"serviceAccountAssignedProjects\", this_get_service_account_project_assignments.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisServiceAccount = new Mongodbatlas.ServiceAccount(\"this\", new()\n    {\n        OrgId = orgId,\n        Name = \"example-service-account\",\n        Description = \"Example Service Account\",\n        Roles = new[]\n        {\n            \"ORG_MEMBER\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var thisServiceAccountProjectAssignment = new Mongodbatlas.ServiceAccountProjectAssignment(\"this\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisServiceAccount.ClientId,\n        Roles = new[]\n        {\n            \"GROUP_READ_ONLY\",\n        },\n    });\n\n    var @this = Mongodbatlas.GetServiceAccountProjectAssignment.Invoke(new()\n    {\n        ProjectId = thisServiceAccountProjectAssignment.ProjectId,\n        ClientId = thisServiceAccountProjectAssignment.ClientId,\n    });\n\n    var thisGetServiceAccountProjectAssignments = Mongodbatlas.GetServiceAccountProjectAssignments.Invoke(new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceAccountProjectRoles\"] = @this.Apply(@this =\u003e @this.Apply(getServiceAccountProjectAssignmentResult =\u003e getServiceAccountProjectAssignmentResult.Roles)),\n        [\"serviceAccountAssignedProjects\"] = thisGetServiceAccountProjectAssignments.Apply(getServiceAccountProjectAssignmentsResult =\u003e getServiceAccountProjectAssignmentsResult.Results),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nthisServiceAccount, err := mongodbatlas.NewServiceAccount(ctx, \"this\", \u0026mongodbatlas.ServiceAccountArgs{\nOrgId: pulumi.Any(orgId),\nName: pulumi.String(\"example-service-account\"),\nDescription: pulumi.String(\"Example Service Account\"),\nRoles: pulumi.StringArray{\npulumi.String(\"ORG_MEMBER\"),\n},\nSecretExpiresAfterHours: pulumi.Int(2160),\n})\nif err != nil {\nreturn err\n}\nthisServiceAccountProjectAssignment, err := mongodbatlas.NewServiceAccountProjectAssignment(ctx, \"this\", \u0026mongodbatlas.ServiceAccountProjectAssignmentArgs{\nProjectId: pulumi.Any(projectId),\nClientId: thisServiceAccount.ClientId,\nRoles: pulumi.StringArray{\npulumi.String(\"GROUP_READ_ONLY\"),\n},\n})\nif err != nil {\nreturn err\n}\nthis := mongodbatlas.LookupServiceAccountProjectAssignmentOutput(ctx, mongodbatlas.GetServiceAccountProjectAssignmentOutputArgs{\nProjectId: thisServiceAccountProjectAssignment.ProjectId,\nClientId: thisServiceAccountProjectAssignment.ClientId,\n}, nil);\nthisGetServiceAccountProjectAssignments := thisServiceAccount.ClientId.ApplyT(func(clientId string) (mongodbatlas.GetServiceAccountProjectAssignmentsResult, error) {\nreturn mongodbatlas.GetServiceAccountProjectAssignmentsResult(interface{}(mongodbatlas.LookupServiceAccountProjectAssignments(ctx, \u0026mongodbatlas.LookupServiceAccountProjectAssignmentsArgs{\nOrgId: orgId,\nClientId: clientId,\n}, nil))), nil\n}).(mongodbatlas.GetServiceAccountProjectAssignmentsResultOutput)\nctx.Export(\"serviceAccountProjectRoles\", this.ApplyT(func(this mongodbatlas.GetServiceAccountProjectAssignmentResult) (interface{}, error) {\nreturn this.Roles, nil\n}).(pulumi.Interface{}Output))\nctx.Export(\"serviceAccountAssignedProjects\", thisGetServiceAccountProjectAssignments.ApplyT(func(thisGetServiceAccountProjectAssignments mongodbatlas.GetServiceAccountProjectAssignmentsResult) ([]mongodbatlas.GetServiceAccountProjectAssignmentsResult, error) {\nreturn []mongodbatlas.GetServiceAccountProjectAssignmentsResult(thisGetServiceAccountProjectAssignments.Results), nil\n}).([]mongodbatlas.GetServiceAccountProjectAssignmentsResultOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ServiceAccount;\nimport com.pulumi.mongodbatlas.ServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ServiceAccountProjectAssignment;\nimport com.pulumi.mongodbatlas.ServiceAccountProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountProjectAssignmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisServiceAccount = new ServiceAccount(\"thisServiceAccount\", ServiceAccountArgs.builder()\n            .orgId(orgId)\n            .name(\"example-service-account\")\n            .description(\"Example Service Account\")\n            .roles(\"ORG_MEMBER\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        var thisServiceAccountProjectAssignment = new ServiceAccountProjectAssignment(\"thisServiceAccountProjectAssignment\", ServiceAccountProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .clientId(thisServiceAccount.clientId())\n            .roles(\"GROUP_READ_ONLY\")\n            .build());\n\n        final var this = MongodbatlasFunctions.getServiceAccountProjectAssignment(GetServiceAccountProjectAssignmentArgs.builder()\n            .projectId(thisServiceAccountProjectAssignment.projectId())\n            .clientId(thisServiceAccountProjectAssignment.clientId())\n            .build());\n\n        final var thisGetServiceAccountProjectAssignments = thisServiceAccount.clientId().applyValue(_clientId -\u003e MongodbatlasFunctions.getServiceAccountProjectAssignments(GetServiceAccountProjectAssignmentsArgs.builder()\n            .orgId(orgId)\n            .clientId(_clientId)\n            .build()));\n\n        ctx.export(\"serviceAccountProjectRoles\", this_.applyValue(_this_ -\u003e _this_.roles()));\n        ctx.export(\"serviceAccountAssignedProjects\", thisGetServiceAccountProjectAssignments.applyValue(_thisGetServiceAccountProjectAssignments -\u003e _thisGetServiceAccountProjectAssignments.results()));\n    }\n}\n```\n```yaml\nresources:\n  thisServiceAccount:\n    type: mongodbatlas:ServiceAccount\n    name: this\n    properties:\n      orgId: ${orgId}\n      name: example-service-account\n      description: Example Service Account\n      roles:\n        - ORG_MEMBER\n      secretExpiresAfterHours: 2160 # 90 days\n  thisServiceAccountProjectAssignment:\n    type: mongodbatlas:ServiceAccountProjectAssignment\n    name: this\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisServiceAccount.clientId}\n      roles:\n        - GROUP_READ_ONLY\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountProjectAssignment\n      arguments:\n        projectId: ${thisServiceAccountProjectAssignment.projectId}\n        clientId: ${thisServiceAccountProjectAssignment.clientId}\n  thisGetServiceAccountProjectAssignments:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountProjectAssignments\n      arguments:\n        orgId: ${orgId}\n        clientId: ${thisServiceAccount.clientId}\noutputs:\n  serviceAccountProjectRoles: ${this.roles}\n  serviceAccountAssignedProjects: ${thisGetServiceAccountProjectAssignments.results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImport the Service Account Project Assignment resource by using the Project ID and Client ID in the format `PROJECT_ID/CLIENT_ID`, e.g.\n```sh\n$ pulumi import mongodbatlas:index/serviceAccountProjectAssignment:ServiceAccountProjectAssignment test 6117ac2fe2a3d04ed27a987v/mdb_sa_id_1234567890abcdef12345678\n```\n\nFor more information, see [Assign One Service Account to One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-invitegroupserviceaccount) in the MongoDB Atlas API documentation.\n\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"The Project permissions for the Service Account in the specified Project.\n"}},"required":["clientId","projectId","roles"],"inputProperties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"The Project permissions for the Service Account in the specified Project.\n"}},"requiredInputs":["clientId","projectId","roles"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceAccountProjectAssignment resources.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"roles":{"type":"array","items":{"type":"string"},"description":"The Project permissions for the Service Account in the specified Project.\n"}},"type":"object"}},"mongodbatlas:index/serviceAccountSecret:ServiceAccountSecret":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServiceAccountSecret`\" pulumi-lang-dotnet=\"`mongodbatlas.ServiceAccountSecret`\" pulumi-lang-go=\"`ServiceAccountSecret`\" pulumi-lang-python=\"`ServiceAccountSecret`\" pulumi-lang-yaml=\"`mongodbatlas.ServiceAccountSecret`\" pulumi-lang-java=\"`mongodbatlas.ServiceAccountSecret`\"\u003e`mongodbatlas.ServiceAccountSecret`\u003c/span\u003e provides a Service Account Secret resource. The resource lets you create and delete secrets for a Service Account.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n\u003e **NOTE:** This resource does not support updates. To rotate secrets, see Guide: Service Account Secret Rotation.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisServiceAccount = new mongodbatlas.ServiceAccount(\"this\", {\n    orgId: orgId,\n    name: \"example-service-account\",\n    description: \"Example Service Account\",\n    roles: [\"ORG_READ_ONLY\"],\n    secretExpiresAfterHours: 2160,\n});\nconst thisServiceAccountSecret = new mongodbatlas.ServiceAccountSecret(\"this\", {\n    orgId: orgId,\n    clientId: thisServiceAccount.clientId,\n    secretExpiresAfterHours: 2160,\n});\nconst _this = pulumi.all([thisServiceAccount.clientId, thisServiceAccountSecret.secretId]).apply(([clientId, secretId]) =\u003e mongodbatlas.getServiceAccountSecretOutput({\n    orgId: orgId,\n    clientId: clientId,\n    secretId: secretId,\n}));\nexport const secretId = thisServiceAccountSecret.secretId;\nexport const secret = thisServiceAccountSecret.secret;\nexport const secretExpiresAt = _this.apply(_this =\u003e _this.expiresAt);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_service_account = mongodbatlas.ServiceAccount(\"this\",\n    org_id=org_id,\n    name=\"example-service-account\",\n    description=\"Example Service Account\",\n    roles=[\"ORG_READ_ONLY\"],\n    secret_expires_after_hours=2160)\nthis_service_account_secret = mongodbatlas.ServiceAccountSecret(\"this\",\n    org_id=org_id,\n    client_id=this_service_account.client_id,\n    secret_expires_after_hours=2160)\nthis = pulumi.Output.all(\n    client_id=this_service_account.client_id,\n    secret_id=this_service_account_secret.secret_id\n).apply(lambda resolved_outputs: mongodbatlas.get_service_account_secret_output(org_id=org_id,\n    client_id=resolved_outputs['client_id'],\n    secret_id=resolved_outputs['secret_id']))\n\npulumi.export(\"secretId\", this_service_account_secret.secret_id)\npulumi.export(\"secret\", this_service_account_secret.secret)\npulumi.export(\"secretExpiresAt\", this.expires_at)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisServiceAccount = new Mongodbatlas.ServiceAccount(\"this\", new()\n    {\n        OrgId = orgId,\n        Name = \"example-service-account\",\n        Description = \"Example Service Account\",\n        Roles = new[]\n        {\n            \"ORG_READ_ONLY\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var thisServiceAccountSecret = new Mongodbatlas.ServiceAccountSecret(\"this\", new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var @this = Mongodbatlas.GetServiceAccountSecret.Invoke(new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n        SecretId = thisServiceAccountSecret.SecretId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"secretId\"] = thisServiceAccountSecret.SecretId,\n        [\"secret\"] = thisServiceAccountSecret.Secret,\n        [\"secretExpiresAt\"] = @this.Apply(@this =\u003e @this.Apply(getServiceAccountSecretResult =\u003e getServiceAccountSecretResult.ExpiresAt)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisServiceAccount, err := mongodbatlas.NewServiceAccount(ctx, \"this\", \u0026mongodbatlas.ServiceAccountArgs{\n\t\t\tOrgId:       pulumi.Any(orgId),\n\t\t\tName:        pulumi.String(\"example-service-account\"),\n\t\t\tDescription: pulumi.String(\"Example Service Account\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_READ_ONLY\"),\n\t\t\t},\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisServiceAccountSecret, err := mongodbatlas.NewServiceAccountSecret(ctx, \"this\", \u0026mongodbatlas.ServiceAccountSecretArgs{\n\t\t\tOrgId:                   pulumi.Any(orgId),\n\t\t\tClientId:                thisServiceAccount.ClientId,\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthis := pulumi.All(thisServiceAccount.ClientId, thisServiceAccountSecret.SecretId).ApplyT(func(_args []interface{}) (mongodbatlas.GetServiceAccountSecretResult, error) {\n\t\t\tclientId := _args[0].(string)\n\t\t\tsecretId := _args[1].(string)\n\t\t\treturn mongodbatlas.GetServiceAccountSecretResult(interface{}(mongodbatlas.LookupServiceAccountSecret(ctx, \u0026mongodbatlas.LookupServiceAccountSecretArgs{\n\t\t\t\tOrgId:    orgId,\n\t\t\t\tClientId: clientId,\n\t\t\t\tSecretId: secretId,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetServiceAccountSecretResultOutput)\n\t\tctx.Export(\"secretId\", thisServiceAccountSecret.SecretId)\n\t\tctx.Export(\"secret\", thisServiceAccountSecret.Secret)\n\t\tctx.Export(\"secretExpiresAt\", this.ApplyT(func(this mongodbatlas.GetServiceAccountSecretResult) (*string, error) {\n\t\t\treturn \u0026this.ExpiresAt, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ServiceAccount;\nimport com.pulumi.mongodbatlas.ServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ServiceAccountSecret;\nimport com.pulumi.mongodbatlas.ServiceAccountSecretArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisServiceAccount = new ServiceAccount(\"thisServiceAccount\", ServiceAccountArgs.builder()\n            .orgId(orgId)\n            .name(\"example-service-account\")\n            .description(\"Example Service Account\")\n            .roles(\"ORG_READ_ONLY\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        var thisServiceAccountSecret = new ServiceAccountSecret(\"thisServiceAccountSecret\", ServiceAccountSecretArgs.builder()\n            .orgId(orgId)\n            .clientId(thisServiceAccount.clientId())\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        final var this = Output.tuple(thisServiceAccount.clientId(), thisServiceAccountSecret.secretId()).applyValue(values -\u003e {\n            var clientId = values.t1;\n            var secretId = values.t2;\n            return MongodbatlasFunctions.getServiceAccountSecret(GetServiceAccountSecretArgs.builder()\n                .orgId(orgId)\n                .clientId(clientId)\n                .secretId(secretId)\n                .build());\n        });\n\n        ctx.export(\"secretId\", thisServiceAccountSecret.secretId());\n        ctx.export(\"secret\", thisServiceAccountSecret.secret());\n        ctx.export(\"secretExpiresAt\", this_.applyValue(_this_ -\u003e _this_.expiresAt()));\n    }\n}\n```\n```yaml\nresources:\n  thisServiceAccount:\n    type: mongodbatlas:ServiceAccount\n    name: this\n    properties:\n      orgId: ${orgId}\n      name: example-service-account\n      description: Example Service Account\n      roles:\n        - ORG_READ_ONLY\n      secretExpiresAfterHours: 2160 # 90 days\n  thisServiceAccountSecret:\n    type: mongodbatlas:ServiceAccountSecret\n    name: this\n    properties:\n      orgId: ${orgId}\n      clientId: ${thisServiceAccount.clientId}\n      secretExpiresAfterHours: 2160 # 90 days\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountSecret\n      arguments:\n        orgId: ${orgId}\n        clientId: ${thisServiceAccount.clientId}\n        secretId: ${thisServiceAccountSecret.secretId}\noutputs:\n  secretId: ${thisServiceAccountSecret.secretId}\n  secret: ${thisServiceAccountSecret.secret}\n  secretExpiresAt: ${this.expiresAt}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImport the Service Account Secret resource by using the Organization ID, Client ID, and Secret ID in the format `ORG_ID/CLIENT_ID/SECRET_ID`, e.g.\n```sh\n$ pulumi import mongodbatlas:index/serviceAccountSecret:ServiceAccountSecret test 6117ac2fe2a3d04ed27a987v/mdb_sa_id_1234567890abcdef12345678/04ed271234abcde2a3da123a\n```\n\nFor more information, see [Create One Organization Service Account Secret](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createorgserviceaccountsecret) in the MongoDB Atlas API documentation.\n\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"lastUsedAt":{"type":"string","description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"maskedSecretValue":{"type":"string","description":"The masked Service Account secret.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"secret":{"type":"string","description":"The secret for the Service Account. It will be returned only the first time after creation.\n","secret":true},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account Secret and you cannot update it later.\n"},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"required":["clientId","createdAt","expiresAt","lastUsedAt","maskedSecretValue","orgId","secret","secretId"],"inputProperties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account Secret and you cannot update it later.\n"}},"requiredInputs":["clientId","orgId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceAccountSecret resources.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"createdAt":{"type":"string","description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"expiresAt":{"type":"string","description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"lastUsedAt":{"type":"string","description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n"},"maskedSecretValue":{"type":"string","description":"The masked Service Account secret.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"secret":{"type":"string","description":"The secret for the Service Account. It will be returned only the first time after creation.\n","secret":true},"secretExpiresAfterHours":{"type":"integer","description":"The expiration time of the new Service Account secret, provided in hours. The minimum and maximum allowed expiration times are subject to change and are controlled by the organization's settings. This attribute is required when creating the Service Account Secret and you cannot update it later.\n"},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object"}},"mongodbatlas:index/streamConnection:StreamConnection":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamConnection`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamConnection`\" pulumi-lang-go=\"`StreamConnection`\" pulumi-lang-python=\"`StreamConnection`\" pulumi-lang-yaml=\"`mongodbatlas.StreamConnection`\" pulumi-lang-java=\"`mongodbatlas.StreamConnection`\"\u003e`mongodbatlas.StreamConnection`\u003c/span\u003e provides a Stream Connection resource. The resource lets you create, edit, and delete stream instance connections.\n\n\u003e **IMPORTANT:** All arguments including the Kafka authentication password will be stored in the raw state as plaintext. Read more about sensitive data in state.\n\n\n## Example Usage\n\n### Example Cluster Connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.StreamConnection(\"test\", {\n    projectId: projectId,\n    workspaceName: \"WorkspaceName\",\n    connectionName: \"ConnectionName\",\n    type: \"Cluster\",\n    clusterName: \"Cluster0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.StreamConnection(\"test\",\n    project_id=project_id,\n    workspace_name=\"WorkspaceName\",\n    connection_name=\"ConnectionName\",\n    type=\"Cluster\",\n    cluster_name=\"Cluster0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.StreamConnection(\"test\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = \"WorkspaceName\",\n        ConnectionName = \"ConnectionName\",\n        Type = \"Cluster\",\n        ClusterName = \"Cluster0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamConnection(ctx, \"test\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  pulumi.String(\"WorkspaceName\"),\n\t\t\tConnectionName: pulumi.String(\"ConnectionName\"),\n\t\t\tType:           pulumi.String(\"Cluster\"),\n\t\t\tClusterName:    pulumi.String(\"Cluster0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new StreamConnection(\"test\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(\"WorkspaceName\")\n            .connectionName(\"ConnectionName\")\n            .type(\"Cluster\")\n            .clusterName(\"Cluster0\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: WorkspaceName\n      connectionName: ConnectionName\n      type: Cluster\n      clusterName: Cluster0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Atlas Stream Connection\n\n### Example Cross Project Cluster Connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.StreamConnection(\"test\", {\n    projectId: projectId,\n    workspaceName: \"WorskpaceName\",\n    connectionName: \"ConnectionName\",\n    type: \"Cluster\",\n    clusterName: \"OtherCluster\",\n    clusterProjectId: otherProjectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.StreamConnection(\"test\",\n    project_id=project_id,\n    workspace_name=\"WorskpaceName\",\n    connection_name=\"ConnectionName\",\n    type=\"Cluster\",\n    cluster_name=\"OtherCluster\",\n    cluster_project_id=other_project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.StreamConnection(\"test\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = \"WorskpaceName\",\n        ConnectionName = \"ConnectionName\",\n        Type = \"Cluster\",\n        ClusterName = \"OtherCluster\",\n        ClusterProjectId = otherProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamConnection(ctx, \"test\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:        pulumi.Any(projectId),\n\t\t\tWorkspaceName:    pulumi.String(\"WorskpaceName\"),\n\t\t\tConnectionName:   pulumi.String(\"ConnectionName\"),\n\t\t\tType:             pulumi.String(\"Cluster\"),\n\t\t\tClusterName:      pulumi.String(\"OtherCluster\"),\n\t\t\tClusterProjectId: pulumi.Any(otherProjectId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new StreamConnection(\"test\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(\"WorskpaceName\")\n            .connectionName(\"ConnectionName\")\n            .type(\"Cluster\")\n            .clusterName(\"OtherCluster\")\n            .clusterProjectId(otherProjectId)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: WorskpaceName\n      connectionName: ConnectionName\n      type: Cluster\n      clusterName: OtherCluster\n      clusterProjectId: ${otherProjectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Kafka SASL Plaintext Connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.StreamConnection(\"test\", {\n    projectId: projectId,\n    workspaceName: \"NewWorkspace\",\n    connectionName: \"KafkaConnection\",\n    type: \"Kafka\",\n    authentication: {\n        mechanism: \"SCRAM-256\",\n        username: \"user\",\n        password: \"somepassword\",\n    },\n    security: {\n        protocol: \"SASL_PLAINTEXT\",\n    },\n    config: {\n        \"auto.offset.reset\": \"latest\",\n    },\n    bootstrapServers: \"localhost:9091,localhost:9092\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.StreamConnection(\"test\",\n    project_id=project_id,\n    workspace_name=\"NewWorkspace\",\n    connection_name=\"KafkaConnection\",\n    type=\"Kafka\",\n    authentication={\n        \"mechanism\": \"SCRAM-256\",\n        \"username\": \"user\",\n        \"password\": \"somepassword\",\n    },\n    security={\n        \"protocol\": \"SASL_PLAINTEXT\",\n    },\n    config={\n        \"auto.offset.reset\": \"latest\",\n    },\n    bootstrap_servers=\"localhost:9091,localhost:9092\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.StreamConnection(\"test\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = \"NewWorkspace\",\n        ConnectionName = \"KafkaConnection\",\n        Type = \"Kafka\",\n        Authentication = new Mongodbatlas.Inputs.StreamConnectionAuthenticationArgs\n        {\n            Mechanism = \"SCRAM-256\",\n            Username = \"user\",\n            Password = \"somepassword\",\n        },\n        Security = new Mongodbatlas.Inputs.StreamConnectionSecurityArgs\n        {\n            Protocol = \"SASL_PLAINTEXT\",\n        },\n        Config = \n        {\n            { \"auto.offset.reset\", \"latest\" },\n        },\n        BootstrapServers = \"localhost:9091,localhost:9092\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamConnection(ctx, \"test\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  pulumi.String(\"NewWorkspace\"),\n\t\t\tConnectionName: pulumi.String(\"KafkaConnection\"),\n\t\t\tType:           pulumi.String(\"Kafka\"),\n\t\t\tAuthentication: \u0026mongodbatlas.StreamConnectionAuthenticationArgs{\n\t\t\t\tMechanism: pulumi.String(\"SCRAM-256\"),\n\t\t\t\tUsername:  pulumi.String(\"user\"),\n\t\t\t\tPassword:  pulumi.String(\"somepassword\"),\n\t\t\t},\n\t\t\tSecurity: \u0026mongodbatlas.StreamConnectionSecurityArgs{\n\t\t\t\tProtocol: pulumi.String(\"SASL_PLAINTEXT\"),\n\t\t\t},\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"auto.offset.reset\": pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tBootstrapServers: pulumi.String(\"localhost:9091,localhost:9092\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new StreamConnection(\"test\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(\"NewWorkspace\")\n            .connectionName(\"KafkaConnection\")\n            .type(\"Kafka\")\n            .authentication(StreamConnectionAuthenticationArgs.builder()\n                .mechanism(\"SCRAM-256\")\n                .username(\"user\")\n                .password(\"somepassword\")\n                .build())\n            .security(StreamConnectionSecurityArgs.builder()\n                .protocol(\"SASL_PLAINTEXT\")\n                .build())\n            .config(Map.of(\"auto.offset.reset\", \"latest\"))\n            .bootstrapServers(\"localhost:9091,localhost:9092\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: NewWorkspace\n      connectionName: KafkaConnection\n      type: Kafka\n      authentication:\n        mechanism: SCRAM-256\n        username: user\n        password: somepassword\n      security:\n        protocol: SASL_PLAINTEXT\n      config:\n        auto.offset.reset: latest\n      bootstrapServers: localhost:9091,localhost:9092\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Kafka SASL OAuthbearer Connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example_kafka_oauthbearer = new mongodbatlas.StreamConnection(\"example-kafka-oauthbearer\", {\n    projectId: projectId,\n    workspaceName: example.workspaceName,\n    connectionName: \"KafkaOAuthbearerConnection\",\n    type: \"Kafka\",\n    authentication: {\n        mechanism: \"OAUTHBEARER\",\n        method: \"OIDC\",\n        tokenEndpointUrl: \"https://example.com/oauth/token\",\n        clientId: \"auth0Client\",\n        clientSecret: kafkaClientSecret,\n        scope: \"read:messages write:messages\",\n        saslOauthbearerExtensions: \"logicalCluster=lkc-kmom,identityPoolId=pool-lAr\",\n    },\n    bootstrapServers: \"localhost:9092,localhost:9092\",\n    config: {\n        \"auto.offset.reset\": \"earliest\",\n    },\n    security: {\n        protocol: \"SASL_PLAINTEXT\",\n    },\n    networking: {\n        access: {\n            type: \"PUBLIC\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample_kafka_oauthbearer = mongodbatlas.StreamConnection(\"example-kafka-oauthbearer\",\n    project_id=project_id,\n    workspace_name=example[\"workspaceName\"],\n    connection_name=\"KafkaOAuthbearerConnection\",\n    type=\"Kafka\",\n    authentication={\n        \"mechanism\": \"OAUTHBEARER\",\n        \"method\": \"OIDC\",\n        \"token_endpoint_url\": \"https://example.com/oauth/token\",\n        \"client_id\": \"auth0Client\",\n        \"client_secret\": kafka_client_secret,\n        \"scope\": \"read:messages write:messages\",\n        \"sasl_oauthbearer_extensions\": \"logicalCluster=lkc-kmom,identityPoolId=pool-lAr\",\n    },\n    bootstrap_servers=\"localhost:9092,localhost:9092\",\n    config={\n        \"auto.offset.reset\": \"earliest\",\n    },\n    security={\n        \"protocol\": \"SASL_PLAINTEXT\",\n    },\n    networking={\n        \"access\": {\n            \"type\": \"PUBLIC\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_kafka_oauthbearer = new Mongodbatlas.StreamConnection(\"example-kafka-oauthbearer\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.WorkspaceName,\n        ConnectionName = \"KafkaOAuthbearerConnection\",\n        Type = \"Kafka\",\n        Authentication = new Mongodbatlas.Inputs.StreamConnectionAuthenticationArgs\n        {\n            Mechanism = \"OAUTHBEARER\",\n            Method = \"OIDC\",\n            TokenEndpointUrl = \"https://example.com/oauth/token\",\n            ClientId = \"auth0Client\",\n            ClientSecret = kafkaClientSecret,\n            Scope = \"read:messages write:messages\",\n            SaslOauthbearerExtensions = \"logicalCluster=lkc-kmom,identityPoolId=pool-lAr\",\n        },\n        BootstrapServers = \"localhost:9092,localhost:9092\",\n        Config = \n        {\n            { \"auto.offset.reset\", \"earliest\" },\n        },\n        Security = new Mongodbatlas.Inputs.StreamConnectionSecurityArgs\n        {\n            Protocol = \"SASL_PLAINTEXT\",\n        },\n        Networking = new Mongodbatlas.Inputs.StreamConnectionNetworkingArgs\n        {\n            Access = new Mongodbatlas.Inputs.StreamConnectionNetworkingAccessArgs\n            {\n                Type = \"PUBLIC\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamConnection(ctx, \"example-kafka-oauthbearer\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  pulumi.Any(example.WorkspaceName),\n\t\t\tConnectionName: pulumi.String(\"KafkaOAuthbearerConnection\"),\n\t\t\tType:           pulumi.String(\"Kafka\"),\n\t\t\tAuthentication: \u0026mongodbatlas.StreamConnectionAuthenticationArgs{\n\t\t\t\tMechanism:                 pulumi.String(\"OAUTHBEARER\"),\n\t\t\t\tMethod:                    pulumi.String(\"OIDC\"),\n\t\t\t\tTokenEndpointUrl:          pulumi.String(\"https://example.com/oauth/token\"),\n\t\t\t\tClientId:                  pulumi.String(\"auth0Client\"),\n\t\t\t\tClientSecret:              pulumi.Any(kafkaClientSecret),\n\t\t\t\tScope:                     pulumi.String(\"read:messages write:messages\"),\n\t\t\t\tSaslOauthbearerExtensions: pulumi.String(\"logicalCluster=lkc-kmom,identityPoolId=pool-lAr\"),\n\t\t\t},\n\t\t\tBootstrapServers: pulumi.String(\"localhost:9092,localhost:9092\"),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"auto.offset.reset\": pulumi.String(\"earliest\"),\n\t\t\t},\n\t\t\tSecurity: \u0026mongodbatlas.StreamConnectionSecurityArgs{\n\t\t\t\tProtocol: pulumi.String(\"SASL_PLAINTEXT\"),\n\t\t\t},\n\t\t\tNetworking: \u0026mongodbatlas.StreamConnectionNetworkingArgs{\n\t\t\t\tAccess: \u0026mongodbatlas.StreamConnectionNetworkingAccessArgs{\n\t\t\t\t\tType: pulumi.String(\"PUBLIC\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionNetworkingArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionNetworkingAccessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_kafka_oauthbearer = new StreamConnection(\"example-kafka-oauthbearer\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.workspaceName())\n            .connectionName(\"KafkaOAuthbearerConnection\")\n            .type(\"Kafka\")\n            .authentication(StreamConnectionAuthenticationArgs.builder()\n                .mechanism(\"OAUTHBEARER\")\n                .method(\"OIDC\")\n                .tokenEndpointUrl(\"https://example.com/oauth/token\")\n                .clientId(\"auth0Client\")\n                .clientSecret(kafkaClientSecret)\n                .scope(\"read:messages write:messages\")\n                .saslOauthbearerExtensions(\"logicalCluster=lkc-kmom,identityPoolId=pool-lAr\")\n                .build())\n            .bootstrapServers(\"localhost:9092,localhost:9092\")\n            .config(Map.of(\"auto.offset.reset\", \"earliest\"))\n            .security(StreamConnectionSecurityArgs.builder()\n                .protocol(\"SASL_PLAINTEXT\")\n                .build())\n            .networking(StreamConnectionNetworkingArgs.builder()\n                .access(StreamConnectionNetworkingAccessArgs.builder()\n                    .type(\"PUBLIC\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-kafka-oauthbearer:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.workspaceName}\n      connectionName: KafkaOAuthbearerConnection\n      type: Kafka\n      authentication:\n        mechanism: OAUTHBEARER\n        method: OIDC\n        tokenEndpointUrl: https://example.com/oauth/token\n        clientId: auth0Client\n        clientSecret: ${kafkaClientSecret}\n        scope: read:messages write:messages\n        saslOauthbearerExtensions: logicalCluster=lkc-kmom,identityPoolId=pool-lAr\n      bootstrapServers: localhost:9092,localhost:9092\n      config:\n        auto.offset.reset: earliest\n      security:\n        protocol: SASL_PLAINTEXT\n      networking:\n        access:\n          type: PUBLIC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Kafka SASL SSL Connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.StreamConnection(\"test\", {\n    projectId: projectId,\n    workspaceName: \"NewWorkspace\",\n    connectionName: \"KafkaConnection\",\n    type: \"Kafka\",\n    authentication: {\n        mechanism: \"PLAIN\",\n        username: \"user\",\n        password: \"somepassword\",\n    },\n    security: {\n        protocol: \"SASL_SSL\",\n        brokerPublicCertificate: \"-----BEGIN CERTIFICATE-----\u003cCONTENT\u003e-----END CERTIFICATE-----\",\n    },\n    config: {\n        \"auto.offset.reset\": \"latest\",\n    },\n    bootstrapServers: \"localhost:9091,localhost:9092\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.StreamConnection(\"test\",\n    project_id=project_id,\n    workspace_name=\"NewWorkspace\",\n    connection_name=\"KafkaConnection\",\n    type=\"Kafka\",\n    authentication={\n        \"mechanism\": \"PLAIN\",\n        \"username\": \"user\",\n        \"password\": \"somepassword\",\n    },\n    security={\n        \"protocol\": \"SASL_SSL\",\n        \"broker_public_certificate\": \"-----BEGIN CERTIFICATE-----\u003cCONTENT\u003e-----END CERTIFICATE-----\",\n    },\n    config={\n        \"auto.offset.reset\": \"latest\",\n    },\n    bootstrap_servers=\"localhost:9091,localhost:9092\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.StreamConnection(\"test\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = \"NewWorkspace\",\n        ConnectionName = \"KafkaConnection\",\n        Type = \"Kafka\",\n        Authentication = new Mongodbatlas.Inputs.StreamConnectionAuthenticationArgs\n        {\n            Mechanism = \"PLAIN\",\n            Username = \"user\",\n            Password = \"somepassword\",\n        },\n        Security = new Mongodbatlas.Inputs.StreamConnectionSecurityArgs\n        {\n            Protocol = \"SASL_SSL\",\n            BrokerPublicCertificate = \"-----BEGIN CERTIFICATE-----\u003cCONTENT\u003e-----END CERTIFICATE-----\",\n        },\n        Config = \n        {\n            { \"auto.offset.reset\", \"latest\" },\n        },\n        BootstrapServers = \"localhost:9091,localhost:9092\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamConnection(ctx, \"test\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  pulumi.String(\"NewWorkspace\"),\n\t\t\tConnectionName: pulumi.String(\"KafkaConnection\"),\n\t\t\tType:           pulumi.String(\"Kafka\"),\n\t\t\tAuthentication: \u0026mongodbatlas.StreamConnectionAuthenticationArgs{\n\t\t\t\tMechanism: pulumi.String(\"PLAIN\"),\n\t\t\t\tUsername:  pulumi.String(\"user\"),\n\t\t\t\tPassword:  pulumi.String(\"somepassword\"),\n\t\t\t},\n\t\t\tSecurity: \u0026mongodbatlas.StreamConnectionSecurityArgs{\n\t\t\t\tProtocol:                pulumi.String(\"SASL_SSL\"),\n\t\t\t\tBrokerPublicCertificate: pulumi.String(\"-----BEGIN CERTIFICATE-----\u003cCONTENT\u003e-----END CERTIFICATE-----\"),\n\t\t\t},\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"auto.offset.reset\": pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tBootstrapServers: pulumi.String(\"localhost:9091,localhost:9092\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new StreamConnection(\"test\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(\"NewWorkspace\")\n            .connectionName(\"KafkaConnection\")\n            .type(\"Kafka\")\n            .authentication(StreamConnectionAuthenticationArgs.builder()\n                .mechanism(\"PLAIN\")\n                .username(\"user\")\n                .password(\"somepassword\")\n                .build())\n            .security(StreamConnectionSecurityArgs.builder()\n                .protocol(\"SASL_SSL\")\n                .brokerPublicCertificate(\"-----BEGIN CERTIFICATE-----\u003cCONTENT\u003e-----END CERTIFICATE-----\")\n                .build())\n            .config(Map.of(\"auto.offset.reset\", \"latest\"))\n            .bootstrapServers(\"localhost:9091,localhost:9092\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: NewWorkspace\n      connectionName: KafkaConnection\n      type: Kafka\n      authentication:\n        mechanism: PLAIN\n        username: user\n        password: somepassword\n      security:\n        protocol: SASL_SSL\n        brokerPublicCertificate: '-----BEGIN CERTIFICATE-----\u003cCONTENT\u003e-----END CERTIFICATE-----'\n      config:\n        auto.offset.reset: latest\n      bootstrapServers: localhost:9091,localhost:9092\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example AWSLambda Connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.StreamConnection(\"test\", {\n    projectId: projectId,\n    workspaceName: \"NewWorkspace\",\n    connectionName: \"AWSLambdaConnection\",\n    type: \"AWSLambda\",\n    aws: {\n        roleArn: \"arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/lambdaRole\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.StreamConnection(\"test\",\n    project_id=project_id,\n    workspace_name=\"NewWorkspace\",\n    connection_name=\"AWSLambdaConnection\",\n    type=\"AWSLambda\",\n    aws={\n        \"role_arn\": \"arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/lambdaRole\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.StreamConnection(\"test\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = \"NewWorkspace\",\n        ConnectionName = \"AWSLambdaConnection\",\n        Type = \"AWSLambda\",\n        Aws = new Mongodbatlas.Inputs.StreamConnectionAwsArgs\n        {\n            RoleArn = \"arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/lambdaRole\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamConnection(ctx, \"test\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  pulumi.String(\"NewWorkspace\"),\n\t\t\tConnectionName: pulumi.String(\"AWSLambdaConnection\"),\n\t\t\tType:           pulumi.String(\"AWSLambda\"),\n\t\t\tAws: \u0026mongodbatlas.StreamConnectionAwsArgs{\n\t\t\t\tRoleArn: pulumi.String(\"arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/lambdaRole\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionAwsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new StreamConnection(\"test\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(\"NewWorkspace\")\n            .connectionName(\"AWSLambdaConnection\")\n            .type(\"AWSLambda\")\n            .aws(StreamConnectionAwsArgs.builder()\n                .roleArn(\"arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/lambdaRole\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: NewWorkspace\n      connectionName: AWSLambdaConnection\n      type: AWSLambda\n      aws:\n        roleArn: arn:aws:iam::\u003cAWS_ACCOUNT_ID\u003e:role/lambdaRole\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Https Connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example_https = new mongodbatlas.StreamConnection(\"example-https\", {\n    projectId: projectId,\n    workspaceName: example.workspaceName,\n    connectionName: \"https_connection_tf_new\",\n    type: \"Https\",\n    url: \"https://example.com\",\n    headers: {\n        key1: \"value1\",\n        key2: \"value2\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample_https = mongodbatlas.StreamConnection(\"example-https\",\n    project_id=project_id,\n    workspace_name=example[\"workspaceName\"],\n    connection_name=\"https_connection_tf_new\",\n    type=\"Https\",\n    url=\"https://example.com\",\n    headers={\n        \"key1\": \"value1\",\n        \"key2\": \"value2\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_https = new Mongodbatlas.StreamConnection(\"example-https\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.WorkspaceName,\n        ConnectionName = \"https_connection_tf_new\",\n        Type = \"Https\",\n        Url = \"https://example.com\",\n        Headers = \n        {\n            { \"key1\", \"value1\" },\n            { \"key2\", \"value2\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamConnection(ctx, \"example-https\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  pulumi.Any(example.WorkspaceName),\n\t\t\tConnectionName: pulumi.String(\"https_connection_tf_new\"),\n\t\t\tType:           pulumi.String(\"Https\"),\n\t\t\tUrl:            pulumi.String(\"https://example.com\"),\n\t\t\tHeaders: pulumi.StringMap{\n\t\t\t\t\"key1\": pulumi.String(\"value1\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_https = new StreamConnection(\"example-https\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.workspaceName())\n            .connectionName(\"https_connection_tf_new\")\n            .type(\"Https\")\n            .url(\"https://example.com\")\n            .headers(Map.ofEntries(\n                Map.entry(\"key1\", \"value1\"),\n                Map.entry(\"key2\", \"value2\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-https:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.workspaceName}\n      connectionName: https_connection_tf_new\n      type: Https\n      url: https://example.com\n      headers:\n        key1: value1\n        key2: value2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Schema Registry Connection with USER_INFO Authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example_schema_registry = new mongodbatlas.StreamConnection(\"example-schema-registry\", {\n    projectId: projectId,\n    workspaceName: example.workspaceName,\n    connectionName: \"SchemaRegistryConnection\",\n    type: \"SchemaRegistry\",\n    schemaRegistryProvider: \"CONFLUENT\",\n    schemaRegistryUrls: [\"https://schema-registry.example.com:8081\"],\n    schemaRegistryAuthentication: {\n        type: \"USER_INFO\",\n        username: \"registry-user\",\n        password: schemaRegistryPassword,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample_schema_registry = mongodbatlas.StreamConnection(\"example-schema-registry\",\n    project_id=project_id,\n    workspace_name=example[\"workspaceName\"],\n    connection_name=\"SchemaRegistryConnection\",\n    type=\"SchemaRegistry\",\n    schema_registry_provider=\"CONFLUENT\",\n    schema_registry_urls=[\"https://schema-registry.example.com:8081\"],\n    schema_registry_authentication={\n        \"type\": \"USER_INFO\",\n        \"username\": \"registry-user\",\n        \"password\": schema_registry_password,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_schema_registry = new Mongodbatlas.StreamConnection(\"example-schema-registry\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.WorkspaceName,\n        ConnectionName = \"SchemaRegistryConnection\",\n        Type = \"SchemaRegistry\",\n        SchemaRegistryProvider = \"CONFLUENT\",\n        SchemaRegistryUrls = new[]\n        {\n            \"https://schema-registry.example.com:8081\",\n        },\n        SchemaRegistryAuthentication = new Mongodbatlas.Inputs.StreamConnectionSchemaRegistryAuthenticationArgs\n        {\n            Type = \"USER_INFO\",\n            Username = \"registry-user\",\n            Password = schemaRegistryPassword,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamConnection(ctx, \"example-schema-registry\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:              pulumi.Any(projectId),\n\t\t\tWorkspaceName:          pulumi.Any(example.WorkspaceName),\n\t\t\tConnectionName:         pulumi.String(\"SchemaRegistryConnection\"),\n\t\t\tType:                   pulumi.String(\"SchemaRegistry\"),\n\t\t\tSchemaRegistryProvider: pulumi.String(\"CONFLUENT\"),\n\t\t\tSchemaRegistryUrls: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://schema-registry.example.com:8081\"),\n\t\t\t},\n\t\t\tSchemaRegistryAuthentication: \u0026mongodbatlas.StreamConnectionSchemaRegistryAuthenticationArgs{\n\t\t\t\tType:     pulumi.String(\"USER_INFO\"),\n\t\t\t\tUsername: pulumi.String(\"registry-user\"),\n\t\t\t\tPassword: pulumi.Any(schemaRegistryPassword),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionSchemaRegistryAuthenticationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_schema_registry = new StreamConnection(\"example-schema-registry\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.workspaceName())\n            .connectionName(\"SchemaRegistryConnection\")\n            .type(\"SchemaRegistry\")\n            .schemaRegistryProvider(\"CONFLUENT\")\n            .schemaRegistryUrls(\"https://schema-registry.example.com:8081\")\n            .schemaRegistryAuthentication(StreamConnectionSchemaRegistryAuthenticationArgs.builder()\n                .type(\"USER_INFO\")\n                .username(\"registry-user\")\n                .password(schemaRegistryPassword)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-schema-registry:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.workspaceName}\n      connectionName: SchemaRegistryConnection\n      type: SchemaRegistry\n      schemaRegistryProvider: CONFLUENT\n      schemaRegistryUrls:\n        - https://schema-registry.example.com:8081\n      schemaRegistryAuthentication:\n        type: USER_INFO\n        username: registry-user\n        password: ${schemaRegistryPassword}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Schema Registry Connection with SASL_INHERIT Authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example_schema_registry_sasl = new mongodbatlas.StreamConnection(\"example-schema-registry-sasl\", {\n    projectId: projectId,\n    workspaceName: example.workspaceName,\n    connectionName: \"SchemaRegistryConnectionSASL\",\n    type: \"SchemaRegistry\",\n    schemaRegistryProvider: \"CONFLUENT\",\n    schemaRegistryUrls: [\"https://schema-registry.example.com:8081\"],\n    schemaRegistryAuthentication: {\n        type: \"SASL_INHERIT\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample_schema_registry_sasl = mongodbatlas.StreamConnection(\"example-schema-registry-sasl\",\n    project_id=project_id,\n    workspace_name=example[\"workspaceName\"],\n    connection_name=\"SchemaRegistryConnectionSASL\",\n    type=\"SchemaRegistry\",\n    schema_registry_provider=\"CONFLUENT\",\n    schema_registry_urls=[\"https://schema-registry.example.com:8081\"],\n    schema_registry_authentication={\n        \"type\": \"SASL_INHERIT\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_schema_registry_sasl = new Mongodbatlas.StreamConnection(\"example-schema-registry-sasl\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.WorkspaceName,\n        ConnectionName = \"SchemaRegistryConnectionSASL\",\n        Type = \"SchemaRegistry\",\n        SchemaRegistryProvider = \"CONFLUENT\",\n        SchemaRegistryUrls = new[]\n        {\n            \"https://schema-registry.example.com:8081\",\n        },\n        SchemaRegistryAuthentication = new Mongodbatlas.Inputs.StreamConnectionSchemaRegistryAuthenticationArgs\n        {\n            Type = \"SASL_INHERIT\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamConnection(ctx, \"example-schema-registry-sasl\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:              pulumi.Any(projectId),\n\t\t\tWorkspaceName:          pulumi.Any(example.WorkspaceName),\n\t\t\tConnectionName:         pulumi.String(\"SchemaRegistryConnectionSASL\"),\n\t\t\tType:                   pulumi.String(\"SchemaRegistry\"),\n\t\t\tSchemaRegistryProvider: pulumi.String(\"CONFLUENT\"),\n\t\t\tSchemaRegistryUrls: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"https://schema-registry.example.com:8081\"),\n\t\t\t},\n\t\t\tSchemaRegistryAuthentication: \u0026mongodbatlas.StreamConnectionSchemaRegistryAuthenticationArgs{\n\t\t\t\tType: pulumi.String(\"SASL_INHERIT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionSchemaRegistryAuthenticationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example_schema_registry_sasl = new StreamConnection(\"example-schema-registry-sasl\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.workspaceName())\n            .connectionName(\"SchemaRegistryConnectionSASL\")\n            .type(\"SchemaRegistry\")\n            .schemaRegistryProvider(\"CONFLUENT\")\n            .schemaRegistryUrls(\"https://schema-registry.example.com:8081\")\n            .schemaRegistryAuthentication(StreamConnectionSchemaRegistryAuthenticationArgs.builder()\n                .type(\"SASL_INHERIT\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example-schema-registry-sasl:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.workspaceName}\n      connectionName: SchemaRegistryConnectionSASL\n      type: SchemaRegistry\n      schemaRegistryProvider: CONFLUENT\n      schemaRegistryUrls:\n        - https://schema-registry.example.com:8081\n      schemaRegistryAuthentication:\n        type: SASL_INHERIT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Usage with Stream Processor\n\nWhen using a stream connection with a stream processor, the connection must be fully provisioned before the processor can be created. The provider automatically waits for connections to be ready after creation or updates. The example below shows a typical pattern:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.StreamWorkspace(\"example\", {\n    projectId: projectId,\n    workspaceName: \"ExampleWorkspace\",\n    dataProcessRegion: {\n        region: \"VIRGINIA_USA\",\n        cloudProvider: \"AWS\",\n    },\n});\n// Source connection (Sample data)\nconst source = new mongodbatlas.StreamConnection(\"source\", {\n    projectId: projectId,\n    workspaceName: example.workspaceName,\n    connectionName: \"sample_stream_solar\",\n    type: \"Sample\",\n});\n// Sink connection (Atlas Cluster)\nconst sink = new mongodbatlas.StreamConnection(\"sink\", {\n    projectId: projectId,\n    workspaceName: example.workspaceName,\n    connectionName: \"ClusterConnection\",\n    type: \"Cluster\",\n    clusterName: exampleMongodbatlasCluster.name,\n    dbRoleToExecute: {\n        role: \"atlasAdmin\",\n        type: \"BUILT_IN\",\n    },\n});\n// Stream processor that depends on both connections\nconst exampleStreamProcessor = new mongodbatlas.StreamProcessor(\"example\", {\n    projectId: projectId,\n    workspaceName: example.workspaceName,\n    processorName: \"ExampleProcessor\",\n    pipeline: pulumi.jsonStringify([\n        {\n            $source: {\n                connectionName: source.connectionName,\n            },\n        },\n        {\n            $emit: {\n                connectionName: sink.connectionName,\n            },\n        },\n    ]),\n    state: \"STARTED\",\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.StreamWorkspace(\"example\",\n    project_id=project_id,\n    workspace_name=\"ExampleWorkspace\",\n    data_process_region={\n        \"region\": \"VIRGINIA_USA\",\n        \"cloud_provider\": \"AWS\",\n    })\n# Source connection (Sample data)\nsource = mongodbatlas.StreamConnection(\"source\",\n    project_id=project_id,\n    workspace_name=example.workspace_name,\n    connection_name=\"sample_stream_solar\",\n    type=\"Sample\")\n# Sink connection (Atlas Cluster)\nsink = mongodbatlas.StreamConnection(\"sink\",\n    project_id=project_id,\n    workspace_name=example.workspace_name,\n    connection_name=\"ClusterConnection\",\n    type=\"Cluster\",\n    cluster_name=example_mongodbatlas_cluster[\"name\"],\n    db_role_to_execute={\n        \"role\": \"atlasAdmin\",\n        \"type\": \"BUILT_IN\",\n    })\n# Stream processor that depends on both connections\nexample_stream_processor = mongodbatlas.StreamProcessor(\"example\",\n    project_id=project_id,\n    workspace_name=example.workspace_name,\n    processor_name=\"ExampleProcessor\",\n    pipeline=pulumi.Output.json_dumps([\n        {\n            \"$source\": {\n                \"connectionName\": source.connection_name,\n            },\n        },\n        {\n            \"$emit\": {\n                \"connectionName\": sink.connection_name,\n            },\n        },\n    ]),\n    state=\"STARTED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.StreamWorkspace(\"example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = \"ExampleWorkspace\",\n        DataProcessRegion = new Mongodbatlas.Inputs.StreamWorkspaceDataProcessRegionArgs\n        {\n            Region = \"VIRGINIA_USA\",\n            CloudProvider = \"AWS\",\n        },\n    });\n\n    // Source connection (Sample data)\n    var source = new Mongodbatlas.StreamConnection(\"source\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.WorkspaceName,\n        ConnectionName = \"sample_stream_solar\",\n        Type = \"Sample\",\n    });\n\n    // Sink connection (Atlas Cluster)\n    var sink = new Mongodbatlas.StreamConnection(\"sink\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.WorkspaceName,\n        ConnectionName = \"ClusterConnection\",\n        Type = \"Cluster\",\n        ClusterName = exampleMongodbatlasCluster.Name,\n        DbRoleToExecute = new Mongodbatlas.Inputs.StreamConnectionDbRoleToExecuteArgs\n        {\n            Role = \"atlasAdmin\",\n            Type = \"BUILT_IN\",\n        },\n    });\n\n    // Stream processor that depends on both connections\n    var exampleStreamProcessor = new Mongodbatlas.StreamProcessor(\"example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.WorkspaceName,\n        ProcessorName = \"ExampleProcessor\",\n        Pipeline = Output.JsonSerialize(Output.Create(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$source\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = source.ConnectionName,\n                },\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$emit\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = sink.ConnectionName,\n                },\n            },\n        })),\n        State = \"STARTED\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.NewStreamWorkspace(ctx, \"example\", \u0026mongodbatlas.StreamWorkspaceArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: pulumi.String(\"ExampleWorkspace\"),\n\t\t\tDataProcessRegion: \u0026mongodbatlas.StreamWorkspaceDataProcessRegionArgs{\n\t\t\t\tRegion:        pulumi.String(\"VIRGINIA_USA\"),\n\t\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Source connection (Sample data)\n\t\tsource, err := mongodbatlas.NewStreamConnection(ctx, \"source\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.WorkspaceName,\n\t\t\tConnectionName: pulumi.String(\"sample_stream_solar\"),\n\t\t\tType:           pulumi.String(\"Sample\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Sink connection (Atlas Cluster)\n\t\tsink, err := mongodbatlas.NewStreamConnection(ctx, \"sink\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.WorkspaceName,\n\t\t\tConnectionName: pulumi.String(\"ClusterConnection\"),\n\t\t\tType:           pulumi.String(\"Cluster\"),\n\t\t\tClusterName:    pulumi.Any(exampleMongodbatlasCluster.Name),\n\t\t\tDbRoleToExecute: \u0026mongodbatlas.StreamConnectionDbRoleToExecuteArgs{\n\t\t\t\tRole: pulumi.String(\"atlasAdmin\"),\n\t\t\t\tType: pulumi.String(\"BUILT_IN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Stream processor that depends on both connections\n\t\t_, err = mongodbatlas.NewStreamProcessor(ctx, \"example\", \u0026mongodbatlas.StreamProcessorArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: example.WorkspaceName,\n\t\t\tProcessorName: pulumi.String(\"ExampleProcessor\"),\n\t\t\tPipeline: pulumi.All(source.ConnectionName, sink.ConnectionName).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tsourceConnectionName := _args[0].(string)\n\t\t\t\tsinkConnectionName := _args[1].(string)\n\t\t\t\tvar _zero string\n\t\t\t\ttmpJSON0, err := json.Marshal([]interface{}{\n\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\"$source\": map[string]interface{}{\n\t\t\t\t\t\t\t\"connectionName\": sourceConnectionName,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\"$emit\": map[string]interface{}{\n\t\t\t\t\t\t\t\"connectionName\": sinkConnectionName,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn _zero, err\n\t\t\t\t}\n\t\t\t\tjson0 := string(tmpJSON0)\n\t\t\t\treturn json0, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tState: pulumi.String(\"STARTED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamWorkspace;\nimport com.pulumi.mongodbatlas.StreamWorkspaceArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamWorkspaceDataProcessRegionArgs;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;\nimport com.pulumi.mongodbatlas.StreamProcessor;\nimport com.pulumi.mongodbatlas.StreamProcessorArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new StreamWorkspace(\"example\", StreamWorkspaceArgs.builder()\n            .projectId(projectId)\n            .workspaceName(\"ExampleWorkspace\")\n            .dataProcessRegion(StreamWorkspaceDataProcessRegionArgs.builder()\n                .region(\"VIRGINIA_USA\")\n                .cloudProvider(\"AWS\")\n                .build())\n            .build());\n\n        // Source connection (Sample data)\n        var source = new StreamConnection(\"source\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.workspaceName())\n            .connectionName(\"sample_stream_solar\")\n            .type(\"Sample\")\n            .build());\n\n        // Sink connection (Atlas Cluster)\n        var sink = new StreamConnection(\"sink\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.workspaceName())\n            .connectionName(\"ClusterConnection\")\n            .type(\"Cluster\")\n            .clusterName(exampleMongodbatlasCluster.name())\n            .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()\n                .role(\"atlasAdmin\")\n                .type(\"BUILT_IN\")\n                .build())\n            .build());\n\n        // Stream processor that depends on both connections\n        var exampleStreamProcessor = new StreamProcessor(\"exampleStreamProcessor\", StreamProcessorArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.workspaceName())\n            .processorName(\"ExampleProcessor\")\n            .pipeline(Output.tuple(source.connectionName(), sink.connectionName()).applyValue(values -\u003e {\n                var sourceConnectionName = values.t1;\n                var sinkConnectionName = values.t2;\n                return serializeJson(\n                    jsonArray(\n                        jsonObject(\n                            jsonProperty(\"$source\", jsonObject(\n                                jsonProperty(\"connectionName\", sourceConnectionName)\n                            ))\n                        ), \n                        jsonObject(\n                            jsonProperty(\"$emit\", jsonObject(\n                                jsonProperty(\"connectionName\", sinkConnectionName)\n                            ))\n                        )\n                    ));\n            }))\n            .state(\"STARTED\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:StreamWorkspace\n    properties:\n      projectId: ${projectId}\n      workspaceName: ExampleWorkspace\n      dataProcessRegion:\n        region: VIRGINIA_USA\n        cloudProvider: AWS\n  # Source connection (Sample data)\n  source:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.workspaceName}\n      connectionName: sample_stream_solar\n      type: Sample\n  # Sink connection (Atlas Cluster)\n  sink:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.workspaceName}\n      connectionName: ClusterConnection\n      type: Cluster\n      clusterName: ${exampleMongodbatlasCluster.name}\n      dbRoleToExecute:\n        role: atlasAdmin\n        type: BUILT_IN\n  # Stream processor that depends on both connections\n  exampleStreamProcessor:\n    type: mongodbatlas:StreamProcessor\n    name: example\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.workspaceName}\n      processorName: ExampleProcessor\n      pipeline:\n        fn::toJSON:\n          - $source:\n              connectionName: ${source.connectionName}\n          - $emit:\n              connectionName: ${sink.connectionName}\n      state: STARTED\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **NOTE:** The stream processor resource automatically depends on the stream connections through the \u003cspan pulumi-lang-nodejs=\"`connectionName`\" pulumi-lang-dotnet=\"`ConnectionName`\" pulumi-lang-go=\"`connectionName`\" pulumi-lang-python=\"`connection_name`\" pulumi-lang-yaml=\"`connectionName`\" pulumi-lang-java=\"`connectionName`\"\u003e`connection_name`\u003c/span\u003e references in the pipeline. This ensures proper creation order. The provider waits for each connection to be fully provisioned before returning from create or update operations.\n\n## Import\n\nYou can import a stream connection resource using the workspace name, project ID, and connection name. The format must be `WORKSPACE_NAME-PROJECT_ID-CONNECTION_NAME`. For example:\n\n```sh\n$ pulumi import mongodbatlas:index/streamConnection:StreamConnection test \"DefaultInstance-12251446ae5f3f6ec7968b13-NewConnection\"\n```\n\nTo learn more, see: [MongoDB Atlas API - Stream Connection](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamConnection) Documentation.\nThe Terraform Provider Examples Section also contains details on the overall support for Atlas Streams Processing in Terraform.\n\n","properties":{"authentication":{"$ref":"#/types/mongodbatlas:index/StreamConnectionAuthentication:StreamConnectionAuthentication"},"aws":{"$ref":"#/types/mongodbatlas:index/StreamConnectionAws:StreamConnectionAws"},"bootstrapServers":{"type":"string"},"clusterName":{"type":"string"},"clusterProjectId":{"type":"string"},"config":{"type":"object","additionalProperties":{"type":"string"}},"connectionName":{"type":"string","description":"Label that identifies the stream connection. In the case of the Sample type, this is the name of the sample source.\n"},"dbRoleToExecute":{"$ref":"#/types/mongodbatlas:index/StreamConnectionDbRoleToExecute:StreamConnectionDbRoleToExecute"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"instanceName":{"type":"string","description":"Label that identifies the stream processing workspace. Use \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e instead; this attribute will be removed in a future major version.\n","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"networking":{"$ref":"#/types/mongodbatlas:index/StreamConnectionNetworking:StreamConnectionNetworking"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"schemaRegistryAuthentication":{"$ref":"#/types/mongodbatlas:index/StreamConnectionSchemaRegistryAuthentication:StreamConnectionSchemaRegistryAuthentication"},"schemaRegistryProvider":{"type":"string"},"schemaRegistryUrls":{"type":"array","items":{"type":"string"}},"security":{"$ref":"#/types/mongodbatlas:index/StreamConnectionSecurity:StreamConnectionSecurity"},"timeouts":{"$ref":"#/types/mongodbatlas:index/StreamConnectionTimeouts:StreamConnectionTimeouts"},"type":{"type":"string","description":"Type of connection. Can be `AWSLambda`, `Cluster`, `Https`, `Kafka`, `Sample`, or `SchemaRegistry`.\n"},"url":{"type":"string"},"workspaceName":{"type":"string","description":"Label that identifies the stream processing workspace.\n"}},"required":["connectionName","networking","projectId","type"],"inputProperties":{"authentication":{"$ref":"#/types/mongodbatlas:index/StreamConnectionAuthentication:StreamConnectionAuthentication"},"aws":{"$ref":"#/types/mongodbatlas:index/StreamConnectionAws:StreamConnectionAws"},"bootstrapServers":{"type":"string"},"clusterName":{"type":"string"},"clusterProjectId":{"type":"string"},"config":{"type":"object","additionalProperties":{"type":"string"}},"connectionName":{"type":"string","description":"Label that identifies the stream connection. In the case of the Sample type, this is the name of the sample source.\n"},"dbRoleToExecute":{"$ref":"#/types/mongodbatlas:index/StreamConnectionDbRoleToExecute:StreamConnectionDbRoleToExecute"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"instanceName":{"type":"string","description":"Label that identifies the stream processing workspace. Use \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e instead; this attribute will be removed in a future major version.\n","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"networking":{"$ref":"#/types/mongodbatlas:index/StreamConnectionNetworking:StreamConnectionNetworking"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"schemaRegistryAuthentication":{"$ref":"#/types/mongodbatlas:index/StreamConnectionSchemaRegistryAuthentication:StreamConnectionSchemaRegistryAuthentication"},"schemaRegistryProvider":{"type":"string"},"schemaRegistryUrls":{"type":"array","items":{"type":"string"}},"security":{"$ref":"#/types/mongodbatlas:index/StreamConnectionSecurity:StreamConnectionSecurity"},"timeouts":{"$ref":"#/types/mongodbatlas:index/StreamConnectionTimeouts:StreamConnectionTimeouts"},"type":{"type":"string","description":"Type of connection. Can be `AWSLambda`, `Cluster`, `Https`, `Kafka`, `Sample`, or `SchemaRegistry`.\n"},"url":{"type":"string"},"workspaceName":{"type":"string","description":"Label that identifies the stream processing workspace.\n"}},"requiredInputs":["connectionName","projectId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering StreamConnection resources.\n","properties":{"authentication":{"$ref":"#/types/mongodbatlas:index/StreamConnectionAuthentication:StreamConnectionAuthentication"},"aws":{"$ref":"#/types/mongodbatlas:index/StreamConnectionAws:StreamConnectionAws"},"bootstrapServers":{"type":"string"},"clusterName":{"type":"string"},"clusterProjectId":{"type":"string"},"config":{"type":"object","additionalProperties":{"type":"string"}},"connectionName":{"type":"string","description":"Label that identifies the stream connection. In the case of the Sample type, this is the name of the sample source.\n"},"dbRoleToExecute":{"$ref":"#/types/mongodbatlas:index/StreamConnectionDbRoleToExecute:StreamConnectionDbRoleToExecute"},"headers":{"type":"object","additionalProperties":{"type":"string"}},"instanceName":{"type":"string","description":"Label that identifies the stream processing workspace. Use \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e instead; this attribute will be removed in a future major version.\n","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"networking":{"$ref":"#/types/mongodbatlas:index/StreamConnectionNetworking:StreamConnectionNetworking"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"schemaRegistryAuthentication":{"$ref":"#/types/mongodbatlas:index/StreamConnectionSchemaRegistryAuthentication:StreamConnectionSchemaRegistryAuthentication"},"schemaRegistryProvider":{"type":"string"},"schemaRegistryUrls":{"type":"array","items":{"type":"string"}},"security":{"$ref":"#/types/mongodbatlas:index/StreamConnectionSecurity:StreamConnectionSecurity"},"timeouts":{"$ref":"#/types/mongodbatlas:index/StreamConnectionTimeouts:StreamConnectionTimeouts"},"type":{"type":"string","description":"Type of connection. Can be `AWSLambda`, `Cluster`, `Https`, `Kafka`, `Sample`, or `SchemaRegistry`.\n"},"url":{"type":"string"},"workspaceName":{"type":"string","description":"Label that identifies the stream processing workspace.\n"}},"type":"object"}},"mongodbatlas:index/streamInstance:StreamInstance":{"description":"\u003e **DEPRECATED:** This resource is deprecated. Please use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-go=\"`StreamWorkspace`\" pulumi-lang-python=\"`StreamWorkspace`\" pulumi-lang-yaml=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-java=\"`mongodbatlas.StreamWorkspace`\"\u003e`mongodbatlas.StreamWorkspace`\u003c/span\u003e instead.\n\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamInstance`\" pulumi-lang-go=\"`StreamInstance`\" pulumi-lang-python=\"`StreamInstance`\" pulumi-lang-yaml=\"`mongodbatlas.StreamInstance`\" pulumi-lang-java=\"`mongodbatlas.StreamInstance`\"\u003e`mongodbatlas.StreamInstance`\u003c/span\u003e provides a Stream Instance resource. The resource lets you create, edit, and delete stream instances in a project.\n\n## Migration to\u003cspan pulumi-lang-nodejs=\" streamWorkspace\n\" pulumi-lang-dotnet=\" StreamWorkspace\n\" pulumi-lang-go=\" streamWorkspace\n\" pulumi-lang-python=\" stream_workspace\n\" pulumi-lang-yaml=\" streamWorkspace\n\" pulumi-lang-java=\" streamWorkspace\n\"\u003e stream_workspace\n\u003c/span\u003e\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamInstance`\" pulumi-lang-go=\"`StreamInstance`\" pulumi-lang-python=\"`StreamInstance`\" pulumi-lang-yaml=\"`mongodbatlas.StreamInstance`\" pulumi-lang-java=\"`mongodbatlas.StreamInstance`\"\u003e`mongodbatlas.StreamInstance`\u003c/span\u003e resources can be moved to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-go=\"`StreamWorkspace`\" pulumi-lang-python=\"`StreamWorkspace`\" pulumi-lang-yaml=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-java=\"`mongodbatlas.StreamWorkspace`\"\u003e`mongodbatlas.StreamWorkspace`\u003c/span\u003e in MongoDB Atlas Provider v2.2.0 and later with Terraform v1.8 and later. \n\nMore information about moving resources can be found in our Migration Guide and in the Terraform documentation here and here.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.StreamInstance(\"test\", {\n    projectId: projectId,\n    instanceName: \"InstanceName\",\n    dataProcessRegion: {\n        region: \"VIRGINIA_USA\",\n        cloudProvider: \"AWS\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.StreamInstance(\"test\",\n    project_id=project_id,\n    instance_name=\"InstanceName\",\n    data_process_region={\n        \"region\": \"VIRGINIA_USA\",\n        \"cloud_provider\": \"AWS\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.StreamInstance(\"test\", new()\n    {\n        ProjectId = projectId,\n        InstanceName = \"InstanceName\",\n        DataProcessRegion = new Mongodbatlas.Inputs.StreamInstanceDataProcessRegionArgs\n        {\n            Region = \"VIRGINIA_USA\",\n            CloudProvider = \"AWS\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamInstance(ctx, \"test\", \u0026mongodbatlas.StreamInstanceArgs{\n\t\t\tProjectId:    pulumi.Any(projectId),\n\t\t\tInstanceName: pulumi.String(\"InstanceName\"),\n\t\t\tDataProcessRegion: \u0026mongodbatlas.StreamInstanceDataProcessRegionArgs{\n\t\t\t\tRegion:        pulumi.String(\"VIRGINIA_USA\"),\n\t\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamInstance;\nimport com.pulumi.mongodbatlas.StreamInstanceArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new StreamInstance(\"test\", StreamInstanceArgs.builder()\n            .projectId(projectId)\n            .instanceName(\"InstanceName\")\n            .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()\n                .region(\"VIRGINIA_USA\")\n                .cloudProvider(\"AWS\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:StreamInstance\n    properties:\n      projectId: ${projectId}\n      instanceName: InstanceName\n      dataProcessRegion:\n        region: VIRGINIA_USA\n        cloudProvider: AWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Atlas Stream Instance (Deprecated)\n- Atlas Stream Workspace (Recommended)\n\n## Import\n\nYou can import stream instance resource using the project ID and instance name, in the format `PROJECT_ID-INSTANCE_NAME`. For example:\n\n```sh\n$ pulumi import mongodbatlas:index/streamInstance:StreamInstance test 650972848269185c55f40ca1-InstanceName\n```\n\nTo learn more, see: [MongoDB Atlas API - Stream Instance](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Streams/operation/createStreamInstance) Documentation. \nThe Terraform Provider Examples Section also contains details on the overall support for Atlas Streams Processing in Terraform.\n\n","properties":{"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/StreamInstanceDataProcessRegion:StreamInstanceDataProcessRegion","description":"Cloud service provider and region where MongoDB Cloud performs stream processing. See data process region.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"List that contains the hostnames assigned to the stream instance.\n"},"instanceName":{"type":"string","description":"Human-readable label that identifies the stream instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"streamConfig":{"$ref":"#/types/mongodbatlas:index/StreamInstanceStreamConfig:StreamInstanceStreamConfig","description":"Configuration options for an Atlas Stream Processing Instance. See stream config\n"}},"required":["dataProcessRegion","hostnames","instanceName","projectId","streamConfig"],"inputProperties":{"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/StreamInstanceDataProcessRegion:StreamInstanceDataProcessRegion","description":"Cloud service provider and region where MongoDB Cloud performs stream processing. See data process region.\n"},"instanceName":{"type":"string","description":"Human-readable label that identifies the stream instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"streamConfig":{"$ref":"#/types/mongodbatlas:index/StreamInstanceStreamConfig:StreamInstanceStreamConfig","description":"Configuration options for an Atlas Stream Processing Instance. See stream config\n"}},"requiredInputs":["dataProcessRegion","instanceName","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering StreamInstance resources.\n","properties":{"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/StreamInstanceDataProcessRegion:StreamInstanceDataProcessRegion","description":"Cloud service provider and region where MongoDB Cloud performs stream processing. See data process region.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"List that contains the hostnames assigned to the stream instance.\n"},"instanceName":{"type":"string","description":"Human-readable label that identifies the stream instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"streamConfig":{"$ref":"#/types/mongodbatlas:index/StreamInstanceStreamConfig:StreamInstanceStreamConfig","description":"Configuration options for an Atlas Stream Processing Instance. See stream config\n"}},"type":"object"}},"mongodbatlas:index/streamPrivatelinkEndpoint:StreamPrivatelinkEndpoint":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamPrivatelinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamPrivatelinkEndpoint`\" pulumi-lang-go=\"`StreamPrivatelinkEndpoint`\" pulumi-lang-python=\"`StreamPrivatelinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.StreamPrivatelinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.StreamPrivatelinkEndpoint`\"\u003e`mongodbatlas.StreamPrivatelinkEndpoint`\u003c/span\u003e describes a Privatelink Endpoint for Streams.\n\n## Example Usage\n\n### S\n\n### AWS Confluent Privatelink\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as confluent from \"@pulumi/confluent\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\nimport * as std from \"@pulumi/std\";\n\nconst staging = new confluent.index.Environment(\"staging\", {displayName: \"Staging\"});\nconst privateLink = new confluent.index.Network(\"private_link\", {\n    displayName: \"terraform-test-private-link-network-manual\",\n    cloud: \"AWS\",\n    region: awsRegion,\n    connectionTypes: [\"PRIVATELINK\"],\n    zones: std.index.keys({\n        input: subnetsToPrivatelink,\n    }).result,\n    environment: [{\n        id: staging.id,\n    }],\n    dnsConfig: [{\n        resolution: \"PRIVATE\",\n    }],\n});\nconst aws = new confluent.index.PrivateLinkAccess(\"aws\", {\n    displayName: \"example-private-link-access\",\n    aws: [{\n        account: awsAccountId,\n    }],\n    environment: [{\n        id: staging.id,\n    }],\n    network: [{\n        id: privateLink.id,\n    }],\n});\nconst dedicated = new confluent.index.KafkaCluster(\"dedicated\", {\n    displayName: \"example-dedicated-cluster\",\n    availability: \"MULTI_ZONE\",\n    cloud: privateLink.cloud,\n    region: privateLink.region,\n    dedicated: [{\n        cku: 2,\n    }],\n    environment: [{\n        id: staging.id,\n    }],\n    network: [{\n        id: privateLink.id,\n    }],\n});\nconst test = new mongodbatlas.StreamPrivatelinkEndpoint(\"test\", {\n    projectId: projectId,\n    dnsDomain: privateLink.dnsDomain,\n    providerName: \"AWS\",\n    region: awsRegion,\n    vendor: \"CONFLUENT\",\n    serviceEndpointId: privateLink.aws[0].privateLinkEndpointService,\n    dnsSubDomains: privateLink.zonalSubdomains,\n});\nconst singularDatasource = test.id.apply(id =\u003e mongodbatlas.getStreamPrivatelinkEndpointOutput({\n    projectId: projectId,\n    id: id,\n}));\nconst pluralDatasource = mongodbatlas.getStreamPrivatelinkEndpoints({\n    projectId: projectId,\n});\nexport const interfaceEndpointId = singularDatasource.apply(singularDatasource =\u003e singularDatasource.interfaceEndpointId);\nexport const interfaceEndpointIds = pluralDatasource.then(pluralDatasource =\u003e pluralDatasource.results.map(__item =\u003e __item.interfaceEndpointId));\n```\n```python\nimport pulumi\nimport pulumi_confluent as confluent\nimport pulumi_mongodbatlas as mongodbatlas\nimport pulumi_std as std\n\nstaging = confluent.index.Environment(\"staging\", display_name=Staging)\nprivate_link = confluent.index.Network(\"private_link\",\n    display_name=terraform-test-private-link-network-manual,\n    cloud=AWS,\n    region=aws_region,\n    connection_types=[PRIVATELINK],\n    zones=std.index.keys(input=subnets_to_privatelink).result,\n    environment=[{\n        id: staging.id,\n    }],\n    dns_config=[{\n        resolution: PRIVATE,\n    }])\naws = confluent.index.PrivateLinkAccess(\"aws\",\n    display_name=example-private-link-access,\n    aws=[{\n        account: aws_account_id,\n    }],\n    environment=[{\n        id: staging.id,\n    }],\n    network=[{\n        id: private_link.id,\n    }])\ndedicated = confluent.index.KafkaCluster(\"dedicated\",\n    display_name=example-dedicated-cluster,\n    availability=MULTI_ZONE,\n    cloud=private_link.cloud,\n    region=private_link.region,\n    dedicated=[{\n        cku: 2,\n    }],\n    environment=[{\n        id: staging.id,\n    }],\n    network=[{\n        id: private_link.id,\n    }])\ntest = mongodbatlas.StreamPrivatelinkEndpoint(\"test\",\n    project_id=project_id,\n    dns_domain=private_link[\"dnsDomain\"],\n    provider_name=\"AWS\",\n    region=aws_region,\n    vendor=\"CONFLUENT\",\n    service_endpoint_id=private_link[\"aws\"][0][\"privateLinkEndpointService\"],\n    dns_sub_domains=private_link[\"zonalSubdomains\"])\nsingular_datasource = test.id.apply(lambda id: mongodbatlas.get_stream_privatelink_endpoint_output(project_id=project_id,\n    id=id))\nplural_datasource = mongodbatlas.get_stream_privatelink_endpoints(project_id=project_id)\npulumi.export(\"interfaceEndpointId\", singular_datasource.interface_endpoint_id)\npulumi.export(\"interfaceEndpointIds\", [__item.interface_endpoint_id for __item in plural_datasource.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Confluent = Pulumi.Confluent;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var staging = new Confluent.Index.Environment(\"staging\", new()\n    {\n        DisplayName = \"Staging\",\n    });\n\n    var privateLink = new Confluent.Index.Network(\"private_link\", new()\n    {\n        DisplayName = \"terraform-test-private-link-network-manual\",\n        Cloud = \"AWS\",\n        Region = awsRegion,\n        ConnectionTypes = new[]\n        {\n            \"PRIVATELINK\",\n        },\n        Zones = Std.Index.Keys.Invoke(new()\n        {\n            Input = subnetsToPrivatelink,\n        }).Result,\n        Environment = new[]\n        {\n            \n            {\n                { \"id\", staging.Id },\n            },\n        },\n        DnsConfig = new[]\n        {\n            \n            {\n                { \"resolution\", \"PRIVATE\" },\n            },\n        },\n    });\n\n    var aws = new Confluent.Index.PrivateLinkAccess(\"aws\", new()\n    {\n        DisplayName = \"example-private-link-access\",\n        Aws = new[]\n        {\n            \n            {\n                { \"account\", awsAccountId },\n            },\n        },\n        Environment = new[]\n        {\n            \n            {\n                { \"id\", staging.Id },\n            },\n        },\n        Network = new[]\n        {\n            \n            {\n                { \"id\", privateLink.Id },\n            },\n        },\n    });\n\n    var dedicated = new Confluent.Index.KafkaCluster(\"dedicated\", new()\n    {\n        DisplayName = \"example-dedicated-cluster\",\n        Availability = \"MULTI_ZONE\",\n        Cloud = privateLink.Cloud,\n        Region = privateLink.Region,\n        Dedicated = new[]\n        {\n            \n            {\n                { \"cku\", 2 },\n            },\n        },\n        Environment = new[]\n        {\n            \n            {\n                { \"id\", staging.Id },\n            },\n        },\n        Network = new[]\n        {\n            \n            {\n                { \"id\", privateLink.Id },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.StreamPrivatelinkEndpoint(\"test\", new()\n    {\n        ProjectId = projectId,\n        DnsDomain = privateLink.DnsDomain,\n        ProviderName = \"AWS\",\n        Region = awsRegion,\n        Vendor = \"CONFLUENT\",\n        ServiceEndpointId = privateLink.Aws[0].PrivateLinkEndpointService,\n        DnsSubDomains = privateLink.ZonalSubdomains,\n    });\n\n    var singularDatasource = Mongodbatlas.GetStreamPrivatelinkEndpoint.Invoke(new()\n    {\n        ProjectId = projectId,\n        Id = test.Id,\n    });\n\n    var pluralDatasource = Mongodbatlas.GetStreamPrivatelinkEndpoints.Invoke(new()\n    {\n        ProjectId = projectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"interfaceEndpointId\"] = singularDatasource.Apply(getStreamPrivatelinkEndpointResult =\u003e getStreamPrivatelinkEndpointResult.InterfaceEndpointId),\n        [\"interfaceEndpointIds\"] = pluralDatasource.Apply(getStreamPrivatelinkEndpointsResult =\u003e getStreamPrivatelinkEndpointsResult.Results).Select(__item =\u003e __item.InterfaceEndpointId).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-confluent/sdk/go/confluent\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nstaging, err := confluent.NewEnvironment(ctx, \"staging\", \u0026confluent.EnvironmentArgs{\nDisplayName: \"Staging\",\n})\nif err != nil {\nreturn err\n}\nprivateLink, err := confluent.NewNetwork(ctx, \"private_link\", \u0026confluent.NetworkArgs{\nDisplayName: \"terraform-test-private-link-network-manual\",\nCloud: \"AWS\",\nRegion: awsRegion,\nConnectionTypes: []string{\n\"PRIVATELINK\",\n},\nZones: std.Keys(ctx, map[string]interface{}{\n\"input\": subnetsToPrivatelink,\n}, nil).Result,\nEnvironment: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": staging.Id,\n},\n},\nDnsConfig: []map[string]interface{}{\nmap[string]interface{}{\n\"resolution\": \"PRIVATE\",\n},\n},\n})\nif err != nil {\nreturn err\n}\n_, err = confluent.NewPrivateLinkAccess(ctx, \"aws\", \u0026confluent.PrivateLinkAccessArgs{\nDisplayName: \"example-private-link-access\",\nAws: []map[string]interface{}{\nmap[string]interface{}{\n\"account\": awsAccountId,\n},\n},\nEnvironment: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": staging.Id,\n},\n},\nNetwork: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": privateLink.Id,\n},\n},\n})\nif err != nil {\nreturn err\n}\n_, err = confluent.NewKafkaCluster(ctx, \"dedicated\", \u0026confluent.KafkaClusterArgs{\nDisplayName: \"example-dedicated-cluster\",\nAvailability: \"MULTI_ZONE\",\nCloud: privateLink.Cloud,\nRegion: privateLink.Region,\nDedicated: []map[string]interface{}{\nmap[string]interface{}{\n\"cku\": 2,\n},\n},\nEnvironment: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": staging.Id,\n},\n},\nNetwork: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": privateLink.Id,\n},\n},\n})\nif err != nil {\nreturn err\n}\ntest, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, \"test\", \u0026mongodbatlas.StreamPrivatelinkEndpointArgs{\nProjectId: pulumi.Any(projectId),\nDnsDomain: privateLink.DnsDomain,\nProviderName: pulumi.String(\"AWS\"),\nRegion: pulumi.Any(awsRegion),\nVendor: pulumi.String(\"CONFLUENT\"),\nServiceEndpointId: privateLink.Aws[0].PrivateLinkEndpointService,\nDnsSubDomains: privateLink.ZonalSubdomains,\n})\nif err != nil {\nreturn err\n}\nsingularDatasource := test.ID().ApplyT(func(id string) (mongodbatlas.GetStreamPrivatelinkEndpointResult, error) {\nreturn mongodbatlas.GetStreamPrivatelinkEndpointResult(interface{}(mongodbatlas.LookupStreamPrivatelinkEndpoint(ctx, \u0026mongodbatlas.LookupStreamPrivatelinkEndpointArgs{\nProjectId: projectId,\nId: id,\n}, nil))), nil\n}).(mongodbatlas.GetStreamPrivatelinkEndpointResultOutput)\npluralDatasource, err := mongodbatlas.LookupStreamPrivatelinkEndpoints(ctx, \u0026mongodbatlas.LookupStreamPrivatelinkEndpointsArgs{\nProjectId: projectId,\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"interfaceEndpointId\", singularDatasource.ApplyT(func(singularDatasource mongodbatlas.GetStreamPrivatelinkEndpointResult) (*string, error) {\nreturn \u0026singularDatasource.InterfaceEndpointId, nil\n}).(pulumi.StringPtrOutput))\nctx.Export(\"interfaceEndpointIds\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:74,11-58)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.confluent.Environment;\nimport com.pulumi.confluent.EnvironmentArgs;\nimport com.pulumi.confluent.Network;\nimport com.pulumi.confluent.NetworkArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.confluent.PrivateLinkAccess;\nimport com.pulumi.confluent.PrivateLinkAccessArgs;\nimport com.pulumi.confluent.KafkaCluster;\nimport com.pulumi.confluent.KafkaClusterArgs;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointArgs;\nimport com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var staging = new Environment(\"staging\", EnvironmentArgs.builder()\n            .displayName(\"Staging\")\n            .build());\n\n        var privateLink = new Network(\"privateLink\", NetworkArgs.builder()\n            .displayName(\"terraform-test-private-link-network-manual\")\n            .cloud(\"AWS\")\n            .region(awsRegion)\n            .connectionTypes(List.of(\"PRIVATELINK\"))\n            .zones(StdFunctions.keys(Map.of(\"input\", subnetsToPrivatelink)).result())\n            .environment(List.of(Map.of(\"id\", staging.id())))\n            .dnsConfig(List.of(Map.of(\"resolution\", \"PRIVATE\")))\n            .build());\n\n        var aws = new PrivateLinkAccess(\"aws\", PrivateLinkAccessArgs.builder()\n            .displayName(\"example-private-link-access\")\n            .aws(List.of(Map.of(\"account\", awsAccountId)))\n            .environment(List.of(Map.of(\"id\", staging.id())))\n            .network(List.of(Map.of(\"id\", privateLink.id())))\n            .build());\n\n        var dedicated = new KafkaCluster(\"dedicated\", KafkaClusterArgs.builder()\n            .displayName(\"example-dedicated-cluster\")\n            .availability(\"MULTI_ZONE\")\n            .cloud(privateLink.cloud())\n            .region(privateLink.region())\n            .dedicated(List.of(Map.of(\"cku\", 2)))\n            .environment(List.of(Map.of(\"id\", staging.id())))\n            .network(List.of(Map.of(\"id\", privateLink.id())))\n            .build());\n\n        var test = new StreamPrivatelinkEndpoint(\"test\", StreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .dnsDomain(privateLink.dnsDomain())\n            .providerName(\"AWS\")\n            .region(awsRegion)\n            .vendor(\"CONFLUENT\")\n            .serviceEndpointId(privateLink.aws()[0].privateLinkEndpointService())\n            .dnsSubDomains(privateLink.zonalSubdomains())\n            .build());\n\n        final var singularDatasource = test.id().applyValue(_id -\u003e MongodbatlasFunctions.getStreamPrivatelinkEndpoint(GetStreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .id(_id)\n            .build()));\n\n        final var pluralDatasource = MongodbatlasFunctions.getStreamPrivatelinkEndpoints(GetStreamPrivatelinkEndpointsArgs.builder()\n            .projectId(projectId)\n            .build());\n\n        ctx.export(\"interfaceEndpointId\", singularDatasource.applyValue(_singularDatasource -\u003e _singularDatasource.interfaceEndpointId()));\n        ctx.export(\"interfaceEndpointIds\", pluralDatasource.results().stream().map(element -\u003e element.interfaceEndpointId()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### AWS S3 Privatelink\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// S3 bucket for stream data\nconst streamBucket = new aws.index.S3Bucket(\"stream_bucket\", {\n    bucket: s3BucketName,\n    forceDestroy: true,\n});\nconst streamBucketVersioning = new aws.index.S3BucketVersioning(\"stream_bucket_versioning\", {\n    bucket: streamBucket.id,\n    versioningConfiguration: [{\n        status: \"Enabled\",\n    }],\n});\nconst streamBucketEncryption = new aws.index.S3BucketServerSideEncryptionConfiguration(\"stream_bucket_encryption\", {\n    bucket: streamBucket.id,\n    rule: [{\n        applyServerSideEncryptionByDefault: [{\n            sseAlgorithm: \"AES256\",\n        }],\n    }],\n});\n// PrivateLink for S3\nconst _this = new mongodbatlas.StreamPrivatelinkEndpoint(\"this\", {\n    projectId: projectId,\n    providerName: \"AWS\",\n    vendor: \"S3\",\n    region: region,\n    serviceEndpointId: serviceEndpointId,\n});\nexport const privatelinkEndpointId = _this.id;\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_mongodbatlas as mongodbatlas\n\n# S3 bucket for stream data\nstream_bucket = aws.index.S3Bucket(\"stream_bucket\",\n    bucket=s3_bucket_name,\n    force_destroy=True)\nstream_bucket_versioning = aws.index.S3BucketVersioning(\"stream_bucket_versioning\",\n    bucket=stream_bucket.id,\n    versioning_configuration=[{\n        status: Enabled,\n    }])\nstream_bucket_encryption = aws.index.S3BucketServerSideEncryptionConfiguration(\"stream_bucket_encryption\",\n    bucket=stream_bucket.id,\n    rule=[{\n        applyServerSideEncryptionByDefault: [{\n            sseAlgorithm: AES256,\n        }],\n    }])\n# PrivateLink for S3\nthis = mongodbatlas.StreamPrivatelinkEndpoint(\"this\",\n    project_id=project_id,\n    provider_name=\"AWS\",\n    vendor=\"S3\",\n    region=region,\n    service_endpoint_id=service_endpoint_id)\npulumi.export(\"privatelinkEndpointId\", this.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // S3 bucket for stream data\n    var streamBucket = new Aws.Index.S3Bucket(\"stream_bucket\", new()\n    {\n        Bucket = s3BucketName,\n        ForceDestroy = true,\n    });\n\n    var streamBucketVersioning = new Aws.Index.S3BucketVersioning(\"stream_bucket_versioning\", new()\n    {\n        Bucket = streamBucket.Id,\n        VersioningConfiguration = new[]\n        {\n            \n            {\n                { \"status\", \"Enabled\" },\n            },\n        },\n    });\n\n    var streamBucketEncryption = new Aws.Index.S3BucketServerSideEncryptionConfiguration(\"stream_bucket_encryption\", new()\n    {\n        Bucket = streamBucket.Id,\n        Rule = new[]\n        {\n            \n            {\n                { \"applyServerSideEncryptionByDefault\", new[]\n                {\n                    \n                    {\n                        { \"sseAlgorithm\", \"AES256\" },\n                    },\n                } },\n            },\n        },\n    });\n\n    // PrivateLink for S3\n    var @this = new Mongodbatlas.StreamPrivatelinkEndpoint(\"this\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"AWS\",\n        Vendor = \"S3\",\n        Region = region,\n        ServiceEndpointId = serviceEndpointId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privatelinkEndpointId\"] = @this.Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// S3 bucket for stream data\n\t\tstreamBucket, err := aws.NewS3Bucket(ctx, \"stream_bucket\", \u0026aws.S3BucketArgs{\n\t\t\tBucket:       s3BucketName,\n\t\t\tForceDestroy: true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aws.NewS3BucketVersioning(ctx, \"stream_bucket_versioning\", \u0026aws.S3BucketVersioningArgs{\n\t\t\tBucket: streamBucket.Id,\n\t\t\tVersioningConfiguration: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"status\": \"Enabled\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aws.NewS3BucketServerSideEncryptionConfiguration(ctx, \"stream_bucket_encryption\", \u0026aws.S3BucketServerSideEncryptionConfigurationArgs{\n\t\t\tBucket: streamBucket.Id,\n\t\t\tRule: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"applyServerSideEncryptionByDefault\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"sseAlgorithm\": \"AES256\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// PrivateLink for S3\n\t\tthis, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, \"this\", \u0026mongodbatlas.StreamPrivatelinkEndpointArgs{\n\t\t\tProjectId:         pulumi.Any(projectId),\n\t\t\tProviderName:      pulumi.String(\"AWS\"),\n\t\t\tVendor:            pulumi.String(\"S3\"),\n\t\t\tRegion:            pulumi.Any(region),\n\t\t\tServiceEndpointId: pulumi.Any(serviceEndpointId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"privatelinkEndpointId\", this.ID())\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.S3Bucket;\nimport com.pulumi.aws.S3BucketArgs;\nimport com.pulumi.aws.S3BucketVersioning;\nimport com.pulumi.aws.S3BucketVersioningArgs;\nimport com.pulumi.aws.S3BucketServerSideEncryptionConfiguration;\nimport com.pulumi.aws.S3BucketServerSideEncryptionConfigurationArgs;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // S3 bucket for stream data\n        var streamBucket = new S3Bucket(\"streamBucket\", S3BucketArgs.builder()\n            .bucket(s3BucketName)\n            .forceDestroy(true)\n            .build());\n\n        var streamBucketVersioning = new S3BucketVersioning(\"streamBucketVersioning\", S3BucketVersioningArgs.builder()\n            .bucket(streamBucket.id())\n            .versioningConfiguration(List.of(Map.of(\"status\", \"Enabled\")))\n            .build());\n\n        var streamBucketEncryption = new S3BucketServerSideEncryptionConfiguration(\"streamBucketEncryption\", S3BucketServerSideEncryptionConfigurationArgs.builder()\n            .bucket(streamBucket.id())\n            .rule(List.of(Map.of(\"applyServerSideEncryptionByDefault\", List.of(Map.of(\"sseAlgorithm\", \"AES256\")))))\n            .build());\n\n        // PrivateLink for S3\n        var this_ = new StreamPrivatelinkEndpoint(\"this\", StreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"AWS\")\n            .vendor(\"S3\")\n            .region(region)\n            .serviceEndpointId(serviceEndpointId)\n            .build());\n\n        ctx.export(\"privatelinkEndpointId\", this_.id());\n    }\n}\n```\n```yaml\nresources:\n  # S3 bucket for stream data\n  streamBucket:\n    type: aws:S3Bucket\n    name: stream_bucket\n    properties:\n      bucket: ${s3BucketName}\n      forceDestroy: true\n  streamBucketVersioning:\n    type: aws:S3BucketVersioning\n    name: stream_bucket_versioning\n    properties:\n      bucket: ${streamBucket.id}\n      versioningConfiguration:\n        - status: Enabled\n  streamBucketEncryption:\n    type: aws:S3BucketServerSideEncryptionConfiguration\n    name: stream_bucket_encryption\n    properties:\n      bucket: ${streamBucket.id}\n      rule:\n        - applyServerSideEncryptionByDefault:\n            - sseAlgorithm: AES256\n  # PrivateLink for S3\n  this:\n    type: mongodbatlas:StreamPrivatelinkEndpoint\n    properties:\n      projectId: ${projectId}\n      providerName: AWS\n      vendor: S3\n      region: ${region}\n      serviceEndpointId: ${serviceEndpointId}\noutputs:\n  privatelinkEndpointId: ${this.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### GCP Confluent Privatelink\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst gcpConfluentStreamPrivatelinkEndpoint = new mongodbatlas.StreamPrivatelinkEndpoint(\"gcp_confluent\", {\n    projectId: projectId,\n    providerName: \"GCP\",\n    vendor: \"CONFLUENT\",\n    region: gcpRegion,\n    dnsDomain: confluentDnsDomain,\n    dnsSubDomains: confluentDnsSubdomains,\n    serviceAttachmentUris: [\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\",\n    ],\n});\nconst gcpConfluent = gcpConfluentStreamPrivatelinkEndpoint.id.apply(id =\u003e mongodbatlas.getStreamPrivatelinkEndpointOutput({\n    projectId: projectId,\n    id: id,\n}));\nexport const privatelinkEndpointId = gcpConfluentStreamPrivatelinkEndpoint.id;\nexport const privatelinkEndpointState = gcpConfluent.apply(gcpConfluent =\u003e gcpConfluent.state);\nexport const serviceAttachmentUris = gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris;\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ngcp_confluent_stream_privatelink_endpoint = mongodbatlas.StreamPrivatelinkEndpoint(\"gcp_confluent\",\n    project_id=project_id,\n    provider_name=\"GCP\",\n    vendor=\"CONFLUENT\",\n    region=gcp_region,\n    dns_domain=confluent_dns_domain,\n    dns_sub_domains=confluent_dns_subdomains,\n    service_attachment_uris=[\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\",\n    ])\ngcp_confluent = gcp_confluent_stream_privatelink_endpoint.id.apply(lambda id: mongodbatlas.get_stream_privatelink_endpoint_output(project_id=project_id,\n    id=id))\npulumi.export(\"privatelinkEndpointId\", gcp_confluent_stream_privatelink_endpoint.id)\npulumi.export(\"privatelinkEndpointState\", gcp_confluent.state)\npulumi.export(\"serviceAttachmentUris\", gcp_confluent_stream_privatelink_endpoint.service_attachment_uris)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var gcpConfluentStreamPrivatelinkEndpoint = new Mongodbatlas.StreamPrivatelinkEndpoint(\"gcp_confluent\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"GCP\",\n        Vendor = \"CONFLUENT\",\n        Region = gcpRegion,\n        DnsDomain = confluentDnsDomain,\n        DnsSubDomains = confluentDnsSubdomains,\n        ServiceAttachmentUris = new[]\n        {\n            \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n            \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\",\n        },\n    });\n\n    var gcpConfluent = Mongodbatlas.GetStreamPrivatelinkEndpoint.Invoke(new()\n    {\n        ProjectId = projectId,\n        Id = gcpConfluentStreamPrivatelinkEndpoint.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privatelinkEndpointId\"] = gcpConfluentStreamPrivatelinkEndpoint.Id,\n        [\"privatelinkEndpointState\"] = gcpConfluent.Apply(getStreamPrivatelinkEndpointResult =\u003e getStreamPrivatelinkEndpointResult.State),\n        [\"serviceAttachmentUris\"] = gcpConfluentStreamPrivatelinkEndpoint.ServiceAttachmentUris,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgcpConfluentStreamPrivatelinkEndpoint, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, \"gcp_confluent\", \u0026mongodbatlas.StreamPrivatelinkEndpointArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tProviderName:  pulumi.String(\"GCP\"),\n\t\t\tVendor:        pulumi.String(\"CONFLUENT\"),\n\t\t\tRegion:        pulumi.Any(gcpRegion),\n\t\t\tDnsDomain:     pulumi.Any(confluentDnsDomain),\n\t\t\tDnsSubDomains: pulumi.Any(confluentDnsSubdomains),\n\t\t\tServiceAttachmentUris: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\"),\n\t\t\t\tpulumi.String(\"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgcpConfluent := gcpConfluentStreamPrivatelinkEndpoint.ID().ApplyT(func(id string) (mongodbatlas.GetStreamPrivatelinkEndpointResult, error) {\n\t\t\treturn mongodbatlas.GetStreamPrivatelinkEndpointResult(interface{}(mongodbatlas.LookupStreamPrivatelinkEndpoint(ctx, \u0026mongodbatlas.LookupStreamPrivatelinkEndpointArgs{\n\t\t\t\tProjectId: projectId,\n\t\t\t\tId:        id,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetStreamPrivatelinkEndpointResultOutput)\n\t\tctx.Export(\"privatelinkEndpointId\", gcpConfluentStreamPrivatelinkEndpoint.ID())\n\t\tctx.Export(\"privatelinkEndpointState\", gcpConfluent.ApplyT(func(gcpConfluent mongodbatlas.GetStreamPrivatelinkEndpointResult) (*string, error) {\n\t\t\treturn \u0026gcpConfluent.State, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"serviceAttachmentUris\", gcpConfluentStreamPrivatelinkEndpoint.ServiceAttachmentUris)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var gcpConfluentStreamPrivatelinkEndpoint = new StreamPrivatelinkEndpoint(\"gcpConfluentStreamPrivatelinkEndpoint\", StreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"GCP\")\n            .vendor(\"CONFLUENT\")\n            .region(gcpRegion)\n            .dnsDomain(confluentDnsDomain)\n            .dnsSubDomains(confluentDnsSubdomains)\n            .serviceAttachmentUris(            \n                \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n                \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\")\n            .build());\n\n        final var gcpConfluent = gcpConfluentStreamPrivatelinkEndpoint.id().applyValue(_id -\u003e MongodbatlasFunctions.getStreamPrivatelinkEndpoint(GetStreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .id(_id)\n            .build()));\n\n        ctx.export(\"privatelinkEndpointId\", gcpConfluentStreamPrivatelinkEndpoint.id());\n        ctx.export(\"privatelinkEndpointState\", gcpConfluent.applyValue(_gcpConfluent -\u003e _gcpConfluent.state()));\n        ctx.export(\"serviceAttachmentUris\", gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris());\n    }\n}\n```\n```yaml\nresources:\n  gcpConfluentStreamPrivatelinkEndpoint:\n    type: mongodbatlas:StreamPrivatelinkEndpoint\n    name: gcp_confluent\n    properties:\n      projectId: ${projectId}\n      providerName: GCP\n      vendor: CONFLUENT\n      region: ${gcpRegion}\n      dnsDomain: ${confluentDnsDomain}\n      dnsSubDomains: ${confluentDnsSubdomains}\n      serviceAttachmentUris:\n        - projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\n        - projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\nvariables:\n  gcpConfluent:\n    fn::invoke:\n      function: mongodbatlas:getStreamPrivatelinkEndpoint\n      arguments:\n        projectId: ${projectId}\n        id: ${gcpConfluentStreamPrivatelinkEndpoint.id}\noutputs:\n  privatelinkEndpointId: ${gcpConfluentStreamPrivatelinkEndpoint.id}\n  privatelinkEndpointState: ${gcpConfluent.state}\n  serviceAttachmentUris: ${gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS Confluent PrivateLink\n- Confluent Dedicated Cluster\n- AWS MSK PrivateLink\n- AWS S3 PrivateLink\n- GCP Confluent PrivateLink\n- Azure PrivateLink\n","properties":{"arn":{"type":"string","description":"Amazon Resource Name (ARN). Required for AWS Provider and MSK vendor."},"dnsDomain":{"type":"string","description":"The domain hostname. Required for the following provider and vendor combinations:\n\t\t\t\t\n\t* AWS provider with CONFLUENT vendor.\n\n\t* AZURE provider with EVENTHUB or CONFLUENT vendor."},"dnsSubDomains":{"type":"array","items":{"type":"string"},"description":"Sub-Domain name of Confluent cluster. These are typically your availability zones. Required for AWS Provider and CONFLUENT vendor. If your AWS CONFLUENT cluster doesn't use subdomains, you must set this to the empty array []."},"errorMessage":{"type":"string","description":"Error message if the connection is in a failed state."},"interfaceEndpointId":{"type":"string","description":"Interface endpoint ID that is created from the specified service endpoint ID."},"interfaceEndpointName":{"type":"string","description":"Name of interface endpoint that is created from the specified service endpoint ID."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\u003cbr\u003e**NOTE**: Groups and projects are synonymous terms. Your group id is the same as your project id. For existing groups, your group or project id remains the same. The resource and corresponding endpoints use the term groups."},"providerAccountId":{"type":"string","description":"Account ID from the cloud provider."},"providerName":{"type":"string","description":"Provider where the endpoint is deployed. Valid values are AWS, AZURE, and GCP."},"region":{"type":"string","description":"The region of the Provider’s cluster. See [AZURE](https://www.mongodb.com/docs/atlas/reference/microsoft-azure/#stream-processing-instances) and [AWS](https://www.mongodb.com/docs/atlas/reference/amazon-aws/#stream-processing-instances) supported regions. When the vendor is `CONFLUENT`, this is the domain name of Confluent cluster. When the vendor is `MSK`, this is computed by the API from the provided \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e."},"serviceAttachmentUris":{"type":"array","items":{"type":"string"},"description":"List of GCP service attachment URIs for Confluent vendor. Required for GCP provider with CONFLUENT vendor."},"serviceEndpointId":{"type":"string","description":"For AZURE EVENTHUB, this is the [namespace endpoint ID](https://learn.microsoft.com/en-us/rest/api/eventhub/namespaces/get). For AWS CONFLUENT cluster, this is the [VPC Endpoint service name](https://docs.confluent.io/cloud/current/networking/private-links/aws-privatelink.html)."},"state":{"type":"string","description":"Status of the connection."},"vendor":{"type":"string","description":"Vendor that manages the endpoint. The following are the vendor values per provider:\n\n\t* **AWS**: MSK, CONFLUENT, and S3\n\n\t* **Azure**: EVENTHUB and CONFLUENT\n\n\t* **GCP**: CONFLUENT"}},"required":["errorMessage","interfaceEndpointId","interfaceEndpointName","projectId","providerAccountId","providerName","region","state","vendor"],"inputProperties":{"arn":{"type":"string","description":"Amazon Resource Name (ARN). Required for AWS Provider and MSK vendor."},"dnsDomain":{"type":"string","description":"The domain hostname. Required for the following provider and vendor combinations:\n\t\t\t\t\n\t* AWS provider with CONFLUENT vendor.\n\n\t* AZURE provider with EVENTHUB or CONFLUENT vendor."},"dnsSubDomains":{"type":"array","items":{"type":"string"},"description":"Sub-Domain name of Confluent cluster. These are typically your availability zones. Required for AWS Provider and CONFLUENT vendor. If your AWS CONFLUENT cluster doesn't use subdomains, you must set this to the empty array []."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\u003cbr\u003e**NOTE**: Groups and projects are synonymous terms. Your group id is the same as your project id. For existing groups, your group or project id remains the same. The resource and corresponding endpoints use the term groups."},"providerName":{"type":"string","description":"Provider where the endpoint is deployed. Valid values are AWS, AZURE, and GCP."},"region":{"type":"string","description":"The region of the Provider’s cluster. See [AZURE](https://www.mongodb.com/docs/atlas/reference/microsoft-azure/#stream-processing-instances) and [AWS](https://www.mongodb.com/docs/atlas/reference/amazon-aws/#stream-processing-instances) supported regions. When the vendor is `CONFLUENT`, this is the domain name of Confluent cluster. When the vendor is `MSK`, this is computed by the API from the provided \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e."},"serviceAttachmentUris":{"type":"array","items":{"type":"string"},"description":"List of GCP service attachment URIs for Confluent vendor. Required for GCP provider with CONFLUENT vendor."},"serviceEndpointId":{"type":"string","description":"For AZURE EVENTHUB, this is the [namespace endpoint ID](https://learn.microsoft.com/en-us/rest/api/eventhub/namespaces/get). For AWS CONFLUENT cluster, this is the [VPC Endpoint service name](https://docs.confluent.io/cloud/current/networking/private-links/aws-privatelink.html)."},"vendor":{"type":"string","description":"Vendor that manages the endpoint. The following are the vendor values per provider:\n\n\t* **AWS**: MSK, CONFLUENT, and S3\n\n\t* **Azure**: EVENTHUB and CONFLUENT\n\n\t* **GCP**: CONFLUENT"}},"requiredInputs":["projectId","providerName","vendor"],"stateInputs":{"description":"Input properties used for looking up and filtering StreamPrivatelinkEndpoint resources.\n","properties":{"arn":{"type":"string","description":"Amazon Resource Name (ARN). Required for AWS Provider and MSK vendor."},"dnsDomain":{"type":"string","description":"The domain hostname. Required for the following provider and vendor combinations:\n\t\t\t\t\n\t* AWS provider with CONFLUENT vendor.\n\n\t* AZURE provider with EVENTHUB or CONFLUENT vendor."},"dnsSubDomains":{"type":"array","items":{"type":"string"},"description":"Sub-Domain name of Confluent cluster. These are typically your availability zones. Required for AWS Provider and CONFLUENT vendor. If your AWS CONFLUENT cluster doesn't use subdomains, you must set this to the empty array []."},"errorMessage":{"type":"string","description":"Error message if the connection is in a failed state."},"interfaceEndpointId":{"type":"string","description":"Interface endpoint ID that is created from the specified service endpoint ID."},"interfaceEndpointName":{"type":"string","description":"Name of interface endpoint that is created from the specified service endpoint ID."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\u003cbr\u003e**NOTE**: Groups and projects are synonymous terms. Your group id is the same as your project id. For existing groups, your group or project id remains the same. The resource and corresponding endpoints use the term groups."},"providerAccountId":{"type":"string","description":"Account ID from the cloud provider."},"providerName":{"type":"string","description":"Provider where the endpoint is deployed. Valid values are AWS, AZURE, and GCP."},"region":{"type":"string","description":"The region of the Provider’s cluster. See [AZURE](https://www.mongodb.com/docs/atlas/reference/microsoft-azure/#stream-processing-instances) and [AWS](https://www.mongodb.com/docs/atlas/reference/amazon-aws/#stream-processing-instances) supported regions. When the vendor is `CONFLUENT`, this is the domain name of Confluent cluster. When the vendor is `MSK`, this is computed by the API from the provided \u003cspan pulumi-lang-nodejs=\"`arn`\" pulumi-lang-dotnet=\"`Arn`\" pulumi-lang-go=\"`arn`\" pulumi-lang-python=\"`arn`\" pulumi-lang-yaml=\"`arn`\" pulumi-lang-java=\"`arn`\"\u003e`arn`\u003c/span\u003e."},"serviceAttachmentUris":{"type":"array","items":{"type":"string"},"description":"List of GCP service attachment URIs for Confluent vendor. Required for GCP provider with CONFLUENT vendor."},"serviceEndpointId":{"type":"string","description":"For AZURE EVENTHUB, this is the [namespace endpoint ID](https://learn.microsoft.com/en-us/rest/api/eventhub/namespaces/get). For AWS CONFLUENT cluster, this is the [VPC Endpoint service name](https://docs.confluent.io/cloud/current/networking/private-links/aws-privatelink.html)."},"state":{"type":"string","description":"Status of the connection."},"vendor":{"type":"string","description":"Vendor that manages the endpoint. The following are the vendor values per provider:\n\n\t* **AWS**: MSK, CONFLUENT, and S3\n\n\t* **Azure**: EVENTHUB and CONFLUENT\n\n\t* **GCP**: CONFLUENT"}},"type":"object"}},"mongodbatlas:index/streamProcessor:StreamProcessor":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamProcessor`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamProcessor`\" pulumi-lang-go=\"`StreamProcessor`\" pulumi-lang-python=\"`StreamProcessor`\" pulumi-lang-yaml=\"`mongodbatlas.StreamProcessor`\" pulumi-lang-java=\"`mongodbatlas.StreamProcessor`\"\u003e`mongodbatlas.StreamProcessor`\u003c/span\u003e provides a Stream Processor resource. The resource lets you create, delete, import, start and stop a stream processor in a stream instance.\n\n**NOTE**: When updating an Atlas Stream Processor, the following behavior applies:\n1. If the processor is in a `STARTED` state, it will automatically be stopped before the update is applied\n2. The update will be performed while the processor is in `STOPPED` state\n3. If the processor was originally in `STARTED` state, it will be restarted after the update\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.StreamInstance(\"example\", {\n    projectId: projectId,\n    instanceName: \"InstanceName\",\n    dataProcessRegion: {\n        region: \"VIRGINIA_USA\",\n        cloudProvider: \"AWS\",\n    },\n});\nconst example_sample = new mongodbatlas.StreamConnection(\"example-sample\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    connectionName: \"sample_stream_solar\",\n    type: \"Sample\",\n});\nconst example_cluster = new mongodbatlas.StreamConnection(\"example-cluster\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    connectionName: \"ClusterConnection\",\n    type: \"Cluster\",\n    clusterName: clusterName,\n    dbRoleToExecute: {\n        role: \"atlasAdmin\",\n        type: \"BUILT_IN\",\n    },\n});\nconst example_kafka = new mongodbatlas.StreamConnection(\"example-kafka\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    connectionName: \"KafkaPlaintextConnection\",\n    type: \"Kafka\",\n    authentication: {\n        mechanism: \"PLAIN\",\n        username: kafkaUsername,\n        password: kafkaPassword,\n    },\n    bootstrapServers: \"localhost:9092,localhost:9092\",\n    config: {\n        \"auto.offset.reset\": \"earliest\",\n    },\n    security: {\n        protocol: \"SASL_PLAINTEXT\",\n    },\n});\nconst stream_processor_sample_example = new mongodbatlas.StreamProcessor(\"stream-processor-sample-example\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    processorName: \"sampleProcessorName\",\n    pipeline: JSON.stringify([\n        {\n            $source: {\n                connectionName: mongodbatlasStreamConnection[\"example-sample\"].connectionName,\n            },\n        },\n        {\n            $emit: {\n                connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n                db: \"sample\",\n                coll: \"solar\",\n                timeseries: {\n                    timeField: \"_ts\",\n                },\n            },\n        },\n    ]),\n    state: \"STARTED\",\n    tier: \"SP30\",\n});\nconst stream_processor_cluster_to_kafka_example = new mongodbatlas.StreamProcessor(\"stream-processor-cluster-to-kafka-example\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    processorName: \"clusterProcessorName\",\n    pipeline: JSON.stringify([\n        {\n            $source: {\n                connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n            },\n        },\n        {\n            $emit: {\n                connectionName: mongodbatlasStreamConnection[\"example-kafka\"].connectionName,\n                topic: \"topic_from_cluster\",\n            },\n        },\n    ]),\n    state: \"CREATED\",\n});\nconst stream_processor_kafka_to_cluster_example = new mongodbatlas.StreamProcessor(\"stream-processor-kafka-to-cluster-example\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    processorName: \"kafkaProcessorName\",\n    pipeline: JSON.stringify([\n        {\n            $source: {\n                connectionName: mongodbatlasStreamConnection[\"example-kafka\"].connectionName,\n                topic: \"topic_source\",\n            },\n        },\n        {\n            $emit: {\n                connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n                db: \"kafka\",\n                coll: \"topic_source\",\n                timeseries: {\n                    timeField: \"ts\",\n                },\n            },\n        },\n    ]),\n    state: \"CREATED\",\n    options: {\n        dlq: {\n            coll: \"exampleColumn\",\n            connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n            db: \"exampleDb\",\n        },\n    },\n});\nconst example_stream_processors = example.instanceName.apply(instanceName =\u003e mongodbatlas.getStreamProcessorsOutput({\n    projectId: projectId,\n    workspaceName: instanceName,\n}));\nconst example_stream_processor = pulumi.all([example.instanceName, stream_processor_sample_example.processorName]).apply(([instanceName, processorName]) =\u003e mongodbatlas.getStreamProcessorOutput({\n    projectId: projectId,\n    workspaceName: instanceName,\n    processorName: processorName,\n}));\nexport const streamProcessorsState = example_stream_processor.apply(example_stream_processor =\u003e example_stream_processor.state);\nexport const streamProcessorsResults = example_stream_processors.apply(example_stream_processors =\u003e example_stream_processors.results);\n```\n```python\nimport pulumi\nimport json\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.StreamInstance(\"example\",\n    project_id=project_id,\n    instance_name=\"InstanceName\",\n    data_process_region={\n        \"region\": \"VIRGINIA_USA\",\n        \"cloud_provider\": \"AWS\",\n    })\nexample_sample = mongodbatlas.StreamConnection(\"example-sample\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    connection_name=\"sample_stream_solar\",\n    type=\"Sample\")\nexample_cluster = mongodbatlas.StreamConnection(\"example-cluster\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    connection_name=\"ClusterConnection\",\n    type=\"Cluster\",\n    cluster_name=cluster_name,\n    db_role_to_execute={\n        \"role\": \"atlasAdmin\",\n        \"type\": \"BUILT_IN\",\n    })\nexample_kafka = mongodbatlas.StreamConnection(\"example-kafka\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    connection_name=\"KafkaPlaintextConnection\",\n    type=\"Kafka\",\n    authentication={\n        \"mechanism\": \"PLAIN\",\n        \"username\": kafka_username,\n        \"password\": kafka_password,\n    },\n    bootstrap_servers=\"localhost:9092,localhost:9092\",\n    config={\n        \"auto.offset.reset\": \"earliest\",\n    },\n    security={\n        \"protocol\": \"SASL_PLAINTEXT\",\n    })\nstream_processor_sample_example = mongodbatlas.StreamProcessor(\"stream-processor-sample-example\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    processor_name=\"sampleProcessorName\",\n    pipeline=json.dumps([\n        {\n            \"$source\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-sample\"][\"connectionName\"],\n            },\n        },\n        {\n            \"$emit\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n                \"db\": \"sample\",\n                \"coll\": \"solar\",\n                \"timeseries\": {\n                    \"timeField\": \"_ts\",\n                },\n            },\n        },\n    ]),\n    state=\"STARTED\",\n    tier=\"SP30\")\nstream_processor_cluster_to_kafka_example = mongodbatlas.StreamProcessor(\"stream-processor-cluster-to-kafka-example\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    processor_name=\"clusterProcessorName\",\n    pipeline=json.dumps([\n        {\n            \"$source\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n            },\n        },\n        {\n            \"$emit\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-kafka\"][\"connectionName\"],\n                \"topic\": \"topic_from_cluster\",\n            },\n        },\n    ]),\n    state=\"CREATED\")\nstream_processor_kafka_to_cluster_example = mongodbatlas.StreamProcessor(\"stream-processor-kafka-to-cluster-example\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    processor_name=\"kafkaProcessorName\",\n    pipeline=json.dumps([\n        {\n            \"$source\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-kafka\"][\"connectionName\"],\n                \"topic\": \"topic_source\",\n            },\n        },\n        {\n            \"$emit\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n                \"db\": \"kafka\",\n                \"coll\": \"topic_source\",\n                \"timeseries\": {\n                    \"timeField\": \"ts\",\n                },\n            },\n        },\n    ]),\n    state=\"CREATED\",\n    options={\n        \"dlq\": {\n            \"coll\": \"exampleColumn\",\n            \"connection_name\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n            \"db\": \"exampleDb\",\n        },\n    })\nexample_stream_processors = example.instance_name.apply(lambda instance_name: mongodbatlas.get_stream_processors_output(project_id=project_id,\n    workspace_name=instance_name))\nexample_stream_processor = pulumi.Output.all(\n    instance_name=example.instance_name,\n    processor_name=stream_processor_sample_example.processor_name\n).apply(lambda resolved_outputs: mongodbatlas.get_stream_processor_output(project_id=project_id,\n    workspace_name=resolved_outputs['instance_name'],\n    processor_name=resolved_outputs['processor_name']))\n\npulumi.export(\"streamProcessorsState\", example_stream_processor.state)\npulumi.export(\"streamProcessorsResults\", example_stream_processors.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.StreamInstance(\"example\", new()\n    {\n        ProjectId = projectId,\n        InstanceName = \"InstanceName\",\n        DataProcessRegion = new Mongodbatlas.Inputs.StreamInstanceDataProcessRegionArgs\n        {\n            Region = \"VIRGINIA_USA\",\n            CloudProvider = \"AWS\",\n        },\n    });\n\n    var example_sample = new Mongodbatlas.StreamConnection(\"example-sample\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ConnectionName = \"sample_stream_solar\",\n        Type = \"Sample\",\n    });\n\n    var example_cluster = new Mongodbatlas.StreamConnection(\"example-cluster\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ConnectionName = \"ClusterConnection\",\n        Type = \"Cluster\",\n        ClusterName = clusterName,\n        DbRoleToExecute = new Mongodbatlas.Inputs.StreamConnectionDbRoleToExecuteArgs\n        {\n            Role = \"atlasAdmin\",\n            Type = \"BUILT_IN\",\n        },\n    });\n\n    var example_kafka = new Mongodbatlas.StreamConnection(\"example-kafka\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ConnectionName = \"KafkaPlaintextConnection\",\n        Type = \"Kafka\",\n        Authentication = new Mongodbatlas.Inputs.StreamConnectionAuthenticationArgs\n        {\n            Mechanism = \"PLAIN\",\n            Username = kafkaUsername,\n            Password = kafkaPassword,\n        },\n        BootstrapServers = \"localhost:9092,localhost:9092\",\n        Config = \n        {\n            { \"auto.offset.reset\", \"earliest\" },\n        },\n        Security = new Mongodbatlas.Inputs.StreamConnectionSecurityArgs\n        {\n            Protocol = \"SASL_PLAINTEXT\",\n        },\n    });\n\n    var stream_processor_sample_example = new Mongodbatlas.StreamProcessor(\"stream-processor-sample-example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = \"sampleProcessorName\",\n        Pipeline = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$source\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_sample.ConnectionName,\n                },\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$emit\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                    [\"db\"] = \"sample\",\n                    [\"coll\"] = \"solar\",\n                    [\"timeseries\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"timeField\"] = \"_ts\",\n                    },\n                },\n            },\n        }),\n        State = \"STARTED\",\n        Tier = \"SP30\",\n    });\n\n    var stream_processor_cluster_to_kafka_example = new Mongodbatlas.StreamProcessor(\"stream-processor-cluster-to-kafka-example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = \"clusterProcessorName\",\n        Pipeline = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$source\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                },\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$emit\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_kafka.ConnectionName,\n                    [\"topic\"] = \"topic_from_cluster\",\n                },\n            },\n        }),\n        State = \"CREATED\",\n    });\n\n    var stream_processor_kafka_to_cluster_example = new Mongodbatlas.StreamProcessor(\"stream-processor-kafka-to-cluster-example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = \"kafkaProcessorName\",\n        Pipeline = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$source\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_kafka.ConnectionName,\n                    [\"topic\"] = \"topic_source\",\n                },\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$emit\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                    [\"db\"] = \"kafka\",\n                    [\"coll\"] = \"topic_source\",\n                    [\"timeseries\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"timeField\"] = \"ts\",\n                    },\n                },\n            },\n        }),\n        State = \"CREATED\",\n        Options = new Mongodbatlas.Inputs.StreamProcessorOptionsArgs\n        {\n            Dlq = new Mongodbatlas.Inputs.StreamProcessorOptionsDlqArgs\n            {\n                Coll = \"exampleColumn\",\n                ConnectionName = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                Db = \"exampleDb\",\n            },\n        },\n    });\n\n    var example_stream_processors = Mongodbatlas.GetStreamProcessors.Invoke(new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n    });\n\n    var example_stream_processor = Mongodbatlas.GetStreamProcessor.Invoke(new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = stream_processor_sample_example.ProcessorName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"streamProcessorsState\"] = example_stream_processor.Apply(example_stream_processor =\u003e example_stream_processor.Apply(getStreamProcessorResult =\u003e getStreamProcessorResult.State)),\n        [\"streamProcessorsResults\"] = example_stream_processors.Apply(example_stream_processors =\u003e example_stream_processors.Apply(getStreamProcessorsResult =\u003e getStreamProcessorsResult.Results)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.NewStreamInstance(ctx, \"example\", \u0026mongodbatlas.StreamInstanceArgs{\n\t\t\tProjectId:    pulumi.Any(projectId),\n\t\t\tInstanceName: pulumi.String(\"InstanceName\"),\n\t\t\tDataProcessRegion: \u0026mongodbatlas.StreamInstanceDataProcessRegionArgs{\n\t\t\t\tRegion:        pulumi.String(\"VIRGINIA_USA\"),\n\t\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewStreamConnection(ctx, \"example-sample\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.InstanceName,\n\t\t\tConnectionName: pulumi.String(\"sample_stream_solar\"),\n\t\t\tType:           pulumi.String(\"Sample\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewStreamConnection(ctx, \"example-cluster\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.InstanceName,\n\t\t\tConnectionName: pulumi.String(\"ClusterConnection\"),\n\t\t\tType:           pulumi.String(\"Cluster\"),\n\t\t\tClusterName:    pulumi.Any(clusterName),\n\t\t\tDbRoleToExecute: \u0026mongodbatlas.StreamConnectionDbRoleToExecuteArgs{\n\t\t\t\tRole: pulumi.String(\"atlasAdmin\"),\n\t\t\t\tType: pulumi.String(\"BUILT_IN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewStreamConnection(ctx, \"example-kafka\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.InstanceName,\n\t\t\tConnectionName: pulumi.String(\"KafkaPlaintextConnection\"),\n\t\t\tType:           pulumi.String(\"Kafka\"),\n\t\t\tAuthentication: \u0026mongodbatlas.StreamConnectionAuthenticationArgs{\n\t\t\t\tMechanism: pulumi.String(\"PLAIN\"),\n\t\t\t\tUsername:  pulumi.Any(kafkaUsername),\n\t\t\t\tPassword:  pulumi.Any(kafkaPassword),\n\t\t\t},\n\t\t\tBootstrapServers: pulumi.String(\"localhost:9092,localhost:9092\"),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"auto.offset.reset\": pulumi.String(\"earliest\"),\n\t\t\t},\n\t\t\tSecurity: \u0026mongodbatlas.StreamConnectionSecurityArgs{\n\t\t\t\tProtocol: pulumi.String(\"SASL_PLAINTEXT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$source\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleSample.ConnectionName,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$emit\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleCluster.ConnectionName,\n\t\t\t\t\t\"db\":             \"sample\",\n\t\t\t\t\t\"coll\":           \"solar\",\n\t\t\t\t\t\"timeseries\": map[string]interface{}{\n\t\t\t\t\t\t\"timeField\": \"_ts\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tstream_processor_sample_example, err := mongodbatlas.NewStreamProcessor(ctx, \"stream-processor-sample-example\", \u0026mongodbatlas.StreamProcessorArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: example.InstanceName,\n\t\t\tProcessorName: pulumi.String(\"sampleProcessorName\"),\n\t\t\tPipeline:      pulumi.String(json0),\n\t\t\tState:         pulumi.String(\"STARTED\"),\n\t\t\tTier:          pulumi.String(\"SP30\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$source\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleCluster.ConnectionName,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$emit\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleKafka.ConnectionName,\n\t\t\t\t\t\"topic\":          \"topic_from_cluster\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = mongodbatlas.NewStreamProcessor(ctx, \"stream-processor-cluster-to-kafka-example\", \u0026mongodbatlas.StreamProcessorArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: example.InstanceName,\n\t\t\tProcessorName: pulumi.String(\"clusterProcessorName\"),\n\t\t\tPipeline:      pulumi.String(json1),\n\t\t\tState:         pulumi.String(\"CREATED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON2, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$source\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleKafka.ConnectionName,\n\t\t\t\t\t\"topic\":          \"topic_source\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$emit\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleCluster.ConnectionName,\n\t\t\t\t\t\"db\":             \"kafka\",\n\t\t\t\t\t\"coll\":           \"topic_source\",\n\t\t\t\t\t\"timeseries\": map[string]interface{}{\n\t\t\t\t\t\t\"timeField\": \"ts\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson2 := string(tmpJSON2)\n\t\t_, err = mongodbatlas.NewStreamProcessor(ctx, \"stream-processor-kafka-to-cluster-example\", \u0026mongodbatlas.StreamProcessorArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: example.InstanceName,\n\t\t\tProcessorName: pulumi.String(\"kafkaProcessorName\"),\n\t\t\tPipeline:      pulumi.String(json2),\n\t\t\tState:         pulumi.String(\"CREATED\"),\n\t\t\tOptions: \u0026mongodbatlas.StreamProcessorOptionsArgs{\n\t\t\t\tDlq: \u0026mongodbatlas.StreamProcessorOptionsDlqArgs{\n\t\t\t\t\tColl:           pulumi.String(\"exampleColumn\"),\n\t\t\t\t\tConnectionName: pulumi.Any(mongodbatlasStreamConnection.ExampleCluster.ConnectionName),\n\t\t\t\t\tDb:             pulumi.String(\"exampleDb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_stream_processors := example.InstanceName.ApplyT(func(instanceName string) (mongodbatlas.GetStreamProcessorsResult, error) {\n\t\t\treturn mongodbatlas.GetStreamProcessorsResult(interface{}(mongodbatlas.LookupStreamProcessors(ctx, \u0026mongodbatlas.LookupStreamProcessorsArgs{\n\t\t\t\tProjectId:     projectId,\n\t\t\t\tWorkspaceName: pulumi.StringRef(pulumi.StringRef(instanceName)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetStreamProcessorsResultOutput)\n\t\texample_stream_processor := pulumi.All(example.InstanceName, stream_processor_sample_example.ProcessorName).ApplyT(func(_args []interface{}) (mongodbatlas.GetStreamProcessorResult, error) {\n\t\t\tinstanceName := _args[0].(string)\n\t\t\tprocessorName := _args[1].(string)\n\t\t\treturn mongodbatlas.GetStreamProcessorResult(interface{}(mongodbatlas.LookupStreamProcessor(ctx, \u0026mongodbatlas.LookupStreamProcessorArgs{\n\t\t\t\tProjectId:     projectId,\n\t\t\t\tWorkspaceName: pulumi.StringRef(pulumi.StringRef(instanceName)),\n\t\t\t\tProcessorName: processorName,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetStreamProcessorResultOutput)\n\t\tctx.Export(\"streamProcessorsState\", example_stream_processor.ApplyT(func(example_stream_processor mongodbatlas.GetStreamProcessorResult) (*string, error) {\n\t\t\treturn \u0026example_stream_processor.State, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"streamProcessorsResults\", example_stream_processors.ApplyT(func(example_stream_processors mongodbatlas.GetStreamProcessorsResult) ([]mongodbatlas.GetStreamProcessorsResult, error) {\n\t\t\treturn []mongodbatlas.GetStreamProcessorsResult(example_stream_processors.Results), nil\n\t\t}).([]mongodbatlas.GetStreamProcessorsResultOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamInstance;\nimport com.pulumi.mongodbatlas.StreamInstanceArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;\nimport com.pulumi.mongodbatlas.StreamProcessor;\nimport com.pulumi.mongodbatlas.StreamProcessorArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;\nimport com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new StreamInstance(\"example\", StreamInstanceArgs.builder()\n            .projectId(projectId)\n            .instanceName(\"InstanceName\")\n            .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()\n                .region(\"VIRGINIA_USA\")\n                .cloudProvider(\"AWS\")\n                .build())\n            .build());\n\n        var example_sample = new StreamConnection(\"example-sample\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .connectionName(\"sample_stream_solar\")\n            .type(\"Sample\")\n            .build());\n\n        var example_cluster = new StreamConnection(\"example-cluster\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .connectionName(\"ClusterConnection\")\n            .type(\"Cluster\")\n            .clusterName(clusterName)\n            .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()\n                .role(\"atlasAdmin\")\n                .type(\"BUILT_IN\")\n                .build())\n            .build());\n\n        var example_kafka = new StreamConnection(\"example-kafka\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .connectionName(\"KafkaPlaintextConnection\")\n            .type(\"Kafka\")\n            .authentication(StreamConnectionAuthenticationArgs.builder()\n                .mechanism(\"PLAIN\")\n                .username(kafkaUsername)\n                .password(kafkaPassword)\n                .build())\n            .bootstrapServers(\"localhost:9092,localhost:9092\")\n            .config(Map.of(\"auto.offset.reset\", \"earliest\"))\n            .security(StreamConnectionSecurityArgs.builder()\n                .protocol(\"SASL_PLAINTEXT\")\n                .build())\n            .build());\n\n        var stream_processor_sample_example = new StreamProcessor(\"stream-processor-sample-example\", StreamProcessorArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .processorName(\"sampleProcessorName\")\n            .pipeline(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"$source\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-sample().connectionName())\n                        ))\n                    ), \n                    jsonObject(\n                        jsonProperty(\"$emit\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-cluster().connectionName()),\n                            jsonProperty(\"db\", \"sample\"),\n                            jsonProperty(\"coll\", \"solar\"),\n                            jsonProperty(\"timeseries\", jsonObject(\n                                jsonProperty(\"timeField\", \"_ts\")\n                            ))\n                        ))\n                    )\n                )))\n            .state(\"STARTED\")\n            .tier(\"SP30\")\n            .build());\n\n        var stream_processor_cluster_to_kafka_example = new StreamProcessor(\"stream-processor-cluster-to-kafka-example\", StreamProcessorArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .processorName(\"clusterProcessorName\")\n            .pipeline(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"$source\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-cluster().connectionName())\n                        ))\n                    ), \n                    jsonObject(\n                        jsonProperty(\"$emit\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-kafka().connectionName()),\n                            jsonProperty(\"topic\", \"topic_from_cluster\")\n                        ))\n                    )\n                )))\n            .state(\"CREATED\")\n            .build());\n\n        var stream_processor_kafka_to_cluster_example = new StreamProcessor(\"stream-processor-kafka-to-cluster-example\", StreamProcessorArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .processorName(\"kafkaProcessorName\")\n            .pipeline(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"$source\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-kafka().connectionName()),\n                            jsonProperty(\"topic\", \"topic_source\")\n                        ))\n                    ), \n                    jsonObject(\n                        jsonProperty(\"$emit\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-cluster().connectionName()),\n                            jsonProperty(\"db\", \"kafka\"),\n                            jsonProperty(\"coll\", \"topic_source\"),\n                            jsonProperty(\"timeseries\", jsonObject(\n                                jsonProperty(\"timeField\", \"ts\")\n                            ))\n                        ))\n                    )\n                )))\n            .state(\"CREATED\")\n            .options(StreamProcessorOptionsArgs.builder()\n                .dlq(StreamProcessorOptionsDlqArgs.builder()\n                    .coll(\"exampleColumn\")\n                    .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())\n                    .db(\"exampleDb\")\n                    .build())\n                .build())\n            .build());\n\n        final var example-stream-processors = example.instanceName().applyValue(_instanceName -\u003e MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()\n            .projectId(projectId)\n            .workspaceName(_instanceName)\n            .build()));\n\n        final var example-stream-processor = Output.tuple(example.instanceName(), stream_processor_sample_example.processorName()).applyValue(values -\u003e {\n            var instanceName = values.t1;\n            var processorName = values.t2;\n            return MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()\n                .projectId(projectId)\n                .workspaceName(instanceName)\n                .processorName(processorName)\n                .build());\n        });\n\n        ctx.export(\"streamProcessorsState\", example_stream_processor.applyValue(_example_stream_processor -\u003e _example_stream_processor.state()));\n        ctx.export(\"streamProcessorsResults\", example_stream_processors.applyValue(_example_stream_processors -\u003e _example_stream_processors.results()));\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:StreamInstance\n    properties:\n      projectId: ${projectId}\n      instanceName: InstanceName\n      dataProcessRegion:\n        region: VIRGINIA_USA\n        cloudProvider: AWS\n  example-sample:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      connectionName: sample_stream_solar\n      type: Sample\n  example-cluster:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      connectionName: ClusterConnection\n      type: Cluster\n      clusterName: ${clusterName}\n      dbRoleToExecute:\n        role: atlasAdmin\n        type: BUILT_IN\n  example-kafka:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      connectionName: KafkaPlaintextConnection\n      type: Kafka\n      authentication:\n        mechanism: PLAIN\n        username: ${kafkaUsername}\n        password: ${kafkaPassword}\n      bootstrapServers: localhost:9092,localhost:9092\n      config:\n        auto.offset.reset: earliest\n      security:\n        protocol: SASL_PLAINTEXT\n  stream-processor-sample-example:\n    type: mongodbatlas:StreamProcessor\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      processorName: sampleProcessorName\n      pipeline:\n        fn::toJSON:\n          - $source:\n              connectionName: ${mongodbatlasStreamConnection\"example-sample\"[%!s(MISSING)].connectionName}\n          - $emit:\n              connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n              db: sample\n              coll: solar\n              timeseries:\n                timeField: _ts\n      state: STARTED\n      tier: SP30\n  stream-processor-cluster-to-kafka-example:\n    type: mongodbatlas:StreamProcessor\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      processorName: clusterProcessorName\n      pipeline:\n        fn::toJSON:\n          - $source:\n              connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n          - $emit:\n              connectionName: ${mongodbatlasStreamConnection\"example-kafka\"[%!s(MISSING)].connectionName}\n              topic: topic_from_cluster\n      state: CREATED\n  stream-processor-kafka-to-cluster-example:\n    type: mongodbatlas:StreamProcessor\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      processorName: kafkaProcessorName\n      pipeline:\n        fn::toJSON:\n          - $source:\n              connectionName: ${mongodbatlasStreamConnection\"example-kafka\"[%!s(MISSING)].connectionName}\n              topic: topic_source\n          - $emit:\n              connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n              db: kafka\n              coll: topic_source\n              timeseries:\n                timeField: ts\n      state: CREATED\n      options:\n        dlq:\n          coll: exampleColumn\n          connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n          db: exampleDb\nvariables:\n  example-stream-processors:\n    fn::invoke:\n      function: mongodbatlas:getStreamProcessors\n      arguments:\n        projectId: ${projectId}\n        workspaceName: ${example.instanceName}\n  example-stream-processor:\n    fn::invoke:\n      function: mongodbatlas:getStreamProcessor\n      arguments:\n        projectId: ${projectId}\n        workspaceName: ${example.instanceName}\n        processorName: ${[\"stream-processor-sample-example\"].processorName}\noutputs:\n  # example making use of data sources\n  streamProcessorsState: ${[\"example-stream-processor\"].state}\n  streamProcessorsResults: ${[\"example-stream-processors\"].results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Atlas Stream Processor\n\n\n## Import \n\nStream Processor resource can be imported using the Project ID, Stream Instance name and Stream Processor name, in the format `INSTANCE_NAME-PROJECT_ID-PROCESSOR_NAME`, e.g.\n```\n$ terraform import mongodbatlas_stream_processor.test yourInstanceName-6117ac2fe2a3d04ed27a987v-yourProcessorName\n```\n\nFor more information see: [MongoDB Atlas API - Stream Processor](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createstreamprocessor) Documentation.\n","properties":{"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e."},"instanceName":{"type":"string","description":"Label that identifies the stream processing workspace.","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"options":{"$ref":"#/types/mongodbatlas:index/StreamProcessorOptions:StreamProcessorOptions","description":"Optional configuration for the stream processor."},"pipeline":{"type":"string","description":"Stream aggregation pipeline you want to apply to your streaming data. [MongoDB Atlas Docs](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/#std-label-stream-aggregation) contain more information. Using jsonencode is recommended when setting this attribute. For more details see the [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/)\n"},"processorName":{"type":"string","description":"Label that identifies the stream processor.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"state":{"type":"string","description":"The state of the stream processor. Commonly occurring states are 'CREATED', 'STARTED', 'STOPPED' and 'FAILED'. Used to start or stop the Stream Processor. Valid values are `CREATED`, `STARTED` or `STOPPED`. When a Stream Processor is created without specifying the state, it will default to `CREATED` state. When a Stream Processor is updated without specifying the state, it will default to the Previous state. \n\n**NOTE** When a Stream Processor is updated without specifying the state, it is stopped and then restored to previous state upon update completion."},"stats":{"type":"string","description":"The stats associated with the stream processor. Refer to the [MongoDB Atlas Docs](https://www.mongodb.com/docs/atlas/atlas-stream-processing/manage-stream-processor/#view-statistics-of-a-stream-processor) for more information."},"tier":{"type":"string","description":"Selected tier to start a stream processor on rather than defaulting to the workspace setting. Configures Memory / VCPU allowances. Valid options are SP2, SP5, SP10, SP30, and SP50."},"timeouts":{"$ref":"#/types/mongodbatlas:index/StreamProcessorTimeouts:StreamProcessorTimeouts"},"workspaceName":{"type":"string","description":"Label that identifies the stream processing workspace."}},"required":["deleteOnCreateTimeout","pipeline","processorName","projectId","state","stats","tier"],"inputProperties":{"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e."},"instanceName":{"type":"string","description":"Label that identifies the stream processing workspace.","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"options":{"$ref":"#/types/mongodbatlas:index/StreamProcessorOptions:StreamProcessorOptions","description":"Optional configuration for the stream processor."},"pipeline":{"type":"string","description":"Stream aggregation pipeline you want to apply to your streaming data. [MongoDB Atlas Docs](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/#std-label-stream-aggregation) contain more information. Using jsonencode is recommended when setting this attribute. For more details see the [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/)\n"},"processorName":{"type":"string","description":"Label that identifies the stream processor.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"state":{"type":"string","description":"The state of the stream processor. Commonly occurring states are 'CREATED', 'STARTED', 'STOPPED' and 'FAILED'. Used to start or stop the Stream Processor. Valid values are `CREATED`, `STARTED` or `STOPPED`. When a Stream Processor is created without specifying the state, it will default to `CREATED` state. When a Stream Processor is updated without specifying the state, it will default to the Previous state. \n\n**NOTE** When a Stream Processor is updated without specifying the state, it is stopped and then restored to previous state upon update completion."},"tier":{"type":"string","description":"Selected tier to start a stream processor on rather than defaulting to the workspace setting. Configures Memory / VCPU allowances. Valid options are SP2, SP5, SP10, SP30, and SP50."},"timeouts":{"$ref":"#/types/mongodbatlas:index/StreamProcessorTimeouts:StreamProcessorTimeouts"},"workspaceName":{"type":"string","description":"Label that identifies the stream processing workspace."}},"requiredInputs":["pipeline","processorName","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering StreamProcessor resources.\n","properties":{"deleteOnCreateTimeout":{"type":"boolean","description":"Indicates whether to delete the resource being created if a timeout is reached when waiting for completion. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e and timeout occurs, it triggers the deletion and returns immediately without waiting for deletion to complete. When set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the timeout will not trigger resource deletion. If you suspect a transient error when the value is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, wait before retrying to allow resource deletion to finish. Default is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e."},"instanceName":{"type":"string","description":"Label that identifies the stream processing workspace.","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"options":{"$ref":"#/types/mongodbatlas:index/StreamProcessorOptions:StreamProcessorOptions","description":"Optional configuration for the stream processor."},"pipeline":{"type":"string","description":"Stream aggregation pipeline you want to apply to your streaming data. [MongoDB Atlas Docs](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/#std-label-stream-aggregation) contain more information. Using jsonencode is recommended when setting this attribute. For more details see the [Aggregation Pipelines Documentation](https://www.mongodb.com/docs/atlas/atlas-stream-processing/stream-aggregation/)\n"},"processorName":{"type":"string","description":"Label that identifies the stream processor.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"state":{"type":"string","description":"The state of the stream processor. Commonly occurring states are 'CREATED', 'STARTED', 'STOPPED' and 'FAILED'. Used to start or stop the Stream Processor. Valid values are `CREATED`, `STARTED` or `STOPPED`. When a Stream Processor is created without specifying the state, it will default to `CREATED` state. When a Stream Processor is updated without specifying the state, it will default to the Previous state. \n\n**NOTE** When a Stream Processor is updated without specifying the state, it is stopped and then restored to previous state upon update completion."},"stats":{"type":"string","description":"The stats associated with the stream processor. Refer to the [MongoDB Atlas Docs](https://www.mongodb.com/docs/atlas/atlas-stream-processing/manage-stream-processor/#view-statistics-of-a-stream-processor) for more information."},"tier":{"type":"string","description":"Selected tier to start a stream processor on rather than defaulting to the workspace setting. Configures Memory / VCPU allowances. Valid options are SP2, SP5, SP10, SP30, and SP50."},"timeouts":{"$ref":"#/types/mongodbatlas:index/StreamProcessorTimeouts:StreamProcessorTimeouts"},"workspaceName":{"type":"string","description":"Label that identifies the stream processing workspace."}},"type":"object"}},"mongodbatlas:index/streamWorkspace:StreamWorkspace":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-go=\"`StreamWorkspace`\" pulumi-lang-python=\"`StreamWorkspace`\" pulumi-lang-yaml=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-java=\"`mongodbatlas.StreamWorkspace`\"\u003e`mongodbatlas.StreamWorkspace`\u003c/span\u003e provides a Stream Workspace resource. The resource lets you create, edit, and delete stream workspaces in a project.\n\n\u003e **NOTE:** This resource is an alias for \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamInstance`\" pulumi-lang-go=\"`StreamInstance`\" pulumi-lang-python=\"`StreamInstance`\" pulumi-lang-yaml=\"`mongodbatlas.StreamInstance`\" pulumi-lang-java=\"`mongodbatlas.StreamInstance`\"\u003e`mongodbatlas.StreamInstance`\u003c/span\u003e. Use this resource for new configurations.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.StreamWorkspace(\"test\", {\n    projectId: projectId,\n    workspaceName: \"WorkspaceName\",\n    dataProcessRegion: {\n        region: \"VIRGINIA_USA\",\n        cloudProvider: \"AWS\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.StreamWorkspace(\"test\",\n    project_id=project_id,\n    workspace_name=\"WorkspaceName\",\n    data_process_region={\n        \"region\": \"VIRGINIA_USA\",\n        \"cloud_provider\": \"AWS\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.StreamWorkspace(\"test\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = \"WorkspaceName\",\n        DataProcessRegion = new Mongodbatlas.Inputs.StreamWorkspaceDataProcessRegionArgs\n        {\n            Region = \"VIRGINIA_USA\",\n            CloudProvider = \"AWS\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamWorkspace(ctx, \"test\", \u0026mongodbatlas.StreamWorkspaceArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: pulumi.String(\"WorkspaceName\"),\n\t\t\tDataProcessRegion: \u0026mongodbatlas.StreamWorkspaceDataProcessRegionArgs{\n\t\t\t\tRegion:        pulumi.String(\"VIRGINIA_USA\"),\n\t\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamWorkspace;\nimport com.pulumi.mongodbatlas.StreamWorkspaceArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamWorkspaceDataProcessRegionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new StreamWorkspace(\"test\", StreamWorkspaceArgs.builder()\n            .projectId(projectId)\n            .workspaceName(\"WorkspaceName\")\n            .dataProcessRegion(StreamWorkspaceDataProcessRegionArgs.builder()\n                .region(\"VIRGINIA_USA\")\n                .cloudProvider(\"AWS\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:StreamWorkspace\n    properties:\n      projectId: ${projectId}\n      workspaceName: WorkspaceName\n      dataProcessRegion:\n        region: VIRGINIA_USA\n        cloudProvider: AWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Atlas Stream Workspace\n\n## Migration from\u003cspan pulumi-lang-nodejs=\" streamInstance\n\" pulumi-lang-dotnet=\" StreamInstance\n\" pulumi-lang-go=\" streamInstance\n\" pulumi-lang-python=\" stream_instance\n\" pulumi-lang-yaml=\" streamInstance\n\" pulumi-lang-java=\" streamInstance\n\"\u003e stream_instance\n\u003c/span\u003e\nTo migrate from \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamInstance`\" pulumi-lang-go=\"`StreamInstance`\" pulumi-lang-python=\"`StreamInstance`\" pulumi-lang-yaml=\"`mongodbatlas.StreamInstance`\" pulumi-lang-java=\"`mongodbatlas.StreamInstance`\"\u003e`mongodbatlas.StreamInstance`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-go=\"`StreamWorkspace`\" pulumi-lang-python=\"`StreamWorkspace`\" pulumi-lang-yaml=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-java=\"`mongodbatlas.StreamWorkspace`\"\u003e`mongodbatlas.StreamWorkspace`\u003c/span\u003e, use the following \u003cspan pulumi-lang-nodejs=\"`moved`\" pulumi-lang-dotnet=\"`Moved`\" pulumi-lang-go=\"`moved`\" pulumi-lang-python=\"`moved`\" pulumi-lang-yaml=\"`moved`\" pulumi-lang-java=\"`moved`\"\u003e`moved`\u003c/span\u003e block:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.StreamWorkspace(\"example\", {\n    projectId: projectId,\n    workspaceName: \"WorkspaceName\",\n    dataProcessRegion: {\n        region: \"VIRGINIA_USA\",\n        cloudProvider: \"AWS\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.StreamWorkspace(\"example\",\n    project_id=project_id,\n    workspace_name=\"WorkspaceName\",\n    data_process_region={\n        \"region\": \"VIRGINIA_USA\",\n        \"cloud_provider\": \"AWS\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.StreamWorkspace(\"example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = \"WorkspaceName\",\n        DataProcessRegion = new Mongodbatlas.Inputs.StreamWorkspaceDataProcessRegionArgs\n        {\n            Region = \"VIRGINIA_USA\",\n            CloudProvider = \"AWS\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewStreamWorkspace(ctx, \"example\", \u0026mongodbatlas.StreamWorkspaceArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: pulumi.String(\"WorkspaceName\"),\n\t\t\tDataProcessRegion: \u0026mongodbatlas.StreamWorkspaceDataProcessRegionArgs{\n\t\t\t\tRegion:        pulumi.String(\"VIRGINIA_USA\"),\n\t\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamWorkspace;\nimport com.pulumi.mongodbatlas.StreamWorkspaceArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamWorkspaceDataProcessRegionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new StreamWorkspace(\"example\", StreamWorkspaceArgs.builder()\n            .projectId(projectId)\n            .workspaceName(\"WorkspaceName\")\n            .dataProcessRegion(StreamWorkspaceDataProcessRegionArgs.builder()\n                .region(\"VIRGINIA_USA\")\n                .cloudProvider(\"AWS\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:StreamWorkspace\n    properties:\n      projectId: ${projectId}\n      workspaceName: WorkspaceName\n      dataProcessRegion:\n        region: VIRGINIA_USA\n        cloudProvider: AWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nYou can import stream workspace resource using the project ID and workspace name, in the format `PROJECT_ID-WORKSPACE_NAME`. For example:\n\n```sh\n$ pulumi import mongodbatlas:index/streamWorkspace:StreamWorkspace test 650972848269185c55f40ca1-WorkspaceName\n```\n\n","properties":{"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/StreamWorkspaceDataProcessRegion:StreamWorkspaceDataProcessRegion","description":"Cloud service provider and region where MongoDB Cloud performs stream processing. See data process region.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"List that contains the hostnames assigned to the stream workspace.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"streamConfig":{"$ref":"#/types/mongodbatlas:index/StreamWorkspaceStreamConfig:StreamWorkspaceStreamConfig","description":"Configuration options for an Atlas Stream Processing Instance. See stream config\n"},"workspaceName":{"type":"string","description":"Label that identifies the stream workspace.\n"}},"required":["dataProcessRegion","hostnames","projectId","streamConfig","workspaceName"],"inputProperties":{"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/StreamWorkspaceDataProcessRegion:StreamWorkspaceDataProcessRegion","description":"Cloud service provider and region where MongoDB Cloud performs stream processing. See data process region.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"streamConfig":{"$ref":"#/types/mongodbatlas:index/StreamWorkspaceStreamConfig:StreamWorkspaceStreamConfig","description":"Configuration options for an Atlas Stream Processing Instance. See stream config\n"},"workspaceName":{"type":"string","description":"Label that identifies the stream workspace.\n"}},"requiredInputs":["dataProcessRegion","projectId","workspaceName"],"stateInputs":{"description":"Input properties used for looking up and filtering StreamWorkspace resources.\n","properties":{"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/StreamWorkspaceDataProcessRegion:StreamWorkspaceDataProcessRegion","description":"Cloud service provider and region where MongoDB Cloud performs stream processing. See data process region.\n"},"hostnames":{"type":"array","items":{"type":"string"},"description":"List that contains the hostnames assigned to the stream workspace.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"streamConfig":{"$ref":"#/types/mongodbatlas:index/StreamWorkspaceStreamConfig:StreamWorkspaceStreamConfig","description":"Configuration options for an Atlas Stream Processing Instance. See stream config\n"},"workspaceName":{"type":"string","description":"Label that identifies the stream workspace.\n"}},"type":"object"}},"mongodbatlas:index/team:Team":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Team`\" pulumi-lang-dotnet=\"`mongodbatlas.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`mongodbatlas.Team`\" pulumi-lang-java=\"`mongodbatlas.Team`\"\u003e`mongodbatlas.Team`\u003c/span\u003e provides a Team resource. The resource lets you create, edit and delete Teams. Also, Teams can be assigned to multiple projects, and team members’ access to the project is determined by the team’s project role.\n\n\u003e **IMPORTANT:** MongoDB Atlas Team are limited to a maximum of 250 teams in an organization and 100 teams per project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.Team(\"test\", {\n    orgId: \"\u003cORGANIZATION-ID\u003e\",\n    name: \"myNewTeam\",\n    usernames: [\n        \"user1@email.com\",\n        \"user2@email.com\",\n        \"user3@email.com\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.Team(\"test\",\n    org_id=\"\u003cORGANIZATION-ID\u003e\",\n    name=\"myNewTeam\",\n    usernames=[\n        \"user1@email.com\",\n        \"user2@email.com\",\n        \"user3@email.com\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.Team(\"test\", new()\n    {\n        OrgId = \"\u003cORGANIZATION-ID\u003e\",\n        Name = \"myNewTeam\",\n        Usernames = new[]\n        {\n            \"user1@email.com\",\n            \"user2@email.com\",\n            \"user3@email.com\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewTeam(ctx, \"test\", \u0026mongodbatlas.TeamArgs{\n\t\t\tOrgId: pulumi.String(\"\u003cORGANIZATION-ID\u003e\"),\n\t\t\tName:  pulumi.String(\"myNewTeam\"),\n\t\t\tUsernames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"user1@email.com\"),\n\t\t\t\tpulumi.String(\"user2@email.com\"),\n\t\t\t\tpulumi.String(\"user3@email.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Team;\nimport com.pulumi.mongodbatlas.TeamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Team(\"test\", TeamArgs.builder()\n            .orgId(\"\u003cORGANIZATION-ID\u003e\")\n            .name(\"myNewTeam\")\n            .usernames(            \n                \"user1@email.com\",\n                \"user2@email.com\",\n                \"user3@email.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:Team\n    properties:\n      orgId: \u003cORGANIZATION-ID\u003e\n      name: myNewTeam\n      usernames:\n        - user1@email.com\n        - user2@email.com\n        - user3@email.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Team and user assignment (module maintainer) v1\n- Team and user assignment (module maintainer) v2\n\n## Import\n\nTeams can be imported using the organization ID and team id, in the format ORGID-TEAMID, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/team:Team my_team 1112222b3bf99403840e8934-1112222b3bf99403840e8935\n```\n\nSee detailed information for arguments and attributes: [MongoDB API Teams](https://docs.atlas.mongodb.com/reference/api/teams-create-one/)\n\n","properties":{"name":{"type":"string","description":"The name of the team you want to create.\n"},"orgId":{"type":"string","description":"The unique identifier for the organization you want to associate the team with.\n"},"teamId":{"type":"string","description":"The unique identifier for the team.\n"},"usernames":{"type":"array","items":{"type":"string"},"description":"**(DEPRECATED)** (Optional) The Atlas usernames (email address). You can only add Atlas users who are part of the organization. Users who have not accepted an invitation to join the organization cannot be added as team members. There is a maximum of 250 Atlas users per team. This attribute is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-go=\"`CloudUserTeamAssignment`\" pulumi-lang-python=\"`CloudUserTeamAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserTeamAssignment`\"\u003e`mongodbatlas.CloudUserTeamAssignment`\u003c/span\u003e. For more details, see Migration Guide: Team Usernames Attribute to Cloud User Team Assignment.\n","deprecationMessage":"This parameter is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-go=\"`CloudUserTeamAssignment`\" pulumi-lang-python=\"`CloudUserTeamAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserTeamAssignment`\"\u003e`mongodbatlas.CloudUserTeamAssignment`\u003c/span\u003e. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management."}},"required":["name","orgId","teamId","usernames"],"inputProperties":{"name":{"type":"string","description":"The name of the team you want to create.\n"},"orgId":{"type":"string","description":"The unique identifier for the organization you want to associate the team with.\n","willReplaceOnChanges":true},"usernames":{"type":"array","items":{"type":"string"},"description":"**(DEPRECATED)** (Optional) The Atlas usernames (email address). You can only add Atlas users who are part of the organization. Users who have not accepted an invitation to join the organization cannot be added as team members. There is a maximum of 250 Atlas users per team. This attribute is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-go=\"`CloudUserTeamAssignment`\" pulumi-lang-python=\"`CloudUserTeamAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserTeamAssignment`\"\u003e`mongodbatlas.CloudUserTeamAssignment`\u003c/span\u003e. For more details, see Migration Guide: Team Usernames Attribute to Cloud User Team Assignment.\n","deprecationMessage":"This parameter is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-go=\"`CloudUserTeamAssignment`\" pulumi-lang-python=\"`CloudUserTeamAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserTeamAssignment`\"\u003e`mongodbatlas.CloudUserTeamAssignment`\u003c/span\u003e. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management."}},"requiredInputs":["orgId"],"stateInputs":{"description":"Input properties used for looking up and filtering Team resources.\n","properties":{"name":{"type":"string","description":"The name of the team you want to create.\n"},"orgId":{"type":"string","description":"The unique identifier for the organization you want to associate the team with.\n","willReplaceOnChanges":true},"teamId":{"type":"string","description":"The unique identifier for the team.\n"},"usernames":{"type":"array","items":{"type":"string"},"description":"**(DEPRECATED)** (Optional) The Atlas usernames (email address). You can only add Atlas users who are part of the organization. Users who have not accepted an invitation to join the organization cannot be added as team members. There is a maximum of 250 Atlas users per team. This attribute is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-go=\"`CloudUserTeamAssignment`\" pulumi-lang-python=\"`CloudUserTeamAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserTeamAssignment`\"\u003e`mongodbatlas.CloudUserTeamAssignment`\u003c/span\u003e. For more details, see Migration Guide: Team Usernames Attribute to Cloud User Team Assignment.\n","deprecationMessage":"This parameter is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-go=\"`CloudUserTeamAssignment`\" pulumi-lang-python=\"`CloudUserTeamAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserTeamAssignment`\"\u003e`mongodbatlas.CloudUserTeamAssignment`\u003c/span\u003e. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management."}},"type":"object"}},"mongodbatlas:index/teamProjectAssignment:TeamProjectAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-go=\"`TeamProjectAssignment`\" pulumi-lang-python=\"`TeamProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.TeamProjectAssignment`\"\u003e`mongodbatlas.TeamProjectAssignment`\u003c/span\u003e provides a Team Project Assignment resource. It lets you manage the association between a team and a project, enabling you to import, assign, remove, or update the team's membership.\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisTeamProjectAssignment = new mongodbatlas.TeamProjectAssignment(\"this\", {\n    projectId: projectId,\n    teamId: teamId,\n    roleNames: [\n        \"GROUP_OWNER\",\n        \"GROUP_DATA_ACCESS_ADMIN\",\n    ],\n});\nconst _this = mongodbatlas.getTeamProjectAssignmentOutput({\n    projectId: thisTeamProjectAssignment.projectId,\n    teamId: thisTeamProjectAssignment.teamId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_team_project_assignment = mongodbatlas.TeamProjectAssignment(\"this\",\n    project_id=project_id,\n    team_id=team_id,\n    role_names=[\n        \"GROUP_OWNER\",\n        \"GROUP_DATA_ACCESS_ADMIN\",\n    ])\nthis = mongodbatlas.get_team_project_assignment_output(project_id=this_team_project_assignment.project_id,\n    team_id=this_team_project_assignment.team_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisTeamProjectAssignment = new Mongodbatlas.TeamProjectAssignment(\"this\", new()\n    {\n        ProjectId = projectId,\n        TeamId = teamId,\n        RoleNames = new[]\n        {\n            \"GROUP_OWNER\",\n            \"GROUP_DATA_ACCESS_ADMIN\",\n        },\n    });\n\n    var @this = Mongodbatlas.GetTeamProjectAssignment.Invoke(new()\n    {\n        ProjectId = thisTeamProjectAssignment.ProjectId,\n        TeamId = thisTeamProjectAssignment.TeamId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisTeamProjectAssignment, err := mongodbatlas.NewTeamProjectAssignment(ctx, \"this\", \u0026mongodbatlas.TeamProjectAssignmentArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tTeamId:    pulumi.Any(teamId),\n\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_OWNER\"),\n\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_ADMIN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupTeamProjectAssignmentOutput(ctx, mongodbatlas.GetTeamProjectAssignmentOutputArgs{\n\t\t\tProjectId: thisTeamProjectAssignment.ProjectId,\n\t\t\tTeamId:    thisTeamProjectAssignment.TeamId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.TeamProjectAssignment;\nimport com.pulumi.mongodbatlas.TeamProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetTeamProjectAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisTeamProjectAssignment = new TeamProjectAssignment(\"thisTeamProjectAssignment\", TeamProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .teamId(teamId)\n            .roleNames(            \n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\")\n            .build());\n\n        final var this = MongodbatlasFunctions.getTeamProjectAssignment(GetTeamProjectAssignmentArgs.builder()\n            .projectId(thisTeamProjectAssignment.projectId())\n            .teamId(thisTeamProjectAssignment.teamId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisTeamProjectAssignment:\n    type: mongodbatlas:TeamProjectAssignment\n    name: this\n    properties:\n      projectId: ${projectId}\n      teamId: ${teamId}\n      roleNames:\n        - GROUP_OWNER\n        - GROUP_DATA_ACCESS_ADMIN\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getTeamProjectAssignment\n      arguments:\n        projectId: ${thisTeamProjectAssignment.projectId}\n        teamId: ${thisTeamProjectAssignment.teamId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Team Project Assignment\n\n## Import\n\nTeam Project Assignment resource can be imported using the Project ID \u0026 TeamID, in the format `PROJECT_ID/TEAM_ID`.\n\n```sh\n$ pulumi import mongodbatlas:index/teamProjectAssignment:TeamProjectAssignment test 9f3a7c2e54b8d1a0e6f4b3c2/a4d9f7b18e52c0fa36b7e9cd\n```\n\nFor more information, see: [MongoDB Atlas API - Teams](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-addallteamstoproject) Documentation.\n\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles assigned to the team."},"teamId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the team."}},"required":["projectId","roleNames","teamId"],"inputProperties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles assigned to the team."},"teamId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the team."}},"requiredInputs":["projectId","roleNames","teamId"],"stateInputs":{"description":"Input properties used for looking up and filtering TeamProjectAssignment resources.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n"},"roleNames":{"type":"array","items":{"type":"string"},"description":"One or more project-level roles assigned to the team."},"teamId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the team."}},"type":"object"}},"mongodbatlas:index/thirdPartyIntegration:ThirdPartyIntegration":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ThirdPartyIntegration`\" pulumi-lang-dotnet=\"`mongodbatlas.ThirdPartyIntegration`\" pulumi-lang-go=\"`ThirdPartyIntegration`\" pulumi-lang-python=\"`ThirdPartyIntegration`\" pulumi-lang-yaml=\"`mongodbatlas.ThirdPartyIntegration`\" pulumi-lang-java=\"`mongodbatlas.ThirdPartyIntegration`\"\u003e`mongodbatlas.ThirdPartyIntegration`\u003c/span\u003e Provides a Third-Party Integration Settings for the given type.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **NOTE:** Slack integrations now use the OAuth2 verification method and must be initially configured, or updated from a legacy integration, through the Atlas third-party service integrations page. Legacy tokens will soon no longer be supported.[Read more about slack setup](https://docs.atlas.mongodb.com/tutorial/third-party-service-integrations/)\n\n\u003e **IMPORTANT** Each project can only have one configuration per integration \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e.\n\n\u003e **IMPORTANT:** All arguments including the secrets will be stored in the raw state as plain-text. Read more about sensitive data in state.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testDatadog = new mongodbatlas.ThirdPartyIntegration(\"test_datadog\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    type: \"DATADOG\",\n    apiKey: \"\u003cAPI-KEY\u003e\",\n    region: \"\u003cREGION\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_datadog = mongodbatlas.ThirdPartyIntegration(\"test_datadog\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    type=\"DATADOG\",\n    api_key=\"\u003cAPI-KEY\u003e\",\n    region=\"\u003cREGION\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testDatadog = new Mongodbatlas.ThirdPartyIntegration(\"test_datadog\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Type = \"DATADOG\",\n        ApiKey = \"\u003cAPI-KEY\u003e\",\n        Region = \"\u003cREGION\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewThirdPartyIntegration(ctx, \"test_datadog\", \u0026mongodbatlas.ThirdPartyIntegrationArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tType:      pulumi.String(\"DATADOG\"),\n\t\t\tApiKey:    pulumi.String(\"\u003cAPI-KEY\u003e\"),\n\t\t\tRegion:    pulumi.String(\"\u003cREGION\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ThirdPartyIntegration;\nimport com.pulumi.mongodbatlas.ThirdPartyIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testDatadog = new ThirdPartyIntegration(\"testDatadog\", ThirdPartyIntegrationArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .type(\"DATADOG\")\n            .apiKey(\"\u003cAPI-KEY\u003e\")\n            .region(\"\u003cREGION\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testDatadog:\n    type: mongodbatlas:ThirdPartyIntegration\n    name: test_datadog\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      type: DATADOG\n      apiKey: \u003cAPI-KEY\u003e\n      region: \u003cREGION\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Third-Party Integration Examples\n\n## Import\n\nThird-Party Integration Settings can be imported using project ID and the integration type, in the format \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e-\u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/thirdPartyIntegration:ThirdPartyIntegration test_datadog 1112222b3bf99403840e8934-DATADOG\n```\n\nSee [MongoDB Atlas API](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Third-Party-Integrations/operation/createThirdPartyIntegration) Documentation for more information.\n\n","properties":{"apiKey":{"type":"string","secret":true},"channelName":{"type":"string"},"enabled":{"type":"boolean"},"microsoftTeamsWebhookUrl":{"type":"string","secret":true},"password":{"type":"string","secret":true},"projectId":{"type":"string","description":"The unique ID for the project to get all Third-Party service integrations\n"},"region":{"type":"string"},"routingKey":{"type":"string","secret":true},"secret":{"type":"string","secret":true},"sendCollectionLatencyMetrics":{"type":"boolean"},"sendDatabaseMetrics":{"type":"boolean"},"sendQueryStatsMetrics":{"type":"boolean"},"sendUserProvidedResourceTags":{"type":"boolean"},"serviceDiscovery":{"type":"string","secret":true},"serviceKey":{"type":"string","secret":true},"teamName":{"type":"string"},"type":{"type":"string","description":"Third-Party Integration Settings type \n* PAGER_DUTY\n* DATADOG\n* OPS_GENIE\n* VICTOR_OPS\n* WEBHOOK\n* MICROSOFT_TEAMS\n* PROMETHEUS\n\n\n* `PAGER_DUTY`\n"},"url":{"type":"string"},"userName":{"type":"string","secret":true}},"required":["apiKey","channelName","enabled","microsoftTeamsWebhookUrl","password","projectId","region","routingKey","sendCollectionLatencyMetrics","sendDatabaseMetrics","sendQueryStatsMetrics","sendUserProvidedResourceTags","serviceDiscovery","serviceKey","teamName","type","url","userName"],"inputProperties":{"apiKey":{"type":"string","secret":true},"channelName":{"type":"string"},"enabled":{"type":"boolean"},"microsoftTeamsWebhookUrl":{"type":"string","secret":true},"password":{"type":"string","secret":true},"projectId":{"type":"string","description":"The unique ID for the project to get all Third-Party service integrations\n","willReplaceOnChanges":true},"region":{"type":"string"},"routingKey":{"type":"string","secret":true},"secret":{"type":"string","secret":true},"sendCollectionLatencyMetrics":{"type":"boolean"},"sendDatabaseMetrics":{"type":"boolean"},"sendQueryStatsMetrics":{"type":"boolean"},"sendUserProvidedResourceTags":{"type":"boolean"},"serviceDiscovery":{"type":"string","secret":true},"serviceKey":{"type":"string","secret":true},"teamName":{"type":"string"},"type":{"type":"string","description":"Third-Party Integration Settings type \n* PAGER_DUTY\n* DATADOG\n* OPS_GENIE\n* VICTOR_OPS\n* WEBHOOK\n* MICROSOFT_TEAMS\n* PROMETHEUS\n\n\n* `PAGER_DUTY`\n","willReplaceOnChanges":true},"url":{"type":"string"},"userName":{"type":"string","secret":true}},"requiredInputs":["projectId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering ThirdPartyIntegration resources.\n","properties":{"apiKey":{"type":"string","secret":true},"channelName":{"type":"string"},"enabled":{"type":"boolean"},"microsoftTeamsWebhookUrl":{"type":"string","secret":true},"password":{"type":"string","secret":true},"projectId":{"type":"string","description":"The unique ID for the project to get all Third-Party service integrations\n","willReplaceOnChanges":true},"region":{"type":"string"},"routingKey":{"type":"string","secret":true},"secret":{"type":"string","secret":true},"sendCollectionLatencyMetrics":{"type":"boolean"},"sendDatabaseMetrics":{"type":"boolean"},"sendQueryStatsMetrics":{"type":"boolean"},"sendUserProvidedResourceTags":{"type":"boolean"},"serviceDiscovery":{"type":"string","secret":true},"serviceKey":{"type":"string","secret":true},"teamName":{"type":"string"},"type":{"type":"string","description":"Third-Party Integration Settings type \n* PAGER_DUTY\n* DATADOG\n* OPS_GENIE\n* VICTOR_OPS\n* WEBHOOK\n* MICROSOFT_TEAMS\n* PROMETHEUS\n\n\n* `PAGER_DUTY`\n","willReplaceOnChanges":true},"url":{"type":"string"},"userName":{"type":"string","secret":true}},"type":"object"}},"mongodbatlas:index/x509AuthenticationDatabaseUser:X509AuthenticationDatabaseUser":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.X509AuthenticationDatabaseUser`\" pulumi-lang-dotnet=\"`mongodbatlas.X509AuthenticationDatabaseUser`\" pulumi-lang-go=\"`X509AuthenticationDatabaseUser`\" pulumi-lang-python=\"`X509AuthenticationDatabaseUser`\" pulumi-lang-yaml=\"`mongodbatlas.X509AuthenticationDatabaseUser`\" pulumi-lang-java=\"`mongodbatlas.X509AuthenticationDatabaseUser`\"\u003e`mongodbatlas.X509AuthenticationDatabaseUser`\u003c/span\u003e provides a X509 Authentication Database User resource. The\u003cspan pulumi-lang-nodejs=\" mongodbatlas.X509AuthenticationDatabaseUser \" pulumi-lang-dotnet=\" mongodbatlas.X509AuthenticationDatabaseUser \" pulumi-lang-go=\" X509AuthenticationDatabaseUser \" pulumi-lang-python=\" X509AuthenticationDatabaseUser \" pulumi-lang-yaml=\" mongodbatlas.X509AuthenticationDatabaseUser \" pulumi-lang-java=\" mongodbatlas.X509AuthenticationDatabaseUser \"\u003e mongodbatlas.X509AuthenticationDatabaseUser \u003c/span\u003eresource lets you manage MongoDB users who authenticate using X.509 certificates. You can manage these X.509 certificates or let Atlas do it for you.\n\n| Management  | Description  |\n|---|---|\n| Atlas  | Atlas manages your Certificate Authority and can generate certificates for your MongoDB users. No additional X.509 configuration is required.  |\n| Customer  |  You must provide a Certificate Authority and generate certificates for your MongoDB users. |\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\u003e **NOTE:** Before provider version 1.14.0, Self-managed X.509 Authentication was disabled for the project when this resource was deleted. Starting from that version onward, it will not be disabled, allowing other users to continue using X.509 within the same project.\n\n## Example Usage\n\n### S\n\n### Example Usage: Generate an Atlas-managed X.509 certificate for a MongoDB user\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst user = new mongodbatlas.DatabaseUser(\"user\", {\n    projectId: \"64b926dd56206839b1c8bae9\",\n    username: \"myUsername\",\n    x509Type: \"MANAGED\",\n    databaseName: \"$external\",\n    roles: [{\n        roleName: \"atlasAdmin\",\n        databaseName: \"admin\",\n    }],\n    labels: [{\n        key: \"My Key\",\n        value: \"My Value\",\n    }],\n});\nconst test = new mongodbatlas.X509AuthenticationDatabaseUser(\"test\", {\n    projectId: user.projectId,\n    username: user.username,\n    monthsUntilExpiration: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nuser = mongodbatlas.DatabaseUser(\"user\",\n    project_id=\"64b926dd56206839b1c8bae9\",\n    username=\"myUsername\",\n    x509_type=\"MANAGED\",\n    database_name=\"$external\",\n    roles=[{\n        \"role_name\": \"atlasAdmin\",\n        \"database_name\": \"admin\",\n    }],\n    labels=[{\n        \"key\": \"My Key\",\n        \"value\": \"My Value\",\n    }])\ntest = mongodbatlas.X509AuthenticationDatabaseUser(\"test\",\n    project_id=user.project_id,\n    username=user.username,\n    months_until_expiration=2)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user = new Mongodbatlas.DatabaseUser(\"user\", new()\n    {\n        ProjectId = \"64b926dd56206839b1c8bae9\",\n        Username = \"myUsername\",\n        X509Type = \"MANAGED\",\n        DatabaseName = \"$external\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"atlasAdmin\",\n                DatabaseName = \"admin\",\n            },\n        },\n        Labels = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserLabelArgs\n            {\n                Key = \"My Key\",\n                Value = \"My Value\",\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.X509AuthenticationDatabaseUser(\"test\", new()\n    {\n        ProjectId = user.ProjectId,\n        Username = user.Username,\n        MonthsUntilExpiration = 2,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser, err := mongodbatlas.NewDatabaseUser(ctx, \"user\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tProjectId:    pulumi.String(\"64b926dd56206839b1c8bae9\"),\n\t\t\tUsername:     pulumi.String(\"myUsername\"),\n\t\t\tX509Type:     pulumi.String(\"MANAGED\"),\n\t\t\tDatabaseName: \"$external\",\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"atlasAdmin\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: mongodbatlas.DatabaseUserLabelArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"My Key\"),\n\t\t\t\t\tValue: pulumi.String(\"My Value\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewX509AuthenticationDatabaseUser(ctx, \"test\", \u0026mongodbatlas.X509AuthenticationDatabaseUserArgs{\n\t\t\tProjectId:             user.ProjectId,\n\t\t\tUsername:              user.Username,\n\t\t\tMonthsUntilExpiration: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserLabelArgs;\nimport com.pulumi.mongodbatlas.X509AuthenticationDatabaseUser;\nimport com.pulumi.mongodbatlas.X509AuthenticationDatabaseUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user = new DatabaseUser(\"user\", DatabaseUserArgs.builder()\n            .projectId(\"64b926dd56206839b1c8bae9\")\n            .username(\"myUsername\")\n            .x509Type(\"MANAGED\")\n            .databaseName(\"$external\")\n            .roles(DatabaseUserRoleArgs.builder()\n                .roleName(\"atlasAdmin\")\n                .databaseName(\"admin\")\n                .build())\n            .labels(DatabaseUserLabelArgs.builder()\n                .key(\"My Key\")\n                .value(\"My Value\")\n                .build())\n            .build());\n\n        var test = new X509AuthenticationDatabaseUser(\"test\", X509AuthenticationDatabaseUserArgs.builder()\n            .projectId(user.projectId())\n            .username(user.username())\n            .monthsUntilExpiration(2)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: mongodbatlas:DatabaseUser\n    properties:\n      projectId: 64b926dd56206839b1c8bae9\n      username: myUsername\n      x509Type: MANAGED\n      databaseName: $external\n      roles:\n        - roleName: atlasAdmin\n          databaseName: admin\n      labels:\n        - key: My Key\n          value: My Value\n  test:\n    type: mongodbatlas:X509AuthenticationDatabaseUser\n    properties:\n      projectId: ${user.projectId}\n      username: ${user.username}\n      monthsUntilExpiration: 2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Usage: Save a self-managed X.509 certificate for an Atlas project and use it with a dababase user\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.X509AuthenticationDatabaseUser(\"test\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    customerX509Cas: `-----BEGIN CERTIFICATE-----\nMIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\nc3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\nSIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\nMDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\nVGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\nBAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\nc3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\niQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\ncURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\nFh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\niul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n-----END CERTIFICATE-----\\\\\"\n`,\n});\nconst user = new mongodbatlas.DatabaseUser(\"user\", {\n    projectId: \"64b926dd56206839b1c8bae9\",\n    username: \"myUsername\",\n    x509Type: \"CUSTOMER\",\n    databaseName: \"$external\",\n    roles: [{\n        roleName: \"atlasAdmin\",\n        databaseName: \"admin\",\n    }],\n    labels: [{\n        key: \"My Key\",\n        value: \"My Value\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.X509AuthenticationDatabaseUser(\"test\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    customer_x509_cas=\"\"\"-----BEGIN CERTIFICATE-----\nMIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\nc3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\nSIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\nMDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\nVGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\nBAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\nc3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\niQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\ncURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\nFh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\niul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n-----END CERTIFICATE-----\\\"\n\"\"\")\nuser = mongodbatlas.DatabaseUser(\"user\",\n    project_id=\"64b926dd56206839b1c8bae9\",\n    username=\"myUsername\",\n    x509_type=\"CUSTOMER\",\n    database_name=\"$external\",\n    roles=[{\n        \"role_name\": \"atlasAdmin\",\n        \"database_name\": \"admin\",\n    }],\n    labels=[{\n        \"key\": \"My Key\",\n        \"value\": \"My Value\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.X509AuthenticationDatabaseUser(\"test\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        CustomerX509Cas = @\"-----BEGIN CERTIFICATE-----\nMIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\nc3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\nSIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\nMDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\nVGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\nBAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\nc3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\niQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\ncURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\nFh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\niul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n-----END CERTIFICATE-----\\\"\"\n\",\n    });\n\n    var user = new Mongodbatlas.DatabaseUser(\"user\", new()\n    {\n        ProjectId = \"64b926dd56206839b1c8bae9\",\n        Username = \"myUsername\",\n        X509Type = \"CUSTOMER\",\n        DatabaseName = \"$external\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"atlasAdmin\",\n                DatabaseName = \"admin\",\n            },\n        },\n        Labels = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserLabelArgs\n            {\n                Key = \"My Key\",\n                Value = \"My Value\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewX509AuthenticationDatabaseUser(ctx, \"test\", \u0026mongodbatlas.X509AuthenticationDatabaseUserArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tCustomerX509Cas: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\nc3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\nSIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\nMDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\nVGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\nBAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\nc3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\niQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\ncURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\nFh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\niul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n-----END CERTIFICATE-----\\\"\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewDatabaseUser(ctx, \"user\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tProjectId:    pulumi.String(\"64b926dd56206839b1c8bae9\"),\n\t\t\tUsername:     pulumi.String(\"myUsername\"),\n\t\t\tX509Type:     pulumi.String(\"CUSTOMER\"),\n\t\t\tDatabaseName: \"$external\",\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"atlasAdmin\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: mongodbatlas.DatabaseUserLabelArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"My Key\"),\n\t\t\t\t\tValue: pulumi.String(\"My Value\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.X509AuthenticationDatabaseUser;\nimport com.pulumi.mongodbatlas.X509AuthenticationDatabaseUserArgs;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserLabelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new X509AuthenticationDatabaseUser(\"test\", X509AuthenticationDatabaseUserArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .customerX509Cas(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\nc3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\nSIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\nMDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\nVGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\nBAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\nc3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\niQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\ncURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\nFh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\niul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n-----END CERTIFICATE-----\\\"\n            \"\"\")\n            .build());\n\n        var user = new DatabaseUser(\"user\", DatabaseUserArgs.builder()\n            .projectId(\"64b926dd56206839b1c8bae9\")\n            .username(\"myUsername\")\n            .x509Type(\"CUSTOMER\")\n            .databaseName(\"$external\")\n            .roles(DatabaseUserRoleArgs.builder()\n                .roleName(\"atlasAdmin\")\n                .databaseName(\"admin\")\n                .build())\n            .labels(DatabaseUserLabelArgs.builder()\n                .key(\"My Key\")\n                .value(\"My Value\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:X509AuthenticationDatabaseUser\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      customerX509Cas: |\n        -----BEGIN CERTIFICATE-----\n        MIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\n        VVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\n        c3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\n        SIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\n        MDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\n        VGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\n        BAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\n        c3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\n        iQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\n        cURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\n        Fh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\n        SIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n        7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\n        iul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n        -----END CERTIFICATE-----\\\"\n  user:\n    type: mongodbatlas:DatabaseUser\n    properties:\n      projectId: 64b926dd56206839b1c8bae9\n      username: myUsername\n      x509Type: CUSTOMER\n      databaseName: $external\n      roles:\n        - roleName: atlasAdmin\n          databaseName: admin\n      labels:\n        - key: My Key\n          value: My Value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nX.509 Certificates for a User can be imported using project ID and username, in the format `project_id-username`, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/x509AuthenticationDatabaseUser:X509AuthenticationDatabaseUser test 1112222b3bf99403840e8934-myUsername\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/x509-configuration-get-certificates/)\n\n\nCurrent X.509 Configuration can be imported using project ID, in the format \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import mongodbatlas:index/x509AuthenticationDatabaseUser:X509AuthenticationDatabaseUser test 1112222b3bf99403840e8934\n```\n\nFor more information see: [MongoDB Atlas API Reference.](https://docs.atlas.mongodb.com/reference/api/x509-configuration-get-certificates/)\n\n","properties":{"certificates":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/X509AuthenticationDatabaseUserCertificate:X509AuthenticationDatabaseUserCertificate"},"description":"Array of objects where each details one unexpired database user certificate.\n"},"currentCertificate":{"type":"string","description":"Contains the last X.509 certificate and private key created for a database user.\n","secret":true},"customerX509Cas":{"type":"string","description":"PEM string containing one or more customer CAs for database user authentication.\n","secret":true},"monthsUntilExpiration":{"type":"integer","description":"A number of months that the created certificate is valid for before expiry, up to 24 months. By default is 3.\n"},"projectId":{"type":"string","description":"Identifier for the Atlas project associated with the X.509 configuration.\n"},"username":{"type":"string","description":"Username of the database user to create a certificate for.\n"}},"required":["certificates","currentCertificate","projectId"],"inputProperties":{"customerX509Cas":{"type":"string","description":"PEM string containing one or more customer CAs for database user authentication.\n","secret":true,"willReplaceOnChanges":true},"monthsUntilExpiration":{"type":"integer","description":"A number of months that the created certificate is valid for before expiry, up to 24 months. By default is 3.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"Identifier for the Atlas project associated with the X.509 configuration.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"Username of the database user to create a certificate for.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering X509AuthenticationDatabaseUser resources.\n","properties":{"certificates":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/X509AuthenticationDatabaseUserCertificate:X509AuthenticationDatabaseUserCertificate"},"description":"Array of objects where each details one unexpired database user certificate.\n"},"currentCertificate":{"type":"string","description":"Contains the last X.509 certificate and private key created for a database user.\n","secret":true},"customerX509Cas":{"type":"string","description":"PEM string containing one or more customer CAs for database user authentication.\n","secret":true,"willReplaceOnChanges":true},"monthsUntilExpiration":{"type":"integer","description":"A number of months that the created certificate is valid for before expiry, up to 24 months. By default is 3.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"Identifier for the Atlas project associated with the X.509 configuration.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"Username of the database user to create a certificate for.\n","willReplaceOnChanges":true}},"type":"object"}}},"functions":{"mongodbatlas:index/getAccessListApiKey:getAccessListApiKey":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AccessListApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.AccessListApiKey`\" pulumi-lang-go=\"`AccessListApiKey`\" pulumi-lang-python=\"`AccessListApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.AccessListApiKey`\" pulumi-lang-java=\"`mongodbatlas.AccessListApiKey`\"\u003e`mongodbatlas.AccessListApiKey`\u003c/span\u003e describes an Access List API Key entry resource. The access list grants access from IPs or CIDRs to clusters within the Project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **IMPORTANT:**\nWhen you remove an entry from the access list, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider, hence a change will force the destruction and recreation of entries.   \n\n\u003e **IMPORTANT WARNING:** Managing Atlas Programmatic API Keys (PAKs) with Terraform will expose sensitive organizational secrets in Terraform's state. We suggest following Terraform's best practices. You may also want to consider managing your PAKs via a more secure method, such as the [HashiCorp Vault MongoDB Atlas Secrets Engine](https://developer.hashicorp.com/vault/docs/secrets/mongodbatlas).\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testAccessListApiKey = new mongodbatlas.AccessListApiKey(\"test\", {\n    orgId: \"\u003cORG_ID\u003e\",\n    ipAddress: \"2.3.4.5\",\n    apiKeyId: \"a29120e123cd\",\n});\nconst test = mongodbatlas.getAccessListApiKeyOutput({\n    orgId: testAccessListApiKey.orgId,\n    ipAddress: testAccessListApiKey.ipAddress,\n    apiKeyId: testAccessListApiKey.apiKeyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_access_list_api_key = mongodbatlas.AccessListApiKey(\"test\",\n    org_id=\"\u003cORG_ID\u003e\",\n    ip_address=\"2.3.4.5\",\n    api_key_id=\"a29120e123cd\")\ntest = mongodbatlas.get_access_list_api_key_output(org_id=test_access_list_api_key.org_id,\n    ip_address=test_access_list_api_key.ip_address,\n    api_key_id=test_access_list_api_key.api_key_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testAccessListApiKey = new Mongodbatlas.AccessListApiKey(\"test\", new()\n    {\n        OrgId = \"\u003cORG_ID\u003e\",\n        IpAddress = \"2.3.4.5\",\n        ApiKeyId = \"a29120e123cd\",\n    });\n\n    var test = Mongodbatlas.GetAccessListApiKey.Invoke(new()\n    {\n        OrgId = testAccessListApiKey.OrgId,\n        IpAddress = testAccessListApiKey.IpAddress,\n        ApiKeyId = testAccessListApiKey.ApiKeyId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestAccessListApiKey, err := mongodbatlas.NewAccessListApiKey(ctx, \"test\", \u0026mongodbatlas.AccessListApiKeyArgs{\n\t\t\tOrgId:     pulumi.String(\"\u003cORG_ID\u003e\"),\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t\tApiKeyId:  pulumi.String(\"a29120e123cd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAccessListApiKeyOutput(ctx, mongodbatlas.GetAccessListApiKeyOutputArgs{\n\t\t\tOrgId:     testAccessListApiKey.OrgId,\n\t\t\tIpAddress: testAccessListApiKey.IpAddress,\n\t\t\tApiKeyId:  testAccessListApiKey.ApiKeyId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AccessListApiKey;\nimport com.pulumi.mongodbatlas.AccessListApiKeyArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAccessListApiKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testAccessListApiKey = new AccessListApiKey(\"testAccessListApiKey\", AccessListApiKeyArgs.builder()\n            .orgId(\"\u003cORG_ID\u003e\")\n            .ipAddress(\"2.3.4.5\")\n            .apiKeyId(\"a29120e123cd\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getAccessListApiKey(GetAccessListApiKeyArgs.builder()\n            .orgId(testAccessListApiKey.orgId())\n            .ipAddress(testAccessListApiKey.ipAddress())\n            .apiKeyId(testAccessListApiKey.apiKeyId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testAccessListApiKey:\n    type: mongodbatlas:AccessListApiKey\n    name: test\n    properties:\n      orgId: \u003cORG_ID\u003e\n      ipAddress: 2.3.4.5\n      apiKeyId: a29120e123cd\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getAccessListApiKey\n      arguments:\n        orgId: ${testAccessListApiKey.orgId}\n        ipAddress: ${testAccessListApiKey.ipAddress}\n        apiKeyId: ${testAccessListApiKey.apiKeyId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccessListApiKey.\n","properties":{"apiKeyId":{"type":"string","description":"Unique identifier for the Organization API Key for which you want to retrieve an access list entry.\n"},"ipAddress":{"type":"string","description":"IP address to retrieve from the access list.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"type":"object","required":["apiKeyId","ipAddress","orgId"]},"outputs":{"description":"A collection of values returned by getAccessListApiKey.\n","properties":{"accessCount":{"description":"Total number of requests that have originated from this IP address or CIDR block.\n","type":"integer"},"apiKeyId":{"type":"string"},"cidrBlock":{"description":"Range of IP addresses in CIDR notation included in the API Key access list.\n","type":"string"},"created":{"description":"Date and time when the access list entry was created.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"type":"string"},"lastUsed":{"description":"Date and time when the API key was last used from this IP address or CIDR block.\n","type":"string"},"lastUsedAddress":{"description":"IP address from which the last API request was made.\n","type":"string"},"orgId":{"type":"string"}},"required":["accessCount","apiKeyId","cidrBlock","created","ipAddress","lastUsed","lastUsedAddress","orgId","id"],"type":"object"}},"mongodbatlas:index/getAccessListApiKeys:getAccessListApiKeys":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAccessListApiKeys`\" pulumi-lang-dotnet=\"`mongodbatlas.getAccessListApiKeys`\" pulumi-lang-go=\"`getAccessListApiKeys`\" pulumi-lang-python=\"`get_access_list_api_keys`\" pulumi-lang-yaml=\"`mongodbatlas.getAccessListApiKeys`\" pulumi-lang-java=\"`mongodbatlas.getAccessListApiKeys`\"\u003e`mongodbatlas.getAccessListApiKeys`\u003c/span\u003e describes all Access List API Key entries. The access list grants access from IPs or CIDRs to clusters within the Project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **IMPORTANT:**\nWhen you remove an entry from the access list, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider, hence a change will force the destruction and recreation of entries.   \n\n\u003e **IMPORTANT WARNING:** Managing Atlas Programmatic API Keys (PAKs) with Terraform will expose sensitive organizational secrets in Terraform's state. We suggest following Terraform's best practices. You may also want to consider managing your PAKs via a more secure method, such as the [HashiCorp Vault MongoDB Atlas Secrets Engine](https://developer.hashicorp.com/vault/docs/secrets/mongodbatlas).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testAccessListApiKey = new mongodbatlas.AccessListApiKey(\"test\", {\n    orgId: \"\u003cORG_ID\u003e\",\n    cidrBlock: \"1.2.3.4/32\",\n    apiKeyId: \"a29120e123cd\",\n});\nconst test = mongodbatlas.getAccessListApiKeysOutput({\n    orgId: testAccessListApiKey.orgId,\n    apiKeyId: testAccessListApiKey.apiKeyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_access_list_api_key = mongodbatlas.AccessListApiKey(\"test\",\n    org_id=\"\u003cORG_ID\u003e\",\n    cidr_block=\"1.2.3.4/32\",\n    api_key_id=\"a29120e123cd\")\ntest = mongodbatlas.get_access_list_api_keys_output(org_id=test_access_list_api_key.org_id,\n    api_key_id=test_access_list_api_key.api_key_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testAccessListApiKey = new Mongodbatlas.AccessListApiKey(\"test\", new()\n    {\n        OrgId = \"\u003cORG_ID\u003e\",\n        CidrBlock = \"1.2.3.4/32\",\n        ApiKeyId = \"a29120e123cd\",\n    });\n\n    var test = Mongodbatlas.GetAccessListApiKeys.Invoke(new()\n    {\n        OrgId = testAccessListApiKey.OrgId,\n        ApiKeyId = testAccessListApiKey.ApiKeyId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestAccessListApiKey, err := mongodbatlas.NewAccessListApiKey(ctx, \"test\", \u0026mongodbatlas.AccessListApiKeyArgs{\n\t\t\tOrgId:     pulumi.String(\"\u003cORG_ID\u003e\"),\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t\tApiKeyId:  pulumi.String(\"a29120e123cd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAccessListApiKeysOutput(ctx, mongodbatlas.GetAccessListApiKeysOutputArgs{\n\t\t\tOrgId:    testAccessListApiKey.OrgId,\n\t\t\tApiKeyId: testAccessListApiKey.ApiKeyId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AccessListApiKey;\nimport com.pulumi.mongodbatlas.AccessListApiKeyArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAccessListApiKeysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testAccessListApiKey = new AccessListApiKey(\"testAccessListApiKey\", AccessListApiKeyArgs.builder()\n            .orgId(\"\u003cORG_ID\u003e\")\n            .cidrBlock(\"1.2.3.4/32\")\n            .apiKeyId(\"a29120e123cd\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getAccessListApiKeys(GetAccessListApiKeysArgs.builder()\n            .orgId(testAccessListApiKey.orgId())\n            .apiKeyId(testAccessListApiKey.apiKeyId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testAccessListApiKey:\n    type: mongodbatlas:AccessListApiKey\n    name: test\n    properties:\n      orgId: \u003cORG_ID\u003e\n      cidrBlock: 1.2.3.4/32\n      apiKeyId: a29120e123cd\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getAccessListApiKeys\n      arguments:\n        orgId: ${testAccessListApiKey.orgId}\n        apiKeyId: ${testAccessListApiKey.apiKeyId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAccessListApiKeys.\n","properties":{"apiKeyId":{"type":"string","description":"Unique identifier for the Organization API Key for which you want to retrieve access list entries.\n"},"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"}},"type":"object","required":["apiKeyId","orgId"]},"outputs":{"description":"A collection of values returned by getAccessListApiKeys.\n","properties":{"apiKeyId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"itemsPerPage":{"type":"integer"},"orgId":{"type":"string"},"pageNum":{"type":"integer"},"results":{"description":"A list of access list entries for the specified API key. Each entry contains the following attributes:\n","items":{"$ref":"#/types/mongodbatlas:index/getAccessListApiKeysResult:getAccessListApiKeysResult"},"type":"array"}},"required":["apiKeyId","orgId","results","id"],"type":"object"}},"mongodbatlas:index/getAdvancedCluster:getAdvancedCluster":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e describes an Advanced Cluster, including Flex clusters, for the specified name and project_id.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You might find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisAdvancedCluster = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"cluster-test\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M0\",\n            },\n            providerName: \"TENANT\",\n            backingProviderName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            priority: 7,\n        }],\n    }],\n});\nconst _this = mongodbatlas.getAdvancedClusterOutput({\n    projectId: thisAdvancedCluster.projectId,\n    name: thisAdvancedCluster.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_advanced_cluster = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"cluster-test\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M0\",\n            },\n            \"provider_name\": \"TENANT\",\n            \"backing_provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"priority\": 7,\n        }],\n    }])\nthis = mongodbatlas.get_advanced_cluster_output(project_id=this_advanced_cluster.project_id,\n    name=this_advanced_cluster.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"cluster-test\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M0\",\n                        },\n                        ProviderName = \"TENANT\",\n                        BackingProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        Priority = 7,\n                    },\n                },\n            },\n        },\n    });\n\n    var @this = Mongodbatlas.GetAdvancedCluster.Invoke(new()\n    {\n        ProjectId = thisAdvancedCluster.ProjectId,\n        Name = thisAdvancedCluster.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:        pulumi.String(\"cluster-test\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M0\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName:        pulumi.String(\"TENANT\"),\n\t\t\t\t\t\t\tBackingProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:          pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tPriority:            pulumi.Int(7),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAdvancedClusterOutput(ctx, mongodbatlas.GetAdvancedClusterOutputArgs{\n\t\t\tProjectId: thisAdvancedCluster.ProjectId,\n\t\t\tName:      thisAdvancedCluster.Name,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAdvancedClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisAdvancedCluster = new AdvancedCluster(\"thisAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"cluster-test\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M0\")\n                        .build())\n                    .providerName(\"TENANT\")\n                    .backingProviderName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .priority(7)\n                    .build())\n                .build())\n            .build());\n\n        final var this = MongodbatlasFunctions.getAdvancedCluster(GetAdvancedClusterArgs.builder()\n            .projectId(thisAdvancedCluster.projectId())\n            .name(thisAdvancedCluster.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: this\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: cluster-test\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M0\n              providerName: TENANT\n              backingProviderName: AWS\n              regionName: US_EAST_1\n              priority: 7\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getAdvancedCluster\n      arguments:\n        projectId: ${thisAdvancedCluster.projectId}\n        name: ${thisAdvancedCluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example using effective fields with auto-scaling\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisAdvancedCluster = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"auto-scale-cluster\",\n    clusterType: \"REPLICASET\",\n    useEffectiveFields: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n            autoScaling: {\n                computeEnabled: true,\n                computeScaleDownEnabled: true,\n                computeMinInstanceSize: \"M10\",\n                computeMaxInstanceSize: \"M30\",\n            },\n            providerName: \"AWS\",\n            priority: 7,\n            regionName: \"US_EAST_1\",\n        }],\n    }],\n});\n// Read effective values after Atlas auto-scales the cluster\nconst _this = mongodbatlas.getAdvancedClusterOutput({\n    projectId: thisAdvancedCluster.projectId,\n    name: thisAdvancedCluster.name,\n    useEffectiveFields: true,\n});\nexport const configuredInstanceSize = _this.apply(_this =\u003e _this.replicationSpecs?.[0]?.regionConfigs?.[0]?.electableSpecs?.instanceSize);\nexport const actualInstanceSize = _this.apply(_this =\u003e _this.replicationSpecs?.[0]?.regionConfigs?.[0]?.effectiveElectableSpecs?.instanceSize);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_advanced_cluster = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"auto-scale-cluster\",\n    cluster_type=\"REPLICASET\",\n    use_effective_fields=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n            \"auto_scaling\": {\n                \"compute_enabled\": True,\n                \"compute_scale_down_enabled\": True,\n                \"compute_min_instance_size\": \"M10\",\n                \"compute_max_instance_size\": \"M30\",\n            },\n            \"provider_name\": \"AWS\",\n            \"priority\": 7,\n            \"region_name\": \"US_EAST_1\",\n        }],\n    }])\n# Read effective values after Atlas auto-scales the cluster\nthis = mongodbatlas.get_advanced_cluster_output(project_id=this_advanced_cluster.project_id,\n    name=this_advanced_cluster.name,\n    use_effective_fields=True)\npulumi.export(\"configuredInstanceSize\", this.replication_specs[0].region_configs[0].electable_specs.instance_size)\npulumi.export(\"actualInstanceSize\", this.replication_specs[0].region_configs[0].effective_electable_specs.instance_size)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"auto-scale-cluster\",\n        ClusterType = \"REPLICASET\",\n        UseEffectiveFields = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                        AutoScaling = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigAutoScalingArgs\n                        {\n                            ComputeEnabled = true,\n                            ComputeScaleDownEnabled = true,\n                            ComputeMinInstanceSize = \"M10\",\n                            ComputeMaxInstanceSize = \"M30\",\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                },\n            },\n        },\n    });\n\n    // Read effective values after Atlas auto-scales the cluster\n    var @this = Mongodbatlas.GetAdvancedCluster.Invoke(new()\n    {\n        ProjectId = thisAdvancedCluster.ProjectId,\n        Name = thisAdvancedCluster.Name,\n        UseEffectiveFields = true,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"configuredInstanceSize\"] = @this.Apply(@this =\u003e @this.Apply(getAdvancedClusterResult =\u003e getAdvancedClusterResult.ReplicationSpecs[0]?.RegionConfigs[0]?.ElectableSpecs?.InstanceSize)),\n        [\"actualInstanceSize\"] = @this.Apply(@this =\u003e @this.Apply(getAdvancedClusterResult =\u003e getAdvancedClusterResult.ReplicationSpecs[0]?.RegionConfigs[0]?.EffectiveElectableSpecs?.InstanceSize)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:          pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:               pulumi.String(\"auto-scale-cluster\"),\n\t\t\tClusterType:        pulumi.String(\"REPLICASET\"),\n\t\t\tUseEffectiveFields: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tAutoScaling: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigAutoScalingArgs{\n\t\t\t\t\t\t\t\tComputeEnabled:          pulumi.Bool(true),\n\t\t\t\t\t\t\t\tComputeScaleDownEnabled: pulumi.Bool(true),\n\t\t\t\t\t\t\t\tComputeMinInstanceSize:  pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tComputeMaxInstanceSize:  pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Read effective values after Atlas auto-scales the cluster\n\t\tthis := mongodbatlas.LookupAdvancedClusterOutput(ctx, mongodbatlas.GetAdvancedClusterOutputArgs{\n\t\t\tProjectId:          thisAdvancedCluster.ProjectId,\n\t\t\tName:               thisAdvancedCluster.Name,\n\t\t\tUseEffectiveFields: pulumi.Bool(true),\n\t\t}, nil)\n\t\tctx.Export(\"configuredInstanceSize\", this.ApplyT(func(this mongodbatlas.GetAdvancedClusterResult) (*string, error) {\n\t\t\treturn \u0026this.ReplicationSpecs[0].RegionConfigs[0].ElectableSpecs.InstanceSize, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"actualInstanceSize\", this.ApplyT(func(this mongodbatlas.GetAdvancedClusterResult) (*string, error) {\n\t\t\treturn \u0026this.ReplicationSpecs[0].RegionConfigs[0].EffectiveElectableSpecs.InstanceSize, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAdvancedClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisAdvancedCluster = new AdvancedCluster(\"thisAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"auto-scale-cluster\")\n            .clusterType(\"REPLICASET\")\n            .useEffectiveFields(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .autoScaling(AdvancedClusterReplicationSpecRegionConfigAutoScalingArgs.builder()\n                        .computeEnabled(true)\n                        .computeScaleDownEnabled(true)\n                        .computeMinInstanceSize(\"M10\")\n                        .computeMaxInstanceSize(\"M30\")\n                        .build())\n                    .providerName(\"AWS\")\n                    .priority(7)\n                    .regionName(\"US_EAST_1\")\n                    .build())\n                .build())\n            .build());\n\n        // Read effective values after Atlas auto-scales the cluster\n        final var this = MongodbatlasFunctions.getAdvancedCluster(GetAdvancedClusterArgs.builder()\n            .projectId(thisAdvancedCluster.projectId())\n            .name(thisAdvancedCluster.name())\n            .useEffectiveFields(true)\n            .build());\n\n        ctx.export(\"configuredInstanceSize\", this_.applyValue(_this_ -\u003e _this_.replicationSpecs()[0].regionConfigs()[0].electableSpecs().instanceSize()));\n        ctx.export(\"actualInstanceSize\", this_.applyValue(_this_ -\u003e _this_.replicationSpecs()[0].regionConfigs()[0].effectiveElectableSpecs().instanceSize()));\n    }\n}\n```\n```yaml\nresources:\n  thisAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: this\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: auto-scale-cluster\n      clusterType: REPLICASET\n      useEffectiveFields: true\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n              autoScaling:\n                computeEnabled: true\n                computeScaleDownEnabled: true\n                computeMinInstanceSize: M10\n                computeMaxInstanceSize: M30\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_1\nvariables:\n  # Read effective values after Atlas auto-scales the cluster\n  this:\n    fn::invoke:\n      function: mongodbatlas:getAdvancedCluster\n      arguments:\n        projectId: ${thisAdvancedCluster.projectId}\n        name: ${thisAdvancedCluster.name}\n        useEffectiveFields: true\noutputs:\n  configuredInstanceSize: ${this.replicationSpecs[0].regionConfigs[0].electableSpecs.instanceSize}\n  actualInstanceSize: ${this.replicationSpecs[0].regionConfigs[0].effectiveElectableSpecs.instanceSize}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example using latest sharding configurations with independent shard scaling in the cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisAdvancedCluster = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"cluster-test\",\n    backupEnabled: false,\n    clusterType: \"SHARDED\",\n    replicationSpecs: [\n        {\n            regionConfigs: [{\n                electableSpecs: {\n                    instanceSize: \"M30\",\n                    diskIops: 3000,\n                    nodeCount: 3,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"EU_WEST_1\",\n            }],\n        },\n        {\n            regionConfigs: [{\n                electableSpecs: {\n                    instanceSize: \"M40\",\n                    diskIops: 3000,\n                    nodeCount: 3,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"EU_WEST_1\",\n            }],\n        },\n    ],\n});\nconst _this = mongodbatlas.getAdvancedClusterOutput({\n    projectId: thisAdvancedCluster.projectId,\n    name: thisAdvancedCluster.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_advanced_cluster = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"cluster-test\",\n    backup_enabled=False,\n    cluster_type=\"SHARDED\",\n    replication_specs=[\n        {\n            \"region_configs\": [{\n                \"electable_specs\": {\n                    \"instance_size\": \"M30\",\n                    \"disk_iops\": 3000,\n                    \"node_count\": 3,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"EU_WEST_1\",\n            }],\n        },\n        {\n            \"region_configs\": [{\n                \"electable_specs\": {\n                    \"instance_size\": \"M40\",\n                    \"disk_iops\": 3000,\n                    \"node_count\": 3,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"EU_WEST_1\",\n            }],\n        },\n    ])\nthis = mongodbatlas.get_advanced_cluster_output(project_id=this_advanced_cluster.project_id,\n    name=this_advanced_cluster.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"cluster-test\",\n        BackupEnabled = false,\n        ClusterType = \"SHARDED\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            DiskIops = 3000,\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"EU_WEST_1\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M40\",\n                            DiskIops = 3000,\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"EU_WEST_1\",\n                    },\n                },\n            },\n        },\n    });\n\n    var @this = Mongodbatlas.GetAdvancedCluster.Invoke(new()\n    {\n        ProjectId = thisAdvancedCluster.ProjectId,\n        Name = thisAdvancedCluster.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"cluster-test\"),\n\t\t\tBackupEnabled: pulumi.Bool(false),\n\t\t\tClusterType:   pulumi.String(\"SHARDED\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tDiskIops:     pulumi.Int(3000),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_WEST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M40\"),\n\t\t\t\t\t\t\t\tDiskIops:     pulumi.Int(3000),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_WEST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAdvancedClusterOutput(ctx, mongodbatlas.GetAdvancedClusterOutputArgs{\n\t\t\tProjectId: thisAdvancedCluster.ProjectId,\n\t\t\tName:      thisAdvancedCluster.Name,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAdvancedClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisAdvancedCluster = new AdvancedCluster(\"thisAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"cluster-test\")\n            .backupEnabled(false)\n            .clusterType(\"SHARDED\")\n            .replicationSpecs(            \n                AdvancedClusterReplicationSpecArgs.builder()\n                    .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M30\")\n                            .diskIops(3000)\n                            .nodeCount(3)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"EU_WEST_1\")\n                        .build())\n                    .build(),\n                AdvancedClusterReplicationSpecArgs.builder()\n                    .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M40\")\n                            .diskIops(3000)\n                            .nodeCount(3)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"EU_WEST_1\")\n                        .build())\n                    .build())\n            .build());\n\n        final var this = MongodbatlasFunctions.getAdvancedCluster(GetAdvancedClusterArgs.builder()\n            .projectId(thisAdvancedCluster.projectId())\n            .name(thisAdvancedCluster.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: this\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: cluster-test\n      backupEnabled: false\n      clusterType: SHARDED\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                diskIops: 3000\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: EU_WEST_1\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M40\n                diskIops: 3000\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: EU_WEST_1\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getAdvancedCluster\n      arguments:\n        projectId: ${thisAdvancedCluster.projectId}\n        name: ${thisAdvancedCluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example using Flex cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisAdvancedCluster = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"flex-cluster\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            providerName: \"FLEX\",\n            backingProviderName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            priority: 7,\n        }],\n    }],\n});\nconst _this = mongodbatlas.getAdvancedClusterOutput({\n    projectId: thisAdvancedCluster.projectId,\n    name: thisAdvancedCluster.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_advanced_cluster = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"flex-cluster\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"provider_name\": \"FLEX\",\n            \"backing_provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"priority\": 7,\n        }],\n    }])\nthis = mongodbatlas.get_advanced_cluster_output(project_id=this_advanced_cluster.project_id,\n    name=this_advanced_cluster.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"flex-cluster\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ProviderName = \"FLEX\",\n                        BackingProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        Priority = 7,\n                    },\n                },\n            },\n        },\n    });\n\n    var @this = Mongodbatlas.GetAdvancedCluster.Invoke(new()\n    {\n        ProjectId = thisAdvancedCluster.ProjectId,\n        Name = thisAdvancedCluster.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:        pulumi.String(\"flex-cluster\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tProviderName:        pulumi.String(\"FLEX\"),\n\t\t\t\t\t\t\tBackingProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:          pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tPriority:            pulumi.Int(7),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAdvancedClusterOutput(ctx, mongodbatlas.GetAdvancedClusterOutputArgs{\n\t\t\tProjectId: thisAdvancedCluster.ProjectId,\n\t\t\tName:      thisAdvancedCluster.Name,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAdvancedClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisAdvancedCluster = new AdvancedCluster(\"thisAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"flex-cluster\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .providerName(\"FLEX\")\n                    .backingProviderName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .priority(7)\n                    .build())\n                .build())\n            .build());\n\n        final var this = MongodbatlasFunctions.getAdvancedCluster(GetAdvancedClusterArgs.builder()\n            .projectId(thisAdvancedCluster.projectId())\n            .name(thisAdvancedCluster.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: this\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: flex-cluster\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - providerName: FLEX\n              backingProviderName: AWS\n              regionName: US_EAST_1\n              priority: 7\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getAdvancedCluster\n      arguments:\n        projectId: ${thisAdvancedCluster.projectId}\n        name: ${thisAdvancedCluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAdvancedCluster.\n","properties":{"name":{"type":"string","description":"Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create the cluster.\n"},"useEffectiveFields":{"type":"boolean","description":"Controls how hardware specification fields are returned in the response. When set to true, the non-effective specs (\u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e) fields return the hardware specifications that the client provided. When set to false (default), the non-effective specs fields show the **current** hardware specifications. Cluster auto-scaling is the primary cause for differences between initial and current hardware specifications. This attribute applies to dedicated clusters, not to tenant or flex clusters. **Note:** Effective specs (\u003cspan pulumi-lang-nodejs=\"`effectiveElectableSpecs`\" pulumi-lang-dotnet=\"`EffectiveElectableSpecs`\" pulumi-lang-go=\"`effectiveElectableSpecs`\" pulumi-lang-python=\"`effective_electable_specs`\" pulumi-lang-yaml=\"`effectiveElectableSpecs`\" pulumi-lang-java=\"`effectiveElectableSpecs`\"\u003e`effective_electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`effectiveReadOnlySpecs`\" pulumi-lang-dotnet=\"`EffectiveReadOnlySpecs`\" pulumi-lang-go=\"`effectiveReadOnlySpecs`\" pulumi-lang-python=\"`effective_read_only_specs`\" pulumi-lang-yaml=\"`effectiveReadOnlySpecs`\" pulumi-lang-java=\"`effectiveReadOnlySpecs`\"\u003e`effective_read_only_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`effectiveAnalyticsSpecs`\" pulumi-lang-dotnet=\"`EffectiveAnalyticsSpecs`\" pulumi-lang-go=\"`effectiveAnalyticsSpecs`\" pulumi-lang-python=\"`effective_analytics_specs`\" pulumi-lang-yaml=\"`effectiveAnalyticsSpecs`\" pulumi-lang-java=\"`effectiveAnalyticsSpecs`\"\u003e`effective_analytics_specs`\u003c/span\u003e) are always returned for dedicated clusters regardless of the flag value and always report the **current** hardware specifications. See the resource documentation for Auto-Scaling with Effective Fields for more details.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getAdvancedCluster.\n","properties":{"advancedConfiguration":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterAdvancedConfiguration:getAdvancedClusterAdvancedConfiguration","description":"Get the advanced configuration options. See Advanced Configuration below for more details.\n"},"backupEnabled":{"type":"boolean"},"biConnectorConfig":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterBiConnectorConfig:getAdvancedClusterBiConnectorConfig","description":"Configuration settings applied to BI Connector for Atlas on this cluster. See below. In prior versions of the MongoDB Atlas Terraform Provider, this parameter was named \u003cspan pulumi-lang-nodejs=\"`biConnector`\" pulumi-lang-dotnet=\"`BiConnector`\" pulumi-lang-go=\"`biConnector`\" pulumi-lang-python=\"`bi_connector`\" pulumi-lang-yaml=\"`biConnector`\" pulumi-lang-java=\"`biConnector`\"\u003e`bi_connector`\u003c/span\u003e.\n"},"clusterId":{"description":"The cluster ID.\n","type":"string"},"clusterType":{"description":"Type of the cluster that you want to create.\n","type":"string"},"configServerManagementMode":{"description":"Config Server Management Mode for creating or updating a sharded cluster. Valid values are `ATLAS_MANAGED` (default) and `FIXED_TO_DEDICATED`. When configured as `ATLAS_MANAGED`, Atlas may automatically switch the cluster's config server type for optimal performance and savings. When configured as `FIXED_TO_DEDICATED`, the cluster will always use a dedicated config server. To learn more, see the [Sharded Cluster Config Servers documentation](https://dochub.mongodb.org/docs/manual/core/sharded-cluster-config-servers/).\n","type":"string"},"configServerType":{"description":"Describes a sharded cluster's config server type. Valid values are `DEDICATED` and `EMBEDDED`. To learn more, see the [Sharded Cluster Config Servers documentation](https://dochub.mongodb.org/docs/manual/core/sharded-cluster-config-servers/).\n","type":"string"},"connectionStrings":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterConnectionStrings:getAdvancedClusterConnectionStrings","description":"Set of connection strings that your applications use to connect to this cluster. More information in [Connection-strings](https://docs.mongodb.com/manual/reference/connection-string/). Use the parameters in this object to connect your applications to this cluster. To learn more about the formats of connection strings, see [Connection String Options](https://docs.atlas.mongodb.com/reference/faq/connection-changes/). NOTE: Atlas returns the contents of this object after the cluster is operational, not while it builds the cluster.\n"},"createDate":{"type":"string"},"encryptionAtRestProvider":{"description":"Possible values are AWS, GCP, AZURE or NONE.\n","type":"string"},"globalClusterSelfManagedSharding":{"description":"Flag that indicates if cluster uses Atlas-Managed Sharding (false) or Self-Managed Sharding (true).\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"labels":{"additionalProperties":{"type":"string"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **(DEPRECATED)** Use \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e instead.\n","type":"object"},"mongoDbMajorVersion":{"description":"Version of the cluster to deploy.\n","type":"string"},"mongoDbVersion":{"description":"Version of MongoDB the cluster runs, in `major-version`.`minor-version` format.\n","type":"string"},"name":{"type":"string"},"paused":{"description":"Flag that indicates whether the cluster is paused or not.\n","type":"boolean"},"pinnedFcv":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterPinnedFcv:getAdvancedClusterPinnedFcv","description":"The pinned Feature Compatibility Version (FCV) with its associated expiration date. See below.\n"},"pitEnabled":{"description":"Flag that indicates if the cluster uses Continuous Cloud Backup.\n","type":"boolean"},"projectId":{"type":"string"},"redactClientLogData":{"description":"Flag that enables or disables log redaction, see the [manual](https://www.mongodb.com/docs/manual/administration/monitoring/#log-redaction) for more information.\n","type":"boolean"},"replicaSetScalingStrategy":{"description":"Replica set scaling mode for your cluster.\n","type":"string"},"replicationSpecs":{"description":"List of settings that configure your cluster regions. This array has one object per shard representing node configurations in each shard. For replica sets there is only one object representing node configurations. See below.\n","items":{"$ref":"#/types/mongodbatlas:index/getAdvancedClusterReplicationSpec:getAdvancedClusterReplicationSpec"},"type":"array"},"rootCertType":{"description":"Certificate Authority that MongoDB Atlas clusters use.\n","type":"string"},"stateName":{"description":"Current state of the cluster. The possible states are:\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n","type":"object"},"terminationProtectionEnabled":{"description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n","type":"boolean"},"useAwsTimeBasedSnapshotCopyForFastInitialSync":{"description":"Flag that indicates whether time-based snapshot copies will be used instead of slower standard snapshot copies during fast Atlas cross-region initial syncs. This flag is only relevant for clusters containing AWS nodes.\n","type":"boolean"},"useEffectiveFields":{"type":"boolean"},"versionReleaseSystem":{"description":"Release cadence that Atlas uses for this cluster.\n","type":"string"}},"required":["advancedConfiguration","backupEnabled","biConnectorConfig","clusterId","clusterType","configServerManagementMode","configServerType","connectionStrings","createDate","encryptionAtRestProvider","globalClusterSelfManagedSharding","labels","mongoDbMajorVersion","mongoDbVersion","name","paused","pinnedFcv","pitEnabled","projectId","redactClientLogData","replicaSetScalingStrategy","replicationSpecs","rootCertType","stateName","tags","terminationProtectionEnabled","useAwsTimeBasedSnapshotCopyForFastInitialSync","versionReleaseSystem","id"],"type":"object"}},"mongodbatlas:index/getAdvancedClusters:getAdvancedClusters":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-dotnet=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-go=\"`getAdvancedClusters`\" pulumi-lang-python=\"`get_advanced_clusters`\" pulumi-lang-yaml=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-java=\"`mongodbatlas.getAdvancedClusters`\"\u003e`mongodbatlas.getAdvancedClusters`\u003c/span\u003e describes all Advanced Clusters, including Flex clusters, for a project_id.\n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisAdvancedCluster = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"cluster-test\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M0\",\n            },\n            providerName: \"TENANT\",\n            backingProviderName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            priority: 7,\n        }],\n    }],\n});\nconst _this = mongodbatlas.getAdvancedClustersOutput({\n    projectId: thisAdvancedCluster.projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_advanced_cluster = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"cluster-test\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M0\",\n            },\n            \"provider_name\": \"TENANT\",\n            \"backing_provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"priority\": 7,\n        }],\n    }])\nthis = mongodbatlas.get_advanced_clusters_output(project_id=this_advanced_cluster.project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"cluster-test\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M0\",\n                        },\n                        ProviderName = \"TENANT\",\n                        BackingProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        Priority = 7,\n                    },\n                },\n            },\n        },\n    });\n\n    var @this = Mongodbatlas.GetAdvancedClusters.Invoke(new()\n    {\n        ProjectId = thisAdvancedCluster.ProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:        pulumi.String(\"cluster-test\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M0\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName:        pulumi.String(\"TENANT\"),\n\t\t\t\t\t\t\tBackingProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:          pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tPriority:            pulumi.Int(7),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAdvancedClustersOutput(ctx, mongodbatlas.GetAdvancedClustersOutputArgs{\n\t\t\tProjectId: thisAdvancedCluster.ProjectId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAdvancedClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisAdvancedCluster = new AdvancedCluster(\"thisAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"cluster-test\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M0\")\n                        .build())\n                    .providerName(\"TENANT\")\n                    .backingProviderName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .priority(7)\n                    .build())\n                .build())\n            .build());\n\n        final var this = MongodbatlasFunctions.getAdvancedClusters(GetAdvancedClustersArgs.builder()\n            .projectId(thisAdvancedCluster.projectId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: this\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: cluster-test\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M0\n              providerName: TENANT\n              backingProviderName: AWS\n              regionName: US_EAST_1\n              priority: 7\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getAdvancedClusters\n      arguments:\n        projectId: ${thisAdvancedCluster.projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example using effective fields with auto-scaling\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisAdvancedCluster = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"auto-scale-cluster-1\",\n    clusterType: \"REPLICASET\",\n    useEffectiveFields: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n            autoScaling: {\n                computeEnabled: true,\n                computeScaleDownEnabled: true,\n                computeMinInstanceSize: \"M10\",\n                computeMaxInstanceSize: \"M30\",\n            },\n            providerName: \"AWS\",\n            priority: 7,\n            regionName: \"US_EAST_1\",\n        }],\n    }],\n});\nconst this2 = new mongodbatlas.AdvancedCluster(\"this_2\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"auto-scale-cluster-2\",\n    clusterType: \"REPLICASET\",\n    useEffectiveFields: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M20\",\n                nodeCount: 3,\n            },\n            autoScaling: {\n                computeEnabled: true,\n                computeScaleDownEnabled: true,\n                computeMinInstanceSize: \"M20\",\n                computeMaxInstanceSize: \"M40\",\n            },\n            providerName: \"AWS\",\n            priority: 7,\n            regionName: \"US_WEST_2\",\n        }],\n    }],\n});\n// Read effective values for all clusters in the project\nconst _this = mongodbatlas.getAdvancedClusters({\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    useEffectiveFields: true,\n});\nexport const allClusterNamesAndSizes = _this.then(_this =\u003e .map(cluster =\u003e ({\n    name: cluster.name,\n    configuredSize: cluster.replicationSpecs?.[0]?.regionConfigs?.[0]?.electableSpecs?.instanceSize,\n    actualSize: cluster.replicationSpecs?.[0]?.regionConfigs?.[0]?.effectiveElectableSpecs?.instanceSize,\n})));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_advanced_cluster = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"auto-scale-cluster-1\",\n    cluster_type=\"REPLICASET\",\n    use_effective_fields=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n            \"auto_scaling\": {\n                \"compute_enabled\": True,\n                \"compute_scale_down_enabled\": True,\n                \"compute_min_instance_size\": \"M10\",\n                \"compute_max_instance_size\": \"M30\",\n            },\n            \"provider_name\": \"AWS\",\n            \"priority\": 7,\n            \"region_name\": \"US_EAST_1\",\n        }],\n    }])\nthis2 = mongodbatlas.AdvancedCluster(\"this_2\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"auto-scale-cluster-2\",\n    cluster_type=\"REPLICASET\",\n    use_effective_fields=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M20\",\n                \"node_count\": 3,\n            },\n            \"auto_scaling\": {\n                \"compute_enabled\": True,\n                \"compute_scale_down_enabled\": True,\n                \"compute_min_instance_size\": \"M20\",\n                \"compute_max_instance_size\": \"M40\",\n            },\n            \"provider_name\": \"AWS\",\n            \"priority\": 7,\n            \"region_name\": \"US_WEST_2\",\n        }],\n    }])\n# Read effective values for all clusters in the project\nthis = mongodbatlas.get_advanced_clusters(project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    use_effective_fields=True)\npulumi.export(\"allClusterNamesAndSizes\", [{\n    \"name\": cluster.name,\n    \"configuredSize\": cluster.replication_specs[0].region_configs[0].electable_specs.instance_size,\n    \"actualSize\": cluster.replication_specs[0].region_configs[0].effective_electable_specs.instance_size,\n} for cluster in this.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"auto-scale-cluster-1\",\n        ClusterType = \"REPLICASET\",\n        UseEffectiveFields = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                        AutoScaling = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigAutoScalingArgs\n                        {\n                            ComputeEnabled = true,\n                            ComputeScaleDownEnabled = true,\n                            ComputeMinInstanceSize = \"M10\",\n                            ComputeMaxInstanceSize = \"M30\",\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                },\n            },\n        },\n    });\n\n    var this2 = new Mongodbatlas.AdvancedCluster(\"this_2\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"auto-scale-cluster-2\",\n        ClusterType = \"REPLICASET\",\n        UseEffectiveFields = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M20\",\n                            NodeCount = 3,\n                        },\n                        AutoScaling = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigAutoScalingArgs\n                        {\n                            ComputeEnabled = true,\n                            ComputeScaleDownEnabled = true,\n                            ComputeMinInstanceSize = \"M20\",\n                            ComputeMaxInstanceSize = \"M40\",\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_WEST_2\",\n                    },\n                },\n            },\n        },\n    });\n\n    // Read effective values for all clusters in the project\n    var @this = Mongodbatlas.GetAdvancedClusters.Invoke(new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        UseEffectiveFields = true,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"allClusterNamesAndSizes\"] = @this.Apply(@this =\u003e .Select(cluster =\u003e \n        {\n            return \n            {\n                { \"name\", cluster.Name },\n                { \"configuredSize\", cluster.ReplicationSpecs[0]?.RegionConfigs[0]?.ElectableSpecs?.InstanceSize },\n                { \"actualSize\", cluster.ReplicationSpecs[0]?.RegionConfigs[0]?.EffectiveElectableSpecs?.InstanceSize },\n            };\n        }).ToList()),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example using latest sharding configurations with independent shard scaling in the cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisAdvancedCluster = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"cluster-test\",\n    backupEnabled: false,\n    clusterType: \"SHARDED\",\n    replicationSpecs: [\n        {\n            regionConfigs: [{\n                electableSpecs: {\n                    instanceSize: \"M30\",\n                    diskIops: 3000,\n                    nodeCount: 3,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"EU_WEST_1\",\n            }],\n        },\n        {\n            regionConfigs: [{\n                electableSpecs: {\n                    instanceSize: \"M40\",\n                    diskIops: 3000,\n                    nodeCount: 3,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"EU_WEST_1\",\n            }],\n        },\n    ],\n});\nconst _this = mongodbatlas.getAdvancedClusterOutput({\n    projectId: thisAdvancedCluster.projectId,\n    name: thisAdvancedCluster.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_advanced_cluster = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"cluster-test\",\n    backup_enabled=False,\n    cluster_type=\"SHARDED\",\n    replication_specs=[\n        {\n            \"region_configs\": [{\n                \"electable_specs\": {\n                    \"instance_size\": \"M30\",\n                    \"disk_iops\": 3000,\n                    \"node_count\": 3,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"EU_WEST_1\",\n            }],\n        },\n        {\n            \"region_configs\": [{\n                \"electable_specs\": {\n                    \"instance_size\": \"M40\",\n                    \"disk_iops\": 3000,\n                    \"node_count\": 3,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"EU_WEST_1\",\n            }],\n        },\n    ])\nthis = mongodbatlas.get_advanced_cluster_output(project_id=this_advanced_cluster.project_id,\n    name=this_advanced_cluster.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"cluster-test\",\n        BackupEnabled = false,\n        ClusterType = \"SHARDED\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            DiskIops = 3000,\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"EU_WEST_1\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M40\",\n                            DiskIops = 3000,\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"EU_WEST_1\",\n                    },\n                },\n            },\n        },\n    });\n\n    var @this = Mongodbatlas.GetAdvancedCluster.Invoke(new()\n    {\n        ProjectId = thisAdvancedCluster.ProjectId,\n        Name = thisAdvancedCluster.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"cluster-test\"),\n\t\t\tBackupEnabled: pulumi.Bool(false),\n\t\t\tClusterType:   pulumi.String(\"SHARDED\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tDiskIops:     pulumi.Int(3000),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_WEST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M40\"),\n\t\t\t\t\t\t\t\tDiskIops:     pulumi.Int(3000),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_WEST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAdvancedClusterOutput(ctx, mongodbatlas.GetAdvancedClusterOutputArgs{\n\t\t\tProjectId: thisAdvancedCluster.ProjectId,\n\t\t\tName:      thisAdvancedCluster.Name,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAdvancedClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisAdvancedCluster = new AdvancedCluster(\"thisAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"cluster-test\")\n            .backupEnabled(false)\n            .clusterType(\"SHARDED\")\n            .replicationSpecs(            \n                AdvancedClusterReplicationSpecArgs.builder()\n                    .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M30\")\n                            .diskIops(3000)\n                            .nodeCount(3)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"EU_WEST_1\")\n                        .build())\n                    .build(),\n                AdvancedClusterReplicationSpecArgs.builder()\n                    .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M40\")\n                            .diskIops(3000)\n                            .nodeCount(3)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"EU_WEST_1\")\n                        .build())\n                    .build())\n            .build());\n\n        final var this = MongodbatlasFunctions.getAdvancedCluster(GetAdvancedClusterArgs.builder()\n            .projectId(thisAdvancedCluster.projectId())\n            .name(thisAdvancedCluster.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: this\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: cluster-test\n      backupEnabled: false\n      clusterType: SHARDED\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                diskIops: 3000\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: EU_WEST_1\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M40\n                diskIops: 3000\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: EU_WEST_1\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getAdvancedCluster\n      arguments:\n        projectId: ${thisAdvancedCluster.projectId}\n        name: ${thisAdvancedCluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example using Flex cluster\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisAdvancedCluster = new mongodbatlas.AdvancedCluster(\"this\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"flex-cluster\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            providerName: \"FLEX\",\n            backingProviderName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            priority: 7,\n        }],\n    }],\n});\nconst _this = mongodbatlas.getAdvancedClustersOutput({\n    projectId: thisAdvancedCluster.projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_advanced_cluster = mongodbatlas.AdvancedCluster(\"this\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"flex-cluster\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"provider_name\": \"FLEX\",\n            \"backing_provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"priority\": 7,\n        }],\n    }])\nthis = mongodbatlas.get_advanced_clusters_output(project_id=this_advanced_cluster.project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"this\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"flex-cluster\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ProviderName = \"FLEX\",\n                        BackingProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        Priority = 7,\n                    },\n                },\n            },\n        },\n    });\n\n    var @this = Mongodbatlas.GetAdvancedClusters.Invoke(new()\n    {\n        ProjectId = thisAdvancedCluster.ProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"this\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:        pulumi.String(\"flex-cluster\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tProviderName:        pulumi.String(\"FLEX\"),\n\t\t\t\t\t\t\tBackingProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:          pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tPriority:            pulumi.Int(7),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAdvancedClustersOutput(ctx, mongodbatlas.GetAdvancedClustersOutputArgs{\n\t\t\tProjectId: thisAdvancedCluster.ProjectId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAdvancedClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisAdvancedCluster = new AdvancedCluster(\"thisAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"flex-cluster\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .providerName(\"FLEX\")\n                    .backingProviderName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .priority(7)\n                    .build())\n                .build())\n            .build());\n\n        final var this = MongodbatlasFunctions.getAdvancedClusters(GetAdvancedClustersArgs.builder()\n            .projectId(thisAdvancedCluster.projectId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: this\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: flex-cluster\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - providerName: FLEX\n              backingProviderName: AWS\n              regionName: US_EAST_1\n              priority: 7\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getAdvancedClusters\n      arguments:\n        projectId: ${thisAdvancedCluster.projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAdvancedClusters.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project to get the clusters.\n"},"useEffectiveFields":{"type":"boolean","description":"Controls how hardware specification fields are returned in the response. When set to true, the non-effective specs (\u003cspan pulumi-lang-nodejs=\"`electableSpecs`\" pulumi-lang-dotnet=\"`ElectableSpecs`\" pulumi-lang-go=\"`electableSpecs`\" pulumi-lang-python=\"`electable_specs`\" pulumi-lang-yaml=\"`electableSpecs`\" pulumi-lang-java=\"`electableSpecs`\"\u003e`electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`readOnlySpecs`\" pulumi-lang-dotnet=\"`ReadOnlySpecs`\" pulumi-lang-go=\"`readOnlySpecs`\" pulumi-lang-python=\"`read_only_specs`\" pulumi-lang-yaml=\"`readOnlySpecs`\" pulumi-lang-java=\"`readOnlySpecs`\"\u003e`read_only_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`analyticsSpecs`\" pulumi-lang-dotnet=\"`AnalyticsSpecs`\" pulumi-lang-go=\"`analyticsSpecs`\" pulumi-lang-python=\"`analytics_specs`\" pulumi-lang-yaml=\"`analyticsSpecs`\" pulumi-lang-java=\"`analyticsSpecs`\"\u003e`analytics_specs`\u003c/span\u003e) fields return the hardware specifications that the client provided. When set to false (default), the non-effective specs fields show the **current** hardware specifications. Cluster auto-scaling is the primary cause for differences between initial and current hardware specifications. This attribute applies to dedicated clusters, not to tenant or flex clusters. **Note:** Effective specs (\u003cspan pulumi-lang-nodejs=\"`effectiveElectableSpecs`\" pulumi-lang-dotnet=\"`EffectiveElectableSpecs`\" pulumi-lang-go=\"`effectiveElectableSpecs`\" pulumi-lang-python=\"`effective_electable_specs`\" pulumi-lang-yaml=\"`effectiveElectableSpecs`\" pulumi-lang-java=\"`effectiveElectableSpecs`\"\u003e`effective_electable_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`effectiveReadOnlySpecs`\" pulumi-lang-dotnet=\"`EffectiveReadOnlySpecs`\" pulumi-lang-go=\"`effectiveReadOnlySpecs`\" pulumi-lang-python=\"`effective_read_only_specs`\" pulumi-lang-yaml=\"`effectiveReadOnlySpecs`\" pulumi-lang-java=\"`effectiveReadOnlySpecs`\"\u003e`effective_read_only_specs`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`effectiveAnalyticsSpecs`\" pulumi-lang-dotnet=\"`EffectiveAnalyticsSpecs`\" pulumi-lang-go=\"`effectiveAnalyticsSpecs`\" pulumi-lang-python=\"`effective_analytics_specs`\" pulumi-lang-yaml=\"`effectiveAnalyticsSpecs`\" pulumi-lang-java=\"`effectiveAnalyticsSpecs`\"\u003e`effective_analytics_specs`\u003c/span\u003e) are always returned for dedicated clusters regardless of the flag value and always report the **current** hardware specifications. See the resource documentation for Auto-Scaling with Effective Fields for more details.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getAdvancedClusters.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"description":"A list where each represents a Cluster. See below for more details.\n","items":{"$ref":"#/types/mongodbatlas:index/getAdvancedClustersResult:getAdvancedClustersResult"},"type":"array"},"useEffectiveFields":{"type":"boolean"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getAlertConfiguration:getAlertConfiguration":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AlertConfiguration`\" pulumi-lang-dotnet=\"`mongodbatlas.AlertConfiguration`\" pulumi-lang-go=\"`AlertConfiguration`\" pulumi-lang-python=\"`AlertConfiguration`\" pulumi-lang-yaml=\"`mongodbatlas.AlertConfiguration`\" pulumi-lang-java=\"`mongodbatlas.AlertConfiguration`\"\u003e`mongodbatlas.AlertConfiguration`\u003c/span\u003e describes an Alert Configuration.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testAlertConfiguration = new mongodbatlas.AlertConfiguration(\"test\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    eventType: \"OUTSIDE_METRIC_THRESHOLD\",\n    enabled: true,\n    notifications: [{\n        typeName: \"GROUP\",\n        intervalMin: 5,\n        delayMin: 0,\n        smsEnabled: false,\n        emailEnabled: true,\n    }],\n    matchers: [{\n        fieldName: \"HOSTNAME_AND_PORT\",\n        operator: \"EQUALS\",\n        value: \"SECONDARY\",\n    }],\n    metricThresholdConfig: {\n        metricName: \"ASSERT_REGULAR\",\n        operator: \"LESS_THAN\",\n        threshold: 99,\n        units: \"RAW\",\n        mode: \"AVERAGE\",\n    },\n});\nconst test = mongodbatlas.getAlertConfigurationOutput({\n    projectId: testAlertConfiguration.projectId,\n    alertConfigurationId: testAlertConfiguration.alertConfigurationId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_alert_configuration = mongodbatlas.AlertConfiguration(\"test\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    event_type=\"OUTSIDE_METRIC_THRESHOLD\",\n    enabled=True,\n    notifications=[{\n        \"type_name\": \"GROUP\",\n        \"interval_min\": 5,\n        \"delay_min\": 0,\n        \"sms_enabled\": False,\n        \"email_enabled\": True,\n    }],\n    matchers=[{\n        \"field_name\": \"HOSTNAME_AND_PORT\",\n        \"operator\": \"EQUALS\",\n        \"value\": \"SECONDARY\",\n    }],\n    metric_threshold_config={\n        \"metric_name\": \"ASSERT_REGULAR\",\n        \"operator\": \"LESS_THAN\",\n        \"threshold\": 99,\n        \"units\": \"RAW\",\n        \"mode\": \"AVERAGE\",\n    })\ntest = mongodbatlas.get_alert_configuration_output(project_id=test_alert_configuration.project_id,\n    alert_configuration_id=test_alert_configuration.alert_configuration_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testAlertConfiguration = new Mongodbatlas.AlertConfiguration(\"test\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        EventType = \"OUTSIDE_METRIC_THRESHOLD\",\n        Enabled = true,\n        Notifications = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationNotificationArgs\n            {\n                TypeName = \"GROUP\",\n                IntervalMin = 5,\n                DelayMin = 0,\n                SmsEnabled = false,\n                EmailEnabled = true,\n            },\n        },\n        Matchers = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationMatcherArgs\n            {\n                FieldName = \"HOSTNAME_AND_PORT\",\n                Operator = \"EQUALS\",\n                Value = \"SECONDARY\",\n            },\n        },\n        MetricThresholdConfig = new Mongodbatlas.Inputs.AlertConfigurationMetricThresholdConfigArgs\n        {\n            MetricName = \"ASSERT_REGULAR\",\n            Operator = \"LESS_THAN\",\n            Threshold = 99,\n            Units = \"RAW\",\n            Mode = \"AVERAGE\",\n        },\n    });\n\n    var test = Mongodbatlas.GetAlertConfiguration.Invoke(new()\n    {\n        ProjectId = testAlertConfiguration.ProjectId,\n        AlertConfigurationId = testAlertConfiguration.AlertConfigurationId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestAlertConfiguration, err := mongodbatlas.NewAlertConfiguration(ctx, \"test\", \u0026mongodbatlas.AlertConfigurationArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tEventType: pulumi.String(\"OUTSIDE_METRIC_THRESHOLD\"),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tNotifications: mongodbatlas.AlertConfigurationNotificationArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationNotificationArgs{\n\t\t\t\t\tTypeName:     pulumi.String(\"GROUP\"),\n\t\t\t\t\tIntervalMin:  pulumi.Int(5),\n\t\t\t\t\tDelayMin:     pulumi.Int(0),\n\t\t\t\t\tSmsEnabled:   pulumi.Bool(false),\n\t\t\t\t\tEmailEnabled: pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMatchers: mongodbatlas.AlertConfigurationMatcherArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationMatcherArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"HOSTNAME_AND_PORT\"),\n\t\t\t\t\tOperator:  pulumi.String(\"EQUALS\"),\n\t\t\t\t\tValue:     pulumi.String(\"SECONDARY\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tMetricThresholdConfig: \u0026mongodbatlas.AlertConfigurationMetricThresholdConfigArgs{\n\t\t\t\tMetricName: pulumi.String(\"ASSERT_REGULAR\"),\n\t\t\t\tOperator:   pulumi.String(\"LESS_THAN\"),\n\t\t\t\tThreshold:  pulumi.Float64(99),\n\t\t\t\tUnits:      pulumi.String(\"RAW\"),\n\t\t\t\tMode:       pulumi.String(\"AVERAGE\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAlertConfigurationOutput(ctx, mongodbatlas.GetAlertConfigurationOutputArgs{\n\t\t\tProjectId:            testAlertConfiguration.ProjectId,\n\t\t\tAlertConfigurationId: testAlertConfiguration.AlertConfigurationId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AlertConfiguration;\nimport com.pulumi.mongodbatlas.AlertConfigurationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationNotificationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationMatcherArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationMetricThresholdConfigArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAlertConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testAlertConfiguration = new AlertConfiguration(\"testAlertConfiguration\", AlertConfigurationArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .eventType(\"OUTSIDE_METRIC_THRESHOLD\")\n            .enabled(true)\n            .notifications(AlertConfigurationNotificationArgs.builder()\n                .typeName(\"GROUP\")\n                .intervalMin(5)\n                .delayMin(0)\n                .smsEnabled(false)\n                .emailEnabled(true)\n                .build())\n            .matchers(AlertConfigurationMatcherArgs.builder()\n                .fieldName(\"HOSTNAME_AND_PORT\")\n                .operator(\"EQUALS\")\n                .value(\"SECONDARY\")\n                .build())\n            .metricThresholdConfig(AlertConfigurationMetricThresholdConfigArgs.builder()\n                .metricName(\"ASSERT_REGULAR\")\n                .operator(\"LESS_THAN\")\n                .threshold(99.0)\n                .units(\"RAW\")\n                .mode(\"AVERAGE\")\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getAlertConfiguration(GetAlertConfigurationArgs.builder()\n            .projectId(testAlertConfiguration.projectId())\n            .alertConfigurationId(testAlertConfiguration.alertConfigurationId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testAlertConfiguration:\n    type: mongodbatlas:AlertConfiguration\n    name: test\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      eventType: OUTSIDE_METRIC_THRESHOLD\n      enabled: true\n      notifications:\n        - typeName: GROUP\n          intervalMin: 5\n          delayMin: 0\n          smsEnabled: false\n          emailEnabled: true\n      matchers:\n        - fieldName: HOSTNAME_AND_PORT\n          operator: EQUALS\n          value: SECONDARY\n      metricThresholdConfig:\n        metricName: ASSERT_REGULAR\n        operator: LESS_THAN\n        threshold: 99\n        units: RAW\n        mode: AVERAGE\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getAlertConfiguration\n      arguments:\n        projectId: ${testAlertConfiguration.projectId}\n        alertConfigurationId: ${testAlertConfiguration.alertConfigurationId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **NOTE:** In order to allow for a fast pace of change to alert variables some validations have been removed from this resource in order to unblock alert creation. Impacted areas have links to the MongoDB Atlas API documentation so always check it for the most current information: https://docs.atlas.mongodb.com/reference/api/alert-configurations-create-config/\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testAlertConfiguration = new mongodbatlas.AlertConfiguration(\"test\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    eventType: \"REPLICATION_OPLOG_WINDOW_RUNNING_OUT\",\n    enabled: true,\n    notifications: [{\n        typeName: \"GROUP\",\n        intervalMin: 5,\n        delayMin: 0,\n        smsEnabled: false,\n        emailEnabled: true,\n        roles: [\"GROUP_CLUSTER_MANAGER\"],\n    }],\n    matchers: [{\n        fieldName: \"HOSTNAME_AND_PORT\",\n        operator: \"EQUALS\",\n        value: \"SECONDARY\",\n    }],\n    thresholdConfig: {\n        operator: \"LESS_THAN\",\n        threshold: 1,\n        units: \"HOURS\",\n    },\n});\nconst test = mongodbatlas.getAlertConfigurationOutput({\n    projectId: testAlertConfiguration.projectId,\n    alertConfigurationId: testAlertConfiguration.alertConfigurationId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_alert_configuration = mongodbatlas.AlertConfiguration(\"test\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    event_type=\"REPLICATION_OPLOG_WINDOW_RUNNING_OUT\",\n    enabled=True,\n    notifications=[{\n        \"type_name\": \"GROUP\",\n        \"interval_min\": 5,\n        \"delay_min\": 0,\n        \"sms_enabled\": False,\n        \"email_enabled\": True,\n        \"roles\": [\"GROUP_CLUSTER_MANAGER\"],\n    }],\n    matchers=[{\n        \"field_name\": \"HOSTNAME_AND_PORT\",\n        \"operator\": \"EQUALS\",\n        \"value\": \"SECONDARY\",\n    }],\n    threshold_config={\n        \"operator\": \"LESS_THAN\",\n        \"threshold\": 1,\n        \"units\": \"HOURS\",\n    })\ntest = mongodbatlas.get_alert_configuration_output(project_id=test_alert_configuration.project_id,\n    alert_configuration_id=test_alert_configuration.alert_configuration_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testAlertConfiguration = new Mongodbatlas.AlertConfiguration(\"test\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        EventType = \"REPLICATION_OPLOG_WINDOW_RUNNING_OUT\",\n        Enabled = true,\n        Notifications = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationNotificationArgs\n            {\n                TypeName = \"GROUP\",\n                IntervalMin = 5,\n                DelayMin = 0,\n                SmsEnabled = false,\n                EmailEnabled = true,\n                Roles = new[]\n                {\n                    \"GROUP_CLUSTER_MANAGER\",\n                },\n            },\n        },\n        Matchers = new[]\n        {\n            new Mongodbatlas.Inputs.AlertConfigurationMatcherArgs\n            {\n                FieldName = \"HOSTNAME_AND_PORT\",\n                Operator = \"EQUALS\",\n                Value = \"SECONDARY\",\n            },\n        },\n        ThresholdConfig = new Mongodbatlas.Inputs.AlertConfigurationThresholdConfigArgs\n        {\n            Operator = \"LESS_THAN\",\n            Threshold = 1,\n            Units = \"HOURS\",\n        },\n    });\n\n    var test = Mongodbatlas.GetAlertConfiguration.Invoke(new()\n    {\n        ProjectId = testAlertConfiguration.ProjectId,\n        AlertConfigurationId = testAlertConfiguration.AlertConfigurationId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestAlertConfiguration, err := mongodbatlas.NewAlertConfiguration(ctx, \"test\", \u0026mongodbatlas.AlertConfigurationArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tEventType: pulumi.String(\"REPLICATION_OPLOG_WINDOW_RUNNING_OUT\"),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tNotifications: mongodbatlas.AlertConfigurationNotificationArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationNotificationArgs{\n\t\t\t\t\tTypeName:     pulumi.String(\"GROUP\"),\n\t\t\t\t\tIntervalMin:  pulumi.Int(5),\n\t\t\t\t\tDelayMin:     pulumi.Int(0),\n\t\t\t\t\tSmsEnabled:   pulumi.Bool(false),\n\t\t\t\t\tEmailEnabled: pulumi.Bool(true),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_CLUSTER_MANAGER\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tMatchers: mongodbatlas.AlertConfigurationMatcherArray{\n\t\t\t\t\u0026mongodbatlas.AlertConfigurationMatcherArgs{\n\t\t\t\t\tFieldName: pulumi.String(\"HOSTNAME_AND_PORT\"),\n\t\t\t\t\tOperator:  pulumi.String(\"EQUALS\"),\n\t\t\t\t\tValue:     pulumi.String(\"SECONDARY\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tThresholdConfig: \u0026mongodbatlas.AlertConfigurationThresholdConfigArgs{\n\t\t\t\tOperator:  pulumi.String(\"LESS_THAN\"),\n\t\t\t\tThreshold: pulumi.Float64(1),\n\t\t\t\tUnits:     pulumi.String(\"HOURS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAlertConfigurationOutput(ctx, mongodbatlas.GetAlertConfigurationOutputArgs{\n\t\t\tProjectId:            testAlertConfiguration.ProjectId,\n\t\t\tAlertConfigurationId: testAlertConfiguration.AlertConfigurationId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AlertConfiguration;\nimport com.pulumi.mongodbatlas.AlertConfigurationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationNotificationArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationMatcherArgs;\nimport com.pulumi.mongodbatlas.inputs.AlertConfigurationThresholdConfigArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAlertConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testAlertConfiguration = new AlertConfiguration(\"testAlertConfiguration\", AlertConfigurationArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .eventType(\"REPLICATION_OPLOG_WINDOW_RUNNING_OUT\")\n            .enabled(true)\n            .notifications(AlertConfigurationNotificationArgs.builder()\n                .typeName(\"GROUP\")\n                .intervalMin(5)\n                .delayMin(0)\n                .smsEnabled(false)\n                .emailEnabled(true)\n                .roles(\"GROUP_CLUSTER_MANAGER\")\n                .build())\n            .matchers(AlertConfigurationMatcherArgs.builder()\n                .fieldName(\"HOSTNAME_AND_PORT\")\n                .operator(\"EQUALS\")\n                .value(\"SECONDARY\")\n                .build())\n            .thresholdConfig(AlertConfigurationThresholdConfigArgs.builder()\n                .operator(\"LESS_THAN\")\n                .threshold(1.0)\n                .units(\"HOURS\")\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getAlertConfiguration(GetAlertConfigurationArgs.builder()\n            .projectId(testAlertConfiguration.projectId())\n            .alertConfigurationId(testAlertConfiguration.alertConfigurationId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testAlertConfiguration:\n    type: mongodbatlas:AlertConfiguration\n    name: test\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      eventType: REPLICATION_OPLOG_WINDOW_RUNNING_OUT\n      enabled: true\n      notifications:\n        - typeName: GROUP\n          intervalMin: 5\n          delayMin: 0\n          smsEnabled: false\n          emailEnabled: true\n          roles:\n            - GROUP_CLUSTER_MANAGER\n      matchers:\n        - fieldName: HOSTNAME_AND_PORT\n          operator: EQUALS\n          value: SECONDARY\n      thresholdConfig:\n        operator: LESS_THAN\n        threshold: 1\n        units: HOURS\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getAlertConfiguration\n      arguments:\n        projectId: ${testAlertConfiguration.projectId}\n        alertConfigurationId: ${testAlertConfiguration.alertConfigurationId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nUtilize\u003cspan pulumi-lang-nodejs=\" dataSource \" pulumi-lang-dotnet=\" DataSource \" pulumi-lang-go=\" dataSource \" pulumi-lang-python=\" data_source \" pulumi-lang-yaml=\" dataSource \" pulumi-lang-java=\" dataSource \"\u003e data_source \u003c/span\u003eto generate resource hcl and import statement. Useful if you have a specific\u003cspan pulumi-lang-nodejs=\" alertConfigurationId \" pulumi-lang-dotnet=\" AlertConfigurationId \" pulumi-lang-go=\" alertConfigurationId \" pulumi-lang-python=\" alert_configuration_id \" pulumi-lang-yaml=\" alertConfigurationId \" pulumi-lang-java=\" alertConfigurationId \"\u003e alert_configuration_id \u003c/span\u003eand are looking to manage it as is in state. To import all alerts, refer to the documentation on\u003cspan pulumi-lang-nodejs=\" dataSourceMongodbatlasAlertConfigurations\n\" pulumi-lang-dotnet=\" DataSourceMongodbatlasAlertConfigurations\n\" pulumi-lang-go=\" dataSourceMongodbatlasAlertConfigurations\n\" pulumi-lang-python=\" data_source_mongodbatlas_alert_configurations\n\" pulumi-lang-yaml=\" dataSourceMongodbatlasAlertConfigurations\n\" pulumi-lang-java=\" dataSourceMongodbatlasAlertConfigurations\n\"\u003e data_source_mongodbatlas_alert_configurations\n\u003c/span\u003e```\ndata \"mongodbatlas_alert_configuration\" \"test\" {\n    project_id             = var.project_id\n    alert_configuration_id = var.alert_configuration_id\n\n    output {\n        type = \"resource_hcl\"\n        label = \"test\"\n    }\n\n    output {\n        type = \"resource_import\"\n        label = \"test\"\n    }\n}\n```\n","inputs":{"description":"A collection of arguments for invoking getAlertConfiguration.\n","properties":{"alertConfigurationId":{"type":"string","description":"Unique identifier for the alert configuration.\n"},"outputs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationOutput:getAlertConfigurationOutput"},"description":"List of formatted output requested for this alert configuration\n* `output.#.type` - (Required) If the output is requested, you must specify its type. The format is computed as `output.#.value`, the following are the supported types:\n"},"projectId":{"type":"string","description":"The ID of the project where the alert configuration will create.\n"}},"type":"object","required":["alertConfigurationId","projectId"]},"outputs":{"description":"A collection of values returned by getAlertConfiguration.\n","properties":{"alertConfigurationId":{"type":"string"},"created":{"description":"Timestamp in ISO 8601 date and time format in UTC when this alert configuration was created.\n","type":"string"},"enabled":{"description":"If set to true, the alert configuration is enabled. If enabled is not exported it is set to false.\n","type":"boolean"},"eventType":{"description":"The type of event that will trigger an alert.\n","type":"string"},"id":{"type":"string"},"matchers":{"description":"Rules to apply when matching an object against this alert configuration. See matchers.\n","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationMatcher:getAlertConfigurationMatcher"},"type":"array"},"metricThresholdConfigs":{"description":"The threshold that causes an alert to be triggered. Required if \u003cspan pulumi-lang-nodejs=\"`eventTypeName`\" pulumi-lang-dotnet=\"`EventTypeName`\" pulumi-lang-go=\"`eventTypeName`\" pulumi-lang-python=\"`event_type_name`\" pulumi-lang-yaml=\"`eventTypeName`\" pulumi-lang-java=\"`eventTypeName`\"\u003e`event_type_name`\u003c/span\u003e : `OUTSIDE_METRIC_THRESHOLD` or `OUTSIDE_SERVERLESS_METRIC_THRESHOLD`. See metric threshold config.\n","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationMetricThresholdConfig:getAlertConfigurationMetricThresholdConfig"},"type":"array"},"notifications":{"items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationNotification:getAlertConfigurationNotification"},"type":"array"},"outputs":{"items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationOutput:getAlertConfigurationOutput"},"type":"array"},"projectId":{"type":"string"},"severityOverride":{"description":"Severity of the event.\n","type":"string"},"thresholdConfigs":{"description":"Threshold that triggers an alert. Required if \u003cspan pulumi-lang-nodejs=\"`eventTypeName`\" pulumi-lang-dotnet=\"`EventTypeName`\" pulumi-lang-go=\"`eventTypeName`\" pulumi-lang-python=\"`event_type_name`\" pulumi-lang-yaml=\"`eventTypeName`\" pulumi-lang-java=\"`eventTypeName`\"\u003e`event_type_name`\u003c/span\u003e is any value other than `OUTSIDE_METRIC_THRESHOLD` or `OUTSIDE_SERVERLESS_METRIC_THRESHOLD`. See threshold config.\n","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationThresholdConfig:getAlertConfigurationThresholdConfig"},"type":"array"},"updated":{"description":"Timestamp in ISO 8601 date and time format in UTC when this alert configuration was last updated.\n","type":"string"}},"required":["alertConfigurationId","created","enabled","eventType","id","matchers","metricThresholdConfigs","notifications","projectId","severityOverride","thresholdConfigs","updated"],"type":"object"}},"mongodbatlas:index/getAlertConfigurations:getAlertConfigurations":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAlertConfigurations`\" pulumi-lang-dotnet=\"`mongodbatlas.getAlertConfigurations`\" pulumi-lang-go=\"`getAlertConfigurations`\" pulumi-lang-python=\"`get_alert_configurations`\" pulumi-lang-yaml=\"`mongodbatlas.getAlertConfigurations`\" pulumi-lang-java=\"`mongodbatlas.getAlertConfigurations`\"\u003e`mongodbatlas.getAlertConfigurations`\u003c/span\u003e describes all Alert Configurations by the provided project_id. The data source requires your Project ID.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\nimport * as std from \"@pulumi/std\";\n\nconst _import = mongodbatlas.getAlertConfigurations({\n    projectId: projectId,\n    outputTypes: [\n        \"resource_hcl\",\n        \"resource_import\",\n    ],\n});\nconst alerts = _import.then(_import =\u003e _import.results);\nconst outputs = std.index.flatten({\n    input: alerts.then(alerts =\u003e .map(([i, alert]) =\u003e (alert.output == null ? [] : alert.output))),\n}).result;\nconst outputValues = std.index.compact({\n    input: .map(([i, o]) =\u003e (o.value)),\n}).result;\nexport const alertOutput = std.index.join({\n    separator: \"\\n\",\n    input: outputValues,\n}).result;\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\nimport pulumi_std as std\n\nimport_ = mongodbatlas.get_alert_configurations(project_id=project_id,\n    output_types=[\n        \"resource_hcl\",\n        \"resource_import\",\n    ])\nalerts = import_.results\noutputs = std.index.flatten(input=[[] if alert.output == None else alert.output for i, alert in alerts])[\"result\"]\noutput_values = std.index.compact(input=[o[\"value\"] for i, o in outputs])[\"result\"]\npulumi.export(\"alertOutput\", std.index.join(separator=\"\\n\",\n    input=output_values)[\"result\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var import = Mongodbatlas.GetAlertConfigurations.Invoke(new()\n    {\n        ProjectId = projectId,\n        OutputTypes = new[]\n        {\n            \"resource_hcl\",\n            \"resource_import\",\n        },\n    });\n\n    var alerts = import.Apply(getAlertConfigurationsResult =\u003e getAlertConfigurationsResult.Results);\n\n    var outputs = Std.Index.Flatten.Invoke(new()\n    {\n        Input = alerts.Apply(alerts =\u003e .Select(alert =\u003e \n        {\n            return alert.Output == null ? new[] {} : alert.Output;\n        }).ToList()),\n    }).Result;\n\n    var outputValues = Std.Index.Compact.Invoke(new()\n    {\n        Input = .Select(o =\u003e \n        {\n            return o.Value;\n        }).ToList(),\n    }).Result;\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"alertOutput\"] = Std.Index.Join.Invoke(new()\n        {\n            Separator = @\"\n\",\n            Input = outputValues,\n        }).Result,\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nRefer to the following for a full example on using this\u003cspan pulumi-lang-nodejs=\" dataSource \" pulumi-lang-dotnet=\" DataSource \" pulumi-lang-go=\" dataSource \" pulumi-lang-python=\" data_source \" pulumi-lang-yaml=\" dataSource \" pulumi-lang-java=\" dataSource \"\u003e data_source \u003c/span\u003eas a tool to import all resources:\n* atlas-alert-configurations\n","inputs":{"description":"A collection of arguments for invoking getAlertConfigurations.\n","properties":{"listOptions":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationsListOption:getAlertConfigurationsListOption"},"description":"Arguments that dictate how many and which results are returned by the data source\n* `list_options.page_num` - Which page of results to retrieve (default to first page)\n* `list_options.items_per_page` - How many alerts to retrieve per page (default 100)\n* `list_options.include_count` - Whether to include total count of results in the response (default false)\n"},"outputTypes":{"type":"array","items":{"type":"string"},"description":"List of requested string formatted output to be included on each individual result. Options are \u003cspan pulumi-lang-nodejs=\"`resourceHcl`\" pulumi-lang-dotnet=\"`ResourceHcl`\" pulumi-lang-go=\"`resourceHcl`\" pulumi-lang-python=\"`resource_hcl`\" pulumi-lang-yaml=\"`resourceHcl`\" pulumi-lang-java=\"`resourceHcl`\"\u003e`resource_hcl`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`resourceImport`\" pulumi-lang-dotnet=\"`ResourceImport`\" pulumi-lang-go=\"`resourceImport`\" pulumi-lang-python=\"`resource_import`\" pulumi-lang-yaml=\"`resourceImport`\" pulumi-lang-java=\"`resourceImport`\"\u003e`resource_import`\u003c/span\u003e. Available to make it easy to gather resource statements for existing alert configurations, and corresponding import statements to import said resource state into the statefile.\n"},"projectId":{"type":"string","description":"The unique ID for the project to get the alert configurations.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getAlertConfigurations.\n","properties":{"id":{"type":"string"},"listOptions":{"items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationsListOption:getAlertConfigurationsListOption"},"type":"array"},"outputTypes":{"items":{"type":"string"},"type":"array"},"projectId":{"description":"The ID of the project where the alert configuration exists\n","type":"string"},"results":{"description":"A list of alert configurations for the project_id, constrained by the \u003cspan pulumi-lang-nodejs=\"`listOptions`\" pulumi-lang-dotnet=\"`ListOptions`\" pulumi-lang-go=\"`listOptions`\" pulumi-lang-python=\"`list_options`\" pulumi-lang-yaml=\"`listOptions`\" pulumi-lang-java=\"`listOptions`\"\u003e`list_options`\u003c/span\u003e.\n","items":{"$ref":"#/types/mongodbatlas:index/getAlertConfigurationsResult:getAlertConfigurationsResult"},"type":"array"},"totalCount":{"description":"Total count of results\n","type":"integer"}},"required":["id","projectId","results","totalCount"],"type":"object"}},"mongodbatlas:index/getApiKey:getApiKey":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ApiKey`\" pulumi-lang-go=\"`ApiKey`\" pulumi-lang-python=\"`ApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ApiKey`\" pulumi-lang-java=\"`mongodbatlas.ApiKey`\"\u003e`mongodbatlas.ApiKey`\u003c/span\u003e describes a MongoDB Atlas API Key. This represents a API Key that has been created.\n\n\u003e **IMPORTANT WARNING:** Managing Atlas Programmatic API Keys (PAKs) with Terraform will expose sensitive organizational secrets in Terraform's state. We suggest following Terraform's best practices. You may also want to consider managing your PAKs via a more secure method, such as the [HashiCorp Vault MongoDB Atlas Secrets Engine](https://developer.hashicorp.com/vault/docs/secrets/mongodbatlas).\n\n\u003e **NOTE:** You may find\u003cspan pulumi-lang-nodejs=\" orgId \" pulumi-lang-dotnet=\" OrgId \" pulumi-lang-go=\" orgId \" pulumi-lang-python=\" org_id \" pulumi-lang-yaml=\" orgId \" pulumi-lang-java=\" orgId \"\u003e org_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n","inputs":{"description":"A collection of arguments for invoking getApiKey.\n","properties":{"apiKeyId":{"type":"string","description":"Unique identifier for the organization API key.\n"},"orgId":{"type":"string","description":"Unique identifier for the organization.\n"}},"type":"object","required":["apiKeyId","orgId"]},"outputs":{"description":"A collection of values returned by getApiKey.\n","properties":{"apiKeyId":{"type":"string"},"description":{"description":"Description of this Organization API key.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"orgId":{"type":"string"},"publicKey":{"description":"Public key for this Organization API key.\n","type":"string"},"roleNames":{"description":"Name of the role. This resource returns all the roles the user has in Atlas.\nThe following are valid roles:\n* `ORG_OWNER`\n* `ORG_GROUP_CREATOR`\n* `ORG_BILLING_ADMIN`\n* `ORG_READ_ONLY`\n* `ORG_MEMBER`\n","items":{"type":"string"},"type":"array"}},"required":["apiKeyId","description","orgId","publicKey","roleNames","id"],"type":"object"}},"mongodbatlas:index/getApiKeyProjectAssignment:getApiKeyProjectAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-go=\"`ApiKeyProjectAssignment`\" pulumi-lang-python=\"`ApiKeyProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.ApiKeyProjectAssignment`\"\u003e`mongodbatlas.ApiKeyProjectAssignment`\u003c/span\u003e describes an API Key Project Assignment.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.ApiKey(\"this\", {\n    orgId: orgId,\n    description: \"Test API Key\",\n    roleNames: [\"ORG_READ_ONLY\"],\n});\nconst firstProject = new mongodbatlas.Project(\"first_project\", {\n    name: \"First Project\",\n    orgId: orgId,\n});\nconst secondProject = new mongodbatlas.Project(\"second_project\", {\n    name: \"Second Project\",\n    orgId: orgId,\n});\nconst firstAssignmentApiKeyProjectAssignment = new mongodbatlas.ApiKeyProjectAssignment(\"first_assignment\", {\n    projectId: firstProject.id,\n    apiKeyId: _this.apiKeyId,\n    roles: [\"GROUP_OWNER\"],\n});\nconst secondAssignment = new mongodbatlas.ApiKeyProjectAssignment(\"second_assignment\", {\n    projectId: secondProject.id,\n    apiKeyId: _this.apiKeyId,\n    roles: [\"GROUP_OWNER\"],\n});\n// Add IP Access List Entry to Programmatic API Key \nconst thisAccessListApiKey = new mongodbatlas.AccessListApiKey(\"this\", {\n    orgId: orgId,\n    cidrBlock: \"0.0.0.0/1\",\n    apiKeyId: _this.apiKeyId,\n});\n// Data source to read a single API key project assignment\nconst firstAssignment = mongodbatlas.getApiKeyProjectAssignmentOutput({\n    projectId: firstAssignmentApiKeyProjectAssignment.projectId,\n    apiKeyId: firstAssignmentApiKeyProjectAssignment.apiKeyId,\n});\n// Data source to read all API key project assignments for a project\nconst allAssignments = mongodbatlas.getApiKeyProjectAssignmentsOutput({\n    projectId: firstProject.id,\n});\nexport const firstAssignmentProjectId = firstAssignment.apply(firstAssignment =\u003e firstAssignment.projectId);\nexport const allAssignmentsProjectIds = allAssignments.apply(allAssignments =\u003e .map(assignment =\u003e (assignment.projectId)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.ApiKey(\"this\",\n    org_id=org_id,\n    description=\"Test API Key\",\n    role_names=[\"ORG_READ_ONLY\"])\nfirst_project = mongodbatlas.Project(\"first_project\",\n    name=\"First Project\",\n    org_id=org_id)\nsecond_project = mongodbatlas.Project(\"second_project\",\n    name=\"Second Project\",\n    org_id=org_id)\nfirst_assignment_api_key_project_assignment = mongodbatlas.ApiKeyProjectAssignment(\"first_assignment\",\n    project_id=first_project.id,\n    api_key_id=this.api_key_id,\n    roles=[\"GROUP_OWNER\"])\nsecond_assignment = mongodbatlas.ApiKeyProjectAssignment(\"second_assignment\",\n    project_id=second_project.id,\n    api_key_id=this.api_key_id,\n    roles=[\"GROUP_OWNER\"])\n# Add IP Access List Entry to Programmatic API Key \nthis_access_list_api_key = mongodbatlas.AccessListApiKey(\"this\",\n    org_id=org_id,\n    cidr_block=\"0.0.0.0/1\",\n    api_key_id=this.api_key_id)\n# Data source to read a single API key project assignment\nfirst_assignment = mongodbatlas.get_api_key_project_assignment_output(project_id=first_assignment_api_key_project_assignment.project_id,\n    api_key_id=first_assignment_api_key_project_assignment.api_key_id)\n# Data source to read all API key project assignments for a project\nall_assignments = mongodbatlas.get_api_key_project_assignments_output(project_id=first_project.id)\npulumi.export(\"firstAssignmentProjectId\", first_assignment.project_id)\npulumi.export(\"allAssignmentsProjectIds\", all_assignments.apply(lambda all_assignments: [assignment.project_id for assignment in all_assignments.results]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.ApiKey(\"this\", new()\n    {\n        OrgId = orgId,\n        Description = \"Test API Key\",\n        RoleNames = new[]\n        {\n            \"ORG_READ_ONLY\",\n        },\n    });\n\n    var firstProject = new Mongodbatlas.Project(\"first_project\", new()\n    {\n        Name = \"First Project\",\n        OrgId = orgId,\n    });\n\n    var secondProject = new Mongodbatlas.Project(\"second_project\", new()\n    {\n        Name = \"Second Project\",\n        OrgId = orgId,\n    });\n\n    var firstAssignmentApiKeyProjectAssignment = new Mongodbatlas.ApiKeyProjectAssignment(\"first_assignment\", new()\n    {\n        ProjectId = firstProject.Id,\n        ApiKeyId = @this.ApiKeyId,\n        Roles = new[]\n        {\n            \"GROUP_OWNER\",\n        },\n    });\n\n    var secondAssignment = new Mongodbatlas.ApiKeyProjectAssignment(\"second_assignment\", new()\n    {\n        ProjectId = secondProject.Id,\n        ApiKeyId = @this.ApiKeyId,\n        Roles = new[]\n        {\n            \"GROUP_OWNER\",\n        },\n    });\n\n    // Add IP Access List Entry to Programmatic API Key \n    var thisAccessListApiKey = new Mongodbatlas.AccessListApiKey(\"this\", new()\n    {\n        OrgId = orgId,\n        CidrBlock = \"0.0.0.0/1\",\n        ApiKeyId = @this.ApiKeyId,\n    });\n\n    // Data source to read a single API key project assignment\n    var firstAssignment = Mongodbatlas.GetApiKeyProjectAssignment.Invoke(new()\n    {\n        ProjectId = firstAssignmentApiKeyProjectAssignment.ProjectId,\n        ApiKeyId = firstAssignmentApiKeyProjectAssignment.ApiKeyId,\n    });\n\n    // Data source to read all API key project assignments for a project\n    var allAssignments = Mongodbatlas.GetApiKeyProjectAssignments.Invoke(new()\n    {\n        ProjectId = firstProject.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstAssignmentProjectId\"] = firstAssignment.Apply(getApiKeyProjectAssignmentResult =\u003e getApiKeyProjectAssignmentResult.ProjectId),\n        [\"allAssignmentsProjectIds\"] = .Select(assignment =\u003e \n        {\n            return assignment.ProjectId;\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApiKeyProjectAssignment.\n","properties":{"apiKeyId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"}},"type":"object","required":["apiKeyId","projectId"]},"outputs":{"description":"A collection of values returned by getApiKeyProjectAssignment.\n","properties":{"apiKeyId":{"description":"Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"roles":{"items":{"type":"string"},"type":"array"}},"required":["apiKeyId","projectId","roles","id"],"type":"object"}},"mongodbatlas:index/getApiKeyProjectAssignments:getApiKeyProjectAssignments":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getApiKeyProjectAssignments`\" pulumi-lang-dotnet=\"`mongodbatlas.getApiKeyProjectAssignments`\" pulumi-lang-go=\"`getApiKeyProjectAssignments`\" pulumi-lang-python=\"`get_api_key_project_assignments`\" pulumi-lang-yaml=\"`mongodbatlas.getApiKeyProjectAssignments`\" pulumi-lang-java=\"`mongodbatlas.getApiKeyProjectAssignments`\"\u003e`mongodbatlas.getApiKeyProjectAssignments`\u003c/span\u003e provides an API Key Project Assignments data source. The data source lets you list all API key project assignments for an organization.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = new mongodbatlas.ApiKey(\"this\", {\n    orgId: orgId,\n    description: \"Test API Key\",\n    roleNames: [\"ORG_READ_ONLY\"],\n});\nconst firstProject = new mongodbatlas.Project(\"first_project\", {\n    name: \"First Project\",\n    orgId: orgId,\n});\nconst secondProject = new mongodbatlas.Project(\"second_project\", {\n    name: \"Second Project\",\n    orgId: orgId,\n});\nconst firstAssignmentApiKeyProjectAssignment = new mongodbatlas.ApiKeyProjectAssignment(\"first_assignment\", {\n    projectId: firstProject.id,\n    apiKeyId: _this.apiKeyId,\n    roles: [\"GROUP_OWNER\"],\n});\nconst secondAssignment = new mongodbatlas.ApiKeyProjectAssignment(\"second_assignment\", {\n    projectId: secondProject.id,\n    apiKeyId: _this.apiKeyId,\n    roles: [\"GROUP_OWNER\"],\n});\n// Add IP Access List Entry to Programmatic API Key \nconst thisAccessListApiKey = new mongodbatlas.AccessListApiKey(\"this\", {\n    orgId: orgId,\n    cidrBlock: \"0.0.0.0/1\",\n    apiKeyId: _this.apiKeyId,\n});\n// Data source to read a single API key project assignment\nconst firstAssignment = mongodbatlas.getApiKeyProjectAssignmentOutput({\n    projectId: firstAssignmentApiKeyProjectAssignment.projectId,\n    apiKeyId: firstAssignmentApiKeyProjectAssignment.apiKeyId,\n});\n// Data source to read all API key project assignments for a project\nconst allAssignments = mongodbatlas.getApiKeyProjectAssignmentsOutput({\n    projectId: firstProject.id,\n});\nexport const firstAssignmentProjectId = firstAssignment.apply(firstAssignment =\u003e firstAssignment.projectId);\nexport const allAssignmentsProjectIds = allAssignments.apply(allAssignments =\u003e .map(assignment =\u003e (assignment.projectId)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.ApiKey(\"this\",\n    org_id=org_id,\n    description=\"Test API Key\",\n    role_names=[\"ORG_READ_ONLY\"])\nfirst_project = mongodbatlas.Project(\"first_project\",\n    name=\"First Project\",\n    org_id=org_id)\nsecond_project = mongodbatlas.Project(\"second_project\",\n    name=\"Second Project\",\n    org_id=org_id)\nfirst_assignment_api_key_project_assignment = mongodbatlas.ApiKeyProjectAssignment(\"first_assignment\",\n    project_id=first_project.id,\n    api_key_id=this.api_key_id,\n    roles=[\"GROUP_OWNER\"])\nsecond_assignment = mongodbatlas.ApiKeyProjectAssignment(\"second_assignment\",\n    project_id=second_project.id,\n    api_key_id=this.api_key_id,\n    roles=[\"GROUP_OWNER\"])\n# Add IP Access List Entry to Programmatic API Key \nthis_access_list_api_key = mongodbatlas.AccessListApiKey(\"this\",\n    org_id=org_id,\n    cidr_block=\"0.0.0.0/1\",\n    api_key_id=this.api_key_id)\n# Data source to read a single API key project assignment\nfirst_assignment = mongodbatlas.get_api_key_project_assignment_output(project_id=first_assignment_api_key_project_assignment.project_id,\n    api_key_id=first_assignment_api_key_project_assignment.api_key_id)\n# Data source to read all API key project assignments for a project\nall_assignments = mongodbatlas.get_api_key_project_assignments_output(project_id=first_project.id)\npulumi.export(\"firstAssignmentProjectId\", first_assignment.project_id)\npulumi.export(\"allAssignmentsProjectIds\", all_assignments.apply(lambda all_assignments: [assignment.project_id for assignment in all_assignments.results]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = new Mongodbatlas.ApiKey(\"this\", new()\n    {\n        OrgId = orgId,\n        Description = \"Test API Key\",\n        RoleNames = new[]\n        {\n            \"ORG_READ_ONLY\",\n        },\n    });\n\n    var firstProject = new Mongodbatlas.Project(\"first_project\", new()\n    {\n        Name = \"First Project\",\n        OrgId = orgId,\n    });\n\n    var secondProject = new Mongodbatlas.Project(\"second_project\", new()\n    {\n        Name = \"Second Project\",\n        OrgId = orgId,\n    });\n\n    var firstAssignmentApiKeyProjectAssignment = new Mongodbatlas.ApiKeyProjectAssignment(\"first_assignment\", new()\n    {\n        ProjectId = firstProject.Id,\n        ApiKeyId = @this.ApiKeyId,\n        Roles = new[]\n        {\n            \"GROUP_OWNER\",\n        },\n    });\n\n    var secondAssignment = new Mongodbatlas.ApiKeyProjectAssignment(\"second_assignment\", new()\n    {\n        ProjectId = secondProject.Id,\n        ApiKeyId = @this.ApiKeyId,\n        Roles = new[]\n        {\n            \"GROUP_OWNER\",\n        },\n    });\n\n    // Add IP Access List Entry to Programmatic API Key \n    var thisAccessListApiKey = new Mongodbatlas.AccessListApiKey(\"this\", new()\n    {\n        OrgId = orgId,\n        CidrBlock = \"0.0.0.0/1\",\n        ApiKeyId = @this.ApiKeyId,\n    });\n\n    // Data source to read a single API key project assignment\n    var firstAssignment = Mongodbatlas.GetApiKeyProjectAssignment.Invoke(new()\n    {\n        ProjectId = firstAssignmentApiKeyProjectAssignment.ProjectId,\n        ApiKeyId = firstAssignmentApiKeyProjectAssignment.ApiKeyId,\n    });\n\n    // Data source to read all API key project assignments for a project\n    var allAssignments = Mongodbatlas.GetApiKeyProjectAssignments.Invoke(new()\n    {\n        ProjectId = firstProject.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"firstAssignmentProjectId\"] = firstAssignment.Apply(getApiKeyProjectAssignmentResult =\u003e getApiKeyProjectAssignmentResult.ProjectId),\n        [\"allAssignmentsProjectIds\"] = .Select(assignment =\u003e \n        {\n            return assignment.ProjectId;\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getApiKeyProjectAssignments.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getApiKeyProjectAssignments.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getApiKeyProjectAssignmentsResult:getApiKeyProjectAssignmentsResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getApiKeys:getApiKeys":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getApiKeys`\" pulumi-lang-dotnet=\"`mongodbatlas.getApiKeys`\" pulumi-lang-go=\"`getApiKeys`\" pulumi-lang-python=\"`get_api_keys`\" pulumi-lang-yaml=\"`mongodbatlas.getApiKeys`\" pulumi-lang-java=\"`mongodbatlas.getApiKeys`\"\u003e`mongodbatlas.getApiKeys`\u003c/span\u003e describe all API Keys. This represents API Keys that have been created.\n\n\u003e **IMPORTANT WARNING:** Managing Atlas Programmatic API Keys (PAKs) with Terraform will expose sensitive organizational secrets in Terraform's state. We suggest following Terraform's best practices. You may also want to consider managing your PAKs via a more secure method, such as the [HashiCorp Vault MongoDB Atlas Secrets Engine](https://developer.hashicorp.com/vault/docs/secrets/mongodbatlas).\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n","inputs":{"description":"A collection of arguments for invoking getApiKeys.\n","properties":{"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"orgId":{"type":"string","description":"Unique identifier for the organization whose API keys you want to retrieve.\n"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"}},"type":"object","required":["orgId"]},"outputs":{"description":"A collection of values returned by getApiKeys.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"itemsPerPage":{"type":"integer"},"orgId":{"type":"string"},"pageNum":{"type":"integer"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getApiKeysResult:getApiKeysResult"},"type":"array"}},"required":["orgId","results","id"],"type":"object"}},"mongodbatlas:index/getAtlasUser:getAtlasUser":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-dotnet=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-go=\"`getAtlasUser`\" pulumi-lang-python=\"`get_atlas_user`\" pulumi-lang-yaml=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-java=\"`mongodbatlas.getAtlasUser`\"\u003e`mongodbatlas.getAtlasUser`\u003c/span\u003e Provides a MongoDB Atlas User.\n\n\u003e **DEPRECATION:** This data source is deprecated. Use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-go=\"`CloudUserOrgAssignment`\" pulumi-lang-python=\"`CloudUserOrgAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserOrgAssignment`\"\u003e`mongodbatlas.CloudUserOrgAssignment`\u003c/span\u003e to read organization user assignments. See the Migration Guide: Migrate off deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-dotnet=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-go=\"`getAtlasUser`\" pulumi-lang-python=\"`get_atlas_user`\" pulumi-lang-yaml=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-java=\"`mongodbatlas.getAtlasUser`\"\u003e`mongodbatlas.getAtlasUser`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-dotnet=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-go=\"`getAtlasUsers`\" pulumi-lang-python=\"`get_atlas_users`\" pulumi-lang-yaml=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-java=\"`mongodbatlas.getAtlasUsers`\"\u003e`mongodbatlas.getAtlasUsers`\u003c/span\u003e.\n\n\u003e **NOTE:** If you are the owner of a MongoDB Atlas organization or project, you can also retrieve the user profile for any user with membership in that organization or project.\n\n## Example Usage\n\n### Using\u003cspan pulumi-lang-nodejs=\" userId \" pulumi-lang-dotnet=\" UserId \" pulumi-lang-go=\" userId \" pulumi-lang-python=\" user_id \" pulumi-lang-yaml=\" userId \" pulumi-lang-java=\" userId \"\u003e user_id \u003c/span\u003eattribute to query\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getAtlasUser({\n    userId: \"\u003cUSER_ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_atlas_user(user_id=\"\u003cUSER_ID\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetAtlasUser.Invoke(new()\n    {\n        UserId = \"\u003cUSER_ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.GetAtlasUser(ctx, \u0026mongodbatlas.GetAtlasUserArgs{\n\t\t\tUserId: pulumi.StringRef(\"\u003cUSER_ID\u003e\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAtlasUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getAtlasUser(GetAtlasUserArgs.builder()\n            .userId(\"\u003cUSER_ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getAtlasUser\n      arguments:\n        userId: \u003cUSER_ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using username attribute to query\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getAtlasUser({\n    username: \"\u003cUSERNAME\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_atlas_user(username=\"\u003cUSERNAME\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetAtlasUser.Invoke(new()\n    {\n        Username = \"\u003cUSERNAME\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.GetAtlasUser(ctx, \u0026mongodbatlas.GetAtlasUserArgs{\n\t\t\tUsername: pulumi.StringRef(\"\u003cUSERNAME\u003e\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAtlasUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getAtlasUser(GetAtlasUserArgs.builder()\n            .username(\"\u003cUSERNAME\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getAtlasUser\n      arguments:\n        username: \u003cUSERNAME\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAtlasUser.\n","properties":{"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this user.\n"},"username":{"type":"string","description":"Email address that belongs to the MongoDB Atlas user account. You can't modify this address after creating the user.\n\n\u003e **IMPORTANT:** Either \u003cspan pulumi-lang-nodejs=\"`userId`\" pulumi-lang-dotnet=\"`UserId`\" pulumi-lang-go=\"`userId`\" pulumi-lang-python=\"`user_id`\" pulumi-lang-yaml=\"`userId`\" pulumi-lang-java=\"`userId`\"\u003e`user_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e must be configured.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAtlasUser.\n","properties":{"country":{"description":"Two alphabet characters that identifies MongoDB Atlas user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n","type":"string"},"createdAt":{"description":"Date and time when the current account is created. This value is in the ISO 8601 timestamp format in UTC.\n","type":"string"},"emailAddress":{"deprecationMessage":"This attribute is deprecated and will be removed in the next major release. Please transition to `data.mongodbatlas_organization.users.username, data.mongodbatlas_team.users.username or data.mongodbatlas_project.users.username attributes`. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management.","description":"**(DEPRECATED)** Email address that belongs to the MongoDB Atlas user. This attribute is deprecated and will be removed in the next major release. Please transition to `data.mongodbatlas_organization.users.username`, `data.mongodbatlas_team.users.username` or `data.mongodbatlas_project.users.username` attributes. For more details, see Migration Guide: Migrate off deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-dotnet=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-go=\"`getAtlasUser`\" pulumi-lang-python=\"`get_atlas_user`\" pulumi-lang-yaml=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-java=\"`mongodbatlas.getAtlasUser`\"\u003e`mongodbatlas.getAtlasUser`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-dotnet=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-go=\"`getAtlasUsers`\" pulumi-lang-python=\"`get_atlas_users`\" pulumi-lang-yaml=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-java=\"`mongodbatlas.getAtlasUsers`\"\u003e`mongodbatlas.getAtlasUsers`\u003c/span\u003e.\"\n","type":"string"},"firstName":{"description":"First or given name that belongs to the MongoDB Atlas user.\n","type":"string"},"id":{"deprecationMessage":"Please use\u003cspan pulumi-lang-nodejs=\" userId \" pulumi-lang-dotnet=\" UserId \" pulumi-lang-go=\" userId \" pulumi-lang-python=\" user_id \" pulumi-lang-yaml=\" userId \" pulumi-lang-java=\" userId \"\u003e user_id \u003c/span\u003eid attribute instead","type":"string"},"lastAuth":{"description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n","type":"string"},"lastName":{"description":"Last name, family name, or surname that belongs to the MongoDB Atlas user.\n","type":"string"},"links":{"items":{"$ref":"#/types/mongodbatlas:index/getAtlasUserLink:getAtlasUserLink"},"type":"array"},"mobileNumber":{"description":"Mobile phone number that belongs to the MongoDB Atlas user.\n","type":"string"},"roles":{"items":{"$ref":"#/types/mongodbatlas:index/getAtlasUserRole:getAtlasUserRole"},"type":"array"},"teamIds":{"description":"List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Atlas user belongs.\n* `links.#.href` - Uniform Resource Locator (URL) that points another API resource to which this response has some relationship. This URL often begins with https://cloud.mongodb.com/api/atlas.\n* `links.#.rel` - Uniform Resource Locator (URL) that defines the semantic relationship between this resource and another API resource. This URL often begins with https://cloud.mongodb.com/api/atlas.\n* `roles.#.group_id` - Unique 24-hexadecimal digit string that identifies the project to which this role belongs. You can set a value for this parameter or orgId but not both in the same request.\n* `roles.#.org_id` - Unique 24-hexadecimal digit string that identifies the organization to which this role belongs. You can set a value for this parameter or groupId but not both in the same request.\n* `roles.#.role_name` - Human-readable label that identifies the collection of privileges that MongoDB Atlas grants a specific API key, user, or team. These roles include organization- and project-level roles. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#service-user-roles) describes the valid roles that can be assigned.\n","items":{"type":"string"},"type":"array"},"userId":{"type":"string"},"username":{"type":"string"}},"required":["country","createdAt","emailAddress","firstName","id","lastAuth","lastName","links","mobileNumber","roles","teamIds"],"type":"object"}},"mongodbatlas:index/getAtlasUsers:getAtlasUsers":{"description":"\u003cspan pulumi-lang-nodejs=\"`atlasUsers`\" pulumi-lang-dotnet=\"`AtlasUsers`\" pulumi-lang-go=\"`atlasUsers`\" pulumi-lang-python=\"`atlas_users`\" pulumi-lang-yaml=\"`atlasUsers`\" pulumi-lang-java=\"`atlasUsers`\"\u003e`atlas_users`\u003c/span\u003e provides Atlas Users associated with a specified Organization, Project, or Team.\n\n\u003e **DEPRECATION:** This data source is deprecated. Replace it with the \u003cspan pulumi-lang-nodejs=\"`users`\" pulumi-lang-dotnet=\"`Users`\" pulumi-lang-go=\"`users`\" pulumi-lang-python=\"`users`\" pulumi-lang-yaml=\"`users`\" pulumi-lang-java=\"`users`\"\u003e`users`\u003c/span\u003e attribute on \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Organization`\" pulumi-lang-dotnet=\"`mongodbatlas.Organization`\" pulumi-lang-go=\"`Organization`\" pulumi-lang-python=\"`Organization`\" pulumi-lang-yaml=\"`mongodbatlas.Organization`\" pulumi-lang-java=\"`mongodbatlas.Organization`\"\u003e`mongodbatlas.Organization`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Project`\" pulumi-lang-dotnet=\"`mongodbatlas.Project`\" pulumi-lang-go=\"`Project`\" pulumi-lang-python=\"`Project`\" pulumi-lang-yaml=\"`mongodbatlas.Project`\" pulumi-lang-java=\"`mongodbatlas.Project`\"\u003e`mongodbatlas.Project`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Team`\" pulumi-lang-dotnet=\"`mongodbatlas.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`mongodbatlas.Team`\" pulumi-lang-java=\"`mongodbatlas.Team`\"\u003e`mongodbatlas.Team`\u003c/span\u003e data sources, depending on scope. See the Migration Guide: Migrate off deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-dotnet=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-go=\"`getAtlasUser`\" pulumi-lang-python=\"`get_atlas_user`\" pulumi-lang-yaml=\"`mongodbatlas.getAtlasUser`\" pulumi-lang-java=\"`mongodbatlas.getAtlasUser`\"\u003e`mongodbatlas.getAtlasUser`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-dotnet=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-go=\"`getAtlasUsers`\" pulumi-lang-python=\"`get_atlas_users`\" pulumi-lang-yaml=\"`mongodbatlas.getAtlasUsers`\" pulumi-lang-java=\"`mongodbatlas.getAtlasUsers`\"\u003e`mongodbatlas.getAtlasUsers`\u003c/span\u003e.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n### Using\u003cspan pulumi-lang-nodejs=\" orgId \" pulumi-lang-dotnet=\" OrgId \" pulumi-lang-go=\" orgId \" pulumi-lang-python=\" org_id \" pulumi-lang-yaml=\" orgId \" pulumi-lang-java=\" orgId \"\u003e org_id \u003c/span\u003eattribute to query Organization Atlas Users\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getAtlasUsers({\n    orgId: \"\u003cORG_ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_atlas_users(org_id=\"\u003cORG_ID\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetAtlasUsers.Invoke(new()\n    {\n        OrgId = \"\u003cORG_ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupAtlasUsers(ctx, \u0026mongodbatlas.LookupAtlasUsersArgs{\n\t\t\tOrgId: pulumi.StringRef(\"\u003cORG_ID\u003e\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAtlasUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getAtlasUsers(GetAtlasUsersArgs.builder()\n            .orgId(\"\u003cORG_ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getAtlasUsers\n      arguments:\n        orgId: \u003cORG_ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eattribute to query Project Atlas Users\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getAtlasUsers({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_atlas_users(project_id=\"\u003cPROJECT_ID\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetAtlasUsers.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupAtlasUsers(ctx, \u0026mongodbatlas.LookupAtlasUsersArgs{\n\t\t\tProjectId: pulumi.StringRef(\"\u003cPROJECT_ID\u003e\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAtlasUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getAtlasUsers(GetAtlasUsersArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getAtlasUsers\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using\u003cspan pulumi-lang-nodejs=\" teamId \" pulumi-lang-dotnet=\" TeamId \" pulumi-lang-go=\" teamId \" pulumi-lang-python=\" team_id \" pulumi-lang-yaml=\" teamId \" pulumi-lang-java=\" teamId \"\u003e team_id \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" orgId \" pulumi-lang-dotnet=\" OrgId \" pulumi-lang-go=\" orgId \" pulumi-lang-python=\" org_id \" pulumi-lang-yaml=\" orgId \" pulumi-lang-java=\" orgId \"\u003e org_id \u003c/span\u003eattribute to query Team Atlas Users\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getAtlasUsers({\n    teamId: \"\u003cTEAM_ID\u003e\",\n    orgId: \"\u003cORG_ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_atlas_users(team_id=\"\u003cTEAM_ID\u003e\",\n    org_id=\"\u003cORG_ID\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetAtlasUsers.Invoke(new()\n    {\n        TeamId = \"\u003cTEAM_ID\u003e\",\n        OrgId = \"\u003cORG_ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupAtlasUsers(ctx, \u0026mongodbatlas.LookupAtlasUsersArgs{\n\t\t\tTeamId: pulumi.StringRef(\"\u003cTEAM_ID\u003e\"),\n\t\t\tOrgId:  pulumi.StringRef(\"\u003cORG_ID\u003e\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAtlasUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getAtlasUsers(GetAtlasUsersArgs.builder()\n            .teamId(\"\u003cTEAM_ID\u003e\")\n            .orgId(\"\u003cORG_ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getAtlasUsers\n      arguments:\n        teamId: \u003cTEAM_ID\u003e\n        orgId: \u003cORG_ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAtlasUsers.\n","properties":{"itemsPerPage":{"type":"integer","description":"Number of items that the response returns per page, up to a maximum of \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n\n\u003e **IMPORTANT:** Either \u003cspan pulumi-lang-nodejs=\"`orgId`\" pulumi-lang-dotnet=\"`OrgId`\" pulumi-lang-go=\"`orgId`\" pulumi-lang-python=\"`org_id`\" pulumi-lang-yaml=\"`orgId`\" pulumi-lang-java=\"`orgId`\"\u003e`org_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`teamId`\" pulumi-lang-dotnet=\"`TeamId`\" pulumi-lang-go=\"`teamId`\" pulumi-lang-python=\"`team_id`\" pulumi-lang-yaml=\"`teamId`\" pulumi-lang-java=\"`teamId`\"\u003e`team_id`\u003c/span\u003e with \u003cspan pulumi-lang-nodejs=\"`orgId`\" pulumi-lang-dotnet=\"`OrgId`\" pulumi-lang-go=\"`orgId`\" pulumi-lang-python=\"`org_id`\" pulumi-lang-yaml=\"`orgId`\" pulumi-lang-java=\"`orgId`\"\u003e`org_id`\u003c/span\u003e must be configurated.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization whose users you want to return. Also needed when \u003cspan pulumi-lang-nodejs=\"`teamId`\" pulumi-lang-dotnet=\"`TeamId`\" pulumi-lang-go=\"`teamId`\" pulumi-lang-python=\"`team_id`\" pulumi-lang-yaml=\"`teamId`\" pulumi-lang-java=\"`teamId`\"\u003e`team_id`\u003c/span\u003e attributes is defined.\n"},"pageNum":{"type":"integer","description":"Number of the page that displays the current set of the total objects that the response returns. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project whose users you want to return.\n"},"teamId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the team whose users you want to return.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getAtlasUsers.\n","properties":{"id":{"deprecationMessage":"Please use each user's id attribute instead","type":"string"},"itemsPerPage":{"type":"integer"},"orgId":{"type":"string"},"pageNum":{"type":"integer"},"projectId":{"type":"string"},"results":{"description":"A list where each element contains a Atlas User.\n","items":{"$ref":"#/types/mongodbatlas:index/getAtlasUsersResult:getAtlasUsersResult"},"type":"array"},"teamId":{"type":"string"},"totalCount":{"description":"Count of the total number of items in the result set. It may be greater than the number of objects in the results array if the entire result set is paginated.\n","type":"integer"}},"required":["id","results","totalCount"],"type":"object"}},"mongodbatlas:index/getAuditing:getAuditing":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Auditing`\" pulumi-lang-dotnet=\"`mongodbatlas.Auditing`\" pulumi-lang-go=\"`Auditing`\" pulumi-lang-python=\"`Auditing`\" pulumi-lang-yaml=\"`mongodbatlas.Auditing`\" pulumi-lang-java=\"`mongodbatlas.Auditing`\"\u003e`mongodbatlas.Auditing`\u003c/span\u003e describes a Auditing.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testAuditing = new mongodbatlas.Auditing(\"test\", {\n    projectId: \"\u003cproject-id\u003e\",\n    auditFilter: \"{ 'atype': 'authenticate', 'param': {   'user': 'auditAdmin',   'db': 'admin',   'mechanism': 'SCRAM-SHA-1' }}\",\n    auditAuthorizationSuccess: false,\n    enabled: true,\n});\nconst test = mongodbatlas.getAuditingOutput({\n    projectId: testAuditing.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_auditing = mongodbatlas.Auditing(\"test\",\n    project_id=\"\u003cproject-id\u003e\",\n    audit_filter=\"{ 'atype': 'authenticate', 'param': {   'user': 'auditAdmin',   'db': 'admin',   'mechanism': 'SCRAM-SHA-1' }}\",\n    audit_authorization_success=False,\n    enabled=True)\ntest = mongodbatlas.get_auditing_output(project_id=test_auditing.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testAuditing = new Mongodbatlas.Auditing(\"test\", new()\n    {\n        ProjectId = \"\u003cproject-id\u003e\",\n        AuditFilter = \"{ 'atype': 'authenticate', 'param': {   'user': 'auditAdmin',   'db': 'admin',   'mechanism': 'SCRAM-SHA-1' }}\",\n        AuditAuthorizationSuccess = false,\n        Enabled = true,\n    });\n\n    var test = Mongodbatlas.GetAuditing.Invoke(new()\n    {\n        ProjectId = testAuditing.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestAuditing, err := mongodbatlas.NewAuditing(ctx, \"test\", \u0026mongodbatlas.AuditingArgs{\n\t\t\tProjectId:                 pulumi.String(\"\u003cproject-id\u003e\"),\n\t\t\tAuditFilter:               pulumi.String(\"{ 'atype': 'authenticate', 'param': {   'user': 'auditAdmin',   'db': 'admin',   'mechanism': 'SCRAM-SHA-1' }}\"),\n\t\t\tAuditAuthorizationSuccess: pulumi.Bool(false),\n\t\t\tEnabled:                   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupAuditingOutput(ctx, mongodbatlas.GetAuditingOutputArgs{\n\t\t\tProjectId: testAuditing.ID(),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Auditing;\nimport com.pulumi.mongodbatlas.AuditingArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetAuditingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testAuditing = new Auditing(\"testAuditing\", AuditingArgs.builder()\n            .projectId(\"\u003cproject-id\u003e\")\n            .auditFilter(\"{ 'atype': 'authenticate', 'param': {   'user': 'auditAdmin',   'db': 'admin',   'mechanism': 'SCRAM-SHA-1' }}\")\n            .auditAuthorizationSuccess(false)\n            .enabled(true)\n            .build());\n\n        final var test = MongodbatlasFunctions.getAuditing(GetAuditingArgs.builder()\n            .projectId(testAuditing.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testAuditing:\n    type: mongodbatlas:Auditing\n    name: test\n    properties:\n      projectId: \u003cproject-id\u003e\n      auditFilter: '{ ''atype'': ''authenticate'', ''param'': {   ''user'': ''auditAdmin'',   ''db'': ''admin'',   ''mechanism'': ''SCRAM-SHA-1'' }}'\n      auditAuthorizationSuccess: false\n      enabled: true\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getAuditing\n      arguments:\n        projectId: ${testAuditing.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAuditing.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getAuditing.\n","properties":{"auditAuthorizationSuccess":{"description":"JSON-formatted audit filter used by the project\n","type":"boolean"},"auditFilter":{"description":"Indicates whether the auditing system captures successful authentication attempts for audit filters using the \"atype\" : \"authCheck\" auditing event. For more information, see auditAuthorizationSuccess\n","type":"string"},"configurationType":{"description":"Denotes the configuration method for the audit filter. Possible values are: NONE - auditing not configured for the project.m FILTER_BUILDER - auditing configured via Atlas UI filter builderm FILTER_JSON - auditing configured via Atlas custom filter or API.\n","type":"string"},"enabled":{"description":"Denotes whether or not the project associated with the {GROUP-ID} has database auditing enabled.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"}},"required":["auditAuthorizationSuccess","auditFilter","configurationType","enabled","projectId","id"],"type":"object"}},"mongodbatlas:index/getBackupCompliancePolicy:getBackupCompliancePolicy":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.BackupCompliancePolicy`\" pulumi-lang-dotnet=\"`mongodbatlas.BackupCompliancePolicy`\" pulumi-lang-go=\"`BackupCompliancePolicy`\" pulumi-lang-python=\"`BackupCompliancePolicy`\" pulumi-lang-yaml=\"`mongodbatlas.BackupCompliancePolicy`\" pulumi-lang-java=\"`mongodbatlas.BackupCompliancePolicy`\"\u003e`mongodbatlas.BackupCompliancePolicy`\u003c/span\u003e provides an Atlas Backup Compliance Policy. An Atlas Backup Compliance Policy contains the current protection policy settings for a project. A compliance policy prevents any user, regardless of role, from modifying or deleting specific cluster configurations and backups. To disable a Backup Compliance Policy, you must contact MongoDB support. Backup Compliance Policies are only supported for clusters M10 and higher and are applied as the minimum policy for all clusters.\n\n\u003e **IMPORTANT NOTE:** Once you enable a Backup Compliance Policy, no user, regardless of role, can disable the Backup Compliance Policy via Terraform, or any other method, without contacting MongoDB support. This means that, once enabled, some resources defined in Terraform can not be modified. To learn more, see the full list of [Backup Compliance Policy Prohibited Actions and Considerations](https://www.mongodb.com/docs/atlas/backup/cloud-backup/backup-compliance-policy/#configure-a-backup-compliance-policy).\n\n\u003e **NOTE:** To delete an Atlas cluster that has an associated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource and an enabled Backup Compliance Policy, first instruct Terraform to remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource from the state and then use Terraform to delete the cluster. To learn more, see Delete a Cluster with a Backup Compliance Policy.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You might find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"clusterTest\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"EU_CENTRAL_1\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst testCloudBackupSchedule = new mongodbatlas.CloudBackupSchedule(\"test\", {\n    projectId: myCluster.projectId,\n    clusterName: myCluster.name,\n    referenceHourOfDay: 3,\n    referenceMinuteOfHour: 45,\n    restoreWindowDays: 4,\n    policyItemHourly: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 1,\n    },\n    policyItemDaily: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 2,\n    },\n    policyItemWeeklies: [{\n        frequencyInterval: 4,\n        retentionUnit: \"weeks\",\n        retentionValue: 3,\n    }],\n    policyItemMonthlies: [{\n        frequencyInterval: 5,\n        retentionUnit: \"months\",\n        retentionValue: 4,\n    }],\n    policyItemYearlies: [{\n        frequencyInterval: 1,\n        retentionUnit: \"years\",\n        retentionValue: 1,\n    }],\n});\nconst test = mongodbatlas.getCloudBackupScheduleOutput({\n    projectId: testCloudBackupSchedule.projectId,\n    clusterName: testCloudBackupSchedule.clusterName,\n});\nconst backupPolicy = mongodbatlas.getBackupCompliancePolicyOutput({\n    projectId: testCloudBackupSchedule.id,\n});\nconst backupPolicyBackupCompliancePolicy = new mongodbatlas.BackupCompliancePolicy(\"backup_policy\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    authorizedEmail: \"user@email.com\",\n    authorizedUserFirstName: \"First\",\n    authorizedUserLastName: \"Last\",\n    copyProtectionEnabled: false,\n    pitEnabled: false,\n    encryptionAtRestEnabled: false,\n    restoreWindowDays: 7,\n    onDemandPolicyItem: {\n        frequencyInterval: 0,\n        retentionUnit: \"days\",\n        retentionValue: 3,\n    },\n    policyItemHourly: {\n        frequencyInterval: 6,\n        retentionUnit: \"days\",\n        retentionValue: 7,\n    },\n    policyItemDaily: {\n        frequencyInterval: 0,\n        retentionUnit: \"days\",\n        retentionValue: 7,\n    },\n    policyItemWeeklies: [{\n        frequencyInterval: 0,\n        retentionUnit: \"weeks\",\n        retentionValue: 4,\n    }],\n    policyItemMonthlies: [{\n        frequencyInterval: 0,\n        retentionUnit: \"months\",\n        retentionValue: 12,\n    }],\n    policyItemYearlies: [{\n        frequencyInterval: 1,\n        retentionUnit: \"years\",\n        retentionValue: 1,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"clusterTest\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"EU_CENTRAL_1\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest_cloud_backup_schedule = mongodbatlas.CloudBackupSchedule(\"test\",\n    project_id=my_cluster.project_id,\n    cluster_name=my_cluster.name,\n    reference_hour_of_day=3,\n    reference_minute_of_hour=45,\n    restore_window_days=4,\n    policy_item_hourly={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 1,\n    },\n    policy_item_daily={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 2,\n    },\n    policy_item_weeklies=[{\n        \"frequency_interval\": 4,\n        \"retention_unit\": \"weeks\",\n        \"retention_value\": 3,\n    }],\n    policy_item_monthlies=[{\n        \"frequency_interval\": 5,\n        \"retention_unit\": \"months\",\n        \"retention_value\": 4,\n    }],\n    policy_item_yearlies=[{\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"years\",\n        \"retention_value\": 1,\n    }])\ntest = mongodbatlas.get_cloud_backup_schedule_output(project_id=test_cloud_backup_schedule.project_id,\n    cluster_name=test_cloud_backup_schedule.cluster_name)\nbackup_policy = mongodbatlas.get_backup_compliance_policy_output(project_id=test_cloud_backup_schedule.id)\nbackup_policy_backup_compliance_policy = mongodbatlas.BackupCompliancePolicy(\"backup_policy\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    authorized_email=\"user@email.com\",\n    authorized_user_first_name=\"First\",\n    authorized_user_last_name=\"Last\",\n    copy_protection_enabled=False,\n    pit_enabled=False,\n    encryption_at_rest_enabled=False,\n    restore_window_days=7,\n    on_demand_policy_item={\n        \"frequency_interval\": 0,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 3,\n    },\n    policy_item_hourly={\n        \"frequency_interval\": 6,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 7,\n    },\n    policy_item_daily={\n        \"frequency_interval\": 0,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 7,\n    },\n    policy_item_weeklies=[{\n        \"frequency_interval\": 0,\n        \"retention_unit\": \"weeks\",\n        \"retention_value\": 4,\n    }],\n    policy_item_monthlies=[{\n        \"frequency_interval\": 0,\n        \"retention_unit\": \"months\",\n        \"retention_value\": 12,\n    }],\n    policy_item_yearlies=[{\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"years\",\n        \"retention_value\": 1,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"clusterTest\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"EU_CENTRAL_1\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var testCloudBackupSchedule = new Mongodbatlas.CloudBackupSchedule(\"test\", new()\n    {\n        ProjectId = myCluster.ProjectId,\n        ClusterName = myCluster.Name,\n        ReferenceHourOfDay = 3,\n        ReferenceMinuteOfHour = 45,\n        RestoreWindowDays = 4,\n        PolicyItemHourly = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemHourlyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 1,\n        },\n        PolicyItemDaily = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemDailyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 2,\n        },\n        PolicyItemWeeklies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemWeeklyArgs\n            {\n                FrequencyInterval = 4,\n                RetentionUnit = \"weeks\",\n                RetentionValue = 3,\n            },\n        },\n        PolicyItemMonthlies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemMonthlyArgs\n            {\n                FrequencyInterval = 5,\n                RetentionUnit = \"months\",\n                RetentionValue = 4,\n            },\n        },\n        PolicyItemYearlies = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemYearlyArgs\n            {\n                FrequencyInterval = 1,\n                RetentionUnit = \"years\",\n                RetentionValue = 1,\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetCloudBackupSchedule.Invoke(new()\n    {\n        ProjectId = testCloudBackupSchedule.ProjectId,\n        ClusterName = testCloudBackupSchedule.ClusterName,\n    });\n\n    var backupPolicy = Mongodbatlas.GetBackupCompliancePolicy.Invoke(new()\n    {\n        ProjectId = testCloudBackupSchedule.Id,\n    });\n\n    var backupPolicyBackupCompliancePolicy = new Mongodbatlas.BackupCompliancePolicy(\"backup_policy\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        AuthorizedEmail = \"user@email.com\",\n        AuthorizedUserFirstName = \"First\",\n        AuthorizedUserLastName = \"Last\",\n        CopyProtectionEnabled = false,\n        PitEnabled = false,\n        EncryptionAtRestEnabled = false,\n        RestoreWindowDays = 7,\n        OnDemandPolicyItem = new Mongodbatlas.Inputs.BackupCompliancePolicyOnDemandPolicyItemArgs\n        {\n            FrequencyInterval = 0,\n            RetentionUnit = \"days\",\n            RetentionValue = 3,\n        },\n        PolicyItemHourly = new Mongodbatlas.Inputs.BackupCompliancePolicyPolicyItemHourlyArgs\n        {\n            FrequencyInterval = 6,\n            RetentionUnit = \"days\",\n            RetentionValue = 7,\n        },\n        PolicyItemDaily = new Mongodbatlas.Inputs.BackupCompliancePolicyPolicyItemDailyArgs\n        {\n            FrequencyInterval = 0,\n            RetentionUnit = \"days\",\n            RetentionValue = 7,\n        },\n        PolicyItemWeeklies = new[]\n        {\n            new Mongodbatlas.Inputs.BackupCompliancePolicyPolicyItemWeeklyArgs\n            {\n                FrequencyInterval = 0,\n                RetentionUnit = \"weeks\",\n                RetentionValue = 4,\n            },\n        },\n        PolicyItemMonthlies = new[]\n        {\n            new Mongodbatlas.Inputs.BackupCompliancePolicyPolicyItemMonthlyArgs\n            {\n                FrequencyInterval = 0,\n                RetentionUnit = \"months\",\n                RetentionValue = 12,\n            },\n        },\n        PolicyItemYearlies = new[]\n        {\n            new Mongodbatlas.Inputs.BackupCompliancePolicyPolicyItemYearlyArgs\n            {\n                FrequencyInterval = 1,\n                RetentionUnit = \"years\",\n                RetentionValue = 1,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"clusterTest\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_CENTRAL_1\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestCloudBackupSchedule, err := mongodbatlas.NewCloudBackupSchedule(ctx, \"test\", \u0026mongodbatlas.CloudBackupScheduleArgs{\n\t\t\tProjectId:             myCluster.ProjectId,\n\t\t\tClusterName:           myCluster.Name,\n\t\t\tReferenceHourOfDay:    pulumi.Int(3),\n\t\t\tReferenceMinuteOfHour: pulumi.Int(45),\n\t\t\tRestoreWindowDays:     pulumi.Int(4),\n\t\t\tPolicyItemHourly: \u0026mongodbatlas.CloudBackupSchedulePolicyItemHourlyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(1),\n\t\t\t},\n\t\t\tPolicyItemDaily: \u0026mongodbatlas.CloudBackupSchedulePolicyItemDailyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(2),\n\t\t\t},\n\t\t\tPolicyItemWeeklies: mongodbatlas.CloudBackupSchedulePolicyItemWeeklyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemWeeklyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(4),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"weeks\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(3),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemMonthlies: mongodbatlas.CloudBackupSchedulePolicyItemMonthlyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemMonthlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(5),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"months\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemYearlies: mongodbatlas.CloudBackupSchedulePolicyItemYearlyArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSchedulePolicyItemYearlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"years\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCloudBackupScheduleOutput(ctx, mongodbatlas.GetCloudBackupScheduleOutputArgs{\n\t\t\tProjectId:   testCloudBackupSchedule.ProjectId,\n\t\t\tClusterName: testCloudBackupSchedule.ClusterName,\n\t\t}, nil)\n\t\t_ = mongodbatlas.LookupBackupCompliancePolicyOutput(ctx, mongodbatlas.GetBackupCompliancePolicyOutputArgs{\n\t\t\tProjectId: testCloudBackupSchedule.ID(),\n\t\t}, nil)\n\t\t_, err = mongodbatlas.NewBackupCompliancePolicy(ctx, \"backup_policy\", \u0026mongodbatlas.BackupCompliancePolicyArgs{\n\t\t\tProjectId:               pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tAuthorizedEmail:         pulumi.String(\"user@email.com\"),\n\t\t\tAuthorizedUserFirstName: pulumi.String(\"First\"),\n\t\t\tAuthorizedUserLastName:  pulumi.String(\"Last\"),\n\t\t\tCopyProtectionEnabled:   pulumi.Bool(false),\n\t\t\tPitEnabled:              pulumi.Bool(false),\n\t\t\tEncryptionAtRestEnabled: pulumi.Bool(false),\n\t\t\tRestoreWindowDays:       pulumi.Int(7),\n\t\t\tOnDemandPolicyItem: \u0026mongodbatlas.BackupCompliancePolicyOnDemandPolicyItemArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(0),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(3),\n\t\t\t},\n\t\t\tPolicyItemHourly: \u0026mongodbatlas.BackupCompliancePolicyPolicyItemHourlyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(6),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(7),\n\t\t\t},\n\t\t\tPolicyItemDaily: \u0026mongodbatlas.BackupCompliancePolicyPolicyItemDailyArgs{\n\t\t\t\tFrequencyInterval: pulumi.Int(0),\n\t\t\t\tRetentionUnit:     pulumi.String(\"days\"),\n\t\t\t\tRetentionValue:    pulumi.Int(7),\n\t\t\t},\n\t\t\tPolicyItemWeeklies: mongodbatlas.BackupCompliancePolicyPolicyItemWeeklyArray{\n\t\t\t\t\u0026mongodbatlas.BackupCompliancePolicyPolicyItemWeeklyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(0),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"weeks\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(4),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemMonthlies: mongodbatlas.BackupCompliancePolicyPolicyItemMonthlyArray{\n\t\t\t\t\u0026mongodbatlas.BackupCompliancePolicyPolicyItemMonthlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(0),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"months\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(12),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPolicyItemYearlies: mongodbatlas.BackupCompliancePolicyPolicyItemYearlyArray{\n\t\t\t\t\u0026mongodbatlas.BackupCompliancePolicyPolicyItemYearlyArgs{\n\t\t\t\t\tFrequencyInterval: pulumi.Int(1),\n\t\t\t\t\tRetentionUnit:     pulumi.String(\"years\"),\n\t\t\t\t\tRetentionValue:    pulumi.Int(1),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSchedule;\nimport com.pulumi.mongodbatlas.CloudBackupScheduleArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemHourlyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemDailyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemWeeklyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemMonthlyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemYearlyArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudBackupScheduleArgs;\nimport com.pulumi.mongodbatlas.inputs.GetBackupCompliancePolicyArgs;\nimport com.pulumi.mongodbatlas.BackupCompliancePolicy;\nimport com.pulumi.mongodbatlas.BackupCompliancePolicyArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyOnDemandPolicyItemArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyPolicyItemHourlyArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyPolicyItemDailyArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyPolicyItemWeeklyArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyPolicyItemMonthlyArgs;\nimport com.pulumi.mongodbatlas.inputs.BackupCompliancePolicyPolicyItemYearlyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"clusterTest\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"EU_CENTRAL_1\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var testCloudBackupSchedule = new CloudBackupSchedule(\"testCloudBackupSchedule\", CloudBackupScheduleArgs.builder()\n            .projectId(myCluster.projectId())\n            .clusterName(myCluster.name())\n            .referenceHourOfDay(3)\n            .referenceMinuteOfHour(45)\n            .restoreWindowDays(4)\n            .policyItemHourly(CloudBackupSchedulePolicyItemHourlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(1)\n                .build())\n            .policyItemDaily(CloudBackupSchedulePolicyItemDailyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(2)\n                .build())\n            .policyItemWeeklies(CloudBackupSchedulePolicyItemWeeklyArgs.builder()\n                .frequencyInterval(4)\n                .retentionUnit(\"weeks\")\n                .retentionValue(3)\n                .build())\n            .policyItemMonthlies(CloudBackupSchedulePolicyItemMonthlyArgs.builder()\n                .frequencyInterval(5)\n                .retentionUnit(\"months\")\n                .retentionValue(4)\n                .build())\n            .policyItemYearlies(CloudBackupSchedulePolicyItemYearlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"years\")\n                .retentionValue(1)\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getCloudBackupSchedule(GetCloudBackupScheduleArgs.builder()\n            .projectId(testCloudBackupSchedule.projectId())\n            .clusterName(testCloudBackupSchedule.clusterName())\n            .build());\n\n        final var backupPolicy = MongodbatlasFunctions.getBackupCompliancePolicy(GetBackupCompliancePolicyArgs.builder()\n            .projectId(testCloudBackupSchedule.id())\n            .build());\n\n        var backupPolicyBackupCompliancePolicy = new BackupCompliancePolicy(\"backupPolicyBackupCompliancePolicy\", BackupCompliancePolicyArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .authorizedEmail(\"user@email.com\")\n            .authorizedUserFirstName(\"First\")\n            .authorizedUserLastName(\"Last\")\n            .copyProtectionEnabled(false)\n            .pitEnabled(false)\n            .encryptionAtRestEnabled(false)\n            .restoreWindowDays(7)\n            .onDemandPolicyItem(BackupCompliancePolicyOnDemandPolicyItemArgs.builder()\n                .frequencyInterval(0)\n                .retentionUnit(\"days\")\n                .retentionValue(3)\n                .build())\n            .policyItemHourly(BackupCompliancePolicyPolicyItemHourlyArgs.builder()\n                .frequencyInterval(6)\n                .retentionUnit(\"days\")\n                .retentionValue(7)\n                .build())\n            .policyItemDaily(BackupCompliancePolicyPolicyItemDailyArgs.builder()\n                .frequencyInterval(0)\n                .retentionUnit(\"days\")\n                .retentionValue(7)\n                .build())\n            .policyItemWeeklies(BackupCompliancePolicyPolicyItemWeeklyArgs.builder()\n                .frequencyInterval(0)\n                .retentionUnit(\"weeks\")\n                .retentionValue(4)\n                .build())\n            .policyItemMonthlies(BackupCompliancePolicyPolicyItemMonthlyArgs.builder()\n                .frequencyInterval(0)\n                .retentionUnit(\"months\")\n                .retentionValue(12)\n                .build())\n            .policyItemYearlies(BackupCompliancePolicyPolicyItemYearlyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"years\")\n                .retentionValue(1)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: my_cluster\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      name: clusterTest\n      clusterType: REPLICASET\n      backupEnabled: true # enable cloud backup snapshots\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: EU_CENTRAL_1\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  testCloudBackupSchedule:\n    type: mongodbatlas:CloudBackupSchedule\n    name: test\n    properties:\n      projectId: ${myCluster.projectId}\n      clusterName: ${myCluster.name}\n      referenceHourOfDay: 3\n      referenceMinuteOfHour: 45\n      restoreWindowDays: 4 # This will now add the desired policy items to the existing mongodbatlas_cloud_backup_schedule resource\n      policyItemHourly:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 1\n      policyItemDaily:\n        frequencyInterval: 1\n        retentionUnit: days\n        retentionValue: 2\n      policyItemWeeklies:\n        - frequencyInterval: 4\n          retentionUnit: weeks\n          retentionValue: 3\n      policyItemMonthlies:\n        - frequencyInterval: 5\n          retentionUnit: months\n          retentionValue: 4\n      policyItemYearlies:\n        - frequencyInterval: 1\n          retentionUnit: years\n          retentionValue: 1\n  backupPolicyBackupCompliancePolicy:\n    type: mongodbatlas:BackupCompliancePolicy\n    name: backup_policy\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      authorizedEmail: user@email.com\n      authorizedUserFirstName: First\n      authorizedUserLastName: Last\n      copyProtectionEnabled: false\n      pitEnabled: false\n      encryptionAtRestEnabled: false\n      restoreWindowDays: 7\n      onDemandPolicyItem:\n        frequencyInterval: 0\n        retentionUnit: days\n        retentionValue: 3\n      policyItemHourly:\n        frequencyInterval: 6\n        retentionUnit: days\n        retentionValue: 7\n      policyItemDaily:\n        frequencyInterval: 0\n        retentionUnit: days\n        retentionValue: 7\n      policyItemWeeklies:\n        - frequencyInterval: 0\n          retentionUnit: weeks\n          retentionValue: 4\n      policyItemMonthlies:\n        - frequencyInterval: 0\n          retentionUnit: months\n          retentionValue: 12\n      policyItemYearlies:\n        - frequencyInterval: 1\n          retentionUnit: years\n          retentionValue: 1\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCloudBackupSchedule\n      arguments:\n        projectId: ${testCloudBackupSchedule.projectId}\n        clusterName: ${testCloudBackupSchedule.clusterName}\n  backupPolicy:\n    fn::invoke:\n      function: mongodbatlas:getBackupCompliancePolicy\n      arguments:\n        projectId: ${testCloudBackupSchedule.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBackupCompliancePolicy.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getBackupCompliancePolicy.\n","properties":{"authorizedEmail":{"description":"Email address of the user who is authorized to update the Backup Compliance Policy settings.\n","type":"string"},"authorizedUserFirstName":{"description":"First name of the user who authorized to update the Backup Compliance Policy settings.\n","type":"string"},"authorizedUserLastName":{"description":"Last name of the user who authorized to update the Backup Compliance Policy settings.\n","type":"string"},"copyProtectionEnabled":{"description":"Flag that indicates whether to enable additional backup copies for the cluster. If unspecified, this value defaults to false.\n","type":"boolean"},"encryptionAtRestEnabled":{"description":"Flag that indicates whether Encryption at Rest using Customer Key Management is required for all clusters with a Backup Compliance Policy. If unspecified, this value defaults to false.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"onDemandPolicyItems":{"description":"Specifications for on-demand policy.\n","items":{"$ref":"#/types/mongodbatlas:index/getBackupCompliancePolicyOnDemandPolicyItem:getBackupCompliancePolicyOnDemandPolicyItem"},"type":"array"},"pitEnabled":{"description":"Flag that indicates whether the cluster uses Continuous Cloud Backups with a Backup Compliance Policy. If unspecified, this value defaults to false.\n","type":"boolean"},"policyItemDailies":{"description":"Scheduled policy using a daily frequency type, see block fields.\n","items":{"$ref":"#/types/mongodbatlas:index/getBackupCompliancePolicyPolicyItemDaily:getBackupCompliancePolicyPolicyItemDaily"},"type":"array"},"policyItemHourlies":{"description":"Scheduled policy using an hourly frequency type, see block fields.\n","items":{"$ref":"#/types/mongodbatlas:index/getBackupCompliancePolicyPolicyItemHourly:getBackupCompliancePolicyPolicyItemHourly"},"type":"array"},"policyItemMonthlies":{"description":"Scheduled policy using a monthly frequency type, see block fields.\n","items":{"$ref":"#/types/mongodbatlas:index/getBackupCompliancePolicyPolicyItemMonthly:getBackupCompliancePolicyPolicyItemMonthly"},"type":"array"},"policyItemWeeklies":{"description":"Scheduled policy using a weekly frequency type, see block fields.\n","items":{"$ref":"#/types/mongodbatlas:index/getBackupCompliancePolicyPolicyItemWeekly:getBackupCompliancePolicyPolicyItemWeekly"},"type":"array"},"policyItemYearlies":{"description":"Scheduled policy using a yearly frequency type, see block fields.\n","items":{"$ref":"#/types/mongodbatlas:index/getBackupCompliancePolicyPolicyItemYearly:getBackupCompliancePolicyPolicyItemYearly"},"type":"array"},"projectId":{"type":"string"},"restoreWindowDays":{"description":"Number of previous days that you can restore back to with Continuous Cloud Backup with a Backup Compliance Policy. You must specify a positive, non-zero integer, and the maximum retention window can't exceed the hourly retention time. This parameter applies only to Continuous Cloud Backups with a Backup Compliance Policy.\n","type":"integer"},"state":{"description":"Label that indicates the state of the Backup Compliance Policy settings. MongoDB Cloud ignores this setting when you enable or update the Backup Compliance Policy settings.\n","type":"string"},"updatedDate":{"description":"ISO 8601 timestamp format in UTC that indicates when the user updated the Data Protection Policy settings. MongoDB Cloud ignores this setting when you enable or update the Backup Compliance Policy settings.\n","type":"string"},"updatedUser":{"description":"Email address that identifies the user who updated the Backup Compliance Policy settings. MongoDB Cloud ignores this email setting when you enable or update the Backup Compliance Policy settings.\n","type":"string"}},"required":["authorizedEmail","authorizedUserFirstName","authorizedUserLastName","copyProtectionEnabled","encryptionAtRestEnabled","onDemandPolicyItems","pitEnabled","policyItemDailies","policyItemHourlies","policyItemMonthlies","policyItemWeeklies","policyItemYearlies","projectId","restoreWindowDays","state","updatedDate","updatedUser","id"],"type":"object"}},"mongodbatlas:index/getCloudBackupSchedule:getCloudBackupSchedule":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e provides a Cloud Backup Schedule datasource. An Atlas Cloud Backup Schedule provides the current cloud backup schedule for the cluster. \n\n\u003e **NOTE:** To delete an Atlas cluster that has an associated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource and an enabled Backup Compliance Policy, first instruct Terraform to remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource from the state and then use Terraform to delete the cluster. To learn more, see Delete a Cluster with a Backup Compliance Policy.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst myCluster = new mongodbatlas.AdvancedCluster(\"my_cluster\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    name: \"clusterTest\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"EU_CENTRAL_1\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst testCloudBackupSchedule = new mongodbatlas.CloudBackupSchedule(\"test\", {\n    projectId: myCluster.projectId,\n    clusterName: myCluster.name,\n    referenceHourOfDay: 3,\n    referenceMinuteOfHour: 45,\n    restoreWindowDays: 4,\n    policyItemDaily: {\n        frequencyInterval: 1,\n        retentionUnit: \"days\",\n        retentionValue: 14,\n    },\n    copySettings: [{\n        cloudProvider: \"AWS\",\n        frequencies: [\n            \"HOURLY\",\n            \"DAILY\",\n            \"WEEKLY\",\n            \"MONTHLY\",\n            \"YEARLY\",\n            \"ON_DEMAND\",\n        ],\n        regionName: \"US_EAST_1\",\n        zoneId: myCluster.replicationSpecs.apply(replicationSpecs =\u003e replicationSpecs.map(__item =\u003e __item.zoneId?.[0])),\n        shouldCopyOplogs: false,\n    }],\n});\nconst test = mongodbatlas.getCloudBackupScheduleOutput({\n    projectId: testCloudBackupSchedule.projectId,\n    clusterName: testCloudBackupSchedule.clusterName,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nmy_cluster = mongodbatlas.AdvancedCluster(\"my_cluster\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    name=\"clusterTest\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"EU_CENTRAL_1\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest_cloud_backup_schedule = mongodbatlas.CloudBackupSchedule(\"test\",\n    project_id=my_cluster.project_id,\n    cluster_name=my_cluster.name,\n    reference_hour_of_day=3,\n    reference_minute_of_hour=45,\n    restore_window_days=4,\n    policy_item_daily={\n        \"frequency_interval\": 1,\n        \"retention_unit\": \"days\",\n        \"retention_value\": 14,\n    },\n    copy_settings=[{\n        \"cloud_provider\": \"AWS\",\n        \"frequencies\": [\n            \"HOURLY\",\n            \"DAILY\",\n            \"WEEKLY\",\n            \"MONTHLY\",\n            \"YEARLY\",\n            \"ON_DEMAND\",\n        ],\n        \"region_name\": \"US_EAST_1\",\n        \"zone_id\": my_cluster.replication_specs.apply(lambda replication_specs: [__item.zone_id[0] for __item in replication_specs]),\n        \"should_copy_oplogs\": False,\n    }])\ntest = mongodbatlas.get_cloud_backup_schedule_output(project_id=test_cloud_backup_schedule.project_id,\n    cluster_name=test_cloud_backup_schedule.cluster_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myCluster = new Mongodbatlas.AdvancedCluster(\"my_cluster\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Name = \"clusterTest\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"EU_CENTRAL_1\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var testCloudBackupSchedule = new Mongodbatlas.CloudBackupSchedule(\"test\", new()\n    {\n        ProjectId = myCluster.ProjectId,\n        ClusterName = myCluster.Name,\n        ReferenceHourOfDay = 3,\n        ReferenceMinuteOfHour = 45,\n        RestoreWindowDays = 4,\n        PolicyItemDaily = new Mongodbatlas.Inputs.CloudBackupSchedulePolicyItemDailyArgs\n        {\n            FrequencyInterval = 1,\n            RetentionUnit = \"days\",\n            RetentionValue = 14,\n        },\n        CopySettings = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupScheduleCopySettingArgs\n            {\n                CloudProvider = \"AWS\",\n                Frequencies = new[]\n                {\n                    \"HOURLY\",\n                    \"DAILY\",\n                    \"WEEKLY\",\n                    \"MONTHLY\",\n                    \"YEARLY\",\n                    \"ON_DEMAND\",\n                },\n                RegionName = \"US_EAST_1\",\n                ZoneId = myCluster.ReplicationSpecs.Apply(replicationSpecs =\u003e replicationSpecs.Select(__item =\u003e __item.ZoneId[0]).ToList()),\n                ShouldCopyOplogs = false,\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetCloudBackupSchedule.Invoke(new()\n    {\n        ProjectId = testCloudBackupSchedule.ProjectId,\n        ClusterName = testCloudBackupSchedule.ClusterName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nmyCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"my_cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\nProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\nName: pulumi.String(\"clusterTest\"),\nClusterType: pulumi.String(\"REPLICASET\"),\nBackupEnabled: pulumi.Bool(true),\nReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\nRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\nPriority: pulumi.Int(7),\nProviderName: pulumi.String(\"AWS\"),\nRegionName: pulumi.String(\"EU_CENTRAL_1\"),\nElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\nInstanceSize: pulumi.String(\"M10\"),\nNodeCount: pulumi.Int(3),\n},\n},\n},\n},\n},\n})\nif err != nil {\nreturn err\n}\ntestCloudBackupSchedule, err := mongodbatlas.NewCloudBackupSchedule(ctx, \"test\", \u0026mongodbatlas.CloudBackupScheduleArgs{\nProjectId: myCluster.ProjectId,\nClusterName: myCluster.Name,\nReferenceHourOfDay: pulumi.Int(3),\nReferenceMinuteOfHour: pulumi.Int(45),\nRestoreWindowDays: pulumi.Int(4),\nPolicyItemDaily: \u0026mongodbatlas.CloudBackupSchedulePolicyItemDailyArgs{\nFrequencyInterval: pulumi.Int(1),\nRetentionUnit: pulumi.String(\"days\"),\nRetentionValue: pulumi.Int(14),\n},\nCopySettings: mongodbatlas.CloudBackupScheduleCopySettingArray{\n\u0026mongodbatlas.CloudBackupScheduleCopySettingArgs{\nCloudProvider: pulumi.String(\"AWS\"),\nFrequencies: pulumi.StringArray{\npulumi.String(\"HOURLY\"),\npulumi.String(\"DAILY\"),\npulumi.String(\"WEEKLY\"),\npulumi.String(\"MONTHLY\"),\npulumi.String(\"YEARLY\"),\npulumi.String(\"ON_DEMAND\"),\n},\nRegionName: pulumi.String(\"US_EAST_1\"),\nZoneId: pulumi.String(myCluster.ReplicationSpecs.ApplyT(func(replicationSpecs []mongodbatlas.AdvancedClusterReplicationSpec) ([]interface{}, error) {\nvar splat0 []interface{}\nfor _, val0 := range replicationSpecs {\nsplat0 = append(splat0, val0.ZoneId[0])\n}\nreturn splat0, nil\n}).(pulumi.[]interface{}Output)),\nShouldCopyOplogs: pulumi.Bool(false),\n},\n},\n})\nif err != nil {\nreturn err\n}\n_ = mongodbatlas.LookupCloudBackupScheduleOutput(ctx, mongodbatlas.GetCloudBackupScheduleOutputArgs{\nProjectId: testCloudBackupSchedule.ProjectId,\nClusterName: testCloudBackupSchedule.ClusterName,\n}, nil);\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSchedule;\nimport com.pulumi.mongodbatlas.CloudBackupScheduleArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSchedulePolicyItemDailyArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupScheduleCopySettingArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudBackupScheduleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myCluster = new AdvancedCluster(\"myCluster\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .name(\"clusterTest\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"EU_CENTRAL_1\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var testCloudBackupSchedule = new CloudBackupSchedule(\"testCloudBackupSchedule\", CloudBackupScheduleArgs.builder()\n            .projectId(myCluster.projectId())\n            .clusterName(myCluster.name())\n            .referenceHourOfDay(3)\n            .referenceMinuteOfHour(45)\n            .restoreWindowDays(4)\n            .policyItemDaily(CloudBackupSchedulePolicyItemDailyArgs.builder()\n                .frequencyInterval(1)\n                .retentionUnit(\"days\")\n                .retentionValue(14)\n                .build())\n            .copySettings(CloudBackupScheduleCopySettingArgs.builder()\n                .cloudProvider(\"AWS\")\n                .frequencies(                \n                    \"HOURLY\",\n                    \"DAILY\",\n                    \"WEEKLY\",\n                    \"MONTHLY\",\n                    \"YEARLY\",\n                    \"ON_DEMAND\")\n                .regionName(\"US_EAST_1\")\n                .zoneId(myCluster.replicationSpecs().applyValue(_replicationSpecs -\u003e _replicationSpecs.stream().map(element -\u003e element.zoneId()[0]).collect(toList())))\n                .shouldCopyOplogs(false)\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getCloudBackupSchedule(GetCloudBackupScheduleArgs.builder()\n            .projectId(testCloudBackupSchedule.projectId())\n            .clusterName(testCloudBackupSchedule.clusterName())\n            .build());\n\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudBackupSchedule.\n","properties":{"clusterName":{"type":"string","description":"The name of the Atlas cluster that contains the snapshots backup policy you want to retrieve.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getCloudBackupSchedule.\n","properties":{"autoExportEnabled":{"description":"Flag that indicates whether MongoDB Cloud automatically exports Cloud Backup Snapshots to the Export Bucket. Value can be one of the following:\n* true - Enables automatic export of cloud backup snapshots to the Export Bucket.\n* false - Disables automatic export of cloud backup snapshots to the Export Bucket. (default)\n","type":"boolean"},"clusterId":{"description":"Unique identifier of the Atlas cluster.\n","type":"string"},"clusterName":{"type":"string"},"copySettings":{"description":"List that contains a document for each copy setting item in the desired backup policy. See below\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupScheduleCopySetting:getCloudBackupScheduleCopySetting"},"type":"array"},"exports":{"description":"Policy for automatically exporting Cloud Backup Snapshots. See below\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupScheduleExport:getCloudBackupScheduleExport"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"idPolicy":{"description":"Unique identifier of the backup policy.\n","type":"string"},"nextSnapshot":{"description":"UTC ISO 8601 formatted point in time when Atlas will take the next snapshot.\n","type":"string"},"policyItemDailies":{"description":"(Optional) Daily policy item. See below\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSchedulePolicyItemDaily:getCloudBackupSchedulePolicyItemDaily"},"type":"array"},"policyItemHourlies":{"description":"(Optional) Hourly policy item. See below\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSchedulePolicyItemHourly:getCloudBackupSchedulePolicyItemHourly"},"type":"array"},"policyItemMonthlies":{"description":"(Optional) Monthly policy item. See below\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSchedulePolicyItemMonthly:getCloudBackupSchedulePolicyItemMonthly"},"type":"array"},"policyItemWeeklies":{"description":"(Optional) Weekly policy item. See below\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSchedulePolicyItemWeekly:getCloudBackupSchedulePolicyItemWeekly"},"type":"array"},"policyItemYearlies":{"description":"(Optional) Yearly policy item. See below\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSchedulePolicyItemYearly:getCloudBackupSchedulePolicyItemYearly"},"type":"array"},"projectId":{"type":"string"},"referenceHourOfDay":{"description":"UTC Hour of day between 0 and 23 representing which hour of the day that Atlas takes a snapshot.\n","type":"integer"},"referenceMinuteOfHour":{"description":"UTC Minute of day between 0 and 59 representing which minute of the \u003cspan pulumi-lang-nodejs=\"`referenceHourOfDay`\" pulumi-lang-dotnet=\"`ReferenceHourOfDay`\" pulumi-lang-go=\"`referenceHourOfDay`\" pulumi-lang-python=\"`reference_hour_of_day`\" pulumi-lang-yaml=\"`referenceHourOfDay`\" pulumi-lang-java=\"`referenceHourOfDay`\"\u003e`reference_hour_of_day`\u003c/span\u003e that Atlas takes the snapshot.\n","type":"integer"},"restoreWindowDays":{"description":"Specifies a restore window in days for cloud backup to maintain.\n","type":"integer"},"useOrgAndGroupNamesInExportPrefix":{"description":"Specify true to use organization and project names instead of organization and project UUIDs in the path for the metadata files that Atlas uploads to your bucket after it finishes exporting the snapshots. To learn more about the metadata files that Atlas uploads, see [Export Cloud Backup Snapshot](https://www.mongodb.com/docs/atlas/backup/cloud-backup/export/#std-label-cloud-provider-snapshot-export).\n","type":"boolean"}},"required":["autoExportEnabled","clusterId","clusterName","copySettings","exports","idPolicy","nextSnapshot","policyItemDailies","policyItemHourlies","policyItemMonthlies","policyItemWeeklies","policyItemYearlies","projectId","referenceHourOfDay","referenceMinuteOfHour","restoreWindowDays","useOrgAndGroupNamesInExportPrefix","id"],"type":"object"}},"mongodbatlas:index/getCloudBackupSnapshot:getCloudBackupSnapshot":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSnapshot`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSnapshot`\" pulumi-lang-go=\"`CloudBackupSnapshot`\" pulumi-lang-python=\"`CloudBackupSnapshot`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSnapshot`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSnapshot`\"\u003e`mongodbatlas.CloudBackupSnapshot`\u003c/span\u003e provides an Cloud Backup Snapshot datasource. Atlas Cloud Backup Snapshots provide localized backup storage using the native snapshot functionality of the cluster’s cloud service.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testCloudBackupSnapshot = new mongodbatlas.CloudBackupSnapshot(\"test\", {\n    projectId: \"5d0f1f73cf09a29120e173cf\",\n    clusterName: \"MyClusterTest\",\n    description: \"SomeDescription\",\n    retentionInDays: 1,\n});\nconst test = mongodbatlas.getCloudBackupSnapshotOutput({\n    snapshotId: \"5d1285acd5ec13b6c2d1726a\",\n    projectId: testCloudBackupSnapshot.projectId,\n    clusterName: testCloudBackupSnapshot.clusterName,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_cloud_backup_snapshot = mongodbatlas.CloudBackupSnapshot(\"test\",\n    project_id=\"5d0f1f73cf09a29120e173cf\",\n    cluster_name=\"MyClusterTest\",\n    description=\"SomeDescription\",\n    retention_in_days=1)\ntest = mongodbatlas.get_cloud_backup_snapshot_output(snapshot_id=\"5d1285acd5ec13b6c2d1726a\",\n    project_id=test_cloud_backup_snapshot.project_id,\n    cluster_name=test_cloud_backup_snapshot.cluster_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testCloudBackupSnapshot = new Mongodbatlas.CloudBackupSnapshot(\"test\", new()\n    {\n        ProjectId = \"5d0f1f73cf09a29120e173cf\",\n        ClusterName = \"MyClusterTest\",\n        Description = \"SomeDescription\",\n        RetentionInDays = 1,\n    });\n\n    var test = Mongodbatlas.GetCloudBackupSnapshot.Invoke(new()\n    {\n        SnapshotId = \"5d1285acd5ec13b6c2d1726a\",\n        ProjectId = testCloudBackupSnapshot.ProjectId,\n        ClusterName = testCloudBackupSnapshot.ClusterName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCloudBackupSnapshot, err := mongodbatlas.NewCloudBackupSnapshot(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotArgs{\n\t\t\tProjectId:       pulumi.String(\"5d0f1f73cf09a29120e173cf\"),\n\t\t\tClusterName:     pulumi.String(\"MyClusterTest\"),\n\t\t\tDescription:     pulumi.String(\"SomeDescription\"),\n\t\t\tRetentionInDays: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCloudBackupSnapshotOutput(ctx, mongodbatlas.GetCloudBackupSnapshotOutputArgs{\n\t\t\tSnapshotId:  pulumi.String(\"5d1285acd5ec13b6c2d1726a\"),\n\t\t\tProjectId:   testCloudBackupSnapshot.ProjectId,\n\t\t\tClusterName: testCloudBackupSnapshot.ClusterName,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshot;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudBackupSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testCloudBackupSnapshot = new CloudBackupSnapshot(\"testCloudBackupSnapshot\", CloudBackupSnapshotArgs.builder()\n            .projectId(\"5d0f1f73cf09a29120e173cf\")\n            .clusterName(\"MyClusterTest\")\n            .description(\"SomeDescription\")\n            .retentionInDays(1)\n            .build());\n\n        final var test = MongodbatlasFunctions.getCloudBackupSnapshot(GetCloudBackupSnapshotArgs.builder()\n            .snapshotId(\"5d1285acd5ec13b6c2d1726a\")\n            .projectId(testCloudBackupSnapshot.projectId())\n            .clusterName(testCloudBackupSnapshot.clusterName())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testCloudBackupSnapshot:\n    type: mongodbatlas:CloudBackupSnapshot\n    name: test\n    properties:\n      projectId: 5d0f1f73cf09a29120e173cf\n      clusterName: MyClusterTest\n      description: SomeDescription\n      retentionInDays: 1\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCloudBackupSnapshot\n      arguments:\n        snapshotId: 5d1285acd5ec13b6c2d1726a\n        projectId: ${testCloudBackupSnapshot.projectId}\n        clusterName: ${testCloudBackupSnapshot.clusterName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudBackupSnapshot.\n","properties":{"clusterName":{"type":"string","description":"The name of the Atlas cluster that contains the snapshot you want to retrieve.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n"},"snapshotId":{"type":"string","description":"The unique identifier of the snapshot you want to retrieve.\n"}},"type":"object","required":["clusterName","projectId","snapshotId"]},"outputs":{"description":"A collection of values returned by getCloudBackupSnapshot.\n","properties":{"cloudProvider":{"description":"Cloud provider that stores this snapshot.\n","type":"string"},"clusterName":{"type":"string"},"createdAt":{"description":"UTC ISO 8601 formatted point in time when Atlas took the snapshot.\n","type":"string"},"description":{"description":"UDescription of the snapshot. Only present for on-demand snapshots.\n","type":"string"},"expiresAt":{"description":"UTC ISO 8601 formatted point in time when Atlas will delete the snapshot.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"masterKeyUuid":{"description":"Unique ID of the AWS KMS Customer Master Key used to encrypt the snapshot. Only visible for clusters using Encryption at Rest via Customer KMS.\n","type":"string"},"members":{"description":"Block of List of snapshots and the cloud provider where the snapshots are stored. See below\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSnapshotMember:getCloudBackupSnapshotMember"},"type":"array"},"mongodVersion":{"description":"Version of the MongoDB server.\n","type":"string"},"projectId":{"type":"string"},"replicaSetName":{"description":"Label given to a shard or config server from which Atlas took this snapshot.\n","type":"string"},"snapshotId":{"type":"string"},"snapshotIds":{"description":"Unique identifiers of the snapshots created for the shards and config server for a sharded cluster.\n","items":{"type":"string"},"type":"array"},"snapshotType":{"description":"Specified the type of snapshot. Valid values are onDemand and scheduled.\n","type":"string"},"status":{"description":"Current status of the snapshot. One of the following values: queued, inProgress, completed, failed.\n","type":"string"},"storageSizeBytes":{"description":"Specifies the size of the snapshot in bytes.\n","type":"integer"},"type":{"description":"Specifies the type of cluster: replicaSet or shardedCluster.\n","type":"string"}},"required":["cloudProvider","clusterName","createdAt","description","expiresAt","masterKeyUuid","members","mongodVersion","projectId","replicaSetName","snapshotId","snapshotIds","snapshotType","status","storageSizeBytes","type","id"],"type":"object"}},"mongodbatlas:index/getCloudBackupSnapshotExportBucket:getCloudBackupSnapshotExportBucket":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\" pulumi-lang-go=\"`CloudBackupSnapshotExportBucket`\" pulumi-lang-python=\"`CloudBackupSnapshotExportBucket`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSnapshotExportBucket`\"\u003e`mongodbatlas.CloudBackupSnapshotExportBucket`\u003c/span\u003e datasource allows you to retrieve all the buckets for the specified project.\n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testCloudBackupSnapshotExportBucket = new mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", {\n    projectId: \"{PROJECT_ID}\",\n    iamRoleId: \"{IAM_ROLE_ID}\",\n    bucketName: \"example-bucket\",\n    cloudProvider: \"AWS\",\n});\nconst test = mongodbatlas.getCloudBackupSnapshotExportBucketOutput({\n    projectId: \"{PROJECT_ID}\",\n    exportBucketId: testCloudBackupSnapshotExportBucket.exportBucketId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_cloud_backup_snapshot_export_bucket = mongodbatlas.CloudBackupSnapshotExportBucket(\"test\",\n    project_id=\"{PROJECT_ID}\",\n    iam_role_id=\"{IAM_ROLE_ID}\",\n    bucket_name=\"example-bucket\",\n    cloud_provider=\"AWS\")\ntest = mongodbatlas.get_cloud_backup_snapshot_export_bucket_output(project_id=\"{PROJECT_ID}\",\n    export_bucket_id=test_cloud_backup_snapshot_export_bucket.export_bucket_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testCloudBackupSnapshotExportBucket = new Mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        IamRoleId = \"{IAM_ROLE_ID}\",\n        BucketName = \"example-bucket\",\n        CloudProvider = \"AWS\",\n    });\n\n    var test = Mongodbatlas.GetCloudBackupSnapshotExportBucket.Invoke(new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        ExportBucketId = testCloudBackupSnapshotExportBucket.ExportBucketId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCloudBackupSnapshotExportBucket, err := mongodbatlas.NewCloudBackupSnapshotExportBucket(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotExportBucketArgs{\n\t\t\tProjectId:     pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tIamRoleId:     pulumi.String(\"{IAM_ROLE_ID}\"),\n\t\t\tBucketName:    pulumi.String(\"example-bucket\"),\n\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCloudBackupSnapshotExportBucketOutput(ctx, mongodbatlas.GetCloudBackupSnapshotExportBucketOutputArgs{\n\t\t\tProjectId:      pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tExportBucketId: testCloudBackupSnapshotExportBucket.ExportBucketId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucket;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucketArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudBackupSnapshotExportBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testCloudBackupSnapshotExportBucket = new CloudBackupSnapshotExportBucket(\"testCloudBackupSnapshotExportBucket\", CloudBackupSnapshotExportBucketArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .iamRoleId(\"{IAM_ROLE_ID}\")\n            .bucketName(\"example-bucket\")\n            .cloudProvider(\"AWS\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getCloudBackupSnapshotExportBucket(GetCloudBackupSnapshotExportBucketArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .exportBucketId(testCloudBackupSnapshotExportBucket.exportBucketId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testCloudBackupSnapshotExportBucket:\n    type: mongodbatlas:CloudBackupSnapshotExportBucket\n    name: test\n    properties:\n      projectId: '{PROJECT_ID}'\n      iamRoleId: '{IAM_ROLE_ID}'\n      bucketName: example-bucket\n      cloudProvider: AWS\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCloudBackupSnapshotExportBucket\n      arguments:\n        projectId: '{PROJECT_ID}'\n        exportBucketId: ${testCloudBackupSnapshotExportBucket.exportBucketId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudBackupSnapshotExportBucket.\n","properties":{"exportBucketId":{"type":"string","description":"Unique identifier of the snapshot export bucket.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n"}},"type":"object","required":["exportBucketId","projectId"]},"outputs":{"description":"A collection of values returned by getCloudBackupSnapshotExportBucket.\n","properties":{"bucketName":{"description":"Name of the bucket that the provided role ID is authorized to access.\n","type":"string"},"cloudProvider":{"description":"Name of the provider of the cloud service where Atlas can access the S3 bucket.\n","type":"string"},"exportBucketId":{"type":"string"},"iamRoleId":{"description":"Unique identifier of the role that Atlas can use to access the bucket.\n","type":"string"},"id":{"type":"string"},"projectId":{"type":"string"},"roleId":{"description":"Unique identifier of the Azure Service Principal that Atlas can use to access the Azure Blob Storage Container.\n","type":"string"},"serviceUrl":{"description":"URL that identifies the blob Endpoint of the Azure Blob Storage Account.\n","type":"string"},"tenantId":{"deprecationMessage":"This parameter is deprecated.","description":"UUID that identifies the Azure Active Directory Tenant ID.\n","type":"string"}},"required":["bucketName","cloudProvider","exportBucketId","iamRoleId","id","projectId","roleId","serviceUrl","tenantId"],"type":"object"}},"mongodbatlas:index/getCloudBackupSnapshotExportBuckets:getCloudBackupSnapshotExportBuckets":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getCloudBackupSnapshotExportBuckets`\" pulumi-lang-dotnet=\"`mongodbatlas.getCloudBackupSnapshotExportBuckets`\" pulumi-lang-go=\"`getCloudBackupSnapshotExportBuckets`\" pulumi-lang-python=\"`get_cloud_backup_snapshot_export_buckets`\" pulumi-lang-yaml=\"`mongodbatlas.getCloudBackupSnapshotExportBuckets`\" pulumi-lang-java=\"`mongodbatlas.getCloudBackupSnapshotExportBuckets`\"\u003e`mongodbatlas.getCloudBackupSnapshotExportBuckets`\u003c/span\u003e datasource allows you to retrieve all the buckets for the specified project.\n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testCloudBackupSnapshotExportBucket = new mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", {\n    projectId: \"{PROJECT_ID}\",\n    iamRoleId: \"{IAM_ROLE_ID}\",\n    bucketName: \"example-bucket\",\n    cloudProvider: \"AWS\",\n});\nconst test = mongodbatlas.getCloudBackupSnapshotExportBuckets({\n    projectId: \"{PROJECT_ID}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_cloud_backup_snapshot_export_bucket = mongodbatlas.CloudBackupSnapshotExportBucket(\"test\",\n    project_id=\"{PROJECT_ID}\",\n    iam_role_id=\"{IAM_ROLE_ID}\",\n    bucket_name=\"example-bucket\",\n    cloud_provider=\"AWS\")\ntest = mongodbatlas.get_cloud_backup_snapshot_export_buckets(project_id=\"{PROJECT_ID}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testCloudBackupSnapshotExportBucket = new Mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        IamRoleId = \"{IAM_ROLE_ID}\",\n        BucketName = \"example-bucket\",\n        CloudProvider = \"AWS\",\n    });\n\n    var test = Mongodbatlas.GetCloudBackupSnapshotExportBuckets.Invoke(new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewCloudBackupSnapshotExportBucket(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotExportBucketArgs{\n\t\t\tProjectId:     pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tIamRoleId:     pulumi.String(\"{IAM_ROLE_ID}\"),\n\t\t\tBucketName:    pulumi.String(\"example-bucket\"),\n\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.LookupCloudBackupSnapshotExportBuckets(ctx, \u0026mongodbatlas.LookupCloudBackupSnapshotExportBucketsArgs{\n\t\t\tProjectId: \"{PROJECT_ID}\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucket;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucketArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudBackupSnapshotExportBucketsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testCloudBackupSnapshotExportBucket = new CloudBackupSnapshotExportBucket(\"testCloudBackupSnapshotExportBucket\", CloudBackupSnapshotExportBucketArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .iamRoleId(\"{IAM_ROLE_ID}\")\n            .bucketName(\"example-bucket\")\n            .cloudProvider(\"AWS\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getCloudBackupSnapshotExportBuckets(GetCloudBackupSnapshotExportBucketsArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testCloudBackupSnapshotExportBucket:\n    type: mongodbatlas:CloudBackupSnapshotExportBucket\n    name: test\n    properties:\n      projectId: '{PROJECT_ID}'\n      iamRoleId: '{IAM_ROLE_ID}'\n      bucketName: example-bucket\n      cloudProvider: AWS\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCloudBackupSnapshotExportBuckets\n      arguments:\n        projectId: '{PROJECT_ID}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudBackupSnapshotExportBuckets.\n","properties":{"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getCloudBackupSnapshotExportBuckets.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"},"projectId":{"description":"The unique identifier of the project for the Atlas cluster.\n","type":"string"},"results":{"description":"Includes CloudProviderSnapshotExportBucket object for each item detailed in the results array section.\n* `totalCount` - Count of the total number of items in the result set. It may be greater than the number of objects in the results array if the entire result set is paginated.\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSnapshotExportBucketsResult:getCloudBackupSnapshotExportBucketsResult"},"type":"array"},"totalCount":{"type":"integer"}},"required":["projectId","results","totalCount","id"],"type":"object"}},"mongodbatlas:index/getCloudBackupSnapshotExportJob:getCloudBackupSnapshotExportJob":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSnapshotExportJob`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSnapshotExportJob`\" pulumi-lang-go=\"`CloudBackupSnapshotExportJob`\" pulumi-lang-python=\"`CloudBackupSnapshotExportJob`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSnapshotExportJob`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSnapshotExportJob`\"\u003e`mongodbatlas.CloudBackupSnapshotExportJob`\u003c/span\u003e datasource allows you to retrieve a snapshot export job for the specified project and cluster.\n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testCloudBackupSnapshotExportBucket = new mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", {\n    projectId: \"{PROJECT_ID}\",\n    iamRoleId: \"{IAM_ROLE_ID}\",\n    bucketName: \"example_bucket\",\n    cloudProvider: \"AWS\",\n});\nconst testCloudBackupSnapshotExportJob = new mongodbatlas.CloudBackupSnapshotExportJob(\"test\", {\n    projectId: \"{PROJECT_ID}\",\n    clusterName: \"{CLUSTER_NAME}\",\n    snapshotId: \"{SNAPSHOT_ID}\",\n    exportBucketId: testCloudBackupSnapshotExportBucket.exportBucketId,\n    customDatas: [{\n        key: \"exported by\",\n        value: \"myName\",\n    }],\n});\nconst test = mongodbatlas.getCloudBackupSnapshotExportJobOutput({\n    projectId: \"{PROJECT_ID}\",\n    clusterName: \"{CLUSTER_NAME}\",\n    exportJobId: testCloudBackupSnapshotExportJob.exportJobId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_cloud_backup_snapshot_export_bucket = mongodbatlas.CloudBackupSnapshotExportBucket(\"test\",\n    project_id=\"{PROJECT_ID}\",\n    iam_role_id=\"{IAM_ROLE_ID}\",\n    bucket_name=\"example_bucket\",\n    cloud_provider=\"AWS\")\ntest_cloud_backup_snapshot_export_job = mongodbatlas.CloudBackupSnapshotExportJob(\"test\",\n    project_id=\"{PROJECT_ID}\",\n    cluster_name=\"{CLUSTER_NAME}\",\n    snapshot_id=\"{SNAPSHOT_ID}\",\n    export_bucket_id=test_cloud_backup_snapshot_export_bucket.export_bucket_id,\n    custom_datas=[{\n        \"key\": \"exported by\",\n        \"value\": \"myName\",\n    }])\ntest = mongodbatlas.get_cloud_backup_snapshot_export_job_output(project_id=\"{PROJECT_ID}\",\n    cluster_name=\"{CLUSTER_NAME}\",\n    export_job_id=test_cloud_backup_snapshot_export_job.export_job_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testCloudBackupSnapshotExportBucket = new Mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        IamRoleId = \"{IAM_ROLE_ID}\",\n        BucketName = \"example_bucket\",\n        CloudProvider = \"AWS\",\n    });\n\n    var testCloudBackupSnapshotExportJob = new Mongodbatlas.CloudBackupSnapshotExportJob(\"test\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        ClusterName = \"{CLUSTER_NAME}\",\n        SnapshotId = \"{SNAPSHOT_ID}\",\n        ExportBucketId = testCloudBackupSnapshotExportBucket.ExportBucketId,\n        CustomDatas = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSnapshotExportJobCustomDataArgs\n            {\n                Key = \"exported by\",\n                Value = \"myName\",\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetCloudBackupSnapshotExportJob.Invoke(new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        ClusterName = \"{CLUSTER_NAME}\",\n        ExportJobId = testCloudBackupSnapshotExportJob.ExportJobId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCloudBackupSnapshotExportBucket, err := mongodbatlas.NewCloudBackupSnapshotExportBucket(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotExportBucketArgs{\n\t\t\tProjectId:     pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tIamRoleId:     pulumi.String(\"{IAM_ROLE_ID}\"),\n\t\t\tBucketName:    pulumi.String(\"example_bucket\"),\n\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestCloudBackupSnapshotExportJob, err := mongodbatlas.NewCloudBackupSnapshotExportJob(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotExportJobArgs{\n\t\t\tProjectId:      pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tClusterName:    pulumi.String(\"{CLUSTER_NAME}\"),\n\t\t\tSnapshotId:     pulumi.String(\"{SNAPSHOT_ID}\"),\n\t\t\tExportBucketId: testCloudBackupSnapshotExportBucket.ExportBucketId,\n\t\t\tCustomDatas: mongodbatlas.CloudBackupSnapshotExportJobCustomDataArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSnapshotExportJobCustomDataArgs{\n\t\t\t\t\tKey:   pulumi.String(\"exported by\"),\n\t\t\t\t\tValue: pulumi.String(\"myName\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCloudBackupSnapshotExportJobOutput(ctx, mongodbatlas.GetCloudBackupSnapshotExportJobOutputArgs{\n\t\t\tProjectId:   pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tClusterName: pulumi.String(\"{CLUSTER_NAME}\"),\n\t\t\tExportJobId: testCloudBackupSnapshotExportJob.ExportJobId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucket;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucketArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportJob;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportJobArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSnapshotExportJobCustomDataArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudBackupSnapshotExportJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testCloudBackupSnapshotExportBucket = new CloudBackupSnapshotExportBucket(\"testCloudBackupSnapshotExportBucket\", CloudBackupSnapshotExportBucketArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .iamRoleId(\"{IAM_ROLE_ID}\")\n            .bucketName(\"example_bucket\")\n            .cloudProvider(\"AWS\")\n            .build());\n\n        var testCloudBackupSnapshotExportJob = new CloudBackupSnapshotExportJob(\"testCloudBackupSnapshotExportJob\", CloudBackupSnapshotExportJobArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .clusterName(\"{CLUSTER_NAME}\")\n            .snapshotId(\"{SNAPSHOT_ID}\")\n            .exportBucketId(testCloudBackupSnapshotExportBucket.exportBucketId())\n            .customDatas(CloudBackupSnapshotExportJobCustomDataArgs.builder()\n                .key(\"exported by\")\n                .value(\"myName\")\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getCloudBackupSnapshotExportJob(GetCloudBackupSnapshotExportJobArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .clusterName(\"{CLUSTER_NAME}\")\n            .exportJobId(testCloudBackupSnapshotExportJob.exportJobId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testCloudBackupSnapshotExportBucket:\n    type: mongodbatlas:CloudBackupSnapshotExportBucket\n    name: test\n    properties:\n      projectId: '{PROJECT_ID}'\n      iamRoleId: '{IAM_ROLE_ID}'\n      bucketName: example_bucket\n      cloudProvider: AWS\n  testCloudBackupSnapshotExportJob:\n    type: mongodbatlas:CloudBackupSnapshotExportJob\n    name: test\n    properties:\n      projectId: '{PROJECT_ID}'\n      clusterName: '{CLUSTER_NAME}'\n      snapshotId: '{SNAPSHOT_ID}'\n      exportBucketId: ${testCloudBackupSnapshotExportBucket.exportBucketId}\n      customDatas:\n        - key: exported by\n          value: myName\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCloudBackupSnapshotExportJob\n      arguments:\n        projectId: '{PROJECT_ID}'\n        clusterName: '{CLUSTER_NAME}'\n        exportJobId: ${testCloudBackupSnapshotExportJob.exportJobId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudBackupSnapshotExportJob.\n","properties":{"clusterName":{"type":"string","description":"Name of the Atlas cluster whose export job you want to retrieve.\n"},"exportJobId":{"type":"string","description":"Unique identifier of the export job to retrieve.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project which contains the Atlas cluster whose snapshot you want to retrieve.\n"}},"type":"object","required":["clusterName","exportJobId","projectId"]},"outputs":{"description":"A collection of values returned by getCloudBackupSnapshotExportJob.\n","properties":{"clusterName":{"type":"string"},"components":{"description":"_Returned for sharded clusters only._ Export job details for each replica set in the sharded cluster.\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSnapshotExportJobComponent:getCloudBackupSnapshotExportJobComponent"},"type":"array"},"createdAt":{"description":"Timestamp in ISO 8601 date and time format in UTC when the export job was created.\n","type":"string"},"customDatas":{"description":"Custom data to include in the metadata file named `.complete` that Atlas uploads to the bucket when the export job finishes. Custom data can be specified as key and value pairs.\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSnapshotExportJobCustomData:getCloudBackupSnapshotExportJobCustomData"},"type":"array"},"exportBucketId":{"description":"Unique identifier of the AWS bucket to export the Cloud Backup snapshot to.\n","type":"string"},"exportJobId":{"description":"Unique identifier of the export job.\n* `prefix ` - Full path on the cloud provider bucket to the folder where the snapshot is exported. The path is in the following format:`/exported_snapshots/{ORG-NAME}/{PROJECT-NAME}/{CLUSTER-NAME}/{SNAPSHOT-INITIATION-DATE}/{TIMESTAMP}`\n","type":"string"},"exportStatusExportedCollections":{"type":"integer"},"exportStatusTotalCollections":{"type":"integer"},"finishedAt":{"description":"Timestamp in ISO 8601 date and time format in UTC when the export job completes.\n","type":"string"},"id":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"snapshotId":{"description":"Unique identifier of the Cloud Backup snapshot to export.\n","type":"string"},"state":{"description":"Status of the export job. Value can be one of the following:\n* `Queued` - indicates that the export job is queued\n* `InProgress` - indicates that the snapshot is being exported\n* `Successful` - indicates that the export job has completed successfully\n* `Failed` - indicates that the export job has failed\n* `Cancelled` - indicates that the export job has cancelled\n","type":"string"}},"required":["clusterName","components","createdAt","customDatas","exportBucketId","exportJobId","exportStatusExportedCollections","exportStatusTotalCollections","finishedAt","id","prefix","projectId","snapshotId","state"],"type":"object"}},"mongodbatlas:index/getCloudBackupSnapshotExportJobs:getCloudBackupSnapshotExportJobs":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getCloudBackupSnapshotExportJobs`\" pulumi-lang-dotnet=\"`mongodbatlas.getCloudBackupSnapshotExportJobs`\" pulumi-lang-go=\"`getCloudBackupSnapshotExportJobs`\" pulumi-lang-python=\"`get_cloud_backup_snapshot_export_jobs`\" pulumi-lang-yaml=\"`mongodbatlas.getCloudBackupSnapshotExportJobs`\" pulumi-lang-java=\"`mongodbatlas.getCloudBackupSnapshotExportJobs`\"\u003e`mongodbatlas.getCloudBackupSnapshotExportJobs`\u003c/span\u003e datasource allows you to retrieve all the buckets for the specified project.\n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testCloudBackupSnapshotExportBucket = new mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", {\n    projectId: \"{PROJECT_ID}\",\n    iamRoleId: \"{IAM_ROLE_ID}\",\n    bucketName: \"example_bucket\",\n    cloudProvider: \"AWS\",\n});\nconst testCloudBackupSnapshotExportJob = new mongodbatlas.CloudBackupSnapshotExportJob(\"test\", {\n    projectId: \"{PROJECT_ID}\",\n    clusterName: \"{CLUSTER_NAME}\",\n    snapshotId: \"{SNAPSHOT_ID}\",\n    exportBucketId: testCloudBackupSnapshotExportBucket.exportBucketId,\n    customDatas: [{\n        key: \"exported by\",\n        value: \"myName\",\n    }],\n});\nconst test = mongodbatlas.getCloudBackupSnapshotExportJobs({\n    projectId: \"{PROJECT_ID}\",\n    clusterName: \"{CLUSTER_NAME}\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_cloud_backup_snapshot_export_bucket = mongodbatlas.CloudBackupSnapshotExportBucket(\"test\",\n    project_id=\"{PROJECT_ID}\",\n    iam_role_id=\"{IAM_ROLE_ID}\",\n    bucket_name=\"example_bucket\",\n    cloud_provider=\"AWS\")\ntest_cloud_backup_snapshot_export_job = mongodbatlas.CloudBackupSnapshotExportJob(\"test\",\n    project_id=\"{PROJECT_ID}\",\n    cluster_name=\"{CLUSTER_NAME}\",\n    snapshot_id=\"{SNAPSHOT_ID}\",\n    export_bucket_id=test_cloud_backup_snapshot_export_bucket.export_bucket_id,\n    custom_datas=[{\n        \"key\": \"exported by\",\n        \"value\": \"myName\",\n    }])\ntest = mongodbatlas.get_cloud_backup_snapshot_export_jobs(project_id=\"{PROJECT_ID}\",\n    cluster_name=\"{CLUSTER_NAME}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testCloudBackupSnapshotExportBucket = new Mongodbatlas.CloudBackupSnapshotExportBucket(\"test\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        IamRoleId = \"{IAM_ROLE_ID}\",\n        BucketName = \"example_bucket\",\n        CloudProvider = \"AWS\",\n    });\n\n    var testCloudBackupSnapshotExportJob = new Mongodbatlas.CloudBackupSnapshotExportJob(\"test\", new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        ClusterName = \"{CLUSTER_NAME}\",\n        SnapshotId = \"{SNAPSHOT_ID}\",\n        ExportBucketId = testCloudBackupSnapshotExportBucket.ExportBucketId,\n        CustomDatas = new[]\n        {\n            new Mongodbatlas.Inputs.CloudBackupSnapshotExportJobCustomDataArgs\n            {\n                Key = \"exported by\",\n                Value = \"myName\",\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetCloudBackupSnapshotExportJobs.Invoke(new()\n    {\n        ProjectId = \"{PROJECT_ID}\",\n        ClusterName = \"{CLUSTER_NAME}\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCloudBackupSnapshotExportBucket, err := mongodbatlas.NewCloudBackupSnapshotExportBucket(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotExportBucketArgs{\n\t\t\tProjectId:     pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tIamRoleId:     pulumi.String(\"{IAM_ROLE_ID}\"),\n\t\t\tBucketName:    pulumi.String(\"example_bucket\"),\n\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewCloudBackupSnapshotExportJob(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotExportJobArgs{\n\t\t\tProjectId:      pulumi.String(\"{PROJECT_ID}\"),\n\t\t\tClusterName:    pulumi.String(\"{CLUSTER_NAME}\"),\n\t\t\tSnapshotId:     pulumi.String(\"{SNAPSHOT_ID}\"),\n\t\t\tExportBucketId: testCloudBackupSnapshotExportBucket.ExportBucketId,\n\t\t\tCustomDatas: mongodbatlas.CloudBackupSnapshotExportJobCustomDataArray{\n\t\t\t\t\u0026mongodbatlas.CloudBackupSnapshotExportJobCustomDataArgs{\n\t\t\t\t\tKey:   pulumi.String(\"exported by\"),\n\t\t\t\t\tValue: pulumi.String(\"myName\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.LookupCloudBackupSnapshotExportJobs(ctx, \u0026mongodbatlas.LookupCloudBackupSnapshotExportJobsArgs{\n\t\t\tProjectId:   \"{PROJECT_ID}\",\n\t\t\tClusterName: \"{CLUSTER_NAME}\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucket;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportBucketArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportJob;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotExportJobArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSnapshotExportJobCustomDataArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudBackupSnapshotExportJobsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testCloudBackupSnapshotExportBucket = new CloudBackupSnapshotExportBucket(\"testCloudBackupSnapshotExportBucket\", CloudBackupSnapshotExportBucketArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .iamRoleId(\"{IAM_ROLE_ID}\")\n            .bucketName(\"example_bucket\")\n            .cloudProvider(\"AWS\")\n            .build());\n\n        var testCloudBackupSnapshotExportJob = new CloudBackupSnapshotExportJob(\"testCloudBackupSnapshotExportJob\", CloudBackupSnapshotExportJobArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .clusterName(\"{CLUSTER_NAME}\")\n            .snapshotId(\"{SNAPSHOT_ID}\")\n            .exportBucketId(testCloudBackupSnapshotExportBucket.exportBucketId())\n            .customDatas(CloudBackupSnapshotExportJobCustomDataArgs.builder()\n                .key(\"exported by\")\n                .value(\"myName\")\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getCloudBackupSnapshotExportJobs(GetCloudBackupSnapshotExportJobsArgs.builder()\n            .projectId(\"{PROJECT_ID}\")\n            .clusterName(\"{CLUSTER_NAME}\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testCloudBackupSnapshotExportBucket:\n    type: mongodbatlas:CloudBackupSnapshotExportBucket\n    name: test\n    properties:\n      projectId: '{PROJECT_ID}'\n      iamRoleId: '{IAM_ROLE_ID}'\n      bucketName: example_bucket\n      cloudProvider: AWS\n  testCloudBackupSnapshotExportJob:\n    type: mongodbatlas:CloudBackupSnapshotExportJob\n    name: test\n    properties:\n      projectId: '{PROJECT_ID}'\n      clusterName: '{CLUSTER_NAME}'\n      snapshotId: '{SNAPSHOT_ID}'\n      exportBucketId: ${testCloudBackupSnapshotExportBucket.exportBucketId}\n      customDatas:\n        - key: exported by\n          value: myName\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCloudBackupSnapshotExportJobs\n      arguments:\n        projectId: '{PROJECT_ID}'\n        clusterName: '{CLUSTER_NAME}'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudBackupSnapshotExportJobs.\n","properties":{"clusterName":{"type":"string","description":"Name of the Atlas cluster whose export job you want to retrieve.\n"},"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getCloudBackupSnapshotExportJobs.\n","properties":{"clusterName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"},"projectId":{"description":"The unique identifier of the project for the Atlas cluster.\n","type":"string"},"results":{"description":"Includes CloudProviderSnapshotExportJob object for each item detailed in the results array section.\n* `totalCount` - Count of the total number of items in the result set. It may be greater than the number of objects in the results array if the entire result set is paginated.\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSnapshotExportJobsResult:getCloudBackupSnapshotExportJobsResult"},"type":"array"},"totalCount":{"type":"integer"}},"required":["clusterName","projectId","results","totalCount","id"],"type":"object"}},"mongodbatlas:index/getCloudBackupSnapshotRestoreJob:getCloudBackupSnapshotRestoreJob":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\" pulumi-lang-go=\"`CloudBackupSnapshotRestoreJob`\" pulumi-lang-python=\"`CloudBackupSnapshotRestoreJob`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSnapshotRestoreJob`\"\u003e`mongodbatlas.CloudBackupSnapshotRestoreJob`\u003c/span\u003e provides a Cloud Backup Snapshot Restore Job datasource. Gets all the cloud backup snapshot restore jobs for the specified cluster.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\nFirst create a snapshot of the desired cluster. Then request that snapshot be restored in an automated fashion to the designated cluster and project.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testCloudBackupSnapshot = new mongodbatlas.CloudBackupSnapshot(\"test\", {\n    projectId: \"5cf5a45a9ccf6400e60981b6\",\n    clusterName: \"MyCluster\",\n    description: \"MyDescription\",\n    retentionInDays: 1,\n});\nconst testCloudBackupSnapshotRestoreJob = new mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\", {\n    projectId: \"5cf5a45a9ccf6400e60981b6\",\n    clusterName: \"MyCluster\",\n    snapshotId: testCloudBackupSnapshot.id,\n    deliveryType: [{\n        automated: true,\n        targetClusterName: \"MyCluster\",\n        targetProjectId: \"5cf5a45a9ccf6400e60981b6\",\n    }],\n});\nconst test = mongodbatlas.getCloudBackupSnapshotRestoreJobOutput({\n    projectId: testCloudBackupSnapshotRestoreJob.projectId,\n    clusterName: testCloudBackupSnapshotRestoreJob.clusterName,\n    snapshotRestoreJobId: testCloudBackupSnapshotRestoreJob.snapshotRestoreJobId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_cloud_backup_snapshot = mongodbatlas.CloudBackupSnapshot(\"test\",\n    project_id=\"5cf5a45a9ccf6400e60981b6\",\n    cluster_name=\"MyCluster\",\n    description=\"MyDescription\",\n    retention_in_days=1)\ntest_cloud_backup_snapshot_restore_job = mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\",\n    project_id=\"5cf5a45a9ccf6400e60981b6\",\n    cluster_name=\"MyCluster\",\n    snapshot_id=test_cloud_backup_snapshot.id,\n    delivery_type=[{\n        \"automated\": True,\n        \"targetClusterName\": \"MyCluster\",\n        \"targetProjectId\": \"5cf5a45a9ccf6400e60981b6\",\n    }])\ntest = mongodbatlas.get_cloud_backup_snapshot_restore_job_output(project_id=test_cloud_backup_snapshot_restore_job.project_id,\n    cluster_name=test_cloud_backup_snapshot_restore_job.cluster_name,\n    snapshot_restore_job_id=test_cloud_backup_snapshot_restore_job.snapshot_restore_job_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testCloudBackupSnapshot = new Mongodbatlas.CloudBackupSnapshot(\"test\", new()\n    {\n        ProjectId = \"5cf5a45a9ccf6400e60981b6\",\n        ClusterName = \"MyCluster\",\n        Description = \"MyDescription\",\n        RetentionInDays = 1,\n    });\n\n    var testCloudBackupSnapshotRestoreJob = new Mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\", new()\n    {\n        ProjectId = \"5cf5a45a9ccf6400e60981b6\",\n        ClusterName = \"MyCluster\",\n        SnapshotId = testCloudBackupSnapshot.Id,\n        DeliveryType = new[]\n        {\n            \n            {\n                { \"automated\", true },\n                { \"targetClusterName\", \"MyCluster\" },\n                { \"targetProjectId\", \"5cf5a45a9ccf6400e60981b6\" },\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetCloudBackupSnapshotRestoreJob.Invoke(new()\n    {\n        ProjectId = testCloudBackupSnapshotRestoreJob.ProjectId,\n        ClusterName = testCloudBackupSnapshotRestoreJob.ClusterName,\n        SnapshotRestoreJobId = testCloudBackupSnapshotRestoreJob.SnapshotRestoreJobId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCloudBackupSnapshot, err := mongodbatlas.NewCloudBackupSnapshot(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotArgs{\n\t\t\tProjectId:       pulumi.String(\"5cf5a45a9ccf6400e60981b6\"),\n\t\t\tClusterName:     pulumi.String(\"MyCluster\"),\n\t\t\tDescription:     pulumi.String(\"MyDescription\"),\n\t\t\tRetentionInDays: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestCloudBackupSnapshotRestoreJob, err := mongodbatlas.NewCloudBackupSnapshotRestoreJob(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotRestoreJobArgs{\n\t\t\tProjectId:   pulumi.String(\"5cf5a45a9ccf6400e60981b6\"),\n\t\t\tClusterName: pulumi.String(\"MyCluster\"),\n\t\t\tSnapshotId:  testCloudBackupSnapshot.ID(),\n\t\t\tDeliveryType: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"automated\":         true,\n\t\t\t\t\t\"targetClusterName\": \"MyCluster\",\n\t\t\t\t\t\"targetProjectId\":   \"5cf5a45a9ccf6400e60981b6\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCloudBackupSnapshotRestoreJobOutput(ctx, mongodbatlas.GetCloudBackupSnapshotRestoreJobOutputArgs{\n\t\t\tProjectId:            testCloudBackupSnapshotRestoreJob.ProjectId,\n\t\t\tClusterName:          testCloudBackupSnapshotRestoreJob.ClusterName,\n\t\t\tSnapshotRestoreJobId: testCloudBackupSnapshotRestoreJob.SnapshotRestoreJobId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshot;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJob;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJobArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudBackupSnapshotRestoreJobArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testCloudBackupSnapshot = new CloudBackupSnapshot(\"testCloudBackupSnapshot\", CloudBackupSnapshotArgs.builder()\n            .projectId(\"5cf5a45a9ccf6400e60981b6\")\n            .clusterName(\"MyCluster\")\n            .description(\"MyDescription\")\n            .retentionInDays(1)\n            .build());\n\n        var testCloudBackupSnapshotRestoreJob = new CloudBackupSnapshotRestoreJob(\"testCloudBackupSnapshotRestoreJob\", CloudBackupSnapshotRestoreJobArgs.builder()\n            .projectId(\"5cf5a45a9ccf6400e60981b6\")\n            .clusterName(\"MyCluster\")\n            .snapshotId(testCloudBackupSnapshot.id())\n            .deliveryType(List.of(Map.ofEntries(\n                Map.entry(\"automated\", true),\n                Map.entry(\"targetClusterName\", \"MyCluster\"),\n                Map.entry(\"targetProjectId\", \"5cf5a45a9ccf6400e60981b6\")\n            )))\n            .build());\n\n        final var test = MongodbatlasFunctions.getCloudBackupSnapshotRestoreJob(GetCloudBackupSnapshotRestoreJobArgs.builder()\n            .projectId(testCloudBackupSnapshotRestoreJob.projectId())\n            .clusterName(testCloudBackupSnapshotRestoreJob.clusterName())\n            .snapshotRestoreJobId(testCloudBackupSnapshotRestoreJob.snapshotRestoreJobId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testCloudBackupSnapshot:\n    type: mongodbatlas:CloudBackupSnapshot\n    name: test\n    properties:\n      projectId: 5cf5a45a9ccf6400e60981b6\n      clusterName: MyCluster\n      description: MyDescription\n      retentionInDays: 1\n  testCloudBackupSnapshotRestoreJob:\n    type: mongodbatlas:CloudBackupSnapshotRestoreJob\n    name: test\n    properties:\n      projectId: 5cf5a45a9ccf6400e60981b6\n      clusterName: MyCluster\n      snapshotId: ${testCloudBackupSnapshot.id}\n      deliveryType:\n        - automated: true\n          targetClusterName: MyCluster\n          targetProjectId: 5cf5a45a9ccf6400e60981b6\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCloudBackupSnapshotRestoreJob\n      arguments:\n        projectId: ${testCloudBackupSnapshotRestoreJob.projectId}\n        clusterName: ${testCloudBackupSnapshotRestoreJob.clusterName}\n        snapshotRestoreJobId: ${testCloudBackupSnapshotRestoreJob.snapshotRestoreJobId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudBackupSnapshotRestoreJob.\n","properties":{"clusterName":{"type":"string","description":"The name of the Atlas cluster for which you want to retrieve the restore job.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n","willReplaceOnChanges":true},"snapshotRestoreJobId":{"type":"string","description":"The unique identifier of the restore job to retrieve.\n"}},"type":"object","required":["clusterName","projectId","snapshotRestoreJobId"]},"outputs":{"description":"A collection of values returned by getCloudBackupSnapshotRestoreJob.\n","properties":{"cancelled":{"description":"Indicates whether the restore job was canceled.\n","type":"boolean"},"clusterName":{"type":"string"},"deliveryType":{"description":"Type of restore job to create. Possible values are: automated and download.\n","type":"string"},"deliveryUrls":{"description":"One or more URLs for the compressed snapshot files for manual download. Only visible if deliveryType is download.\n","items":{"type":"string"},"type":"array"},"expired":{"description":"Indicates whether the restore job expired.\n","type":"boolean"},"expiresAt":{"description":"UTC ISO 8601 formatted point in time when the restore job expires.\n","type":"string"},"failed":{"description":"Indicates whether the restore job failed.\n","type":"boolean"},"finishedAt":{"description":"UTC ISO 8601 formatted point in time when the restore job completed.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"oplogInc":{"type":"integer"},"oplogTs":{"type":"integer"},"pointInTimeUtcSeconds":{"type":"integer"},"projectId":{"type":"string"},"snapshotId":{"description":"Unique identifier of the source snapshot ID of the restore job.\n","type":"string"},"snapshotRestoreJobId":{"type":"string"},"targetClusterName":{"description":"Name of the target Atlas cluster to which the restore job restores the snapshot. Only visible if deliveryType is automated.\n","type":"string"},"targetProjectId":{"description":"Name of the target Atlas project of the restore job. Only visible if deliveryType is automated.\n","type":"string"},"timestamp":{"description":"Timestamp in ISO 8601 date and time format in UTC when the snapshot associated to snapshotId was taken.\n* `oplogTs` - Timestamp in the number of seconds that have elapsed since the UNIX epoch.\n* `oplogInc` - Oplog operation number from which to you want to restore this snapshot.\n* `pointInTimeUTCSeconds` - Timestamp in the number of seconds that have elapsed since the UNIX epoch.\n","type":"string"}},"required":["cancelled","clusterName","deliveryType","deliveryUrls","expired","expiresAt","failed","finishedAt","oplogInc","oplogTs","pointInTimeUtcSeconds","projectId","snapshotId","snapshotRestoreJobId","targetClusterName","targetProjectId","timestamp","id"],"type":"object"}},"mongodbatlas:index/getCloudBackupSnapshotRestoreJobs:getCloudBackupSnapshotRestoreJobs":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getCloudBackupSnapshotRestoreJobs`\" pulumi-lang-dotnet=\"`mongodbatlas.getCloudBackupSnapshotRestoreJobs`\" pulumi-lang-go=\"`getCloudBackupSnapshotRestoreJobs`\" pulumi-lang-python=\"`get_cloud_backup_snapshot_restore_jobs`\" pulumi-lang-yaml=\"`mongodbatlas.getCloudBackupSnapshotRestoreJobs`\" pulumi-lang-java=\"`mongodbatlas.getCloudBackupSnapshotRestoreJobs`\"\u003e`mongodbatlas.getCloudBackupSnapshotRestoreJobs`\u003c/span\u003e provides a Cloud Backup Snapshot Restore Jobs datasource. Gets all the cloud backup snapshot restore jobs for the specified cluster.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\nFirst create a snapshot of the desired cluster. Then request that snapshot be restored in an automated fashion to the designated cluster and project.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testCloudBackupSnapshot = new mongodbatlas.CloudBackupSnapshot(\"test\", {\n    projectId: \"5cf5a45a9ccf6400e60981b6\",\n    clusterName: \"MyCluster\",\n    description: \"MyDescription\",\n    retentionInDays: 1,\n});\nconst testCloudBackupSnapshotRestoreJob = new mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\", {\n    projectId: \"5cf5a45a9ccf6400e60981b6\",\n    clusterName: \"MyCluster\",\n    snapshotId: testCloudBackupSnapshot.id,\n    deliveryTypeConfig: {\n        automated: true,\n        targetClusterName: \"MyCluster\",\n        targetProjectId: \"5cf5a45a9ccf6400e60981b6\",\n    },\n});\nconst test = pulumi.all([testCloudBackupSnapshotRestoreJob.projectId, testCloudBackupSnapshotRestoreJob.clusterName]).apply(([projectId, clusterName]) =\u003e mongodbatlas.getCloudBackupSnapshotRestoreJobsOutput({\n    projectId: projectId,\n    clusterName: clusterName,\n    pageNum: 1,\n    itemsPerPage: 5,\n}));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_cloud_backup_snapshot = mongodbatlas.CloudBackupSnapshot(\"test\",\n    project_id=\"5cf5a45a9ccf6400e60981b6\",\n    cluster_name=\"MyCluster\",\n    description=\"MyDescription\",\n    retention_in_days=1)\ntest_cloud_backup_snapshot_restore_job = mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\",\n    project_id=\"5cf5a45a9ccf6400e60981b6\",\n    cluster_name=\"MyCluster\",\n    snapshot_id=test_cloud_backup_snapshot.id,\n    delivery_type_config={\n        \"automated\": True,\n        \"target_cluster_name\": \"MyCluster\",\n        \"target_project_id\": \"5cf5a45a9ccf6400e60981b6\",\n    })\ntest = pulumi.Output.all(\n    project_id=test_cloud_backup_snapshot_restore_job.project_id,\n    cluster_name=test_cloud_backup_snapshot_restore_job.cluster_name\n).apply(lambda resolved_outputs: mongodbatlas.get_cloud_backup_snapshot_restore_jobs_output(project_id=resolved_outputs['project_id'],\n    cluster_name=resolved_outputs['cluster_name'],\n    page_num=1,\n    items_per_page=5))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testCloudBackupSnapshot = new Mongodbatlas.CloudBackupSnapshot(\"test\", new()\n    {\n        ProjectId = \"5cf5a45a9ccf6400e60981b6\",\n        ClusterName = \"MyCluster\",\n        Description = \"MyDescription\",\n        RetentionInDays = 1,\n    });\n\n    var testCloudBackupSnapshotRestoreJob = new Mongodbatlas.CloudBackupSnapshotRestoreJob(\"test\", new()\n    {\n        ProjectId = \"5cf5a45a9ccf6400e60981b6\",\n        ClusterName = \"MyCluster\",\n        SnapshotId = testCloudBackupSnapshot.Id,\n        DeliveryTypeConfig = new Mongodbatlas.Inputs.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs\n        {\n            Automated = true,\n            TargetClusterName = \"MyCluster\",\n            TargetProjectId = \"5cf5a45a9ccf6400e60981b6\",\n        },\n    });\n\n    var test = Mongodbatlas.GetCloudBackupSnapshotRestoreJobs.Invoke(new()\n    {\n        ProjectId = testCloudBackupSnapshotRestoreJob.ProjectId,\n        ClusterName = testCloudBackupSnapshotRestoreJob.ClusterName,\n        PageNum = 1,\n        ItemsPerPage = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCloudBackupSnapshot, err := mongodbatlas.NewCloudBackupSnapshot(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotArgs{\n\t\t\tProjectId:       pulumi.String(\"5cf5a45a9ccf6400e60981b6\"),\n\t\t\tClusterName:     pulumi.String(\"MyCluster\"),\n\t\t\tDescription:     pulumi.String(\"MyDescription\"),\n\t\t\tRetentionInDays: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestCloudBackupSnapshotRestoreJob, err := mongodbatlas.NewCloudBackupSnapshotRestoreJob(ctx, \"test\", \u0026mongodbatlas.CloudBackupSnapshotRestoreJobArgs{\n\t\t\tProjectId:   pulumi.String(\"5cf5a45a9ccf6400e60981b6\"),\n\t\t\tClusterName: pulumi.String(\"MyCluster\"),\n\t\t\tSnapshotId:  testCloudBackupSnapshot.ID(),\n\t\t\tDeliveryTypeConfig: \u0026mongodbatlas.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs{\n\t\t\t\tAutomated:         pulumi.Bool(true),\n\t\t\t\tTargetClusterName: pulumi.String(\"MyCluster\"),\n\t\t\t\tTargetProjectId:   pulumi.String(\"5cf5a45a9ccf6400e60981b6\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = pulumi.All(testCloudBackupSnapshotRestoreJob.ProjectId, testCloudBackupSnapshotRestoreJob.ClusterName).ApplyT(func(_args []interface{}) (mongodbatlas.GetCloudBackupSnapshotRestoreJobsResult, error) {\n\t\t\tprojectId := _args[0].(string)\n\t\t\tclusterName := _args[1].(string)\n\t\t\treturn mongodbatlas.GetCloudBackupSnapshotRestoreJobsResult(interface{}(mongodbatlas.LookupCloudBackupSnapshotRestoreJobs(ctx, \u0026mongodbatlas.LookupCloudBackupSnapshotRestoreJobsArgs{\n\t\t\t\tProjectId:    projectId,\n\t\t\t\tClusterName:  clusterName,\n\t\t\t\tPageNum:      pulumi.IntRef(pulumi.IntRef(int(1))),\n\t\t\t\tItemsPerPage: pulumi.IntRef(pulumi.IntRef(int(5))),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudBackupSnapshotRestoreJobsResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshot;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotArgs;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJob;\nimport com.pulumi.mongodbatlas.CloudBackupSnapshotRestoreJobArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudBackupSnapshotRestoreJobsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testCloudBackupSnapshot = new CloudBackupSnapshot(\"testCloudBackupSnapshot\", CloudBackupSnapshotArgs.builder()\n            .projectId(\"5cf5a45a9ccf6400e60981b6\")\n            .clusterName(\"MyCluster\")\n            .description(\"MyDescription\")\n            .retentionInDays(1)\n            .build());\n\n        var testCloudBackupSnapshotRestoreJob = new CloudBackupSnapshotRestoreJob(\"testCloudBackupSnapshotRestoreJob\", CloudBackupSnapshotRestoreJobArgs.builder()\n            .projectId(\"5cf5a45a9ccf6400e60981b6\")\n            .clusterName(\"MyCluster\")\n            .snapshotId(testCloudBackupSnapshot.id())\n            .deliveryTypeConfig(CloudBackupSnapshotRestoreJobDeliveryTypeConfigArgs.builder()\n                .automated(true)\n                .targetClusterName(\"MyCluster\")\n                .targetProjectId(\"5cf5a45a9ccf6400e60981b6\")\n                .build())\n            .build());\n\n        final var test = Output.tuple(testCloudBackupSnapshotRestoreJob.projectId(), testCloudBackupSnapshotRestoreJob.clusterName()).applyValue(values -\u003e {\n            var projectId = values.t1;\n            var clusterName = values.t2;\n            return MongodbatlasFunctions.getCloudBackupSnapshotRestoreJobs(GetCloudBackupSnapshotRestoreJobsArgs.builder()\n                .projectId(projectId)\n                .clusterName(clusterName)\n                .pageNum(1)\n                .itemsPerPage(5)\n                .build());\n        });\n\n    }\n}\n```\n```yaml\nresources:\n  testCloudBackupSnapshot:\n    type: mongodbatlas:CloudBackupSnapshot\n    name: test\n    properties:\n      projectId: 5cf5a45a9ccf6400e60981b6\n      clusterName: MyCluster\n      description: MyDescription\n      retentionInDays: 1\n  testCloudBackupSnapshotRestoreJob:\n    type: mongodbatlas:CloudBackupSnapshotRestoreJob\n    name: test\n    properties:\n      projectId: 5cf5a45a9ccf6400e60981b6\n      clusterName: MyCluster\n      snapshotId: ${testCloudBackupSnapshot.id}\n      deliveryTypeConfig:\n        automated: true\n        targetClusterName: MyCluster\n        targetProjectId: 5cf5a45a9ccf6400e60981b6\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCloudBackupSnapshotRestoreJobs\n      arguments:\n        projectId: ${testCloudBackupSnapshotRestoreJob.projectId}\n        clusterName: ${testCloudBackupSnapshotRestoreJob.clusterName}\n        pageNum: 1\n        itemsPerPage: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudBackupSnapshotRestoreJobs.\n","properties":{"clusterName":{"type":"string","description":"The name of the Atlas cluster for which you want to retrieve restore jobs.\n"},"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The unique identifier of the project for the Atlas cluster.\n"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getCloudBackupSnapshotRestoreJobs.\n","properties":{"clusterName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"},"projectId":{"type":"string"},"results":{"description":"Includes cloudProviderSnapshotRestoreJob object for each item detailed in the results array section.\n* `totalCount` - Count of the total number of items in the result set. It may be greater than the number of objects in the results array if the entire result set is paginated.\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSnapshotRestoreJobsResult:getCloudBackupSnapshotRestoreJobsResult"},"type":"array"},"totalCount":{"type":"integer"}},"required":["clusterName","projectId","results","totalCount","id"],"type":"object"}},"mongodbatlas:index/getCloudBackupSnapshots:getCloudBackupSnapshots":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getCloudBackupSnapshots`\" pulumi-lang-dotnet=\"`mongodbatlas.getCloudBackupSnapshots`\" pulumi-lang-go=\"`getCloudBackupSnapshots`\" pulumi-lang-python=\"`get_cloud_backup_snapshots`\" pulumi-lang-yaml=\"`mongodbatlas.getCloudBackupSnapshots`\" pulumi-lang-java=\"`mongodbatlas.getCloudBackupSnapshots`\"\u003e`mongodbatlas.getCloudBackupSnapshots`\u003c/span\u003e provides an Cloud Backup Snapshot datasource. Atlas Cloud Backup Snapshots provide localized backup storage using the native snapshot functionality of the cluster’s cloud service.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  testCloudBackupSnapshots:\n    type: mongodbatlas:CloudBackupSnapshots\n    name: test\n    properties:\n      groupId: 5d0f1f73cf09a29120e173cf\n      clusterName: MyClusterTest\n      description: SomeDescription\n      retentionInDays: 1\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCloudBackupSnapshots\n      arguments:\n        groupId: ${testCloudBackupSnapshots.groupId}\n        clusterName: ${testCloudBackupSnapshots.clusterName}\n        pageNum: 1\n        itemsPerPage: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudBackupSnapshots.\n","properties":{"clusterName":{"type":"string","description":"The name of the Atlas cluster that contains the snapshot you want to retrieve.\n"},"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"projectId":{"type":"string"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getCloudBackupSnapshots.\n","properties":{"clusterName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"},"projectId":{"type":"string"},"results":{"description":"Includes cloudProviderSnapshot object for each item detailed in the results array section.\n* `totalCount` - Count of the total number of items in the result set. It may be greater than the number of objects in the results array if the entire result set is paginated.\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudBackupSnapshotsResult:getCloudBackupSnapshotsResult"},"type":"array"},"totalCount":{"type":"integer"}},"required":["clusterName","projectId","results","totalCount","id"],"type":"object"}},"mongodbatlas:index/getCloudProviderAccessSetup:getCloudProviderAccessSetup":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-go=\"`CloudProviderAccessSetup`\" pulumi-lang-python=\"`CloudProviderAccessSetup`\" pulumi-lang-yaml=\"`mongodbatlas.CloudProviderAccessSetup`\" pulumi-lang-java=\"`mongodbatlas.CloudProviderAccessSetup`\"\u003e`mongodbatlas.CloudProviderAccessSetup`\u003c/span\u003e allows you to get a single role for a provider access role setup. Supported providers: AWS, AZURE and GCP.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n### With AWS\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testRole = new mongodbatlas.CloudProviderAccessSetup(\"test_role\", {\n    projectId: \"64259ee860c43338194b0f8e\",\n    providerName: \"AWS\",\n});\nconst singleSetup = mongodbatlas.getCloudProviderAccessSetupOutput({\n    projectId: testRole.projectId,\n    providerName: testRole.providerName,\n    roleId: testRole.roleId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_role = mongodbatlas.CloudProviderAccessSetup(\"test_role\",\n    project_id=\"64259ee860c43338194b0f8e\",\n    provider_name=\"AWS\")\nsingle_setup = mongodbatlas.get_cloud_provider_access_setup_output(project_id=test_role.project_id,\n    provider_name=test_role.provider_name,\n    role_id=test_role.role_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRole = new Mongodbatlas.CloudProviderAccessSetup(\"test_role\", new()\n    {\n        ProjectId = \"64259ee860c43338194b0f8e\",\n        ProviderName = \"AWS\",\n    });\n\n    var singleSetup = Mongodbatlas.GetCloudProviderAccessSetup.Invoke(new()\n    {\n        ProjectId = testRole.ProjectId,\n        ProviderName = testRole.ProviderName,\n        RoleId = testRole.RoleId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestRole, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"test_role\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCloudProviderAccessSetupOutput(ctx, mongodbatlas.GetCloudProviderAccessSetupOutputArgs{\n\t\t\tProjectId:    testRole.ProjectId,\n\t\t\tProviderName: testRole.ProviderName,\n\t\t\tRoleId:       testRole.RoleId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudProviderAccessSetupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testRole = new CloudProviderAccessSetup(\"testRole\", CloudProviderAccessSetupArgs.builder()\n            .projectId(\"64259ee860c43338194b0f8e\")\n            .providerName(\"AWS\")\n            .build());\n\n        final var singleSetup = MongodbatlasFunctions.getCloudProviderAccessSetup(GetCloudProviderAccessSetupArgs.builder()\n            .projectId(testRole.projectId())\n            .providerName(testRole.providerName())\n            .roleId(testRole.roleId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRole:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: test_role\n    properties:\n      projectId: 64259ee860c43338194b0f8e\n      providerName: AWS\nvariables:\n  singleSetup:\n    fn::invoke:\n      function: mongodbatlas:getCloudProviderAccessSetup\n      arguments:\n        projectId: ${testRole.projectId}\n        providerName: ${testRole.providerName}\n        roleId: ${testRole.roleId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With AZURE\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testRole = new mongodbatlas.CloudProviderAccessSetup(\"test_role\", {\n    projectId: \"64259ee860c43338194b0f8e\",\n    providerName: \"AZURE\",\n    azureConfigs: [{\n        atlasAzureAppId: \"9f2deb0d-be22-4524-a403-df531868bac0\",\n        servicePrincipalId: \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n        tenantId: \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n    }],\n});\nconst singleSetup = mongodbatlas.getCloudProviderAccessSetupOutput({\n    projectId: testRole.projectId,\n    providerName: testRole.providerName,\n    roleId: testRole.roleId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_role = mongodbatlas.CloudProviderAccessSetup(\"test_role\",\n    project_id=\"64259ee860c43338194b0f8e\",\n    provider_name=\"AZURE\",\n    azure_configs=[{\n        \"atlas_azure_app_id\": \"9f2deb0d-be22-4524-a403-df531868bac0\",\n        \"service_principal_id\": \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n        \"tenant_id\": \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n    }])\nsingle_setup = mongodbatlas.get_cloud_provider_access_setup_output(project_id=test_role.project_id,\n    provider_name=test_role.provider_name,\n    role_id=test_role.role_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRole = new Mongodbatlas.CloudProviderAccessSetup(\"test_role\", new()\n    {\n        ProjectId = \"64259ee860c43338194b0f8e\",\n        ProviderName = \"AZURE\",\n        AzureConfigs = new[]\n        {\n            new Mongodbatlas.Inputs.CloudProviderAccessSetupAzureConfigArgs\n            {\n                AtlasAzureAppId = \"9f2deb0d-be22-4524-a403-df531868bac0\",\n                ServicePrincipalId = \"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\",\n                TenantId = \"91402384-d71e-22f5-22dd-759e272cdc1c\",\n            },\n        },\n    });\n\n    var singleSetup = Mongodbatlas.GetCloudProviderAccessSetup.Invoke(new()\n    {\n        ProjectId = testRole.ProjectId,\n        ProviderName = testRole.ProviderName,\n        RoleId = testRole.RoleId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestRole, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"test_role\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\tProviderName: pulumi.String(\"AZURE\"),\n\t\t\tAzureConfigs: mongodbatlas.CloudProviderAccessSetupAzureConfigArray{\n\t\t\t\t\u0026mongodbatlas.CloudProviderAccessSetupAzureConfigArgs{\n\t\t\t\t\tAtlasAzureAppId:    pulumi.String(\"9f2deb0d-be22-4524-a403-df531868bac0\"),\n\t\t\t\t\tServicePrincipalId: pulumi.String(\"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\"),\n\t\t\t\t\tTenantId:           pulumi.String(\"91402384-d71e-22f5-22dd-759e272cdc1c\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCloudProviderAccessSetupOutput(ctx, mongodbatlas.GetCloudProviderAccessSetupOutputArgs{\n\t\t\tProjectId:    testRole.ProjectId,\n\t\t\tProviderName: testRole.ProviderName,\n\t\t\tRoleId:       testRole.RoleId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessSetupAzureConfigArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudProviderAccessSetupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testRole = new CloudProviderAccessSetup(\"testRole\", CloudProviderAccessSetupArgs.builder()\n            .projectId(\"64259ee860c43338194b0f8e\")\n            .providerName(\"AZURE\")\n            .azureConfigs(CloudProviderAccessSetupAzureConfigArgs.builder()\n                .atlasAzureAppId(\"9f2deb0d-be22-4524-a403-df531868bac0\")\n                .servicePrincipalId(\"22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\")\n                .tenantId(\"91402384-d71e-22f5-22dd-759e272cdc1c\")\n                .build())\n            .build());\n\n        final var singleSetup = MongodbatlasFunctions.getCloudProviderAccessSetup(GetCloudProviderAccessSetupArgs.builder()\n            .projectId(testRole.projectId())\n            .providerName(testRole.providerName())\n            .roleId(testRole.roleId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRole:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: test_role\n    properties:\n      projectId: 64259ee860c43338194b0f8e\n      providerName: AZURE\n      azureConfigs:\n        - atlasAzureAppId: 9f2deb0d-be22-4524-a403-df531868bac0\n          servicePrincipalId: 22f1d2a6-d0e9-482a-83a4-b8dd7dddc2c1\n          tenantId: 91402384-d71e-22f5-22dd-759e272cdc1c\nvariables:\n  singleSetup:\n    fn::invoke:\n      function: mongodbatlas:getCloudProviderAccessSetup\n      arguments:\n        projectId: ${testRole.projectId}\n        providerName: ${testRole.providerName}\n        roleId: ${testRole.roleId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With GCP\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testRole = new mongodbatlas.CloudProviderAccessSetup(\"test_role\", {\n    projectId: \"64259ee860c43338194b0f8e\",\n    providerName: \"GCP\",\n});\nconst singleSetup = mongodbatlas.getCloudProviderAccessSetupOutput({\n    projectId: testRole.projectId,\n    providerName: testRole.providerName,\n    roleId: testRole.roleId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_role = mongodbatlas.CloudProviderAccessSetup(\"test_role\",\n    project_id=\"64259ee860c43338194b0f8e\",\n    provider_name=\"GCP\")\nsingle_setup = mongodbatlas.get_cloud_provider_access_setup_output(project_id=test_role.project_id,\n    provider_name=test_role.provider_name,\n    role_id=test_role.role_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRole = new Mongodbatlas.CloudProviderAccessSetup(\"test_role\", new()\n    {\n        ProjectId = \"64259ee860c43338194b0f8e\",\n        ProviderName = \"GCP\",\n    });\n\n    var singleSetup = Mongodbatlas.GetCloudProviderAccessSetup.Invoke(new()\n    {\n        ProjectId = testRole.ProjectId,\n        ProviderName = testRole.ProviderName,\n        RoleId = testRole.RoleId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestRole, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"test_role\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\tProviderName: pulumi.String(\"GCP\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCloudProviderAccessSetupOutput(ctx, mongodbatlas.GetCloudProviderAccessSetupOutputArgs{\n\t\t\tProjectId:    testRole.ProjectId,\n\t\t\tProviderName: testRole.ProviderName,\n\t\t\tRoleId:       testRole.RoleId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudProviderAccessSetupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testRole = new CloudProviderAccessSetup(\"testRole\", CloudProviderAccessSetupArgs.builder()\n            .projectId(\"64259ee860c43338194b0f8e\")\n            .providerName(\"GCP\")\n            .build());\n\n        final var singleSetup = MongodbatlasFunctions.getCloudProviderAccessSetup(GetCloudProviderAccessSetupArgs.builder()\n            .projectId(testRole.projectId())\n            .providerName(testRole.providerName())\n            .roleId(testRole.roleId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRole:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: test_role\n    properties:\n      projectId: 64259ee860c43338194b0f8e\n      providerName: GCP\nvariables:\n  singleSetup:\n    fn::invoke:\n      function: mongodbatlas:getCloudProviderAccessSetup\n      arguments:\n        projectId: ${testRole.projectId}\n        providerName: ${testRole.providerName}\n        roleId: ${testRole.roleId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudProviderAccessSetup.\n","properties":{"azureConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCloudProviderAccessSetupAzureConfig:getCloudProviderAccessSetupAzureConfig"},"description":"azure related configurations\n"},"projectId":{"type":"string","description":"The unique ID for the project to get all Cloud Provider Access\n"},"providerName":{"type":"string","description":"cloud provider name. Supported values: `AWS`, `AZURE`, and `GCP`.\n"},"roleId":{"type":"string","description":"unique role id among all the roles provided by MongoDB Atlas.\n"}},"type":"object","required":["projectId","providerName","roleId"]},"outputs":{"description":"A collection of values returned by getCloudProviderAccessSetup.\n","properties":{"aws":{"additionalProperties":{"type":"string"},"type":"object"},"awsConfigs":{"description":"aws related role information\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudProviderAccessSetupAwsConfig:getCloudProviderAccessSetupAwsConfig"},"type":"array"},"azureConfigs":{"description":"azure related configurations\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudProviderAccessSetupAzureConfig:getCloudProviderAccessSetupAzureConfig"},"type":"array"},"createdDate":{"description":"Date on which this role was created.\n","type":"string"},"gcpConfigs":{"description":"gcp related configurations\n","items":{"$ref":"#/types/mongodbatlas:index/getCloudProviderAccessSetupGcpConfig:getCloudProviderAccessSetupGcpConfig"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lastUpdatedDate":{"description":"Date and time when this Azure Service Principal was last updated. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"projectId":{"type":"string"},"providerName":{"type":"string"},"roleId":{"type":"string"}},"required":["aws","awsConfigs","createdDate","gcpConfigs","lastUpdatedDate","projectId","providerName","roleId","id"],"type":"object"}},"mongodbatlas:index/getCloudUserOrgAssignment:getCloudUserOrgAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-go=\"`CloudUserOrgAssignment`\" pulumi-lang-python=\"`CloudUserOrgAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserOrgAssignment`\"\u003e`mongodbatlas.CloudUserOrgAssignment`\u003c/span\u003e provides a Cloud User Organization Assignment data source. The data source lets you retrieve a user assigned to an organization.\n\n**NOTE**: Users with pending invitations created using the deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-go=\"`ProjectInvitation`\" pulumi-lang-python=\"`ProjectInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-java=\"`mongodbatlas.ProjectInvitation`\"\u003e`mongodbatlas.ProjectInvitation`\u003c/span\u003e resource or via the deprecated [Invite One MongoDB Cloud User to One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getorganizationuser#tag/Projects/operation/createProjectInvitation)\nendpoint are not returned with this resource. See  [MongoDB Atlas API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getorganizationuser) for details.\nTo manage such users with this resource, refer to our Org Invitation to Cloud User Org Assignment Migration Guide.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.CloudUserOrgAssignment(\"example\", {\n    orgId: orgId,\n    username: userEmail,\n    roles: {\n        orgRoles: [\"ORG_MEMBER\"],\n    },\n});\nconst exampleUsername = example.username.apply(username =\u003e mongodbatlas.getCloudUserOrgAssignmentOutput({\n    orgId: orgId,\n    username: username,\n}));\nconst exampleUserId = example.userId.apply(userId =\u003e mongodbatlas.getCloudUserOrgAssignmentOutput({\n    orgId: orgId,\n    userId: userId,\n}));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.CloudUserOrgAssignment(\"example\",\n    org_id=org_id,\n    username=user_email,\n    roles={\n        \"org_roles\": [\"ORG_MEMBER\"],\n    })\nexample_username = example.username.apply(lambda username: mongodbatlas.get_cloud_user_org_assignment_output(org_id=org_id,\n    username=username))\nexample_user_id = example.user_id.apply(lambda user_id: mongodbatlas.get_cloud_user_org_assignment_output(org_id=org_id,\n    user_id=user_id))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.CloudUserOrgAssignment(\"example\", new()\n    {\n        OrgId = orgId,\n        Username = userEmail,\n        Roles = new Mongodbatlas.Inputs.CloudUserOrgAssignmentRolesArgs\n        {\n            OrgRoles = new[]\n            {\n                \"ORG_MEMBER\",\n            },\n        },\n    });\n\n    var exampleUsername = Mongodbatlas.GetCloudUserOrgAssignment.Invoke(new()\n    {\n        OrgId = orgId,\n        Username = example.Username,\n    });\n\n    var exampleUserId = Mongodbatlas.GetCloudUserOrgAssignment.Invoke(new()\n    {\n        OrgId = orgId,\n        UserId = example.UserId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.NewCloudUserOrgAssignment(ctx, \"example\", \u0026mongodbatlas.CloudUserOrgAssignmentArgs{\n\t\t\tOrgId:    pulumi.Any(orgId),\n\t\t\tUsername: pulumi.Any(userEmail),\n\t\t\tRoles: \u0026mongodbatlas.CloudUserOrgAssignmentRolesArgs{\n\t\t\t\tOrgRoles: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"ORG_MEMBER\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = example.Username.ApplyT(func(username string) (mongodbatlas.GetCloudUserOrgAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserOrgAssignmentResult(interface{}(mongodbatlas.LookupCloudUserOrgAssignment(ctx, \u0026mongodbatlas.LookupCloudUserOrgAssignmentArgs{\n\t\t\t\tOrgId:    orgId,\n\t\t\t\tUsername: pulumi.StringRef(pulumi.StringRef(username)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserOrgAssignmentResultOutput)\n\t\t_ = example.UserId.ApplyT(func(userId string) (mongodbatlas.GetCloudUserOrgAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserOrgAssignmentResult(interface{}(mongodbatlas.LookupCloudUserOrgAssignment(ctx, \u0026mongodbatlas.LookupCloudUserOrgAssignmentArgs{\n\t\t\t\tOrgId:  orgId,\n\t\t\t\tUserId: pulumi.StringRef(pulumi.StringRef(userId)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserOrgAssignmentResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudUserOrgAssignment;\nimport com.pulumi.mongodbatlas.CloudUserOrgAssignmentArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudUserOrgAssignmentRolesArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudUserOrgAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new CloudUserOrgAssignment(\"example\", CloudUserOrgAssignmentArgs.builder()\n            .orgId(orgId)\n            .username(userEmail)\n            .roles(CloudUserOrgAssignmentRolesArgs.builder()\n                .orgRoles(\"ORG_MEMBER\")\n                .build())\n            .build());\n\n        final var exampleUsername = example.username().applyValue(_username -\u003e MongodbatlasFunctions.getCloudUserOrgAssignment(GetCloudUserOrgAssignmentArgs.builder()\n            .orgId(orgId)\n            .username(_username)\n            .build()));\n\n        final var exampleUserId = example.userId().applyValue(_userId -\u003e MongodbatlasFunctions.getCloudUserOrgAssignment(GetCloudUserOrgAssignmentArgs.builder()\n            .orgId(orgId)\n            .userId(_userId)\n            .build()));\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:CloudUserOrgAssignment\n    properties:\n      orgId: ${orgId}\n      username: ${userEmail}\n      roles:\n        orgRoles:\n          - ORG_MEMBER\nvariables:\n  exampleUsername:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserOrgAssignment\n      arguments:\n        orgId: ${orgId}\n        username: ${example.username}\n  exampleUserId:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserOrgAssignment\n      arguments:\n        orgId: ${orgId}\n        userId: ${example.userId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudUserOrgAssignment.\n","properties":{"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [/orgs](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations) endpoint to retrieve all organizations to which the authenticated user has access.\n"},"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"type":"object","required":["orgId"]},"outputs":{"description":"A collection of values returned by getCloudUserOrgAssignment.\n","properties":{"country":{"description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n","type":"string"},"createdAt":{"description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n","type":"string"},"firstName":{"description":"First or given name that belongs to the MongoDB Cloud user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"invitationCreatedAt":{"description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n","type":"string"},"invitationExpiresAt":{"description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n","type":"string"},"inviterUsername":{"description":"Username of the MongoDB Cloud user who sent the invitation to join the organization.\n","type":"string"},"lastAuth":{"description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n","type":"string"},"lastName":{"description":"Last name, family name, or surname that belongs to the MongoDB Cloud user.\n","type":"string"},"mobileNumber":{"description":"Mobile phone number that belongs to the MongoDB Cloud user.\n","type":"string"},"orgId":{"description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [/orgs](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations) endpoint to retrieve all organizations to which the authenticated user has access.\n","type":"string"},"orgMembershipStatus":{"description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n","type":"string"},"roles":{"$ref":"#/types/mongodbatlas:index/getCloudUserOrgAssignmentRoles:getCloudUserOrgAssignmentRoles","description":"Organization and project level roles to assign the MongoDB Cloud user within one organization.\n"},"teamIds":{"description":"List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Cloud user belongs.\n","items":{"type":"string"},"type":"array"},"userId":{"description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n","type":"string"},"username":{"description":"Email address that represents the username of the MongoDB Cloud user.\n","type":"string"}},"required":["country","createdAt","firstName","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgId","orgMembershipStatus","roles","teamIds","userId","username","id"],"type":"object"}},"mongodbatlas:index/getCloudUserProjectAssignment:getCloudUserProjectAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-go=\"`CloudUserProjectAssignment`\" pulumi-lang-python=\"`CloudUserProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserProjectAssignment`\"\u003e`mongodbatlas.CloudUserProjectAssignment`\u003c/span\u003e provides a Cloud User Project Assignment data source. The data source lets you retrieve a user assigned to a project.\n\n\u003e **NOTE:** Users with pending invitations created using the deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-go=\"`ProjectInvitation`\" pulumi-lang-python=\"`ProjectInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-java=\"`mongodbatlas.ProjectInvitation`\"\u003e`mongodbatlas.ProjectInvitation`\u003c/span\u003e resource or via the deprecated [Invite One MongoDB Cloud User to One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getorganizationuser#tag/Projects/operation/createProjectInvitation)\nendpoint are not returned with this resource. See  [MongoDB Atlas API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getprojectteam) for details.\nTo manage such users with this resource, refer to our Project Invitation to Cloud User Project Assignment Migration Guide.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.CloudUserProjectAssignment(\"example\", {\n    projectId: projectId,\n    username: userEmail,\n    roles: [\n        \"GROUP_OWNER\",\n        \"GROUP_DATA_ACCESS_ADMIN\",\n    ],\n});\nconst exampleUsername = example.username.apply(username =\u003e mongodbatlas.getCloudUserProjectAssignmentOutput({\n    projectId: projectId,\n    username: username,\n}));\nconst exampleUserId = example.userId.apply(userId =\u003e mongodbatlas.getCloudUserProjectAssignmentOutput({\n    projectId: projectId,\n    userId: userId,\n}));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.CloudUserProjectAssignment(\"example\",\n    project_id=project_id,\n    username=user_email,\n    roles=[\n        \"GROUP_OWNER\",\n        \"GROUP_DATA_ACCESS_ADMIN\",\n    ])\nexample_username = example.username.apply(lambda username: mongodbatlas.get_cloud_user_project_assignment_output(project_id=project_id,\n    username=username))\nexample_user_id = example.user_id.apply(lambda user_id: mongodbatlas.get_cloud_user_project_assignment_output(project_id=project_id,\n    user_id=user_id))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.CloudUserProjectAssignment(\"example\", new()\n    {\n        ProjectId = projectId,\n        Username = userEmail,\n        Roles = new[]\n        {\n            \"GROUP_OWNER\",\n            \"GROUP_DATA_ACCESS_ADMIN\",\n        },\n    });\n\n    var exampleUsername = Mongodbatlas.GetCloudUserProjectAssignment.Invoke(new()\n    {\n        ProjectId = projectId,\n        Username = example.Username,\n    });\n\n    var exampleUserId = Mongodbatlas.GetCloudUserProjectAssignment.Invoke(new()\n    {\n        ProjectId = projectId,\n        UserId = example.UserId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.NewCloudUserProjectAssignment(ctx, \"example\", \u0026mongodbatlas.CloudUserProjectAssignmentArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tUsername:  pulumi.Any(userEmail),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_OWNER\"),\n\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_ADMIN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = example.Username.ApplyT(func(username string) (mongodbatlas.GetCloudUserProjectAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserProjectAssignmentResult(interface{}(mongodbatlas.LookupCloudUserProjectAssignment(ctx, \u0026mongodbatlas.LookupCloudUserProjectAssignmentArgs{\n\t\t\t\tProjectId: projectId,\n\t\t\t\tUsername:  pulumi.StringRef(pulumi.StringRef(username)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserProjectAssignmentResultOutput)\n\t\t_ = example.UserId.ApplyT(func(userId string) (mongodbatlas.GetCloudUserProjectAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserProjectAssignmentResult(interface{}(mongodbatlas.LookupCloudUserProjectAssignment(ctx, \u0026mongodbatlas.LookupCloudUserProjectAssignmentArgs{\n\t\t\t\tProjectId: projectId,\n\t\t\t\tUserId:    pulumi.StringRef(pulumi.StringRef(userId)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserProjectAssignmentResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudUserProjectAssignment;\nimport com.pulumi.mongodbatlas.CloudUserProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudUserProjectAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new CloudUserProjectAssignment(\"example\", CloudUserProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .username(userEmail)\n            .roles(            \n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\")\n            .build());\n\n        final var exampleUsername = example.username().applyValue(_username -\u003e MongodbatlasFunctions.getCloudUserProjectAssignment(GetCloudUserProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .username(_username)\n            .build()));\n\n        final var exampleUserId = example.userId().applyValue(_userId -\u003e MongodbatlasFunctions.getCloudUserProjectAssignment(GetCloudUserProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .userId(_userId)\n            .build()));\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:CloudUserProjectAssignment\n    properties:\n      projectId: ${projectId}\n      username: ${userEmail}\n      roles:\n        - GROUP_OWNER\n        - GROUP_DATA_ACCESS_ADMIN\nvariables:\n  exampleUsername:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserProjectAssignment\n      arguments:\n        projectId: ${projectId}\n        username: ${example.username}\n  exampleUserId:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserProjectAssignment\n      arguments:\n        projectId: ${projectId}\n        userId: ${example.userId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudUserProjectAssignment.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n"},"userId":{"type":"string"},"username":{"type":"string"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getCloudUserProjectAssignment.\n","properties":{"country":{"type":"string"},"createdAt":{"type":"string"},"firstName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"invitationCreatedAt":{"type":"string"},"invitationExpiresAt":{"type":"string"},"inviterUsername":{"type":"string"},"lastAuth":{"type":"string"},"lastName":{"type":"string"},"mobileNumber":{"type":"string"},"orgMembershipStatus":{"type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"roles":{"items":{"type":"string"},"type":"array"},"userId":{"type":"string"},"username":{"type":"string"}},"required":["country","createdAt","firstName","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgMembershipStatus","projectId","roles","id"],"type":"object"}},"mongodbatlas:index/getCloudUserTeamAssignment:getCloudUserTeamAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-go=\"`CloudUserTeamAssignment`\" pulumi-lang-python=\"`CloudUserTeamAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserTeamAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserTeamAssignment`\"\u003e`mongodbatlas.CloudUserTeamAssignment`\u003c/span\u003e provides a Cloud User Team Assignment data source. The data source lets you retrieve a user assigned to a team.\n\n\u003e **NOTE**Users with pending invitations created using the deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-go=\"`ProjectInvitation`\" pulumi-lang-python=\"`ProjectInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-java=\"`mongodbatlas.ProjectInvitation`\"\u003e`mongodbatlas.ProjectInvitation`\u003c/span\u003e resource or via the deprecated [Invite One MongoDB Cloud User to One Project](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getorganizationuser#tag/Projects/operation/createProjectInvitation) \nendpoint are not returned with this resource. See  [MongoDB Atlas API](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listteamusers) for details. \nTo manage such users with this resource, refer to our Migration Guide: Team Usernames Attribute to Cloud User Team Assignment.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.CloudUserTeamAssignment(\"example\", {\n    orgId: orgId,\n    teamId: teamId,\n    userId: userId,\n});\nconst exampleUserId = example.userId.apply(userId =\u003e mongodbatlas.getCloudUserTeamAssignmentOutput({\n    orgId: orgId,\n    teamId: teamId,\n    userId: userId,\n}));\nconst exampleUsername = example.username.apply(username =\u003e mongodbatlas.getCloudUserTeamAssignmentOutput({\n    orgId: orgId,\n    teamId: teamId,\n    username: username,\n}));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.CloudUserTeamAssignment(\"example\",\n    org_id=org_id,\n    team_id=team_id,\n    user_id=user_id)\nexample_user_id = example.user_id.apply(lambda user_id: mongodbatlas.get_cloud_user_team_assignment_output(org_id=org_id,\n    team_id=team_id,\n    user_id=user_id))\nexample_username = example.username.apply(lambda username: mongodbatlas.get_cloud_user_team_assignment_output(org_id=org_id,\n    team_id=team_id,\n    username=username))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.CloudUserTeamAssignment(\"example\", new()\n    {\n        OrgId = orgId,\n        TeamId = teamId,\n        UserId = userId,\n    });\n\n    var exampleUserId = Mongodbatlas.GetCloudUserTeamAssignment.Invoke(new()\n    {\n        OrgId = orgId,\n        TeamId = teamId,\n        UserId = example.UserId,\n    });\n\n    var exampleUsername = Mongodbatlas.GetCloudUserTeamAssignment.Invoke(new()\n    {\n        OrgId = orgId,\n        TeamId = teamId,\n        Username = example.Username,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.NewCloudUserTeamAssignment(ctx, \"example\", \u0026mongodbatlas.CloudUserTeamAssignmentArgs{\n\t\t\tOrgId:  pulumi.Any(orgId),\n\t\t\tTeamId: pulumi.Any(teamId),\n\t\t\tUserId: pulumi.Any(userId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = example.UserId.ApplyT(func(userId string) (mongodbatlas.GetCloudUserTeamAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserTeamAssignmentResult(interface{}(mongodbatlas.LookupCloudUserTeamAssignment(ctx, \u0026mongodbatlas.LookupCloudUserTeamAssignmentArgs{\n\t\t\t\tOrgId:  orgId,\n\t\t\t\tTeamId: teamId,\n\t\t\t\tUserId: pulumi.StringRef(pulumi.StringRef(userId)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserTeamAssignmentResultOutput)\n\t\t_ = example.Username.ApplyT(func(username string) (mongodbatlas.GetCloudUserTeamAssignmentResult, error) {\n\t\t\treturn mongodbatlas.GetCloudUserTeamAssignmentResult(interface{}(mongodbatlas.LookupCloudUserTeamAssignment(ctx, \u0026mongodbatlas.LookupCloudUserTeamAssignmentArgs{\n\t\t\t\tOrgId:    orgId,\n\t\t\t\tTeamId:   teamId,\n\t\t\t\tUsername: pulumi.StringRef(pulumi.StringRef(username)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetCloudUserTeamAssignmentResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudUserTeamAssignment;\nimport com.pulumi.mongodbatlas.CloudUserTeamAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCloudUserTeamAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new CloudUserTeamAssignment(\"example\", CloudUserTeamAssignmentArgs.builder()\n            .orgId(orgId)\n            .teamId(teamId)\n            .userId(userId)\n            .build());\n\n        final var exampleUserId = example.userId().applyValue(_userId -\u003e MongodbatlasFunctions.getCloudUserTeamAssignment(GetCloudUserTeamAssignmentArgs.builder()\n            .orgId(orgId)\n            .teamId(teamId)\n            .userId(_userId)\n            .build()));\n\n        final var exampleUsername = example.username().applyValue(_username -\u003e MongodbatlasFunctions.getCloudUserTeamAssignment(GetCloudUserTeamAssignmentArgs.builder()\n            .orgId(orgId)\n            .teamId(teamId)\n            .username(_username)\n            .build()));\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:CloudUserTeamAssignment\n    properties:\n      orgId: ${orgId}\n      teamId: ${teamId}\n      userId: ${userId}\nvariables:\n  exampleUserId:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserTeamAssignment\n      arguments:\n        orgId: ${orgId}\n        teamId: ${teamId}\n        userId: ${example.userId}\n  exampleUsername:\n    fn::invoke:\n      function: mongodbatlas:getCloudUserTeamAssignment\n      arguments:\n        orgId: ${orgId}\n        teamId: ${teamId}\n        username: ${example.username}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCloudUserTeamAssignment.\n","properties":{"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [/orgs](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations) endpoint to retrieve all organizations to which the authenticated user has access.\n"},"teamId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the team to which you want to assign the MongoDB Cloud user. Use the [/teams](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-teams) endpoint to retrieve all teams to which the authenticated user has access.\n"},"userId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n"},"username":{"type":"string","description":"Email address that represents the username of the MongoDB Cloud user.\n"}},"type":"object","required":["orgId","teamId"]},"outputs":{"description":"A collection of values returned by getCloudUserTeamAssignment.\n","properties":{"country":{"description":"Two-character alphabetical string that identifies the MongoDB Cloud user's geographic location. This parameter uses the ISO 3166-1a2 code format.\n","type":"string"},"createdAt":{"description":"Date and time when MongoDB Cloud created the current account. This value is in the ISO 8601 timestamp format in UTC.\n","type":"string"},"firstName":{"description":"First or given name that belongs to the MongoDB Cloud user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"invitationCreatedAt":{"description":"Date and time when MongoDB Cloud sent the invitation. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n","type":"string"},"invitationExpiresAt":{"description":"Date and time when the invitation from MongoDB Cloud expires. MongoDB Cloud represents this timestamp in ISO 8601 format in UTC.\n","type":"string"},"inviterUsername":{"description":"Username of the MongoDB Cloud user who sent the invitation to join the organization.\n","type":"string"},"lastAuth":{"description":"Date and time when the current account last authenticated. This value is in the ISO 8601 timestamp format in UTC.\n","type":"string"},"lastName":{"description":"Last name, family name, or surname that belongs to the MongoDB Cloud user.\n","type":"string"},"mobileNumber":{"description":"Mobile phone number that belongs to the MongoDB Cloud user.\n","type":"string"},"orgId":{"description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the [/orgs](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-organizations) endpoint to retrieve all organizations to which the authenticated user has access.\n","type":"string"},"orgMembershipStatus":{"description":"String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n","type":"string"},"roles":{"$ref":"#/types/mongodbatlas:index/getCloudUserTeamAssignmentRoles:getCloudUserTeamAssignmentRoles","description":"Organization and project level roles to assign the MongoDB Cloud user within one organization.\n"},"teamId":{"description":"Unique 24-hexadecimal digit string that identifies the team to which you want to assign the MongoDB Cloud user. Use the [/teams](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-teams) endpoint to retrieve all teams to which the authenticated user has access.\n","type":"string"},"teamIds":{"description":"List of unique 24-hexadecimal digit strings that identifies the teams to which this MongoDB Cloud user belongs.\n","items":{"type":"string"},"type":"array"},"userId":{"description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n","type":"string"},"username":{"description":"Email address that represents the username of the MongoDB Cloud user.\n","type":"string"}},"required":["country","createdAt","firstName","invitationCreatedAt","invitationExpiresAt","inviterUsername","lastAuth","lastName","mobileNumber","orgId","orgMembershipStatus","roles","teamId","teamIds","id"],"type":"object"}},"mongodbatlas:index/getCluster:getCluster":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Cluster`\" pulumi-lang-dotnet=\"`mongodbatlas.Cluster`\" pulumi-lang-go=\"`Cluster`\" pulumi-lang-python=\"`Cluster`\" pulumi-lang-yaml=\"`mongodbatlas.Cluster`\" pulumi-lang-java=\"`mongodbatlas.Cluster`\"\u003e`mongodbatlas.Cluster`\u003c/span\u003e describes a Cluster. The data source requires your Project ID.\n\n\u003e **DEPRECATION:** This datasource is deprecated and will be removed in the next major release. Please use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e. For more details, see our migration guide.\n\n\u003e **IMPORTANT:**\n\u003cbr\u003e \u0026#8226; Multi Region Cluster: The \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Cluster`\" pulumi-lang-dotnet=\"`mongodbatlas.Cluster`\" pulumi-lang-go=\"`Cluster`\" pulumi-lang-python=\"`Cluster`\" pulumi-lang-yaml=\"`mongodbatlas.Cluster`\" pulumi-lang-java=\"`mongodbatlas.Cluster`\"\u003e`mongodbatlas.Cluster`\u003c/span\u003e data source doesn't return the \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e for each region utilized by the cluster. For retrieving the \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e, we recommend the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e data source instead.\n\u003cbr\u003e \u0026#8226; Changes to cluster configurations can affect costs. Before making changes, please see [Billing](https://docs.atlas.mongodb.com/billing/).\n\u003cbr\u003e \u0026#8226; If your Atlas project contains a custom role that uses actions introduced in a specific MongoDB version, you cannot create a cluster with a MongoDB version less than that version unless you delete the custom role.\n\n\u003e **NOTE:** To delete an Atlas cluster that has an associated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource and an enabled Backup Compliance Policy, first instruct Terraform to remove the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-go=\"`CloudBackupSchedule`\" pulumi-lang-python=\"`CloudBackupSchedule`\" pulumi-lang-yaml=\"`mongodbatlas.CloudBackupSchedule`\" pulumi-lang-java=\"`mongodbatlas.CloudBackupSchedule`\"\u003e`mongodbatlas.CloudBackupSchedule`\u003c/span\u003e resource from the state and then use Terraform to delete the cluster. To learn more, see Delete a Cluster with a Backup Compliance Policy.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testCluster = new mongodbatlas.Cluster(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"cluster-test\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        numShards: 1,\n        regionsConfigs: [{\n            regionName: \"US_EAST_1\",\n            electableNodes: 3,\n            priority: 7,\n            readOnlyNodes: 0,\n        }],\n    }],\n    cloudBackup: true,\n    autoScalingDiskGbEnabled: true,\n    providerName: \"AWS\",\n    providerInstanceSizeName: \"M40\",\n});\nconst test = mongodbatlas.getClusterOutput({\n    projectId: testCluster.projectId,\n    name: testCluster.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_cluster = mongodbatlas.Cluster(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"cluster-test\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"num_shards\": 1,\n        \"regions_configs\": [{\n            \"region_name\": \"US_EAST_1\",\n            \"electable_nodes\": 3,\n            \"priority\": 7,\n            \"read_only_nodes\": 0,\n        }],\n    }],\n    cloud_backup=True,\n    auto_scaling_disk_gb_enabled=True,\n    provider_name=\"AWS\",\n    provider_instance_size_name=\"M40\")\ntest = mongodbatlas.get_cluster_output(project_id=test_cluster.project_id,\n    name=test_cluster.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testCluster = new Mongodbatlas.Cluster(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"cluster-test\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.ClusterReplicationSpecArgs\n            {\n                NumShards = 1,\n                RegionsConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.ClusterReplicationSpecRegionsConfigArgs\n                    {\n                        RegionName = \"US_EAST_1\",\n                        ElectableNodes = 3,\n                        Priority = 7,\n                        ReadOnlyNodes = 0,\n                    },\n                },\n            },\n        },\n        CloudBackup = true,\n        AutoScalingDiskGbEnabled = true,\n        ProviderName = \"AWS\",\n        ProviderInstanceSizeName = \"M40\",\n    });\n\n    var test = Mongodbatlas.GetCluster.Invoke(new()\n    {\n        ProjectId = testCluster.ProjectId,\n        Name = testCluster.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := mongodbatlas.NewCluster(ctx, \"test\", \u0026mongodbatlas.ClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:        pulumi.String(\"cluster-test\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.ClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecArgs{\n\t\t\t\t\tNumShards: pulumi.Int(1),\n\t\t\t\t\tRegionsConfigs: mongodbatlas.ClusterReplicationSpecRegionsConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecRegionsConfigArgs{\n\t\t\t\t\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tElectableNodes: pulumi.Int(3),\n\t\t\t\t\t\t\tPriority:       pulumi.Int(7),\n\t\t\t\t\t\t\tReadOnlyNodes:  pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCloudBackup:              pulumi.Bool(true),\n\t\t\tAutoScalingDiskGbEnabled: pulumi.Bool(true),\n\t\t\tProviderName:             pulumi.String(\"AWS\"),\n\t\t\tProviderInstanceSizeName: pulumi.String(\"M40\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupClusterOutput(ctx, mongodbatlas.GetClusterOutputArgs{\n\t\t\tProjectId: testCluster.ProjectId,\n\t\t\tName:      testCluster.Name,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Cluster;\nimport com.pulumi.mongodbatlas.ClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.ClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testCluster = new Cluster(\"testCluster\", ClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"cluster-test\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(ClusterReplicationSpecArgs.builder()\n                .numShards(1)\n                .regionsConfigs(ClusterReplicationSpecRegionsConfigArgs.builder()\n                    .regionName(\"US_EAST_1\")\n                    .electableNodes(3)\n                    .priority(7)\n                    .readOnlyNodes(0)\n                    .build())\n                .build())\n            .cloudBackup(true)\n            .autoScalingDiskGbEnabled(true)\n            .providerName(\"AWS\")\n            .providerInstanceSizeName(\"M40\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getCluster(GetClusterArgs.builder()\n            .projectId(testCluster.projectId())\n            .name(testCluster.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testCluster:\n    type: mongodbatlas:Cluster\n    name: test\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: cluster-test\n      clusterType: REPLICASET\n      replicationSpecs:\n        - numShards: 1\n          regionsConfigs:\n            - regionName: US_EAST_1\n              electableNodes: 3\n              priority: 7\n              readOnlyNodes: 0\n      cloudBackup: true\n      autoScalingDiskGbEnabled: true # Provider Settings \"block\"\n      providerName: AWS\n      providerInstanceSizeName: M40\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCluster\n      arguments:\n        projectId: ${testCluster.projectId}\n        name: ${testCluster.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCluster.\n","properties":{"name":{"type":"string","description":"Name of the cluster as it appears in Atlas. Once the cluster is created, its name cannot be changed.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create the cluster.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getCluster.\n","properties":{"advancedConfigurations":{"description":"Get the advanced configuration options. See Advanced Configuration below for more details.\n","items":{"$ref":"#/types/mongodbatlas:index/getClusterAdvancedConfiguration:getClusterAdvancedConfiguration"},"type":"array"},"autoScalingComputeEnabled":{"description":"Specifies whether cluster tier auto-scaling is enabled. The default is false.\n","type":"boolean"},"autoScalingComputeScaleDownEnabled":{"description":"Specifies whether cluster tier auto-down-scaling is enabled.\n","type":"boolean"},"autoScalingDiskGbEnabled":{"description":"Indicates whether disk auto-scaling is enabled.\n","type":"boolean"},"backingProviderName":{"description":"Indicates Cloud service provider on which the server for a multi-tenant cluster is provisioned.\n","type":"string"},"backupEnabled":{"description":"Legacy Option, Indicates whether Atlas continuous backups are enabled for the cluster.\n","type":"boolean"},"biConnectorConfigs":{"description":"Indicates BI Connector for Atlas configuration on this cluster. BI Connector for Atlas is only available for M10+ clusters. See BI Connector below for more details.\n","items":{"$ref":"#/types/mongodbatlas:index/getClusterBiConnectorConfig:getClusterBiConnectorConfig"},"type":"array"},"clusterType":{"description":"Indicates the type of the cluster that you want to modify. You cannot convert a sharded cluster deployment to a replica set deployment.\n","type":"string"},"connectionStrings":{"description":"Set of connection strings that your applications use to connect to this cluster. More information in [Connection-strings](https://docs.mongodb.com/manual/reference/connection-string/). Use the parameters in this object to connect your applications to this cluster. To learn more about the formats of connection strings, see [Connection String Options](https://docs.atlas.mongodb.com/reference/faq/connection-changes/).\n","items":{"$ref":"#/types/mongodbatlas:index/getClusterConnectionString:getClusterConnectionString"},"type":"array"},"containerId":{"description":"The Network Peering Container ID.\n","type":"string"},"diskSizeGb":{"description":"Indicates the size in gigabytes of the server’s root volume (AWS/GCP Only).\n","type":"number"},"encryptionAtRestProvider":{"description":"Indicates whether Encryption at Rest is enabled or disabled.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"labels":{"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below. **DEPRECATED** Use \u003cspan pulumi-lang-nodejs=\"`tags`\" pulumi-lang-dotnet=\"`Tags`\" pulumi-lang-go=\"`tags`\" pulumi-lang-python=\"`tags`\" pulumi-lang-yaml=\"`tags`\" pulumi-lang-java=\"`tags`\"\u003e`tags`\u003c/span\u003e instead.\n","items":{"$ref":"#/types/mongodbatlas:index/getClusterLabel:getClusterLabel"},"type":"array"},"mongoDbMajorVersion":{"description":"Indicates the version of the cluster to deploy.\n","type":"string"},"mongoDbVersion":{"description":"Version of MongoDB the cluster runs, in `major-version`.`minor-version` format.\n","type":"string"},"mongoUri":{"description":"Base connection string for the cluster. Atlas only displays this field after the cluster is operational, not while it builds the cluster.\n","type":"string"},"mongoUriUpdated":{"description":"Lists when the connection string was last updated. The connection string changes, for example, if you change a replica set to a sharded cluster.\n","type":"string"},"mongoUriWithOptions":{"description":"Describes connection string for connecting to the Atlas cluster. Includes the replicaSet, ssl, and authSource query parameters in the connection string with values appropriate for the cluster.\n","type":"string"},"name":{"description":"The name of the current plugin\n","type":"string"},"numShards":{"description":"Number of shards to deploy in the specified zone.\n","type":"integer"},"paused":{"description":"Flag that indicates whether the cluster is paused or not.\n","type":"boolean"},"pinnedFcvs":{"description":"The pinned Feature Compatibility Version (FCV) with its associated expiration date. See below.\n","items":{"$ref":"#/types/mongodbatlas:index/getClusterPinnedFcv:getClusterPinnedFcv"},"type":"array"},"pitEnabled":{"description":"Flag that indicates if the cluster uses Continuous Cloud Backup.\n","type":"boolean"},"projectId":{"type":"string"},"providerAutoScalingComputeMaxInstanceSize":{"description":"Maximum instance size to which your cluster can automatically scale.\n","type":"string"},"providerAutoScalingComputeMinInstanceSize":{"description":"Minimum instance size to which your cluster can automatically scale.\n","type":"string"},"providerBackupEnabled":{"type":"boolean"},"providerDiskIops":{"description":"Indicates the maximum input/output operations per second (IOPS) the system can perform. The possible values depend on the selected providerSettings.instanceSizeName and diskSizeGB.\n","type":"integer"},"providerDiskTypeName":{"description":"Describes Azure disk type of the server’s root volume (Azure Only).\n","type":"string"},"providerEncryptEbsVolume":{"description":"**(DEPRECATED)** Indicates whether the Amazon EBS encryption is enabled. This feature encrypts the server’s root volume for both data at rest within the volume and data moving between the volume and the instance. By default this attribute is always enabled, per deprecation process showing the real value at \u003cspan pulumi-lang-nodejs=\"`providerEncryptEbsVolumeFlag`\" pulumi-lang-dotnet=\"`ProviderEncryptEbsVolumeFlag`\" pulumi-lang-go=\"`providerEncryptEbsVolumeFlag`\" pulumi-lang-python=\"`provider_encrypt_ebs_volume_flag`\" pulumi-lang-yaml=\"`providerEncryptEbsVolumeFlag`\" pulumi-lang-java=\"`providerEncryptEbsVolumeFlag`\"\u003e`provider_encrypt_ebs_volume_flag`\u003c/span\u003e computed attribute.\n","type":"boolean"},"providerEncryptEbsVolumeFlag":{"type":"boolean"},"providerInstanceSizeName":{"description":"Atlas provides different instance sizes, each with a default storage capacity and RAM size.\n","type":"string"},"providerName":{"description":"Indicates the cloud service provider on which the servers are provisioned.\n","type":"string"},"providerRegionName":{"description":"Indicates Physical location of your MongoDB cluster. The region you choose can affect network latency for clients accessing your databases.  Requires the Atlas Region name, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n","type":"string"},"providerVolumeType":{"description":"Indicates the type of the volume. The possible values are: `STANDARD` and `PROVISIONED`.\n\u003e **NOTE:** `STANDARD` is not available for NVME clusters.\n","type":"string"},"redactClientLogData":{"description":"(Optional) Flag that enables or disables log redaction, see the [manual](https://www.mongodb.com/docs/manual/administration/monitoring/#log-redaction) for more information.\n","type":"boolean"},"replicationFactor":{"description":"(Deprecated) Number of replica set members. Each member keeps a copy of your databases, providing high availability and data redundancy. The possible values are 3, 5, or 7. The default value is 3.\n","type":"integer"},"replicationSpecs":{"description":"Configuration for cluster regions.  See Replication Spec below for more details.\n","items":{"$ref":"#/types/mongodbatlas:index/getClusterReplicationSpec:getClusterReplicationSpec"},"type":"array"},"snapshotBackupPolicies":{"description":"current snapshot schedule and retention settings for the cluster.\n","items":{"$ref":"#/types/mongodbatlas:index/getClusterSnapshotBackupPolicy:getClusterSnapshotBackupPolicy"},"type":"array"},"srvAddress":{"description":"Connection string for connecting to the Atlas cluster. The +srv modifier forces the connection to use TLS/SSL. See the mongoURI for additional options.\n","type":"string"},"stateName":{"description":"Indicates the current state of the cluster. The possible states are:\n- IDLE\n- CREATING\n- UPDATING\n- DELETING\n- DELETED\n- REPAIRING\n","type":"string"},"tags":{"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n","items":{"$ref":"#/types/mongodbatlas:index/getClusterTag:getClusterTag"},"type":"array"},"terminationProtectionEnabled":{"description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n","type":"boolean"},"versionReleaseSystem":{"description":"Release cadence that Atlas uses for this cluster.\n","type":"string"}},"required":["advancedConfigurations","autoScalingComputeEnabled","autoScalingComputeScaleDownEnabled","autoScalingDiskGbEnabled","backingProviderName","backupEnabled","biConnectorConfigs","clusterType","connectionStrings","containerId","diskSizeGb","encryptionAtRestProvider","labels","mongoDbMajorVersion","mongoDbVersion","mongoUri","mongoUriUpdated","mongoUriWithOptions","name","numShards","paused","pinnedFcvs","pitEnabled","projectId","providerAutoScalingComputeMaxInstanceSize","providerAutoScalingComputeMinInstanceSize","providerBackupEnabled","providerDiskIops","providerDiskTypeName","providerEncryptEbsVolume","providerEncryptEbsVolumeFlag","providerInstanceSizeName","providerName","providerRegionName","providerVolumeType","redactClientLogData","replicationFactor","replicationSpecs","snapshotBackupPolicies","srvAddress","stateName","tags","terminationProtectionEnabled","versionReleaseSystem","id"],"type":"object"}},"mongodbatlas:index/getClusterOutageSimulation:getClusterOutageSimulation":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ClusterOutageSimulation`\" pulumi-lang-dotnet=\"`mongodbatlas.ClusterOutageSimulation`\" pulumi-lang-go=\"`ClusterOutageSimulation`\" pulumi-lang-python=\"`ClusterOutageSimulation`\" pulumi-lang-yaml=\"`mongodbatlas.ClusterOutageSimulation`\" pulumi-lang-java=\"`mongodbatlas.ClusterOutageSimulation`\"\u003e`mongodbatlas.ClusterOutageSimulation`\u003c/span\u003e provides a Cluster Outage Simulation resource. For more details see https://www.mongodb.com/docs/atlas/tutorial/test-resilience/simulate-regional-outage/\n\nTest Outage on Minority of Electable Nodes - Select fewer than half of your electable nodes. This operation is supported via Terraform Provider. \n\nTest Outage on Majority of Electable Nodes - Select at least one more than half of your electable nodes and keep at least one electable node remaining. This operation not supported via Terraform Provider. Use the Atlas UI instead. \n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n### S\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst outageSimulation = mongodbatlas.getClusterOutageSimulation({\n    projectId: \"64707f06c519c20c3a2b1b03\",\n    clusterName: \"Cluster0\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\noutage_simulation = mongodbatlas.get_cluster_outage_simulation(project_id=\"64707f06c519c20c3a2b1b03\",\n    cluster_name=\"Cluster0\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var outageSimulation = Mongodbatlas.GetClusterOutageSimulation.Invoke(new()\n    {\n        ProjectId = \"64707f06c519c20c3a2b1b03\",\n        ClusterName = \"Cluster0\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupClusterOutageSimulation(ctx, \u0026mongodbatlas.LookupClusterOutageSimulationArgs{\n\t\t\tProjectId:   \"64707f06c519c20c3a2b1b03\",\n\t\t\tClusterName: \"Cluster0\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetClusterOutageSimulationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var outageSimulation = MongodbatlasFunctions.getClusterOutageSimulation(GetClusterOutageSimulationArgs.builder()\n            .projectId(\"64707f06c519c20c3a2b1b03\")\n            .clusterName(\"Cluster0\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  outageSimulation:\n    fn::invoke:\n      function: mongodbatlas:getClusterOutageSimulation\n      arguments:\n        projectId: 64707f06c519c20c3a2b1b03\n        clusterName: Cluster0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusterOutageSimulation.\n","properties":{"clusterName":{"type":"string","description":"Name of the Atlas Cluster that is undergoing outage simulation.\n"},"projectId":{"type":"string","description":"The unique ID for the project that contains the cluster that is undergoing outage simulation.\n"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getClusterOutageSimulation.\n","properties":{"clusterName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"outageFilters":{"description":"List of settings that specify the type of cluster outage simulation.\n","items":{"$ref":"#/types/mongodbatlas:index/getClusterOutageSimulationOutageFilter:getClusterOutageSimulationOutageFilter"},"type":"array"},"projectId":{"type":"string"},"simulationId":{"description":"Unique 24-hexadecimal character string that identifies the outage simulation.\n","type":"string"},"startRequestDate":{"description":"Date and time when MongoDB Cloud started the regional outage simulation.\n","type":"string"},"state":{"description":"Current phase of the outage simulation:\n* `START_REQUESTED` - User has requested cluster outage simulation.\n* `STARTING` - MongoDB Cloud is starting cluster outage simulation.\n* `SIMULATING` - MongoDB Cloud is simulating cluster outage.\n* `RECOVERY_REQUESTED` - User has requested recovery from the simulated outage.\n* `RECOVERING` - MongoDB Cloud is recovering the cluster from the simulated outage.\n* `COMPLETE` - MongoDB Cloud has completed the cluster outage simulation.\n","type":"string"}},"required":["clusterName","outageFilters","projectId","simulationId","startRequestDate","state","id"],"type":"object"}},"mongodbatlas:index/getClusters:getClusters":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Cluster`\" pulumi-lang-dotnet=\"`mongodbatlas.Cluster`\" pulumi-lang-go=\"`Cluster`\" pulumi-lang-python=\"`Cluster`\" pulumi-lang-yaml=\"`mongodbatlas.Cluster`\" pulumi-lang-java=\"`mongodbatlas.Cluster`\"\u003e`mongodbatlas.Cluster`\u003c/span\u003e describes all Clusters by the provided project_id. The data source requires your Project ID.\n\n\u003e **DEPRECATION:** This datasource is deprecated and will be removed in the next major release. Please use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-dotnet=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-go=\"`getAdvancedClusters`\" pulumi-lang-python=\"`get_advanced_clusters`\" pulumi-lang-yaml=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-java=\"`mongodbatlas.getAdvancedClusters`\"\u003e`mongodbatlas.getAdvancedClusters`\u003c/span\u003e. For more details, see our migration guide.\n\n\u003e **IMPORTANT:**\n\u003cbr\u003e \u0026#8226; Multi Region Cluster: The \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Cluster`\" pulumi-lang-dotnet=\"`mongodbatlas.Cluster`\" pulumi-lang-go=\"`Cluster`\" pulumi-lang-python=\"`Cluster`\" pulumi-lang-yaml=\"`mongodbatlas.Cluster`\" pulumi-lang-java=\"`mongodbatlas.Cluster`\"\u003e`mongodbatlas.Cluster`\u003c/span\u003e data source doesn't return the \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e for each region utilized by the cluster. For retrieving the \u003cspan pulumi-lang-nodejs=\"`containerId`\" pulumi-lang-dotnet=\"`ContainerId`\" pulumi-lang-go=\"`containerId`\" pulumi-lang-python=\"`container_id`\" pulumi-lang-yaml=\"`containerId`\" pulumi-lang-java=\"`containerId`\"\u003e`container_id`\u003c/span\u003e, we recommend the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e data source instead.\n\u003cbr\u003e \u0026#8226; Changes to cluster configurations can affect costs. Before making changes, please see [Billing](https://docs.atlas.mongodb.com/billing/).\n\u003cbr\u003e \u0026#8226; If your Atlas project contains a custom role that uses actions introduced in a specific MongoDB version, you cannot create a cluster with a MongoDB version less than that version unless you delete the custom role.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testCluster = new mongodbatlas.Cluster(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"cluster-test\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        numShards: 1,\n        regionsConfigs: [{\n            regionName: \"US_EAST_1\",\n            electableNodes: 3,\n            priority: 7,\n            readOnlyNodes: 0,\n        }],\n    }],\n    cloudBackup: true,\n    autoScalingDiskGbEnabled: true,\n    providerName: \"AWS\",\n    providerInstanceSizeName: \"M40\",\n});\nconst test = mongodbatlas.getClustersOutput({\n    projectId: testCluster.projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_cluster = mongodbatlas.Cluster(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"cluster-test\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"num_shards\": 1,\n        \"regions_configs\": [{\n            \"region_name\": \"US_EAST_1\",\n            \"electable_nodes\": 3,\n            \"priority\": 7,\n            \"read_only_nodes\": 0,\n        }],\n    }],\n    cloud_backup=True,\n    auto_scaling_disk_gb_enabled=True,\n    provider_name=\"AWS\",\n    provider_instance_size_name=\"M40\")\ntest = mongodbatlas.get_clusters_output(project_id=test_cluster.project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testCluster = new Mongodbatlas.Cluster(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"cluster-test\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.ClusterReplicationSpecArgs\n            {\n                NumShards = 1,\n                RegionsConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.ClusterReplicationSpecRegionsConfigArgs\n                    {\n                        RegionName = \"US_EAST_1\",\n                        ElectableNodes = 3,\n                        Priority = 7,\n                        ReadOnlyNodes = 0,\n                    },\n                },\n            },\n        },\n        CloudBackup = true,\n        AutoScalingDiskGbEnabled = true,\n        ProviderName = \"AWS\",\n        ProviderInstanceSizeName = \"M40\",\n    });\n\n    var test = Mongodbatlas.GetClusters.Invoke(new()\n    {\n        ProjectId = testCluster.ProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCluster, err := mongodbatlas.NewCluster(ctx, \"test\", \u0026mongodbatlas.ClusterArgs{\n\t\t\tProjectId:   pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:        pulumi.String(\"cluster-test\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.ClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecArgs{\n\t\t\t\t\tNumShards: pulumi.Int(1),\n\t\t\t\t\tRegionsConfigs: mongodbatlas.ClusterReplicationSpecRegionsConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.ClusterReplicationSpecRegionsConfigArgs{\n\t\t\t\t\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tElectableNodes: pulumi.Int(3),\n\t\t\t\t\t\t\tPriority:       pulumi.Int(7),\n\t\t\t\t\t\t\tReadOnlyNodes:  pulumi.Int(0),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tCloudBackup:              pulumi.Bool(true),\n\t\t\tAutoScalingDiskGbEnabled: pulumi.Bool(true),\n\t\t\tProviderName:             pulumi.String(\"AWS\"),\n\t\t\tProviderInstanceSizeName: pulumi.String(\"M40\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupClustersOutput(ctx, mongodbatlas.GetClustersOutputArgs{\n\t\t\tProjectId: testCluster.ProjectId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Cluster;\nimport com.pulumi.mongodbatlas.ClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.ClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetClustersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testCluster = new Cluster(\"testCluster\", ClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"cluster-test\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(ClusterReplicationSpecArgs.builder()\n                .numShards(1)\n                .regionsConfigs(ClusterReplicationSpecRegionsConfigArgs.builder()\n                    .regionName(\"US_EAST_1\")\n                    .electableNodes(3)\n                    .priority(7)\n                    .readOnlyNodes(0)\n                    .build())\n                .build())\n            .cloudBackup(true)\n            .autoScalingDiskGbEnabled(true)\n            .providerName(\"AWS\")\n            .providerInstanceSizeName(\"M40\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getClusters(GetClustersArgs.builder()\n            .projectId(testCluster.projectId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testCluster:\n    type: mongodbatlas:Cluster\n    name: test\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: cluster-test\n      clusterType: REPLICASET\n      replicationSpecs:\n        - numShards: 1\n          regionsConfigs:\n            - regionName: US_EAST_1\n              electableNodes: 3\n              priority: 7\n              readOnlyNodes: 0\n      cloudBackup: true\n      autoScalingDiskGbEnabled: true # Provider Settings \"block\"\n      providerName: AWS\n      providerInstanceSizeName: M40\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getClusters\n      arguments:\n        projectId: ${testCluster.projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getClusters.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project to get the clusters.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getClusters.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"description":"A list where each represents a Cluster. See Cluster below for more details.\n","items":{"$ref":"#/types/mongodbatlas:index/getClustersResult:getClustersResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getControlPlaneIpAddresses:getControlPlaneIpAddresses":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getControlPlaneIpAddresses`\" pulumi-lang-dotnet=\"`mongodbatlas.getControlPlaneIpAddresses`\" pulumi-lang-go=\"`getControlPlaneIpAddresses`\" pulumi-lang-python=\"`get_control_plane_ip_addresses`\" pulumi-lang-yaml=\"`mongodbatlas.getControlPlaneIpAddresses`\" pulumi-lang-java=\"`mongodbatlas.getControlPlaneIpAddresses`\"\u003e`mongodbatlas.getControlPlaneIpAddresses`\u003c/span\u003e returns all control plane IP addresses.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nexport = async () =\u003e {\n    const test = await mongodbatlas.getControlPlaneIpAddresses({});\n    return {\n        \"outbound-aws-ip-addresses\": test.outbound?.aws,\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_control_plane_ip_addresses()\npulumi.export(\"outbound-aws-ip-addresses\", test.outbound.aws)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetControlPlaneIpAddresses.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"outbound-aws-ip-addresses\"] = test.Apply(getControlPlaneIpAddressesResult =\u003e getControlPlaneIpAddressesResult.Outbound?.Aws),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.GetControlPlaneIpAddresses(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"outbound-aws-ip-addresses\", test.Outbound.Aws)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getControlPlaneIpAddresses(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        ctx.export(\"outbound-aws-ip-addresses\", test.outbound().aws());\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getControlPlaneIpAddresses\n      arguments: {}\noutputs:\n  outbound-aws-ip-addresses: ${test.outbound.aws}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getControlPlaneIpAddresses.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"inbound":{"$ref":"#/types/mongodbatlas:index/getControlPlaneIpAddressesInbound:getControlPlaneIpAddressesInbound","description":"List of inbound IP addresses to the Atlas control plane, categorized by cloud provider. If your application allows outbound HTTP requests only to specific IP addresses, you must allow access to the following IP addresses so that your API requests can reach the Atlas control plane.\n"},"outbound":{"$ref":"#/types/mongodbatlas:index/getControlPlaneIpAddressesOutbound:getControlPlaneIpAddressesOutbound","description":"List of outbound IP addresses from the Atlas control plane, categorized by cloud provider. If your network allows inbound HTTP requests only from specific IP addresses, you must allow access from the following IP addresses so that Atlas can communicate with your webhooks and KMS.\n"}},"required":["inbound","outbound","id"],"type":"object"}},"mongodbatlas:index/getCustomDbRole:getCustomDbRole":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CustomDbRole`\" pulumi-lang-dotnet=\"`mongodbatlas.CustomDbRole`\" pulumi-lang-go=\"`CustomDbRole`\" pulumi-lang-python=\"`CustomDbRole`\" pulumi-lang-yaml=\"`mongodbatlas.CustomDbRole`\" pulumi-lang-java=\"`mongodbatlas.CustomDbRole`\"\u003e`mongodbatlas.CustomDbRole`\u003c/span\u003e describes a Custom DB Role. This represents a custom db role.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testRole = new mongodbatlas.CustomDbRole(\"test_role\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    roleName: \"myCustomRole\",\n    actions: [\n        {\n            action: \"UPDATE\",\n            resources: [{\n                collectionName: \"\",\n                databaseName: \"anyDatabase\",\n            }],\n        },\n        {\n            action: \"INSERT\",\n            resources: [{\n                collectionName: \"\",\n                databaseName: \"anyDatabase\",\n            }],\n        },\n    ],\n});\nconst test = mongodbatlas.getCustomDbRoleOutput({\n    projectId: testRole.projectId,\n    roleName: testRole.roleName,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_role = mongodbatlas.CustomDbRole(\"test_role\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    role_name=\"myCustomRole\",\n    actions=[\n        {\n            \"action\": \"UPDATE\",\n            \"resources\": [{\n                \"collection_name\": \"\",\n                \"database_name\": \"anyDatabase\",\n            }],\n        },\n        {\n            \"action\": \"INSERT\",\n            \"resources\": [{\n                \"collection_name\": \"\",\n                \"database_name\": \"anyDatabase\",\n            }],\n        },\n    ])\ntest = mongodbatlas.get_custom_db_role_output(project_id=test_role.project_id,\n    role_name=test_role.role_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testRole = new Mongodbatlas.CustomDbRole(\"test_role\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        RoleName = \"myCustomRole\",\n        Actions = new[]\n        {\n            new Mongodbatlas.Inputs.CustomDbRoleActionArgs\n            {\n                Action = \"UPDATE\",\n                Resources = new[]\n                {\n                    new Mongodbatlas.Inputs.CustomDbRoleActionResourceArgs\n                    {\n                        CollectionName = \"\",\n                        DatabaseName = \"anyDatabase\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.CustomDbRoleActionArgs\n            {\n                Action = \"INSERT\",\n                Resources = new[]\n                {\n                    new Mongodbatlas.Inputs.CustomDbRoleActionResourceArgs\n                    {\n                        CollectionName = \"\",\n                        DatabaseName = \"anyDatabase\",\n                    },\n                },\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetCustomDbRole.Invoke(new()\n    {\n        ProjectId = testRole.ProjectId,\n        RoleName = testRole.RoleName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestRole, err := mongodbatlas.NewCustomDbRole(ctx, \"test_role\", \u0026mongodbatlas.CustomDbRoleArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tRoleName:  pulumi.String(\"myCustomRole\"),\n\t\t\tActions: mongodbatlas.CustomDbRoleActionArray{\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"UPDATE\"),\n\t\t\t\t\tResources: mongodbatlas.CustomDbRoleActionResourceArray{\n\t\t\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionResourceArgs{\n\t\t\t\t\t\t\tCollectionName: pulumi.String(\"\"),\n\t\t\t\t\t\t\tDatabaseName:   pulumi.String(\"anyDatabase\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionArgs{\n\t\t\t\t\tAction: pulumi.String(\"INSERT\"),\n\t\t\t\t\tResources: mongodbatlas.CustomDbRoleActionResourceArray{\n\t\t\t\t\t\t\u0026mongodbatlas.CustomDbRoleActionResourceArgs{\n\t\t\t\t\t\t\tCollectionName: pulumi.String(\"\"),\n\t\t\t\t\t\t\tDatabaseName:   pulumi.String(\"anyDatabase\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCustomDbRoleOutput(ctx, mongodbatlas.GetCustomDbRoleOutputArgs{\n\t\t\tProjectId: testRole.ProjectId,\n\t\t\tRoleName:  testRole.RoleName,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CustomDbRole;\nimport com.pulumi.mongodbatlas.CustomDbRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.CustomDbRoleActionArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCustomDbRoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testRole = new CustomDbRole(\"testRole\", CustomDbRoleArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .roleName(\"myCustomRole\")\n            .actions(            \n                CustomDbRoleActionArgs.builder()\n                    .action(\"UPDATE\")\n                    .resources(CustomDbRoleActionResourceArgs.builder()\n                        .collectionName(\"\")\n                        .databaseName(\"anyDatabase\")\n                        .build())\n                    .build(),\n                CustomDbRoleActionArgs.builder()\n                    .action(\"INSERT\")\n                    .resources(CustomDbRoleActionResourceArgs.builder()\n                        .collectionName(\"\")\n                        .databaseName(\"anyDatabase\")\n                        .build())\n                    .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getCustomDbRole(GetCustomDbRoleArgs.builder()\n            .projectId(testRole.projectId())\n            .roleName(testRole.roleName())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testRole:\n    type: mongodbatlas:CustomDbRole\n    name: test_role\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      roleName: myCustomRole\n      actions:\n        - action: UPDATE\n          resources:\n            - collectionName: \"\"\n              databaseName: anyDatabase\n        - action: INSERT\n          resources:\n            - collectionName: \"\"\n              databaseName: anyDatabase\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCustomDbRole\n      arguments:\n        projectId: ${testRole.projectId}\n        roleName: ${testRole.roleName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomDbRole.\n","properties":{"inheritedRoles":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getCustomDbRoleInheritedRole:getCustomDbRoleInheritedRole"}},"projectId":{"type":"string","description":"The unique ID for the project.\n"},"roleName":{"type":"string","description":"Name of the custom role.\n"}},"type":"object","required":["projectId","roleName"]},"outputs":{"description":"A collection of values returned by getCustomDbRole.\n","properties":{"actions":{"items":{"$ref":"#/types/mongodbatlas:index/getCustomDbRoleAction:getCustomDbRoleAction"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"inheritedRoles":{"items":{"$ref":"#/types/mongodbatlas:index/getCustomDbRoleInheritedRole:getCustomDbRoleInheritedRole"},"type":"array"},"projectId":{"type":"string"},"roleName":{"description":"(Required) Name of the inherited role. This can either be another custom role or a built-in role.\n","type":"string"}},"required":["actions","projectId","roleName","id"],"type":"object"}},"mongodbatlas:index/getCustomDbRoles:getCustomDbRoles":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getCustomDbRoles`\" pulumi-lang-dotnet=\"`mongodbatlas.getCustomDbRoles`\" pulumi-lang-go=\"`getCustomDbRoles`\" pulumi-lang-python=\"`get_custom_db_roles`\" pulumi-lang-yaml=\"`mongodbatlas.getCustomDbRoles`\" pulumi-lang-java=\"`mongodbatlas.getCustomDbRoles`\"\u003e`mongodbatlas.getCustomDbRoles`\u003c/span\u003e describes all Custom DB Roles. This represents a custom db roles.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testDatabaseUser = new mongodbatlas.DatabaseUser(\"test\", {\n    username: \"test-acc-username\",\n    password: \"test-acc-password\",\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    databaseName: \"admin\",\n    roles: [\n        {\n            roleName: \"readWrite\",\n            databaseName: \"admin\",\n        },\n        {\n            roleName: \"atlasAdmin\",\n            databaseName: \"admin\",\n        },\n    ],\n});\nconst test = mongodbatlas.getCustomDbRoles({\n    projectId: testMongodbatlasCustomDbRole.projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_database_user = mongodbatlas.DatabaseUser(\"test\",\n    username=\"test-acc-username\",\n    password=\"test-acc-password\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    database_name=\"admin\",\n    roles=[\n        {\n            \"role_name\": \"readWrite\",\n            \"database_name\": \"admin\",\n        },\n        {\n            \"role_name\": \"atlasAdmin\",\n            \"database_name\": \"admin\",\n        },\n    ])\ntest = mongodbatlas.get_custom_db_roles(project_id=test_mongodbatlas_custom_db_role[\"projectId\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testDatabaseUser = new Mongodbatlas.DatabaseUser(\"test\", new()\n    {\n        Username = \"test-acc-username\",\n        Password = \"test-acc-password\",\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        DatabaseName = \"admin\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"readWrite\",\n                DatabaseName = \"admin\",\n            },\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"atlasAdmin\",\n                DatabaseName = \"admin\",\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetCustomDbRoles.Invoke(new()\n    {\n        ProjectId = testMongodbatlasCustomDbRole.ProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewDatabaseUser(ctx, \"test\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tUsername:     pulumi.String(\"test-acc-username\"),\n\t\t\tPassword:     pulumi.String(\"test-acc-password\"),\n\t\t\tProjectId:    pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tDatabaseName: \"admin\",\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"readWrite\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"atlasAdmin\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.LookupCustomDbRoles(ctx, \u0026mongodbatlas.LookupCustomDbRolesArgs{\n\t\t\tProjectId: testMongodbatlasCustomDbRole.ProjectId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCustomDbRolesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testDatabaseUser = new DatabaseUser(\"testDatabaseUser\", DatabaseUserArgs.builder()\n            .username(\"test-acc-username\")\n            .password(\"test-acc-password\")\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .databaseName(\"admin\")\n            .roles(            \n                DatabaseUserRoleArgs.builder()\n                    .roleName(\"readWrite\")\n                    .databaseName(\"admin\")\n                    .build(),\n                DatabaseUserRoleArgs.builder()\n                    .roleName(\"atlasAdmin\")\n                    .databaseName(\"admin\")\n                    .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getCustomDbRoles(GetCustomDbRolesArgs.builder()\n            .projectId(testMongodbatlasCustomDbRole.projectId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testDatabaseUser:\n    type: mongodbatlas:DatabaseUser\n    name: test\n    properties:\n      username: test-acc-username\n      password: test-acc-password\n      projectId: \u003cPROJECT-ID\u003e\n      databaseName: admin\n      roles:\n        - roleName: readWrite\n          databaseName: admin\n        - roleName: atlasAdmin\n          databaseName: admin\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCustomDbRoles\n      arguments:\n        projectId: ${testMongodbatlasCustomDbRole.projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomDbRoles.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project to get all custom db roles.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getCustomDbRoles.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"description":"A list where each represents a custom db roles.\n","items":{"$ref":"#/types/mongodbatlas:index/getCustomDbRolesResult:getCustomDbRolesResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getCustomDnsConfigurationClusterAws:getCustomDnsConfigurationClusterAws":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CustomDnsConfigurationClusterAws`\" pulumi-lang-dotnet=\"`mongodbatlas.CustomDnsConfigurationClusterAws`\" pulumi-lang-go=\"`CustomDnsConfigurationClusterAws`\" pulumi-lang-python=\"`CustomDnsConfigurationClusterAws`\" pulumi-lang-yaml=\"`mongodbatlas.CustomDnsConfigurationClusterAws`\" pulumi-lang-java=\"`mongodbatlas.CustomDnsConfigurationClusterAws`\"\u003e`mongodbatlas.CustomDnsConfigurationClusterAws`\u003c/span\u003e describes a Custom DNS Configuration for Atlas Clusters on AWS.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testCustomDnsConfigurationClusterAws = new mongodbatlas.CustomDnsConfigurationClusterAws(\"test\", {\n    projectId: \"\u003cproject-id\u003e\",\n    enabled: true,\n});\nconst test = mongodbatlas.getCustomDnsConfigurationClusterAwsOutput({\n    projectId: testCustomDnsConfigurationClusterAws.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_custom_dns_configuration_cluster_aws = mongodbatlas.CustomDnsConfigurationClusterAws(\"test\",\n    project_id=\"\u003cproject-id\u003e\",\n    enabled=True)\ntest = mongodbatlas.get_custom_dns_configuration_cluster_aws_output(project_id=test_custom_dns_configuration_cluster_aws.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testCustomDnsConfigurationClusterAws = new Mongodbatlas.CustomDnsConfigurationClusterAws(\"test\", new()\n    {\n        ProjectId = \"\u003cproject-id\u003e\",\n        Enabled = true,\n    });\n\n    var test = Mongodbatlas.GetCustomDnsConfigurationClusterAws.Invoke(new()\n    {\n        ProjectId = testCustomDnsConfigurationClusterAws.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestCustomDnsConfigurationClusterAws, err := mongodbatlas.NewCustomDnsConfigurationClusterAws(ctx, \"test\", \u0026mongodbatlas.CustomDnsConfigurationClusterAwsArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cproject-id\u003e\"),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupCustomDnsConfigurationClusterAwsOutput(ctx, mongodbatlas.GetCustomDnsConfigurationClusterAwsOutputArgs{\n\t\t\tProjectId: testCustomDnsConfigurationClusterAws.ID(),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CustomDnsConfigurationClusterAws;\nimport com.pulumi.mongodbatlas.CustomDnsConfigurationClusterAwsArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetCustomDnsConfigurationClusterAwsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testCustomDnsConfigurationClusterAws = new CustomDnsConfigurationClusterAws(\"testCustomDnsConfigurationClusterAws\", CustomDnsConfigurationClusterAwsArgs.builder()\n            .projectId(\"\u003cproject-id\u003e\")\n            .enabled(true)\n            .build());\n\n        final var test = MongodbatlasFunctions.getCustomDnsConfigurationClusterAws(GetCustomDnsConfigurationClusterAwsArgs.builder()\n            .projectId(testCustomDnsConfigurationClusterAws.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testCustomDnsConfigurationClusterAws:\n    type: mongodbatlas:CustomDnsConfigurationClusterAws\n    name: test\n    properties:\n      projectId: \u003cproject-id\u003e\n      enabled: true\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getCustomDnsConfigurationClusterAws\n      arguments:\n        projectId: ${testCustomDnsConfigurationClusterAws.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getCustomDnsConfigurationClusterAws.\n","properties":{"projectId":{"type":"string","description":"Unique identifier for the project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getCustomDnsConfigurationClusterAws.\n","properties":{"enabled":{"description":"Indicates whether the project's clusters deployed to AWS use custom DNS.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"}},"required":["enabled","projectId","id"],"type":"object"}},"mongodbatlas:index/getDatabaseUser:getDatabaseUser":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.DatabaseUser`\" pulumi-lang-dotnet=\"`mongodbatlas.DatabaseUser`\" pulumi-lang-go=\"`DatabaseUser`\" pulumi-lang-python=\"`DatabaseUser`\" pulumi-lang-yaml=\"`mongodbatlas.DatabaseUser`\" pulumi-lang-java=\"`mongodbatlas.DatabaseUser`\"\u003e`mongodbatlas.DatabaseUser`\u003c/span\u003e describes a Database User. This represents a database user which will be applied to all clusters within the project.\n\nEach user has a set of roles that provide access to the project’s databases. User's roles apply to all the clusters in the project: if two clusters have a \u003cspan pulumi-lang-nodejs=\"`products`\" pulumi-lang-dotnet=\"`Products`\" pulumi-lang-go=\"`products`\" pulumi-lang-python=\"`products`\" pulumi-lang-yaml=\"`products`\" pulumi-lang-java=\"`products`\"\u003e`products`\u003c/span\u003e database and a user has a role granting \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e access on the products database, the user has that access on both clusters.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testDatabaseUser = new mongodbatlas.DatabaseUser(\"test\", {\n    username: \"test-acc-username\",\n    password: \"test-acc-password\",\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    authDatabaseName: \"admin\",\n    roles: [\n        {\n            roleName: \"readWrite\",\n            databaseName: \"admin\",\n        },\n        {\n            roleName: \"atlasAdmin\",\n            databaseName: \"admin\",\n        },\n    ],\n    labels: [\n        {\n            key: \"key 1\",\n            value: \"value 1\",\n        },\n        {\n            key: \"key 2\",\n            value: \"value 2\",\n        },\n    ],\n});\nconst test = mongodbatlas.getDatabaseUserOutput({\n    projectId: testDatabaseUser.projectId,\n    username: testDatabaseUser.username,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_database_user = mongodbatlas.DatabaseUser(\"test\",\n    username=\"test-acc-username\",\n    password=\"test-acc-password\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    auth_database_name=\"admin\",\n    roles=[\n        {\n            \"role_name\": \"readWrite\",\n            \"database_name\": \"admin\",\n        },\n        {\n            \"role_name\": \"atlasAdmin\",\n            \"database_name\": \"admin\",\n        },\n    ],\n    labels=[\n        {\n            \"key\": \"key 1\",\n            \"value\": \"value 1\",\n        },\n        {\n            \"key\": \"key 2\",\n            \"value\": \"value 2\",\n        },\n    ])\ntest = mongodbatlas.get_database_user_output(project_id=test_database_user.project_id,\n    username=test_database_user.username)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testDatabaseUser = new Mongodbatlas.DatabaseUser(\"test\", new()\n    {\n        Username = \"test-acc-username\",\n        Password = \"test-acc-password\",\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        AuthDatabaseName = \"admin\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"readWrite\",\n                DatabaseName = \"admin\",\n            },\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"atlasAdmin\",\n                DatabaseName = \"admin\",\n            },\n        },\n        Labels = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserLabelArgs\n            {\n                Key = \"key 1\",\n                Value = \"value 1\",\n            },\n            new Mongodbatlas.Inputs.DatabaseUserLabelArgs\n            {\n                Key = \"key 2\",\n                Value = \"value 2\",\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetDatabaseUser.Invoke(new()\n    {\n        ProjectId = testDatabaseUser.ProjectId,\n        Username = testDatabaseUser.Username,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestDatabaseUser, err := mongodbatlas.NewDatabaseUser(ctx, \"test\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tUsername:         pulumi.String(\"test-acc-username\"),\n\t\t\tPassword:         pulumi.String(\"test-acc-password\"),\n\t\t\tProjectId:        pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tAuthDatabaseName: pulumi.String(\"admin\"),\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"readWrite\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"atlasAdmin\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: mongodbatlas.DatabaseUserLabelArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"key 1\"),\n\t\t\t\t\tValue: pulumi.String(\"value 1\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.DatabaseUserLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"key 2\"),\n\t\t\t\t\tValue: pulumi.String(\"value 2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupDatabaseUserOutput(ctx, mongodbatlas.GetDatabaseUserOutputArgs{\n\t\t\tProjectId: testDatabaseUser.ProjectId,\n\t\t\tUsername:  testDatabaseUser.Username,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserLabelArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetDatabaseUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testDatabaseUser = new DatabaseUser(\"testDatabaseUser\", DatabaseUserArgs.builder()\n            .username(\"test-acc-username\")\n            .password(\"test-acc-password\")\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .authDatabaseName(\"admin\")\n            .roles(            \n                DatabaseUserRoleArgs.builder()\n                    .roleName(\"readWrite\")\n                    .databaseName(\"admin\")\n                    .build(),\n                DatabaseUserRoleArgs.builder()\n                    .roleName(\"atlasAdmin\")\n                    .databaseName(\"admin\")\n                    .build())\n            .labels(            \n                DatabaseUserLabelArgs.builder()\n                    .key(\"key 1\")\n                    .value(\"value 1\")\n                    .build(),\n                DatabaseUserLabelArgs.builder()\n                    .key(\"key 2\")\n                    .value(\"value 2\")\n                    .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getDatabaseUser(GetDatabaseUserArgs.builder()\n            .projectId(testDatabaseUser.projectId())\n            .username(testDatabaseUser.username())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testDatabaseUser:\n    type: mongodbatlas:DatabaseUser\n    name: test\n    properties:\n      username: test-acc-username\n      password: test-acc-password\n      projectId: \u003cPROJECT-ID\u003e\n      authDatabaseName: admin\n      roles:\n        - roleName: readWrite\n          databaseName: admin\n        - roleName: atlasAdmin\n          databaseName: admin\n      labels:\n        - key: key 1\n          value: value 1\n        - key: key 2\n          value: value 2\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getDatabaseUser\n      arguments:\n        projectId: ${testDatabaseUser.projectId}\n        username: ${testDatabaseUser.username}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**Example of usage with a OIDC federated authentication user**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testDatabaseUser = new mongodbatlas.DatabaseUser(\"test\", {\n    username: \"64d613677e1ad50839cce4db/testUserOrGroup\",\n    projectId: \"6414908c207f4d22f4d8f232\",\n    authDatabaseName: \"admin\",\n    oidcAuthType: \"IDP_GROUP\",\n    roles: [{\n        roleName: \"readWriteAnyDatabase\",\n        databaseName: \"admin\",\n    }],\n});\nconst test = mongodbatlas.getDatabaseUserOutput({\n    username: testDatabaseUser.username,\n    projectId: \"6414908c207f4d22f4d8f232\",\n    authDatabaseName: \"admin\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_database_user = mongodbatlas.DatabaseUser(\"test\",\n    username=\"64d613677e1ad50839cce4db/testUserOrGroup\",\n    project_id=\"6414908c207f4d22f4d8f232\",\n    auth_database_name=\"admin\",\n    oidc_auth_type=\"IDP_GROUP\",\n    roles=[{\n        \"role_name\": \"readWriteAnyDatabase\",\n        \"database_name\": \"admin\",\n    }])\ntest = mongodbatlas.get_database_user_output(username=test_database_user.username,\n    project_id=\"6414908c207f4d22f4d8f232\",\n    auth_database_name=\"admin\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testDatabaseUser = new Mongodbatlas.DatabaseUser(\"test\", new()\n    {\n        Username = \"64d613677e1ad50839cce4db/testUserOrGroup\",\n        ProjectId = \"6414908c207f4d22f4d8f232\",\n        AuthDatabaseName = \"admin\",\n        OidcAuthType = \"IDP_GROUP\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"readWriteAnyDatabase\",\n                DatabaseName = \"admin\",\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetDatabaseUser.Invoke(new()\n    {\n        Username = testDatabaseUser.Username,\n        ProjectId = \"6414908c207f4d22f4d8f232\",\n        AuthDatabaseName = \"admin\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestDatabaseUser, err := mongodbatlas.NewDatabaseUser(ctx, \"test\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tUsername:         pulumi.String(\"64d613677e1ad50839cce4db/testUserOrGroup\"),\n\t\t\tProjectId:        pulumi.String(\"6414908c207f4d22f4d8f232\"),\n\t\t\tAuthDatabaseName: pulumi.String(\"admin\"),\n\t\t\tOidcAuthType:     pulumi.String(\"IDP_GROUP\"),\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"readWriteAnyDatabase\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupDatabaseUserOutput(ctx, mongodbatlas.GetDatabaseUserOutputArgs{\n\t\t\tUsername:         testDatabaseUser.Username,\n\t\t\tProjectId:        pulumi.String(\"6414908c207f4d22f4d8f232\"),\n\t\t\tAuthDatabaseName: pulumi.String(\"admin\"),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetDatabaseUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testDatabaseUser = new DatabaseUser(\"testDatabaseUser\", DatabaseUserArgs.builder()\n            .username(\"64d613677e1ad50839cce4db/testUserOrGroup\")\n            .projectId(\"6414908c207f4d22f4d8f232\")\n            .authDatabaseName(\"admin\")\n            .oidcAuthType(\"IDP_GROUP\")\n            .roles(DatabaseUserRoleArgs.builder()\n                .roleName(\"readWriteAnyDatabase\")\n                .databaseName(\"admin\")\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getDatabaseUser(GetDatabaseUserArgs.builder()\n            .username(testDatabaseUser.username())\n            .projectId(\"6414908c207f4d22f4d8f232\")\n            .authDatabaseName(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testDatabaseUser:\n    type: mongodbatlas:DatabaseUser\n    name: test\n    properties:\n      username: 64d613677e1ad50839cce4db/testUserOrGroup\n      projectId: 6414908c207f4d22f4d8f232\n      authDatabaseName: admin\n      oidcAuthType: IDP_GROUP\n      roles:\n        - roleName: readWriteAnyDatabase\n          databaseName: admin\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getDatabaseUser\n      arguments:\n        username: ${testDatabaseUser.username}\n        projectId: 6414908c207f4d22f4d8f232\n        authDatabaseName: admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\nNote: OIDC support is only avalible starting in [MongoDB 7.0](https://www.mongodb.com/evolved#mdbsevenzero) or later. To learn more, see the [MongoDB Atlas documentation](https://www.mongodb.com/docs/atlas/security-oidc/).\n","inputs":{"description":"A collection of arguments for invoking getDatabaseUser.\n","properties":{"authDatabaseName":{"type":"string","description":"The user’s authentication database. A user must provide both a username and authentication database to log into MongoDB. In Atlas deployments of MongoDB, the authentication database is almost always the admin database, for X509 it is $external.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create the database user.\n"},"username":{"type":"string","description":"Username for authenticating to MongoDB.\n"}},"type":"object","required":["authDatabaseName","projectId","username"]},"outputs":{"description":"A collection of values returned by getDatabaseUser.\n","properties":{"authDatabaseName":{"type":"string"},"awsIamType":{"description":"The new database user authenticates with AWS IAM credentials. Default is `NONE`, `USER` means user has AWS IAM user credentials, `ROLE` - means user has credentials associated with an AWS IAM role.\n","type":"string"},"description":{"description":"Description of this database user.\n","type":"string"},"id":{"description":"Autogenerated Unique ID for this data source.\n","type":"string"},"labels":{"items":{"$ref":"#/types/mongodbatlas:index/getDatabaseUserLabel:getDatabaseUserLabel"},"type":"array"},"ldapAuthType":{"description":"Method by which the provided username is authenticated. Default is `NONE`. Other valid values are: `USER`, `GROUP`.\n","type":"string"},"oidcAuthType":{"description":"(Optional) Human-readable label that indicates whether the new database user authenticates with OIDC (OpenID Connect) federated authentication. If no value is given, Atlas uses the default value of `NONE`. The accepted types are:\n* `NONE` -\tThe user does not use OIDC federated authentication.\n* `IDP_GROUP` - OIDC Workforce federated authentication group. To learn more about OIDC federated authentication, see [Set up Workforce Identity Federation with OIDC](https://www.mongodb.com/docs/atlas/security-oidc/).\n* `USER` - OIDC Workload federated authentication user. To learn more about OIDC federated authentication, see [Set up Workload Identity Federation with OIDC](https://www.mongodb.com/docs/atlas/security-oidc/).\n","type":"string"},"projectId":{"type":"string"},"roles":{"description":"List of user’s roles and the databases / collections on which the roles apply. A role allows the user to perform particular actions on the specified database. A role on the admin database can include privileges that apply to the other databases as well. See Roles below for more details.\n","items":{"$ref":"#/types/mongodbatlas:index/getDatabaseUserRole:getDatabaseUserRole"},"type":"array"},"scopes":{"description":"Array of clusters and Atlas Data Federation that this user has access to.\n","items":{"$ref":"#/types/mongodbatlas:index/getDatabaseUserScope:getDatabaseUserScope"},"type":"array"},"username":{"type":"string"},"x509Type":{"description":"X.509 method by which the provided username is authenticated.\n","type":"string"}},"required":["authDatabaseName","awsIamType","description","id","labels","ldapAuthType","oidcAuthType","projectId","roles","scopes","username","x509Type"],"type":"object"}},"mongodbatlas:index/getDatabaseUsers:getDatabaseUsers":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getDatabaseUsers`\" pulumi-lang-dotnet=\"`mongodbatlas.getDatabaseUsers`\" pulumi-lang-go=\"`getDatabaseUsers`\" pulumi-lang-python=\"`get_database_users`\" pulumi-lang-yaml=\"`mongodbatlas.getDatabaseUsers`\" pulumi-lang-java=\"`mongodbatlas.getDatabaseUsers`\"\u003e`mongodbatlas.getDatabaseUsers`\u003c/span\u003e describes all Database Users. This represents a database user which will be applied to all clusters within the project.\n\nEach user has a set of roles that provide access to the project’s databases. User's roles apply to all the clusters in the project: if two clusters have a \u003cspan pulumi-lang-nodejs=\"`products`\" pulumi-lang-dotnet=\"`Products`\" pulumi-lang-go=\"`products`\" pulumi-lang-python=\"`products`\" pulumi-lang-yaml=\"`products`\" pulumi-lang-java=\"`products`\"\u003e`products`\u003c/span\u003e database and a user has a role granting \u003cspan pulumi-lang-nodejs=\"`read`\" pulumi-lang-dotnet=\"`Read`\" pulumi-lang-go=\"`read`\" pulumi-lang-python=\"`read`\" pulumi-lang-yaml=\"`read`\" pulumi-lang-java=\"`read`\"\u003e`read`\u003c/span\u003e access on the products database, the user has that access on both clusters.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testDatabaseUser = new mongodbatlas.DatabaseUser(\"test\", {\n    username: \"test-acc-username\",\n    password: \"test-acc-password\",\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    authDatabaseName: \"admin\",\n    roles: [\n        {\n            roleName: \"readWrite\",\n            databaseName: \"admin\",\n        },\n        {\n            roleName: \"atlasAdmin\",\n            databaseName: \"admin\",\n        },\n    ],\n    labels: [\n        {\n            key: \"key 1\",\n            value: \"value 1\",\n        },\n        {\n            key: \"key 2\",\n            value: \"value 2\",\n        },\n    ],\n});\nconst test = mongodbatlas.getDatabaseUsersOutput({\n    projectId: testDatabaseUser.projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_database_user = mongodbatlas.DatabaseUser(\"test\",\n    username=\"test-acc-username\",\n    password=\"test-acc-password\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    auth_database_name=\"admin\",\n    roles=[\n        {\n            \"role_name\": \"readWrite\",\n            \"database_name\": \"admin\",\n        },\n        {\n            \"role_name\": \"atlasAdmin\",\n            \"database_name\": \"admin\",\n        },\n    ],\n    labels=[\n        {\n            \"key\": \"key 1\",\n            \"value\": \"value 1\",\n        },\n        {\n            \"key\": \"key 2\",\n            \"value\": \"value 2\",\n        },\n    ])\ntest = mongodbatlas.get_database_users_output(project_id=test_database_user.project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testDatabaseUser = new Mongodbatlas.DatabaseUser(\"test\", new()\n    {\n        Username = \"test-acc-username\",\n        Password = \"test-acc-password\",\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        AuthDatabaseName = \"admin\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"readWrite\",\n                DatabaseName = \"admin\",\n            },\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"atlasAdmin\",\n                DatabaseName = \"admin\",\n            },\n        },\n        Labels = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserLabelArgs\n            {\n                Key = \"key 1\",\n                Value = \"value 1\",\n            },\n            new Mongodbatlas.Inputs.DatabaseUserLabelArgs\n            {\n                Key = \"key 2\",\n                Value = \"value 2\",\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetDatabaseUsers.Invoke(new()\n    {\n        ProjectId = testDatabaseUser.ProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestDatabaseUser, err := mongodbatlas.NewDatabaseUser(ctx, \"test\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tUsername:         pulumi.String(\"test-acc-username\"),\n\t\t\tPassword:         pulumi.String(\"test-acc-password\"),\n\t\t\tProjectId:        pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tAuthDatabaseName: pulumi.String(\"admin\"),\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"readWrite\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"atlasAdmin\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: mongodbatlas.DatabaseUserLabelArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"key 1\"),\n\t\t\t\t\tValue: pulumi.String(\"value 1\"),\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.DatabaseUserLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"key 2\"),\n\t\t\t\t\tValue: pulumi.String(\"value 2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupDatabaseUsersOutput(ctx, mongodbatlas.GetDatabaseUsersOutputArgs{\n\t\t\tProjectId: testDatabaseUser.ProjectId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserLabelArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetDatabaseUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testDatabaseUser = new DatabaseUser(\"testDatabaseUser\", DatabaseUserArgs.builder()\n            .username(\"test-acc-username\")\n            .password(\"test-acc-password\")\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .authDatabaseName(\"admin\")\n            .roles(            \n                DatabaseUserRoleArgs.builder()\n                    .roleName(\"readWrite\")\n                    .databaseName(\"admin\")\n                    .build(),\n                DatabaseUserRoleArgs.builder()\n                    .roleName(\"atlasAdmin\")\n                    .databaseName(\"admin\")\n                    .build())\n            .labels(            \n                DatabaseUserLabelArgs.builder()\n                    .key(\"key 1\")\n                    .value(\"value 1\")\n                    .build(),\n                DatabaseUserLabelArgs.builder()\n                    .key(\"key 2\")\n                    .value(\"value 2\")\n                    .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getDatabaseUsers(GetDatabaseUsersArgs.builder()\n            .projectId(testDatabaseUser.projectId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testDatabaseUser:\n    type: mongodbatlas:DatabaseUser\n    name: test\n    properties:\n      username: test-acc-username\n      password: test-acc-password\n      projectId: \u003cPROJECT-ID\u003e\n      authDatabaseName: admin\n      roles:\n        - roleName: readWrite\n          databaseName: admin\n        - roleName: atlasAdmin\n          databaseName: admin\n      labels:\n        - key: key 1\n          value: value 1\n        - key: key 2\n          value: value 2\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getDatabaseUsers\n      arguments:\n        projectId: ${testDatabaseUser.projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n**Example of usage with a OIDC federated authentication user**\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testDatabaseUser = new mongodbatlas.DatabaseUser(\"test\", {\n    username: \"64d613677e1ad50839cce4db/testUserOrGroup\",\n    projectId: \"6414908c207f4d22f4d8f232\",\n    authDatabaseName: \"admin\",\n    oidcAuthType: \"IDP_GROUP\",\n    roles: [{\n        roleName: \"readWriteAnyDatabase\",\n        databaseName: \"admin\",\n    }],\n});\nconst test = mongodbatlas.getDatabaseUsers({\n    projectId: \"6414908c207f4d22f4d8f232\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_database_user = mongodbatlas.DatabaseUser(\"test\",\n    username=\"64d613677e1ad50839cce4db/testUserOrGroup\",\n    project_id=\"6414908c207f4d22f4d8f232\",\n    auth_database_name=\"admin\",\n    oidc_auth_type=\"IDP_GROUP\",\n    roles=[{\n        \"role_name\": \"readWriteAnyDatabase\",\n        \"database_name\": \"admin\",\n    }])\ntest = mongodbatlas.get_database_users(project_id=\"6414908c207f4d22f4d8f232\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testDatabaseUser = new Mongodbatlas.DatabaseUser(\"test\", new()\n    {\n        Username = \"64d613677e1ad50839cce4db/testUserOrGroup\",\n        ProjectId = \"6414908c207f4d22f4d8f232\",\n        AuthDatabaseName = \"admin\",\n        OidcAuthType = \"IDP_GROUP\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"readWriteAnyDatabase\",\n                DatabaseName = \"admin\",\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetDatabaseUsers.Invoke(new()\n    {\n        ProjectId = \"6414908c207f4d22f4d8f232\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewDatabaseUser(ctx, \"test\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tUsername:         pulumi.String(\"64d613677e1ad50839cce4db/testUserOrGroup\"),\n\t\t\tProjectId:        pulumi.String(\"6414908c207f4d22f4d8f232\"),\n\t\t\tAuthDatabaseName: pulumi.String(\"admin\"),\n\t\t\tOidcAuthType:     pulumi.String(\"IDP_GROUP\"),\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"readWriteAnyDatabase\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.LookupDatabaseUsers(ctx, \u0026mongodbatlas.LookupDatabaseUsersArgs{\n\t\t\tProjectId: \"6414908c207f4d22f4d8f232\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetDatabaseUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testDatabaseUser = new DatabaseUser(\"testDatabaseUser\", DatabaseUserArgs.builder()\n            .username(\"64d613677e1ad50839cce4db/testUserOrGroup\")\n            .projectId(\"6414908c207f4d22f4d8f232\")\n            .authDatabaseName(\"admin\")\n            .oidcAuthType(\"IDP_GROUP\")\n            .roles(DatabaseUserRoleArgs.builder()\n                .roleName(\"readWriteAnyDatabase\")\n                .databaseName(\"admin\")\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getDatabaseUsers(GetDatabaseUsersArgs.builder()\n            .projectId(\"6414908c207f4d22f4d8f232\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testDatabaseUser:\n    type: mongodbatlas:DatabaseUser\n    name: test\n    properties:\n      username: 64d613677e1ad50839cce4db/testUserOrGroup\n      projectId: 6414908c207f4d22f4d8f232\n      authDatabaseName: admin\n      oidcAuthType: IDP_GROUP\n      roles:\n        - roleName: readWriteAnyDatabase\n          databaseName: admin\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getDatabaseUsers\n      arguments:\n        projectId: 6414908c207f4d22f4d8f232\n```\n\u003c!--End PulumiCodeChooser --\u003e\nNote: OIDC support is only avalible starting in [MongoDB 7.0](https://www.mongodb.com/evolved#mdbsevenzero) or later. To learn more, see the [MongoDB Atlas documentation](https://www.mongodb.com/docs/atlas/security-oidc/).\n","inputs":{"description":"A collection of arguments for invoking getDatabaseUsers.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project to get all database users.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getDatabaseUsers.\n","properties":{"id":{"description":"Autogenerated Unique ID for this data source.\n","type":"string"},"projectId":{"description":"ID of the Atlas project the user belongs to.\n","type":"string"},"results":{"description":"A list where each represents a Database user.\n","items":{"$ref":"#/types/mongodbatlas:index/getDatabaseUsersResult:getDatabaseUsersResult"},"type":"array"}},"required":["id","projectId","results"],"type":"object"}},"mongodbatlas:index/getEncryptionAtRest:getEncryptionAtRest":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-go=\"`EncryptionAtRest`\" pulumi-lang-python=\"`EncryptionAtRest`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRest`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRest`\"\u003e`mongodbatlas.EncryptionAtRest`\u003c/span\u003e describes encryption at rest configuration for an Atlas project with one of the following providers:\n\n[Amazon Web Services Key Management Service](https://docs.atlas.mongodb.com/security-aws-kms/#security-aws-kms)\n[Azure Key Vault](https://docs.atlas.mongodb.com/security-azure-kms/#security-azure-kms)\n[Google Cloud KMS](https://docs.atlas.mongodb.com/security-gcp-kms/#security-gcp-kms)\n\n\n\u003e **IMPORTANT** By default, Atlas enables encryption at rest for all cluster storage and snapshot volumes.\n\n\u003e **IMPORTANT** Atlas limits this feature to dedicated cluster tiers of M10 and greater. For more information see: https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/group/endpoint-encryption-at-rest-using-customer-key-management\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\n## Example Usage\n\n### S\n\n### Configuring encryption at rest using customer key management in AWS\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst setupOnly = new mongodbatlas.CloudProviderAccessSetup(\"setup_only\", {\n    projectId: atlasProjectId,\n    providerName: \"AWS\",\n});\nconst authRole = new mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", {\n    projectId: atlasProjectId,\n    roleId: setupOnly.roleId,\n    aws: {\n        iamAssumedRoleArn: testRole.arn,\n    },\n});\nconst testEncryptionAtRest = new mongodbatlas.EncryptionAtRest(\"test\", {\n    projectId: atlasProjectId,\n    awsKmsConfig: {\n        enabled: true,\n        customerMasterKeyId: kmsKey.id,\n        region: atlasRegion,\n        roleId: authRole.roleId,\n    },\n    enabledForSearchNodes: true,\n});\nconst cluster = new mongodbatlas.AdvancedCluster(\"cluster\", {\n    projectId: testEncryptionAtRest.projectId,\n    name: \"MyCluster\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    encryptionAtRestProvider: \"AWS\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst test = mongodbatlas.getEncryptionAtRestOutput({\n    projectId: testEncryptionAtRest.projectId,\n});\nexport const isAwsKmsEncryptionAtRestValid = test.apply(test =\u003e test.awsKmsConfig?.valid);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nsetup_only = mongodbatlas.CloudProviderAccessSetup(\"setup_only\",\n    project_id=atlas_project_id,\n    provider_name=\"AWS\")\nauth_role = mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\",\n    project_id=atlas_project_id,\n    role_id=setup_only.role_id,\n    aws={\n        \"iam_assumed_role_arn\": test_role[\"arn\"],\n    })\ntest_encryption_at_rest = mongodbatlas.EncryptionAtRest(\"test\",\n    project_id=atlas_project_id,\n    aws_kms_config={\n        \"enabled\": True,\n        \"customer_master_key_id\": kms_key[\"id\"],\n        \"region\": atlas_region,\n        \"role_id\": auth_role.role_id,\n    },\n    enabled_for_search_nodes=True)\ncluster = mongodbatlas.AdvancedCluster(\"cluster\",\n    project_id=test_encryption_at_rest.project_id,\n    name=\"MyCluster\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    encryption_at_rest_provider=\"AWS\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id)\npulumi.export(\"isAwsKmsEncryptionAtRestValid\", test.aws_kms_config.valid)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var setupOnly = new Mongodbatlas.CloudProviderAccessSetup(\"setup_only\", new()\n    {\n        ProjectId = atlasProjectId,\n        ProviderName = \"AWS\",\n    });\n\n    var authRole = new Mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", new()\n    {\n        ProjectId = atlasProjectId,\n        RoleId = setupOnly.RoleId,\n        Aws = new Mongodbatlas.Inputs.CloudProviderAccessAuthorizationAwsArgs\n        {\n            IamAssumedRoleArn = testRole.Arn,\n        },\n    });\n\n    var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest(\"test\", new()\n    {\n        ProjectId = atlasProjectId,\n        AwsKmsConfig = new Mongodbatlas.Inputs.EncryptionAtRestAwsKmsConfigArgs\n        {\n            Enabled = true,\n            CustomerMasterKeyId = kmsKey.Id,\n            Region = atlasRegion,\n            RoleId = authRole.RoleId,\n        },\n        EnabledForSearchNodes = true,\n    });\n\n    var cluster = new Mongodbatlas.AdvancedCluster(\"cluster\", new()\n    {\n        ProjectId = testEncryptionAtRest.ProjectId,\n        Name = \"MyCluster\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        EncryptionAtRestProvider = \"AWS\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new()\n    {\n        ProjectId = testEncryptionAtRest.ProjectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"isAwsKmsEncryptionAtRestValid\"] = test.Apply(getEncryptionAtRestResult =\u003e getEncryptionAtRestResult.AwsKmsConfig?.Valid),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsetupOnly, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"setup_only\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    pulumi.Any(atlasProjectId),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tauthRole, err := mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"auth_role\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: pulumi.Any(atlasProjectId),\n\t\t\tRoleId:    setupOnly.RoleId,\n\t\t\tAws: \u0026mongodbatlas.CloudProviderAccessAuthorizationAwsArgs{\n\t\t\t\tIamAssumedRoleArn: pulumi.Any(testRole.Arn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestEncryptionAtRest, err := mongodbatlas.NewEncryptionAtRest(ctx, \"test\", \u0026mongodbatlas.EncryptionAtRestArgs{\n\t\t\tProjectId: pulumi.Any(atlasProjectId),\n\t\t\tAwsKmsConfig: \u0026mongodbatlas.EncryptionAtRestAwsKmsConfigArgs{\n\t\t\t\tEnabled:             pulumi.Bool(true),\n\t\t\t\tCustomerMasterKeyId: pulumi.Any(kmsKey.Id),\n\t\t\t\tRegion:              pulumi.Any(atlasRegion),\n\t\t\t\tRoleId:              authRole.RoleId,\n\t\t\t},\n\t\t\tEnabledForSearchNodes: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewAdvancedCluster(ctx, \"cluster\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:                testEncryptionAtRest.ProjectId,\n\t\t\tName:                     pulumi.String(\"MyCluster\"),\n\t\t\tClusterType:              pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled:            pulumi.Bool(true),\n\t\t\tEncryptionAtRestProvider: pulumi.String(\"AWS\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest := mongodbatlas.LookupEncryptionAtRestOutput(ctx, mongodbatlas.GetEncryptionAtRestOutputArgs{\n\t\t\tProjectId: testEncryptionAtRest.ProjectId,\n\t\t}, nil)\n\t\tctx.Export(\"isAwsKmsEncryptionAtRestValid\", test.ApplyT(func(test mongodbatlas.GetEncryptionAtRestResult) (*bool, error) {\n\t\t\treturn \u0026test.AwsKmsConfig.Valid, nil\n\t\t}).(pulumi.BoolPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;\nimport com.pulumi.mongodbatlas.EncryptionAtRest;\nimport com.pulumi.mongodbatlas.EncryptionAtRestArgs;\nimport com.pulumi.mongodbatlas.inputs.EncryptionAtRestAwsKmsConfigArgs;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var setupOnly = new CloudProviderAccessSetup(\"setupOnly\", CloudProviderAccessSetupArgs.builder()\n            .projectId(atlasProjectId)\n            .providerName(\"AWS\")\n            .build());\n\n        var authRole = new CloudProviderAccessAuthorization(\"authRole\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(atlasProjectId)\n            .roleId(setupOnly.roleId())\n            .aws(CloudProviderAccessAuthorizationAwsArgs.builder()\n                .iamAssumedRoleArn(testRole.arn())\n                .build())\n            .build());\n\n        var testEncryptionAtRest = new EncryptionAtRest(\"testEncryptionAtRest\", EncryptionAtRestArgs.builder()\n            .projectId(atlasProjectId)\n            .awsKmsConfig(EncryptionAtRestAwsKmsConfigArgs.builder()\n                .enabled(true)\n                .customerMasterKeyId(kmsKey.id())\n                .region(atlasRegion)\n                .roleId(authRole.roleId())\n                .build())\n            .enabledForSearchNodes(true)\n            .build());\n\n        var cluster = new AdvancedCluster(\"cluster\", AdvancedClusterArgs.builder()\n            .projectId(testEncryptionAtRest.projectId())\n            .name(\"MyCluster\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .encryptionAtRestProvider(\"AWS\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()\n            .projectId(testEncryptionAtRest.projectId())\n            .build());\n\n        ctx.export(\"isAwsKmsEncryptionAtRestValid\", test.applyValue(_test -\u003e _test.awsKmsConfig().valid()));\n    }\n}\n```\n```yaml\nresources:\n  setupOnly:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: setup_only\n    properties:\n      projectId: ${atlasProjectId}\n      providerName: AWS\n  authRole:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    name: auth_role\n    properties:\n      projectId: ${atlasProjectId}\n      roleId: ${setupOnly.roleId}\n      aws:\n        iamAssumedRoleArn: ${testRole.arn}\n  testEncryptionAtRest:\n    type: mongodbatlas:EncryptionAtRest\n    name: test\n    properties:\n      projectId: ${atlasProjectId}\n      awsKmsConfig:\n        enabled: true\n        customerMasterKeyId: ${kmsKey.id}\n        region: ${atlasRegion}\n        roleId: ${authRole.roleId}\n      enabledForSearchNodes: true\n  cluster:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: ${testEncryptionAtRest.projectId}\n      name: MyCluster\n      clusterType: REPLICASET\n      backupEnabled: true\n      encryptionAtRestProvider: AWS\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: US_EAST_1\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getEncryptionAtRest\n      arguments:\n        projectId: ${testEncryptionAtRest.projectId}\noutputs:\n  isAwsKmsEncryptionAtRestValid: ${test.awsKmsConfig.valid}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Configuring encryption at rest using customer key management in Azure\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testEncryptionAtRest = new mongodbatlas.EncryptionAtRest(\"test\", {\n    projectId: atlasProjectId,\n    azureKeyVaultConfig: {\n        enabled: true,\n        azureEnvironment: \"AZURE\",\n        subscriptionId: azureSubscriptionId,\n        resourceGroupName: azureResourceGroupName,\n        keyVaultName: azureKeyVaultName,\n        keyIdentifier: azureKeyIdentifier,\n        roleId: azureRoleId,\n    },\n});\nconst test = mongodbatlas.getEncryptionAtRestOutput({\n    projectId: testEncryptionAtRest.projectId,\n});\nexport const isAzureEncryptionAtRestValid = test.apply(test =\u003e test.azureKeyVaultConfig?.valid);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_encryption_at_rest = mongodbatlas.EncryptionAtRest(\"test\",\n    project_id=atlas_project_id,\n    azure_key_vault_config={\n        \"enabled\": True,\n        \"azure_environment\": \"AZURE\",\n        \"subscription_id\": azure_subscription_id,\n        \"resource_group_name\": azure_resource_group_name,\n        \"key_vault_name\": azure_key_vault_name,\n        \"key_identifier\": azure_key_identifier,\n        \"role_id\": azure_role_id,\n    })\ntest = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id)\npulumi.export(\"isAzureEncryptionAtRestValid\", test.azure_key_vault_config.valid)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest(\"test\", new()\n    {\n        ProjectId = atlasProjectId,\n        AzureKeyVaultConfig = new Mongodbatlas.Inputs.EncryptionAtRestAzureKeyVaultConfigArgs\n        {\n            Enabled = true,\n            AzureEnvironment = \"AZURE\",\n            SubscriptionId = azureSubscriptionId,\n            ResourceGroupName = azureResourceGroupName,\n            KeyVaultName = azureKeyVaultName,\n            KeyIdentifier = azureKeyIdentifier,\n            RoleId = azureRoleId,\n        },\n    });\n\n    var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new()\n    {\n        ProjectId = testEncryptionAtRest.ProjectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"isAzureEncryptionAtRestValid\"] = test.Apply(getEncryptionAtRestResult =\u003e getEncryptionAtRestResult.AzureKeyVaultConfig?.Valid),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestEncryptionAtRest, err := mongodbatlas.NewEncryptionAtRest(ctx, \"test\", \u0026mongodbatlas.EncryptionAtRestArgs{\n\t\t\tProjectId: pulumi.Any(atlasProjectId),\n\t\t\tAzureKeyVaultConfig: \u0026mongodbatlas.EncryptionAtRestAzureKeyVaultConfigArgs{\n\t\t\t\tEnabled:           pulumi.Bool(true),\n\t\t\t\tAzureEnvironment:  pulumi.String(\"AZURE\"),\n\t\t\t\tSubscriptionId:    pulumi.Any(azureSubscriptionId),\n\t\t\t\tResourceGroupName: pulumi.Any(azureResourceGroupName),\n\t\t\t\tKeyVaultName:      pulumi.Any(azureKeyVaultName),\n\t\t\t\tKeyIdentifier:     pulumi.Any(azureKeyIdentifier),\n\t\t\t\tRoleId:            pulumi.Any(azureRoleId),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest := mongodbatlas.LookupEncryptionAtRestOutput(ctx, mongodbatlas.GetEncryptionAtRestOutputArgs{\n\t\t\tProjectId: testEncryptionAtRest.ProjectId,\n\t\t}, nil)\n\t\tctx.Export(\"isAzureEncryptionAtRestValid\", test.ApplyT(func(test mongodbatlas.GetEncryptionAtRestResult) (*bool, error) {\n\t\t\treturn \u0026test.AzureKeyVaultConfig.Valid, nil\n\t\t}).(pulumi.BoolPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.EncryptionAtRest;\nimport com.pulumi.mongodbatlas.EncryptionAtRestArgs;\nimport com.pulumi.mongodbatlas.inputs.EncryptionAtRestAzureKeyVaultConfigArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testEncryptionAtRest = new EncryptionAtRest(\"testEncryptionAtRest\", EncryptionAtRestArgs.builder()\n            .projectId(atlasProjectId)\n            .azureKeyVaultConfig(EncryptionAtRestAzureKeyVaultConfigArgs.builder()\n                .enabled(true)\n                .azureEnvironment(\"AZURE\")\n                .subscriptionId(azureSubscriptionId)\n                .resourceGroupName(azureResourceGroupName)\n                .keyVaultName(azureKeyVaultName)\n                .keyIdentifier(azureKeyIdentifier)\n                .roleId(azureRoleId)\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()\n            .projectId(testEncryptionAtRest.projectId())\n            .build());\n\n        ctx.export(\"isAzureEncryptionAtRestValid\", test.applyValue(_test -\u003e _test.azureKeyVaultConfig().valid()));\n    }\n}\n```\n```yaml\nresources:\n  testEncryptionAtRest:\n    type: mongodbatlas:EncryptionAtRest\n    name: test\n    properties:\n      projectId: ${atlasProjectId}\n      azureKeyVaultConfig:\n        enabled: true\n        azureEnvironment: AZURE\n        subscriptionId: ${azureSubscriptionId}\n        resourceGroupName: ${azureResourceGroupName}\n        keyVaultName: ${azureKeyVaultName}\n        keyIdentifier: ${azureKeyIdentifier}\n        roleId: ${azureRoleId}\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getEncryptionAtRest\n      arguments:\n        projectId: ${testEncryptionAtRest.projectId}\noutputs:\n  isAzureEncryptionAtRestValid: ${test.azureKeyVaultConfig.valid}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003e **NOTE:** It is possible to configure Atlas Encryption at Rest to communicate with Customer Managed Keys (Azure Key Vault or AWS KMS) over private network interfaces (Azure Private Link or AWS PrivateLink). This requires enabling the `azure_key_vault_config.require_private_networking` or the `aws_kms_config.require_private_networking` attribute, together with the configuration of the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-go=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-python=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\"\u003e`mongodbatlas.EncryptionAtRestPrivateEndpoint`\u003c/span\u003e resource. Please review the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-go=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-python=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\"\u003e`mongodbatlas.EncryptionAtRestPrivateEndpoint`\u003c/span\u003e resource for details.\n\n### Configuring encryption at rest using customer key management in GCP\nFor authentication, you must provide either serviceAccountKey (static credentials) or roleId (service-account–based authentication). Once roleId is configured, serviceAccountKey is no longer supported.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testEncryptionAtRest = new mongodbatlas.EncryptionAtRest(\"test\", {\n    projectId: atlasProjectId,\n    googleCloudKmsConfig: {\n        enabled: true,\n        serviceAccountKey: \"{\\\"type\\\": \\\"service_account\\\",\\\"project_id\\\": \\\"my-project-common-0\\\",\\\"private_key_id\\\": \\\"e120598ea4f88249469fcdd75a9a785c1bb3\\\",\\\"private_key\\\": \\\"-----BEGIN PRIVATE KEY-----\\\\nMIIEuwIBA(truncated)SfecnS0mT94D9\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\\"client_email\\\": \\\"my-email-kms-0@my-project-common-0.iam.gserviceaccount.com\\\",\\\"client_id\\\": \\\"10180967717292066\\\",\\\"auth_uri\\\": \\\"https://accounts.google.com/o/oauth2/auth\\\",\\\"token_uri\\\": \\\"https://accounts.google.com/o/oauth2/token\\\",\\\"auth_provider_x509_cert_url\\\": \\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\\"client_x509_cert_url\\\": \\\"https://www.googleapis.com/robot/v1/metadata/x509/my-email-kms-0%40my-project-common-0.iam.gserviceaccount.com\\\"}\",\n        keyVersionResourceId: \"projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1\",\n    },\n});\nconst test = mongodbatlas.getEncryptionAtRestOutput({\n    projectId: testEncryptionAtRest.projectId,\n});\nexport const isGcpEncryptionAtRestValid = test.apply(test =\u003e test.googleCloudKmsConfig?.valid);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_encryption_at_rest = mongodbatlas.EncryptionAtRest(\"test\",\n    project_id=atlas_project_id,\n    google_cloud_kms_config={\n        \"enabled\": True,\n        \"service_account_key\": \"{\\\"type\\\": \\\"service_account\\\",\\\"project_id\\\": \\\"my-project-common-0\\\",\\\"private_key_id\\\": \\\"e120598ea4f88249469fcdd75a9a785c1bb3\\\",\\\"private_key\\\": \\\"-----BEGIN PRIVATE KEY-----\\\\nMIIEuwIBA(truncated)SfecnS0mT94D9\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\\"client_email\\\": \\\"my-email-kms-0@my-project-common-0.iam.gserviceaccount.com\\\",\\\"client_id\\\": \\\"10180967717292066\\\",\\\"auth_uri\\\": \\\"https://accounts.google.com/o/oauth2/auth\\\",\\\"token_uri\\\": \\\"https://accounts.google.com/o/oauth2/token\\\",\\\"auth_provider_x509_cert_url\\\": \\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\\"client_x509_cert_url\\\": \\\"https://www.googleapis.com/robot/v1/metadata/x509/my-email-kms-0%40my-project-common-0.iam.gserviceaccount.com\\\"}\",\n        \"key_version_resource_id\": \"projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1\",\n    })\ntest = mongodbatlas.get_encryption_at_rest_output(project_id=test_encryption_at_rest.project_id)\npulumi.export(\"isGcpEncryptionAtRestValid\", test.google_cloud_kms_config.valid)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testEncryptionAtRest = new Mongodbatlas.EncryptionAtRest(\"test\", new()\n    {\n        ProjectId = atlasProjectId,\n        GoogleCloudKmsConfig = new Mongodbatlas.Inputs.EncryptionAtRestGoogleCloudKmsConfigArgs\n        {\n            Enabled = true,\n            ServiceAccountKey = \"{\\\"type\\\": \\\"service_account\\\",\\\"project_id\\\": \\\"my-project-common-0\\\",\\\"private_key_id\\\": \\\"e120598ea4f88249469fcdd75a9a785c1bb3\\\",\\\"private_key\\\": \\\"-----BEGIN PRIVATE KEY-----\\\\nMIIEuwIBA(truncated)SfecnS0mT94D9\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\\"client_email\\\": \\\"my-email-kms-0@my-project-common-0.iam.gserviceaccount.com\\\",\\\"client_id\\\": \\\"10180967717292066\\\",\\\"auth_uri\\\": \\\"https://accounts.google.com/o/oauth2/auth\\\",\\\"token_uri\\\": \\\"https://accounts.google.com/o/oauth2/token\\\",\\\"auth_provider_x509_cert_url\\\": \\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\\"client_x509_cert_url\\\": \\\"https://www.googleapis.com/robot/v1/metadata/x509/my-email-kms-0%40my-project-common-0.iam.gserviceaccount.com\\\"}\",\n            KeyVersionResourceId = \"projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1\",\n        },\n    });\n\n    var test = Mongodbatlas.GetEncryptionAtRest.Invoke(new()\n    {\n        ProjectId = testEncryptionAtRest.ProjectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"isGcpEncryptionAtRestValid\"] = test.Apply(getEncryptionAtRestResult =\u003e getEncryptionAtRestResult.GoogleCloudKmsConfig?.Valid),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestEncryptionAtRest, err := mongodbatlas.NewEncryptionAtRest(ctx, \"test\", \u0026mongodbatlas.EncryptionAtRestArgs{\n\t\t\tProjectId: pulumi.Any(atlasProjectId),\n\t\t\tGoogleCloudKmsConfig: \u0026mongodbatlas.EncryptionAtRestGoogleCloudKmsConfigArgs{\n\t\t\t\tEnabled:              pulumi.Bool(true),\n\t\t\t\tServiceAccountKey:    pulumi.String(\"{\\\"type\\\": \\\"service_account\\\",\\\"project_id\\\": \\\"my-project-common-0\\\",\\\"private_key_id\\\": \\\"e120598ea4f88249469fcdd75a9a785c1bb3\\\",\\\"private_key\\\": \\\"-----BEGIN PRIVATE KEY-----\\\\nMIIEuwIBA(truncated)SfecnS0mT94D9\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\\"client_email\\\": \\\"my-email-kms-0@my-project-common-0.iam.gserviceaccount.com\\\",\\\"client_id\\\": \\\"10180967717292066\\\",\\\"auth_uri\\\": \\\"https://accounts.google.com/o/oauth2/auth\\\",\\\"token_uri\\\": \\\"https://accounts.google.com/o/oauth2/token\\\",\\\"auth_provider_x509_cert_url\\\": \\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\\"client_x509_cert_url\\\": \\\"https://www.googleapis.com/robot/v1/metadata/x509/my-email-kms-0%40my-project-common-0.iam.gserviceaccount.com\\\"}\"),\n\t\t\t\tKeyVersionResourceId: pulumi.String(\"projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest := mongodbatlas.LookupEncryptionAtRestOutput(ctx, mongodbatlas.GetEncryptionAtRestOutputArgs{\n\t\t\tProjectId: testEncryptionAtRest.ProjectId,\n\t\t}, nil)\n\t\tctx.Export(\"isGcpEncryptionAtRestValid\", test.ApplyT(func(test mongodbatlas.GetEncryptionAtRestResult) (*bool, error) {\n\t\t\treturn \u0026test.GoogleCloudKmsConfig.Valid, nil\n\t\t}).(pulumi.BoolPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.EncryptionAtRest;\nimport com.pulumi.mongodbatlas.EncryptionAtRestArgs;\nimport com.pulumi.mongodbatlas.inputs.EncryptionAtRestGoogleCloudKmsConfigArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testEncryptionAtRest = new EncryptionAtRest(\"testEncryptionAtRest\", EncryptionAtRestArgs.builder()\n            .projectId(atlasProjectId)\n            .googleCloudKmsConfig(EncryptionAtRestGoogleCloudKmsConfigArgs.builder()\n                .enabled(true)\n                .serviceAccountKey(\"{\\\"type\\\": \\\"service_account\\\",\\\"project_id\\\": \\\"my-project-common-0\\\",\\\"private_key_id\\\": \\\"e120598ea4f88249469fcdd75a9a785c1bb3\\\",\\\"private_key\\\": \\\"-----BEGIN PRIVATE KEY-----\\\\nMIIEuwIBA(truncated)SfecnS0mT94D9\\\\n-----END PRIVATE KEY-----\\\\n\\\",\\\"client_email\\\": \\\"my-email-kms-0@my-project-common-0.iam.gserviceaccount.com\\\",\\\"client_id\\\": \\\"10180967717292066\\\",\\\"auth_uri\\\": \\\"https://accounts.google.com/o/oauth2/auth\\\",\\\"token_uri\\\": \\\"https://accounts.google.com/o/oauth2/token\\\",\\\"auth_provider_x509_cert_url\\\": \\\"https://www.googleapis.com/oauth2/v1/certs\\\",\\\"client_x509_cert_url\\\": \\\"https://www.googleapis.com/robot/v1/metadata/x509/my-email-kms-0%40my-project-common-0.iam.gserviceaccount.com\\\"}\")\n                .keyVersionResourceId(\"projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1\")\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getEncryptionAtRest(GetEncryptionAtRestArgs.builder()\n            .projectId(testEncryptionAtRest.projectId())\n            .build());\n\n        ctx.export(\"isGcpEncryptionAtRestValid\", test.applyValue(_test -\u003e _test.googleCloudKmsConfig().valid()));\n    }\n}\n```\n```yaml\nresources:\n  testEncryptionAtRest:\n    type: mongodbatlas:EncryptionAtRest\n    name: test\n    properties:\n      projectId: ${atlasProjectId}\n      googleCloudKmsConfig:\n        enabled: true\n        serviceAccountKey: '{\"type\": \"service_account\",\"project_id\": \"my-project-common-0\",\"private_key_id\": \"e120598ea4f88249469fcdd75a9a785c1bb3\",\"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEuwIBA(truncated)SfecnS0mT94D9\\n-----END PRIVATE KEY-----\\n\",\"client_email\": \"my-email-kms-0@my-project-common-0.iam.gserviceaccount.com\",\"client_id\": \"10180967717292066\",\"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\"token_uri\": \"https://accounts.google.com/o/oauth2/token\",\"auth_provider_x509_cert_url\": \"https://www.googleapis.com/oauth2/v1/certs\",\"client_x509_cert_url\": \"https://www.googleapis.com/robot/v1/metadata/x509/my-email-kms-0%40my-project-common-0.iam.gserviceaccount.com\"}'\n        keyVersionResourceId: projects/my-project-common-0/locations/us-east4/keyRings/my-key-ring-0/cryptoKeys/my-key-0/cryptoKeyVersions/1\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getEncryptionAtRest\n      arguments:\n        projectId: ${testEncryptionAtRest.projectId}\noutputs:\n  isGcpEncryptionAtRestValid: ${test.googleCloudKmsConfig.valid}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEncryptionAtRest.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getEncryptionAtRest.\n","properties":{"awsKmsConfig":{"$ref":"#/types/mongodbatlas:index/getEncryptionAtRestAwsKmsConfig:getEncryptionAtRestAwsKmsConfig","description":"Amazon Web Services (AWS) KMS configuration details and encryption at rest configuration set for the specified project.\n"},"azureKeyVaultConfig":{"$ref":"#/types/mongodbatlas:index/getEncryptionAtRestAzureKeyVaultConfig:getEncryptionAtRestAzureKeyVaultConfig","description":"Details that define the configuration of Encryption at Rest using Azure Key Vault (AKV).\n"},"enabledForSearchNodes":{"description":"Flag that indicates whether Encryption at Rest for Dedicated Search Nodes is enabled in the specified project.\n","type":"boolean"},"googleCloudKmsConfig":{"$ref":"#/types/mongodbatlas:index/getEncryptionAtRestGoogleCloudKmsConfig:getEncryptionAtRestGoogleCloudKmsConfig","description":"Details that define the configuration of Encryption at Rest using Google Cloud Key Management Service (KMS).\n"},"id":{"description":"The ID of this resource.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"}},"required":["awsKmsConfig","azureKeyVaultConfig","enabledForSearchNodes","googleCloudKmsConfig","id","projectId"],"type":"object"}},"mongodbatlas:index/getEncryptionAtRestPrivateEndpoint:getEncryptionAtRestPrivateEndpoint":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-go=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-python=\"`EncryptionAtRestPrivateEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\" pulumi-lang-java=\"`mongodbatlas.EncryptionAtRestPrivateEndpoint`\"\u003e`mongodbatlas.EncryptionAtRestPrivateEndpoint`\u003c/span\u003e describes a private endpoint used for encryption at rest using customer-managed keys.\n\n## Example Usage\n\n### S\n\n\u003e **NOTE:** Only Azure Key Vault with Azure Private Link and AWS KMS over AWS PrivateLink is supported at this time.\n\n### Encryption At Rest Azure Key Vault Private Endpoint\nTo learn more, see [Manage Customer Keys with Azure Key Vault Over Private Endpoints](https://www.mongodb.com/docs/atlas/security/azure-kms-over-private-endpoint/#manage-customer-keys-with-azure-key-vault-over-private-endpoints).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst single = mongodbatlas.getEncryptionAtRestPrivateEndpoint({\n    projectId: atlasProjectId,\n    cloudProvider: \"AZURE\",\n    id: endpoint.id,\n});\nexport const endpointConnectionName = single.then(single =\u003e single.privateEndpointConnectionName);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nsingle = mongodbatlas.get_encryption_at_rest_private_endpoint(project_id=atlas_project_id,\n    cloud_provider=\"AZURE\",\n    id=endpoint[\"id\"])\npulumi.export(\"endpointConnectionName\", single.private_endpoint_connection_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var single = Mongodbatlas.GetEncryptionAtRestPrivateEndpoint.Invoke(new()\n    {\n        ProjectId = atlasProjectId,\n        CloudProvider = \"AZURE\",\n        Id = endpoint.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"endpointConnectionName\"] = single.Apply(getEncryptionAtRestPrivateEndpointResult =\u003e getEncryptionAtRestPrivateEndpointResult.PrivateEndpointConnectionName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsingle, err := mongodbatlas.LookupEncryptionAtRestPrivateEndpoint(ctx, \u0026mongodbatlas.LookupEncryptionAtRestPrivateEndpointArgs{\n\t\t\tProjectId:     atlasProjectId,\n\t\t\tCloudProvider: \"AZURE\",\n\t\t\tId:            endpoint.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"endpointConnectionName\", single.PrivateEndpointConnectionName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var single = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoint(GetEncryptionAtRestPrivateEndpointArgs.builder()\n            .projectId(atlasProjectId)\n            .cloudProvider(\"AZURE\")\n            .id(endpoint.id())\n            .build());\n\n        ctx.export(\"endpointConnectionName\", single.privateEndpointConnectionName());\n    }\n}\n```\n```yaml\nvariables:\n  single:\n    fn::invoke:\n      function: mongodbatlas:getEncryptionAtRestPrivateEndpoint\n      arguments:\n        projectId: ${atlasProjectId}\n        cloudProvider: AZURE\n        id: ${endpoint.id}\noutputs:\n  endpointConnectionName: ${single.privateEndpointConnectionName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Encryption At Rest AWS KMS Private Endpoint\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst single = mongodbatlas.getEncryptionAtRestPrivateEndpoint({\n    projectId: atlasProjectId,\n    cloudProvider: \"AWS\",\n    id: endpoint.id,\n});\nexport const status = single.then(single =\u003e single.status);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nsingle = mongodbatlas.get_encryption_at_rest_private_endpoint(project_id=atlas_project_id,\n    cloud_provider=\"AWS\",\n    id=endpoint[\"id\"])\npulumi.export(\"status\", single.status)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var single = Mongodbatlas.GetEncryptionAtRestPrivateEndpoint.Invoke(new()\n    {\n        ProjectId = atlasProjectId,\n        CloudProvider = \"AWS\",\n        Id = endpoint.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"status\"] = single.Apply(getEncryptionAtRestPrivateEndpointResult =\u003e getEncryptionAtRestPrivateEndpointResult.Status),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsingle, err := mongodbatlas.LookupEncryptionAtRestPrivateEndpoint(ctx, \u0026mongodbatlas.LookupEncryptionAtRestPrivateEndpointArgs{\n\t\t\tProjectId:     atlasProjectId,\n\t\t\tCloudProvider: \"AWS\",\n\t\t\tId:            endpoint.Id,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"status\", single.Status)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var single = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoint(GetEncryptionAtRestPrivateEndpointArgs.builder()\n            .projectId(atlasProjectId)\n            .cloudProvider(\"AWS\")\n            .id(endpoint.id())\n            .build());\n\n        ctx.export(\"status\", single.status());\n    }\n}\n```\n```yaml\nvariables:\n  single:\n    fn::invoke:\n      function: mongodbatlas:getEncryptionAtRestPrivateEndpoint\n      arguments:\n        projectId: ${atlasProjectId}\n        cloudProvider: AWS\n        id: ${endpoint.id}\noutputs:\n  status: ${single.status}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEncryptionAtRestPrivateEndpoint.\n","properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud provider for the Encryption At Rest private endpoint.\n"},"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the Private Endpoint Service.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["cloudProvider","id","projectId"]},"outputs":{"description":"A collection of values returned by getEncryptionAtRestPrivateEndpoint.\n","properties":{"cloudProvider":{"description":"Label that identifies the cloud provider for the Encryption At Rest private endpoint.\n","type":"string"},"errorMessage":{"description":"Error message for failures associated with the Encryption At Rest private endpoint.\n","type":"string"},"id":{"description":"Unique 24-hexadecimal digit string that identifies the Private Endpoint Service.\n","type":"string"},"privateEndpointConnectionName":{"description":"Connection name of the Azure Private Endpoint.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"regionName":{"description":"Cloud provider region in which the Encryption At Rest private endpoint is located.\n","type":"string"},"status":{"description":"State of the Encryption At Rest private endpoint.\n","type":"string"}},"required":["cloudProvider","errorMessage","id","privateEndpointConnectionName","projectId","regionName","status"],"type":"object"}},"mongodbatlas:index/getEncryptionAtRestPrivateEndpoints:getEncryptionAtRestPrivateEndpoints":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getEncryptionAtRestPrivateEndpoints`\" pulumi-lang-dotnet=\"`mongodbatlas.getEncryptionAtRestPrivateEndpoints`\" pulumi-lang-go=\"`getEncryptionAtRestPrivateEndpoints`\" pulumi-lang-python=\"`get_encryption_at_rest_private_endpoints`\" pulumi-lang-yaml=\"`mongodbatlas.getEncryptionAtRestPrivateEndpoints`\" pulumi-lang-java=\"`mongodbatlas.getEncryptionAtRestPrivateEndpoints`\"\u003e`mongodbatlas.getEncryptionAtRestPrivateEndpoints`\u003c/span\u003e describes private endpoints of a particular cloud provider used for encryption at rest using customer-managed keys.\n\n## Example Usage\n\n### S\n\n\u003e **NOTE:** Only Azure Key Vault with Azure Private Link and AWS KMS over AWS PrivateLink is supported at this time.\n\n### Encryption At Rest Azure Key Vault Private Endpoint\nTo learn more about existing limitations, see [Manage Customer Keys with Azure Key Vault Over Private Endpoints](https://www.mongodb.com/docs/atlas/security/azure-kms-over-private-endpoint/#manage-customer-keys-with-azure-key-vault-over-private-endpoints).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst plural = mongodbatlas.getEncryptionAtRestPrivateEndpoints({\n    projectId: atlasProjectId,\n    cloudProvider: \"AZURE\",\n});\nexport const numberOfEndpoints = plural.then(plural =\u003e plural.results).length;\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nplural = mongodbatlas.get_encryption_at_rest_private_endpoints(project_id=atlas_project_id,\n    cloud_provider=\"AZURE\")\npulumi.export(\"numberOfEndpoints\", len(plural.results))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var plural = Mongodbatlas.GetEncryptionAtRestPrivateEndpoints.Invoke(new()\n    {\n        ProjectId = atlasProjectId,\n        CloudProvider = \"AZURE\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"numberOfEndpoints\"] = plural.Apply(getEncryptionAtRestPrivateEndpointsResult =\u003e getEncryptionAtRestPrivateEndpointsResult.Results).Length,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tplural, err := mongodbatlas.LookupEncryptionAtRestPrivateEndpoints(ctx, \u0026mongodbatlas.LookupEncryptionAtRestPrivateEndpointsArgs{\n\t\t\tProjectId:     atlasProjectId,\n\t\t\tCloudProvider: \"AZURE\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"numberOfEndpoints\", len(plural.Results))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var plural = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoints(GetEncryptionAtRestPrivateEndpointsArgs.builder()\n            .projectId(atlasProjectId)\n            .cloudProvider(\"AZURE\")\n            .build());\n\n        ctx.export(\"numberOfEndpoints\", plural.results().length());\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Encryption At Rest AWS KMS Private Endpoint\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst plural = mongodbatlas.getEncryptionAtRestPrivateEndpoints({\n    projectId: atlasProjectId,\n    cloudProvider: \"AWS\",\n});\nexport const numberOfEndpoints = plural.then(plural =\u003e plural.results).length;\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nplural = mongodbatlas.get_encryption_at_rest_private_endpoints(project_id=atlas_project_id,\n    cloud_provider=\"AWS\")\npulumi.export(\"numberOfEndpoints\", len(plural.results))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var plural = Mongodbatlas.GetEncryptionAtRestPrivateEndpoints.Invoke(new()\n    {\n        ProjectId = atlasProjectId,\n        CloudProvider = \"AWS\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"numberOfEndpoints\"] = plural.Apply(getEncryptionAtRestPrivateEndpointsResult =\u003e getEncryptionAtRestPrivateEndpointsResult.Results).Length,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tplural, err := mongodbatlas.LookupEncryptionAtRestPrivateEndpoints(ctx, \u0026mongodbatlas.LookupEncryptionAtRestPrivateEndpointsArgs{\n\t\t\tProjectId:     atlasProjectId,\n\t\t\tCloudProvider: \"AWS\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"numberOfEndpoints\", len(plural.Results))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetEncryptionAtRestPrivateEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var plural = MongodbatlasFunctions.getEncryptionAtRestPrivateEndpoints(GetEncryptionAtRestPrivateEndpointsArgs.builder()\n            .projectId(atlasProjectId)\n            .cloudProvider(\"AWS\")\n            .build());\n\n        ctx.export(\"numberOfEndpoints\", plural.results().length());\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getEncryptionAtRestPrivateEndpoints.\n","properties":{"cloudProvider":{"type":"string","description":"Label that identifies the cloud provider for the Encryption At Rest private endpoint.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["cloudProvider","projectId"]},"outputs":{"description":"A collection of values returned by getEncryptionAtRestPrivateEndpoints.\n","properties":{"cloudProvider":{"description":"Label that identifies the cloud provider for the Encryption At Rest private endpoint.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"results":{"description":"List of documents that MongoDB Cloud returns for this request.\n","items":{"$ref":"#/types/mongodbatlas:index/getEncryptionAtRestPrivateEndpointsResult:getEncryptionAtRestPrivateEndpointsResult"},"type":"array"}},"required":["cloudProvider","projectId","results","id"],"type":"object"}},"mongodbatlas:index/getEventTrigger:getEventTrigger":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.EventTrigger`\" pulumi-lang-dotnet=\"`mongodbatlas.EventTrigger`\" pulumi-lang-go=\"`EventTrigger`\" pulumi-lang-python=\"`EventTrigger`\" pulumi-lang-yaml=\"`mongodbatlas.EventTrigger`\" pulumi-lang-java=\"`mongodbatlas.EventTrigger`\"\u003e`mongodbatlas.EventTrigger`\u003c/span\u003e describes an Event Trigger. \n\n","inputs":{"description":"A collection of arguments for invoking getEventTrigger.\n","properties":{"appId":{"type":"string","description":"The ObjectID of your application.\n* For more details on \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`appId`\" pulumi-lang-dotnet=\"`AppId`\" pulumi-lang-go=\"`appId`\" pulumi-lang-python=\"`app_id`\" pulumi-lang-yaml=\"`appId`\" pulumi-lang-java=\"`appId`\"\u003e`app_id`\u003c/span\u003e see: https://www.mongodb.com/docs/api/doc/atlas-app-services-admin-api-v3/#topic-project-amp-application-ids\n"},"projectId":{"type":"string","description":"The unique ID for the project to create the trigger.\n"},"triggerId":{"type":"string","description":"The unique ID of the trigger.\n"}},"type":"object","required":["appId","projectId","triggerId"]},"outputs":{"description":"A collection of values returned by getEventTrigger.\n","properties":{"appId":{"type":"string"},"configCollection":{"description":"The name of the MongoDB collection that the trigger watches for change events.\n","type":"string"},"configDatabase":{"description":"The name of the MongoDB database to watch.\n","type":"string"},"configFullDocument":{"description":"If true, indicates that `UPDATE` change events should include the most current [majority-committed](https://docs.mongodb.com/manual/reference/read-concern-majority/) version of the modified document in the fullDocument field.\n","type":"boolean"},"configFullDocumentBefore":{"type":"boolean"},"configMatch":{"description":"A [$match](https://docs.mongodb.com/manual/reference/operator/aggregation/match/) expression document that MongoDB Realm includes in the underlying change stream pipeline for the trigger.\n","type":"string"},"configOperationType":{"description":"The [authentication operation type](https://docs.mongodb.com/realm/triggers/authentication-triggers/#std-label-authentication-event-operation-types) to listen for.\n","type":"string"},"configOperationTypes":{"description":"The [database event operation types](https://docs.mongodb.com/realm/triggers/database-triggers/#std-label-database-events) to listen for.\n","items":{"type":"string"},"type":"array"},"configProject":{"description":"A [$project](https://docs.mongodb.com/manual/reference/operator/aggregation/project/) expression document that Realm uses to filter the fields that appear in change event objects.\n","type":"string"},"configProviders":{"description":"A list of one or more [authentication provider](https://docs.mongodb.com/realm/authentication/providers/) id values. The trigger will only listen for authentication events produced by these providers.\n","items":{"type":"string"},"type":"array"},"configSchedule":{"description":"A [cron expression](https://docs.mongodb.com/realm/triggers/cron-expressions/) that defines the trigger schedule.\n","type":"string"},"configScheduleType":{"type":"string"},"configServiceId":{"description":"The ID of the MongoDB Service associated with the trigger.\n","type":"string"},"disabled":{"description":"Status of a trigger.\n","type":"boolean"},"eventProcessors":{"description":"An object where each field name is an event processor ID and each value is an object that configures its corresponding event processor.\n","items":{"$ref":"#/types/mongodbatlas:index/getEventTriggerEventProcessor:getEventTriggerEventProcessor"},"type":"array"},"functionId":{"description":"The ID of the function associated with the trigger.\n","type":"string"},"functionName":{"description":"The name of the function associated with the trigger.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the trigger.\n","type":"string"},"projectId":{"type":"string"},"triggerId":{"type":"string"},"type":{"description":"The type of the trigger.\n","type":"string"},"unordered":{"description":"Only Available for Database Triggers. If true, event ordering is disabled and this trigger can process events in parallel. If false, event ordering is enabled and the trigger executes serially.\n","type":"boolean"}},"required":["appId","configCollection","configDatabase","configFullDocument","configFullDocumentBefore","configMatch","configOperationType","configOperationTypes","configProject","configProviders","configSchedule","configScheduleType","configServiceId","disabled","eventProcessors","functionId","functionName","name","projectId","triggerId","type","unordered","id"],"type":"object"}},"mongodbatlas:index/getEventTriggers:getEventTriggers":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getEventTriggers`\" pulumi-lang-dotnet=\"`mongodbatlas.getEventTriggers`\" pulumi-lang-go=\"`getEventTriggers`\" pulumi-lang-python=\"`get_event_triggers`\" pulumi-lang-yaml=\"`mongodbatlas.getEventTriggers`\" pulumi-lang-java=\"`mongodbatlas.getEventTriggers`\"\u003e`mongodbatlas.getEventTriggers`\u003c/span\u003e describes all Event Triggers.\n\n","inputs":{"description":"A collection of arguments for invoking getEventTriggers.\n","properties":{"appId":{"type":"string","description":"The ObjectID of your application.\n* For more details on \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`appId`\" pulumi-lang-dotnet=\"`AppId`\" pulumi-lang-go=\"`appId`\" pulumi-lang-python=\"`app_id`\" pulumi-lang-yaml=\"`appId`\" pulumi-lang-java=\"`appId`\"\u003e`app_id`\u003c/span\u003e see: https://www.mongodb.com/docs/api/doc/atlas-app-services-admin-api-v3/#topic-project-amp-application-ids\n"},"projectId":{"type":"string","description":"The unique ID for the project to get all event triggers.\n"}},"type":"object","required":["appId","projectId"]},"outputs":{"description":"A collection of values returned by getEventTriggers.\n","properties":{"appId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"description":"A list where each represents a Event Trigger.\n","items":{"$ref":"#/types/mongodbatlas:index/getEventTriggersResult:getEventTriggersResult"},"type":"array"}},"required":["appId","projectId","results","id"],"type":"object"}},"mongodbatlas:index/getFederatedDatabaseInstance:getFederatedDatabaseInstance":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedDatabaseInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedDatabaseInstance`\" pulumi-lang-go=\"`FederatedDatabaseInstance`\" pulumi-lang-python=\"`FederatedDatabaseInstance`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedDatabaseInstance`\" pulumi-lang-java=\"`mongodbatlas.FederatedDatabaseInstance`\"\u003e`mongodbatlas.FederatedDatabaseInstance`\u003c/span\u003e provides a Federated Database Instance data source.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\u003e **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state.\n\n## Example Usage\n\n### S With MongoDB Atlas Cluster As Storage Database\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getFederatedDatabaseInstance({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    name: \"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_federated_database_instance(project_id=\"\u003cPROJECT_ID\u003e\",\n    name=\"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetFederatedDatabaseInstance.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        Name = \"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupFederatedDatabaseInstance(ctx, \u0026mongodbatlas.LookupFederatedDatabaseInstanceArgs{\n\t\t\tProjectId: \"\u003cPROJECT_ID\u003e\",\n\t\t\tName:      \"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .name(\"TENANT NAME OF THE FEDERATED DATABASE INSTANCE\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getFederatedDatabaseInstance\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        name: TENANT NAME OF THE FEDERATED DATABASE INSTANCE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### S With Amazon S3 Bucket As Storage Database\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getFederatedDatabaseInstance({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    name: \"\u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\",\n    cloudProviderConfigs: [{\n        aws: [{\n            testS3Bucket: \"Amazon S3 Bucket Name\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_federated_database_instance(project_id=\"\u003cPROJECT_ID\u003e\",\n    name=\"\u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\",\n    cloud_provider_configs=[{\n        \"aws\": [{\n            \"test_s3_bucket\": \"Amazon S3 Bucket Name\",\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetFederatedDatabaseInstance.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        Name = \"\u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\",\n        CloudProviderConfigs = new[]\n        {\n            new Mongodbatlas.Inputs.GetFederatedDatabaseInstanceCloudProviderConfigInputArgs\n            {\n                Aws = new[]\n                {\n                    new Mongodbatlas.Inputs.GetFederatedDatabaseInstanceCloudProviderConfigAwInputArgs\n                    {\n                        TestS3Bucket = \"Amazon S3 Bucket Name\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupFederatedDatabaseInstance(ctx, \u0026mongodbatlas.LookupFederatedDatabaseInstanceArgs{\n\t\t\tProjectId: \"\u003cPROJECT_ID\u003e\",\n\t\t\tName:      \"\u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\",\n\t\t\tCloudProviderConfigs: []mongodbatlas.GetFederatedDatabaseInstanceCloudProviderConfig{\n\t\t\t\t{\n\t\t\t\t\tAws: []mongodbatlas.GetFederatedDatabaseInstanceCloudProviderConfigAw{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tTestS3Bucket: pulumi.StringRef(\"Amazon S3 Bucket Name\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .name(\"\u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\")\n            .cloudProviderConfigs(GetFederatedDatabaseInstanceCloudProviderConfigArgs.builder()\n                .aws(GetFederatedDatabaseInstanceCloudProviderConfigAwArgs.builder()\n                    .testS3Bucket(\"Amazon S3 Bucket Name\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getFederatedDatabaseInstance\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        name: \u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\n        cloudProviderConfigs:\n          - aws:\n              - testS3Bucket: Amazon S3 Bucket Name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example of Azure Blob Storage as storage database\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getFederatedDatabaseInstance({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    name: \"\u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\",\n    cloudProviderConfigs: [{\n        azures: [{\n            roleId: \"\u003cAZURE_ROLE_ID\u003e\",\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_federated_database_instance(project_id=\"\u003cPROJECT_ID\u003e\",\n    name=\"\u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\",\n    cloud_provider_configs=[{\n        \"azures\": [{\n            \"role_id\": \"\u003cAZURE_ROLE_ID\u003e\",\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetFederatedDatabaseInstance.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        Name = \"\u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\",\n        CloudProviderConfigs = new[]\n        {\n            new Mongodbatlas.Inputs.GetFederatedDatabaseInstanceCloudProviderConfigInputArgs\n            {\n                Azures = new[]\n                {\n                    new Mongodbatlas.Inputs.GetFederatedDatabaseInstanceCloudProviderConfigAzureInputArgs\n                    {\n                        RoleId = \"\u003cAZURE_ROLE_ID\u003e\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupFederatedDatabaseInstance(ctx, \u0026mongodbatlas.LookupFederatedDatabaseInstanceArgs{\n\t\t\tProjectId: \"\u003cPROJECT_ID\u003e\",\n\t\t\tName:      \"\u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\",\n\t\t\tCloudProviderConfigs: []mongodbatlas.GetFederatedDatabaseInstanceCloudProviderConfig{\n\t\t\t\t{\n\t\t\t\t\tAzures: []mongodbatlas.GetFederatedDatabaseInstanceCloudProviderConfigAzure{\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tRoleId: \"\u003cAZURE_ROLE_ID\u003e\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedDatabaseInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getFederatedDatabaseInstance(GetFederatedDatabaseInstanceArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .name(\"\u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\")\n            .cloudProviderConfigs(GetFederatedDatabaseInstanceCloudProviderConfigArgs.builder()\n                .azures(GetFederatedDatabaseInstanceCloudProviderConfigAzureArgs.builder()\n                    .roleId(\"\u003cAZURE_ROLE_ID\u003e\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getFederatedDatabaseInstance\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        name: \u003cTENANT_NAME_OF_THE_FEDERATED_DATABASE_INSTANCE\u003e\n        cloudProviderConfigs:\n          - azures:\n              - roleId: \u003cAZURE_ROLE_ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedDatabaseInstance.\n","properties":{"cloudProviderConfigs":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceCloudProviderConfig:getFederatedDatabaseInstanceCloudProviderConfig"}},"name":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getFederatedDatabaseInstance.\n","properties":{"cloudProviderConfigs":{"items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceCloudProviderConfig:getFederatedDatabaseInstanceCloudProviderConfig"},"type":"array"},"dataProcessRegions":{"items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceDataProcessRegion:getFederatedDatabaseInstanceDataProcessRegion"},"type":"array"},"hostnames":{"description":"The list of hostnames assigned to the Federated Database Instance. Each string in the array is a hostname assigned to the Federated Database Instance.\n","items":{"type":"string"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"state":{"description":"Current state of the Federated Database Instance:\n* `ACTIVE` - The Federated Database Instance is active and verified. You can query the data stores associated with the Federated Database Instance.\n* `DELETED` - The Federated Database Instance was deleted.\n","type":"string"},"storageDatabases":{"description":"Configuration details for mapping each data store to queryable databases and collections. For complete documentation on this object and its nested fields, see [databases](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#databases). An empty object indicates that the Federated Database Instance has no mapping configuration for any data store.\n* `storage_databases.#.name` - Name of the database to which the Federated Database Instance maps the data contained in the data store.\n* `storage_databases.#.collections` -     Array of objects where each object represents a collection and data sources that map to a [stores](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#stores) data store.\n* `storage_databases.#.collections.#.name` - Name of the collection.\n* `storage_databases.#.collections.#.data_sources` -     Array of objects where each object represents a stores data store to map with the collection.\n* `storage_databases.#.collections.#.data_sources.#.store_name` -     Name of a data store to map to the `\u003ccollection\u003e`. Must match the name of an object in the stores array.\n* `storage_databases.#.collections.#.data_sources.#.dataset_name` -     Human-readable label that identifies the dataset that Atlas generates for an ingestion pipeline run or Online Archive.\n* `storage_databases.#.collections.#.data_sources.#.default_format` - Default format that Federated Database assumes if it encounters a file without an extension while searching the storeName.\n* `storage_databases.#.collections.#.data_sources.#.path` - File path that controls how MongoDB Cloud searches for and parses files in the storeName before mapping them to a collection. Specify / to capture all files and folders from the prefix path.\n* `storage_databases.#.collections.#.data_sources.#.database` - Human-readable label that identifies the database, which contains the collection in the cluster.\n* `storage_databases.#.collections.#.data_sources.#.allow_insecure` - Flag that validates the scheme in the specified URLs. If true, allows insecure HTTP scheme, doesn't verify the server's certificate chain and hostname, and accepts any certificate with any hostname presented by the server. If false, allows secure HTTPS scheme only.\n* `storage_databases.#.collections.#.data_sources.#.database_regex` - Regex pattern to use for creating the wildcard database.\n* `storage_databases.#.collections.#.data_sources.#.collection` - Human-readable label that identifies the collection in the database.\n* `storage_databases.#.collections.#.data_sources.#.collection_regex` - Regex pattern to use for creating the wildcard (*) collection.\n* `storage_databases.#.collections.#.data_sources.#.provenance_field_name` - Name for the field that includes the provenance of the documents in the results.\n* `storage_databases.#.collections.#.data_sources.#.storeName` - Human-readable label that identifies the data store that MongoDB Cloud maps to the collection.\n* `storage_databases.#.collections.#.data_sources.#.urls` - URLs of the publicly accessible data files. You can't specify URLs that require authentication.\n* `storage_databases.#.views` -     Array of objects where each object represents an [aggregation pipeline](https://docs.mongodb.com/manual/core/aggregation-pipeline/#id1) on a collection. To learn more about views, see [Views](https://docs.mongodb.com/manual/core/views/).\n* `storage_databases.#.views.#.name` - Name of the view.\n* `storage_databases.#.views.#.source` -  Name of the source collection for the view.\n* `storage_databases.#.views.#.pipeline`- Aggregation pipeline stage(s) to apply to the source collection.\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceStorageDatabase:getFederatedDatabaseInstanceStorageDatabase"},"type":"array"},"storageStores":{"description":"Each object in the array represents a data store. Federated Database uses the `storage.databases` configuration details to map data in each data store to queryable databases and collections. For complete documentation on this object and its nested fields, see [stores](https://www.mongodb.com/docs/atlas/data-federation/config/config-oa/#stores). An empty object indicates that the Federated Database Instance has no configured data stores.\n* `storage_stores.#.name` - Name of the data store.\n* `storage_stores.#.provider` - Defines where the data is stored.\n* `storage_stores.#.region` - Name of the AWS region in which the S3 bucket is hosted.\n* `storage_stores.#.bucket` - Name of the AWS S3 bucket.\n* `storage_stores.#.prefix` - Prefix the Federated Database Instance applies when searching for files in the S3 bucket.\n* `storage_stores.#.delimiter` - The delimiter that separates `storage_databases.#.collections.#.data_sources.#.path` segments in the data store.\n* `storage_stores.#.include_tags` - Determines whether or not to use S3 tags on the files in the given path as additional partition attributes.\n* `storage_stores.#.cluster_name` - Human-readable label of the MongoDB Cloud cluster on which the store is based.\n* `storage_stores.#.allow_insecure` - Flag that validates the scheme in the specified URLs.\n* `storage_stores.#.public` - Flag that indicates whether the bucket is public.\n* `storage_stores.#.default_format` - Default format that Data Federation assumes if it encounters a file without an extension while searching the storeName.\n* `storage_stores.#.urls` - Comma-separated list of publicly accessible HTTP URLs where data is stored.\n* `storage_stores.#.read_preference` - MongoDB Cloud cluster read preference, which describes how to route read requests to the cluster.\n* `storage_stores.#.read_preference.maxStalenessSeconds` - Maximum replication lag, or staleness, for reads from secondaries.\n* `storage_stores.#.read_preference.mode` - Read preference mode that specifies to which replica set member to route the read requests.\n* `storage_stores.#.read_preference.tag_sets` - List that contains tag sets or tag specification documents.\n* `storage_stores.#.read_preference.tags` - List of all tags within a tag set\n* `storage_stores.#.read_preference.tags.name` - Human-readable label of the tag.\n* `storage_stores.#.read_preference.tags.value` - Value of the tag.\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstanceStorageStore:getFederatedDatabaseInstanceStorageStore"},"type":"array"}},"required":["cloudProviderConfigs","dataProcessRegions","hostnames","name","projectId","state","storageDatabases","storageStores","id"],"type":"object"}},"mongodbatlas:index/getFederatedDatabaseInstances:getFederatedDatabaseInstances":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFederatedDatabaseInstances`\" pulumi-lang-dotnet=\"`mongodbatlas.getFederatedDatabaseInstances`\" pulumi-lang-go=\"`getFederatedDatabaseInstances`\" pulumi-lang-python=\"`get_federated_database_instances`\" pulumi-lang-yaml=\"`mongodbatlas.getFederatedDatabaseInstances`\" pulumi-lang-java=\"`mongodbatlas.getFederatedDatabaseInstances`\"\u003e`mongodbatlas.getFederatedDatabaseInstances`\u003c/span\u003e provides a Federated Database Instance data source.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\u003e **IMPORTANT:** All arguments including the password will be stored in the raw state as plain text. Read more about sensitive data in state.\n\n## Example Usage\n\n### S\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getFederatedDatabaseInstances\n      arguments:\n        projectId: PROJECT ID\n        name: TENANT NAME OF THE FEDERATED DATABASE INSTANCE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedDatabaseInstances.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getFederatedDatabaseInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"description":"Includes Federated Database instance for each item detailed in the results array section.\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedDatabaseInstancesResult:getFederatedDatabaseInstancesResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getFederatedQueryLimit:getFederatedQueryLimit":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedQueryLimit`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedQueryLimit`\" pulumi-lang-go=\"`FederatedQueryLimit`\" pulumi-lang-python=\"`FederatedQueryLimit`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedQueryLimit`\" pulumi-lang-java=\"`mongodbatlas.FederatedQueryLimit`\"\u003e`mongodbatlas.FederatedQueryLimit`\u003c/span\u003e provides a Federated Database Instance Query Limit data source. To learn more about Atlas Data Federation see https://www.mongodb.com/docs/atlas/data-federation/overview/. \n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getFederatedQueryLimit({\n    projectId: \"PROJECT_ID\",\n    tenantName: \"FEDERATED_DATABASE_INSTANCE_NAME\",\n    limitName: \"LIMIT_NAME\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_federated_query_limit(project_id=\"PROJECT_ID\",\n    tenant_name=\"FEDERATED_DATABASE_INSTANCE_NAME\",\n    limit_name=\"LIMIT_NAME\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetFederatedQueryLimit.Invoke(new()\n    {\n        ProjectId = \"PROJECT_ID\",\n        TenantName = \"FEDERATED_DATABASE_INSTANCE_NAME\",\n        LimitName = \"LIMIT_NAME\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupFederatedQueryLimit(ctx, \u0026mongodbatlas.LookupFederatedQueryLimitArgs{\n\t\t\tProjectId:  \"PROJECT_ID\",\n\t\t\tTenantName: \"FEDERATED_DATABASE_INSTANCE_NAME\",\n\t\t\tLimitName:  \"LIMIT_NAME\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getFederatedQueryLimit(GetFederatedQueryLimitArgs.builder()\n            .projectId(\"PROJECT_ID\")\n            .tenantName(\"FEDERATED_DATABASE_INSTANCE_NAME\")\n            .limitName(\"LIMIT_NAME\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getFederatedQueryLimit\n      arguments:\n        projectId: PROJECT_ID\n        tenantName: FEDERATED_DATABASE_INSTANCE_NAME\n        limitName: LIMIT_NAME\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedQueryLimit.\n","properties":{"limitName":{"type":"string","description":"String enum that indicates whether the identity provider is active or not. Accepted values are:\n* `bytesProcessed.query`: Limit on the number of bytes processed during a single data federation query.\n* `bytesProcessed.daily`: Limit on the number of bytes processed for the data federation instance for the current day.\n* `bytesProcessed.weekly`: Limit on the number of bytes processed for the data federation instance for the current week.\n* `bytesProcessed.monthly`: Limit on the number of bytes processed for the data federation instance for the current month.\n"},"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"tenantName":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"}},"type":"object","required":["limitName","projectId","tenantName"]},"outputs":{"description":"A collection of values returned by getFederatedQueryLimit.\n","properties":{"currentUsage":{"description":"Amount that indicates the current usage of the limit.\n","type":"integer"},"defaultLimit":{"description":"Default value of the limit.\n* `lastModifiedDate` - Only used for Data Federation limits. Timestamp that indicates when this usage limit was last modified. This field uses the ISO 8601 timestamp format in UTC.\n* `maximumLimit` - Maximum value of the limit.\n","type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lastModifiedDate":{"type":"string"},"limitName":{"type":"string"},"maximumLimit":{"type":"integer"},"overrunPolicy":{"type":"string"},"projectId":{"type":"string"},"tenantName":{"type":"string"},"value":{"type":"integer"}},"required":["currentUsage","defaultLimit","lastModifiedDate","limitName","maximumLimit","overrunPolicy","projectId","tenantName","value","id"],"type":"object"}},"mongodbatlas:index/getFederatedQueryLimits:getFederatedQueryLimits":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFederatedQueryLimits`\" pulumi-lang-dotnet=\"`mongodbatlas.getFederatedQueryLimits`\" pulumi-lang-go=\"`getFederatedQueryLimits`\" pulumi-lang-python=\"`get_federated_query_limits`\" pulumi-lang-yaml=\"`mongodbatlas.getFederatedQueryLimits`\" pulumi-lang-java=\"`mongodbatlas.getFederatedQueryLimits`\"\u003e`mongodbatlas.getFederatedQueryLimits`\u003c/span\u003e provides a Federated Database Instance Query Limits data source. To learn more about Atlas Data Federation see https://www.mongodb.com/docs/atlas/data-federation/overview/. \n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n### S\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getFederatedQueryLimits({\n    projectId: \"PROJECT_ID\",\n    tenantName: \"FEDERATED_DATABASE_INSTANCE_NAME\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_federated_query_limits(project_id=\"PROJECT_ID\",\n    tenant_name=\"FEDERATED_DATABASE_INSTANCE_NAME\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetFederatedQueryLimits.Invoke(new()\n    {\n        ProjectId = \"PROJECT_ID\",\n        TenantName = \"FEDERATED_DATABASE_INSTANCE_NAME\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupFederatedQueryLimits(ctx, \u0026mongodbatlas.LookupFederatedQueryLimitsArgs{\n\t\t\tProjectId:  \"PROJECT_ID\",\n\t\t\tTenantName: \"FEDERATED_DATABASE_INSTANCE_NAME\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedQueryLimitsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getFederatedQueryLimits(GetFederatedQueryLimitsArgs.builder()\n            .projectId(\"PROJECT_ID\")\n            .tenantName(\"FEDERATED_DATABASE_INSTANCE_NAME\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getFederatedQueryLimits\n      arguments:\n        projectId: PROJECT_ID\n        tenantName: FEDERATED_DATABASE_INSTANCE_NAME\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedQueryLimits.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project to create a Federated Database Instance.\n"},"tenantName":{"type":"string","description":"Name of the Atlas Federated Database Instance.\n"}},"type":"object","required":["projectId","tenantName"]},"outputs":{"description":"A collection of values returned by getFederatedQueryLimits.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"description":"Includes Federated Database instance query limits for each item detailed in the results array section.\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedQueryLimitsResult:getFederatedQueryLimitsResult"},"type":"array"},"tenantName":{"type":"string"}},"required":["projectId","results","tenantName","id"],"type":"object"}},"mongodbatlas:index/getFederatedSettings:getFederatedSettings":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFederatedSettings`\" pulumi-lang-dotnet=\"`mongodbatlas.getFederatedSettings`\" pulumi-lang-go=\"`getFederatedSettings`\" pulumi-lang-python=\"`get_federated_settings`\" pulumi-lang-yaml=\"`mongodbatlas.getFederatedSettings`\" pulumi-lang-java=\"`mongodbatlas.getFederatedSettings`\"\u003e`mongodbatlas.getFederatedSettings`\u003c/span\u003e provides a federated settings data source. Atlas Cloud federated settings provides federated settings outputs.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst settings = mongodbatlas.getFederatedSettings({\n    orgId: \"627a9683e7f7f7ff7fe306f14\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nsettings = mongodbatlas.get_federated_settings(org_id=\"627a9683e7f7f7ff7fe306f14\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var settings = Mongodbatlas.GetFederatedSettings.Invoke(new()\n    {\n        OrgId = \"627a9683e7f7f7ff7fe306f14\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.GetFederatedSettings(ctx, \u0026mongodbatlas.GetFederatedSettingsArgs{\n\t\t\tOrgId: \"627a9683e7f7f7ff7fe306f14\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var settings = MongodbatlasFunctions.getFederatedSettings(GetFederatedSettingsArgs.builder()\n            .orgId(\"627a9683e7f7f7ff7fe306f14\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  settings:\n    fn::invoke:\n      function: mongodbatlas:getFederatedSettings\n      arguments:\n        orgId: 627a9683e7f7f7ff7fe306f14\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedSettings.\n","properties":{"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"type":"object","required":["orgId"]},"outputs":{"description":"A collection of values returned by getFederatedSettings.\n","properties":{"federatedDomains":{"description":"List that contains the domains associated with the organization's identity provider.\n","items":{"type":"string"},"type":"array"},"hasRoleMappings":{"description":"Flag that indicates whether this organization has role mappings configured.\n","type":"boolean"},"id":{"description":"Unique 24-hexadecimal digit string that identifies this federation.\n","type":"string"},"identityProviderId":{"description":"Unique 20-hexadecimal digit string that identifies the identity provider connected to this organization.\n","type":"string"},"identityProviderStatus":{"description":"Value that indicates whether the identity provider is active. Atlas returns ACTIVE if the identity provider is active and INACTIVE if the identity provider is inactive.\n","type":"string"},"orgId":{"type":"string"}},"required":["federatedDomains","hasRoleMappings","id","identityProviderId","identityProviderStatus","orgId"],"type":"object"}},"mongodbatlas:index/getFederatedSettingsIdentityProvider:getFederatedSettingsIdentityProvider":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-go=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-python=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsIdentityProvider`\"\u003e`mongodbatlas.FederatedSettingsIdentityProvider`\u003c/span\u003e provides a federated settings identity provider data source. Atlas federated settings identity provider provides federated settings outputs for the configured identity provider.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst identityProvider = new mongodbatlas.FederatedSettingsIdentityProvider(\"identity_provider\", {\n    federationSettingsId: \"627a9687f7f7f7f774de306f14\",\n    name: \"mongodb_federation_test\",\n    associatedDomains: [\"yourdomain.com\"],\n    ssoDebugEnabled: true,\n    status: \"ACTIVE\",\n    ssoUrl: \"https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml\",\n    issuerUri: \"http://www.okta.com/exk17f7f7f7f7p50h8\",\n    requestBinding: \"HTTP-POST\",\n    responseSignatureAlgorithm: \"SHA-256\",\n});\nconst identityProviderDs = mongodbatlas.getFederatedSettingsIdentityProviderOutput({\n    federationSettingsId: identityProvider.id,\n    identityProviderId: \"0oad4fas87jL5Xnk12971234\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nidentity_provider = mongodbatlas.FederatedSettingsIdentityProvider(\"identity_provider\",\n    federation_settings_id=\"627a9687f7f7f7f774de306f14\",\n    name=\"mongodb_federation_test\",\n    associated_domains=[\"yourdomain.com\"],\n    sso_debug_enabled=True,\n    status=\"ACTIVE\",\n    sso_url=\"https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml\",\n    issuer_uri=\"http://www.okta.com/exk17f7f7f7f7p50h8\",\n    request_binding=\"HTTP-POST\",\n    response_signature_algorithm=\"SHA-256\")\nidentity_provider_ds = mongodbatlas.get_federated_settings_identity_provider_output(federation_settings_id=identity_provider.id,\n    identity_provider_id=\"0oad4fas87jL5Xnk12971234\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var identityProvider = new Mongodbatlas.FederatedSettingsIdentityProvider(\"identity_provider\", new()\n    {\n        FederationSettingsId = \"627a9687f7f7f7f774de306f14\",\n        Name = \"mongodb_federation_test\",\n        AssociatedDomains = new[]\n        {\n            \"yourdomain.com\",\n        },\n        SsoDebugEnabled = true,\n        Status = \"ACTIVE\",\n        SsoUrl = \"https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml\",\n        IssuerUri = \"http://www.okta.com/exk17f7f7f7f7p50h8\",\n        RequestBinding = \"HTTP-POST\",\n        ResponseSignatureAlgorithm = \"SHA-256\",\n    });\n\n    var identityProviderDs = Mongodbatlas.GetFederatedSettingsIdentityProvider.Invoke(new()\n    {\n        FederationSettingsId = identityProvider.Id,\n        IdentityProviderId = \"0oad4fas87jL5Xnk12971234\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tidentityProvider, err := mongodbatlas.NewFederatedSettingsIdentityProvider(ctx, \"identity_provider\", \u0026mongodbatlas.FederatedSettingsIdentityProviderArgs{\n\t\t\tFederationSettingsId: pulumi.String(\"627a9687f7f7f7f774de306f14\"),\n\t\t\tName:                 pulumi.String(\"mongodb_federation_test\"),\n\t\t\tAssociatedDomains: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"yourdomain.com\"),\n\t\t\t},\n\t\t\tSsoDebugEnabled:            pulumi.Bool(true),\n\t\t\tStatus:                     pulumi.String(\"ACTIVE\"),\n\t\t\tSsoUrl:                     pulumi.String(\"https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml\"),\n\t\t\tIssuerUri:                  pulumi.String(\"http://www.okta.com/exk17f7f7f7f7p50h8\"),\n\t\t\tRequestBinding:             pulumi.String(\"HTTP-POST\"),\n\t\t\tResponseSignatureAlgorithm: pulumi.String(\"SHA-256\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupFederatedSettingsIdentityProviderOutput(ctx, mongodbatlas.GetFederatedSettingsIdentityProviderOutputArgs{\n\t\t\tFederationSettingsId: identityProvider.ID(),\n\t\t\tIdentityProviderId:   pulumi.String(\"0oad4fas87jL5Xnk12971234\"),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedSettingsIdentityProvider;\nimport com.pulumi.mongodbatlas.FederatedSettingsIdentityProviderArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedSettingsIdentityProviderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var identityProvider = new FederatedSettingsIdentityProvider(\"identityProvider\", FederatedSettingsIdentityProviderArgs.builder()\n            .federationSettingsId(\"627a9687f7f7f7f774de306f14\")\n            .name(\"mongodb_federation_test\")\n            .associatedDomains(\"yourdomain.com\")\n            .ssoDebugEnabled(true)\n            .status(\"ACTIVE\")\n            .ssoUrl(\"https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml\")\n            .issuerUri(\"http://www.okta.com/exk17f7f7f7f7p50h8\")\n            .requestBinding(\"HTTP-POST\")\n            .responseSignatureAlgorithm(\"SHA-256\")\n            .build());\n\n        final var identityProviderDs = MongodbatlasFunctions.getFederatedSettingsIdentityProvider(GetFederatedSettingsIdentityProviderArgs.builder()\n            .federationSettingsId(identityProvider.id())\n            .identityProviderId(\"0oad4fas87jL5Xnk12971234\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  identityProvider:\n    type: mongodbatlas:FederatedSettingsIdentityProvider\n    name: identity_provider\n    properties:\n      federationSettingsId: 627a9687f7f7f7f774de306f14\n      name: mongodb_federation_test\n      associatedDomains:\n        - yourdomain.com\n      ssoDebugEnabled: true\n      status: ACTIVE\n      ssoUrl: https://mysso.oktapreview.com/app/mysso_terraformtest_1/exk177f7f7f70h8/sso/saml\n      issuerUri: http://www.okta.com/exk17f7f7f7f7p50h8\n      requestBinding: HTTP-POST\n      responseSignatureAlgorithm: SHA-256\nvariables:\n  identityProviderDs:\n    fn::invoke:\n      function: mongodbatlas:getFederatedSettingsIdentityProvider\n      arguments:\n        federationSettingsId: ${identityProvider.id}\n        identityProviderId: 0oad4fas87jL5Xnk12971234\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedSettingsIdentityProvider.\n","properties":{"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"identityProviderId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the IdP.\n"}},"type":"object","required":["federationSettingsId","identityProviderId"]},"outputs":{"description":"A collection of values returned by getFederatedSettingsIdentityProvider.\n","properties":{"acsUrl":{"description":"Assertion consumer service URL to which the IdP sends the SAML response.\n","type":"string"},"associatedDomains":{"description":"List that contains the configured domains from which users can log in for this IdP.\n","items":{"type":"string"},"type":"array"},"associatedOrgs":{"description":"List that contains the organizations from which users can log in for this IdP.\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProviderAssociatedOrg:getFederatedSettingsIdentityProviderAssociatedOrg"},"type":"array"},"audience":{"description":"Identifier of the intended recipient of the token.\n","type":"string"},"audienceUri":{"description":"Identifier for the intended audience of the SAML Assertion.\n","type":"string"},"authorizationType":{"description":"Indicates whether authorization is granted based on group membership or user ID. Valid values are `GROUP` or `USER`.\n","type":"string"},"clientId":{"description":"Client identifier that is assigned to an application by the Identity Provider.\n","type":"string"},"description":{"description":"The description of the identity provider.\n","type":"string"},"displayName":{"description":"Human-readable label that identifies the IdP.\n","type":"string"},"federationSettingsId":{"description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n","type":"string"},"groupsClaim":{"description":"Identifier of the claim which contains IdP Group IDs in the token.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"identityProviderId":{"type":"string"},"idpId":{"description":"Unique 24-hexadecimal digit string that identifies the IdP\n","type":"string"},"idpType":{"description":"Type of the identity provider. Valid values are `WORKFORCE` or `WORKLOAD`.\n","type":"string"},"issuerUri":{"description":"Identifier for the issuer of the SAML Assertion.\n","type":"string"},"oktaIdpId":{"description":"Unique 20-hexadecimal digit string that identifies the IdP.\n","type":"string"},"pemFileInfos":{"items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProviderPemFileInfo:getFederatedSettingsIdentityProviderPemFileInfo"},"type":"array"},"protocol":{"description":"The protocol of the identity provider. Valid values are `SAML` or `OIDC`.\n","type":"string"},"requestBinding":{"description":"SAML Authentication Request Protocol binding used to send the AuthNRequest. Atlas supports the following binding values:\n- HTTP POST\n- HTTP REDIRECT\n","type":"string"},"requestedScopes":{"description":"Scopes that MongoDB applications will request from the authorization endpoint.\n","items":{"type":"string"},"type":"array"},"responseSignatureAlgorithm":{"description":"Algorithm used to encrypt the IdP signature. Atlas supports the following signature algorithm values:\n- SHA-1\n- SHA-256\n","type":"string"},"ssoDebugEnabled":{"description":"Flag that indicates whether the IdP has enabled Bypass SAML Mode. Enabling this mode generates a URL that allows you bypass SAML and login to your organizations at any point. You can authenticate with this special URL only when Bypass Mode is enabled. Set this parameter to true during testing. This keeps you from getting locked out of MongoDB.\n","type":"boolean"},"ssoUrl":{"description":"URL of the receiver of the SAML AuthNRequest.\n","type":"string"},"status":{"description":"Label that indicates whether the identity provider is active. The IdP is Inactive until you map at least one domain to the IdP.\n","type":"string"},"userClaim":{"description":"Identifier of the claim which contains the user ID in the token.\n","type":"string"}},"required":["acsUrl","associatedDomains","associatedOrgs","audience","audienceUri","authorizationType","clientId","description","displayName","federationSettingsId","groupsClaim","identityProviderId","idpId","idpType","issuerUri","oktaIdpId","pemFileInfos","protocol","requestBinding","requestedScopes","responseSignatureAlgorithm","ssoDebugEnabled","ssoUrl","status","userClaim","id"],"type":"object"}},"mongodbatlas:index/getFederatedSettingsIdentityProviders:getFederatedSettingsIdentityProviders":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFederatedSettingsIdentityProviders`\" pulumi-lang-dotnet=\"`mongodbatlas.getFederatedSettingsIdentityProviders`\" pulumi-lang-go=\"`getFederatedSettingsIdentityProviders`\" pulumi-lang-python=\"`get_federated_settings_identity_providers`\" pulumi-lang-yaml=\"`mongodbatlas.getFederatedSettingsIdentityProviders`\" pulumi-lang-java=\"`mongodbatlas.getFederatedSettingsIdentityProviders`\"\u003e`mongodbatlas.getFederatedSettingsIdentityProviders`\u003c/span\u003e provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.\n\nNote: This implementation returns a maximum of 100 results.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n  identityProvider:\n    type: mongodbatlas:FederatedSettingsIdentityProvider\n    name: identity_provider\n    properties:\n      federationSettingsId: 627a9687f7f7f7f774de306f\n      name: mongodb_federation_test\n      associatedDomains:\n        - yourdomain.com\n      ssoDebugEnabled: true\n      status: ACTIVE\nvariables:\n  identittyProvider:\n    fn::invoke:\n      function: mongodbatlas:getFederatedSettingsIdentityProviders\n      arguments:\n        federationSettingsId: ${identityProvider.id}\n        pageNum: 1\n        itemsPerPage: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedSettingsIdentityProviders.\n","properties":{"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"idpTypes":{"type":"array","items":{"type":"string"},"description":"The types of the target identity providers. Valid values are `WORKFORCE` and `WORKLOAD`.\n"},"protocols":{"type":"array","items":{"type":"string"},"description":"The protocols of the target identity providers. Valid values are `SAML` and `OIDC`.\n"}},"type":"object","required":["federationSettingsId"]},"outputs":{"description":"A collection of values returned by getFederatedSettingsIdentityProviders.\n","properties":{"federationSettingsId":{"description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"idpTypes":{"items":{"type":"string"},"type":"array"},"protocols":{"items":{"type":"string"},"type":"array"},"results":{"description":"Includes cloudProviderSnapshot object for each item detailed in the results array section.\n* `totalCount` - Count of the total number of items in the result set. It may be greater than the number of objects in the results array if the entire result set is paginated.\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsIdentityProvidersResult:getFederatedSettingsIdentityProvidersResult"},"type":"array"}},"required":["federationSettingsId","results","id"],"type":"object"}},"mongodbatlas:index/getFederatedSettingsOrgConfig:getFederatedSettingsOrgConfig":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsOrgConfig`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsOrgConfig`\" pulumi-lang-go=\"`FederatedSettingsOrgConfig`\" pulumi-lang-python=\"`FederatedSettingsOrgConfig`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsOrgConfig`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsOrgConfig`\"\u003e`mongodbatlas.FederatedSettingsOrgConfig`\u003c/span\u003e provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Organizational configuration provides federated settings outputs for the configured Organizational configuration.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst orgConnection = new mongodbatlas.FederatedSettingsOrgConfig(\"org_connection\", {\n    federationSettingsId: \"627a9687f7f7f7f774de306f14\",\n    orgId: \"627a9683ea7ff7f74de306f14\",\n    dataAccessIdentityProviderIds: [\"64d613677e1ad50839cce4db\"],\n    domainRestrictionEnabled: false,\n    domainAllowLists: [\"mydomain.com\"],\n    postAuthRoleGrants: [\"ORG_MEMBER\"],\n    identityProviderId: \"0oaqyt9fc2ySTWnA0357\",\n});\nconst orgConfigsDs = mongodbatlas.getFederatedSettingsOrgConfig({\n    federationSettingsId: orgConnectionMongodbatlasFederatedSettingsOrgConfig.id,\n    orgId: \"627a9683ea7ff7f74de306f14\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\norg_connection = mongodbatlas.FederatedSettingsOrgConfig(\"org_connection\",\n    federation_settings_id=\"627a9687f7f7f7f774de306f14\",\n    org_id=\"627a9683ea7ff7f74de306f14\",\n    data_access_identity_provider_ids=[\"64d613677e1ad50839cce4db\"],\n    domain_restriction_enabled=False,\n    domain_allow_lists=[\"mydomain.com\"],\n    post_auth_role_grants=[\"ORG_MEMBER\"],\n    identity_provider_id=\"0oaqyt9fc2ySTWnA0357\")\norg_configs_ds = mongodbatlas.get_federated_settings_org_config(federation_settings_id=org_connection_mongodbatlas_federated_settings_org_config[\"id\"],\n    org_id=\"627a9683ea7ff7f74de306f14\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var orgConnection = new Mongodbatlas.FederatedSettingsOrgConfig(\"org_connection\", new()\n    {\n        FederationSettingsId = \"627a9687f7f7f7f774de306f14\",\n        OrgId = \"627a9683ea7ff7f74de306f14\",\n        DataAccessIdentityProviderIds = new[]\n        {\n            \"64d613677e1ad50839cce4db\",\n        },\n        DomainRestrictionEnabled = false,\n        DomainAllowLists = new[]\n        {\n            \"mydomain.com\",\n        },\n        PostAuthRoleGrants = new[]\n        {\n            \"ORG_MEMBER\",\n        },\n        IdentityProviderId = \"0oaqyt9fc2ySTWnA0357\",\n    });\n\n    var orgConfigsDs = Mongodbatlas.GetFederatedSettingsOrgConfig.Invoke(new()\n    {\n        FederationSettingsId = orgConnectionMongodbatlasFederatedSettingsOrgConfig.Id,\n        OrgId = \"627a9683ea7ff7f74de306f14\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedSettingsOrgConfig(ctx, \"org_connection\", \u0026mongodbatlas.FederatedSettingsOrgConfigArgs{\n\t\t\tFederationSettingsId: pulumi.String(\"627a9687f7f7f7f774de306f14\"),\n\t\t\tOrgId:                pulumi.String(\"627a9683ea7ff7f74de306f14\"),\n\t\t\tDataAccessIdentityProviderIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"64d613677e1ad50839cce4db\"),\n\t\t\t},\n\t\t\tDomainRestrictionEnabled: pulumi.Bool(false),\n\t\t\tDomainAllowLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"mydomain.com\"),\n\t\t\t},\n\t\t\tPostAuthRoleGrants: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_MEMBER\"),\n\t\t\t},\n\t\t\tIdentityProviderId: pulumi.String(\"0oaqyt9fc2ySTWnA0357\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.LookupFederatedSettingsOrgConfig(ctx, \u0026mongodbatlas.LookupFederatedSettingsOrgConfigArgs{\n\t\t\tFederationSettingsId: orgConnectionMongodbatlasFederatedSettingsOrgConfig.Id,\n\t\t\tOrgId:                \"627a9683ea7ff7f74de306f14\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var orgConnection = new FederatedSettingsOrgConfig(\"orgConnection\", FederatedSettingsOrgConfigArgs.builder()\n            .federationSettingsId(\"627a9687f7f7f7f774de306f14\")\n            .orgId(\"627a9683ea7ff7f74de306f14\")\n            .dataAccessIdentityProviderIds(\"64d613677e1ad50839cce4db\")\n            .domainRestrictionEnabled(false)\n            .domainAllowLists(\"mydomain.com\")\n            .postAuthRoleGrants(\"ORG_MEMBER\")\n            .identityProviderId(\"0oaqyt9fc2ySTWnA0357\")\n            .build());\n\n        final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfig(GetFederatedSettingsOrgConfigArgs.builder()\n            .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.id())\n            .orgId(\"627a9683ea7ff7f74de306f14\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  orgConnection:\n    type: mongodbatlas:FederatedSettingsOrgConfig\n    name: org_connection\n    properties:\n      federationSettingsId: 627a9687f7f7f7f774de306f14\n      orgId: 627a9683ea7ff7f74de306f14\n      dataAccessIdentityProviderIds:\n        - 64d613677e1ad50839cce4db\n      domainRestrictionEnabled: false\n      domainAllowLists:\n        - mydomain.com\n      postAuthRoleGrants:\n        - ORG_MEMBER\n      identityProviderId: 0oaqyt9fc2ySTWnA0357\nvariables:\n  orgConfigsDs:\n    fn::invoke:\n      function: mongodbatlas:getFederatedSettingsOrgConfig\n      arguments:\n        federationSettingsId: ${orgConnectionMongodbatlasFederatedSettingsOrgConfig.id}\n        orgId: 627a9683ea7ff7f74de306f14\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedSettingsOrgConfig.\n","properties":{"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"type":"object","required":["federationSettingsId","orgId"]},"outputs":{"description":"A collection of values returned by getFederatedSettingsOrgConfig.\n","properties":{"dataAccessIdentityProviderIds":{"description":"The collection of unique ids representing the identity providers that can be used for data access in this organization.\n","items":{"type":"string"},"type":"array"},"domainAllowLists":{"description":"List that contains the approved domains from which organization users can log in.  Note: If the organization uses an identity provider,  \u003cspan pulumi-lang-nodejs=\"`domainAllowList`\" pulumi-lang-dotnet=\"`DomainAllowList`\" pulumi-lang-go=\"`domainAllowList`\" pulumi-lang-python=\"`domain_allow_list`\" pulumi-lang-yaml=\"`domainAllowList`\" pulumi-lang-java=\"`domainAllowList`\"\u003e`domain_allow_list`\u003c/span\u003e includes: any SSO domains associated with organization's identity provider and any custom domains associated with the specific organization.\n","items":{"type":"string"},"type":"array"},"domainRestrictionEnabled":{"description":"Flag that indicates whether domain restriction is enabled for the connected organization.  User Conflicts returns null when \u003cspan pulumi-lang-nodejs=\"`domainRestrictionEnabled`\" pulumi-lang-dotnet=\"`DomainRestrictionEnabled`\" pulumi-lang-go=\"`domainRestrictionEnabled`\" pulumi-lang-python=\"`domain_restriction_enabled`\" pulumi-lang-yaml=\"`domainRestrictionEnabled`\" pulumi-lang-java=\"`domainRestrictionEnabled`\"\u003e`domain_restriction_enabled`\u003c/span\u003e is false.\n","type":"boolean"},"federationSettingsId":{"description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"identityProviderId":{"description":"Legacy 20-hexadecimal digit string that identifies the SAML access identity provider that this connected org config is associated with. This id can be found in two ways:\n1. Within the Federation Management UI in Atlas in the Identity Providers tab by clicking the info icon in the IdP ID row of a configured SAML identity provider\n2. \u003cspan pulumi-lang-nodejs=\"`oktaIdpId`\" pulumi-lang-dotnet=\"`OktaIdpId`\" pulumi-lang-go=\"`oktaIdpId`\" pulumi-lang-python=\"`okta_idp_id`\" pulumi-lang-yaml=\"`oktaIdpId`\" pulumi-lang-java=\"`oktaIdpId`\"\u003e`okta_idp_id`\u003c/span\u003e on the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-go=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-python=\"`FederatedSettingsIdentityProvider`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsIdentityProvider`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsIdentityProvider`\"\u003e`mongodbatlas.FederatedSettingsIdentityProvider`\u003c/span\u003e resource\n","type":"string"},"orgId":{"type":"string"},"postAuthRoleGrants":{"description":"List that contains the default [roles](https://www.mongodb.com/docs/atlas/reference/user-roles/#std-label-organization-roles) granted to users who authenticate through the IdP in a connected organization.\n","items":{"type":"string"},"type":"array"},"roleMappings":{"description":"Role mappings that are configured in this organization. See below\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsOrgConfigRoleMapping:getFederatedSettingsOrgConfigRoleMapping"},"type":"array"},"userConflicts":{"description":"List that contains the users who have an email address that doesn't match any domain on the allowed list. See below\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsOrgConfigUserConflict:getFederatedSettingsOrgConfigUserConflict"},"type":"array"}},"required":["dataAccessIdentityProviderIds","domainAllowLists","domainRestrictionEnabled","federationSettingsId","identityProviderId","orgId","postAuthRoleGrants","roleMappings","userConflicts","id"],"type":"object"}},"mongodbatlas:index/getFederatedSettingsOrgConfigs:getFederatedSettingsOrgConfigs":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFederatedSettingsOrgConfigs`\" pulumi-lang-dotnet=\"`mongodbatlas.getFederatedSettingsOrgConfigs`\" pulumi-lang-go=\"`getFederatedSettingsOrgConfigs`\" pulumi-lang-python=\"`get_federated_settings_org_configs`\" pulumi-lang-yaml=\"`mongodbatlas.getFederatedSettingsOrgConfigs`\" pulumi-lang-java=\"`mongodbatlas.getFederatedSettingsOrgConfigs`\"\u003e`mongodbatlas.getFederatedSettingsOrgConfigs`\u003c/span\u003e provides an Federated Settings Identity Providers datasource. Atlas Cloud Federated Settings Identity Providers provides federated settings outputs for the configured Identity Providers.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst orgConnection = new mongodbatlas.FederatedSettingsOrgConfig(\"org_connection\", {\n    federationSettingsId: \"627a9687f7f7f7f774de306f14\",\n    orgId: \"627a9683ea7ff7f74de306f14\",\n    dataAccessIdentityProviderIds: [\"64d613677e1ad50839cce4db\"],\n    domainRestrictionEnabled: false,\n    domainAllowLists: [\"mydomain.com\"],\n    postAuthRoleGrants: [\"ORG_MEMBER\"],\n    identityProviderId: \"0oaqyt9fc2ySTWnA0357\",\n});\nconst orgConfigsDs = mongodbatlas.getFederatedSettingsOrgConfigs({\n    federationSettingsId: orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\norg_connection = mongodbatlas.FederatedSettingsOrgConfig(\"org_connection\",\n    federation_settings_id=\"627a9687f7f7f7f774de306f14\",\n    org_id=\"627a9683ea7ff7f74de306f14\",\n    data_access_identity_provider_ids=[\"64d613677e1ad50839cce4db\"],\n    domain_restriction_enabled=False,\n    domain_allow_lists=[\"mydomain.com\"],\n    post_auth_role_grants=[\"ORG_MEMBER\"],\n    identity_provider_id=\"0oaqyt9fc2ySTWnA0357\")\norg_configs_ds = mongodbatlas.get_federated_settings_org_configs(federation_settings_id=org_connection_mongodbatlas_federated_settings_org_config[\"federationSettingsId\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var orgConnection = new Mongodbatlas.FederatedSettingsOrgConfig(\"org_connection\", new()\n    {\n        FederationSettingsId = \"627a9687f7f7f7f774de306f14\",\n        OrgId = \"627a9683ea7ff7f74de306f14\",\n        DataAccessIdentityProviderIds = new[]\n        {\n            \"64d613677e1ad50839cce4db\",\n        },\n        DomainRestrictionEnabled = false,\n        DomainAllowLists = new[]\n        {\n            \"mydomain.com\",\n        },\n        PostAuthRoleGrants = new[]\n        {\n            \"ORG_MEMBER\",\n        },\n        IdentityProviderId = \"0oaqyt9fc2ySTWnA0357\",\n    });\n\n    var orgConfigsDs = Mongodbatlas.GetFederatedSettingsOrgConfigs.Invoke(new()\n    {\n        FederationSettingsId = orgConnectionMongodbatlasFederatedSettingsOrgConfig.FederationSettingsId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewFederatedSettingsOrgConfig(ctx, \"org_connection\", \u0026mongodbatlas.FederatedSettingsOrgConfigArgs{\n\t\t\tFederationSettingsId: pulumi.String(\"627a9687f7f7f7f774de306f14\"),\n\t\t\tOrgId:                pulumi.String(\"627a9683ea7ff7f74de306f14\"),\n\t\t\tDataAccessIdentityProviderIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"64d613677e1ad50839cce4db\"),\n\t\t\t},\n\t\t\tDomainRestrictionEnabled: pulumi.Bool(false),\n\t\t\tDomainAllowLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"mydomain.com\"),\n\t\t\t},\n\t\t\tPostAuthRoleGrants: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_MEMBER\"),\n\t\t\t},\n\t\t\tIdentityProviderId: pulumi.String(\"0oaqyt9fc2ySTWnA0357\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.LookupFederatedSettingsOrgConfigs(ctx, \u0026mongodbatlas.LookupFederatedSettingsOrgConfigsArgs{\n\t\t\tFederationSettingsId: orgConnectionMongodbatlasFederatedSettingsOrgConfig.FederationSettingsId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgConfig;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgConfigArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgConfigsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var orgConnection = new FederatedSettingsOrgConfig(\"orgConnection\", FederatedSettingsOrgConfigArgs.builder()\n            .federationSettingsId(\"627a9687f7f7f7f774de306f14\")\n            .orgId(\"627a9683ea7ff7f74de306f14\")\n            .dataAccessIdentityProviderIds(\"64d613677e1ad50839cce4db\")\n            .domainRestrictionEnabled(false)\n            .domainAllowLists(\"mydomain.com\")\n            .postAuthRoleGrants(\"ORG_MEMBER\")\n            .identityProviderId(\"0oaqyt9fc2ySTWnA0357\")\n            .build());\n\n        final var orgConfigsDs = MongodbatlasFunctions.getFederatedSettingsOrgConfigs(GetFederatedSettingsOrgConfigsArgs.builder()\n            .federationSettingsId(orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  orgConnection:\n    type: mongodbatlas:FederatedSettingsOrgConfig\n    name: org_connection\n    properties:\n      federationSettingsId: 627a9687f7f7f7f774de306f14\n      orgId: 627a9683ea7ff7f74de306f14\n      dataAccessIdentityProviderIds:\n        - 64d613677e1ad50839cce4db\n      domainRestrictionEnabled: false\n      domainAllowLists:\n        - mydomain.com\n      postAuthRoleGrants:\n        - ORG_MEMBER\n      identityProviderId: 0oaqyt9fc2ySTWnA0357\nvariables:\n  orgConfigsDs:\n    fn::invoke:\n      function: mongodbatlas:getFederatedSettingsOrgConfigs\n      arguments:\n        federationSettingsId: ${orgConnectionMongodbatlasFederatedSettingsOrgConfig.federationSettingsId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedSettingsOrgConfigs.\n","properties":{"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"}},"type":"object","required":["federationSettingsId"]},"outputs":{"description":"A collection of values returned by getFederatedSettingsOrgConfigs.\n","properties":{"federationSettingsId":{"description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"},"results":{"description":"Includes cloudProviderSnapshot object for each item detailed in the results array section.\n* `totalCount` - Count of the total number of items in the result set. It may be greater than the number of objects in the results array if the entire result set is paginated.\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsOrgConfigsResult:getFederatedSettingsOrgConfigsResult"},"type":"array"}},"required":["federationSettingsId","results","id"],"type":"object"}},"mongodbatlas:index/getFederatedSettingsOrgRoleMapping:getFederatedSettingsOrgRoleMapping":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FederatedSettingsOrgRoleMapping`\" pulumi-lang-dotnet=\"`mongodbatlas.FederatedSettingsOrgRoleMapping`\" pulumi-lang-go=\"`FederatedSettingsOrgRoleMapping`\" pulumi-lang-python=\"`FederatedSettingsOrgRoleMapping`\" pulumi-lang-yaml=\"`mongodbatlas.FederatedSettingsOrgRoleMapping`\" pulumi-lang-java=\"`mongodbatlas.FederatedSettingsOrgRoleMapping`\"\u003e`mongodbatlas.FederatedSettingsOrgRoleMapping`\u003c/span\u003e provides an Federated Settings Org Role Mapping datasource. Atlas Cloud Federated Settings Org Role Mapping provides federated settings outputs for the configured Org Role Mapping.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst orgGroupRoleMappingImport = new mongodbatlas.FederatedSettingsOrgRoleMapping(\"org_group_role_mapping_import\", {\n    federationSettingsId: federatedSettings.id,\n    orgId: \"627a9683e7f7f7ff7fe306f14\",\n    externalGroupName: \"myGrouptest\",\n    roleAssignments: [\n        {\n            orgId: \"627a9683e7f7f7ff7fe306f14\",\n            roles: [\n                \"ORG_MEMBER\",\n                \"ORG_GROUP_CREATOR\",\n                \"ORG_BILLING_ADMIN\",\n            ],\n        },\n        {\n            groupId: \"628aa20db7f7f7f98b81b8\",\n            roles: [\n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n                \"GROUP_SEARCH_INDEX_EDITOR\",\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n            ],\n        },\n        {\n            groupId: \"62b477f7f7f7f5e741489c\",\n            roles: [\n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n                \"GROUP_SEARCH_INDEX_EDITOR\",\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n                \"GROUP_DATA_ACCESS_READ_WRITE\",\n            ],\n        },\n    ],\n});\nconst roleMapping = mongodbatlas.getFederatedSettingsOrgRoleMappingOutput({\n    federationSettingsId: orgGroupRoleMappingImport.id,\n    orgId: \"627a9683e7f7f7ff7fe306f14\",\n    roleMappingId: \"627a9673e7f7f7ff7fe306f14\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\norg_group_role_mapping_import = mongodbatlas.FederatedSettingsOrgRoleMapping(\"org_group_role_mapping_import\",\n    federation_settings_id=federated_settings[\"id\"],\n    org_id=\"627a9683e7f7f7ff7fe306f14\",\n    external_group_name=\"myGrouptest\",\n    role_assignments=[\n        {\n            \"org_id\": \"627a9683e7f7f7ff7fe306f14\",\n            \"roles\": [\n                \"ORG_MEMBER\",\n                \"ORG_GROUP_CREATOR\",\n                \"ORG_BILLING_ADMIN\",\n            ],\n        },\n        {\n            \"group_id\": \"628aa20db7f7f7f98b81b8\",\n            \"roles\": [\n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n                \"GROUP_SEARCH_INDEX_EDITOR\",\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n            ],\n        },\n        {\n            \"group_id\": \"62b477f7f7f7f5e741489c\",\n            \"roles\": [\n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n                \"GROUP_SEARCH_INDEX_EDITOR\",\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n                \"GROUP_DATA_ACCESS_READ_WRITE\",\n            ],\n        },\n    ])\nrole_mapping = mongodbatlas.get_federated_settings_org_role_mapping_output(federation_settings_id=org_group_role_mapping_import.id,\n    org_id=\"627a9683e7f7f7ff7fe306f14\",\n    role_mapping_id=\"627a9673e7f7f7ff7fe306f14\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var orgGroupRoleMappingImport = new Mongodbatlas.FederatedSettingsOrgRoleMapping(\"org_group_role_mapping_import\", new()\n    {\n        FederationSettingsId = federatedSettings.Id,\n        OrgId = \"627a9683e7f7f7ff7fe306f14\",\n        ExternalGroupName = \"myGrouptest\",\n        RoleAssignments = new[]\n        {\n            new Mongodbatlas.Inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs\n            {\n                OrgId = \"627a9683e7f7f7ff7fe306f14\",\n                Roles = new[]\n                {\n                    \"ORG_MEMBER\",\n                    \"ORG_GROUP_CREATOR\",\n                    \"ORG_BILLING_ADMIN\",\n                },\n            },\n            new Mongodbatlas.Inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs\n            {\n                GroupId = \"628aa20db7f7f7f98b81b8\",\n                Roles = new[]\n                {\n                    \"GROUP_OWNER\",\n                    \"GROUP_DATA_ACCESS_ADMIN\",\n                    \"GROUP_SEARCH_INDEX_EDITOR\",\n                    \"GROUP_DATA_ACCESS_READ_ONLY\",\n                },\n            },\n            new Mongodbatlas.Inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs\n            {\n                GroupId = \"62b477f7f7f7f5e741489c\",\n                Roles = new[]\n                {\n                    \"GROUP_OWNER\",\n                    \"GROUP_DATA_ACCESS_ADMIN\",\n                    \"GROUP_SEARCH_INDEX_EDITOR\",\n                    \"GROUP_DATA_ACCESS_READ_ONLY\",\n                    \"GROUP_DATA_ACCESS_READ_WRITE\",\n                },\n            },\n        },\n    });\n\n    var roleMapping = Mongodbatlas.GetFederatedSettingsOrgRoleMapping.Invoke(new()\n    {\n        FederationSettingsId = orgGroupRoleMappingImport.Id,\n        OrgId = \"627a9683e7f7f7ff7fe306f14\",\n        RoleMappingId = \"627a9673e7f7f7ff7fe306f14\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\torgGroupRoleMappingImport, err := mongodbatlas.NewFederatedSettingsOrgRoleMapping(ctx, \"org_group_role_mapping_import\", \u0026mongodbatlas.FederatedSettingsOrgRoleMappingArgs{\n\t\t\tFederationSettingsId: pulumi.Any(federatedSettings.Id),\n\t\t\tOrgId:                pulumi.String(\"627a9683e7f7f7ff7fe306f14\"),\n\t\t\tExternalGroupName:    pulumi.String(\"myGrouptest\"),\n\t\t\tRoleAssignments: mongodbatlas.FederatedSettingsOrgRoleMappingRoleAssignmentArray{\n\t\t\t\t\u0026mongodbatlas.FederatedSettingsOrgRoleMappingRoleAssignmentArgs{\n\t\t\t\t\tOrgId: pulumi.String(\"627a9683e7f7f7ff7fe306f14\"),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"ORG_MEMBER\"),\n\t\t\t\t\t\tpulumi.String(\"ORG_GROUP_CREATOR\"),\n\t\t\t\t\t\tpulumi.String(\"ORG_BILLING_ADMIN\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.FederatedSettingsOrgRoleMappingRoleAssignmentArgs{\n\t\t\t\t\tGroupId: pulumi.String(\"628aa20db7f7f7f98b81b8\"),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_OWNER\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_ADMIN\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_SEARCH_INDEX_EDITOR\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_READ_ONLY\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.FederatedSettingsOrgRoleMappingRoleAssignmentArgs{\n\t\t\t\t\tGroupId: pulumi.String(\"62b477f7f7f7f5e741489c\"),\n\t\t\t\t\tRoles: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_OWNER\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_ADMIN\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_SEARCH_INDEX_EDITOR\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_READ_ONLY\"),\n\t\t\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_READ_WRITE\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupFederatedSettingsOrgRoleMappingOutput(ctx, mongodbatlas.GetFederatedSettingsOrgRoleMappingOutputArgs{\n\t\t\tFederationSettingsId: orgGroupRoleMappingImport.ID(),\n\t\t\tOrgId:                pulumi.String(\"627a9683e7f7f7ff7fe306f14\"),\n\t\t\tRoleMappingId:        pulumi.String(\"627a9673e7f7f7ff7fe306f14\"),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;\nimport com.pulumi.mongodbatlas.inputs.FederatedSettingsOrgRoleMappingRoleAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgRoleMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping(\"orgGroupRoleMappingImport\", FederatedSettingsOrgRoleMappingArgs.builder()\n            .federationSettingsId(federatedSettings.id())\n            .orgId(\"627a9683e7f7f7ff7fe306f14\")\n            .externalGroupName(\"myGrouptest\")\n            .roleAssignments(            \n                FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()\n                    .orgId(\"627a9683e7f7f7ff7fe306f14\")\n                    .roles(                    \n                        \"ORG_MEMBER\",\n                        \"ORG_GROUP_CREATOR\",\n                        \"ORG_BILLING_ADMIN\")\n                    .build(),\n                FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()\n                    .groupId(\"628aa20db7f7f7f98b81b8\")\n                    .roles(                    \n                        \"GROUP_OWNER\",\n                        \"GROUP_DATA_ACCESS_ADMIN\",\n                        \"GROUP_SEARCH_INDEX_EDITOR\",\n                        \"GROUP_DATA_ACCESS_READ_ONLY\")\n                    .build(),\n                FederatedSettingsOrgRoleMappingRoleAssignmentArgs.builder()\n                    .groupId(\"62b477f7f7f7f5e741489c\")\n                    .roles(                    \n                        \"GROUP_OWNER\",\n                        \"GROUP_DATA_ACCESS_ADMIN\",\n                        \"GROUP_SEARCH_INDEX_EDITOR\",\n                        \"GROUP_DATA_ACCESS_READ_ONLY\",\n                        \"GROUP_DATA_ACCESS_READ_WRITE\")\n                    .build())\n            .build());\n\n        final var roleMapping = MongodbatlasFunctions.getFederatedSettingsOrgRoleMapping(GetFederatedSettingsOrgRoleMappingArgs.builder()\n            .federationSettingsId(orgGroupRoleMappingImport.id())\n            .orgId(\"627a9683e7f7f7ff7fe306f14\")\n            .roleMappingId(\"627a9673e7f7f7ff7fe306f14\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  orgGroupRoleMappingImport:\n    type: mongodbatlas:FederatedSettingsOrgRoleMapping\n    name: org_group_role_mapping_import\n    properties:\n      federationSettingsId: ${federatedSettings.id}\n      orgId: 627a9683e7f7f7ff7fe306f14\n      externalGroupName: myGrouptest\n      roleAssignments:\n        - orgId: 627a9683e7f7f7ff7fe306f14\n          roles:\n            - ORG_MEMBER\n            - ORG_GROUP_CREATOR\n            - ORG_BILLING_ADMIN\n        - groupId: 628aa20db7f7f7f98b81b8\n          roles:\n            - GROUP_OWNER\n            - GROUP_DATA_ACCESS_ADMIN\n            - GROUP_SEARCH_INDEX_EDITOR\n            - GROUP_DATA_ACCESS_READ_ONLY\n        - groupId: 62b477f7f7f7f5e741489c\n          roles:\n            - GROUP_OWNER\n            - GROUP_DATA_ACCESS_ADMIN\n            - GROUP_SEARCH_INDEX_EDITOR\n            - GROUP_DATA_ACCESS_READ_ONLY\n            - GROUP_DATA_ACCESS_READ_WRITE\nvariables:\n  roleMapping:\n    fn::invoke:\n      function: mongodbatlas:getFederatedSettingsOrgRoleMapping\n      arguments:\n        federationSettingsId: ${orgGroupRoleMappingImport.id}\n        orgId: 627a9683e7f7f7ff7fe306f14\n        roleMappingId: 627a9673e7f7f7ff7fe306f14\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedSettingsOrgRoleMapping.\n","properties":{"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"roleMappingId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies this role mapping.\n"}},"type":"object","required":["federationSettingsId","orgId","roleMappingId"]},"outputs":{"description":"A collection of values returned by getFederatedSettingsOrgRoleMapping.\n","properties":{"externalGroupName":{"description":"Unique label that identifies the identity provider group to which this role mapping applies.\n","type":"string"},"federationSettingsId":{"type":"string"},"id":{"description":"Unique 24-hexadecimal digit string that identifies this role mapping.\n","type":"string"},"orgId":{"type":"string"},"roleAssignments":{"description":"Atlas roles and the unique identifiers of the groups and organizations associated with each role.\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsOrgRoleMappingRoleAssignment:getFederatedSettingsOrgRoleMappingRoleAssignment"},"type":"array"},"roleMappingId":{"type":"string"}},"required":["externalGroupName","federationSettingsId","id","orgId","roleAssignments","roleMappingId"],"type":"object"}},"mongodbatlas:index/getFederatedSettingsOrgRoleMappings:getFederatedSettingsOrgRoleMappings":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFederatedSettingsOrgRoleMappings`\" pulumi-lang-dotnet=\"`mongodbatlas.getFederatedSettingsOrgRoleMappings`\" pulumi-lang-go=\"`getFederatedSettingsOrgRoleMappings`\" pulumi-lang-python=\"`get_federated_settings_org_role_mappings`\" pulumi-lang-yaml=\"`mongodbatlas.getFederatedSettingsOrgRoleMappings`\" pulumi-lang-java=\"`mongodbatlas.getFederatedSettingsOrgRoleMappings`\"\u003e`mongodbatlas.getFederatedSettingsOrgRoleMappings`\u003c/span\u003e provides an Federated Settings Org Role Mapping datasource. Atlas Cloud Federated Settings Org Role Mapping provides federated settings outputs for the configured Org Role Mapping.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst orgGroupRoleMappingImport = new mongodbatlas.FederatedSettingsOrgRoleMapping(\"org_group_role_mapping_import\", {\n    federationSettingsId: \"\",\n    orgId: \"627a9683e7f7f7ff7fe306f14\",\n    groupId: \"628aa20d7f7f7f7f7098b81b8\",\n    externalGroupName: \"myGrouptest\",\n    organizationRoles: [\n        \"ORG_OWNER\",\n        \"ORG_MEMBER\",\n        \"ORG_BILLING_ADMIN\",\n        \"ORG_GROUP_CREATOR\",\n        \"ORG_READ_ONLY\",\n    ],\n    groupRoles: [\n        \"GROUP_OWNER\",\n        \"GROUP_CLUSTER_MANAGER\",\n        \"GROUP_DATA_ACCESS_ADMIN\",\n        \"GROUP_DATA_ACCESS_READ_WRITE\",\n        \"GROUP_SEARCH_INDEX_EDITOR\",\n        \"GROUP_DATA_ACCESS_READ_ONLY\",\n        \"GROUP_READ_ONLY\",\n    ],\n});\nconst roleMappings = orgGroupRoleMappingImport.id.apply(id =\u003e mongodbatlas.getFederatedSettingsOrgRoleMappingsOutput({\n    federationSettingsId: id,\n    orgId: \"627a9683e7f7f7ff7fe306f14\",\n    pageNum: 1,\n    itemsPerPage: 5,\n}));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\norg_group_role_mapping_import = mongodbatlas.FederatedSettingsOrgRoleMapping(\"org_group_role_mapping_import\",\n    federation_settings_id=\"\",\n    org_id=\"627a9683e7f7f7ff7fe306f14\",\n    group_id=\"628aa20d7f7f7f7f7098b81b8\",\n    external_group_name=\"myGrouptest\",\n    organization_roles=[\n        \"ORG_OWNER\",\n        \"ORG_MEMBER\",\n        \"ORG_BILLING_ADMIN\",\n        \"ORG_GROUP_CREATOR\",\n        \"ORG_READ_ONLY\",\n    ],\n    group_roles=[\n        \"GROUP_OWNER\",\n        \"GROUP_CLUSTER_MANAGER\",\n        \"GROUP_DATA_ACCESS_ADMIN\",\n        \"GROUP_DATA_ACCESS_READ_WRITE\",\n        \"GROUP_SEARCH_INDEX_EDITOR\",\n        \"GROUP_DATA_ACCESS_READ_ONLY\",\n        \"GROUP_READ_ONLY\",\n    ])\nrole_mappings = org_group_role_mapping_import.id.apply(lambda id: mongodbatlas.get_federated_settings_org_role_mappings_output(federation_settings_id=id,\n    org_id=\"627a9683e7f7f7ff7fe306f14\",\n    page_num=1,\n    items_per_page=5))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var orgGroupRoleMappingImport = new Mongodbatlas.FederatedSettingsOrgRoleMapping(\"org_group_role_mapping_import\", new()\n    {\n        FederationSettingsId = \"\",\n        OrgId = \"627a9683e7f7f7ff7fe306f14\",\n        GroupId = \"628aa20d7f7f7f7f7098b81b8\",\n        ExternalGroupName = \"myGrouptest\",\n        OrganizationRoles = new[]\n        {\n            \"ORG_OWNER\",\n            \"ORG_MEMBER\",\n            \"ORG_BILLING_ADMIN\",\n            \"ORG_GROUP_CREATOR\",\n            \"ORG_READ_ONLY\",\n        },\n        GroupRoles = new[]\n        {\n            \"GROUP_OWNER\",\n            \"GROUP_CLUSTER_MANAGER\",\n            \"GROUP_DATA_ACCESS_ADMIN\",\n            \"GROUP_DATA_ACCESS_READ_WRITE\",\n            \"GROUP_SEARCH_INDEX_EDITOR\",\n            \"GROUP_DATA_ACCESS_READ_ONLY\",\n            \"GROUP_READ_ONLY\",\n        },\n    });\n\n    var roleMappings = Mongodbatlas.GetFederatedSettingsOrgRoleMappings.Invoke(new()\n    {\n        FederationSettingsId = orgGroupRoleMappingImport.Id,\n        OrgId = \"627a9683e7f7f7ff7fe306f14\",\n        PageNum = 1,\n        ItemsPerPage = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\torgGroupRoleMappingImport, err := mongodbatlas.NewFederatedSettingsOrgRoleMapping(ctx, \"org_group_role_mapping_import\", \u0026mongodbatlas.FederatedSettingsOrgRoleMappingArgs{\n\t\t\tFederationSettingsId: pulumi.String(\"\"),\n\t\t\tOrgId:                pulumi.String(\"627a9683e7f7f7ff7fe306f14\"),\n\t\t\tGroupId:              \"628aa20d7f7f7f7f7098b81b8\",\n\t\t\tExternalGroupName:    pulumi.String(\"myGrouptest\"),\n\t\t\tOrganizationRoles: []string{\n\t\t\t\t\"ORG_OWNER\",\n\t\t\t\t\"ORG_MEMBER\",\n\t\t\t\t\"ORG_BILLING_ADMIN\",\n\t\t\t\t\"ORG_GROUP_CREATOR\",\n\t\t\t\t\"ORG_READ_ONLY\",\n\t\t\t},\n\t\t\tGroupRoles: []string{\n\t\t\t\t\"GROUP_OWNER\",\n\t\t\t\t\"GROUP_CLUSTER_MANAGER\",\n\t\t\t\t\"GROUP_DATA_ACCESS_ADMIN\",\n\t\t\t\t\"GROUP_DATA_ACCESS_READ_WRITE\",\n\t\t\t\t\"GROUP_SEARCH_INDEX_EDITOR\",\n\t\t\t\t\"GROUP_DATA_ACCESS_READ_ONLY\",\n\t\t\t\t\"GROUP_READ_ONLY\",\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = orgGroupRoleMappingImport.ID().ApplyT(func(id string) (mongodbatlas.GetFederatedSettingsOrgRoleMappingsResult, error) {\n\t\t\treturn mongodbatlas.GetFederatedSettingsOrgRoleMappingsResult(interface{}(mongodbatlas.LookupFederatedSettingsOrgRoleMappings(ctx, \u0026mongodbatlas.LookupFederatedSettingsOrgRoleMappingsArgs{\n\t\t\t\tFederationSettingsId: id,\n\t\t\t\tOrgId:                \"627a9683e7f7f7ff7fe306f14\",\n\t\t\t\tPageNum:              pulumi.IntRef(pulumi.IntRef(int(1))),\n\t\t\t\tItemsPerPage:         pulumi.IntRef(pulumi.IntRef(int(5))),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetFederatedSettingsOrgRoleMappingsResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMapping;\nimport com.pulumi.mongodbatlas.FederatedSettingsOrgRoleMappingArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetFederatedSettingsOrgRoleMappingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var orgGroupRoleMappingImport = new FederatedSettingsOrgRoleMapping(\"orgGroupRoleMappingImport\", FederatedSettingsOrgRoleMappingArgs.builder()\n            .federationSettingsId(\"\")\n            .orgId(\"627a9683e7f7f7ff7fe306f14\")\n            .groupId(\"628aa20d7f7f7f7f7098b81b8\")\n            .externalGroupName(\"myGrouptest\")\n            .organizationRoles(List.of(            \n                \"ORG_OWNER\",\n                \"ORG_MEMBER\",\n                \"ORG_BILLING_ADMIN\",\n                \"ORG_GROUP_CREATOR\",\n                \"ORG_READ_ONLY\"))\n            .groupRoles(List.of(            \n                \"GROUP_OWNER\",\n                \"GROUP_CLUSTER_MANAGER\",\n                \"GROUP_DATA_ACCESS_ADMIN\",\n                \"GROUP_DATA_ACCESS_READ_WRITE\",\n                \"GROUP_SEARCH_INDEX_EDITOR\",\n                \"GROUP_DATA_ACCESS_READ_ONLY\",\n                \"GROUP_READ_ONLY\"))\n            .build());\n\n        final var roleMappings = orgGroupRoleMappingImport.id().applyValue(_id -\u003e MongodbatlasFunctions.getFederatedSettingsOrgRoleMappings(GetFederatedSettingsOrgRoleMappingsArgs.builder()\n            .federationSettingsId(_id)\n            .orgId(\"627a9683e7f7f7ff7fe306f14\")\n            .pageNum(1)\n            .itemsPerPage(5)\n            .build()));\n\n    }\n}\n```\n```yaml\nresources:\n  orgGroupRoleMappingImport:\n    type: mongodbatlas:FederatedSettingsOrgRoleMapping\n    name: org_group_role_mapping_import\n    properties:\n      federationSettingsId: \"\"\n      orgId: 627a9683e7f7f7ff7fe306f14\n      groupId: 628aa20d7f7f7f7f7098b81b8\n      externalGroupName: myGrouptest\n      organizationRoles:\n        - ORG_OWNER\n        - ORG_MEMBER\n        - ORG_BILLING_ADMIN\n        - ORG_GROUP_CREATOR\n        - ORG_READ_ONLY\n      groupRoles:\n        - GROUP_OWNER\n        - GROUP_CLUSTER_MANAGER\n        - GROUP_DATA_ACCESS_ADMIN\n        - GROUP_DATA_ACCESS_READ_WRITE\n        - GROUP_SEARCH_INDEX_EDITOR\n        - GROUP_DATA_ACCESS_READ_ONLY\n        - GROUP_READ_ONLY\nvariables:\n  roleMappings:\n    fn::invoke:\n      function: mongodbatlas:getFederatedSettingsOrgRoleMappings\n      arguments:\n        federationSettingsId: ${orgGroupRoleMappingImport.id}\n        orgId: 627a9683e7f7f7ff7fe306f14\n        pageNum: 1\n        itemsPerPage: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFederatedSettingsOrgRoleMappings.\n","properties":{"federationSettingsId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the federated authentication configuration.\n"},"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"}},"type":"object","required":["federationSettingsId","orgId"]},"outputs":{"description":"A collection of values returned by getFederatedSettingsOrgRoleMappings.\n","properties":{"federationSettingsId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"itemsPerPage":{"type":"integer"},"orgId":{"type":"string"},"pageNum":{"type":"integer"},"results":{"description":"Includes cloudProviderSnapshot object for each item detailed in the results array section.\n* `totalCount` - Count of the total number of items in the result set. It may be greater than the number of objects in the results array if the entire result set is paginated.\n","items":{"$ref":"#/types/mongodbatlas:index/getFederatedSettingsOrgRoleMappingsResult:getFederatedSettingsOrgRoleMappingsResult"},"type":"array"}},"required":["federationSettingsId","orgId","results","id"],"type":"object"}},"mongodbatlas:index/getFlexCluster:getFlexCluster":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FlexCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.FlexCluster`\" pulumi-lang-go=\"`FlexCluster`\" pulumi-lang-python=\"`FlexCluster`\" pulumi-lang-yaml=\"`mongodbatlas.FlexCluster`\" pulumi-lang-java=\"`mongodbatlas.FlexCluster`\"\u003e`mongodbatlas.FlexCluster`\u003c/span\u003e describes a flex cluster.\n\n**RECOMMENDATION:** We recommend using the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e data source instead of \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.FlexCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.FlexCluster`\" pulumi-lang-go=\"`FlexCluster`\" pulumi-lang-python=\"`FlexCluster`\" pulumi-lang-yaml=\"`mongodbatlas.FlexCluster`\" pulumi-lang-java=\"`mongodbatlas.FlexCluster`\"\u003e`mongodbatlas.FlexCluster`\u003c/span\u003e data source to retrieve Flex clusters. The \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-dotnet=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-go=\"`AdvancedCluster`\" pulumi-lang-python=\"`AdvancedCluster`\" pulumi-lang-yaml=\"`mongodbatlas.AdvancedCluster`\" pulumi-lang-java=\"`mongodbatlas.AdvancedCluster`\"\u003e`mongodbatlas.AdvancedCluster`\u003c/span\u003e data source not only supports Flex clusters, but also supports free and dedicated clusters, providing easier migration between different cluster types. For more information, see the Advanced Cluster data source.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example_clusterFlexCluster = new mongodbatlas.FlexCluster(\"example-cluster\", {\n    projectId: projectId,\n    name: clusterName,\n    providerSettings: {\n        backingProviderName: \"AWS\",\n        regionName: \"US_EAST_1\",\n    },\n    terminationProtectionEnabled: true,\n});\nconst example_cluster = example_clusterFlexCluster.name.apply(name =\u003e mongodbatlas.getFlexClusterOutput({\n    projectId: projectId,\n    name: name,\n}));\nconst example_clusters = mongodbatlas.getFlexClusters({\n    projectId: projectId,\n});\nexport const mongodbatlasFlexCluster = example_cluster.apply(example_cluster =\u003e example_cluster.name);\nexport const mongodbatlasFlexClustersNames = example_clusters.then(example_clusters =\u003e .map(cluster =\u003e (cluster.name)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample_cluster_flex_cluster = mongodbatlas.FlexCluster(\"example-cluster\",\n    project_id=project_id,\n    name=cluster_name,\n    provider_settings={\n        \"backing_provider_name\": \"AWS\",\n        \"region_name\": \"US_EAST_1\",\n    },\n    termination_protection_enabled=True)\nexample_cluster = example_cluster_flex_cluster.name.apply(lambda name: mongodbatlas.get_flex_cluster_output(project_id=project_id,\n    name=name))\nexample_clusters = mongodbatlas.get_flex_clusters(project_id=project_id)\npulumi.export(\"mongodbatlasFlexCluster\", example_cluster.name)\npulumi.export(\"mongodbatlasFlexClustersNames\", [cluster.name for cluster in example_clusters.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_clusterFlexCluster = new Mongodbatlas.FlexCluster(\"example-cluster\", new()\n    {\n        ProjectId = projectId,\n        Name = clusterName,\n        ProviderSettings = new Mongodbatlas.Inputs.FlexClusterProviderSettingsArgs\n        {\n            BackingProviderName = \"AWS\",\n            RegionName = \"US_EAST_1\",\n        },\n        TerminationProtectionEnabled = true,\n    });\n\n    var example_cluster = Mongodbatlas.GetFlexCluster.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_clusterFlexCluster.Name,\n    });\n\n    var example_clusters = Mongodbatlas.GetFlexClusters.Invoke(new()\n    {\n        ProjectId = projectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbatlasFlexCluster\"] = example_cluster.Apply(example_cluster =\u003e example_cluster.Apply(getFlexClusterResult =\u003e getFlexClusterResult.Name)),\n        [\"mongodbatlasFlexClustersNames\"] = example_clusters.Apply(example_clusters =\u003e .Select(cluster =\u003e \n        {\n            return cluster.Name;\n        }).ToList()),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlexCluster.\n","properties":{"name":{"type":"string","description":"Human-readable label that identifies the instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the project.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getFlexCluster.\n","properties":{"backupSettings":{"$ref":"#/types/mongodbatlas:index/getFlexClusterBackupSettings:getFlexClusterBackupSettings","description":"Flex backup configuration\n"},"clusterType":{"description":"Flex cluster topology.\n","type":"string"},"connectionStrings":{"$ref":"#/types/mongodbatlas:index/getFlexClusterConnectionStrings:getFlexClusterConnectionStrings","description":"Collection of Uniform Resource Locators that point to the MongoDB database.\n"},"createDate":{"description":"Date and time when MongoDB Cloud created this instance. This parameter expresses its value in ISO 8601 format in UTC.\n","type":"string"},"id":{"description":"Unique 24-hexadecimal digit string that identifies the instance.\n","type":"string"},"mongoDbVersion":{"description":"Version of MongoDB that the instance runs.\n","type":"string"},"name":{"description":"Human-readable label that identifies the instance.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal character string that identifies the project.\n","type":"string"},"providerSettings":{"$ref":"#/types/mongodbatlas:index/getFlexClusterProviderSettings:getFlexClusterProviderSettings","description":"Group of cloud provider settings that configure the provisioned MongoDB flex cluster.\n"},"stateName":{"description":"Human-readable label that indicates the current operating condition of this instance.\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Map that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the instance.\n","type":"object"},"terminationProtectionEnabled":{"description":"Flag that indicates whether termination protection is enabled on the cluster. If set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, MongoDB Cloud won't delete the cluster. If set to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, MongoDB Cloud will delete the cluster.\n","type":"boolean"},"versionReleaseSystem":{"description":"Method by which the cluster maintains the MongoDB versions.\n","type":"string"}},"required":["backupSettings","clusterType","connectionStrings","createDate","id","mongoDbVersion","name","projectId","providerSettings","stateName","tags","terminationProtectionEnabled","versionReleaseSystem"],"type":"object"}},"mongodbatlas:index/getFlexClusters:getFlexClusters":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFlexClusters`\" pulumi-lang-dotnet=\"`mongodbatlas.getFlexClusters`\" pulumi-lang-go=\"`getFlexClusters`\" pulumi-lang-python=\"`get_flex_clusters`\" pulumi-lang-yaml=\"`mongodbatlas.getFlexClusters`\" pulumi-lang-java=\"`mongodbatlas.getFlexClusters`\"\u003e`mongodbatlas.getFlexClusters`\u003c/span\u003e returns all flex clusters in a project.\n\n**RECOMMENDATION:** We recommend using the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-dotnet=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-go=\"`getAdvancedClusters`\" pulumi-lang-python=\"`get_advanced_clusters`\" pulumi-lang-yaml=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-java=\"`mongodbatlas.getAdvancedClusters`\"\u003e`mongodbatlas.getAdvancedClusters`\u003c/span\u003e data source instead of the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFlexClusters`\" pulumi-lang-dotnet=\"`mongodbatlas.getFlexClusters`\" pulumi-lang-go=\"`getFlexClusters`\" pulumi-lang-python=\"`get_flex_clusters`\" pulumi-lang-yaml=\"`mongodbatlas.getFlexClusters`\" pulumi-lang-java=\"`mongodbatlas.getFlexClusters`\"\u003e`mongodbatlas.getFlexClusters`\u003c/span\u003e data source to retrieve Flex clusters. The \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-dotnet=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-go=\"`getAdvancedClusters`\" pulumi-lang-python=\"`get_advanced_clusters`\" pulumi-lang-yaml=\"`mongodbatlas.getAdvancedClusters`\" pulumi-lang-java=\"`mongodbatlas.getAdvancedClusters`\"\u003e`mongodbatlas.getAdvancedClusters`\u003c/span\u003e data source not only supports Flex clusters, but also supports free and dedicated clusters, providing easier migration between different cluster types. For more information, see the Advanced Clusters data source.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example_clusterFlexCluster = new mongodbatlas.FlexCluster(\"example-cluster\", {\n    projectId: projectId,\n    name: clusterName,\n    providerSettings: {\n        backingProviderName: \"AWS\",\n        regionName: \"US_EAST_1\",\n    },\n    terminationProtectionEnabled: true,\n});\nconst example_cluster = example_clusterFlexCluster.name.apply(name =\u003e mongodbatlas.getFlexClusterOutput({\n    projectId: projectId,\n    name: name,\n}));\nconst example_clusters = mongodbatlas.getFlexClusters({\n    projectId: projectId,\n});\nexport const mongodbatlasFlexCluster = example_cluster.apply(example_cluster =\u003e example_cluster.name);\nexport const mongodbatlasFlexClustersNames = example_clusters.then(example_clusters =\u003e .map(cluster =\u003e (cluster.name)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample_cluster_flex_cluster = mongodbatlas.FlexCluster(\"example-cluster\",\n    project_id=project_id,\n    name=cluster_name,\n    provider_settings={\n        \"backing_provider_name\": \"AWS\",\n        \"region_name\": \"US_EAST_1\",\n    },\n    termination_protection_enabled=True)\nexample_cluster = example_cluster_flex_cluster.name.apply(lambda name: mongodbatlas.get_flex_cluster_output(project_id=project_id,\n    name=name))\nexample_clusters = mongodbatlas.get_flex_clusters(project_id=project_id)\npulumi.export(\"mongodbatlasFlexCluster\", example_cluster.name)\npulumi.export(\"mongodbatlasFlexClustersNames\", [cluster.name for cluster in example_clusters.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_clusterFlexCluster = new Mongodbatlas.FlexCluster(\"example-cluster\", new()\n    {\n        ProjectId = projectId,\n        Name = clusterName,\n        ProviderSettings = new Mongodbatlas.Inputs.FlexClusterProviderSettingsArgs\n        {\n            BackingProviderName = \"AWS\",\n            RegionName = \"US_EAST_1\",\n        },\n        TerminationProtectionEnabled = true,\n    });\n\n    var example_cluster = Mongodbatlas.GetFlexCluster.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_clusterFlexCluster.Name,\n    });\n\n    var example_clusters = Mongodbatlas.GetFlexClusters.Invoke(new()\n    {\n        ProjectId = projectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbatlasFlexCluster\"] = example_cluster.Apply(example_cluster =\u003e example_cluster.Apply(getFlexClusterResult =\u003e getFlexClusterResult.Name)),\n        [\"mongodbatlasFlexClustersNames\"] = example_clusters.Apply(example_clusters =\u003e .Select(cluster =\u003e \n        {\n            return cluster.Name;\n        }).ToList()),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlexClusters.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal character string that identifies the project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getFlexClusters.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal character string that identifies the project.\n","type":"string"},"results":{"description":"List of documents that MongoDB Cloud returns for this request.\n","items":{"$ref":"#/types/mongodbatlas:index/getFlexClustersResult:getFlexClustersResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getFlexRestoreJob:getFlexRestoreJob":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFlexRestoreJob`\" pulumi-lang-dotnet=\"`mongodbatlas.getFlexRestoreJob`\" pulumi-lang-go=\"`getFlexRestoreJob`\" pulumi-lang-python=\"`get_flex_restore_job`\" pulumi-lang-yaml=\"`mongodbatlas.getFlexRestoreJob`\" pulumi-lang-java=\"`mongodbatlas.getFlexRestoreJob`\"\u003e`mongodbatlas.getFlexRestoreJob`\u003c/span\u003e describes a flex restore job.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst restoreJob = mongodbatlas.getFlexRestoreJob({\n    projectId: projectId,\n    name: example_cluster.name,\n    restoreJobId: restoreJobId,\n});\nconst restoreJobs = mongodbatlas.getFlexRestoreJobs({\n    projectId: projectId,\n    name: example_cluster.name,\n});\nexport const mongodbatlasFlexRestoreJob = restoreJob.then(restoreJob =\u003e restoreJob.name);\nexport const mongodbatlasFlexRestoreJobs = restoreJobs.then(restoreJobs =\u003e .map(restoreJob =\u003e (restoreJob.restoreJobId)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nrestore_job = mongodbatlas.get_flex_restore_job(project_id=project_id,\n    name=example_cluster[\"name\"],\n    restore_job_id=restore_job_id)\nrestore_jobs = mongodbatlas.get_flex_restore_jobs(project_id=project_id,\n    name=example_cluster[\"name\"])\npulumi.export(\"mongodbatlasFlexRestoreJob\", restore_job.name)\npulumi.export(\"mongodbatlasFlexRestoreJobs\", [restore_job.restore_job_id for restoreJob in restore_jobs.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var restoreJob = Mongodbatlas.GetFlexRestoreJob.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_cluster.Name,\n        RestoreJobId = restoreJobId,\n    });\n\n    var restoreJobs = Mongodbatlas.GetFlexRestoreJobs.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_cluster.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbatlasFlexRestoreJob\"] = restoreJob.Apply(getFlexRestoreJobResult =\u003e getFlexRestoreJobResult.Name),\n        [\"mongodbatlasFlexRestoreJobs\"] = .Select(restoreJob =\u003e \n        {\n            return restoreJob.Apply(getFlexRestoreJobResult =\u003e getFlexRestoreJobResult.RestoreJobId);\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlexRestoreJob.\n","properties":{"name":{"type":"string","description":"Human-readable label that identifies the flex cluster whose snapshot you want to restore.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"restoreJobId":{"type":"string"}},"type":"object","required":["name","projectId","restoreJobId"]},"outputs":{"description":"A collection of values returned by getFlexRestoreJob.\n","properties":{"deliveryType":{"type":"string"},"expirationDate":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"Human-readable label that identifies the flex cluster whose snapshot you want to restore.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"restoreFinishedDate":{"type":"string"},"restoreJobId":{"type":"string"},"restoreScheduledDate":{"type":"string"},"snapshotFinishedDate":{"type":"string"},"snapshotId":{"type":"string"},"snapshotUrl":{"type":"string"},"status":{"type":"string"},"targetDeploymentItemName":{"type":"string"},"targetProjectId":{"type":"string"}},"required":["deliveryType","expirationDate","name","projectId","restoreFinishedDate","restoreJobId","restoreScheduledDate","snapshotFinishedDate","snapshotId","snapshotUrl","status","targetDeploymentItemName","targetProjectId","id"],"type":"object"}},"mongodbatlas:index/getFlexRestoreJobs:getFlexRestoreJobs":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFlexRestoreJobs`\" pulumi-lang-dotnet=\"`mongodbatlas.getFlexRestoreJobs`\" pulumi-lang-go=\"`getFlexRestoreJobs`\" pulumi-lang-python=\"`get_flex_restore_jobs`\" pulumi-lang-yaml=\"`mongodbatlas.getFlexRestoreJobs`\" pulumi-lang-java=\"`mongodbatlas.getFlexRestoreJobs`\"\u003e`mongodbatlas.getFlexRestoreJobs`\u003c/span\u003e returns all flex restore job of a flex cluster.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst restoreJob = mongodbatlas.getFlexRestoreJob({\n    projectId: projectId,\n    name: example_cluster.name,\n    restoreJobId: restoreJobId,\n});\nconst restoreJobs = mongodbatlas.getFlexRestoreJobs({\n    projectId: projectId,\n    name: example_cluster.name,\n});\nexport const mongodbatlasFlexRestoreJob = restoreJob.then(restoreJob =\u003e restoreJob.name);\nexport const mongodbatlasFlexRestoreJobs = restoreJobs.then(restoreJobs =\u003e .map(restoreJob =\u003e (restoreJob.restoreJobId)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nrestore_job = mongodbatlas.get_flex_restore_job(project_id=project_id,\n    name=example_cluster[\"name\"],\n    restore_job_id=restore_job_id)\nrestore_jobs = mongodbatlas.get_flex_restore_jobs(project_id=project_id,\n    name=example_cluster[\"name\"])\npulumi.export(\"mongodbatlasFlexRestoreJob\", restore_job.name)\npulumi.export(\"mongodbatlasFlexRestoreJobs\", [restore_job.restore_job_id for restoreJob in restore_jobs.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var restoreJob = Mongodbatlas.GetFlexRestoreJob.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_cluster.Name,\n        RestoreJobId = restoreJobId,\n    });\n\n    var restoreJobs = Mongodbatlas.GetFlexRestoreJobs.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_cluster.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbatlasFlexRestoreJob\"] = restoreJob.Apply(getFlexRestoreJobResult =\u003e getFlexRestoreJobResult.Name),\n        [\"mongodbatlasFlexRestoreJobs\"] = .Select(restoreJob =\u003e \n        {\n            return restoreJob.Apply(getFlexRestoreJobResult =\u003e getFlexRestoreJobResult.RestoreJobId);\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlexRestoreJobs.\n","properties":{"name":{"type":"string","description":"Human-readable label that identifies the flex cluster whose snapshot you want to restore.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getFlexRestoreJobs.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"Human-readable label that identifies the flex cluster whose snapshot you want to restore.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getFlexRestoreJobsResult:getFlexRestoreJobsResult"},"type":"array"}},"required":["name","projectId","results","id"],"type":"object"}},"mongodbatlas:index/getFlexSnapshot:getFlexSnapshot":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFlexSnapshot`\" pulumi-lang-dotnet=\"`mongodbatlas.getFlexSnapshot`\" pulumi-lang-go=\"`getFlexSnapshot`\" pulumi-lang-python=\"`get_flex_snapshot`\" pulumi-lang-yaml=\"`mongodbatlas.getFlexSnapshot`\" pulumi-lang-java=\"`mongodbatlas.getFlexSnapshot`\"\u003e`mongodbatlas.getFlexSnapshot`\u003c/span\u003e describes a flex snapshot.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst snapshot = mongodbatlas.getFlexSnapshot({\n    projectId: projectId,\n    name: example_cluster.name,\n    snapshotId: snapshotId,\n});\nconst snapshots = mongodbatlas.getFlexSnapshots({\n    projectId: projectId,\n    name: example_cluster.name,\n});\nexport const mongodbatlasFlexSnapshot = snapshot.then(snapshot =\u003e snapshot.name);\nexport const mongodbatlasFlexSnapshots = snapshots.then(snapshots =\u003e .map(snapshot =\u003e (snapshot.snapshotId)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nsnapshot = mongodbatlas.get_flex_snapshot(project_id=project_id,\n    name=example_cluster[\"name\"],\n    snapshot_id=snapshot_id)\nsnapshots = mongodbatlas.get_flex_snapshots(project_id=project_id,\n    name=example_cluster[\"name\"])\npulumi.export(\"mongodbatlasFlexSnapshot\", snapshot.name)\npulumi.export(\"mongodbatlasFlexSnapshots\", [snapshot.snapshot_id for snapshot in snapshots.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var snapshot = Mongodbatlas.GetFlexSnapshot.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_cluster.Name,\n        SnapshotId = snapshotId,\n    });\n\n    var snapshots = Mongodbatlas.GetFlexSnapshots.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_cluster.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbatlasFlexSnapshot\"] = snapshot.Apply(getFlexSnapshotResult =\u003e getFlexSnapshotResult.Name),\n        [\"mongodbatlasFlexSnapshots\"] = .Select(snapshot =\u003e \n        {\n            return snapshot.Apply(getFlexSnapshotResult =\u003e getFlexSnapshotResult.SnapshotId);\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlexSnapshot.\n","properties":{"name":{"type":"string","description":"Human-readable label that identifies the flex cluster whose snapshot you want to restore.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"snapshotId":{"type":"string"}},"type":"object","required":["name","projectId","snapshotId"]},"outputs":{"description":"A collection of values returned by getFlexSnapshot.\n","properties":{"expiration":{"type":"string"},"finishTime":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"mongoDbVersion":{"type":"string"},"name":{"description":"Human-readable label that identifies the flex cluster whose snapshot you want to restore.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"scheduledTime":{"type":"string"},"snapshotId":{"type":"string"},"startTime":{"type":"string"},"status":{"type":"string"}},"required":["expiration","finishTime","mongoDbVersion","name","projectId","scheduledTime","snapshotId","startTime","status","id"],"type":"object"}},"mongodbatlas:index/getFlexSnapshots:getFlexSnapshots":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getFlexSnapshots`\" pulumi-lang-dotnet=\"`mongodbatlas.getFlexSnapshots`\" pulumi-lang-go=\"`getFlexSnapshots`\" pulumi-lang-python=\"`get_flex_snapshots`\" pulumi-lang-yaml=\"`mongodbatlas.getFlexSnapshots`\" pulumi-lang-java=\"`mongodbatlas.getFlexSnapshots`\"\u003e`mongodbatlas.getFlexSnapshots`\u003c/span\u003e returns all snapshots of a flex cluster.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst snapshot = mongodbatlas.getFlexSnapshot({\n    projectId: projectId,\n    name: example_cluster.name,\n    snapshotId: snapshotId,\n});\nconst snapshots = mongodbatlas.getFlexSnapshots({\n    projectId: projectId,\n    name: example_cluster.name,\n});\nexport const mongodbatlasFlexSnapshot = snapshot.then(snapshot =\u003e snapshot.name);\nexport const mongodbatlasFlexSnapshots = snapshots.then(snapshots =\u003e .map(snapshot =\u003e (snapshot.snapshotId)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nsnapshot = mongodbatlas.get_flex_snapshot(project_id=project_id,\n    name=example_cluster[\"name\"],\n    snapshot_id=snapshot_id)\nsnapshots = mongodbatlas.get_flex_snapshots(project_id=project_id,\n    name=example_cluster[\"name\"])\npulumi.export(\"mongodbatlasFlexSnapshot\", snapshot.name)\npulumi.export(\"mongodbatlasFlexSnapshots\", [snapshot.snapshot_id for snapshot in snapshots.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var snapshot = Mongodbatlas.GetFlexSnapshot.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_cluster.Name,\n        SnapshotId = snapshotId,\n    });\n\n    var snapshots = Mongodbatlas.GetFlexSnapshots.Invoke(new()\n    {\n        ProjectId = projectId,\n        Name = example_cluster.Name,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbatlasFlexSnapshot\"] = snapshot.Apply(getFlexSnapshotResult =\u003e getFlexSnapshotResult.Name),\n        [\"mongodbatlasFlexSnapshots\"] = .Select(snapshot =\u003e \n        {\n            return snapshot.Apply(getFlexSnapshotResult =\u003e getFlexSnapshotResult.SnapshotId);\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getFlexSnapshots.\n","properties":{"name":{"type":"string","description":"Human-readable label that identifies the flex cluster whose snapshot you want to restore.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getFlexSnapshots.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"Human-readable label that identifies the flex cluster whose snapshot you want to restore.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getFlexSnapshotsResult:getFlexSnapshotsResult"},"type":"array"}},"required":["name","projectId","results","id"],"type":"object"}},"mongodbatlas:index/getGlobalClusterConfig:getGlobalClusterConfig":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.GlobalClusterConfig`\" pulumi-lang-dotnet=\"`mongodbatlas.GlobalClusterConfig`\" pulumi-lang-go=\"`GlobalClusterConfig`\" pulumi-lang-python=\"`GlobalClusterConfig`\" pulumi-lang-yaml=\"`mongodbatlas.GlobalClusterConfig`\" pulumi-lang-java=\"`mongodbatlas.GlobalClusterConfig`\"\u003e`mongodbatlas.GlobalClusterConfig`\u003c/span\u003e describes all managed namespaces and custom zone mappings associated with the specified Global Cluster.\n\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.AdvancedCluster(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    name: \"\u003cCLUSTER-NAME\u003e\",\n    clusterType: \"GEOSHARDED\",\n    backupEnabled: true,\n    replicationSpecs: [\n        {\n            zoneName: \"Zone 1\",\n            regionConfigs: [{\n                electableSpecs: {\n                    instanceSize: \"M30\",\n                    nodeCount: 3,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"EU_CENTRAL_1\",\n            }],\n        },\n        {\n            zoneName: \"Zone 1\",\n            regionConfigs: [{\n                electableSpecs: {\n                    instanceSize: \"M30\",\n                    nodeCount: 3,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"EU_CENTRAL_1\",\n            }],\n        },\n        {\n            zoneName: \"Zone 2\",\n            regionConfigs: [{\n                electableSpecs: {\n                    instanceSize: \"M30\",\n                    nodeCount: 3,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"US_EAST_2\",\n            }],\n        },\n        {\n            zoneName: \"Zone 2\",\n            regionConfigs: [{\n                electableSpecs: {\n                    instanceSize: \"M30\",\n                    nodeCount: 3,\n                },\n                providerName: \"AWS\",\n                priority: 7,\n                regionName: \"US_EAST_2\",\n            }],\n        },\n    ],\n});\nconst configGlobalClusterConfig = new mongodbatlas.GlobalClusterConfig(\"config\", {\n    projectId: test.projectId,\n    clusterName: test.name,\n    managedNamespaces: [{\n        db: \"mydata\",\n        collection: \"publishers\",\n        customShardKey: \"city\",\n    }],\n    customZoneMappings: [{\n        location: \"CA\",\n        zone: \"Zone 1\",\n    }],\n});\nconst config = mongodbatlas.getGlobalClusterConfigOutput({\n    projectId: configGlobalClusterConfig.projectId,\n    clusterName: configGlobalClusterConfig.clusterName,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.AdvancedCluster(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    name=\"\u003cCLUSTER-NAME\u003e\",\n    cluster_type=\"GEOSHARDED\",\n    backup_enabled=True,\n    replication_specs=[\n        {\n            \"zone_name\": \"Zone 1\",\n            \"region_configs\": [{\n                \"electable_specs\": {\n                    \"instance_size\": \"M30\",\n                    \"node_count\": 3,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"EU_CENTRAL_1\",\n            }],\n        },\n        {\n            \"zone_name\": \"Zone 1\",\n            \"region_configs\": [{\n                \"electable_specs\": {\n                    \"instance_size\": \"M30\",\n                    \"node_count\": 3,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"EU_CENTRAL_1\",\n            }],\n        },\n        {\n            \"zone_name\": \"Zone 2\",\n            \"region_configs\": [{\n                \"electable_specs\": {\n                    \"instance_size\": \"M30\",\n                    \"node_count\": 3,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"US_EAST_2\",\n            }],\n        },\n        {\n            \"zone_name\": \"Zone 2\",\n            \"region_configs\": [{\n                \"electable_specs\": {\n                    \"instance_size\": \"M30\",\n                    \"node_count\": 3,\n                },\n                \"provider_name\": \"AWS\",\n                \"priority\": 7,\n                \"region_name\": \"US_EAST_2\",\n            }],\n        },\n    ])\nconfig_global_cluster_config = mongodbatlas.GlobalClusterConfig(\"config\",\n    project_id=test.project_id,\n    cluster_name=test.name,\n    managed_namespaces=[{\n        \"db\": \"mydata\",\n        \"collection\": \"publishers\",\n        \"custom_shard_key\": \"city\",\n    }],\n    custom_zone_mappings=[{\n        \"location\": \"CA\",\n        \"zone\": \"Zone 1\",\n    }])\nconfig = mongodbatlas.get_global_cluster_config_output(project_id=config_global_cluster_config.project_id,\n    cluster_name=config_global_cluster_config.cluster_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.AdvancedCluster(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        Name = \"\u003cCLUSTER-NAME\u003e\",\n        ClusterType = \"GEOSHARDED\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                ZoneName = \"Zone 1\",\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"EU_CENTRAL_1\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                ZoneName = \"Zone 1\",\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"EU_CENTRAL_1\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                ZoneName = \"Zone 2\",\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_2\",\n                    },\n                },\n            },\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                ZoneName = \"Zone 2\",\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M30\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_2\",\n                    },\n                },\n            },\n        },\n    });\n\n    var configGlobalClusterConfig = new Mongodbatlas.GlobalClusterConfig(\"config\", new()\n    {\n        ProjectId = test.ProjectId,\n        ClusterName = test.Name,\n        ManagedNamespaces = new[]\n        {\n            new Mongodbatlas.Inputs.GlobalClusterConfigManagedNamespaceArgs\n            {\n                Db = \"mydata\",\n                Collection = \"publishers\",\n                CustomShardKey = \"city\",\n            },\n        },\n        CustomZoneMappings = new[]\n        {\n            new Mongodbatlas.Inputs.GlobalClusterConfigCustomZoneMappingArgs\n            {\n                Location = \"CA\",\n                Zone = \"Zone 1\",\n            },\n        },\n    });\n\n    var config = Mongodbatlas.GetGlobalClusterConfig.Invoke(new()\n    {\n        ProjectId = configGlobalClusterConfig.ProjectId,\n        ClusterName = configGlobalClusterConfig.ClusterName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.NewAdvancedCluster(ctx, \"test\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tName:          pulumi.String(\"\u003cCLUSTER-NAME\u003e\"),\n\t\t\tClusterType:   pulumi.String(\"GEOSHARDED\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName: pulumi.String(\"Zone 1\"),\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_CENTRAL_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName: pulumi.String(\"Zone 1\"),\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"EU_CENTRAL_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName: pulumi.String(\"Zone 2\"),\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tZoneName: pulumi.String(\"Zone 2\"),\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M30\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tconfigGlobalClusterConfig, err := mongodbatlas.NewGlobalClusterConfig(ctx, \"config\", \u0026mongodbatlas.GlobalClusterConfigArgs{\n\t\t\tProjectId:   test.ProjectId,\n\t\t\tClusterName: test.Name,\n\t\t\tManagedNamespaces: mongodbatlas.GlobalClusterConfigManagedNamespaceArray{\n\t\t\t\t\u0026mongodbatlas.GlobalClusterConfigManagedNamespaceArgs{\n\t\t\t\t\tDb:             pulumi.String(\"mydata\"),\n\t\t\t\t\tCollection:     pulumi.String(\"publishers\"),\n\t\t\t\t\tCustomShardKey: pulumi.String(\"city\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCustomZoneMappings: mongodbatlas.GlobalClusterConfigCustomZoneMappingArray{\n\t\t\t\t\u0026mongodbatlas.GlobalClusterConfigCustomZoneMappingArgs{\n\t\t\t\t\tLocation: pulumi.String(\"CA\"),\n\t\t\t\t\tZone:     pulumi.String(\"Zone 1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupGlobalClusterConfigOutput(ctx, mongodbatlas.GetGlobalClusterConfigOutputArgs{\n\t\t\tProjectId:   configGlobalClusterConfig.ProjectId,\n\t\t\tClusterName: configGlobalClusterConfig.ClusterName,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.GlobalClusterConfig;\nimport com.pulumi.mongodbatlas.GlobalClusterConfigArgs;\nimport com.pulumi.mongodbatlas.inputs.GlobalClusterConfigManagedNamespaceArgs;\nimport com.pulumi.mongodbatlas.inputs.GlobalClusterConfigCustomZoneMappingArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetGlobalClusterConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new AdvancedCluster(\"test\", AdvancedClusterArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .name(\"\u003cCLUSTER-NAME\u003e\")\n            .clusterType(\"GEOSHARDED\")\n            .backupEnabled(true)\n            .replicationSpecs(            \n                AdvancedClusterReplicationSpecArgs.builder()\n                    .zoneName(\"Zone 1\")\n                    .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M30\")\n                            .nodeCount(3)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"EU_CENTRAL_1\")\n                        .build())\n                    .build(),\n                AdvancedClusterReplicationSpecArgs.builder()\n                    .zoneName(\"Zone 1\")\n                    .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M30\")\n                            .nodeCount(3)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"EU_CENTRAL_1\")\n                        .build())\n                    .build(),\n                AdvancedClusterReplicationSpecArgs.builder()\n                    .zoneName(\"Zone 2\")\n                    .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M30\")\n                            .nodeCount(3)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"US_EAST_2\")\n                        .build())\n                    .build(),\n                AdvancedClusterReplicationSpecArgs.builder()\n                    .zoneName(\"Zone 2\")\n                    .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                        .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                            .instanceSize(\"M30\")\n                            .nodeCount(3)\n                            .build())\n                        .providerName(\"AWS\")\n                        .priority(7)\n                        .regionName(\"US_EAST_2\")\n                        .build())\n                    .build())\n            .build());\n\n        var configGlobalClusterConfig = new GlobalClusterConfig(\"configGlobalClusterConfig\", GlobalClusterConfigArgs.builder()\n            .projectId(test.projectId())\n            .clusterName(test.name())\n            .managedNamespaces(GlobalClusterConfigManagedNamespaceArgs.builder()\n                .db(\"mydata\")\n                .collection(\"publishers\")\n                .customShardKey(\"city\")\n                .build())\n            .customZoneMappings(GlobalClusterConfigCustomZoneMappingArgs.builder()\n                .location(\"CA\")\n                .zone(\"Zone 1\")\n                .build())\n            .build());\n\n        final var config = MongodbatlasFunctions.getGlobalClusterConfig(GetGlobalClusterConfigArgs.builder()\n            .projectId(configGlobalClusterConfig.projectId())\n            .clusterName(configGlobalClusterConfig.clusterName())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:AdvancedCluster\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      name: \u003cCLUSTER-NAME\u003e\n      clusterType: GEOSHARDED\n      backupEnabled: true\n      replicationSpecs:\n        - zoneName: Zone 1\n          regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: EU_CENTRAL_1\n        - zoneName: Zone 1\n          regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: EU_CENTRAL_1\n        - zoneName: Zone 2\n          regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_2\n        - zoneName: Zone 2\n          regionConfigs:\n            - electableSpecs:\n                instanceSize: M30\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_2\n  configGlobalClusterConfig:\n    type: mongodbatlas:GlobalClusterConfig\n    name: config\n    properties:\n      projectId: ${test.projectId}\n      clusterName: ${test.name}\n      managedNamespaces:\n        - db: mydata\n          collection: publishers\n          customShardKey: city\n      customZoneMappings:\n        - location: CA\n          zone: Zone 1\nvariables:\n  config:\n    fn::invoke:\n      function: mongodbatlas:getGlobalClusterConfig\n      arguments:\n        projectId: ${configGlobalClusterConfig.projectId}\n        clusterName: ${configGlobalClusterConfig.clusterName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGlobalClusterConfig.\n","properties":{"clusterName":{"type":"string","description":"The name of the Global Cluster.\n"},"managedNamespaces":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getGlobalClusterConfigManagedNamespace:getGlobalClusterConfigManagedNamespace"},"description":"Add a managed namespaces to a Global Cluster. For more information about managed namespaces, see [Global Clusters](https://docs.atlas.mongodb.com/reference/api/global-clusters/). See Managed Namespace below for more details.\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getGlobalClusterConfig.\n","properties":{"clusterName":{"type":"string"},"customZoneMappingZoneId":{"additionalProperties":{"type":"string"},"description":"A map of all custom zone mappings defined for the Global Cluster to `replication_specs.*.zone_id`. Atlas automatically maps each location code to the closest geographical zone. Custom zone mappings allow administrators to override these automatic mappings. If your Global Cluster does not have any custom zone mappings, this document is empty.\n","type":"object"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"managedNamespaces":{"description":"Add a managed namespaces to a Global Cluster. For more information about managed namespaces, see [Global Clusters](https://docs.atlas.mongodb.com/reference/api/global-clusters/). See Managed Namespace below for more details.\n","items":{"$ref":"#/types/mongodbatlas:index/getGlobalClusterConfigManagedNamespace:getGlobalClusterConfigManagedNamespace"},"type":"array"},"projectId":{"type":"string"}},"required":["clusterName","customZoneMappingZoneId","managedNamespaces","projectId","id"],"type":"object"}},"mongodbatlas:index/getLdapConfiguration:getLdapConfiguration":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.LdapConfiguration`\" pulumi-lang-dotnet=\"`mongodbatlas.LdapConfiguration`\" pulumi-lang-go=\"`LdapConfiguration`\" pulumi-lang-python=\"`LdapConfiguration`\" pulumi-lang-yaml=\"`mongodbatlas.LdapConfiguration`\" pulumi-lang-java=\"`mongodbatlas.LdapConfiguration`\"\u003e`mongodbatlas.LdapConfiguration`\u003c/span\u003e describes a LDAP Configuration.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testProject = new mongodbatlas.Project(\"test\", {\n    name: \"NAME OF THE PROJECT\",\n    orgId: \"ORG ID\",\n});\nconst testLdapConfiguration = new mongodbatlas.LdapConfiguration(\"test\", {\n    projectId: testProject.id,\n    authenticationEnabled: true,\n    hostname: \"HOSTNAME\",\n    port: 636,\n    bindUsername: \"USERNAME\",\n    bindPassword: \"PASSWORD\",\n});\nconst test = mongodbatlas.getLdapConfigurationOutput({\n    projectId: testLdapConfiguration.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_project = mongodbatlas.Project(\"test\",\n    name=\"NAME OF THE PROJECT\",\n    org_id=\"ORG ID\")\ntest_ldap_configuration = mongodbatlas.LdapConfiguration(\"test\",\n    project_id=test_project.id,\n    authentication_enabled=True,\n    hostname=\"HOSTNAME\",\n    port=636,\n    bind_username=\"USERNAME\",\n    bind_password=\"PASSWORD\")\ntest = mongodbatlas.get_ldap_configuration_output(project_id=test_ldap_configuration.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testProject = new Mongodbatlas.Project(\"test\", new()\n    {\n        Name = \"NAME OF THE PROJECT\",\n        OrgId = \"ORG ID\",\n    });\n\n    var testLdapConfiguration = new Mongodbatlas.LdapConfiguration(\"test\", new()\n    {\n        ProjectId = testProject.Id,\n        AuthenticationEnabled = true,\n        Hostname = \"HOSTNAME\",\n        Port = 636,\n        BindUsername = \"USERNAME\",\n        BindPassword = \"PASSWORD\",\n    });\n\n    var test = Mongodbatlas.GetLdapConfiguration.Invoke(new()\n    {\n        ProjectId = testLdapConfiguration.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestProject, err := mongodbatlas.NewProject(ctx, \"test\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.String(\"NAME OF THE PROJECT\"),\n\t\t\tOrgId: pulumi.String(\"ORG ID\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestLdapConfiguration, err := mongodbatlas.NewLdapConfiguration(ctx, \"test\", \u0026mongodbatlas.LdapConfigurationArgs{\n\t\t\tProjectId:             testProject.ID(),\n\t\t\tAuthenticationEnabled: pulumi.Bool(true),\n\t\t\tHostname:              pulumi.String(\"HOSTNAME\"),\n\t\t\tPort:                  pulumi.Int(636),\n\t\t\tBindUsername:          pulumi.String(\"USERNAME\"),\n\t\t\tBindPassword:          pulumi.String(\"PASSWORD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupLdapConfigurationOutput(ctx, mongodbatlas.GetLdapConfigurationOutputArgs{\n\t\t\tProjectId: testLdapConfiguration.ID(),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.LdapConfiguration;\nimport com.pulumi.mongodbatlas.LdapConfigurationArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetLdapConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testProject = new Project(\"testProject\", ProjectArgs.builder()\n            .name(\"NAME OF THE PROJECT\")\n            .orgId(\"ORG ID\")\n            .build());\n\n        var testLdapConfiguration = new LdapConfiguration(\"testLdapConfiguration\", LdapConfigurationArgs.builder()\n            .projectId(testProject.id())\n            .authenticationEnabled(true)\n            .hostname(\"HOSTNAME\")\n            .port(636)\n            .bindUsername(\"USERNAME\")\n            .bindPassword(\"PASSWORD\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getLdapConfiguration(GetLdapConfigurationArgs.builder()\n            .projectId(testLdapConfiguration.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testProject:\n    type: mongodbatlas:Project\n    name: test\n    properties:\n      name: NAME OF THE PROJECT\n      orgId: ORG ID\n  testLdapConfiguration:\n    type: mongodbatlas:LdapConfiguration\n    name: test\n    properties:\n      projectId: ${testProject.id}\n      authenticationEnabled: true\n      hostname: HOSTNAME\n      port: 636\n      bindUsername: USERNAME\n      bindPassword: PASSWORD\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getLdapConfiguration\n      arguments:\n        projectId: ${testLdapConfiguration.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLdapConfiguration.\n","properties":{"projectId":{"type":"string","description":"Identifier for the Atlas project associated with the LDAP over TLS/SSL configuration.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getLdapConfiguration.\n","properties":{"authenticationEnabled":{"description":"Specifies whether user authentication with LDAP is enabled.\n","type":"boolean"},"authorizationEnabled":{"description":"Specifies whether user authorization with LDAP is enabled.\n","type":"boolean"},"authzQueryTemplate":{"description":"An LDAP query template that Atlas executes to obtain the LDAP groups to which the authenticated user belongs.\n","type":"string"},"bindPassword":{"description":"The password used to authenticate the \u003cspan pulumi-lang-nodejs=\"`bindUsername`\" pulumi-lang-dotnet=\"`BindUsername`\" pulumi-lang-go=\"`bindUsername`\" pulumi-lang-python=\"`bind_username`\" pulumi-lang-yaml=\"`bindUsername`\" pulumi-lang-java=\"`bindUsername`\"\u003e`bind_username`\u003c/span\u003e.\n","type":"string"},"bindUsername":{"description":"The user DN that Atlas uses to connect to the LDAP server.\n","type":"string"},"caCertificate":{"description":"CA certificate used to verify the identify of the LDAP server.\n","type":"string"},"hostname":{"description":"(Required) The hostname or IP address of the LDAP server.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"port":{"description":"The port to which the LDAP server listens for client connections.\n","type":"integer"},"projectId":{"type":"string"},"userToDnMappings":{"description":"Maps an LDAP username for authentication to an LDAP Distinguished Name (DN).\n","items":{"$ref":"#/types/mongodbatlas:index/getLdapConfigurationUserToDnMapping:getLdapConfigurationUserToDnMapping"},"type":"array"}},"required":["authenticationEnabled","authorizationEnabled","authzQueryTemplate","bindPassword","bindUsername","caCertificate","hostname","port","projectId","userToDnMappings","id"],"type":"object"}},"mongodbatlas:index/getLdapVerify:getLdapVerify":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.LdapVerify`\" pulumi-lang-dotnet=\"`mongodbatlas.LdapVerify`\" pulumi-lang-go=\"`LdapVerify`\" pulumi-lang-python=\"`LdapVerify`\" pulumi-lang-yaml=\"`mongodbatlas.LdapVerify`\" pulumi-lang-java=\"`mongodbatlas.LdapVerify`\"\u003e`mongodbatlas.LdapVerify`\u003c/span\u003e describes a LDAP Verify.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testProject = new mongodbatlas.Project(\"test\", {\n    name: \"NAME OF THE PROJECT\",\n    orgId: \"ORG ID\",\n});\nconst testAdvancedCluster = new mongodbatlas.AdvancedCluster(\"test\", {\n    projectId: testProject.id,\n    name: \"ClusterName\",\n    clusterType: \"REPLICASET\",\n    backupEnabled: true,\n    replicationSpecs: [{\n        regionConfigs: [{\n            priority: 7,\n            providerName: \"AWS\",\n            regionName: \"US_EAST_1\",\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n        }],\n    }],\n});\nconst testLdapVerify = new mongodbatlas.LdapVerify(\"test\", {\n    projectId: testProject.id,\n    hostname: \"HOSTNAME\",\n    port: 636,\n    bindUsername: \"USERNAME\",\n    bindPassword: \"PASSWORD\",\n}, {\n    dependsOn: [testAdvancedCluster],\n});\nconst test = mongodbatlas.getLdapVerifyOutput({\n    projectId: testLdapVerify.projectId,\n    requestId: testLdapVerify.requestId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_project = mongodbatlas.Project(\"test\",\n    name=\"NAME OF THE PROJECT\",\n    org_id=\"ORG ID\")\ntest_advanced_cluster = mongodbatlas.AdvancedCluster(\"test\",\n    project_id=test_project.id,\n    name=\"ClusterName\",\n    cluster_type=\"REPLICASET\",\n    backup_enabled=True,\n    replication_specs=[{\n        \"region_configs\": [{\n            \"priority\": 7,\n            \"provider_name\": \"AWS\",\n            \"region_name\": \"US_EAST_1\",\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n        }],\n    }])\ntest_ldap_verify = mongodbatlas.LdapVerify(\"test\",\n    project_id=test_project.id,\n    hostname=\"HOSTNAME\",\n    port=636,\n    bind_username=\"USERNAME\",\n    bind_password=\"PASSWORD\",\n    opts = pulumi.ResourceOptions(depends_on=[test_advanced_cluster]))\ntest = mongodbatlas.get_ldap_verify_output(project_id=test_ldap_verify.project_id,\n    request_id=test_ldap_verify.request_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testProject = new Mongodbatlas.Project(\"test\", new()\n    {\n        Name = \"NAME OF THE PROJECT\",\n        OrgId = \"ORG ID\",\n    });\n\n    var testAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"test\", new()\n    {\n        ProjectId = testProject.Id,\n        Name = \"ClusterName\",\n        ClusterType = \"REPLICASET\",\n        BackupEnabled = true,\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        Priority = 7,\n                        ProviderName = \"AWS\",\n                        RegionName = \"US_EAST_1\",\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n    var testLdapVerify = new Mongodbatlas.LdapVerify(\"test\", new()\n    {\n        ProjectId = testProject.Id,\n        Hostname = \"HOSTNAME\",\n        Port = 636,\n        BindUsername = \"USERNAME\",\n        BindPassword = \"PASSWORD\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            testAdvancedCluster,\n        },\n    });\n\n    var test = Mongodbatlas.GetLdapVerify.Invoke(new()\n    {\n        ProjectId = testLdapVerify.ProjectId,\n        RequestId = testLdapVerify.RequestId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestProject, err := mongodbatlas.NewProject(ctx, \"test\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.String(\"NAME OF THE PROJECT\"),\n\t\t\tOrgId: pulumi.String(\"ORG ID\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"test\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:     testProject.ID(),\n\t\t\tName:          pulumi.String(\"ClusterName\"),\n\t\t\tClusterType:   pulumi.String(\"REPLICASET\"),\n\t\t\tBackupEnabled: pulumi.Bool(true),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestLdapVerify, err := mongodbatlas.NewLdapVerify(ctx, \"test\", \u0026mongodbatlas.LdapVerifyArgs{\n\t\t\tProjectId:    testProject.ID(),\n\t\t\tHostname:     pulumi.String(\"HOSTNAME\"),\n\t\t\tPort:         pulumi.Int(636),\n\t\t\tBindUsername: pulumi.String(\"USERNAME\"),\n\t\t\tBindPassword: pulumi.String(\"PASSWORD\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestAdvancedCluster,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupLdapVerifyOutput(ctx, mongodbatlas.GetLdapVerifyOutputArgs{\n\t\t\tProjectId: testLdapVerify.ProjectId,\n\t\t\tRequestId: testLdapVerify.RequestId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.LdapVerify;\nimport com.pulumi.mongodbatlas.LdapVerifyArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetLdapVerifyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testProject = new Project(\"testProject\", ProjectArgs.builder()\n            .name(\"NAME OF THE PROJECT\")\n            .orgId(\"ORG ID\")\n            .build());\n\n        var testAdvancedCluster = new AdvancedCluster(\"testAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(testProject.id())\n            .name(\"ClusterName\")\n            .clusterType(\"REPLICASET\")\n            .backupEnabled(true)\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .priority(7)\n                    .providerName(\"AWS\")\n                    .regionName(\"US_EAST_1\")\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .build())\n                .build())\n            .build());\n\n        var testLdapVerify = new LdapVerify(\"testLdapVerify\", LdapVerifyArgs.builder()\n            .projectId(testProject.id())\n            .hostname(\"HOSTNAME\")\n            .port(636)\n            .bindUsername(\"USERNAME\")\n            .bindPassword(\"PASSWORD\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(testAdvancedCluster)\n                .build());\n\n        final var test = MongodbatlasFunctions.getLdapVerify(GetLdapVerifyArgs.builder()\n            .projectId(testLdapVerify.projectId())\n            .requestId(testLdapVerify.requestId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testProject:\n    type: mongodbatlas:Project\n    name: test\n    properties:\n      name: NAME OF THE PROJECT\n      orgId: ORG ID\n  testAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: test\n    properties:\n      projectId: ${testProject.id}\n      name: ClusterName\n      clusterType: REPLICASET\n      backupEnabled: true # enable cloud provider snapshots\n      replicationSpecs:\n        - regionConfigs:\n            - priority: 7\n              providerName: AWS\n              regionName: US_EAST_1\n              electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n  testLdapVerify:\n    type: mongodbatlas:LdapVerify\n    name: test\n    properties:\n      projectId: ${testProject.id}\n      hostname: HOSTNAME\n      port: 636\n      bindUsername: USERNAME\n      bindPassword: PASSWORD\n    options:\n      dependsOn:\n        - ${testAdvancedCluster}\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getLdapVerify\n      arguments:\n        projectId: ${testLdapVerify.projectId}\n        requestId: ${testLdapVerify.requestId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLdapVerify.\n","properties":{"projectId":{"type":"string","description":"Unique identifier for the Atlas project associated with the verification request.\n"},"requestId":{"type":"string","description":"Unique identifier of a request to verify an LDAP configuration.\n"}},"type":"object","required":["projectId","requestId"]},"outputs":{"description":"A collection of values returned by getLdapVerify.\n","properties":{"bindUsername":{"description":"The user DN that Atlas uses to connect to the LDAP server.\n","type":"string"},"hostname":{"description":"(Required) The hostname or IP address of the LDAP server.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"links":{"description":"One or more links to sub-resources. The relations in the URLs are explained in the Web Linking Specification.\n","items":{"$ref":"#/types/mongodbatlas:index/getLdapVerifyLink:getLdapVerifyLink"},"type":"array"},"port":{"description":"LDAP ConfigurationThe port to which the LDAP server listens for client connections.\n","type":"integer"},"projectId":{"type":"string"},"requestId":{"description":"The unique identifier for the request to verify the LDAP over TLS/SSL configuration.\n","type":"string"},"status":{"description":"The current status of the LDAP over TLS/SSL configuration.\n","type":"string"},"validations":{"description":"Array of validation messages related to the verification of the provided LDAP over TLS/SSL configuration details.\n","items":{"$ref":"#/types/mongodbatlas:index/getLdapVerifyValidation:getLdapVerifyValidation"},"type":"array"}},"required":["bindUsername","hostname","links","port","projectId","requestId","status","validations","id"],"type":"object"}},"mongodbatlas:index/getLogIntegration:getLogIntegration":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.LogIntegration`\" pulumi-lang-dotnet=\"`mongodbatlas.LogIntegration`\" pulumi-lang-go=\"`LogIntegration`\" pulumi-lang-python=\"`LogIntegration`\" pulumi-lang-yaml=\"`mongodbatlas.LogIntegration`\" pulumi-lang-java=\"`mongodbatlas.LogIntegration`\"\u003e`mongodbatlas.LogIntegration`\u003c/span\u003e describes the configuration of a log integration at the project level. Supported integration types include AWS S3, Google Cloud Storage, Azure Blob Storage, Datadog, Splunk, and OpenTelemetry.\n\nTo use this data source, the requesting Service Account or API Key must have the Organization Owner or Project Owner role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = mongodbatlas.getLogIntegration({\n    projectId: exampleMongodbatlasLogIntegration.projectId,\n    integrationId: exampleMongodbatlasLogIntegration.integrationId,\n});\nexport const logIntegrationType = example.then(example =\u003e example.type);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.get_log_integration(project_id=example_mongodbatlas_log_integration[\"projectId\"],\n    integration_id=example_mongodbatlas_log_integration[\"integrationId\"])\npulumi.export(\"logIntegrationType\", example.type)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mongodbatlas.GetLogIntegration.Invoke(new()\n    {\n        ProjectId = exampleMongodbatlasLogIntegration.ProjectId,\n        IntegrationId = exampleMongodbatlasLogIntegration.IntegrationId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"logIntegrationType\"] = example.Apply(getLogIntegrationResult =\u003e getLogIntegrationResult.Type),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.LookupLogIntegration(ctx, \u0026mongodbatlas.LookupLogIntegrationArgs{\n\t\t\tProjectId:     exampleMongodbatlasLogIntegration.ProjectId,\n\t\t\tIntegrationId: exampleMongodbatlasLogIntegration.IntegrationId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"logIntegrationType\", example.Type)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetLogIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MongodbatlasFunctions.getLogIntegration(GetLogIntegrationArgs.builder()\n            .projectId(exampleMongodbatlasLogIntegration.projectId())\n            .integrationId(exampleMongodbatlasLogIntegration.integrationId())\n            .build());\n\n        ctx.export(\"logIntegrationType\", example.type());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: mongodbatlas:getLogIntegration\n      arguments:\n        projectId: ${exampleMongodbatlasLogIntegration.projectId}\n        integrationId: ${exampleMongodbatlasLogIntegration.integrationId}\noutputs:\n  logIntegrationType: ${example.type}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Log Integration Examples\n","inputs":{"description":"A collection of arguments for invoking getLogIntegration.\n","properties":{"integrationId":{"type":"string","description":"Unique identifier of the log integration configuration.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["integrationId","projectId"]},"outputs":{"description":"A collection of values returned by getLogIntegration.\n","properties":{"apiKey":{"secret":true,"type":"string"},"bucketName":{"type":"string"},"hecToken":{"secret":true,"type":"string"},"hecUrl":{"type":"string"},"iamRoleId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"integrationId":{"description":"Unique identifier of the log integration configuration.\n","type":"string"},"kmsKey":{"type":"string"},"logTypes":{"description":"Array of log types exported by this integration.\n","items":{"type":"string"},"type":"array"},"otelEndpoint":{"type":"string"},"otelSuppliedHeaders":{"items":{"$ref":"#/types/mongodbatlas:index/getLogIntegrationOtelSuppliedHeader:getLogIntegrationOtelSuppliedHeader"},"secret":true,"type":"array"},"prefixPath":{"type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"region":{"type":"string"},"roleId":{"type":"string"},"storageAccountName":{"type":"string"},"storageContainerName":{"type":"string"},"type":{"description":"Human-readable label that identifies the service to which you want to integrate with Atlas. The value must match the log integration type. This value cannot be modified after the integration is created.\n","type":"string"}},"required":["apiKey","bucketName","hecToken","hecUrl","iamRoleId","integrationId","kmsKey","logTypes","otelEndpoint","otelSuppliedHeaders","prefixPath","projectId","region","roleId","storageAccountName","storageContainerName","type","id"],"type":"object"}},"mongodbatlas:index/getLogIntegrations:getLogIntegrations":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getLogIntegrations`\" pulumi-lang-dotnet=\"`mongodbatlas.getLogIntegrations`\" pulumi-lang-go=\"`getLogIntegrations`\" pulumi-lang-python=\"`get_log_integrations`\" pulumi-lang-yaml=\"`mongodbatlas.getLogIntegrations`\" pulumi-lang-java=\"`mongodbatlas.getLogIntegrations`\"\u003e`mongodbatlas.getLogIntegrations`\u003c/span\u003e describes all log integrations configured at the project level. Supported integration types include AWS S3, Google Cloud Storage, Azure Blob Storage, Datadog, Splunk, and OpenTelemetry.\n\nTo use this data source, the requesting Service Account or API Key must have the Organization Owner or Project Owner role.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = mongodbatlas.getLogIntegrations({\n    projectId: exampleMongodbatlasLogIntegration.projectId,\n});\nexport const logIntegrationIds = example.then(example =\u003e .map(r =\u003e (r.integrationId)));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.get_log_integrations(project_id=example_mongodbatlas_log_integration[\"projectId\"])\npulumi.export(\"logIntegrationIds\", [r.integration_id for r in example.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mongodbatlas.GetLogIntegrations.Invoke(new()\n    {\n        ProjectId = exampleMongodbatlasLogIntegration.ProjectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"logIntegrationIds\"] = .Select(r =\u003e \n        {\n            return r.IntegrationId;\n        }).ToList(),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- Log Integration Examples\n","inputs":{"description":"A collection of arguments for invoking getLogIntegrations.\n","properties":{"integrationType":{"type":"string","description":"Optional filter by integration type (e.g., `S3_LOG_EXPORT`).\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getLogIntegrations.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"integrationType":{"description":"Optional filter by integration type (e.g., `S3_LOG_EXPORT`).\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"results":{"description":"List of returned documents that MongoDB Cloud provides when completing this request.\n","items":{"$ref":"#/types/mongodbatlas:index/getLogIntegrationsResult:getLogIntegrationsResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getMaintenanceWindow:getMaintenanceWindow":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.MaintenanceWindow`\" pulumi-lang-dotnet=\"`mongodbatlas.MaintenanceWindow`\" pulumi-lang-go=\"`MaintenanceWindow`\" pulumi-lang-python=\"`MaintenanceWindow`\" pulumi-lang-yaml=\"`mongodbatlas.MaintenanceWindow`\" pulumi-lang-java=\"`mongodbatlas.MaintenanceWindow`\"\u003e`mongodbatlas.MaintenanceWindow`\u003c/span\u003e provides a Maintenance Window entry datasource. Gets information regarding the configured maintenance window for a MongoDB Atlas project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\u003e **NOTE:** Maintenance window times use the project's configured timezone. To change the timezone, update the Project Time Zone setting in the Atlas Project Settings.\n\n## Examples Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testMaintenanceWindow = new mongodbatlas.MaintenanceWindow(\"test\", {\n    projectId: \"\u003cyour-project-id\u003e\",\n    dayOfWeek: 3,\n    hourOfDay: 4,\n    autoDeferOnceEnabled: true,\n});\nconst test = mongodbatlas.getMaintenanceWindowOutput({\n    projectId: testMaintenanceWindow.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_maintenance_window = mongodbatlas.MaintenanceWindow(\"test\",\n    project_id=\"\u003cyour-project-id\u003e\",\n    day_of_week=3,\n    hour_of_day=4,\n    auto_defer_once_enabled=True)\ntest = mongodbatlas.get_maintenance_window_output(project_id=test_maintenance_window.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testMaintenanceWindow = new Mongodbatlas.MaintenanceWindow(\"test\", new()\n    {\n        ProjectId = \"\u003cyour-project-id\u003e\",\n        DayOfWeek = 3,\n        HourOfDay = 4,\n        AutoDeferOnceEnabled = true,\n    });\n\n    var test = Mongodbatlas.GetMaintenanceWindow.Invoke(new()\n    {\n        ProjectId = testMaintenanceWindow.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestMaintenanceWindow, err := mongodbatlas.NewMaintenanceWindow(ctx, \"test\", \u0026mongodbatlas.MaintenanceWindowArgs{\n\t\t\tProjectId:            pulumi.String(\"\u003cyour-project-id\u003e\"),\n\t\t\tDayOfWeek:            pulumi.Int(3),\n\t\t\tHourOfDay:            pulumi.Int(4),\n\t\t\tAutoDeferOnceEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupMaintenanceWindowOutput(ctx, mongodbatlas.GetMaintenanceWindowOutputArgs{\n\t\t\tProjectId: testMaintenanceWindow.ID(),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MaintenanceWindow;\nimport com.pulumi.mongodbatlas.MaintenanceWindowArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetMaintenanceWindowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testMaintenanceWindow = new MaintenanceWindow(\"testMaintenanceWindow\", MaintenanceWindowArgs.builder()\n            .projectId(\"\u003cyour-project-id\u003e\")\n            .dayOfWeek(3)\n            .hourOfDay(4)\n            .autoDeferOnceEnabled(true)\n            .build());\n\n        final var test = MongodbatlasFunctions.getMaintenanceWindow(GetMaintenanceWindowArgs.builder()\n            .projectId(testMaintenanceWindow.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testMaintenanceWindow:\n    type: mongodbatlas:MaintenanceWindow\n    name: test\n    properties:\n      projectId: \u003cyour-project-id\u003e\n      dayOfWeek: 3\n      hourOfDay: 4\n      autoDeferOnceEnabled: true\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getMaintenanceWindow\n      arguments:\n        projectId: ${testMaintenanceWindow.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testMaintenanceWindow = new mongodbatlas.MaintenanceWindow(\"test\", {\n    projectId: \"\u003cyour-project-id\u003e\",\n    startAsap: true,\n});\nconst test = mongodbatlas.getMaintenanceWindowOutput({\n    projectId: testMaintenanceWindow.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_maintenance_window = mongodbatlas.MaintenanceWindow(\"test\",\n    project_id=\"\u003cyour-project-id\u003e\",\n    start_asap=True)\ntest = mongodbatlas.get_maintenance_window_output(project_id=test_maintenance_window.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testMaintenanceWindow = new Mongodbatlas.MaintenanceWindow(\"test\", new()\n    {\n        ProjectId = \"\u003cyour-project-id\u003e\",\n        StartAsap = true,\n    });\n\n    var test = Mongodbatlas.GetMaintenanceWindow.Invoke(new()\n    {\n        ProjectId = testMaintenanceWindow.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestMaintenanceWindow, err := mongodbatlas.NewMaintenanceWindow(ctx, \"test\", \u0026mongodbatlas.MaintenanceWindowArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cyour-project-id\u003e\"),\n\t\t\tStartAsap: true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupMaintenanceWindowOutput(ctx, mongodbatlas.GetMaintenanceWindowOutputArgs{\n\t\t\tProjectId: testMaintenanceWindow.ID(),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MaintenanceWindow;\nimport com.pulumi.mongodbatlas.MaintenanceWindowArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetMaintenanceWindowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testMaintenanceWindow = new MaintenanceWindow(\"testMaintenanceWindow\", MaintenanceWindowArgs.builder()\n            .projectId(\"\u003cyour-project-id\u003e\")\n            .startAsap(true)\n            .build());\n\n        final var test = MongodbatlasFunctions.getMaintenanceWindow(GetMaintenanceWindowArgs.builder()\n            .projectId(testMaintenanceWindow.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testMaintenanceWindow:\n    type: mongodbatlas:MaintenanceWindow\n    name: test\n    properties:\n      projectId: \u003cyour-project-id\u003e\n      startAsap: true\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getMaintenanceWindow\n      arguments:\n        projectId: ${testMaintenanceWindow.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMaintenanceWindow.\n","properties":{"projectId":{"type":"string","description":"The unique identifier of the project for the Maintenance Window.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getMaintenanceWindow.\n","properties":{"autoDeferOnceEnabled":{"description":"When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, enables automatic deferral of all scheduled maintenance for the given project by one week.\n","type":"boolean"},"dayOfWeek":{"description":"Day of the week when you would like the maintenance window to start as a 1-based integer: Su=1, M=2, T=3, W=4, T=5, F=6, Sa=7.\n","type":"integer"},"hourOfDay":{"description":"Hour of the day when you would like the maintenance window to start. This parameter uses the 24-hour clock, where midnight is 0, noon is 12. Uses the project's configured timezone.\n","type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"numberOfDeferrals":{"description":"Number of times the current maintenance event for this project has been deferred, there can be a maximum of 2 deferrals.\n","type":"integer"},"projectId":{"type":"string"},"protectedHours":{"description":"(Optional) Defines the time period during which there will be no standard updates to the clusters. See Protected Hours.\n","items":{"$ref":"#/types/mongodbatlas:index/getMaintenanceWindowProtectedHour:getMaintenanceWindowProtectedHour"},"type":"array"},"startAsap":{"description":"Flag indicating whether project maintenance has been directed to start immediately. If requested, this field returns true from the time the request was made until the time the maintenance event completes.\n","type":"boolean"},"timeZoneId":{"description":"Identifier for the current time zone of the maintenance window. This can only be updated via the Project Settings UI.\n","type":"string"}},"required":["autoDeferOnceEnabled","dayOfWeek","hourOfDay","numberOfDeferrals","projectId","protectedHours","startAsap","timeZoneId","id"],"type":"object"}},"mongodbatlas:index/getMongodbEmployeeAccessGrant:getMongodbEmployeeAccessGrant":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.MongodbEmployeeAccessGrant`\" pulumi-lang-dotnet=\"`mongodbatlas.MongodbEmployeeAccessGrant`\" pulumi-lang-go=\"`MongodbEmployeeAccessGrant`\" pulumi-lang-python=\"`MongodbEmployeeAccessGrant`\" pulumi-lang-yaml=\"`mongodbatlas.MongodbEmployeeAccessGrant`\" pulumi-lang-java=\"`mongodbatlas.MongodbEmployeeAccessGrant`\"\u003e`mongodbatlas.MongodbEmployeeAccessGrant`\u003c/span\u003e describes a MongoDB employee access grant.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.MongodbEmployeeAccessGrant(\"example\", {\n    projectId: projectId,\n    clusterName: clusterName,\n    grantType: \"CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\",\n    expirationTime: \"2025-01-01T12:00:00Z\",\n});\nconst dsExample = mongodbatlas.getMongodbEmployeeAccessGrant({\n    projectId: projectId,\n    clusterName: clusterName,\n});\nexport const grantType = dsExample.then(dsExample =\u003e dsExample.grantType);\nexport const expirationTime = dsExample.then(dsExample =\u003e dsExample.expirationTime);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.MongodbEmployeeAccessGrant(\"example\",\n    project_id=project_id,\n    cluster_name=cluster_name,\n    grant_type=\"CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\",\n    expiration_time=\"2025-01-01T12:00:00Z\")\nds_example = mongodbatlas.get_mongodb_employee_access_grant(project_id=project_id,\n    cluster_name=cluster_name)\npulumi.export(\"grantType\", ds_example.grant_type)\npulumi.export(\"expirationTime\", ds_example.expiration_time)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.MongodbEmployeeAccessGrant(\"example\", new()\n    {\n        ProjectId = projectId,\n        ClusterName = clusterName,\n        GrantType = \"CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\",\n        ExpirationTime = \"2025-01-01T12:00:00Z\",\n    });\n\n    var dsExample = Mongodbatlas.GetMongodbEmployeeAccessGrant.Invoke(new()\n    {\n        ProjectId = projectId,\n        ClusterName = clusterName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"grantType\"] = dsExample.Apply(getMongodbEmployeeAccessGrantResult =\u003e getMongodbEmployeeAccessGrantResult.GrantType),\n        [\"expirationTime\"] = dsExample.Apply(getMongodbEmployeeAccessGrantResult =\u003e getMongodbEmployeeAccessGrantResult.ExpirationTime),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewMongodbEmployeeAccessGrant(ctx, \"example\", \u0026mongodbatlas.MongodbEmployeeAccessGrantArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tClusterName:    pulumi.Any(clusterName),\n\t\t\tGrantType:      pulumi.String(\"CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\"),\n\t\t\tExpirationTime: pulumi.String(\"2025-01-01T12:00:00Z\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdsExample, err := mongodbatlas.LookupMongodbEmployeeAccessGrant(ctx, \u0026mongodbatlas.LookupMongodbEmployeeAccessGrantArgs{\n\t\t\tProjectId:   projectId,\n\t\t\tClusterName: clusterName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"grantType\", dsExample.GrantType)\n\t\tctx.Export(\"expirationTime\", dsExample.ExpirationTime)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbEmployeeAccessGrant;\nimport com.pulumi.mongodbatlas.MongodbEmployeeAccessGrantArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetMongodbEmployeeAccessGrantArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new MongodbEmployeeAccessGrant(\"example\", MongodbEmployeeAccessGrantArgs.builder()\n            .projectId(projectId)\n            .clusterName(clusterName)\n            .grantType(\"CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\")\n            .expirationTime(\"2025-01-01T12:00:00Z\")\n            .build());\n\n        final var dsExample = MongodbatlasFunctions.getMongodbEmployeeAccessGrant(GetMongodbEmployeeAccessGrantArgs.builder()\n            .projectId(projectId)\n            .clusterName(clusterName)\n            .build());\n\n        ctx.export(\"grantType\", dsExample.grantType());\n        ctx.export(\"expirationTime\", dsExample.expirationTime());\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:MongodbEmployeeAccessGrant\n    properties:\n      projectId: ${projectId}\n      clusterName: ${clusterName}\n      grantType: CLUSTER_INFRASTRUCTURE_AND_APP_SERVICES_SYNC_DATA\n      expirationTime: 2025-01-01T12:00:00Z\nvariables:\n  dsExample:\n    fn::invoke:\n      function: mongodbatlas:getMongodbEmployeeAccessGrant\n      arguments:\n        projectId: ${projectId}\n        clusterName: ${clusterName}\noutputs:\n  grantType: ${dsExample.grantType}\n  expirationTime: ${dsExample.expirationTime}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getMongodbEmployeeAccessGrant.\n","properties":{"clusterName":{"type":"string","description":"Human-readable label that identifies this cluster.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getMongodbEmployeeAccessGrant.\n","properties":{"clusterName":{"description":"Human-readable label that identifies this cluster.\n","type":"string"},"expirationTime":{"type":"string"},"grantType":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"}},"required":["clusterName","expirationTime","grantType","projectId","id"],"type":"object"}},"mongodbatlas:index/getNetworkContainer:getNetworkContainer":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.NetworkContainer`\" pulumi-lang-dotnet=\"`mongodbatlas.NetworkContainer`\" pulumi-lang-go=\"`NetworkContainer`\" pulumi-lang-python=\"`NetworkContainer`\" pulumi-lang-yaml=\"`mongodbatlas.NetworkContainer`\" pulumi-lang-java=\"`mongodbatlas.NetworkContainer`\"\u003e`mongodbatlas.NetworkContainer`\u003c/span\u003e describes a Network Peering Container. The resource requires your Project ID and container ID.\n\n\u003e **IMPORTANT:** This resource creates one Network Peering container into which Atlas can deploy Network Peering connections. An Atlas project can have a maximum of one container for each cloud provider. You must have either the Project Owner or Organization Owner role to successfully call this endpoint.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n\n## Example Usage\n\n### Basic Example.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testNetworkContainer = new mongodbatlas.NetworkContainer(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    atlasCidrBlock: \"10.8.0.0/21\",\n    providerName: \"AWS\",\n    regionName: \"US_EAST_1\",\n});\nconst test = mongodbatlas.getNetworkContainerOutput({\n    projectId: testNetworkContainer.projectId,\n    containerId: testNetworkContainer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_network_container = mongodbatlas.NetworkContainer(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    atlas_cidr_block=\"10.8.0.0/21\",\n    provider_name=\"AWS\",\n    region_name=\"US_EAST_1\")\ntest = mongodbatlas.get_network_container_output(project_id=test_network_container.project_id,\n    container_id=test_network_container.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testNetworkContainer = new Mongodbatlas.NetworkContainer(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        AtlasCidrBlock = \"10.8.0.0/21\",\n        ProviderName = \"AWS\",\n        RegionName = \"US_EAST_1\",\n    });\n\n    var test = Mongodbatlas.GetNetworkContainer.Invoke(new()\n    {\n        ProjectId = testNetworkContainer.ProjectId,\n        ContainerId = testNetworkContainer.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestNetworkContainer, err := mongodbatlas.NewNetworkContainer(ctx, \"test\", \u0026mongodbatlas.NetworkContainerArgs{\n\t\t\tProjectId:      pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tAtlasCidrBlock: pulumi.String(\"10.8.0.0/21\"),\n\t\t\tProviderName:   pulumi.String(\"AWS\"),\n\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupNetworkContainerOutput(ctx, mongodbatlas.GetNetworkContainerOutputArgs{\n\t\t\tProjectId:   testNetworkContainer.ProjectId,\n\t\t\tContainerId: testNetworkContainer.ID(),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkContainer;\nimport com.pulumi.mongodbatlas.NetworkContainerArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetNetworkContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testNetworkContainer = new NetworkContainer(\"testNetworkContainer\", NetworkContainerArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .atlasCidrBlock(\"10.8.0.0/21\")\n            .providerName(\"AWS\")\n            .regionName(\"US_EAST_1\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getNetworkContainer(GetNetworkContainerArgs.builder()\n            .projectId(testNetworkContainer.projectId())\n            .containerId(testNetworkContainer.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testNetworkContainer:\n    type: mongodbatlas:NetworkContainer\n    name: test\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      atlasCidrBlock: 10.8.0.0/21\n      providerName: AWS\n      regionName: US_EAST_1\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getNetworkContainer\n      arguments:\n        projectId: ${testNetworkContainer.projectId}\n        containerId: ${testNetworkContainer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworkContainer.\n","properties":{"containerId":{"type":"string","description":"The Network Peering Container ID.\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"type":"object","required":["containerId","projectId"]},"outputs":{"description":"A collection of values returned by getNetworkContainer.\n","properties":{"atlasCidrBlock":{"description":"CIDR block that Atlas uses for your clusters. Atlas uses the specified CIDR block for all other Network Peering connections created in the project. The Atlas CIDR block must be at least a /24 and at most a /21 in one of the following [private networks](https://tools.ietf.org/html/rfc1918.html#section-3).\n","type":"string"},"azureSubscriptionId":{"description":"Unique identifer of the Azure subscription in which the VNet resides.\n","type":"string"},"containerId":{"type":"string"},"gcpProjectId":{"description":"Unique identifier of the GCP project in which the Network Peering connection resides.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"networkName":{"description":"Name of the Network Peering connection in the Atlas project.\n","type":"string"},"projectId":{"type":"string"},"providerName":{"description":"Cloud provider for this Network Peering connection. If omitted, Atlas sets this parameter to AWS.\n","type":"string"},"provisioned":{"description":"Indicates whether the project has Network Peering connections deployed in the container.\n","type":"boolean"},"region":{"description":"The Atlas Azure region name for where this container will exist.\n","type":"string"},"regionName":{"description":"The Atlas AWS region name for where this container will exist.\n","type":"string"},"regions":{"description":"Atlas GCP regions where the container resides.\n","items":{"type":"string"},"type":"array"},"vnetName":{"description":"The name of the Azure VNet. This value is null until you provision an Azure VNet in the container.\n","type":"string"},"vpcId":{"description":"Unique identifier of the project’s VPC.\n","type":"string"}},"required":["atlasCidrBlock","azureSubscriptionId","containerId","gcpProjectId","networkName","projectId","providerName","provisioned","region","regionName","regions","vnetName","vpcId","id"],"type":"object"}},"mongodbatlas:index/getNetworkContainers:getNetworkContainers":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getNetworkContainers`\" pulumi-lang-dotnet=\"`mongodbatlas.getNetworkContainers`\" pulumi-lang-go=\"`getNetworkContainers`\" pulumi-lang-python=\"`get_network_containers`\" pulumi-lang-yaml=\"`mongodbatlas.getNetworkContainers`\" pulumi-lang-java=\"`mongodbatlas.getNetworkContainers`\"\u003e`mongodbatlas.getNetworkContainers`\u003c/span\u003e describes all Network Peering Containers. The data source requires your Project ID.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n\n## Example Usage\n\n### Basic Example.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testNetworkContainer = new mongodbatlas.NetworkContainer(\"test\", {\n    projectId: \"\u003cYOUR-PROJECT-ID\u003e\",\n    atlasCidrBlock: \"10.8.0.0/21\",\n    providerName: \"AWS\",\n    regionName: \"US_EAST_1\",\n});\nconst test = pulumi.all([testNetworkContainer.projectId, testNetworkContainer.providerName]).apply(([projectId, providerName]) =\u003e mongodbatlas.getNetworkContainersOutput({\n    projectId: projectId,\n    providerName: providerName,\n}));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_network_container = mongodbatlas.NetworkContainer(\"test\",\n    project_id=\"\u003cYOUR-PROJECT-ID\u003e\",\n    atlas_cidr_block=\"10.8.0.0/21\",\n    provider_name=\"AWS\",\n    region_name=\"US_EAST_1\")\ntest = pulumi.Output.all(\n    project_id=test_network_container.project_id,\n    provider_name=test_network_container.provider_name\n).apply(lambda resolved_outputs: mongodbatlas.get_network_containers_output(project_id=resolved_outputs['project_id'],\n    provider_name=resolved_outputs['provider_name']))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testNetworkContainer = new Mongodbatlas.NetworkContainer(\"test\", new()\n    {\n        ProjectId = \"\u003cYOUR-PROJECT-ID\u003e\",\n        AtlasCidrBlock = \"10.8.0.0/21\",\n        ProviderName = \"AWS\",\n        RegionName = \"US_EAST_1\",\n    });\n\n    var test = Mongodbatlas.GetNetworkContainers.Invoke(new()\n    {\n        ProjectId = testNetworkContainer.ProjectId,\n        ProviderName = testNetworkContainer.ProviderName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestNetworkContainer, err := mongodbatlas.NewNetworkContainer(ctx, \"test\", \u0026mongodbatlas.NetworkContainerArgs{\n\t\t\tProjectId:      pulumi.String(\"\u003cYOUR-PROJECT-ID\u003e\"),\n\t\t\tAtlasCidrBlock: pulumi.String(\"10.8.0.0/21\"),\n\t\t\tProviderName:   pulumi.String(\"AWS\"),\n\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = pulumi.All(testNetworkContainer.ProjectId, testNetworkContainer.ProviderName).ApplyT(func(_args []interface{}) (mongodbatlas.GetNetworkContainersResult, error) {\n\t\t\tprojectId := _args[0].(string)\n\t\t\tproviderName := _args[1].(*string)\n\t\t\treturn mongodbatlas.GetNetworkContainersResult(interface{}(mongodbatlas.LookupNetworkContainers(ctx, \u0026mongodbatlas.LookupNetworkContainersArgs{\n\t\t\t\tProjectId:    projectId,\n\t\t\t\tProviderName: providerName,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetNetworkContainersResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkContainer;\nimport com.pulumi.mongodbatlas.NetworkContainerArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetNetworkContainersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testNetworkContainer = new NetworkContainer(\"testNetworkContainer\", NetworkContainerArgs.builder()\n            .projectId(\"\u003cYOUR-PROJECT-ID\u003e\")\n            .atlasCidrBlock(\"10.8.0.0/21\")\n            .providerName(\"AWS\")\n            .regionName(\"US_EAST_1\")\n            .build());\n\n        final var test = Output.tuple(testNetworkContainer.projectId(), testNetworkContainer.providerName()).applyValue(values -\u003e {\n            var projectId = values.t1;\n            var providerName = values.t2;\n            return MongodbatlasFunctions.getNetworkContainers(GetNetworkContainersArgs.builder()\n                .projectId(projectId)\n                .providerName(providerName)\n                .build());\n        });\n\n    }\n}\n```\n```yaml\nresources:\n  testNetworkContainer:\n    type: mongodbatlas:NetworkContainer\n    name: test\n    properties:\n      projectId: \u003cYOUR-PROJECT-ID\u003e\n      atlasCidrBlock: 10.8.0.0/21\n      providerName: AWS\n      regionName: US_EAST_1\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getNetworkContainers\n      arguments:\n        projectId: ${testNetworkContainer.projectId}\n        providerName: ${testNetworkContainer.providerName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworkContainers.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project.\n"},"providerName":{"type":"string","description":"Cloud provider for this Network peering container. Accepted values are AWS, GCP, and Azure.\n"}},"type":"object","required":["projectId","providerName"]},"outputs":{"description":"A collection of values returned by getNetworkContainers.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"providerName":{"description":"Cloud provider for this Network Peering connection. If omitted, Atlas sets this parameter to AWS.\n","type":"string"},"results":{"description":"A list where each represents a Network Peering Container.\n","items":{"$ref":"#/types/mongodbatlas:index/getNetworkContainersResult:getNetworkContainersResult"},"type":"array"}},"required":["projectId","providerName","results","id"],"type":"object"}},"mongodbatlas:index/getNetworkPeering:getNetworkPeering":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.NetworkPeering`\" pulumi-lang-dotnet=\"`mongodbatlas.NetworkPeering`\" pulumi-lang-go=\"`NetworkPeering`\" pulumi-lang-python=\"`NetworkPeering`\" pulumi-lang-yaml=\"`mongodbatlas.NetworkPeering`\" pulumi-lang-java=\"`mongodbatlas.NetworkPeering`\"\u003e`mongodbatlas.NetworkPeering`\u003c/span\u003e describes a Network Peering Connection.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n## Example Usage\n\n### Basic Example (AWS).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testNetworkPeering = new mongodbatlas.NetworkPeering(\"test\", {\n    accepterRegionName: \"us-east-1\",\n    projectId: \"\u003cYOUR-PROJEC-ID\u003e\",\n    containerId: \"507f1f77bcf86cd799439011\",\n    providerName: \"AWS\",\n    routeTableCidrBlock: \"192.168.0.0/24\",\n    vpcId: \"vpc-abc123abc123\",\n    awsAccountId: \"abc123abc123\",\n});\nconst test = mongodbatlas.getNetworkPeeringOutput({\n    projectId: testNetworkPeering.projectId,\n    peeringId: testNetworkPeering.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_network_peering = mongodbatlas.NetworkPeering(\"test\",\n    accepter_region_name=\"us-east-1\",\n    project_id=\"\u003cYOUR-PROJEC-ID\u003e\",\n    container_id=\"507f1f77bcf86cd799439011\",\n    provider_name=\"AWS\",\n    route_table_cidr_block=\"192.168.0.0/24\",\n    vpc_id=\"vpc-abc123abc123\",\n    aws_account_id=\"abc123abc123\")\ntest = mongodbatlas.get_network_peering_output(project_id=test_network_peering.project_id,\n    peering_id=test_network_peering.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testNetworkPeering = new Mongodbatlas.NetworkPeering(\"test\", new()\n    {\n        AccepterRegionName = \"us-east-1\",\n        ProjectId = \"\u003cYOUR-PROJEC-ID\u003e\",\n        ContainerId = \"507f1f77bcf86cd799439011\",\n        ProviderName = \"AWS\",\n        RouteTableCidrBlock = \"192.168.0.0/24\",\n        VpcId = \"vpc-abc123abc123\",\n        AwsAccountId = \"abc123abc123\",\n    });\n\n    var test = Mongodbatlas.GetNetworkPeering.Invoke(new()\n    {\n        ProjectId = testNetworkPeering.ProjectId,\n        PeeringId = testNetworkPeering.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestNetworkPeering, err := mongodbatlas.NewNetworkPeering(ctx, \"test\", \u0026mongodbatlas.NetworkPeeringArgs{\n\t\t\tAccepterRegionName:  pulumi.String(\"us-east-1\"),\n\t\t\tProjectId:           pulumi.String(\"\u003cYOUR-PROJEC-ID\u003e\"),\n\t\t\tContainerId:         pulumi.String(\"507f1f77bcf86cd799439011\"),\n\t\t\tProviderName:        pulumi.String(\"AWS\"),\n\t\t\tRouteTableCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t\tVpcId:               pulumi.String(\"vpc-abc123abc123\"),\n\t\t\tAwsAccountId:        pulumi.String(\"abc123abc123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupNetworkPeeringOutput(ctx, mongodbatlas.GetNetworkPeeringOutputArgs{\n\t\t\tProjectId: testNetworkPeering.ProjectId,\n\t\t\tPeeringId: testNetworkPeering.ID(),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkPeering;\nimport com.pulumi.mongodbatlas.NetworkPeeringArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetNetworkPeeringArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testNetworkPeering = new NetworkPeering(\"testNetworkPeering\", NetworkPeeringArgs.builder()\n            .accepterRegionName(\"us-east-1\")\n            .projectId(\"\u003cYOUR-PROJEC-ID\u003e\")\n            .containerId(\"507f1f77bcf86cd799439011\")\n            .providerName(\"AWS\")\n            .routeTableCidrBlock(\"192.168.0.0/24\")\n            .vpcId(\"vpc-abc123abc123\")\n            .awsAccountId(\"abc123abc123\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getNetworkPeering(GetNetworkPeeringArgs.builder()\n            .projectId(testNetworkPeering.projectId())\n            .peeringId(testNetworkPeering.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testNetworkPeering:\n    type: mongodbatlas:NetworkPeering\n    name: test\n    properties:\n      accepterRegionName: us-east-1\n      projectId: \u003cYOUR-PROJEC-ID\u003e\n      containerId: 507f1f77bcf86cd799439011\n      providerName: AWS\n      routeTableCidrBlock: 192.168.0.0/24\n      vpcId: vpc-abc123abc123\n      awsAccountId: abc123abc123\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getNetworkPeering\n      arguments:\n        projectId: ${testNetworkPeering.projectId}\n        peeringId: ${testNetworkPeering.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworkPeering.\n","properties":{"peeringId":{"type":"string","description":"Atlas assigned unique ID for the peering connection.\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"type":"object","required":["peeringId","projectId"]},"outputs":{"description":"A collection of values returned by getNetworkPeering.\n","properties":{"accepterRegionName":{"description":"Specifies the region where the peer VPC resides. For complete lists of supported regions, see [Amazon Web Services](https://docs.atlas.mongodb.com/reference/amazon-aws/).\n","type":"string"},"atlasCidrBlock":{"type":"string"},"atlasId":{"type":"string"},"awsAccountId":{"description":"Account ID of the owner of the peer VPC.\n","type":"string"},"azureDirectoryId":{"description":"Unique identifier for an Azure AD directory.\n","type":"string"},"azureSubscriptionId":{"description":"Unique identifer of the Azure subscription in which the VNet resides.\n","type":"string"},"connectionId":{"description":"Unique identifier for the peering connection.\n","type":"string"},"containerId":{"type":"string"},"errorMessage":{"description":"When `\"status\" : \"FAILED\"`, Atlas provides a description of the error.\n","type":"string"},"errorState":{"description":"Description of the Atlas error when \u003cspan pulumi-lang-nodejs=\"`status`\" pulumi-lang-dotnet=\"`Status`\" pulumi-lang-go=\"`status`\" pulumi-lang-python=\"`status`\" pulumi-lang-yaml=\"`status`\" pulumi-lang-java=\"`status`\"\u003e`status`\u003c/span\u003e is `Failed`, Otherwise, Atlas returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e.\n","type":"string"},"errorStateName":{"description":"Error state, if any. The VPC peering connection error state value can be one of the following: `REJECTED`, `EXPIRED`, `INVALID_ARGUMENT`.\n","type":"string"},"gcpProjectId":{"description":"GCP project ID of the owner of the network peer.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"networkName":{"description":"Name of the network peer to which Atlas connects.\n","type":"string"},"peeringId":{"type":"string"},"projectId":{"type":"string"},"providerName":{"description":"Cloud provider for this VPC peering connection. If omitted, Atlas sets this parameter to AWS. (Possible Values `AWS`, `AZURE`, `GCP`).\n","type":"string"},"resourceGroupName":{"description":"Name of your Azure resource group.\n","type":"string"},"routeTableCidrBlock":{"description":"Peer VPC CIDR block or subnet.\n","type":"string"},"status":{"description":"Status of the Atlas network peering connection: `ADDING_PEER`, `AVAILABLE`, `FAILED`, `DELETING`, `WAITING_FOR_USER`.\n","type":"string"},"statusName":{"description":"The VPC peering connection status value can be one of the following: `INITIATING`, `PENDING_ACCEPTANCE`, `FAILED`, `FINALIZING`, `AVAILABLE`, `TERMINATING`.\n","type":"string"},"vnetName":{"description":"Name of your Azure VNet.\n","type":"string"},"vpcId":{"description":"Unique identifier of the peer VPC.\n","type":"string"}},"required":["accepterRegionName","atlasCidrBlock","atlasId","awsAccountId","azureDirectoryId","azureSubscriptionId","connectionId","containerId","errorMessage","errorState","errorStateName","gcpProjectId","networkName","peeringId","projectId","providerName","resourceGroupName","routeTableCidrBlock","status","statusName","vnetName","vpcId","id"],"type":"object"}},"mongodbatlas:index/getNetworkPeerings:getNetworkPeerings":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getNetworkPeerings`\" pulumi-lang-dotnet=\"`mongodbatlas.getNetworkPeerings`\" pulumi-lang-go=\"`getNetworkPeerings`\" pulumi-lang-python=\"`get_network_peerings`\" pulumi-lang-yaml=\"`mongodbatlas.getNetworkPeerings`\" pulumi-lang-java=\"`mongodbatlas.getNetworkPeerings`\"\u003e`mongodbatlas.getNetworkPeerings`\u003c/span\u003e describes all Network Peering Connections.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find **group_id** in the official documentation.\n\n\n## Example Usage\n\n### Basic Example (AWS).\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testNetworkPeering = new mongodbatlas.NetworkPeering(\"test\", {\n    accepterRegionName: \"us-east-1\",\n    projectId: \"\u003cYOUR-PROJEC-ID\u003e\",\n    containerId: \"507f1f77bcf86cd799439011\",\n    providerName: \"AWS\",\n    routeTableCidrBlock: \"192.168.0.0/24\",\n    vpcId: \"vpc-abc123abc123\",\n    awsAccountId: \"abc123abc123\",\n});\nconst test = mongodbatlas.getNetworkPeeringsOutput({\n    projectId: testNetworkPeering.projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_network_peering = mongodbatlas.NetworkPeering(\"test\",\n    accepter_region_name=\"us-east-1\",\n    project_id=\"\u003cYOUR-PROJEC-ID\u003e\",\n    container_id=\"507f1f77bcf86cd799439011\",\n    provider_name=\"AWS\",\n    route_table_cidr_block=\"192.168.0.0/24\",\n    vpc_id=\"vpc-abc123abc123\",\n    aws_account_id=\"abc123abc123\")\ntest = mongodbatlas.get_network_peerings_output(project_id=test_network_peering.project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testNetworkPeering = new Mongodbatlas.NetworkPeering(\"test\", new()\n    {\n        AccepterRegionName = \"us-east-1\",\n        ProjectId = \"\u003cYOUR-PROJEC-ID\u003e\",\n        ContainerId = \"507f1f77bcf86cd799439011\",\n        ProviderName = \"AWS\",\n        RouteTableCidrBlock = \"192.168.0.0/24\",\n        VpcId = \"vpc-abc123abc123\",\n        AwsAccountId = \"abc123abc123\",\n    });\n\n    var test = Mongodbatlas.GetNetworkPeerings.Invoke(new()\n    {\n        ProjectId = testNetworkPeering.ProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestNetworkPeering, err := mongodbatlas.NewNetworkPeering(ctx, \"test\", \u0026mongodbatlas.NetworkPeeringArgs{\n\t\t\tAccepterRegionName:  pulumi.String(\"us-east-1\"),\n\t\t\tProjectId:           pulumi.String(\"\u003cYOUR-PROJEC-ID\u003e\"),\n\t\t\tContainerId:         pulumi.String(\"507f1f77bcf86cd799439011\"),\n\t\t\tProviderName:        pulumi.String(\"AWS\"),\n\t\t\tRouteTableCidrBlock: pulumi.String(\"192.168.0.0/24\"),\n\t\t\tVpcId:               pulumi.String(\"vpc-abc123abc123\"),\n\t\t\tAwsAccountId:        pulumi.String(\"abc123abc123\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupNetworkPeeringsOutput(ctx, mongodbatlas.GetNetworkPeeringsOutputArgs{\n\t\t\tProjectId: testNetworkPeering.ProjectId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkPeering;\nimport com.pulumi.mongodbatlas.NetworkPeeringArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetNetworkPeeringsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testNetworkPeering = new NetworkPeering(\"testNetworkPeering\", NetworkPeeringArgs.builder()\n            .accepterRegionName(\"us-east-1\")\n            .projectId(\"\u003cYOUR-PROJEC-ID\u003e\")\n            .containerId(\"507f1f77bcf86cd799439011\")\n            .providerName(\"AWS\")\n            .routeTableCidrBlock(\"192.168.0.0/24\")\n            .vpcId(\"vpc-abc123abc123\")\n            .awsAccountId(\"abc123abc123\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getNetworkPeerings(GetNetworkPeeringsArgs.builder()\n            .projectId(testNetworkPeering.projectId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testNetworkPeering:\n    type: mongodbatlas:NetworkPeering\n    name: test\n    properties:\n      accepterRegionName: us-east-1\n      projectId: \u003cYOUR-PROJEC-ID\u003e\n      containerId: 507f1f77bcf86cd799439011\n      providerName: AWS\n      routeTableCidrBlock: 192.168.0.0/24\n      vpcId: vpc-abc123abc123\n      awsAccountId: abc123abc123\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getNetworkPeerings\n      arguments:\n        projectId: ${testNetworkPeering.projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getNetworkPeerings.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getNetworkPeerings.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"description":"A list where each represents a Network Peering Connection.\n","items":{"$ref":"#/types/mongodbatlas:index/getNetworkPeeringsResult:getNetworkPeeringsResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getOnlineArchive:getOnlineArchive":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.OnlineArchive`\" pulumi-lang-dotnet=\"`mongodbatlas.OnlineArchive`\" pulumi-lang-go=\"`OnlineArchive`\" pulumi-lang-python=\"`OnlineArchive`\" pulumi-lang-yaml=\"`mongodbatlas.OnlineArchive`\" pulumi-lang-java=\"`mongodbatlas.OnlineArchive`\"\u003e`mongodbatlas.OnlineArchive`\u003c/span\u003e describes an Online Archive\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getOnlineArchive({\n    projectId: projectId,\n    clusterName: clusterName,\n    archiveId: \"5ebad3c1fe9c0ab8d37d61e1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_online_archive(project_id=project_id,\n    cluster_name=cluster_name,\n    archive_id=\"5ebad3c1fe9c0ab8d37d61e1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetOnlineArchive.Invoke(new()\n    {\n        ProjectId = projectId,\n        ClusterName = clusterName,\n        ArchiveId = \"5ebad3c1fe9c0ab8d37d61e1\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupOnlineArchive(ctx, \u0026mongodbatlas.LookupOnlineArchiveArgs{\n\t\t\tProjectId:   projectId,\n\t\t\tClusterName: clusterName,\n\t\t\tArchiveId:   \"5ebad3c1fe9c0ab8d37d61e1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetOnlineArchiveArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getOnlineArchive(GetOnlineArchiveArgs.builder()\n            .projectId(projectId)\n            .clusterName(clusterName)\n            .archiveId(\"5ebad3c1fe9c0ab8d37d61e1\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getOnlineArchive\n      arguments:\n        projectId: ${projectId}\n        clusterName: ${clusterName}\n        archiveId: 5ebad3c1fe9c0ab8d37d61e1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Attributes reference\n\n* \u003cspan pulumi-lang-nodejs=\"`dbName`\" pulumi-lang-dotnet=\"`DbName`\" pulumi-lang-go=\"`dbName`\" pulumi-lang-python=\"`db_name`\" pulumi-lang-yaml=\"`dbName`\" pulumi-lang-java=\"`dbName`\"\u003e`db_name`\u003c/span\u003e          -  Name of the database that contains the collection.\n* \u003cspan pulumi-lang-nodejs=\"`collName`\" pulumi-lang-dotnet=\"`CollName`\" pulumi-lang-go=\"`collName`\" pulumi-lang-python=\"`coll_name`\" pulumi-lang-yaml=\"`collName`\" pulumi-lang-java=\"`collName`\"\u003e`coll_name`\u003c/span\u003e        -  Name of the collection.\n* \u003cspan pulumi-lang-nodejs=\"`collectionType`\" pulumi-lang-dotnet=\"`CollectionType`\" pulumi-lang-go=\"`collectionType`\" pulumi-lang-python=\"`collection_type`\" pulumi-lang-yaml=\"`collectionType`\" pulumi-lang-java=\"`collectionType`\"\u003e`collection_type`\u003c/span\u003e  -  Type of MongoDB collection that you want to return. This value can be \"TIMESERIES\" or \"STANDARD\". Default is \"STANDARD\".\n* \u003cspan pulumi-lang-nodejs=\"`criteria`\" pulumi-lang-dotnet=\"`Criteria`\" pulumi-lang-go=\"`criteria`\" pulumi-lang-python=\"`criteria`\" pulumi-lang-yaml=\"`criteria`\" pulumi-lang-java=\"`criteria`\"\u003e`criteria`\u003c/span\u003e - Criteria to use for archiving data. See criteria.\n* \u003cspan pulumi-lang-nodejs=\"`dataExpirationRule`\" pulumi-lang-dotnet=\"`DataExpirationRule`\" pulumi-lang-go=\"`dataExpirationRule`\" pulumi-lang-python=\"`data_expiration_rule`\" pulumi-lang-yaml=\"`dataExpirationRule`\" pulumi-lang-java=\"`dataExpirationRule`\"\u003e`data_expiration_rule`\u003c/span\u003e - Rule for specifying when data should be deleted from the archive. See data expiration rule.\n* \u003cspan pulumi-lang-nodejs=\"`dataProcessRegion`\" pulumi-lang-dotnet=\"`DataProcessRegion`\" pulumi-lang-go=\"`dataProcessRegion`\" pulumi-lang-python=\"`data_process_region`\" pulumi-lang-yaml=\"`dataProcessRegion`\" pulumi-lang-java=\"`dataProcessRegion`\"\u003e`data_process_region`\u003c/span\u003e - Settings to configure the region where you wish to store your archived data. See data process region.\n* \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e - Regular frequency and duration when archiving process occurs. See schedule.\n* \u003cspan pulumi-lang-nodejs=\"`partitionFields`\" pulumi-lang-dotnet=\"`PartitionFields`\" pulumi-lang-go=\"`partitionFields`\" pulumi-lang-python=\"`partition_fields`\" pulumi-lang-yaml=\"`partitionFields`\" pulumi-lang-java=\"`partitionFields`\"\u003e`partition_fields`\u003c/span\u003e - Fields to use to partition data. You can specify up to two frequently queried fields to use for partitioning data. Queries that don’t contain the specified fields require a full collection scan of all archived documents, which takes longer and increases your costs. To learn more about how partition improves query performance, see [Data Structure in S3](https://www.mongodb.com/docs/atlas/data-federation/admin/optimize-query-performance/#data-structure-in-s3). The value of a partition field can be up to a maximum of 700 characters. Documents with values exceeding 700 characters are not archived. See partition fields.\n* \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e - State of the online archive. This is required for pausing an active online archive or resuming a paused online archive. If the collection has another active online archive, the resume request fails.\n* \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e    - Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted\n\n### Criteria\n* \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e          - Type of criteria (DATE, CUSTOM)\n* \u003cspan pulumi-lang-nodejs=\"`dateField`\" pulumi-lang-dotnet=\"`DateField`\" pulumi-lang-go=\"`dateField`\" pulumi-lang-python=\"`date_field`\" pulumi-lang-yaml=\"`dateField`\" pulumi-lang-java=\"`dateField`\"\u003e`date_field`\u003c/span\u003e   - Indexed database parameter that stores the date that determines when data moves to the online archive. MongoDB Cloud archives the data when the current date exceeds the date in this database parameter plus the number of days specified through the expireAfterDays parameter. Set this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `DATE`.\n* \u003cspan pulumi-lang-nodejs=\"`dateFormat`\" pulumi-lang-dotnet=\"`DateFormat`\" pulumi-lang-go=\"`dateFormat`\" pulumi-lang-python=\"`date_format`\" pulumi-lang-yaml=\"`dateFormat`\" pulumi-lang-java=\"`dateFormat`\"\u003e`date_format`\u003c/span\u003e   - Syntax used to write the date after which data moves to the online archive. Date can be expressed as ISO 8601 or Epoch timestamps. The Epoch timestamp can be expressed as nanoseconds, milliseconds, or seconds. Set this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `DATE`. You must set \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e to `DATE` if `collectionType` is `TIMESERIES`. Valid values:  ISODATE (default), EPOCH_SECONDS, EPOCH_MILLIS, EPOCH_NANOSECONDS.\n* \u003cspan pulumi-lang-nodejs=\"`expireAfterDays`\" pulumi-lang-dotnet=\"`ExpireAfterDays`\" pulumi-lang-go=\"`expireAfterDays`\" pulumi-lang-python=\"`expire_after_days`\" pulumi-lang-yaml=\"`expireAfterDays`\" pulumi-lang-java=\"`expireAfterDays`\"\u003e`expire_after_days`\u003c/span\u003e - Number of days after the value in the criteria.dateField when MongoDB Cloud archives data in the specified cluster. Set this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `DATE`.\n* \u003cspan pulumi-lang-nodejs=\"`query`\" pulumi-lang-dotnet=\"`Query`\" pulumi-lang-go=\"`query`\" pulumi-lang-python=\"`query`\" pulumi-lang-yaml=\"`query`\" pulumi-lang-java=\"`query`\"\u003e`query`\u003c/span\u003e - JSON query to use to select documents for archiving. Atlas uses the specified query with the db.collection.find(query) command. The empty document {} to return all documents is not supported. Set this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `CUSTOM`.\n\n### Data Expiration Rule\n* \u003cspan pulumi-lang-nodejs=\"`expireAfterDays`\" pulumi-lang-dotnet=\"`ExpireAfterDays`\" pulumi-lang-go=\"`expireAfterDays`\" pulumi-lang-python=\"`expire_after_days`\" pulumi-lang-yaml=\"`expireAfterDays`\" pulumi-lang-java=\"`expireAfterDays`\"\u003e`expire_after_days`\u003c/span\u003e - Number of days used in the date criteria for nominating documents for deletion. Value must be between 7 and 9215.\n\n### Data Process Region\n* \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e - Human-readable label that identifies the Cloud service provider where you wish to store your archived data.\n* \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e - Human-readable label that identifies the geographic location of the region where you wish to store your archived data. For allowed values, see [MongoDB Atlas API documentation](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createonlinearchive\n\n\n### Schedule\n\n* \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e          - Type of schedule. Valid values: `DEFAULT`, `DAILY`, `MONTHLY`, `WEEKLY`.\n* \u003cspan pulumi-lang-nodejs=\"`startHour`\" pulumi-lang-dotnet=\"`StartHour`\" pulumi-lang-go=\"`startHour`\" pulumi-lang-python=\"`start_hour`\" pulumi-lang-yaml=\"`startHour`\" pulumi-lang-java=\"`startHour`\"\u003e`start_hour`\u003c/span\u003e    - Hour of the day when the when the scheduled window to run one online archive starts.  \n* \u003cspan pulumi-lang-nodejs=\"`endHour`\" pulumi-lang-dotnet=\"`EndHour`\" pulumi-lang-go=\"`endHour`\" pulumi-lang-python=\"`end_hour`\" pulumi-lang-yaml=\"`endHour`\" pulumi-lang-java=\"`endHour`\"\u003e`end_hour`\u003c/span\u003e      - Hour of the day when the scheduled window to run one online archive ends.\n* \u003cspan pulumi-lang-nodejs=\"`startMinute`\" pulumi-lang-dotnet=\"`StartMinute`\" pulumi-lang-go=\"`startMinute`\" pulumi-lang-python=\"`start_minute`\" pulumi-lang-yaml=\"`startMinute`\" pulumi-lang-java=\"`startMinute`\"\u003e`start_minute`\u003c/span\u003e   - Minute of the hour when the scheduled window to run one online archive starts.\n* \u003cspan pulumi-lang-nodejs=\"`endMinute`\" pulumi-lang-dotnet=\"`EndMinute`\" pulumi-lang-go=\"`endMinute`\" pulumi-lang-python=\"`end_minute`\" pulumi-lang-yaml=\"`endMinute`\" pulumi-lang-java=\"`endMinute`\"\u003e`end_minute`\u003c/span\u003e     - Minute of the hour when the scheduled window to run one online archive ends.\n* \u003cspan pulumi-lang-nodejs=\"`dayOfMonth`\" pulumi-lang-dotnet=\"`DayOfMonth`\" pulumi-lang-go=\"`dayOfMonth`\" pulumi-lang-python=\"`day_of_month`\" pulumi-lang-yaml=\"`dayOfMonth`\" pulumi-lang-java=\"`dayOfMonth`\"\u003e`day_of_month`\u003c/span\u003e   - Day of the month when the scheduled archive starts. Set this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `MONTHLY`.\n* \u003cspan pulumi-lang-nodejs=\"`dayOfWeek`\" pulumi-lang-dotnet=\"`DayOfWeek`\" pulumi-lang-go=\"`dayOfWeek`\" pulumi-lang-python=\"`day_of_week`\" pulumi-lang-yaml=\"`dayOfWeek`\" pulumi-lang-java=\"`dayOfWeek`\"\u003e`day_of_week`\u003c/span\u003e     - Day of the week when the scheduled archive starts. The week starts with Monday (1) and ends with Sunday (7).Set this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `WEEKLY`.\n\n### Partition\n* \u003cspan pulumi-lang-nodejs=\"`fieldName`\" pulumi-lang-dotnet=\"`FieldName`\" pulumi-lang-go=\"`fieldName`\" pulumi-lang-python=\"`field_name`\" pulumi-lang-yaml=\"`fieldName`\" pulumi-lang-java=\"`fieldName`\"\u003e`field_name`\u003c/span\u003e - Human-readable label that identifies the parameter that MongoDB Cloud uses to partition data. To specify a nested parameter, use the dot notation.\n* \u003cspan pulumi-lang-nodejs=\"`order`\" pulumi-lang-dotnet=\"`Order`\" pulumi-lang-go=\"`order`\" pulumi-lang-python=\"`order`\" pulumi-lang-yaml=\"`order`\" pulumi-lang-java=\"`order`\"\u003e`order`\u003c/span\u003e - Sequence in which MongoDB Cloud slices the collection data to create partitions. The resource expresses this sequence starting with zero. The value of the `criteria.dateField` parameter defaults as the first item in the partition sequence.\n* \u003cspan pulumi-lang-nodejs=\"`fieldType`\" pulumi-lang-dotnet=\"`FieldType`\" pulumi-lang-go=\"`fieldType`\" pulumi-lang-python=\"`field_type`\" pulumi-lang-yaml=\"`fieldType`\" pulumi-lang-java=\"`fieldType`\"\u003e`field_type`\u003c/span\u003e - Data type of the parameter that that MongoDB Cloud uses to partition data. Partition parameters of type UUID must be of binary subtype 4. MongoDB Cloud skips partition parameters of type UUID with subtype 3. Valid values: \u003cspan pulumi-lang-nodejs=\"`date`\" pulumi-lang-dotnet=\"`Date`\" pulumi-lang-go=\"`date`\" pulumi-lang-python=\"`date`\" pulumi-lang-yaml=\"`date`\" pulumi-lang-java=\"`date`\"\u003e`date`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\"\u003e`int`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`long`\" pulumi-lang-dotnet=\"`Long`\" pulumi-lang-go=\"`long`\" pulumi-lang-python=\"`long`\" pulumi-lang-yaml=\"`long`\" pulumi-lang-java=\"`long`\"\u003e`long`\u003c/span\u003e, `objectId`, \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`uuid`\" pulumi-lang-dotnet=\"`Uuid`\" pulumi-lang-go=\"`uuid`\" pulumi-lang-python=\"`uuid`\" pulumi-lang-yaml=\"`uuid`\" pulumi-lang-java=\"`uuid`\"\u003e`uuid`\u003c/span\u003e.\n\nSee [MongoDB Atlas API](https://docs.atlas.mongodb.com/reference/api/online-archive-get-one/) Documentation for more information.\n","inputs":{"description":"A collection of arguments for invoking getOnlineArchive.\n","properties":{"archiveId":{"type":"string","description":"ID of the online archive.\n"},"clusterName":{"type":"string","description":"Name of the cluster that contains the collection.\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"type":"object","required":["archiveId","clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getOnlineArchive.\n","properties":{"archiveId":{"type":"string"},"clusterName":{"type":"string"},"collName":{"type":"string"},"collectionType":{"type":"string"},"criterias":{"items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchiveCriteria:getOnlineArchiveCriteria"},"type":"array"},"dataExpirationRules":{"items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchiveDataExpirationRule:getOnlineArchiveDataExpirationRule"},"type":"array"},"dataProcessRegions":{"items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchiveDataProcessRegion:getOnlineArchiveDataProcessRegion"},"type":"array"},"dbName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"partitionFields":{"items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchivePartitionField:getOnlineArchivePartitionField"},"type":"array"},"paused":{"type":"boolean"},"projectId":{"type":"string"},"schedules":{"items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchiveSchedule:getOnlineArchiveSchedule"},"type":"array"},"state":{"type":"string"}},"required":["archiveId","clusterName","collName","collectionType","criterias","dataExpirationRules","dataProcessRegions","dbName","partitionFields","paused","projectId","schedules","state","id"],"type":"object"}},"mongodbatlas:index/getOnlineArchives:getOnlineArchives":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.OnlineArchive`\" pulumi-lang-dotnet=\"`mongodbatlas.OnlineArchive`\" pulumi-lang-go=\"`OnlineArchive`\" pulumi-lang-python=\"`OnlineArchive`\" pulumi-lang-yaml=\"`mongodbatlas.OnlineArchive`\" pulumi-lang-java=\"`mongodbatlas.OnlineArchive`\"\u003e`mongodbatlas.OnlineArchive`\u003c/span\u003e Describes the list of all the online archives for a cluster\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getOnlineArchives({\n    projectId: projectId,\n    clusterName: clusterName,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_online_archives(project_id=project_id,\n    cluster_name=cluster_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetOnlineArchives.Invoke(new()\n    {\n        ProjectId = projectId,\n        ClusterName = clusterName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupOnlineArchives(ctx, \u0026mongodbatlas.LookupOnlineArchivesArgs{\n\t\t\tProjectId:   projectId,\n\t\t\tClusterName: clusterName,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetOnlineArchivesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getOnlineArchives(GetOnlineArchivesArgs.builder()\n            .projectId(projectId)\n            .clusterName(clusterName)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getOnlineArchives\n      arguments:\n        projectId: ${projectId}\n        clusterName: ${clusterName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Attributes reference\n\n* \u003cspan pulumi-lang-nodejs=\"`dbName`\" pulumi-lang-dotnet=\"`DbName`\" pulumi-lang-go=\"`dbName`\" pulumi-lang-python=\"`db_name`\" pulumi-lang-yaml=\"`dbName`\" pulumi-lang-java=\"`dbName`\"\u003e`db_name`\u003c/span\u003e - Name of the database that contains the collection.\n* \u003cspan pulumi-lang-nodejs=\"`collName`\" pulumi-lang-dotnet=\"`CollName`\" pulumi-lang-go=\"`collName`\" pulumi-lang-python=\"`coll_name`\" pulumi-lang-yaml=\"`collName`\" pulumi-lang-java=\"`collName`\"\u003e`coll_name`\u003c/span\u003e -  Name of the collection.\n* \u003cspan pulumi-lang-nodejs=\"`collectionType`\" pulumi-lang-dotnet=\"`CollectionType`\" pulumi-lang-go=\"`collectionType`\" pulumi-lang-python=\"`collection_type`\" pulumi-lang-yaml=\"`collectionType`\" pulumi-lang-java=\"`collectionType`\"\u003e`collection_type`\u003c/span\u003e - Type of MongoDB collection that you want to return. This value can be \"TIMESERIES\" or \"STANDARD\". Default is \"STANDARD\". \n* \u003cspan pulumi-lang-nodejs=\"`criteria`\" pulumi-lang-dotnet=\"`Criteria`\" pulumi-lang-go=\"`criteria`\" pulumi-lang-python=\"`criteria`\" pulumi-lang-yaml=\"`criteria`\" pulumi-lang-java=\"`criteria`\"\u003e`criteria`\u003c/span\u003e - Criteria to use for archiving data. See criteria.\n* \u003cspan pulumi-lang-nodejs=\"`dataExpirationRule`\" pulumi-lang-dotnet=\"`DataExpirationRule`\" pulumi-lang-go=\"`dataExpirationRule`\" pulumi-lang-python=\"`data_expiration_rule`\" pulumi-lang-yaml=\"`dataExpirationRule`\" pulumi-lang-java=\"`dataExpirationRule`\"\u003e`data_expiration_rule`\u003c/span\u003e - Rule for specifying when data should be deleted from the archive. See data expiration rule.\n* \u003cspan pulumi-lang-nodejs=\"`dataProcessRegion`\" pulumi-lang-dotnet=\"`DataProcessRegion`\" pulumi-lang-go=\"`dataProcessRegion`\" pulumi-lang-python=\"`data_process_region`\" pulumi-lang-yaml=\"`dataProcessRegion`\" pulumi-lang-java=\"`dataProcessRegion`\"\u003e`data_process_region`\u003c/span\u003e - Settings to configure the region where you wish to store your archived data. See data process region.\n* \u003cspan pulumi-lang-nodejs=\"`schedule`\" pulumi-lang-dotnet=\"`Schedule`\" pulumi-lang-go=\"`schedule`\" pulumi-lang-python=\"`schedule`\" pulumi-lang-yaml=\"`schedule`\" pulumi-lang-java=\"`schedule`\"\u003e`schedule`\u003c/span\u003e - Regular frequency and duration when archiving process occurs. See schedule.\n* \u003cspan pulumi-lang-nodejs=\"`partitionFields`\" pulumi-lang-dotnet=\"`PartitionFields`\" pulumi-lang-go=\"`partitionFields`\" pulumi-lang-python=\"`partition_fields`\" pulumi-lang-yaml=\"`partitionFields`\" pulumi-lang-java=\"`partitionFields`\"\u003e`partition_fields`\u003c/span\u003e - Fields to use to partition data. You can specify up to two frequently queried fields to use for partitioning data. Queries that don’t contain the specified fields require a full collection scan of all archived documents, which takes longer and increases your costs. To learn more about how partition improves query performance, see [Data Structure in S3](https://www.mongodb.com/docs/atlas/data-federation/admin/optimize-query-performance/#data-structure-in-s3). The value of a partition field can be up to a maximum of 700 characters. Documents with values exceeding 700 characters are not archived. See partition fields.\n* \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e - State of the online archive. This is required for pausing an active online archive or resuming a paused online archive. If the collection has another active online archive, the resume request fails.\n* \u003cspan pulumi-lang-nodejs=\"`state`\" pulumi-lang-dotnet=\"`State`\" pulumi-lang-go=\"`state`\" pulumi-lang-python=\"`state`\" pulumi-lang-yaml=\"`state`\" pulumi-lang-java=\"`state`\"\u003e`state`\u003c/span\u003e - Status of the online archive. Valid values are: Pending, Archiving, Idle, Pausing, Paused, Orphaned and Deleted\n\n### Criteria\n* \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e - Type of criteria (DATE, CUSTOM)\n* \u003cspan pulumi-lang-nodejs=\"`dateField`\" pulumi-lang-dotnet=\"`DateField`\" pulumi-lang-go=\"`dateField`\" pulumi-lang-python=\"`date_field`\" pulumi-lang-yaml=\"`dateField`\" pulumi-lang-java=\"`dateField`\"\u003e`date_field`\u003c/span\u003e - Indexed database parameter that stores the date that determines when data moves to the online archive. MongoDB Cloud archives the data when the current date exceeds the date in this database parameter plus the number of days specified through the expireAfterDays parameter. Set this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `DATE`.\n* \u003cspan pulumi-lang-nodejs=\"`dateFormat`\" pulumi-lang-dotnet=\"`DateFormat`\" pulumi-lang-go=\"`dateFormat`\" pulumi-lang-python=\"`date_format`\" pulumi-lang-yaml=\"`dateFormat`\" pulumi-lang-java=\"`dateFormat`\"\u003e`date_format`\u003c/span\u003e - Syntax used to write the date after which data moves to the online archive. Date can be expressed as ISO 8601 or Epoch timestamps. The Epoch timestamp can be expressed as nanoseconds, milliseconds, or seconds. Set this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `DATE`. You must set \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e to `DATE` if `collectionType` is `TIMESERIES`. Valid values:  ISODATE (default), EPOCH_SECONDS, EPOCH_MILLIS, EPOCH_NANOSECONDS.\n* \u003cspan pulumi-lang-nodejs=\"`expireAfterDays`\" pulumi-lang-dotnet=\"`ExpireAfterDays`\" pulumi-lang-go=\"`expireAfterDays`\" pulumi-lang-python=\"`expire_after_days`\" pulumi-lang-yaml=\"`expireAfterDays`\" pulumi-lang-java=\"`expireAfterDays`\"\u003e`expire_after_days`\u003c/span\u003e - Number of days after the value in the criteria.dateField when MongoDB Cloud archives data in the specified cluster. Set this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `DATE`.\n* \u003cspan pulumi-lang-nodejs=\"`query`\" pulumi-lang-dotnet=\"`Query`\" pulumi-lang-go=\"`query`\" pulumi-lang-python=\"`query`\" pulumi-lang-yaml=\"`query`\" pulumi-lang-java=\"`query`\"\u003e`query`\u003c/span\u003e - JSON query to use to select documents for archiving. Atlas uses the specified query with the db.collection.find(query) command. The empty document {} to return all documents is not supported. Set this parameter when \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e is `CUSTOM`.\n\n### Data Expiration Rule\n* \u003cspan pulumi-lang-nodejs=\"`expireAfterDays`\" pulumi-lang-dotnet=\"`ExpireAfterDays`\" pulumi-lang-go=\"`expireAfterDays`\" pulumi-lang-python=\"`expire_after_days`\" pulumi-lang-yaml=\"`expireAfterDays`\" pulumi-lang-java=\"`expireAfterDays`\"\u003e`expire_after_days`\u003c/span\u003e - Number of days used in the date criteria for nominating documents for deletion. Value must be between 7 and 9215.\n\n### Data Process Region\n* \u003cspan pulumi-lang-nodejs=\"`cloudProvider`\" pulumi-lang-dotnet=\"`CloudProvider`\" pulumi-lang-go=\"`cloudProvider`\" pulumi-lang-python=\"`cloud_provider`\" pulumi-lang-yaml=\"`cloudProvider`\" pulumi-lang-java=\"`cloudProvider`\"\u003e`cloud_provider`\u003c/span\u003e - Human-readable label that identifies the Cloud service provider where you wish to store your archived data.\n* \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e - Human-readable label that identifies the geographic location of the region where you wish to store your archived data. For allowed values, see [MongoDB Atlas API documentation](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-createonlinearchive\n\n### Schedule\n\n* \u003cspan pulumi-lang-nodejs=\"`type`\" pulumi-lang-dotnet=\"`Type`\" pulumi-lang-go=\"`type`\" pulumi-lang-python=\"`type`\" pulumi-lang-yaml=\"`type`\" pulumi-lang-java=\"`type`\"\u003e`type`\u003c/span\u003e - Type of schedule (`DAILY`, `MONTHLY`, `WEEKLY`).\n* \u003cspan pulumi-lang-nodejs=\"`startHour`\" pulumi-lang-dotnet=\"`StartHour`\" pulumi-lang-go=\"`startHour`\" pulumi-lang-python=\"`start_hour`\" pulumi-lang-yaml=\"`startHour`\" pulumi-lang-java=\"`startHour`\"\u003e`start_hour`\u003c/span\u003e - Hour of the day when the when the scheduled window to run one online archive starts.  \n* \u003cspan pulumi-lang-nodejs=\"`endHour`\" pulumi-lang-dotnet=\"`EndHour`\" pulumi-lang-go=\"`endHour`\" pulumi-lang-python=\"`end_hour`\" pulumi-lang-yaml=\"`endHour`\" pulumi-lang-java=\"`endHour`\"\u003e`end_hour`\u003c/span\u003e - Hour of the day when the scheduled window to run one online archive ends.\n* \u003cspan pulumi-lang-nodejs=\"`startMinute`\" pulumi-lang-dotnet=\"`StartMinute`\" pulumi-lang-go=\"`startMinute`\" pulumi-lang-python=\"`start_minute`\" pulumi-lang-yaml=\"`startMinute`\" pulumi-lang-java=\"`startMinute`\"\u003e`start_minute`\u003c/span\u003e - Minute of the hour when the scheduled window to run one online archive starts.\n* \u003cspan pulumi-lang-nodejs=\"`endMinute`\" pulumi-lang-dotnet=\"`EndMinute`\" pulumi-lang-go=\"`endMinute`\" pulumi-lang-python=\"`end_minute`\" pulumi-lang-yaml=\"`endMinute`\" pulumi-lang-java=\"`endMinute`\"\u003e`end_minute`\u003c/span\u003e - Minute of the hour when the scheduled window to run one online archive ends.\n* \u003cspan pulumi-lang-nodejs=\"`dayOfMonth`\" pulumi-lang-dotnet=\"`DayOfMonth`\" pulumi-lang-go=\"`dayOfMonth`\" pulumi-lang-python=\"`day_of_month`\" pulumi-lang-yaml=\"`dayOfMonth`\" pulumi-lang-java=\"`dayOfMonth`\"\u003e`day_of_month`\u003c/span\u003e - Day of the month when the scheduled archive starts.\n* \u003cspan pulumi-lang-nodejs=\"`dayOfWeek`\" pulumi-lang-dotnet=\"`DayOfWeek`\" pulumi-lang-go=\"`dayOfWeek`\" pulumi-lang-python=\"`day_of_week`\" pulumi-lang-yaml=\"`dayOfWeek`\" pulumi-lang-java=\"`dayOfWeek`\"\u003e`day_of_week`\u003c/span\u003e - Day of the week when the scheduled archive starts. The week starts with Monday (1) and ends with Sunday (7).\n\n### Partition\n* \u003cspan pulumi-lang-nodejs=\"`fieldName`\" pulumi-lang-dotnet=\"`FieldName`\" pulumi-lang-go=\"`fieldName`\" pulumi-lang-python=\"`field_name`\" pulumi-lang-yaml=\"`fieldName`\" pulumi-lang-java=\"`fieldName`\"\u003e`field_name`\u003c/span\u003e - Human-readable label that identifies the parameter that MongoDB Cloud uses to partition data. To specify a nested parameter, use the dot notation.\n* \u003cspan pulumi-lang-nodejs=\"`order`\" pulumi-lang-dotnet=\"`Order`\" pulumi-lang-go=\"`order`\" pulumi-lang-python=\"`order`\" pulumi-lang-yaml=\"`order`\" pulumi-lang-java=\"`order`\"\u003e`order`\u003c/span\u003e - Sequence in which MongoDB Cloud slices the collection data to create partitions. The resource expresses this sequence starting with zero. The value of the `criteria.dateField` parameter defaults as the first item in the partition sequence.\n* \u003cspan pulumi-lang-nodejs=\"`fieldType`\" pulumi-lang-dotnet=\"`FieldType`\" pulumi-lang-go=\"`fieldType`\" pulumi-lang-python=\"`field_type`\" pulumi-lang-yaml=\"`fieldType`\" pulumi-lang-java=\"`fieldType`\"\u003e`field_type`\u003c/span\u003e - Data type of the parameter that that MongoDB Cloud uses to partition data. Partition parameters of type UUID must be of binary subtype 4. MongoDB Cloud skips partition parameters of type UUID with subtype 3. Valid values: \u003cspan pulumi-lang-nodejs=\"`date`\" pulumi-lang-dotnet=\"`Date`\" pulumi-lang-go=\"`date`\" pulumi-lang-python=\"`date`\" pulumi-lang-yaml=\"`date`\" pulumi-lang-java=\"`date`\"\u003e`date`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`int`\" pulumi-lang-dotnet=\"`Int`\" pulumi-lang-go=\"`int`\" pulumi-lang-python=\"`int`\" pulumi-lang-yaml=\"`int`\" pulumi-lang-java=\"`int`\"\u003e`int`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`long`\" pulumi-lang-dotnet=\"`Long`\" pulumi-lang-go=\"`long`\" pulumi-lang-python=\"`long`\" pulumi-lang-yaml=\"`long`\" pulumi-lang-java=\"`long`\"\u003e`long`\u003c/span\u003e, `objectId`, \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`uuid`\" pulumi-lang-dotnet=\"`Uuid`\" pulumi-lang-go=\"`uuid`\" pulumi-lang-python=\"`uuid`\" pulumi-lang-yaml=\"`uuid`\" pulumi-lang-java=\"`uuid`\"\u003e`uuid`\u003c/span\u003e.\n","inputs":{"description":"A collection of arguments for invoking getOnlineArchives.\n","properties":{"clusterName":{"type":"string","description":"Name of the cluster that contains the collection.\n\n# Attributes Reference\n\nIn addition to all arguments above, the following attributes are exported:\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getOnlineArchives.\n","properties":{"clusterName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getOnlineArchivesResult:getOnlineArchivesResult"},"type":"array"},"totalCount":{"type":"integer"}},"required":["clusterName","projectId","results","totalCount","id"],"type":"object"}},"mongodbatlas:index/getOrgInvitation:getOrgInvitation":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.OrgInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.OrgInvitation`\" pulumi-lang-go=\"`OrgInvitation`\" pulumi-lang-python=\"`OrgInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.OrgInvitation`\" pulumi-lang-java=\"`mongodbatlas.OrgInvitation`\"\u003e`mongodbatlas.OrgInvitation`\u003c/span\u003e describes an invitation for a user to join an Atlas organization.\n\n\u003e **DEPRECATION:** This data source is deprecated. Use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-go=\"`CloudUserOrgAssignment`\" pulumi-lang-python=\"`CloudUserOrgAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserOrgAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserOrgAssignment`\"\u003e`mongodbatlas.CloudUserOrgAssignment`\u003c/span\u003e to read organization user assignments. See the Org Invitation to Cloud User Org Assignment Migration Guide.\n\n","inputs":{"description":"A collection of arguments for invoking getOrgInvitation.\n","properties":{"invitationId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the invitation in Atlas.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization to which you invited the user.\n"},"username":{"type":"string","description":"Email address of the invited user. This is the address to which Atlas sends the invite. If the user accepts the invitation, they log in to Atlas with this username.\n"}},"type":"object","required":["invitationId","orgId","username"]},"outputs":{"description":"A collection of values returned by getOrgInvitation.\n","properties":{"createdAt":{"description":"Timestamp in ISO 8601 date and time format in UTC when Atlas sent the invitation.\n","type":"string"},"expiresAt":{"description":"Timestamp in ISO 8601 date and time format in UTC when the invitation expires. Users have 30 days to accept an invitation.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"invitationId":{"type":"string"},"inviterUsername":{"description":"Atlas user who invited \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e to the organization.\n","type":"string"},"orgId":{"type":"string"},"roles":{"description":"Atlas roles to assign to the invited user. If the user accepts the invitation, Atlas assigns these roles to them. The [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#organization-roles) describes the roles a user can have.\n","items":{"type":"string"},"type":"array"},"teamsIds":{"description":"An array of unique 24-hexadecimal digit strings that identify the teams that the user was invited to join.\n","items":{"type":"string"},"type":"array"},"username":{"type":"string"}},"required":["createdAt","expiresAt","invitationId","inviterUsername","orgId","roles","teamsIds","username","id"],"type":"object"}},"mongodbatlas:index/getOrganization:getOrganization":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Organization`\" pulumi-lang-dotnet=\"`mongodbatlas.Organization`\" pulumi-lang-go=\"`Organization`\" pulumi-lang-python=\"`Organization`\" pulumi-lang-yaml=\"`mongodbatlas.Organization`\" pulumi-lang-java=\"`mongodbatlas.Organization`\"\u003e`mongodbatlas.Organization`\u003c/span\u003e describes all MongoDB Atlas Organizations. This represents organizations that have been created.\n\n## Example Usage\n\n### Using\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eattribute to query\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getOrganization({\n    orgId: \"\u003corg_id\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_organization(org_id=\"\u003corg_id\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetOrganization.Invoke(new()\n    {\n        OrgId = \"\u003corg_id\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupOrganization(ctx, \u0026mongodbatlas.LookupOrganizationArgs{\n\t\t\tOrgId: \"\u003corg_id\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetOrganizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getOrganization(GetOrganizationArgs.builder()\n            .orgId(\"\u003corg_id\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getOrganization\n      arguments:\n        orgId: \u003corg_id\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOrganization.\n","properties":{"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization.\n"}},"type":"object","required":["orgId"]},"outputs":{"description":"A collection of values returned by getOrganization.\n","properties":{"apiAccessListRequired":{"description":"(Optional) Flag that indicates whether to require API operations to originate from an IP Address added to the API access list for the specified organization.\n","type":"boolean"},"genAiFeaturesEnabled":{"description":"(Optional) Flag that indicates whether this organization has access to generative AI features. This setting only applies to Atlas Commercial and defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. With this setting on, Project Owners may be able to enable or disable individual AI features at the project level. To learn more, see https://www.mongodb.com/docs/generative-ai-faq/.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isDeleted":{"description":"Flag that indicates whether this organization has been deleted.\n","type":"boolean"},"links":{"items":{"$ref":"#/types/mongodbatlas:index/getOrganizationLink:getOrganizationLink"},"type":"array"},"multiFactorAuthRequired":{"description":"(Optional) Flag that indicates whether to require users to set up Multi-Factor Authentication (MFA) before accessing the specified organization. To learn more, see: https://www.mongodb.com/docs/atlas/security-multi-factor-authentication/.\n","type":"boolean"},"name":{"description":"Human-readable label that identifies the organization.\n","type":"string"},"orgId":{"type":"string"},"restrictEmployeeAccess":{"description":"(Optional) Flag that indicates whether to block MongoDB Support from accessing Atlas infrastructure for any deployment in the specified organization without explicit permission. Once this setting is turned on, you can grant MongoDB Support a 24-hour bypass access to the Atlas deployment to resolve support issues. To learn more, see: https://www.mongodb.com/docs/atlas/security-restrict-support-access/.\n","type":"boolean"},"securityContact":{"description":"(Optional) String that specifies a single email address for the specified organization to receive security-related notifications. Specifying a security contact does not grant them authorization or access to Atlas for security decisions or approvals.\n","type":"string"},"skipDefaultAlertsSettings":{"description":"(Optional) Flag that indicates whether to prevent Atlas from automatically creating organization-level alerts not explicitly managed through Terraform. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","type":"boolean"},"users":{"description":"Returns a list of all pending and active MongoDB Cloud users associated with the specified organization.\n","items":{"$ref":"#/types/mongodbatlas:index/getOrganizationUser:getOrganizationUser"},"type":"array"}},"required":["apiAccessListRequired","genAiFeaturesEnabled","isDeleted","links","multiFactorAuthRequired","name","orgId","restrictEmployeeAccess","securityContact","skipDefaultAlertsSettings","users","id"],"type":"object"}},"mongodbatlas:index/getOrganizations:getOrganizations":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getOrganizations`\" pulumi-lang-dotnet=\"`mongodbatlas.getOrganizations`\" pulumi-lang-go=\"`getOrganizations`\" pulumi-lang-python=\"`get_organizations`\" pulumi-lang-yaml=\"`mongodbatlas.getOrganizations`\" pulumi-lang-java=\"`mongodbatlas.getOrganizations`\"\u003e`mongodbatlas.getOrganizations`\u003c/span\u003e describes all MongoDB Atlas Organizations. This represents organizations that have been created.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getOrganizations({\n    pageNum: 1,\n    itemsPerPage: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_organizations(page_num=1,\n    items_per_page=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetOrganizations.Invoke(new()\n    {\n        PageNum = 1,\n        ItemsPerPage = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupOrganizations(ctx, \u0026mongodbatlas.LookupOrganizationsArgs{\n\t\t\tPageNum:      pulumi.IntRef(1),\n\t\t\tItemsPerPage: pulumi.IntRef(5),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetOrganizationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getOrganizations(GetOrganizationsArgs.builder()\n            .pageNum(1)\n            .itemsPerPage(5)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getOrganizations\n      arguments:\n        pageNum: 1\n        itemsPerPage: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getOrganizations.\n","properties":{"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"name":{"type":"string"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getOrganizations.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"itemsPerPage":{"type":"integer"},"name":{"type":"string"},"pageNum":{"type":"integer"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getOrganizationsResult:getOrganizationsResult"},"type":"array"},"totalCount":{"type":"integer"}},"required":["results","totalCount","id"],"type":"object"}},"mongodbatlas:index/getPrivateEndpointRegionalMode:getPrivateEndpointRegionalMode":{"description":"\u003cspan pulumi-lang-nodejs=\"`privateEndpointRegionalMode`\" pulumi-lang-dotnet=\"`PrivateEndpointRegionalMode`\" pulumi-lang-go=\"`privateEndpointRegionalMode`\" pulumi-lang-python=\"`private_endpoint_regional_mode`\" pulumi-lang-yaml=\"`privateEndpointRegionalMode`\" pulumi-lang-java=\"`privateEndpointRegionalMode`\"\u003e`private_endpoint_regional_mode`\u003c/span\u003e describes a Private Endpoint Regional Mode. This represents a Private Endpoint Regional Mode Connection that wants to retrieve settings of an Atlas project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as _private from \"@pulumi/private\";\n\nconst testEndpointRegionalMode = new _private.index.EndpointRegionalMode(\"test\", {projectId: \"\u003cPROJECT-ID\u003e\"});\nconst test = _private.index.EndpointRegionalMode({\n    projectId: testEndpointRegionalMode.projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_private as private\n\ntest_endpoint_regional_mode = private.index.EndpointRegionalMode(\"test\", project_id=\u003cPROJECT-ID\u003e)\ntest = private.index.endpoint_regional_mode(project_id=test_endpoint_regional_mode[\"projectId\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Private = Pulumi.Private;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testEndpointRegionalMode = new Private.Index.EndpointRegionalMode(\"test\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n    });\n\n    var test = Private.Index.EndpointRegionalMode.Invoke(new()\n    {\n        ProjectId = testEndpointRegionalMode.ProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-private/sdk/go/private\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestEndpointRegionalMode, err := private.NewEndpointRegionalMode(ctx, \"test\", \u0026private.EndpointRegionalModeArgs{\n\t\t\tProjectId: \"\u003cPROJECT-ID\u003e\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = private.EndpointRegionalMode(ctx, map[string]interface{}{\n\t\t\t\"projectId\": testEndpointRegionalMode.ProjectId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.private.EndpointRegionalMode;\nimport com.pulumi.private.EndpointRegionalModeArgs;\nimport com.pulumi.private.PrivateFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testEndpointRegionalMode = new EndpointRegionalMode(\"testEndpointRegionalMode\", EndpointRegionalModeArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .build());\n\n        final var test = PrivateFunctions.EndpointRegionalMode(Map.of(\"projectId\", testEndpointRegionalMode.projectId()));\n\n    }\n}\n```\n```yaml\nresources:\n  testEndpointRegionalMode:\n    type: private:EndpointRegionalMode\n    name: test\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\nvariables:\n  test:\n    fn::invoke:\n      function: private:EndpointRegionalMode\n      arguments:\n        projectId: ${testEndpointRegionalMode.projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivateEndpointRegionalMode.\n","properties":{"enabled":{"type":"boolean","description":"Flag that indicates whether the regionalized private endpoitn setting is enabled for the project.\n"},"projectId":{"type":"string","description":"Unique identifier for the project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getPrivateEndpointRegionalMode.\n","properties":{"enabled":{"type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"}},"required":["projectId","id"],"type":"object"}},"mongodbatlas:index/getPrivateLinkEndpoint:getPrivateLinkEndpoint":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-go=\"`PrivateLinkEndpoint`\" pulumi-lang-python=\"`PrivateLinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpoint`\"\u003e`mongodbatlas.PrivateLinkEndpoint`\u003c/span\u003e describes a Private Endpoint. This represents a Private Endpoint Connection to retrieve details regarding a private endpoint by id in an Atlas project\n\n\u003e **NOTE:** Groups and projects are synonymous terms. The official documentation uses \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e.\n\n\u003e **IMPORTANT:** Before configuring a private endpoint for a new region in your cluster, review the [Multi-Region Private Endpoints](https://www.mongodb.com/docs/atlas/troubleshoot-private-endpoints/#multi-region-private-endpoints) troubleshooting documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisPrivateLinkEndpoint = new mongodbatlas.PrivateLinkEndpoint(\"this\", {\n    projectId: projectId,\n    providerName: \"AWS\",\n    region: \"US_EAST_1\",\n});\nconst _this = mongodbatlas.getPrivateLinkEndpointOutput({\n    projectId: thisPrivateLinkEndpoint.projectId,\n    privateLinkId: thisPrivateLinkEndpoint.privateLinkId,\n    providerName: \"AWS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_private_link_endpoint = mongodbatlas.PrivateLinkEndpoint(\"this\",\n    project_id=project_id,\n    provider_name=\"AWS\",\n    region=\"US_EAST_1\")\nthis = mongodbatlas.get_private_link_endpoint_output(project_id=this_private_link_endpoint.project_id,\n    private_link_id=this_private_link_endpoint.private_link_id,\n    provider_name=\"AWS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisPrivateLinkEndpoint = new Mongodbatlas.PrivateLinkEndpoint(\"this\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"AWS\",\n        Region = \"US_EAST_1\",\n    });\n\n    var @this = Mongodbatlas.GetPrivateLinkEndpoint.Invoke(new()\n    {\n        ProjectId = thisPrivateLinkEndpoint.ProjectId,\n        PrivateLinkId = thisPrivateLinkEndpoint.PrivateLinkId,\n        ProviderName = \"AWS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisPrivateLinkEndpoint, err := mongodbatlas.NewPrivateLinkEndpoint(ctx, \"this\", \u0026mongodbatlas.PrivateLinkEndpointArgs{\n\t\t\tProjectId:    pulumi.Any(projectId),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\tRegion:       pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupPrivateLinkEndpointOutput(ctx, mongodbatlas.GetPrivateLinkEndpointOutputArgs{\n\t\t\tProjectId:     thisPrivateLinkEndpoint.ProjectId,\n\t\t\tPrivateLinkId: thisPrivateLinkEndpoint.PrivateLinkId,\n\t\t\tProviderName:  pulumi.String(\"AWS\"),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpoint;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetPrivateLinkEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisPrivateLinkEndpoint = new PrivateLinkEndpoint(\"thisPrivateLinkEndpoint\", PrivateLinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"AWS\")\n            .region(\"US_EAST_1\")\n            .build());\n\n        final var this = MongodbatlasFunctions.getPrivateLinkEndpoint(GetPrivateLinkEndpointArgs.builder()\n            .projectId(thisPrivateLinkEndpoint.projectId())\n            .privateLinkId(thisPrivateLinkEndpoint.privateLinkId())\n            .providerName(\"AWS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisPrivateLinkEndpoint:\n    type: mongodbatlas:PrivateLinkEndpoint\n    name: this\n    properties:\n      projectId: ${projectId}\n      providerName: AWS\n      region: US_EAST_1\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getPrivateLinkEndpoint\n      arguments:\n        projectId: ${thisPrivateLinkEndpoint.projectId}\n        privateLinkId: ${thisPrivateLinkEndpoint.privateLinkId}\n        providerName: AWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS PrivateLink Endpoint\n- Azure PrivateLink Endpoint\n- GCP Private Service Connect Endpoint (Port-Mapped Architecture)\n","inputs":{"description":"A collection of arguments for invoking getPrivateLinkEndpoint.\n","properties":{"privateLinkId":{"type":"string","description":"Unique identifier of the private endpoint that you want to retrieve.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"Unique identifier for the project.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Cloud provider for which you want to retrieve a private endpoint service. Atlas accepts `AWS`, `AZURE`, or `GCP`.\n","willReplaceOnChanges":true}},"type":"object","required":["privateLinkId","projectId","providerName"]},"outputs":{"description":"A collection of values returned by getPrivateLinkEndpoint.\n","properties":{"endpointGroupNames":{"description":"List of private endpoint names associated with the private endpoint service for port-mapped architectures. For GCP legacy private endpoint architectures, this is a list of endpoint group names associated with the private endpoint service.\n","items":{"type":"string"},"type":"array"},"endpointServiceName":{"description":"Name of the PrivateLink endpoint service in AWS. Returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e while Atlas creates the endpoint service.\n","type":"string"},"errorMessage":{"description":"Error message for the private endpoint connection. Returns \u003cspan pulumi-lang-nodejs=\"`null`\" pulumi-lang-dotnet=\"`Null`\" pulumi-lang-go=\"`null`\" pulumi-lang-python=\"`null`\" pulumi-lang-yaml=\"`null`\" pulumi-lang-java=\"`null`\"\u003e`null`\u003c/span\u003e if there are no errors.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"interfaceEndpoints":{"description":"Unique identifiers of the interface endpoints in your VPC that you added to the AWS PrivateLink connection.\n","items":{"type":"string"},"type":"array"},"portMappingEnabled":{"description":"Flag that indicates whether this resource uses GCP port-mapping. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the resource uses port-mapped architecture. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e or unset, the resource uses GCP legacy private endpoint architecture. Only applicable for GCP provider.\n","type":"boolean"},"privateEndpoints":{"description":"All private endpoints that you have added to this Azure Private Link Service.\n","items":{"type":"string"},"type":"array"},"privateLinkId":{"type":"string"},"privateLinkServiceName":{"description":"Name of the Azure Private Link Service that Atlas manages.\n","type":"string"},"privateLinkServiceResourceId":{"description":"Resource ID of the Azure Private Link Service that Atlas manages.\n","type":"string"},"projectId":{"type":"string"},"providerName":{"type":"string"},"regionName":{"description":"Region for the Private Service Connect endpoint service.\n","type":"string"},"serviceAttachmentNames":{"description":"List containing one service attachment connected to the private endpoint service for port-mapped architecture. For GCP legacy private endpoint architecture, this is a list of service attachments connected to the private endpoint service (one per Atlas node). Returns an empty list while Atlas creates the service attachments.\n","items":{"type":"string"},"type":"array"},"status":{"description":"Status of the AWS PrivateLink connection.\nReturns one of the following values:\n* `AVAILABLE` - Atlas created the load balancer and the Private Link Service.\n* `INITIATING` - Atlas is creating the network load balancer and VPC endpoint service.\n* `WAITING_FOR_USER` - The Atlas network load balancer and VPC endpoint service are created and ready to receive connection requests. When you receive this status, create an interface endpoint to continue configuring the AWS PrivateLink connection.\n* `FAILED` - A system failure occurred.\n* `DELETING` - Atlas is deleting the Private Link service.\n","type":"string"}},"required":["endpointGroupNames","endpointServiceName","errorMessage","interfaceEndpoints","portMappingEnabled","privateEndpoints","privateLinkId","privateLinkServiceName","privateLinkServiceResourceId","projectId","providerName","regionName","serviceAttachmentNames","status","id"],"type":"object"}},"mongodbatlas:index/getPrivateLinkEndpointService:getPrivateLinkEndpointService":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-go=\"`PrivateLinkEndpointService`\" pulumi-lang-python=\"`PrivateLinkEndpointService`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpointService`\"\u003e`mongodbatlas.PrivateLinkEndpointService`\u003c/span\u003e describes a Private Endpoint Link. This represents a Private Endpoint Link Connection that wants to retrieve details in an Atlas project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst _this = mongodbatlas.getPrivateLinkEndpointService({\n    projectId: thisMongodbatlasPrivatelinkEndpointService.projectId,\n    privateLinkId: thisMongodbatlasPrivatelinkEndpointService.privateLinkId,\n    endpointServiceId: thisMongodbatlasPrivatelinkEndpointService.endpointServiceId,\n    providerName: \"AWS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis = mongodbatlas.get_private_link_endpoint_service(project_id=this_mongodbatlas_privatelink_endpoint_service[\"projectId\"],\n    private_link_id=this_mongodbatlas_privatelink_endpoint_service[\"privateLinkId\"],\n    endpoint_service_id=this_mongodbatlas_privatelink_endpoint_service[\"endpointServiceId\"],\n    provider_name=\"AWS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @this = Mongodbatlas.GetPrivateLinkEndpointService.Invoke(new()\n    {\n        ProjectId = thisMongodbatlasPrivatelinkEndpointService.ProjectId,\n        PrivateLinkId = thisMongodbatlasPrivatelinkEndpointService.PrivateLinkId,\n        EndpointServiceId = thisMongodbatlasPrivatelinkEndpointService.EndpointServiceId,\n        ProviderName = \"AWS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupPrivateLinkEndpointService(ctx, \u0026mongodbatlas.LookupPrivateLinkEndpointServiceArgs{\n\t\t\tProjectId:         thisMongodbatlasPrivatelinkEndpointService.ProjectId,\n\t\t\tPrivateLinkId:     thisMongodbatlasPrivatelinkEndpointService.PrivateLinkId,\n\t\t\tEndpointServiceId: thisMongodbatlasPrivatelinkEndpointService.EndpointServiceId,\n\t\t\tProviderName:      \"AWS\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetPrivateLinkEndpointServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var this = MongodbatlasFunctions.getPrivateLinkEndpointService(GetPrivateLinkEndpointServiceArgs.builder()\n            .projectId(thisMongodbatlasPrivatelinkEndpointService.projectId())\n            .privateLinkId(thisMongodbatlasPrivatelinkEndpointService.privateLinkId())\n            .endpointServiceId(thisMongodbatlasPrivatelinkEndpointService.endpointServiceId())\n            .providerName(\"AWS\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getPrivateLinkEndpointService\n      arguments:\n        projectId: ${thisMongodbatlasPrivatelinkEndpointService.projectId}\n        privateLinkId: ${thisMongodbatlasPrivatelinkEndpointService.privateLinkId}\n        endpointServiceId: ${thisMongodbatlasPrivatelinkEndpointService.endpointServiceId}\n        providerName: AWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nSee \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-go=\"`PrivateLinkEndpointService`\" pulumi-lang-python=\"`PrivateLinkEndpointService`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpointService`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpointService`\"\u003e`mongodbatlas.PrivateLinkEndpointService`\u003c/span\u003e resource for complete examples with each cloud provider.\n\n### Available complete examples\n- Setup private connection to a MongoDB Atlas Cluster with AWS VPC\n- GCP Private Service Connect Endpoint and Service (Port-Mapped Architecture)\n","inputs":{"description":"A collection of arguments for invoking getPrivateLinkEndpointService.\n","properties":{"endpointServiceId":{"type":"string","description":"Unique identifier of the interface endpoint you created in your VPC. For `AWS` and `AZURE`, this is the interface endpoint identifier. For `GCP` port-mapped architecture, this is the forwarding rule name. For `GCP` legacy private endpoint architecture, this is the endpoint group name.\n","willReplaceOnChanges":true},"privateLinkId":{"type":"string","description":"Unique identifier of the `AWS`, `AZURE` or `GCP` PrivateLink connection which is created by \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-go=\"`PrivateLinkEndpoint`\" pulumi-lang-python=\"`PrivateLinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.PrivateLinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.PrivateLinkEndpoint`\"\u003e`mongodbatlas.PrivateLinkEndpoint`\u003c/span\u003e resource.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"Unique identifier for the project, also known as \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e in the official documentation.\n","willReplaceOnChanges":true},"providerName":{"type":"string","description":"Cloud provider for which you want to create a private endpoint. Atlas accepts `AWS`, `AZURE` or `GCP`.\n","willReplaceOnChanges":true}},"type":"object","required":["endpointServiceId","privateLinkId","projectId","providerName"]},"outputs":{"description":"A collection of values returned by getPrivateLinkEndpointService.\n","properties":{"awsConnectionStatus":{"description":"Status of the interface endpoint for AWS.\nReturns one of the following values:\n* `NONE` - Atlas created the network load balancer and VPC endpoint service, but AWS hasn't yet created the VPC endpoint.\n* `PENDING_ACCEPTANCE` - AWS has received the connection request from your VPC endpoint to the Atlas VPC endpoint service.\n* `PENDING` - AWS is establishing the connection between your VPC endpoint and the Atlas VPC endpoint service.\n* `AVAILABLE` - Atlas VPC resources are connected to the VPC endpoint in your VPC. You can connect to Atlas clusters in this region using AWS PrivateLink.\n* `REJECTED` - AWS failed to establish a connection between Atlas VPC resources to the VPC endpoint in your VPC.\n* `DELETING` - Atlas is removing the interface endpoint from the private endpoint connection.\n","type":"string"},"azureStatus":{"description":"Status of the interface endpoint for AZURE.\nReturns one of the following values:\n* `INITIATING` - Atlas has not yet accepted the connection to your private endpoint.\n* `AVAILABLE` - Atlas approved the connection to your private endpoint.\n* `FAILED` - Atlas failed to accept the connection your private endpoint.\n* `DELETING` - Atlas is removing the connection to your private endpoint from the Private Link service.\n","type":"string"},"deleteRequested":{"description":"Indicates if Atlas received a request to remove the interface endpoint from the private endpoint connection.\n","type":"boolean"},"endpointServiceId":{"type":"string"},"endpoints":{"description":"Collection of individual private endpoints that comprise your network endpoint group. Only populated for GCP legacy private endpoint architecture.\n","items":{"$ref":"#/types/mongodbatlas:index/getPrivateLinkEndpointServiceEndpoint:getPrivateLinkEndpointServiceEndpoint"},"type":"array"},"errorMessage":{"description":"Error message pertaining to the interface endpoint. Returns null if there are no errors.\n","type":"string"},"gcpEndpointStatus":{"description":"Status of the individual endpoint. Only populated for port-mapped architecture. Returns one of the following values: `INITIATING`, `AVAILABLE`, `FAILED`, `DELETING`.\n","type":"string"},"gcpProjectId":{"description":"Unique identifier of the GCP project in which the endpoints were created. Only applicable for GCP provider.\n","type":"string"},"gcpStatus":{"description":"Status of the interface endpoint.\nReturns one of the following values:\n* `INITIATING` - Atlas has not yet accepted the connection to your private endpoint.\n* `AVAILABLE` - Atlas approved the connection to your private endpoint.\n* `FAILED` - Atlas failed to accept the connection your private endpoint.\n* `DELETING` - Atlas is removing the connection to your private endpoint from the Private Link service.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"interfaceEndpointId":{"description":"Unique identifier of the interface endpoint.\n","type":"string"},"portMappingEnabled":{"description":"Flag that indicates whether the underlying \u003cspan pulumi-lang-nodejs=\"`privatelinkEndpoint`\" pulumi-lang-dotnet=\"`PrivatelinkEndpoint`\" pulumi-lang-go=\"`privatelinkEndpoint`\" pulumi-lang-python=\"`privatelink_endpoint`\" pulumi-lang-yaml=\"`privatelinkEndpoint`\" pulumi-lang-java=\"`privatelinkEndpoint`\"\u003e`privatelink_endpoint`\u003c/span\u003e resource uses GCP port-mapping. This is a read-only attribute that reflects the architecture type. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the endpoint service uses the port-mapped architecture. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, it uses the GCP legacy private endpoint architecture. Only applicable for GCP provider.\n","type":"boolean"},"privateEndpointConnectionName":{"description":"Name of the connection for this private endpoint that Atlas generates.\n","type":"string"},"privateEndpointIpAddress":{"description":"Private IP address of the private endpoint network interface. For port-mapped architecture, this is required and is the IP address of the forwarding rule. For GCP legacy private endpoint architecture, this is not used.\n","type":"string"},"privateEndpointResourceId":{"description":"Unique identifier of the private endpoint.\n","type":"string"},"privateLinkId":{"type":"string"},"projectId":{"type":"string"},"providerName":{"type":"string"}},"required":["awsConnectionStatus","azureStatus","deleteRequested","endpointServiceId","endpoints","errorMessage","gcpEndpointStatus","gcpProjectId","gcpStatus","interfaceEndpointId","portMappingEnabled","privateEndpointConnectionName","privateEndpointIpAddress","privateEndpointResourceId","privateLinkId","projectId","providerName","id"],"type":"object"}},"mongodbatlas:index/getPrivatelinkEndpointServiceDataFederationOnlineArchive:getPrivatelinkEndpointServiceDataFederationOnlineArchive":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive`\" pulumi-lang-dotnet=\"`mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive`\" pulumi-lang-go=\"`PrivatelinkEndpointServiceDataFederationOnlineArchive`\" pulumi-lang-python=\"`PrivatelinkEndpointServiceDataFederationOnlineArchive`\" pulumi-lang-yaml=\"`mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive`\" pulumi-lang-java=\"`mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive`\"\u003e`mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive`\u003c/span\u003e describes a Private Endpoint Service resource for Data Federation and Online Archive.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst atlas_project = new mongodbatlas.Project(\"atlas-project\", {\n    orgId: atlasOrgId,\n    name: atlasProjectName,\n});\nconst test = new mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\", {\n    projectId: atlas_project.id,\n    endpointId: \"vpce-046cf43c79424d4c9\",\n    providerName: \"AWS\",\n    comment: \"Test\",\n    region: \"US_EAST_1\",\n    customerEndpointDnsName: \"vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\",\n});\nconst testDataSource = mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchiveOutput({\n    projectId: atlas_project.id,\n    endpointId: test.endpointId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\natlas_project = mongodbatlas.Project(\"atlas-project\",\n    org_id=atlas_org_id,\n    name=atlas_project_name)\ntest = mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\",\n    project_id=atlas_project.id,\n    endpoint_id=\"vpce-046cf43c79424d4c9\",\n    provider_name=\"AWS\",\n    comment=\"Test\",\n    region=\"US_EAST_1\",\n    customer_endpoint_dns_name=\"vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\")\ntest_data_source = mongodbatlas.get_privatelink_endpoint_service_data_federation_online_archive_output(project_id=atlas_project.id,\n    endpoint_id=test.endpoint_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var atlas_project = new Mongodbatlas.Project(\"atlas-project\", new()\n    {\n        OrgId = atlasOrgId,\n        Name = atlasProjectName,\n    });\n\n    var test = new Mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\", new()\n    {\n        ProjectId = atlas_project.Id,\n        EndpointId = \"vpce-046cf43c79424d4c9\",\n        ProviderName = \"AWS\",\n        Comment = \"Test\",\n        Region = \"US_EAST_1\",\n        CustomerEndpointDnsName = \"vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\",\n    });\n\n    var testDataSource = Mongodbatlas.GetPrivatelinkEndpointServiceDataFederationOnlineArchive.Invoke(new()\n    {\n        ProjectId = atlas_project.Id,\n        EndpointId = test.EndpointId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tatlas_project, err := mongodbatlas.NewProject(ctx, \"atlas-project\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tOrgId: pulumi.Any(atlasOrgId),\n\t\t\tName:  pulumi.Any(atlasProjectName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest, err := mongodbatlas.NewPrivatelinkEndpointServiceDataFederationOnlineArchive(ctx, \"test\", \u0026mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs{\n\t\t\tProjectId:               atlas_project.ID(),\n\t\t\tEndpointId:              pulumi.String(\"vpce-046cf43c79424d4c9\"),\n\t\t\tProviderName:            pulumi.String(\"AWS\"),\n\t\t\tComment:                 pulumi.String(\"Test\"),\n\t\t\tRegion:                  pulumi.String(\"US_EAST_1\"),\n\t\t\tCustomerEndpointDnsName: pulumi.String(\"vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupPrivatelinkEndpointServiceDataFederationOnlineArchiveOutput(ctx, mongodbatlas.GetPrivatelinkEndpointServiceDataFederationOnlineArchiveOutputArgs{\n\t\t\tProjectId:  atlas_project.ID(),\n\t\t\tEndpointId: test.EndpointId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive;\nimport com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointServiceDataFederationOnlineArchiveArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var atlas_project = new Project(\"atlas-project\", ProjectArgs.builder()\n            .orgId(atlasOrgId)\n            .name(atlasProjectName)\n            .build());\n\n        var test = new PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\", PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs.builder()\n            .projectId(atlas_project.id())\n            .endpointId(\"vpce-046cf43c79424d4c9\")\n            .providerName(\"AWS\")\n            .comment(\"Test\")\n            .region(\"US_EAST_1\")\n            .customerEndpointDnsName(\"vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\")\n            .build());\n\n        final var testDataSource = MongodbatlasFunctions.getPrivatelinkEndpointServiceDataFederationOnlineArchive(GetPrivatelinkEndpointServiceDataFederationOnlineArchiveArgs.builder()\n            .projectId(atlas_project.id())\n            .endpointId(test.endpointId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  atlas-project:\n    type: mongodbatlas:Project\n    properties:\n      orgId: ${atlasOrgId}\n      name: ${atlasProjectName}\n  test:\n    type: mongodbatlas:PrivatelinkEndpointServiceDataFederationOnlineArchive\n    properties:\n      projectId: ${[\"atlas-project\"].id}\n      endpointId: vpce-046cf43c79424d4c9\n      providerName: AWS\n      comment: Test\n      region: US_EAST_1\n      customerEndpointDnsName: vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\nvariables:\n  testDataSource:\n    fn::invoke:\n      function: mongodbatlas:getPrivatelinkEndpointServiceDataFederationOnlineArchive\n      arguments:\n        projectId: ${[\"atlas-project\"].id}\n        endpointId: ${test.endpointId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivatelinkEndpointServiceDataFederationOnlineArchive.\n","properties":{"endpointId":{"type":"string","description":"Unique 22-character alphanumeric string that identifies the private endpoint. See [Atlas Data Federation supports Amazon Web Services private endpoints using the AWS PrivateLink feature](https://www.mongodb.com/docs/atlas/reference/api-resources-spec/#tag/Data-Federation/operation/createDataFederationPrivateEndpoint).\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["endpointId","projectId"]},"outputs":{"description":"A collection of values returned by getPrivatelinkEndpointServiceDataFederationOnlineArchive.\n","properties":{"comment":{"description":"Human-readable string to associate with this private endpoint.\n","type":"string"},"customerEndpointDnsName":{"description":"(Optional) Human-readable label to identify VPC endpoint DNS name.\n","type":"string"},"endpointId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"providerName":{"description":"Human-readable label that identifies the cloud service provider.\n","type":"string"},"region":{"description":"Human-readable label to identify the region of VPC endpoint.  Requires the **Atlas region name**, see the reference list for [AWS](https://docs.atlas.mongodb.com/reference/amazon-aws/), [GCP](https://docs.atlas.mongodb.com/reference/google-gcp/), [Azure](https://docs.atlas.mongodb.com/reference/microsoft-azure/).\n","type":"string"},"type":{"description":"Human-readable label that identifies the resource type associated with this private endpoint.\n","type":"string"}},"required":["comment","customerEndpointDnsName","endpointId","projectId","providerName","region","type","id"],"type":"object"}},"mongodbatlas:index/getPrivatelinkEndpointServiceDataFederationOnlineArchives:getPrivatelinkEndpointServiceDataFederationOnlineArchives":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives`\" pulumi-lang-dotnet=\"`mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives`\" pulumi-lang-go=\"`getPrivatelinkEndpointServiceDataFederationOnlineArchives`\" pulumi-lang-python=\"`get_privatelink_endpoint_service_data_federation_online_archives`\" pulumi-lang-yaml=\"`mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives`\" pulumi-lang-java=\"`mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives`\"\u003e`mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchives`\u003c/span\u003e describes Private Endpoint Service resources for Data Federation and Online Archive.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst atlas_project = new mongodbatlas.Project(\"atlas-project\", {\n    orgId: atlasOrgId,\n    name: atlasProjectName,\n});\nconst test = new mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\", {\n    projectId: atlas_project.id,\n    endpointId: \"vpce-046cf43c79424d4c9\",\n    providerName: \"AWS\",\n    comment: \"Test\",\n    region: \"US_EAST_1\",\n    customerEndpointDnsName: \"vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\",\n});\nconst testDataSource = mongodbatlas.getPrivatelinkEndpointServiceDataFederationOnlineArchivesOutput({\n    projectId: atlas_project.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\natlas_project = mongodbatlas.Project(\"atlas-project\",\n    org_id=atlas_org_id,\n    name=atlas_project_name)\ntest = mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\",\n    project_id=atlas_project.id,\n    endpoint_id=\"vpce-046cf43c79424d4c9\",\n    provider_name=\"AWS\",\n    comment=\"Test\",\n    region=\"US_EAST_1\",\n    customer_endpoint_dns_name=\"vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\")\ntest_data_source = mongodbatlas.get_privatelink_endpoint_service_data_federation_online_archives_output(project_id=atlas_project.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var atlas_project = new Mongodbatlas.Project(\"atlas-project\", new()\n    {\n        OrgId = atlasOrgId,\n        Name = atlasProjectName,\n    });\n\n    var test = new Mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\", new()\n    {\n        ProjectId = atlas_project.Id,\n        EndpointId = \"vpce-046cf43c79424d4c9\",\n        ProviderName = \"AWS\",\n        Comment = \"Test\",\n        Region = \"US_EAST_1\",\n        CustomerEndpointDnsName = \"vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\",\n    });\n\n    var testDataSource = Mongodbatlas.GetPrivatelinkEndpointServiceDataFederationOnlineArchives.Invoke(new()\n    {\n        ProjectId = atlas_project.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tatlas_project, err := mongodbatlas.NewProject(ctx, \"atlas-project\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tOrgId: pulumi.Any(atlasOrgId),\n\t\t\tName:  pulumi.Any(atlasProjectName),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewPrivatelinkEndpointServiceDataFederationOnlineArchive(ctx, \"test\", \u0026mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs{\n\t\t\tProjectId:               atlas_project.ID(),\n\t\t\tEndpointId:              pulumi.String(\"vpce-046cf43c79424d4c9\"),\n\t\t\tProviderName:            pulumi.String(\"AWS\"),\n\t\t\tComment:                 pulumi.String(\"Test\"),\n\t\t\tRegion:                  pulumi.String(\"US_EAST_1\"),\n\t\t\tCustomerEndpointDnsName: pulumi.String(\"vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupPrivatelinkEndpointServiceDataFederationOnlineArchivesOutput(ctx, mongodbatlas.GetPrivatelinkEndpointServiceDataFederationOnlineArchivesOutputArgs{\n\t\t\tProjectId: atlas_project.ID(),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchive;\nimport com.pulumi.mongodbatlas.PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var atlas_project = new Project(\"atlas-project\", ProjectArgs.builder()\n            .orgId(atlasOrgId)\n            .name(atlasProjectName)\n            .build());\n\n        var test = new PrivatelinkEndpointServiceDataFederationOnlineArchive(\"test\", PrivatelinkEndpointServiceDataFederationOnlineArchiveArgs.builder()\n            .projectId(atlas_project.id())\n            .endpointId(\"vpce-046cf43c79424d4c9\")\n            .providerName(\"AWS\")\n            .comment(\"Test\")\n            .region(\"US_EAST_1\")\n            .customerEndpointDnsName(\"vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\")\n            .build());\n\n        final var testDataSource = MongodbatlasFunctions.getPrivatelinkEndpointServiceDataFederationOnlineArchives(GetPrivatelinkEndpointServiceDataFederationOnlineArchivesArgs.builder()\n            .projectId(atlas_project.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  atlas-project:\n    type: mongodbatlas:Project\n    properties:\n      orgId: ${atlasOrgId}\n      name: ${atlasProjectName}\n  test:\n    type: mongodbatlas:PrivatelinkEndpointServiceDataFederationOnlineArchive\n    properties:\n      projectId: ${[\"atlas-project\"].id}\n      endpointId: vpce-046cf43c79424d4c9\n      providerName: AWS\n      comment: Test\n      region: US_EAST_1\n      customerEndpointDnsName: vpce-046cf43c79424d4c9-nmls2y9k.vpce-svc-0824460b72e1a420e.us-east-1.vpce.amazonaws.com\nvariables:\n  testDataSource:\n    fn::invoke:\n      function: mongodbatlas:getPrivatelinkEndpointServiceDataFederationOnlineArchives\n      arguments:\n        projectId: ${[\"atlas-project\"].id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPrivatelinkEndpointServiceDataFederationOnlineArchives.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getPrivatelinkEndpointServiceDataFederationOnlineArchives.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"description":"A list where each represents a Private Endpoint Service\n","items":{"$ref":"#/types/mongodbatlas:index/getPrivatelinkEndpointServiceDataFederationOnlineArchivesResult:getPrivatelinkEndpointServiceDataFederationOnlineArchivesResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getPrivatelinkEndpoints:getPrivatelinkEndpoints":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getPrivatelinkEndpoints`\" pulumi-lang-dotnet=\"`mongodbatlas.getPrivatelinkEndpoints`\" pulumi-lang-go=\"`getPrivatelinkEndpoints`\" pulumi-lang-python=\"`get_privatelink_endpoints`\" pulumi-lang-yaml=\"`mongodbatlas.getPrivatelinkEndpoints`\" pulumi-lang-java=\"`mongodbatlas.getPrivatelinkEndpoints`\"\u003e`mongodbatlas.getPrivatelinkEndpoints`\u003c/span\u003e describes all Private Endpoints for a given cloud provider in an Atlas project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. The official documentation uses \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e.\n\n\u003e **IMPORTANT:** Before configuring a private endpoint for a new region in your cluster, review the [Multi-Region Private Endpoints](https://www.mongodb.com/docs/atlas/troubleshoot-private-endpoints/#multi-region-private-endpoints) troubleshooting documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisPrivateLinkEndpoint = new mongodbatlas.PrivateLinkEndpoint(\"this\", {\n    projectId: projectId,\n    providerName: \"AWS\",\n    region: \"US_EAST_1\",\n});\nconst _this = mongodbatlas.getPrivatelinkEndpointsOutput({\n    projectId: thisPrivateLinkEndpoint.projectId,\n    providerName: \"AWS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_private_link_endpoint = mongodbatlas.PrivateLinkEndpoint(\"this\",\n    project_id=project_id,\n    provider_name=\"AWS\",\n    region=\"US_EAST_1\")\nthis = mongodbatlas.get_privatelink_endpoints_output(project_id=this_private_link_endpoint.project_id,\n    provider_name=\"AWS\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisPrivateLinkEndpoint = new Mongodbatlas.PrivateLinkEndpoint(\"this\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"AWS\",\n        Region = \"US_EAST_1\",\n    });\n\n    var @this = Mongodbatlas.GetPrivatelinkEndpoints.Invoke(new()\n    {\n        ProjectId = thisPrivateLinkEndpoint.ProjectId,\n        ProviderName = \"AWS\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisPrivateLinkEndpoint, err := mongodbatlas.NewPrivateLinkEndpoint(ctx, \"this\", \u0026mongodbatlas.PrivateLinkEndpointArgs{\n\t\t\tProjectId:    pulumi.Any(projectId),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\tRegion:       pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupPrivatelinkEndpointsOutput(ctx, mongodbatlas.GetPrivatelinkEndpointsOutputArgs{\n\t\t\tProjectId:    thisPrivateLinkEndpoint.ProjectId,\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpoint;\nimport com.pulumi.mongodbatlas.PrivateLinkEndpointArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetPrivatelinkEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisPrivateLinkEndpoint = new PrivateLinkEndpoint(\"thisPrivateLinkEndpoint\", PrivateLinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"AWS\")\n            .region(\"US_EAST_1\")\n            .build());\n\n        final var this = MongodbatlasFunctions.getPrivatelinkEndpoints(GetPrivatelinkEndpointsArgs.builder()\n            .projectId(thisPrivateLinkEndpoint.projectId())\n            .providerName(\"AWS\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisPrivateLinkEndpoint:\n    type: mongodbatlas:PrivateLinkEndpoint\n    name: this\n    properties:\n      projectId: ${projectId}\n      providerName: AWS\n      region: US_EAST_1\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getPrivatelinkEndpoints\n      arguments:\n        projectId: ${thisPrivateLinkEndpoint.projectId}\n        providerName: AWS\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Further Examples\n- AWS PrivateLink Endpoint\n- Azure PrivateLink Endpoint\n- GCP Private Service Connect Endpoint (Port-Mapped Architecture)\n","inputs":{"description":"A collection of arguments for invoking getPrivatelinkEndpoints.\n","properties":{"projectId":{"type":"string","description":"Unique identifier for the project.\n"},"providerName":{"type":"string","description":"Cloud provider for which you want to retrieve private endpoint services. Atlas accepts `AWS`, `AZURE`, or `GCP`.\n"}},"type":"object","required":["projectId","providerName"]},"outputs":{"description":"A collection of values returned by getPrivatelinkEndpoints.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"providerName":{"type":"string"},"results":{"description":"A list of Private Endpoints. (see below for nested schema)\n","items":{"$ref":"#/types/mongodbatlas:index/getPrivatelinkEndpointsResult:getPrivatelinkEndpointsResult"},"type":"array"}},"required":["projectId","providerName","results","id"],"type":"object"}},"mongodbatlas:index/getProject:getProject":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Project`\" pulumi-lang-dotnet=\"`mongodbatlas.Project`\" pulumi-lang-go=\"`Project`\" pulumi-lang-python=\"`Project`\" pulumi-lang-yaml=\"`mongodbatlas.Project`\" pulumi-lang-java=\"`mongodbatlas.Project`\"\u003e`mongodbatlas.Project`\u003c/span\u003e describes a MongoDB Atlas Project. This represents a project that has been created.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n### Using\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eattribute to query\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getRolesOrgId({});\nconst testProject = new mongodbatlas.Project(\"test\", {\n    name: \"project-name\",\n    orgId: test.then(test =\u003e test.orgId),\n    limits: [{\n        name: \"atlas.project.deployment.clusters\",\n        value: 26,\n    }],\n});\nconst testGetProject = mongodbatlas.getProjectOutput({\n    projectId: testProject.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_roles_org_id()\ntest_project = mongodbatlas.Project(\"test\",\n    name=\"project-name\",\n    org_id=test.org_id,\n    limits=[{\n        \"name\": \"atlas.project.deployment.clusters\",\n        \"value\": 26,\n    }])\ntest_get_project = mongodbatlas.get_project_output(project_id=test_project.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetRolesOrgId.Invoke();\n\n    var testProject = new Mongodbatlas.Project(\"test\", new()\n    {\n        Name = \"project-name\",\n        OrgId = test.Apply(getRolesOrgIdResult =\u003e getRolesOrgIdResult.OrgId),\n        Limits = new[]\n        {\n            new Mongodbatlas.Inputs.ProjectLimitArgs\n            {\n                Name = \"atlas.project.deployment.clusters\",\n                Value = 26,\n            },\n        },\n    });\n\n    var testGetProject = Mongodbatlas.GetProject.Invoke(new()\n    {\n        ProjectId = testProject.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.GetRolesOrgId(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestProject, err := mongodbatlas.NewProject(ctx, \"test\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.String(\"project-name\"),\n\t\t\tOrgId: pulumi.String(test.OrgId),\n\t\t\tLimits: mongodbatlas.ProjectLimitArray{\n\t\t\t\t\u0026mongodbatlas.ProjectLimitArgs{\n\t\t\t\t\tName:  pulumi.String(\"atlas.project.deployment.clusters\"),\n\t\t\t\t\tValue: pulumi.Int(26),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupProjectOutput(ctx, mongodbatlas.GetProjectOutputArgs{\n\t\t\tProjectId: testProject.ID(),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;\nimport com.pulumi.mongodbatlas.inputs.GetProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getRolesOrgId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var testProject = new Project(\"testProject\", ProjectArgs.builder()\n            .name(\"project-name\")\n            .orgId(test.orgId())\n            .limits(ProjectLimitArgs.builder()\n                .name(\"atlas.project.deployment.clusters\")\n                .value(26)\n                .build())\n            .build());\n\n        final var testGetProject = MongodbatlasFunctions.getProject(GetProjectArgs.builder()\n            .projectId(testProject.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testProject:\n    type: mongodbatlas:Project\n    name: test\n    properties:\n      name: project-name\n      orgId: ${test.orgId}\n      limits:\n        - name: atlas.project.deployment.clusters\n          value: 26\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getRolesOrgId\n      arguments: {}\n  testGetProject:\n    fn::invoke:\n      function: mongodbatlas:getProject\n      arguments:\n        projectId: ${testProject.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using name attribute to query\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testProject = new mongodbatlas.Project(\"test\", {\n    name: \"project-name\",\n    orgId: \"\u003cORG_ID\u003e\",\n    limits: [{\n        name: \"atlas.project.deployment.clusters\",\n        value: 26,\n    }],\n});\nconst test = mongodbatlas.getProjectOutput({\n    name: testProject.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_project = mongodbatlas.Project(\"test\",\n    name=\"project-name\",\n    org_id=\"\u003cORG_ID\u003e\",\n    limits=[{\n        \"name\": \"atlas.project.deployment.clusters\",\n        \"value\": 26,\n    }])\ntest = mongodbatlas.get_project_output(name=test_project.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testProject = new Mongodbatlas.Project(\"test\", new()\n    {\n        Name = \"project-name\",\n        OrgId = \"\u003cORG_ID\u003e\",\n        Limits = new[]\n        {\n            new Mongodbatlas.Inputs.ProjectLimitArgs\n            {\n                Name = \"atlas.project.deployment.clusters\",\n                Value = 26,\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetProject.Invoke(new()\n    {\n        Name = testProject.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestProject, err := mongodbatlas.NewProject(ctx, \"test\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.String(\"project-name\"),\n\t\t\tOrgId: pulumi.String(\"\u003cORG_ID\u003e\"),\n\t\t\tLimits: mongodbatlas.ProjectLimitArray{\n\t\t\t\t\u0026mongodbatlas.ProjectLimitArgs{\n\t\t\t\t\tName:  pulumi.String(\"atlas.project.deployment.clusters\"),\n\t\t\t\t\tValue: pulumi.Int(26),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupProjectOutput(ctx, mongodbatlas.GetProjectOutputArgs{\n\t\t\tName: testProject.Name,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testProject = new Project(\"testProject\", ProjectArgs.builder()\n            .name(\"project-name\")\n            .orgId(\"\u003cORG_ID\u003e\")\n            .limits(ProjectLimitArgs.builder()\n                .name(\"atlas.project.deployment.clusters\")\n                .value(26)\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getProject(GetProjectArgs.builder()\n            .name(testProject.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testProject:\n    type: mongodbatlas:Project\n    name: test\n    properties:\n      name: project-name\n      orgId: \u003cORG_ID\u003e\n      limits:\n        - name: atlas.project.deployment.clusters\n          value: 26\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getProject\n      arguments:\n        name: ${testProject.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProject.\n","properties":{"name":{"type":"string","description":"The unique ID for the project.\n\n\u003e **IMPORTANT:** Either \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e must be configurated.\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProject.\n","properties":{"clusterCount":{"description":"The number of Atlas clusters deployed in the project.\n","type":"integer"},"created":{"description":"The ISO-8601-formatted timestamp of when Atlas created the project.\n","type":"string"},"id":{"description":"Unique 24-hexadecimal digit string that identifies the MongoDB Cloud user.\n* `orgMembershipStatus`- String enum that indicates whether the MongoDB Cloud user has a pending invitation to join the organization or they are already active in the organization.\n","type":"string"},"ipAddresses":{"$ref":"#/types/mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses","deprecationMessage":"This parameter is deprecated. Please transition to\u003cspan pulumi-lang-nodejs=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-dotnet=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-go=\" getProjectIpAddresses \" pulumi-lang-python=\" get_project_ip_addresses \" pulumi-lang-yaml=\" mongodbatlas.getProjectIpAddresses \" pulumi-lang-java=\" mongodbatlas.getProjectIpAddresses \"\u003e mongodbatlas.getProjectIpAddresses \u003c/span\u003edata source.","description":"IP addresses in a project categorized by services. See IP Addresses. **WARNING:** This attribute is deprecated, use the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-go=\"`getProjectIpAddresses`\" pulumi-lang-python=\"`get_project_ip_addresses`\" pulumi-lang-yaml=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-java=\"`mongodbatlas.getProjectIpAddresses`\"\u003e`mongodbatlas.getProjectIpAddresses`\u003c/span\u003e data source instead.\n"},"isCollectDatabaseSpecificsStatisticsEnabled":{"description":"Flag that indicates whether to enable statistics in [cluster metrics](https://www.mongodb.com/docs/atlas/monitor-cluster-metrics/) collection for the project.\n","type":"boolean"},"isDataExplorerEnabled":{"description":"Flag that indicates whether to enable Data Explorer for the project. If enabled, you can query your database with an easy to use interface.\n","type":"boolean"},"isExtendedStorageSizesEnabled":{"description":"Flag that indicates whether to enable extended storage sizes for the specified project.\n","type":"boolean"},"isPerformanceAdvisorEnabled":{"description":"Flag that indicates whether to enable Performance Advisor and Profiler for the project. If enabled, you can analyze database logs to recommend performance improvements.\n","type":"boolean"},"isRealtimePerformancePanelEnabled":{"description":"Flag that indicates whether to enable Real Time Performance Panel for the project. If enabled, you can see real time metrics from your MongoDB database.\n","type":"boolean"},"isSchemaAdvisorEnabled":{"description":"Flag that indicates whether to enable Schema Advisor for the project. If enabled, you receive customized recommendations to optimize your data model and enhance performance. Disable this setting to disable schema suggestions in the [Performance Advisor](https://www.mongodb.com/docs/atlas/performance-advisor/#std-label-performance-advisor) and the [Data Explorer](https://www.mongodb.com/docs/atlas/atlas-ui/#std-label-atlas-ui).\n","type":"boolean"},"isSlowOperationThresholdingEnabled":{"deprecationMessage":"This parameter is deprecated.","description":"(Deprecated) Flag that enables MongoDB Cloud to use its slow operation threshold for the specified project. The threshold determines which operations the Performance Advisor and Query Profiler considers slow. When enabled, MongoDB Cloud uses the average execution time for operations on your cluster to determine slow-running queries. As a result, the threshold is more pertinent to your cluster workload. The slow operation threshold is enabled by default for dedicated clusters (M10+). When disabled, MongoDB Cloud considers any operation that takes longer than 100 milliseconds to be slow. **Note**: To use this attribute, the requesting API Key must have the Project Owner role, if not it will show a warning and will return \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. If you are not using this field, you don't need to take any action.\n","type":"boolean"},"limits":{"description":"The limits for the specified project. See Limits.\n","items":{"$ref":"#/types/mongodbatlas:index/getProjectLimit:getProjectLimit"},"type":"array"},"name":{"description":"Human-readable label that identifies this project limit.\n","type":"string"},"orgId":{"description":"The ID of the organization you want to create the project within.\n","type":"string"},"projectId":{"type":"string"},"regionUsageRestrictions":{"description":"If GOV_REGIONS_ONLY the project can be used for government regions only, otherwise defaults to standard regions. For more information see [MongoDB Atlas for Government](https://www.mongodb.com/docs/atlas/government/api/#creating-a-project).\n","type":"string"},"tags":{"additionalProperties":{"type":"string"},"description":"Map that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the project. To learn more, see [Resource Tags](https://www.mongodb.com/docs/atlas/tags/)\n","type":"object"},"teams":{"deprecationMessage":"This parameter is deprecated and will be removed in the next major release. Please transition to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-go=\"`TeamProjectAssignment`\" pulumi-lang-python=\"`TeamProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.TeamProjectAssignment`\"\u003e`mongodbatlas.TeamProjectAssignment`\u003c/span\u003e. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management.","description":"**(DEPRECATED)** Returns all teams to which the authenticated user has access in the project. See Teams.\n","items":{"$ref":"#/types/mongodbatlas:index/getProjectTeam:getProjectTeam"},"type":"array"},"users":{"description":"Returns list of all pending and active MongoDB Cloud users associated with the specified project.\n","items":{"$ref":"#/types/mongodbatlas:index/getProjectUser:getProjectUser"},"type":"array"}},"required":["clusterCount","created","id","ipAddresses","isCollectDatabaseSpecificsStatisticsEnabled","isDataExplorerEnabled","isExtendedStorageSizesEnabled","isPerformanceAdvisorEnabled","isRealtimePerformancePanelEnabled","isSchemaAdvisorEnabled","isSlowOperationThresholdingEnabled","limits","orgId","regionUsageRestrictions","tags","teams","users"],"type":"object"}},"mongodbatlas:index/getProjectApiKey:getProjectApiKey":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-go=\"`ProjectApiKey`\" pulumi-lang-python=\"`ProjectApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-java=\"`mongodbatlas.ProjectApiKey`\"\u003e`mongodbatlas.ProjectApiKey`\u003c/span\u003e describes a MongoDB Atlas Project API Key. This represents a Project API Key that has been created.\n\n\u003e **IMPORTANT NOTE** The use of \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-go=\"`ProjectApiKey`\" pulumi-lang-python=\"`ProjectApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-java=\"`mongodbatlas.ProjectApiKey`\"\u003e`mongodbatlas.ProjectApiKey`\u003c/span\u003e data source is no longer the recommended approach. For new configurations, we recommend using the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ApiKey`\" pulumi-lang-go=\"`ApiKey`\" pulumi-lang-python=\"`ApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ApiKey`\" pulumi-lang-java=\"`mongodbatlas.ApiKey`\"\u003e`mongodbatlas.ApiKey`\u003c/span\u003e resource and the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-go=\"`ApiKeyProjectAssignment`\" pulumi-lang-python=\"`ApiKeyProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.ApiKeyProjectAssignment`\"\u003e`mongodbatlas.ApiKeyProjectAssignment`\u003c/span\u003e resource to assign the API Keys to projects. This approach is more flexible and aligns with best practices. For existing configurations, the migration to the new pattern is **not required**. If you want to migrate, see the Migration Guide for step-by-step instructions on migrating from \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-go=\"`ProjectApiKey`\" pulumi-lang-python=\"`ProjectApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-java=\"`mongodbatlas.ProjectApiKey`\"\u003e`mongodbatlas.ProjectApiKey`\u003c/span\u003e to the new pattern.\n\n\u003e **IMPORTANT WARNING:** Managing Atlas Programmatic API Keys (PAKs) with Terraform will expose sensitive organizational secrets in Terraform's state. We suggest following Terraform's best practices. You may also want to consider managing your PAKs via a more secure method, such as the [HashiCorp Vault MongoDB Atlas Secrets Engine](https://developer.hashicorp.com/vault/docs/secrets/mongodbatlas).\n\n\u003e **NOTE:** You may find\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n### Using\u003cspan pulumi-lang-nodejs=\" projectId \" pulumi-lang-dotnet=\" ProjectId \" pulumi-lang-go=\" projectId \" pulumi-lang-python=\" project_id \" pulumi-lang-yaml=\" projectId \" pulumi-lang-java=\" projectId \"\u003e project_id \u003c/span\u003eand\u003cspan pulumi-lang-nodejs=\" apiKeyId \" pulumi-lang-dotnet=\" ApiKeyId \" pulumi-lang-go=\" apiKeyId \" pulumi-lang-python=\" api_key_id \" pulumi-lang-yaml=\" apiKeyId \" pulumi-lang-java=\" apiKeyId \"\u003e api_key_id \u003c/span\u003eattribute to query\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testProjectApiKey = new mongodbatlas.ProjectApiKey(\"test\", {\n    description: \"Description of your API key\",\n    projectAssignments: [{\n        projectId: \"64259ee860c43338194b0f8e\",\n        roleNames: [\"GROUP_READ_ONLY\"],\n    }],\n});\nconst test = mongodbatlas.getProjectApiKey({\n    projectId: \"64259ee860c43338194b0f8e\",\n    apiKeyId: testMongodbatlasApiKey.apiKeyId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_project_api_key = mongodbatlas.ProjectApiKey(\"test\",\n    description=\"Description of your API key\",\n    project_assignments=[{\n        \"project_id\": \"64259ee860c43338194b0f8e\",\n        \"role_names\": [\"GROUP_READ_ONLY\"],\n    }])\ntest = mongodbatlas.get_project_api_key(project_id=\"64259ee860c43338194b0f8e\",\n    api_key_id=test_mongodbatlas_api_key[\"apiKeyId\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testProjectApiKey = new Mongodbatlas.ProjectApiKey(\"test\", new()\n    {\n        Description = \"Description of your API key\",\n        ProjectAssignments = new[]\n        {\n            new Mongodbatlas.Inputs.ProjectApiKeyProjectAssignmentArgs\n            {\n                ProjectId = \"64259ee860c43338194b0f8e\",\n                RoleNames = new[]\n                {\n                    \"GROUP_READ_ONLY\",\n                },\n            },\n        },\n    });\n\n    var test = Mongodbatlas.GetProjectApiKey.Invoke(new()\n    {\n        ProjectId = \"64259ee860c43338194b0f8e\",\n        ApiKeyId = testMongodbatlasApiKey.ApiKeyId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewProjectApiKey(ctx, \"test\", \u0026mongodbatlas.ProjectApiKeyArgs{\n\t\t\tDescription: pulumi.String(\"Description of your API key\"),\n\t\t\tProjectAssignments: mongodbatlas.ProjectApiKeyProjectAssignmentArray{\n\t\t\t\t\u0026mongodbatlas.ProjectApiKeyProjectAssignmentArgs{\n\t\t\t\t\tProjectId: pulumi.String(\"64259ee860c43338194b0f8e\"),\n\t\t\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GROUP_READ_ONLY\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.LookupProjectApiKey(ctx, \u0026mongodbatlas.LookupProjectApiKeyArgs{\n\t\t\tProjectId: \"64259ee860c43338194b0f8e\",\n\t\t\tApiKeyId:  testMongodbatlasApiKey.ApiKeyId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectApiKey;\nimport com.pulumi.mongodbatlas.ProjectApiKeyArgs;\nimport com.pulumi.mongodbatlas.inputs.ProjectApiKeyProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectApiKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testProjectApiKey = new ProjectApiKey(\"testProjectApiKey\", ProjectApiKeyArgs.builder()\n            .description(\"Description of your API key\")\n            .projectAssignments(ProjectApiKeyProjectAssignmentArgs.builder()\n                .projectId(\"64259ee860c43338194b0f8e\")\n                .roleNames(\"GROUP_READ_ONLY\")\n                .build())\n            .build());\n\n        final var test = MongodbatlasFunctions.getProjectApiKey(GetProjectApiKeyArgs.builder()\n            .projectId(\"64259ee860c43338194b0f8e\")\n            .apiKeyId(testMongodbatlasApiKey.apiKeyId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testProjectApiKey:\n    type: mongodbatlas:ProjectApiKey\n    name: test\n    properties:\n      description: Description of your API key\n      projectAssignments:\n        - projectId: 64259ee860c43338194b0f8e\n          roleNames:\n            - GROUP_READ_ONLY\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getProjectApiKey\n      arguments:\n        projectId: 64259ee860c43338194b0f8e\n        apiKeyId: ${testMongodbatlasApiKey.apiKeyId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjectApiKey.\n","properties":{"apiKeyId":{"type":"string","description":"Unique identifier for this Project API key.\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"type":"object","required":["apiKeyId","projectId"]},"outputs":{"description":"A collection of values returned by getProjectApiKey.\n","properties":{"apiKeyId":{"type":"string"},"description":{"description":"Description of this Project API key.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"privateKey":{"description":"Private key for this Organization API key.\n","type":"string"},"projectAssignments":{"items":{"$ref":"#/types/mongodbatlas:index/getProjectApiKeyProjectAssignment:getProjectApiKeyProjectAssignment"},"type":"array"},"projectId":{"description":"Project ID to assign to Access Key\n","type":"string"},"publicKey":{"description":"Public key for this Organization API key.\n","type":"string"}},"required":["apiKeyId","description","privateKey","projectAssignments","projectId","publicKey","id"],"type":"object"}},"mongodbatlas:index/getProjectApiKeys:getProjectApiKeys":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjectApiKeys`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjectApiKeys`\" pulumi-lang-go=\"`getProjectApiKeys`\" pulumi-lang-python=\"`get_project_api_keys`\" pulumi-lang-yaml=\"`mongodbatlas.getProjectApiKeys`\" pulumi-lang-java=\"`mongodbatlas.getProjectApiKeys`\"\u003e`mongodbatlas.getProjectApiKeys`\u003c/span\u003e describes all API Keys. This represents API Keys that have been created.\n\n\u003e **IMPORTANT NOTE** The use of \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjectApiKeys`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjectApiKeys`\" pulumi-lang-go=\"`getProjectApiKeys`\" pulumi-lang-python=\"`get_project_api_keys`\" pulumi-lang-yaml=\"`mongodbatlas.getProjectApiKeys`\" pulumi-lang-java=\"`mongodbatlas.getProjectApiKeys`\"\u003e`mongodbatlas.getProjectApiKeys`\u003c/span\u003e data source is no longer the recommended approach. For new configurations, we recommend using the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ApiKey`\" pulumi-lang-go=\"`ApiKey`\" pulumi-lang-python=\"`ApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ApiKey`\" pulumi-lang-java=\"`mongodbatlas.ApiKey`\"\u003e`mongodbatlas.ApiKey`\u003c/span\u003e resource and the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-go=\"`ApiKeyProjectAssignment`\" pulumi-lang-python=\"`ApiKeyProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.ApiKeyProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.ApiKeyProjectAssignment`\"\u003e`mongodbatlas.ApiKeyProjectAssignment`\u003c/span\u003e resource to assign the API Keys to projects. This approach is more flexible and aligns with best practices. For existing configurations, the migration to the new pattern is **not required**. If you want to migrate, see the Migration Guide for step-by-step instructions on migrating from \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-go=\"`ProjectApiKey`\" pulumi-lang-python=\"`ProjectApiKey`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectApiKey`\" pulumi-lang-java=\"`mongodbatlas.ProjectApiKey`\"\u003e`mongodbatlas.ProjectApiKey`\u003c/span\u003e to the new pattern.\n\n\u003e **IMPORTANT WARNING:** Managing Atlas Programmatic API Keys (PAKs) with Terraform will expose sensitive organizational secrets in Terraform's state. We suggest following Terraform's best practices. You may also want to consider managing your PAKs via a more secure method, such as the [HashiCorp Vault MongoDB Atlas Secrets Engine](https://developer.hashicorp.com/vault/docs/secrets/mongodbatlas).\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getProjectApiKeys({\n    pageNum: 1,\n    itemsPerPage: 5,\n    projectId: \"32b6e34b3d91647abb20e7b8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_project_api_keys(page_num=1,\n    items_per_page=5,\n    project_id=\"32b6e34b3d91647abb20e7b8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetProjectApiKeys.Invoke(new()\n    {\n        PageNum = 1,\n        ItemsPerPage = 5,\n        ProjectId = \"32b6e34b3d91647abb20e7b8\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupProjectApiKeys(ctx, \u0026mongodbatlas.LookupProjectApiKeysArgs{\n\t\t\tPageNum:      pulumi.IntRef(1),\n\t\t\tItemsPerPage: pulumi.IntRef(5),\n\t\t\tProjectId:    \"32b6e34b3d91647abb20e7b8\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectApiKeysArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getProjectApiKeys(GetProjectApiKeysArgs.builder()\n            .pageNum(1)\n            .itemsPerPage(5)\n            .projectId(\"32b6e34b3d91647abb20e7b8\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getProjectApiKeys\n      arguments:\n        pageNum: 1\n        itemsPerPage: 5\n        projectId: 32b6e34b3d91647abb20e7b8\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjectApiKeys.\n","properties":{"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The unique ID for the project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getProjectApiKeys.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"},"projectId":{"description":"Project ID to assign to Access Key\n","type":"string"},"results":{"description":"A list where each element represents a API Key assigned to the project.\n","items":{"$ref":"#/types/mongodbatlas:index/getProjectApiKeysResult:getProjectApiKeysResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getProjectInvitation:getProjectInvitation":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-go=\"`ProjectInvitation`\" pulumi-lang-python=\"`ProjectInvitation`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectInvitation`\" pulumi-lang-java=\"`mongodbatlas.ProjectInvitation`\"\u003e`mongodbatlas.ProjectInvitation`\u003c/span\u003e describes an invitation to a user to join an Atlas project.\n\n\u003e **DEPRECATION:** This data source is deprecated. Use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-go=\"`CloudUserProjectAssignment`\" pulumi-lang-python=\"`CloudUserProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.CloudUserProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.CloudUserProjectAssignment`\"\u003e`mongodbatlas.CloudUserProjectAssignment`\u003c/span\u003e to read project user assignments. See the Project Invitation to Cloud User Project Assignment Migration Guide.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find GROUP-ID in the official documentation.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testProjectInvitation = new mongodbatlas.ProjectInvitation(\"test\", {\n    username: \"test-acc-username\",\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    roles: [\"GROUP_DATA_ACCESS_READ_WRITE\"],\n});\nconst test = mongodbatlas.getProjectInvitationOutput({\n    projectId: testProjectInvitation.projectId,\n    username: testProjectInvitation.username,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_project_invitation = mongodbatlas.ProjectInvitation(\"test\",\n    username=\"test-acc-username\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    roles=[\"GROUP_DATA_ACCESS_READ_WRITE\"])\ntest = mongodbatlas.get_project_invitation_output(project_id=test_project_invitation.project_id,\n    username=test_project_invitation.username)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testProjectInvitation = new Mongodbatlas.ProjectInvitation(\"test\", new()\n    {\n        Username = \"test-acc-username\",\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Roles = new[]\n        {\n            \"GROUP_DATA_ACCESS_READ_WRITE\",\n        },\n    });\n\n    var test = Mongodbatlas.GetProjectInvitation.Invoke(new()\n    {\n        ProjectId = testProjectInvitation.ProjectId,\n        Username = testProjectInvitation.Username,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestProjectInvitation, err := mongodbatlas.NewProjectInvitation(ctx, \"test\", \u0026mongodbatlas.ProjectInvitationArgs{\n\t\t\tUsername:  pulumi.String(\"test-acc-username\"),\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_READ_WRITE\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupProjectInvitationOutput(ctx, mongodbatlas.GetProjectInvitationOutputArgs{\n\t\t\tProjectId: testProjectInvitation.ProjectId,\n\t\t\tUsername:  testProjectInvitation.Username,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectInvitation;\nimport com.pulumi.mongodbatlas.ProjectInvitationArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectInvitationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testProjectInvitation = new ProjectInvitation(\"testProjectInvitation\", ProjectInvitationArgs.builder()\n            .username(\"test-acc-username\")\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .roles(\"GROUP_DATA_ACCESS_READ_WRITE\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getProjectInvitation(GetProjectInvitationArgs.builder()\n            .projectId(testProjectInvitation.projectId())\n            .username(testProjectInvitation.username())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testProjectInvitation:\n    type: mongodbatlas:ProjectInvitation\n    name: test\n    properties:\n      username: test-acc-username\n      projectId: \u003cPROJECT-ID\u003e\n      roles:\n        - GROUP_DATA_ACCESS_READ_WRITE\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getProjectInvitation\n      arguments:\n        projectId: ${testProjectInvitation.projectId}\n        username: ${testProjectInvitation.username}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjectInvitation.\n","properties":{"invitationId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the invitation in Atlas.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project to which you invited the user.\n"},"username":{"type":"string","description":"Email address of the invited user. This is the address to which Atlas sends the invite. If the user accepts the invitation, they log in to Atlas with this username.\n"}},"type":"object","required":["invitationId","projectId","username"]},"outputs":{"description":"A collection of values returned by getProjectInvitation.\n","properties":{"createdAt":{"description":"Timestamp in ISO 8601 date and time format in UTC when Atlas sent the invitation.\n","type":"string"},"expiresAt":{"description":"Timestamp in ISO 8601 date and time format in UTC when the invitation expires. Users have 30 days to accept an invitation.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"invitationId":{"type":"string"},"inviterUsername":{"description":"Atlas user who invited \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e to the project.\n","type":"string"},"projectId":{"type":"string"},"roles":{"description":"Atlas roles to assign to the invited user. If the user accepts the invitation, Atlas assigns these roles to them. Refer to the [MongoDB Documentation](https://www.mongodb.com/docs/atlas/reference/user-roles/#project-roles) for information on valid roles.\n","items":{"type":"string"},"type":"array"},"username":{"type":"string"}},"required":["createdAt","expiresAt","invitationId","inviterUsername","projectId","roles","username","id"],"type":"object"}},"mongodbatlas:index/getProjectIpAccessList:getProjectIpAccessList":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectIpAccessList`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectIpAccessList`\" pulumi-lang-go=\"`ProjectIpAccessList`\" pulumi-lang-python=\"`ProjectIpAccessList`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectIpAccessList`\" pulumi-lang-java=\"`mongodbatlas.ProjectIpAccessList`\"\u003e`mongodbatlas.ProjectIpAccessList`\u003c/span\u003e describes an IP Access List entry resource. The access list grants access from IPs, CIDRs or AWS Security Groups (if VPC Peering is enabled) to clusters within the Project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n### Using CIDR Block\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisProjectIpAccessList = new mongodbatlas.ProjectIpAccessList(\"this\", {\n    projectId: projectId,\n    cidrBlock: \"1.2.3.4/32\",\n    comment: \"cidr block test\",\n});\nconst _this = mongodbatlas.getProjectIpAccessListOutput({\n    projectId: thisProjectIpAccessList.projectId,\n    cidrBlock: thisProjectIpAccessList.cidrBlock,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_project_ip_access_list = mongodbatlas.ProjectIpAccessList(\"this\",\n    project_id=project_id,\n    cidr_block=\"1.2.3.4/32\",\n    comment=\"cidr block test\")\nthis = mongodbatlas.get_project_ip_access_list_output(project_id=this_project_ip_access_list.project_id,\n    cidr_block=this_project_ip_access_list.cidr_block)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisProjectIpAccessList = new Mongodbatlas.ProjectIpAccessList(\"this\", new()\n    {\n        ProjectId = projectId,\n        CidrBlock = \"1.2.3.4/32\",\n        Comment = \"cidr block test\",\n    });\n\n    var @this = Mongodbatlas.GetProjectIpAccessList.Invoke(new()\n    {\n        ProjectId = thisProjectIpAccessList.ProjectId,\n        CidrBlock = thisProjectIpAccessList.CidrBlock,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisProjectIpAccessList, err := mongodbatlas.NewProjectIpAccessList(ctx, \"this\", \u0026mongodbatlas.ProjectIpAccessListArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t\tComment:   pulumi.String(\"cidr block test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupProjectIpAccessListOutput(ctx, mongodbatlas.GetProjectIpAccessListOutputArgs{\n\t\t\tProjectId: thisProjectIpAccessList.ProjectId,\n\t\t\tCidrBlock: thisProjectIpAccessList.CidrBlock,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectIpAccessList;\nimport com.pulumi.mongodbatlas.ProjectIpAccessListArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisProjectIpAccessList = new ProjectIpAccessList(\"thisProjectIpAccessList\", ProjectIpAccessListArgs.builder()\n            .projectId(projectId)\n            .cidrBlock(\"1.2.3.4/32\")\n            .comment(\"cidr block test\")\n            .build());\n\n        final var this = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()\n            .projectId(thisProjectIpAccessList.projectId())\n            .cidrBlock(thisProjectIpAccessList.cidrBlock())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisProjectIpAccessList:\n    type: mongodbatlas:ProjectIpAccessList\n    name: this\n    properties:\n      projectId: ${projectId}\n      cidrBlock: 1.2.3.4/32\n      comment: cidr block test\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getProjectIpAccessList\n      arguments:\n        projectId: ${thisProjectIpAccessList.projectId}\n        cidrBlock: ${thisProjectIpAccessList.cidrBlock}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using IP Address\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisProjectIpAccessList = new mongodbatlas.ProjectIpAccessList(\"this\", {\n    projectId: projectId,\n    ipAddress: \"2.3.4.5\",\n    comment: \"ip address test\",\n});\nconst _this = mongodbatlas.getProjectIpAccessListOutput({\n    projectId: thisProjectIpAccessList.projectId,\n    ipAddress: thisProjectIpAccessList.ipAddress,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_project_ip_access_list = mongodbatlas.ProjectIpAccessList(\"this\",\n    project_id=project_id,\n    ip_address=\"2.3.4.5\",\n    comment=\"ip address test\")\nthis = mongodbatlas.get_project_ip_access_list_output(project_id=this_project_ip_access_list.project_id,\n    ip_address=this_project_ip_access_list.ip_address)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisProjectIpAccessList = new Mongodbatlas.ProjectIpAccessList(\"this\", new()\n    {\n        ProjectId = projectId,\n        IpAddress = \"2.3.4.5\",\n        Comment = \"ip address test\",\n    });\n\n    var @this = Mongodbatlas.GetProjectIpAccessList.Invoke(new()\n    {\n        ProjectId = thisProjectIpAccessList.ProjectId,\n        IpAddress = thisProjectIpAccessList.IpAddress,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisProjectIpAccessList, err := mongodbatlas.NewProjectIpAccessList(ctx, \"this\", \u0026mongodbatlas.ProjectIpAccessListArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t\tComment:   pulumi.String(\"ip address test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupProjectIpAccessListOutput(ctx, mongodbatlas.GetProjectIpAccessListOutputArgs{\n\t\t\tProjectId: thisProjectIpAccessList.ProjectId,\n\t\t\tIpAddress: thisProjectIpAccessList.IpAddress,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectIpAccessList;\nimport com.pulumi.mongodbatlas.ProjectIpAccessListArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisProjectIpAccessList = new ProjectIpAccessList(\"thisProjectIpAccessList\", ProjectIpAccessListArgs.builder()\n            .projectId(projectId)\n            .ipAddress(\"2.3.4.5\")\n            .comment(\"ip address test\")\n            .build());\n\n        final var this = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()\n            .projectId(thisProjectIpAccessList.projectId())\n            .ipAddress(thisProjectIpAccessList.ipAddress())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisProjectIpAccessList:\n    type: mongodbatlas:ProjectIpAccessList\n    name: this\n    properties:\n      projectId: ${projectId}\n      ipAddress: 2.3.4.5\n      comment: ip address test\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getProjectIpAccessList\n      arguments:\n        projectId: ${thisProjectIpAccessList.projectId}\n        ipAddress: ${thisProjectIpAccessList.ipAddress}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using an AWS Security Group\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisNetworkContainer = new mongodbatlas.NetworkContainer(\"this\", {\n    projectId: projectId,\n    atlasCidrBlock: \"192.168.208.0/21\",\n    providerName: \"AWS\",\n    regionName: \"US_EAST_1\",\n});\nconst thisNetworkPeering = new mongodbatlas.NetworkPeering(\"this\", {\n    projectId: projectId,\n    containerId: thisNetworkContainer.containerId,\n    accepterRegionName: \"us-east-1\",\n    providerName: \"AWS\",\n    routeTableCidrBlock: \"172.31.0.0/16\",\n    vpcId: \"vpc-0d93d6f69f1578bd8\",\n    awsAccountId: \"232589400519\",\n});\nconst thisProjectIpAccessList = new mongodbatlas.ProjectIpAccessList(\"this\", {\n    projectId: projectId,\n    awsSecurityGroup: \"sg-0026348ec11780bd1\",\n    comment: \"AWS Security Group test\",\n}, {\n    dependsOn: [thisNetworkPeering],\n});\nconst _this = mongodbatlas.getProjectIpAccessListOutput({\n    projectId: thisProjectIpAccessList.projectId,\n    awsSecurityGroup: thisProjectIpAccessList.awsSecurityGroup,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_network_container = mongodbatlas.NetworkContainer(\"this\",\n    project_id=project_id,\n    atlas_cidr_block=\"192.168.208.0/21\",\n    provider_name=\"AWS\",\n    region_name=\"US_EAST_1\")\nthis_network_peering = mongodbatlas.NetworkPeering(\"this\",\n    project_id=project_id,\n    container_id=this_network_container.container_id,\n    accepter_region_name=\"us-east-1\",\n    provider_name=\"AWS\",\n    route_table_cidr_block=\"172.31.0.0/16\",\n    vpc_id=\"vpc-0d93d6f69f1578bd8\",\n    aws_account_id=\"232589400519\")\nthis_project_ip_access_list = mongodbatlas.ProjectIpAccessList(\"this\",\n    project_id=project_id,\n    aws_security_group=\"sg-0026348ec11780bd1\",\n    comment=\"AWS Security Group test\",\n    opts = pulumi.ResourceOptions(depends_on=[this_network_peering]))\nthis = mongodbatlas.get_project_ip_access_list_output(project_id=this_project_ip_access_list.project_id,\n    aws_security_group=this_project_ip_access_list.aws_security_group)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisNetworkContainer = new Mongodbatlas.NetworkContainer(\"this\", new()\n    {\n        ProjectId = projectId,\n        AtlasCidrBlock = \"192.168.208.0/21\",\n        ProviderName = \"AWS\",\n        RegionName = \"US_EAST_1\",\n    });\n\n    var thisNetworkPeering = new Mongodbatlas.NetworkPeering(\"this\", new()\n    {\n        ProjectId = projectId,\n        ContainerId = thisNetworkContainer.ContainerId,\n        AccepterRegionName = \"us-east-1\",\n        ProviderName = \"AWS\",\n        RouteTableCidrBlock = \"172.31.0.0/16\",\n        VpcId = \"vpc-0d93d6f69f1578bd8\",\n        AwsAccountId = \"232589400519\",\n    });\n\n    var thisProjectIpAccessList = new Mongodbatlas.ProjectIpAccessList(\"this\", new()\n    {\n        ProjectId = projectId,\n        AwsSecurityGroup = \"sg-0026348ec11780bd1\",\n        Comment = \"AWS Security Group test\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            thisNetworkPeering,\n        },\n    });\n\n    var @this = Mongodbatlas.GetProjectIpAccessList.Invoke(new()\n    {\n        ProjectId = thisProjectIpAccessList.ProjectId,\n        AwsSecurityGroup = thisProjectIpAccessList.AwsSecurityGroup,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisNetworkContainer, err := mongodbatlas.NewNetworkContainer(ctx, \"this\", \u0026mongodbatlas.NetworkContainerArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tAtlasCidrBlock: pulumi.String(\"192.168.208.0/21\"),\n\t\t\tProviderName:   pulumi.String(\"AWS\"),\n\t\t\tRegionName:     pulumi.String(\"US_EAST_1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisNetworkPeering, err := mongodbatlas.NewNetworkPeering(ctx, \"this\", \u0026mongodbatlas.NetworkPeeringArgs{\n\t\t\tProjectId:           pulumi.Any(projectId),\n\t\t\tContainerId:         thisNetworkContainer.ContainerId,\n\t\t\tAccepterRegionName:  pulumi.String(\"us-east-1\"),\n\t\t\tProviderName:        pulumi.String(\"AWS\"),\n\t\t\tRouteTableCidrBlock: pulumi.String(\"172.31.0.0/16\"),\n\t\t\tVpcId:               pulumi.String(\"vpc-0d93d6f69f1578bd8\"),\n\t\t\tAwsAccountId:        pulumi.String(\"232589400519\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisProjectIpAccessList, err := mongodbatlas.NewProjectIpAccessList(ctx, \"this\", \u0026mongodbatlas.ProjectIpAccessListArgs{\n\t\t\tProjectId:        pulumi.Any(projectId),\n\t\t\tAwsSecurityGroup: pulumi.String(\"sg-0026348ec11780bd1\"),\n\t\t\tComment:          pulumi.String(\"AWS Security Group test\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tthisNetworkPeering,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupProjectIpAccessListOutput(ctx, mongodbatlas.GetProjectIpAccessListOutputArgs{\n\t\t\tProjectId:        thisProjectIpAccessList.ProjectId,\n\t\t\tAwsSecurityGroup: thisProjectIpAccessList.AwsSecurityGroup,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.NetworkContainer;\nimport com.pulumi.mongodbatlas.NetworkContainerArgs;\nimport com.pulumi.mongodbatlas.NetworkPeering;\nimport com.pulumi.mongodbatlas.NetworkPeeringArgs;\nimport com.pulumi.mongodbatlas.ProjectIpAccessList;\nimport com.pulumi.mongodbatlas.ProjectIpAccessListArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisNetworkContainer = new NetworkContainer(\"thisNetworkContainer\", NetworkContainerArgs.builder()\n            .projectId(projectId)\n            .atlasCidrBlock(\"192.168.208.0/21\")\n            .providerName(\"AWS\")\n            .regionName(\"US_EAST_1\")\n            .build());\n\n        var thisNetworkPeering = new NetworkPeering(\"thisNetworkPeering\", NetworkPeeringArgs.builder()\n            .projectId(projectId)\n            .containerId(thisNetworkContainer.containerId())\n            .accepterRegionName(\"us-east-1\")\n            .providerName(\"AWS\")\n            .routeTableCidrBlock(\"172.31.0.0/16\")\n            .vpcId(\"vpc-0d93d6f69f1578bd8\")\n            .awsAccountId(\"232589400519\")\n            .build());\n\n        var thisProjectIpAccessList = new ProjectIpAccessList(\"thisProjectIpAccessList\", ProjectIpAccessListArgs.builder()\n            .projectId(projectId)\n            .awsSecurityGroup(\"sg-0026348ec11780bd1\")\n            .comment(\"AWS Security Group test\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(thisNetworkPeering)\n                .build());\n\n        final var this = MongodbatlasFunctions.getProjectIpAccessList(GetProjectIpAccessListArgs.builder()\n            .projectId(thisProjectIpAccessList.projectId())\n            .awsSecurityGroup(thisProjectIpAccessList.awsSecurityGroup())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisNetworkContainer:\n    type: mongodbatlas:NetworkContainer\n    name: this\n    properties:\n      projectId: ${projectId}\n      atlasCidrBlock: 192.168.208.0/21\n      providerName: AWS\n      regionName: US_EAST_1\n  thisNetworkPeering:\n    type: mongodbatlas:NetworkPeering\n    name: this\n    properties:\n      projectId: ${projectId}\n      containerId: ${thisNetworkContainer.containerId}\n      accepterRegionName: us-east-1\n      providerName: AWS\n      routeTableCidrBlock: 172.31.0.0/16\n      vpcId: vpc-0d93d6f69f1578bd8\n      awsAccountId: '232589400519'\n  thisProjectIpAccessList:\n    type: mongodbatlas:ProjectIpAccessList\n    name: this\n    properties:\n      projectId: ${projectId}\n      awsSecurityGroup: sg-0026348ec11780bd1\n      comment: AWS Security Group test\n    options:\n      dependsOn:\n        - ${thisNetworkPeering}\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getProjectIpAccessList\n      arguments:\n        projectId: ${thisProjectIpAccessList.projectId}\n        awsSecurityGroup: ${thisProjectIpAccessList.awsSecurityGroup}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjectIpAccessList.\n","properties":{"awsSecurityGroup":{"type":"string","description":"Unique identifier of the AWS security group to add to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e.\n"},"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n"},"ipAddress":{"type":"string","description":"Single IP address to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getProjectIpAccessList.\n","properties":{"awsSecurityGroup":{"description":"Unique identifier of the AWS security group to add to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e.\n","type":"string"},"cidrBlock":{"description":"Range of IP addresses in CIDR notation to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`ipAddress`\" pulumi-lang-dotnet=\"`IpAddress`\" pulumi-lang-go=\"`ipAddress`\" pulumi-lang-python=\"`ip_address`\" pulumi-lang-yaml=\"`ipAddress`\" pulumi-lang-java=\"`ipAddress`\"\u003e`ip_address`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n","type":"string"},"comment":{"description":"Remark that explains the purpose or scope of this IP access list entry.\n","type":"string"},"id":{"description":"Unique identifier used for terraform for internal management.\n","type":"string"},"ipAddress":{"description":"Single IP address to be added to the access list. Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`cidrBlock`\" pulumi-lang-dotnet=\"`CidrBlock`\" pulumi-lang-go=\"`cidrBlock`\" pulumi-lang-python=\"`cidr_block`\" pulumi-lang-yaml=\"`cidrBlock`\" pulumi-lang-java=\"`cidrBlock`\"\u003e`cidr_block`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`awsSecurityGroup`\" pulumi-lang-dotnet=\"`AwsSecurityGroup`\" pulumi-lang-go=\"`awsSecurityGroup`\" pulumi-lang-python=\"`aws_security_group`\" pulumi-lang-yaml=\"`awsSecurityGroup`\" pulumi-lang-java=\"`awsSecurityGroup`\"\u003e`aws_security_group`\u003c/span\u003e.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"}},"required":["awsSecurityGroup","cidrBlock","comment","id","ipAddress","projectId"],"type":"object"}},"mongodbatlas:index/getProjectIpAccessLists:getProjectIpAccessLists":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjectIpAccessLists`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjectIpAccessLists`\" pulumi-lang-go=\"`getProjectIpAccessLists`\" pulumi-lang-python=\"`get_project_ip_access_lists`\" pulumi-lang-yaml=\"`mongodbatlas.getProjectIpAccessLists`\" pulumi-lang-java=\"`mongodbatlas.getProjectIpAccessLists`\"\u003e`mongodbatlas.getProjectIpAccessLists`\u003c/span\u003e returns all IP Access List entries for a project. The access list grants access from IPs, CIDRs or AWS Security Groups (if VPC Peering is enabled) to clusters within the Project.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst ip = new mongodbatlas.ProjectIpAccessList(\"ip\", {\n    projectId: projectId,\n    ipAddress: \"2.3.4.5\",\n    comment: \"ip address test\",\n});\nconst cidr = new mongodbatlas.ProjectIpAccessList(\"cidr\", {\n    projectId: projectId,\n    cidrBlock: \"1.2.3.4/32\",\n    comment: \"cidr block test\",\n});\nconst _this = mongodbatlas.getProjectIpAccessLists({\n    projectId: projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nip = mongodbatlas.ProjectIpAccessList(\"ip\",\n    project_id=project_id,\n    ip_address=\"2.3.4.5\",\n    comment=\"ip address test\")\ncidr = mongodbatlas.ProjectIpAccessList(\"cidr\",\n    project_id=project_id,\n    cidr_block=\"1.2.3.4/32\",\n    comment=\"cidr block test\")\nthis = mongodbatlas.get_project_ip_access_lists(project_id=project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var ip = new Mongodbatlas.ProjectIpAccessList(\"ip\", new()\n    {\n        ProjectId = projectId,\n        IpAddress = \"2.3.4.5\",\n        Comment = \"ip address test\",\n    });\n\n    var cidr = new Mongodbatlas.ProjectIpAccessList(\"cidr\", new()\n    {\n        ProjectId = projectId,\n        CidrBlock = \"1.2.3.4/32\",\n        Comment = \"cidr block test\",\n    });\n\n    var @this = Mongodbatlas.GetProjectIpAccessLists.Invoke(new()\n    {\n        ProjectId = projectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.NewProjectIpAccessList(ctx, \"ip\", \u0026mongodbatlas.ProjectIpAccessListArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t\tComment:   pulumi.String(\"ip address test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewProjectIpAccessList(ctx, \"cidr\", \u0026mongodbatlas.ProjectIpAccessListArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t\tComment:   pulumi.String(\"cidr block test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.LookupProjectIpAccessLists(ctx, \u0026mongodbatlas.LookupProjectIpAccessListsArgs{\n\t\t\tProjectId: projectId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectIpAccessList;\nimport com.pulumi.mongodbatlas.ProjectIpAccessListArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectIpAccessListsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var ip = new ProjectIpAccessList(\"ip\", ProjectIpAccessListArgs.builder()\n            .projectId(projectId)\n            .ipAddress(\"2.3.4.5\")\n            .comment(\"ip address test\")\n            .build());\n\n        var cidr = new ProjectIpAccessList(\"cidr\", ProjectIpAccessListArgs.builder()\n            .projectId(projectId)\n            .cidrBlock(\"1.2.3.4/32\")\n            .comment(\"cidr block test\")\n            .build());\n\n        final var this = MongodbatlasFunctions.getProjectIpAccessLists(GetProjectIpAccessListsArgs.builder()\n            .projectId(projectId)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ip:\n    type: mongodbatlas:ProjectIpAccessList\n    properties:\n      projectId: ${projectId}\n      ipAddress: 2.3.4.5\n      comment: ip address test\n  cidr:\n    type: mongodbatlas:ProjectIpAccessList\n    properties:\n      projectId: ${projectId}\n      cidrBlock: 1.2.3.4/32\n      comment: cidr block test\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getProjectIpAccessLists\n      arguments:\n        projectId: ${projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjectIpAccessLists.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getProjectIpAccessLists.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"results":{"description":"List of returned documents that MongoDB Cloud provides when completing this request.\n","items":{"$ref":"#/types/mongodbatlas:index/getProjectIpAccessListsResult:getProjectIpAccessListsResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getProjectIpAddresses:getProjectIpAddresses":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-go=\"`getProjectIpAddresses`\" pulumi-lang-python=\"`get_project_ip_addresses`\" pulumi-lang-yaml=\"`mongodbatlas.getProjectIpAddresses`\" pulumi-lang-java=\"`mongodbatlas.getProjectIpAddresses`\"\u003e`mongodbatlas.getProjectIpAddresses`\u003c/span\u003e returns the IP addresses in a project categorized by services.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getProjectIpAddresses({\n    projectId: projectId,\n});\nexport const projectServices = test.then(test =\u003e test.services);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_project_ip_addresses(project_id=project_id)\npulumi.export(\"projectServices\", test.services)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetProjectIpAddresses.Invoke(new()\n    {\n        ProjectId = projectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"projectServices\"] = test.Apply(getProjectIpAddressesResult =\u003e getProjectIpAddressesResult.Services),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.LookupProjectIpAddresses(ctx, \u0026mongodbatlas.LookupProjectIpAddressesArgs{\n\t\t\tProjectId: projectId,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"projectServices\", test.Services)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectIpAddressesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getProjectIpAddresses(GetProjectIpAddressesArgs.builder()\n            .projectId(projectId)\n            .build());\n\n        ctx.export(\"projectServices\", test.services());\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getProjectIpAddresses\n      arguments:\n        projectId: ${projectId}\noutputs:\n  projectServices: ${test.services}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjectIpAddresses.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getProjectIpAddresses.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"services":{"$ref":"#/types/mongodbatlas:index/getProjectIpAddressesServices:getProjectIpAddressesServices","description":"List of IP addresses in a project categorized by services.\n"}},"required":["projectId","services","id"],"type":"object"}},"mongodbatlas:index/getProjectServiceAccount:getProjectServiceAccount":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-go=\"`ProjectServiceAccount`\" pulumi-lang-python=\"`ProjectServiceAccount`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectServiceAccount`\" pulumi-lang-java=\"`mongodbatlas.ProjectServiceAccount`\"\u003e`mongodbatlas.ProjectServiceAccount`\u003c/span\u003e describes a Project Service Account.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n","inputs":{"description":"A collection of arguments for invoking getProjectServiceAccount.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["clientId","projectId"]},"outputs":{"description":"A collection of values returned by getProjectServiceAccount.\n","properties":{"clientId":{"description":"The Client ID of the Service Account.\n","type":"string"},"createdAt":{"description":"The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"description":{"description":"Human readable description for the Service Account.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"Human-readable name for the Service Account.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"roles":{"description":"A list of Project roles associated with the Service Account.\n","items":{"type":"string"},"type":"array"},"secrets":{"description":"A list of secrets associated with the specified Service Account.\n","items":{"$ref":"#/types/mongodbatlas:index/getProjectServiceAccountSecret:getProjectServiceAccountSecret"},"type":"array"}},"required":["clientId","createdAt","description","name","projectId","roles","secrets","id"],"type":"object"}},"mongodbatlas:index/getProjectServiceAccountAccessListEntries:getProjectServiceAccountAccessListEntries":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjectServiceAccountAccessListEntries`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjectServiceAccountAccessListEntries`\" pulumi-lang-go=\"`getProjectServiceAccountAccessListEntries`\" pulumi-lang-python=\"`get_project_service_account_access_list_entries`\" pulumi-lang-yaml=\"`mongodbatlas.getProjectServiceAccountAccessListEntries`\" pulumi-lang-java=\"`mongodbatlas.getProjectServiceAccountAccessListEntries`\"\u003e`mongodbatlas.getProjectServiceAccountAccessListEntries`\u003c/span\u003e returns all Access List entries for the specified Project Service Account.\n\n\u003e **IMPORTANT:** When you remove an entry from the access list, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider, hence a change will force the destruction and recreation of entries.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisProjectServiceAccount = new mongodbatlas.ProjectServiceAccount(\"this\", {\n    projectId: projectId,\n    name: \"example-project-service-account\",\n    description: \"Example Project Service Account\",\n    roles: [\"GROUP_READ_ONLY\"],\n    secretExpiresAfterHours: 2160,\n});\n// Add IP Access List Entry to Project Service Account using CIDR Block\nconst cidr = new mongodbatlas.ProjectServiceAccountAccessListEntry(\"cidr\", {\n    projectId: projectId,\n    clientId: thisProjectServiceAccount.clientId,\n    cidrBlock: \"1.2.3.4/32\",\n});\n// Add IP Access List Entry to Project Service Account using IP Address\nconst ip = new mongodbatlas.ProjectServiceAccountAccessListEntry(\"ip\", {\n    projectId: projectId,\n    clientId: thisProjectServiceAccount.clientId,\n    ipAddress: \"2.3.4.5\",\n});\n// Data source to read a single Access List entry for the Project Service Account\nconst _this = mongodbatlas.getProjectServiceAccountAccessListEntryOutput({\n    projectId: cidr.projectId,\n    clientId: cidr.clientId,\n    cidrBlock: cidr.cidrBlock,\n});\nexport const accessListEntryCidrBlock = _this.apply(_this =\u003e _this.cidrBlock);\n// Data source to read all Access List entries for the Project Service Account\nconst thisGetProjectServiceAccountAccessListEntries = mongodbatlas.getProjectServiceAccountAccessListEntriesOutput({\n    projectId: thisProjectServiceAccount.projectId,\n    clientId: thisProjectServiceAccount.clientId,\n});\nexport const allAccessListEntries = thisGetProjectServiceAccountAccessListEntries.apply(thisGetProjectServiceAccountAccessListEntries =\u003e thisGetProjectServiceAccountAccessListEntries.results);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_project_service_account = mongodbatlas.ProjectServiceAccount(\"this\",\n    project_id=project_id,\n    name=\"example-project-service-account\",\n    description=\"Example Project Service Account\",\n    roles=[\"GROUP_READ_ONLY\"],\n    secret_expires_after_hours=2160)\n# Add IP Access List Entry to Project Service Account using CIDR Block\ncidr = mongodbatlas.ProjectServiceAccountAccessListEntry(\"cidr\",\n    project_id=project_id,\n    client_id=this_project_service_account.client_id,\n    cidr_block=\"1.2.3.4/32\")\n# Add IP Access List Entry to Project Service Account using IP Address\nip = mongodbatlas.ProjectServiceAccountAccessListEntry(\"ip\",\n    project_id=project_id,\n    client_id=this_project_service_account.client_id,\n    ip_address=\"2.3.4.5\")\n# Data source to read a single Access List entry for the Project Service Account\nthis = mongodbatlas.get_project_service_account_access_list_entry_output(project_id=cidr.project_id,\n    client_id=cidr.client_id,\n    cidr_block=cidr.cidr_block)\npulumi.export(\"accessListEntryCidrBlock\", this.cidr_block)\n# Data source to read all Access List entries for the Project Service Account\nthis_get_project_service_account_access_list_entries = mongodbatlas.get_project_service_account_access_list_entries_output(project_id=this_project_service_account.project_id,\n    client_id=this_project_service_account.client_id)\npulumi.export(\"allAccessListEntries\", this_get_project_service_account_access_list_entries.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisProjectServiceAccount = new Mongodbatlas.ProjectServiceAccount(\"this\", new()\n    {\n        ProjectId = projectId,\n        Name = \"example-project-service-account\",\n        Description = \"Example Project Service Account\",\n        Roles = new[]\n        {\n            \"GROUP_READ_ONLY\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    // Add IP Access List Entry to Project Service Account using CIDR Block\n    var cidr = new Mongodbatlas.ProjectServiceAccountAccessListEntry(\"cidr\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n        CidrBlock = \"1.2.3.4/32\",\n    });\n\n    // Add IP Access List Entry to Project Service Account using IP Address\n    var ip = new Mongodbatlas.ProjectServiceAccountAccessListEntry(\"ip\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n        IpAddress = \"2.3.4.5\",\n    });\n\n    // Data source to read a single Access List entry for the Project Service Account\n    var @this = Mongodbatlas.GetProjectServiceAccountAccessListEntry.Invoke(new()\n    {\n        ProjectId = cidr.ProjectId,\n        ClientId = cidr.ClientId,\n        CidrBlock = cidr.CidrBlock,\n    });\n\n    // Data source to read all Access List entries for the Project Service Account\n    var thisGetProjectServiceAccountAccessListEntries = Mongodbatlas.GetProjectServiceAccountAccessListEntries.Invoke(new()\n    {\n        ProjectId = thisProjectServiceAccount.ProjectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accessListEntryCidrBlock\"] = @this.Apply(@this =\u003e @this.Apply(getProjectServiceAccountAccessListEntryResult =\u003e getProjectServiceAccountAccessListEntryResult.CidrBlock)),\n        [\"allAccessListEntries\"] = thisGetProjectServiceAccountAccessListEntries.Apply(getProjectServiceAccountAccessListEntriesResult =\u003e getProjectServiceAccountAccessListEntriesResult.Results),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisProjectServiceAccount, err := mongodbatlas.NewProjectServiceAccount(ctx, \"this\", \u0026mongodbatlas.ProjectServiceAccountArgs{\n\t\t\tProjectId:   pulumi.Any(projectId),\n\t\t\tName:        pulumi.String(\"example-project-service-account\"),\n\t\t\tDescription: pulumi.String(\"Example Project Service Account\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_READ_ONLY\"),\n\t\t\t},\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Project Service Account using CIDR Block\n\t\tcidr, err := mongodbatlas.NewProjectServiceAccountAccessListEntry(ctx, \"cidr\", \u0026mongodbatlas.ProjectServiceAccountAccessListEntryArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tClientId:  thisProjectServiceAccount.ClientId,\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Project Service Account using IP Address\n\t\t_, err = mongodbatlas.NewProjectServiceAccountAccessListEntry(ctx, \"ip\", \u0026mongodbatlas.ProjectServiceAccountAccessListEntryArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tClientId:  thisProjectServiceAccount.ClientId,\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Data source to read a single Access List entry for the Project Service Account\n\t\tthis := mongodbatlas.LookupProjectServiceAccountAccessListEntryOutput(ctx, mongodbatlas.GetProjectServiceAccountAccessListEntryOutputArgs{\n\t\t\tProjectId: cidr.ProjectId,\n\t\t\tClientId:  cidr.ClientId,\n\t\t\tCidrBlock: cidr.CidrBlock,\n\t\t}, nil)\n\t\tctx.Export(\"accessListEntryCidrBlock\", this.ApplyT(func(this mongodbatlas.GetProjectServiceAccountAccessListEntryResult) (*string, error) {\n\t\t\treturn \u0026this.CidrBlock, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\t// Data source to read all Access List entries for the Project Service Account\n\t\tthisGetProjectServiceAccountAccessListEntries := mongodbatlas.LookupProjectServiceAccountAccessListEntriesOutput(ctx, mongodbatlas.GetProjectServiceAccountAccessListEntriesOutputArgs{\n\t\t\tProjectId: thisProjectServiceAccount.ProjectId,\n\t\t\tClientId:  thisProjectServiceAccount.ClientId,\n\t\t}, nil)\n\t\tctx.Export(\"allAccessListEntries\", thisGetProjectServiceAccountAccessListEntries.ApplyT(func(thisGetProjectServiceAccountAccessListEntries mongodbatlas.GetProjectServiceAccountAccessListEntriesResult) ([]mongodbatlas.GetProjectServiceAccountAccessListEntriesResult, error) {\n\t\t\treturn []mongodbatlas.GetProjectServiceAccountAccessListEntriesResult(thisGetProjectServiceAccountAccessListEntries.Results), nil\n\t\t}).([]mongodbatlas.GetProjectServiceAccountAccessListEntriesResultOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectServiceAccount;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountAccessListEntry;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.inputs.GetProjectServiceAccountAccessListEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisProjectServiceAccount = new ProjectServiceAccount(\"thisProjectServiceAccount\", ProjectServiceAccountArgs.builder()\n            .projectId(projectId)\n            .name(\"example-project-service-account\")\n            .description(\"Example Project Service Account\")\n            .roles(\"GROUP_READ_ONLY\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        // Add IP Access List Entry to Project Service Account using CIDR Block\n        var cidr = new ProjectServiceAccountAccessListEntry(\"cidr\", ProjectServiceAccountAccessListEntryArgs.builder()\n            .projectId(projectId)\n            .clientId(thisProjectServiceAccount.clientId())\n            .cidrBlock(\"1.2.3.4/32\")\n            .build());\n\n        // Add IP Access List Entry to Project Service Account using IP Address\n        var ip = new ProjectServiceAccountAccessListEntry(\"ip\", ProjectServiceAccountAccessListEntryArgs.builder()\n            .projectId(projectId)\n            .clientId(thisProjectServiceAccount.clientId())\n            .ipAddress(\"2.3.4.5\")\n            .build());\n\n        // Data source to read a single Access List entry for the Project Service Account\n        final var this = MongodbatlasFunctions.getProjectServiceAccountAccessListEntry(GetProjectServiceAccountAccessListEntryArgs.builder()\n            .projectId(cidr.projectId())\n            .clientId(cidr.clientId())\n            .cidrBlock(cidr.cidrBlock())\n            .build());\n\n        ctx.export(\"accessListEntryCidrBlock\", this_.applyValue(_this_ -\u003e _this_.cidrBlock()));\n        // Data source to read all Access List entries for the Project Service Account\n        final var thisGetProjectServiceAccountAccessListEntries = MongodbatlasFunctions.getProjectServiceAccountAccessListEntries(GetProjectServiceAccountAccessListEntriesArgs.builder()\n            .projectId(thisProjectServiceAccount.projectId())\n            .clientId(thisProjectServiceAccount.clientId())\n            .build());\n\n        ctx.export(\"allAccessListEntries\", thisGetProjectServiceAccountAccessListEntries.applyValue(_thisGetProjectServiceAccountAccessListEntries -\u003e _thisGetProjectServiceAccountAccessListEntries.results()));\n    }\n}\n```\n```yaml\nresources:\n  thisProjectServiceAccount:\n    type: mongodbatlas:ProjectServiceAccount\n    name: this\n    properties:\n      projectId: ${projectId}\n      name: example-project-service-account\n      description: Example Project Service Account\n      roles:\n        - GROUP_READ_ONLY\n      secretExpiresAfterHours: 2160 # 90 days\n  # Add IP Access List Entry to Project Service Account using CIDR Block\n  cidr:\n    type: mongodbatlas:ProjectServiceAccountAccessListEntry\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisProjectServiceAccount.clientId}\n      cidrBlock: 1.2.3.4/32\n  # Add IP Access List Entry to Project Service Account using IP Address\n  ip:\n    type: mongodbatlas:ProjectServiceAccountAccessListEntry\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisProjectServiceAccount.clientId}\n      ipAddress: 2.3.4.5\nvariables:\n  # Data source to read a single Access List entry for the Project Service Account\n  this:\n    fn::invoke:\n      function: mongodbatlas:getProjectServiceAccountAccessListEntry\n      arguments:\n        projectId: ${cidr.projectId}\n        clientId: ${cidr.clientId}\n        cidrBlock: ${cidr.cidrBlock}\n  # Data source to read all Access List entries for the Project Service Account\n  thisGetProjectServiceAccountAccessListEntries:\n    fn::invoke:\n      function: mongodbatlas:getProjectServiceAccountAccessListEntries\n      arguments:\n        projectId: ${thisProjectServiceAccount.projectId}\n        clientId: ${thisProjectServiceAccount.clientId}\noutputs:\n  accessListEntryCidrBlock: ${this.cidrBlock}\n  allAccessListEntries: ${thisGetProjectServiceAccountAccessListEntries.results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjectServiceAccountAccessListEntries.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project.\n"}},"type":"object","required":["clientId","projectId"]},"outputs":{"description":"A collection of values returned by getProjectServiceAccountAccessListEntries.\n","properties":{"clientId":{"description":"The Client ID of the Service Account.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies the project.\n","type":"string"},"results":{"description":"List of documents that MongoDB Cloud returns for this request.\n","items":{"$ref":"#/types/mongodbatlas:index/getProjectServiceAccountAccessListEntriesResult:getProjectServiceAccountAccessListEntriesResult"},"type":"array"}},"required":["clientId","projectId","results","id"],"type":"object"}},"mongodbatlas:index/getProjectServiceAccountAccessListEntry:getProjectServiceAccountAccessListEntry":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectServiceAccountAccessListEntry`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectServiceAccountAccessListEntry`\" pulumi-lang-go=\"`ProjectServiceAccountAccessListEntry`\" pulumi-lang-python=\"`ProjectServiceAccountAccessListEntry`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectServiceAccountAccessListEntry`\" pulumi-lang-java=\"`mongodbatlas.ProjectServiceAccountAccessListEntry`\"\u003e`mongodbatlas.ProjectServiceAccountAccessListEntry`\u003c/span\u003e returns an Access List entry for the specified Project Service Account.\n\n\u003e **IMPORTANT:** When you remove an entry from the access list, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider, hence a change will force the destruction and recreation of entries.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisProjectServiceAccount = new mongodbatlas.ProjectServiceAccount(\"this\", {\n    projectId: projectId,\n    name: \"example-project-service-account\",\n    description: \"Example Project Service Account\",\n    roles: [\"GROUP_READ_ONLY\"],\n    secretExpiresAfterHours: 2160,\n});\n// Add IP Access List Entry to Project Service Account using CIDR Block\nconst cidr = new mongodbatlas.ProjectServiceAccountAccessListEntry(\"cidr\", {\n    projectId: projectId,\n    clientId: thisProjectServiceAccount.clientId,\n    cidrBlock: \"1.2.3.4/32\",\n});\n// Add IP Access List Entry to Project Service Account using IP Address\nconst ip = new mongodbatlas.ProjectServiceAccountAccessListEntry(\"ip\", {\n    projectId: projectId,\n    clientId: thisProjectServiceAccount.clientId,\n    ipAddress: \"2.3.4.5\",\n});\n// Data source to read a single Access List entry for the Project Service Account\nconst _this = mongodbatlas.getProjectServiceAccountAccessListEntryOutput({\n    projectId: cidr.projectId,\n    clientId: cidr.clientId,\n    cidrBlock: cidr.cidrBlock,\n});\nexport const accessListEntryCidrBlock = _this.apply(_this =\u003e _this.cidrBlock);\n// Data source to read all Access List entries for the Project Service Account\nconst thisGetProjectServiceAccountAccessListEntries = mongodbatlas.getProjectServiceAccountAccessListEntriesOutput({\n    projectId: thisProjectServiceAccount.projectId,\n    clientId: thisProjectServiceAccount.clientId,\n});\nexport const allAccessListEntries = thisGetProjectServiceAccountAccessListEntries.apply(thisGetProjectServiceAccountAccessListEntries =\u003e thisGetProjectServiceAccountAccessListEntries.results);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_project_service_account = mongodbatlas.ProjectServiceAccount(\"this\",\n    project_id=project_id,\n    name=\"example-project-service-account\",\n    description=\"Example Project Service Account\",\n    roles=[\"GROUP_READ_ONLY\"],\n    secret_expires_after_hours=2160)\n# Add IP Access List Entry to Project Service Account using CIDR Block\ncidr = mongodbatlas.ProjectServiceAccountAccessListEntry(\"cidr\",\n    project_id=project_id,\n    client_id=this_project_service_account.client_id,\n    cidr_block=\"1.2.3.4/32\")\n# Add IP Access List Entry to Project Service Account using IP Address\nip = mongodbatlas.ProjectServiceAccountAccessListEntry(\"ip\",\n    project_id=project_id,\n    client_id=this_project_service_account.client_id,\n    ip_address=\"2.3.4.5\")\n# Data source to read a single Access List entry for the Project Service Account\nthis = mongodbatlas.get_project_service_account_access_list_entry_output(project_id=cidr.project_id,\n    client_id=cidr.client_id,\n    cidr_block=cidr.cidr_block)\npulumi.export(\"accessListEntryCidrBlock\", this.cidr_block)\n# Data source to read all Access List entries for the Project Service Account\nthis_get_project_service_account_access_list_entries = mongodbatlas.get_project_service_account_access_list_entries_output(project_id=this_project_service_account.project_id,\n    client_id=this_project_service_account.client_id)\npulumi.export(\"allAccessListEntries\", this_get_project_service_account_access_list_entries.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisProjectServiceAccount = new Mongodbatlas.ProjectServiceAccount(\"this\", new()\n    {\n        ProjectId = projectId,\n        Name = \"example-project-service-account\",\n        Description = \"Example Project Service Account\",\n        Roles = new[]\n        {\n            \"GROUP_READ_ONLY\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    // Add IP Access List Entry to Project Service Account using CIDR Block\n    var cidr = new Mongodbatlas.ProjectServiceAccountAccessListEntry(\"cidr\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n        CidrBlock = \"1.2.3.4/32\",\n    });\n\n    // Add IP Access List Entry to Project Service Account using IP Address\n    var ip = new Mongodbatlas.ProjectServiceAccountAccessListEntry(\"ip\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n        IpAddress = \"2.3.4.5\",\n    });\n\n    // Data source to read a single Access List entry for the Project Service Account\n    var @this = Mongodbatlas.GetProjectServiceAccountAccessListEntry.Invoke(new()\n    {\n        ProjectId = cidr.ProjectId,\n        ClientId = cidr.ClientId,\n        CidrBlock = cidr.CidrBlock,\n    });\n\n    // Data source to read all Access List entries for the Project Service Account\n    var thisGetProjectServiceAccountAccessListEntries = Mongodbatlas.GetProjectServiceAccountAccessListEntries.Invoke(new()\n    {\n        ProjectId = thisProjectServiceAccount.ProjectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accessListEntryCidrBlock\"] = @this.Apply(@this =\u003e @this.Apply(getProjectServiceAccountAccessListEntryResult =\u003e getProjectServiceAccountAccessListEntryResult.CidrBlock)),\n        [\"allAccessListEntries\"] = thisGetProjectServiceAccountAccessListEntries.Apply(getProjectServiceAccountAccessListEntriesResult =\u003e getProjectServiceAccountAccessListEntriesResult.Results),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisProjectServiceAccount, err := mongodbatlas.NewProjectServiceAccount(ctx, \"this\", \u0026mongodbatlas.ProjectServiceAccountArgs{\n\t\t\tProjectId:   pulumi.Any(projectId),\n\t\t\tName:        pulumi.String(\"example-project-service-account\"),\n\t\t\tDescription: pulumi.String(\"Example Project Service Account\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_READ_ONLY\"),\n\t\t\t},\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Project Service Account using CIDR Block\n\t\tcidr, err := mongodbatlas.NewProjectServiceAccountAccessListEntry(ctx, \"cidr\", \u0026mongodbatlas.ProjectServiceAccountAccessListEntryArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tClientId:  thisProjectServiceAccount.ClientId,\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Project Service Account using IP Address\n\t\t_, err = mongodbatlas.NewProjectServiceAccountAccessListEntry(ctx, \"ip\", \u0026mongodbatlas.ProjectServiceAccountAccessListEntryArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tClientId:  thisProjectServiceAccount.ClientId,\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Data source to read a single Access List entry for the Project Service Account\n\t\tthis := mongodbatlas.LookupProjectServiceAccountAccessListEntryOutput(ctx, mongodbatlas.GetProjectServiceAccountAccessListEntryOutputArgs{\n\t\t\tProjectId: cidr.ProjectId,\n\t\t\tClientId:  cidr.ClientId,\n\t\t\tCidrBlock: cidr.CidrBlock,\n\t\t}, nil)\n\t\tctx.Export(\"accessListEntryCidrBlock\", this.ApplyT(func(this mongodbatlas.GetProjectServiceAccountAccessListEntryResult) (*string, error) {\n\t\t\treturn \u0026this.CidrBlock, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\t// Data source to read all Access List entries for the Project Service Account\n\t\tthisGetProjectServiceAccountAccessListEntries := mongodbatlas.LookupProjectServiceAccountAccessListEntriesOutput(ctx, mongodbatlas.GetProjectServiceAccountAccessListEntriesOutputArgs{\n\t\t\tProjectId: thisProjectServiceAccount.ProjectId,\n\t\t\tClientId:  thisProjectServiceAccount.ClientId,\n\t\t}, nil)\n\t\tctx.Export(\"allAccessListEntries\", thisGetProjectServiceAccountAccessListEntries.ApplyT(func(thisGetProjectServiceAccountAccessListEntries mongodbatlas.GetProjectServiceAccountAccessListEntriesResult) ([]mongodbatlas.GetProjectServiceAccountAccessListEntriesResult, error) {\n\t\t\treturn []mongodbatlas.GetProjectServiceAccountAccessListEntriesResult(thisGetProjectServiceAccountAccessListEntries.Results), nil\n\t\t}).([]mongodbatlas.GetProjectServiceAccountAccessListEntriesResultOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectServiceAccount;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountAccessListEntry;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.inputs.GetProjectServiceAccountAccessListEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisProjectServiceAccount = new ProjectServiceAccount(\"thisProjectServiceAccount\", ProjectServiceAccountArgs.builder()\n            .projectId(projectId)\n            .name(\"example-project-service-account\")\n            .description(\"Example Project Service Account\")\n            .roles(\"GROUP_READ_ONLY\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        // Add IP Access List Entry to Project Service Account using CIDR Block\n        var cidr = new ProjectServiceAccountAccessListEntry(\"cidr\", ProjectServiceAccountAccessListEntryArgs.builder()\n            .projectId(projectId)\n            .clientId(thisProjectServiceAccount.clientId())\n            .cidrBlock(\"1.2.3.4/32\")\n            .build());\n\n        // Add IP Access List Entry to Project Service Account using IP Address\n        var ip = new ProjectServiceAccountAccessListEntry(\"ip\", ProjectServiceAccountAccessListEntryArgs.builder()\n            .projectId(projectId)\n            .clientId(thisProjectServiceAccount.clientId())\n            .ipAddress(\"2.3.4.5\")\n            .build());\n\n        // Data source to read a single Access List entry for the Project Service Account\n        final var this = MongodbatlasFunctions.getProjectServiceAccountAccessListEntry(GetProjectServiceAccountAccessListEntryArgs.builder()\n            .projectId(cidr.projectId())\n            .clientId(cidr.clientId())\n            .cidrBlock(cidr.cidrBlock())\n            .build());\n\n        ctx.export(\"accessListEntryCidrBlock\", this_.applyValue(_this_ -\u003e _this_.cidrBlock()));\n        // Data source to read all Access List entries for the Project Service Account\n        final var thisGetProjectServiceAccountAccessListEntries = MongodbatlasFunctions.getProjectServiceAccountAccessListEntries(GetProjectServiceAccountAccessListEntriesArgs.builder()\n            .projectId(thisProjectServiceAccount.projectId())\n            .clientId(thisProjectServiceAccount.clientId())\n            .build());\n\n        ctx.export(\"allAccessListEntries\", thisGetProjectServiceAccountAccessListEntries.applyValue(_thisGetProjectServiceAccountAccessListEntries -\u003e _thisGetProjectServiceAccountAccessListEntries.results()));\n    }\n}\n```\n```yaml\nresources:\n  thisProjectServiceAccount:\n    type: mongodbatlas:ProjectServiceAccount\n    name: this\n    properties:\n      projectId: ${projectId}\n      name: example-project-service-account\n      description: Example Project Service Account\n      roles:\n        - GROUP_READ_ONLY\n      secretExpiresAfterHours: 2160 # 90 days\n  # Add IP Access List Entry to Project Service Account using CIDR Block\n  cidr:\n    type: mongodbatlas:ProjectServiceAccountAccessListEntry\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisProjectServiceAccount.clientId}\n      cidrBlock: 1.2.3.4/32\n  # Add IP Access List Entry to Project Service Account using IP Address\n  ip:\n    type: mongodbatlas:ProjectServiceAccountAccessListEntry\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisProjectServiceAccount.clientId}\n      ipAddress: 2.3.4.5\nvariables:\n  # Data source to read a single Access List entry for the Project Service Account\n  this:\n    fn::invoke:\n      function: mongodbatlas:getProjectServiceAccountAccessListEntry\n      arguments:\n        projectId: ${cidr.projectId}\n        clientId: ${cidr.clientId}\n        cidrBlock: ${cidr.cidrBlock}\n  # Data source to read all Access List entries for the Project Service Account\n  thisGetProjectServiceAccountAccessListEntries:\n    fn::invoke:\n      function: mongodbatlas:getProjectServiceAccountAccessListEntries\n      arguments:\n        projectId: ${thisProjectServiceAccount.projectId}\n        clientId: ${thisProjectServiceAccount.clientId}\noutputs:\n  accessListEntryCidrBlock: ${this.cidrBlock}\n  allAccessListEntries: ${thisGetProjectServiceAccountAccessListEntries.results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjectServiceAccountAccessListEntry.\n","properties":{"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n"},"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"ipAddress":{"type":"string","description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project.\n"}},"type":"object","required":["clientId","projectId"]},"outputs":{"description":"A collection of values returned by getProjectServiceAccountAccessListEntry.\n","properties":{"cidrBlock":{"description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n","type":"string"},"clientId":{"description":"The Client ID of the Service Account.\n","type":"string"},"createdAt":{"description":"Date the entry was added to the access list. This attribute expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n","type":"string"},"lastUsedAddress":{"description":"Network address that issued the most recent request to the API.\n","type":"string"},"lastUsedAt":{"description":"Date when the API received the most recent request that originated from this network address.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies the project.\n","type":"string"},"requestCount":{"description":"The number of requests that has originated from this network address.\n","type":"integer"}},"required":["cidrBlock","clientId","createdAt","ipAddress","lastUsedAddress","lastUsedAt","projectId","requestCount","id"],"type":"object"}},"mongodbatlas:index/getProjectServiceAccountSecret:getProjectServiceAccountSecret":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ProjectServiceAccountSecret`\" pulumi-lang-dotnet=\"`mongodbatlas.ProjectServiceAccountSecret`\" pulumi-lang-go=\"`ProjectServiceAccountSecret`\" pulumi-lang-python=\"`ProjectServiceAccountSecret`\" pulumi-lang-yaml=\"`mongodbatlas.ProjectServiceAccountSecret`\" pulumi-lang-java=\"`mongodbatlas.ProjectServiceAccountSecret`\"\u003e`mongodbatlas.ProjectServiceAccountSecret`\u003c/span\u003e describes a Project Service Account Secret.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisProjectServiceAccount = new mongodbatlas.ProjectServiceAccount(\"this\", {\n    projectId: projectId,\n    name: \"example-project-service-account\",\n    description: \"Example Project Service Account\",\n    roles: [\"GROUP_READ_ONLY\"],\n    secretExpiresAfterHours: 2160,\n});\nconst thisProjectServiceAccountSecret = new mongodbatlas.ProjectServiceAccountSecret(\"this\", {\n    projectId: projectId,\n    clientId: thisProjectServiceAccount.clientId,\n    secretExpiresAfterHours: 2160,\n});\nconst _this = pulumi.all([thisProjectServiceAccount.clientId, thisProjectServiceAccountSecret.secretId]).apply(([clientId, secretId]) =\u003e mongodbatlas.getProjectServiceAccountSecretOutput({\n    projectId: projectId,\n    clientId: clientId,\n    secretId: secretId,\n}));\nexport const secretId = thisProjectServiceAccountSecret.secretId;\nexport const secret = thisProjectServiceAccountSecret.secret;\nexport const secretExpiresAt = _this.apply(_this =\u003e _this.expiresAt);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_project_service_account = mongodbatlas.ProjectServiceAccount(\"this\",\n    project_id=project_id,\n    name=\"example-project-service-account\",\n    description=\"Example Project Service Account\",\n    roles=[\"GROUP_READ_ONLY\"],\n    secret_expires_after_hours=2160)\nthis_project_service_account_secret = mongodbatlas.ProjectServiceAccountSecret(\"this\",\n    project_id=project_id,\n    client_id=this_project_service_account.client_id,\n    secret_expires_after_hours=2160)\nthis = pulumi.Output.all(\n    client_id=this_project_service_account.client_id,\n    secret_id=this_project_service_account_secret.secret_id\n).apply(lambda resolved_outputs: mongodbatlas.get_project_service_account_secret_output(project_id=project_id,\n    client_id=resolved_outputs['client_id'],\n    secret_id=resolved_outputs['secret_id']))\n\npulumi.export(\"secretId\", this_project_service_account_secret.secret_id)\npulumi.export(\"secret\", this_project_service_account_secret.secret)\npulumi.export(\"secretExpiresAt\", this.expires_at)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisProjectServiceAccount = new Mongodbatlas.ProjectServiceAccount(\"this\", new()\n    {\n        ProjectId = projectId,\n        Name = \"example-project-service-account\",\n        Description = \"Example Project Service Account\",\n        Roles = new[]\n        {\n            \"GROUP_READ_ONLY\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var thisProjectServiceAccountSecret = new Mongodbatlas.ProjectServiceAccountSecret(\"this\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var @this = Mongodbatlas.GetProjectServiceAccountSecret.Invoke(new()\n    {\n        ProjectId = projectId,\n        ClientId = thisProjectServiceAccount.ClientId,\n        SecretId = thisProjectServiceAccountSecret.SecretId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"secretId\"] = thisProjectServiceAccountSecret.SecretId,\n        [\"secret\"] = thisProjectServiceAccountSecret.Secret,\n        [\"secretExpiresAt\"] = @this.Apply(@this =\u003e @this.Apply(getProjectServiceAccountSecretResult =\u003e getProjectServiceAccountSecretResult.ExpiresAt)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisProjectServiceAccount, err := mongodbatlas.NewProjectServiceAccount(ctx, \"this\", \u0026mongodbatlas.ProjectServiceAccountArgs{\n\t\t\tProjectId:   pulumi.Any(projectId),\n\t\t\tName:        pulumi.String(\"example-project-service-account\"),\n\t\t\tDescription: pulumi.String(\"Example Project Service Account\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_READ_ONLY\"),\n\t\t\t},\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisProjectServiceAccountSecret, err := mongodbatlas.NewProjectServiceAccountSecret(ctx, \"this\", \u0026mongodbatlas.ProjectServiceAccountSecretArgs{\n\t\t\tProjectId:               pulumi.Any(projectId),\n\t\t\tClientId:                thisProjectServiceAccount.ClientId,\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthis := pulumi.All(thisProjectServiceAccount.ClientId, thisProjectServiceAccountSecret.SecretId).ApplyT(func(_args []interface{}) (mongodbatlas.GetProjectServiceAccountSecretResult, error) {\n\t\t\tclientId := _args[0].(string)\n\t\t\tsecretId := _args[1].(string)\n\t\t\treturn mongodbatlas.GetProjectServiceAccountSecretResult(interface{}(mongodbatlas.LookupProjectServiceAccountSecret(ctx, \u0026mongodbatlas.LookupProjectServiceAccountSecretArgs{\n\t\t\t\tProjectId: projectId,\n\t\t\t\tClientId:  clientId,\n\t\t\t\tSecretId:  secretId,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetProjectServiceAccountSecretResultOutput)\n\t\tctx.Export(\"secretId\", thisProjectServiceAccountSecret.SecretId)\n\t\tctx.Export(\"secret\", thisProjectServiceAccountSecret.Secret)\n\t\tctx.Export(\"secretExpiresAt\", this.ApplyT(func(this mongodbatlas.GetProjectServiceAccountSecretResult) (*string, error) {\n\t\t\treturn \u0026this.ExpiresAt, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ProjectServiceAccount;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountSecret;\nimport com.pulumi.mongodbatlas.ProjectServiceAccountSecretArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetProjectServiceAccountSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisProjectServiceAccount = new ProjectServiceAccount(\"thisProjectServiceAccount\", ProjectServiceAccountArgs.builder()\n            .projectId(projectId)\n            .name(\"example-project-service-account\")\n            .description(\"Example Project Service Account\")\n            .roles(\"GROUP_READ_ONLY\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        var thisProjectServiceAccountSecret = new ProjectServiceAccountSecret(\"thisProjectServiceAccountSecret\", ProjectServiceAccountSecretArgs.builder()\n            .projectId(projectId)\n            .clientId(thisProjectServiceAccount.clientId())\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        final var this = Output.tuple(thisProjectServiceAccount.clientId(), thisProjectServiceAccountSecret.secretId()).applyValue(values -\u003e {\n            var clientId = values.t1;\n            var secretId = values.t2;\n            return MongodbatlasFunctions.getProjectServiceAccountSecret(GetProjectServiceAccountSecretArgs.builder()\n                .projectId(projectId)\n                .clientId(clientId)\n                .secretId(secretId)\n                .build());\n        });\n\n        ctx.export(\"secretId\", thisProjectServiceAccountSecret.secretId());\n        ctx.export(\"secret\", thisProjectServiceAccountSecret.secret());\n        ctx.export(\"secretExpiresAt\", this_.applyValue(_this_ -\u003e _this_.expiresAt()));\n    }\n}\n```\n```yaml\nresources:\n  thisProjectServiceAccount:\n    type: mongodbatlas:ProjectServiceAccount\n    name: this\n    properties:\n      projectId: ${projectId}\n      name: example-project-service-account\n      description: Example Project Service Account\n      roles:\n        - GROUP_READ_ONLY\n      secretExpiresAfterHours: 2160 # 90 days\n  thisProjectServiceAccountSecret:\n    type: mongodbatlas:ProjectServiceAccountSecret\n    name: this\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisProjectServiceAccount.clientId}\n      secretExpiresAfterHours: 2160 # 90 days\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getProjectServiceAccountSecret\n      arguments:\n        projectId: ${projectId}\n        clientId: ${thisProjectServiceAccount.clientId}\n        secretId: ${thisProjectServiceAccountSecret.secretId}\noutputs:\n  secretId: ${thisProjectServiceAccountSecret.secretId}\n  secret: ${thisProjectServiceAccountSecret.secret}\n  secretExpiresAt: ${this.expiresAt}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjectServiceAccountSecret.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object","required":["clientId","projectId","secretId"]},"outputs":{"description":"A collection of values returned by getProjectServiceAccountSecret.\n","properties":{"clientId":{"description":"The Client ID of the Service Account.\n","type":"string"},"createdAt":{"description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"expiresAt":{"description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lastUsedAt":{"description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"maskedSecretValue":{"description":"The masked Service Account secret.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"secretId":{"description":"Unique 24-hexadecimal digit string that identifies the secret.\n","type":"string"}},"required":["clientId","createdAt","expiresAt","lastUsedAt","maskedSecretValue","projectId","secretId","id"],"type":"object"}},"mongodbatlas:index/getProjectServiceAccounts:getProjectServiceAccounts":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjectServiceAccounts`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjectServiceAccounts`\" pulumi-lang-go=\"`getProjectServiceAccounts`\" pulumi-lang-python=\"`get_project_service_accounts`\" pulumi-lang-yaml=\"`mongodbatlas.getProjectServiceAccounts`\" pulumi-lang-java=\"`mongodbatlas.getProjectServiceAccounts`\"\u003e`mongodbatlas.getProjectServiceAccounts`\u003c/span\u003e returns all Service Accounts for the specified Project.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n","inputs":{"description":"A collection of arguments for invoking getProjectServiceAccounts.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getProjectServiceAccounts.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"results":{"description":"List of returned documents that MongoDB Cloud provides when completing this request.\n","items":{"$ref":"#/types/mongodbatlas:index/getProjectServiceAccountsResult:getProjectServiceAccountsResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getProjects:getProjects":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getProjects`\" pulumi-lang-dotnet=\"`mongodbatlas.getProjects`\" pulumi-lang-go=\"`getProjects`\" pulumi-lang-python=\"`get_projects`\" pulumi-lang-yaml=\"`mongodbatlas.getProjects`\" pulumi-lang-java=\"`mongodbatlas.getProjects`\"\u003e`mongodbatlas.getProjects`\u003c/span\u003e describes all Projects. This represents projects that have been created.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getRolesOrgId({});\nconst testProject = new mongodbatlas.Project(\"test\", {\n    name: \"project-name\",\n    orgId: test.then(test =\u003e test.orgId),\n    limits: [{\n        name: \"atlas.project.deployment.clusters\",\n        value: 26,\n    }],\n});\nconst testGetProjects = mongodbatlas.getProjects({\n    pageNum: 1,\n    itemsPerPage: 5,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_roles_org_id()\ntest_project = mongodbatlas.Project(\"test\",\n    name=\"project-name\",\n    org_id=test.org_id,\n    limits=[{\n        \"name\": \"atlas.project.deployment.clusters\",\n        \"value\": 26,\n    }])\ntest_get_projects = mongodbatlas.get_projects(page_num=1,\n    items_per_page=5)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetRolesOrgId.Invoke();\n\n    var testProject = new Mongodbatlas.Project(\"test\", new()\n    {\n        Name = \"project-name\",\n        OrgId = test.Apply(getRolesOrgIdResult =\u003e getRolesOrgIdResult.OrgId),\n        Limits = new[]\n        {\n            new Mongodbatlas.Inputs.ProjectLimitArgs\n            {\n                Name = \"atlas.project.deployment.clusters\",\n                Value = 26,\n            },\n        },\n    });\n\n    var testGetProjects = Mongodbatlas.GetProjects.Invoke(new()\n    {\n        PageNum = 1,\n        ItemsPerPage = 5,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.GetRolesOrgId(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewProject(ctx, \"test\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.String(\"project-name\"),\n\t\t\tOrgId: pulumi.String(test.OrgId),\n\t\t\tLimits: mongodbatlas.ProjectLimitArray{\n\t\t\t\t\u0026mongodbatlas.ProjectLimitArgs{\n\t\t\t\t\tName:  pulumi.String(\"atlas.project.deployment.clusters\"),\n\t\t\t\t\tValue: pulumi.Int(26),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.LookupProjects(ctx, \u0026mongodbatlas.LookupProjectsArgs{\n\t\t\tPageNum:      pulumi.IntRef(1),\n\t\t\tItemsPerPage: pulumi.IntRef(5),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.inputs.ProjectLimitArgs;\nimport com.pulumi.mongodbatlas.inputs.GetProjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getRolesOrgId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        var testProject = new Project(\"testProject\", ProjectArgs.builder()\n            .name(\"project-name\")\n            .orgId(test.orgId())\n            .limits(ProjectLimitArgs.builder()\n                .name(\"atlas.project.deployment.clusters\")\n                .value(26)\n                .build())\n            .build());\n\n        final var testGetProjects = MongodbatlasFunctions.getProjects(GetProjectsArgs.builder()\n            .pageNum(1)\n            .itemsPerPage(5)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testProject:\n    type: mongodbatlas:Project\n    name: test\n    properties:\n      name: project-name\n      orgId: ${test.orgId}\n      limits:\n        - name: atlas.project.deployment.clusters\n          value: 26\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getRolesOrgId\n      arguments: {}\n  testGetProjects:\n    fn::invoke:\n      function: mongodbatlas:getProjects\n      arguments:\n        pageNum: 1\n        itemsPerPage: 5\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProjects.\n","properties":{"itemsPerPage":{"type":"integer","description":"Number of items to return per page, up to a maximum of 500. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"pageNum":{"type":"integer","description":"The page to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProjects.\n","properties":{"id":{"deprecationMessage":"This parameter is deprecated.","type":"string"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getProjectsResult:getProjectsResult"},"type":"array"},"totalCount":{"type":"integer"}},"required":["id","results","totalCount"],"type":"object"}},"mongodbatlas:index/getPushBasedLogExport:getPushBasedLogExport":{"description":"\u003e **DEPRECATED:** This data source is deprecated and will be removed in the next major version. Please use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.LogIntegration`\" pulumi-lang-dotnet=\"`mongodbatlas.LogIntegration`\" pulumi-lang-go=\"`LogIntegration`\" pulumi-lang-python=\"`LogIntegration`\" pulumi-lang-yaml=\"`mongodbatlas.LogIntegration`\" pulumi-lang-java=\"`mongodbatlas.LogIntegration`\"\u003e`mongodbatlas.LogIntegration`\u003c/span\u003e instead. For migration instructions, see the Push-Based Log Export to Log Integration Migration Guide.\n\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.PushBasedLogExport`\" pulumi-lang-dotnet=\"`mongodbatlas.PushBasedLogExport`\" pulumi-lang-go=\"`PushBasedLogExport`\" pulumi-lang-python=\"`PushBasedLogExport`\" pulumi-lang-yaml=\"`mongodbatlas.PushBasedLogExport`\" pulumi-lang-java=\"`mongodbatlas.PushBasedLogExport`\"\u003e`mongodbatlas.PushBasedLogExport`\u003c/span\u003e describes the configured project level settings for the push-based log export feature.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nexport = async () =\u003e {\n    const project_tf = new mongodbatlas.Project(\"project-tf\", {\n        name: atlasProjectName,\n        orgId: atlasOrgId,\n    });\n    // Set up cloud provider access in Atlas using the created IAM role\n    const setupOnly = new mongodbatlas.CloudProviderAccessSetup(\"setup_only\", {\n        projectId: project_tf.id,\n        providerName: \"AWS\",\n    });\n    const authRole = new mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", {\n        projectId: project_tf.id,\n        roleId: setupOnly.roleId,\n        aws: {\n            iamAssumedRoleArn: testRole.arn,\n        },\n    });\n    // Set up push-based log export with authorized IAM role\n    const testPushBasedLogExport = new mongodbatlas.PushBasedLogExport(\"test\", {\n        projectId: project_tf.id,\n        bucketName: logBucket.bucket,\n        iamRoleId: authRole.roleId,\n        prefixPath: \"push-based-log-test\",\n    });\n    const test = mongodbatlas.getPushBasedLogExportOutput({\n        projectId: testPushBasedLogExport.projectId,\n    });\n    return {\n        test: test.apply(test =\u003e test.prefixPath),\n    };\n}\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nproject_tf = mongodbatlas.Project(\"project-tf\",\n    name=atlas_project_name,\n    org_id=atlas_org_id)\n# Set up cloud provider access in Atlas using the created IAM role\nsetup_only = mongodbatlas.CloudProviderAccessSetup(\"setup_only\",\n    project_id=project_tf.id,\n    provider_name=\"AWS\")\nauth_role = mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\",\n    project_id=project_tf.id,\n    role_id=setup_only.role_id,\n    aws={\n        \"iam_assumed_role_arn\": test_role[\"arn\"],\n    })\n# Set up push-based log export with authorized IAM role\ntest_push_based_log_export = mongodbatlas.PushBasedLogExport(\"test\",\n    project_id=project_tf.id,\n    bucket_name=log_bucket[\"bucket\"],\n    iam_role_id=auth_role.role_id,\n    prefix_path=\"push-based-log-test\")\ntest = mongodbatlas.get_push_based_log_export_output(project_id=test_push_based_log_export.project_id)\npulumi.export(\"test\", test.prefix_path)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var project_tf = new Mongodbatlas.Project(\"project-tf\", new()\n    {\n        Name = atlasProjectName,\n        OrgId = atlasOrgId,\n    });\n\n    // Set up cloud provider access in Atlas using the created IAM role\n    var setupOnly = new Mongodbatlas.CloudProviderAccessSetup(\"setup_only\", new()\n    {\n        ProjectId = project_tf.Id,\n        ProviderName = \"AWS\",\n    });\n\n    var authRole = new Mongodbatlas.CloudProviderAccessAuthorization(\"auth_role\", new()\n    {\n        ProjectId = project_tf.Id,\n        RoleId = setupOnly.RoleId,\n        Aws = new Mongodbatlas.Inputs.CloudProviderAccessAuthorizationAwsArgs\n        {\n            IamAssumedRoleArn = testRole.Arn,\n        },\n    });\n\n    // Set up push-based log export with authorized IAM role\n    var testPushBasedLogExport = new Mongodbatlas.PushBasedLogExport(\"test\", new()\n    {\n        ProjectId = project_tf.Id,\n        BucketName = logBucket.Bucket,\n        IamRoleId = authRole.RoleId,\n        PrefixPath = \"push-based-log-test\",\n    });\n\n    var test = Mongodbatlas.GetPushBasedLogExport.Invoke(new()\n    {\n        ProjectId = testPushBasedLogExport.ProjectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"test\"] = test.Apply(getPushBasedLogExportResult =\u003e getPushBasedLogExportResult.PrefixPath),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject_tf, err := mongodbatlas.NewProject(ctx, \"project-tf\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.Any(atlasProjectName),\n\t\t\tOrgId: pulumi.Any(atlasOrgId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Set up cloud provider access in Atlas using the created IAM role\n\t\tsetupOnly, err := mongodbatlas.NewCloudProviderAccessSetup(ctx, \"setup_only\", \u0026mongodbatlas.CloudProviderAccessSetupArgs{\n\t\t\tProjectId:    project_tf.ID(),\n\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tauthRole, err := mongodbatlas.NewCloudProviderAccessAuthorization(ctx, \"auth_role\", \u0026mongodbatlas.CloudProviderAccessAuthorizationArgs{\n\t\t\tProjectId: project_tf.ID(),\n\t\t\tRoleId:    setupOnly.RoleId,\n\t\t\tAws: \u0026mongodbatlas.CloudProviderAccessAuthorizationAwsArgs{\n\t\t\t\tIamAssumedRoleArn: pulumi.Any(testRole.Arn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Set up push-based log export with authorized IAM role\n\t\ttestPushBasedLogExport, err := mongodbatlas.NewPushBasedLogExport(ctx, \"test\", \u0026mongodbatlas.PushBasedLogExportArgs{\n\t\t\tProjectId:  project_tf.ID(),\n\t\t\tBucketName: pulumi.Any(logBucket.Bucket),\n\t\t\tIamRoleId:  authRole.RoleId,\n\t\t\tPrefixPath: pulumi.String(\"push-based-log-test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest := mongodbatlas.LookupPushBasedLogExportOutput(ctx, mongodbatlas.GetPushBasedLogExportOutputArgs{\n\t\t\tProjectId: testPushBasedLogExport.ProjectId,\n\t\t}, nil)\n\t\tctx.Export(\"test\", test.ApplyT(func(test mongodbatlas.GetPushBasedLogExportResult) (*string, error) {\n\t\t\treturn \u0026test.PrefixPath, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetup;\nimport com.pulumi.mongodbatlas.CloudProviderAccessSetupArgs;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorization;\nimport com.pulumi.mongodbatlas.CloudProviderAccessAuthorizationArgs;\nimport com.pulumi.mongodbatlas.inputs.CloudProviderAccessAuthorizationAwsArgs;\nimport com.pulumi.mongodbatlas.PushBasedLogExport;\nimport com.pulumi.mongodbatlas.PushBasedLogExportArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetPushBasedLogExportArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var project_tf = new Project(\"project-tf\", ProjectArgs.builder()\n            .name(atlasProjectName)\n            .orgId(atlasOrgId)\n            .build());\n\n        // Set up cloud provider access in Atlas using the created IAM role\n        var setupOnly = new CloudProviderAccessSetup(\"setupOnly\", CloudProviderAccessSetupArgs.builder()\n            .projectId(project_tf.id())\n            .providerName(\"AWS\")\n            .build());\n\n        var authRole = new CloudProviderAccessAuthorization(\"authRole\", CloudProviderAccessAuthorizationArgs.builder()\n            .projectId(project_tf.id())\n            .roleId(setupOnly.roleId())\n            .aws(CloudProviderAccessAuthorizationAwsArgs.builder()\n                .iamAssumedRoleArn(testRole.arn())\n                .build())\n            .build());\n\n        // Set up push-based log export with authorized IAM role\n        var testPushBasedLogExport = new PushBasedLogExport(\"testPushBasedLogExport\", PushBasedLogExportArgs.builder()\n            .projectId(project_tf.id())\n            .bucketName(logBucket.bucket())\n            .iamRoleId(authRole.roleId())\n            .prefixPath(\"push-based-log-test\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getPushBasedLogExport(GetPushBasedLogExportArgs.builder()\n            .projectId(testPushBasedLogExport.projectId())\n            .build());\n\n        ctx.export(\"test\", test.applyValue(_test -\u003e _test.prefixPath()));\n    }\n}\n```\n```yaml\nresources:\n  project-tf:\n    type: mongodbatlas:Project\n    properties:\n      name: ${atlasProjectName}\n      orgId: ${atlasOrgId}\n  # Set up cloud provider access in Atlas using the created IAM role\n  setupOnly:\n    type: mongodbatlas:CloudProviderAccessSetup\n    name: setup_only\n    properties:\n      projectId: ${[\"project-tf\"].id}\n      providerName: AWS\n  authRole:\n    type: mongodbatlas:CloudProviderAccessAuthorization\n    name: auth_role\n    properties:\n      projectId: ${[\"project-tf\"].id}\n      roleId: ${setupOnly.roleId}\n      aws:\n        iamAssumedRoleArn: ${testRole.arn}\n  # Set up push-based log export with authorized IAM role\n  testPushBasedLogExport:\n    type: mongodbatlas:PushBasedLogExport\n    name: test\n    properties:\n      projectId: ${[\"project-tf\"].id}\n      bucketName: ${logBucket.bucket}\n      iamRoleId: ${authRole.roleId}\n      prefixPath: push-based-log-test\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getPushBasedLogExport\n      arguments:\n        projectId: ${testPushBasedLogExport.projectId}\noutputs:\n  test: ${test.prefixPath}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPushBasedLogExport.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getPushBasedLogExport.\n","properties":{"bucketName":{"type":"string"},"createDate":{"type":"string"},"iamRoleId":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"prefixPath":{"type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"state":{"type":"string"}},"required":["bucketName","createDate","iamRoleId","prefixPath","projectId","state","id"],"type":"object"}},"mongodbatlas:index/getResourcePolicies:getResourcePolicies":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getResourcePolicies`\" pulumi-lang-dotnet=\"`mongodbatlas.getResourcePolicies`\" pulumi-lang-go=\"`getResourcePolicies`\" pulumi-lang-python=\"`get_resource_policies`\" pulumi-lang-yaml=\"`mongodbatlas.getResourcePolicies`\" pulumi-lang-java=\"`mongodbatlas.getResourcePolicies`\"\u003e`mongodbatlas.getResourcePolicies`\u003c/span\u003e returns all resource policies in an organization.\n\n## Example Usage\n\n","inputs":{"description":"A collection of arguments for invoking getResourcePolicies.\n","properties":{"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n"}},"type":"object","required":["orgId"]},"outputs":{"description":"A collection of values returned by getResourcePolicies.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"orgId":{"description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n","type":"string"},"resourcePolicies":{"deprecationMessage":"This parameter is deprecated. Please transition to \u003cspan pulumi-lang-nodejs=\"`results`\" pulumi-lang-dotnet=\"`Results`\" pulumi-lang-go=\"`results`\" pulumi-lang-python=\"`results`\" pulumi-lang-yaml=\"`results`\" pulumi-lang-java=\"`results`\"\u003e`results`\u003c/span\u003e.","items":{"$ref":"#/types/mongodbatlas:index/getResourcePoliciesResourcePolicy:getResourcePoliciesResourcePolicy"},"type":"array"},"results":{"description":"List of documents that MongoDB Cloud returns for this request.\n","items":{"$ref":"#/types/mongodbatlas:index/getResourcePoliciesResult:getResourcePoliciesResult"},"type":"array"}},"required":["orgId","resourcePolicies","results","id"],"type":"object"}},"mongodbatlas:index/getResourcePolicy:getResourcePolicy":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ResourcePolicy`\" pulumi-lang-dotnet=\"`mongodbatlas.ResourcePolicy`\" pulumi-lang-go=\"`ResourcePolicy`\" pulumi-lang-python=\"`ResourcePolicy`\" pulumi-lang-yaml=\"`mongodbatlas.ResourcePolicy`\" pulumi-lang-java=\"`mongodbatlas.ResourcePolicy`\"\u003e`mongodbatlas.ResourcePolicy`\u003c/span\u003e describes a resource policy in an organization.\n\n## Example Usage\n\n","inputs":{"description":"A collection of arguments for invoking getResourcePolicy.\n","properties":{"id":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies an Atlas resource policy.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n"}},"type":"object","required":["id","orgId"]},"outputs":{"description":"A collection of values returned by getResourcePolicy.\n","properties":{"createdByUser":{"$ref":"#/types/mongodbatlas:index/getResourcePolicyCreatedByUser:getResourcePolicyCreatedByUser","description":"The user that last updated the Atlas resource policy.\n"},"createdDate":{"description":"Date and time in UTC when the Atlas resource policy was created.\n","type":"string"},"description":{"description":"Description of the Atlas resource policy.\n","type":"string"},"id":{"description":"Unique 24-hexadecimal digit string that identifies an Atlas resource policy.\n","type":"string"},"lastUpdatedByUser":{"$ref":"#/types/mongodbatlas:index/getResourcePolicyLastUpdatedByUser:getResourcePolicyLastUpdatedByUser","description":"The user that last updated the Atlas resource policy.\n"},"lastUpdatedDate":{"description":"Date and time in UTC when the Atlas resource policy was last updated.\n","type":"string"},"name":{"description":"Human-readable label that describes the Atlas resource policy.\n","type":"string"},"orgId":{"description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects. Use the /orgs endpoint to retrieve all organizations to which the authenticated user has access.\n","type":"string"},"policies":{"description":"List of policies that make up the Atlas resource policy.\n","items":{"$ref":"#/types/mongodbatlas:index/getResourcePolicyPolicy:getResourcePolicyPolicy"},"type":"array"},"version":{"description":"A string that identifies the version of the Atlas resource policy.\n","type":"string"}},"required":["createdByUser","createdDate","description","id","lastUpdatedByUser","lastUpdatedDate","name","orgId","policies","version"],"type":"object"}},"mongodbatlas:index/getRolesOrgId:getRolesOrgId":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getRolesOrgId`\" pulumi-lang-dotnet=\"`mongodbatlas.getRolesOrgId`\" pulumi-lang-go=\"`getRolesOrgId`\" pulumi-lang-python=\"`get_roles_org_id`\" pulumi-lang-yaml=\"`mongodbatlas.getRolesOrgId`\" pulumi-lang-java=\"`mongodbatlas.getRolesOrgId`\"\u003e`mongodbatlas.getRolesOrgId`\u003c/span\u003e allows to retrieve the Org ID of the authenticated user.\n\n## Example Usage\n\n### Using data source to query\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getRolesOrgId({});\nexport const orgId = test.then(test =\u003e test.orgId);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_roles_org_id()\npulumi.export(\"orgId\", test.org_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetRolesOrgId.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"orgId\"] = test.Apply(getRolesOrgIdResult =\u003e getRolesOrgIdResult.OrgId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.GetRolesOrgId(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"orgId\", test.OrgId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getRolesOrgId(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        ctx.export(\"orgId\", test.orgId());\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getRolesOrgId\n      arguments: {}\noutputs:\n  orgId: ${test.orgId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getRolesOrgId.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"orgId":{"description":"The ID of the organization you want to retrieve, which is associated with the Service Account or Programmatic API Key (PAK) of the authenticated user.\n","type":"string"}},"required":["orgId","id"],"type":"object"}},"mongodbatlas:index/getSearchDeployment:getSearchDeployment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.SearchDeployment`\" pulumi-lang-dotnet=\"`mongodbatlas.SearchDeployment`\" pulumi-lang-go=\"`SearchDeployment`\" pulumi-lang-python=\"`SearchDeployment`\" pulumi-lang-yaml=\"`mongodbatlas.SearchDeployment`\" pulumi-lang-java=\"`mongodbatlas.SearchDeployment`\"\u003e`mongodbatlas.SearchDeployment`\u003c/span\u003e describes a search node deployment.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst exampleProject = new mongodbatlas.Project(\"example\", {\n    name: \"project-name\",\n    orgId: orgId,\n});\nconst exampleAdvancedCluster = new mongodbatlas.AdvancedCluster(\"example\", {\n    projectId: exampleProject.id,\n    name: \"ClusterExample\",\n    clusterType: \"REPLICASET\",\n    replicationSpecs: [{\n        regionConfigs: [{\n            electableSpecs: {\n                instanceSize: \"M10\",\n                nodeCount: 3,\n            },\n            providerName: \"AWS\",\n            priority: 7,\n            regionName: \"US_EAST_1\",\n        }],\n    }],\n});\nconst exampleSearchDeployment = new mongodbatlas.SearchDeployment(\"example\", {\n    projectId: exampleProject.id,\n    clusterName: exampleAdvancedCluster.name,\n    specs: [{\n        instanceSize: \"S20_HIGHCPU_NVME\",\n        nodeCount: 2,\n    }],\n});\nconst example = mongodbatlas.getSearchDeploymentOutput({\n    projectId: exampleSearchDeployment.projectId,\n    clusterName: exampleSearchDeployment.clusterName,\n});\nexport const mongodbatlasSearchDeploymentId = example.apply(example =\u003e example.id);\nexport const mongodbatlasSearchDeploymentEncryptionAtRestProvider = example.apply(example =\u003e example.encryptionAtRestProvider);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample_project = mongodbatlas.Project(\"example\",\n    name=\"project-name\",\n    org_id=org_id)\nexample_advanced_cluster = mongodbatlas.AdvancedCluster(\"example\",\n    project_id=example_project.id,\n    name=\"ClusterExample\",\n    cluster_type=\"REPLICASET\",\n    replication_specs=[{\n        \"region_configs\": [{\n            \"electable_specs\": {\n                \"instance_size\": \"M10\",\n                \"node_count\": 3,\n            },\n            \"provider_name\": \"AWS\",\n            \"priority\": 7,\n            \"region_name\": \"US_EAST_1\",\n        }],\n    }])\nexample_search_deployment = mongodbatlas.SearchDeployment(\"example\",\n    project_id=example_project.id,\n    cluster_name=example_advanced_cluster.name,\n    specs=[{\n        \"instance_size\": \"S20_HIGHCPU_NVME\",\n        \"node_count\": 2,\n    }])\nexample = mongodbatlas.get_search_deployment_output(project_id=example_search_deployment.project_id,\n    cluster_name=example_search_deployment.cluster_name)\npulumi.export(\"mongodbatlasSearchDeploymentId\", example.id)\npulumi.export(\"mongodbatlasSearchDeploymentEncryptionAtRestProvider\", example.encryption_at_rest_provider)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleProject = new Mongodbatlas.Project(\"example\", new()\n    {\n        Name = \"project-name\",\n        OrgId = orgId,\n    });\n\n    var exampleAdvancedCluster = new Mongodbatlas.AdvancedCluster(\"example\", new()\n    {\n        ProjectId = exampleProject.Id,\n        Name = \"ClusterExample\",\n        ClusterType = \"REPLICASET\",\n        ReplicationSpecs = new[]\n        {\n            new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecArgs\n            {\n                RegionConfigs = new[]\n                {\n                    new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigArgs\n                    {\n                        ElectableSpecs = new Mongodbatlas.Inputs.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs\n                        {\n                            InstanceSize = \"M10\",\n                            NodeCount = 3,\n                        },\n                        ProviderName = \"AWS\",\n                        Priority = 7,\n                        RegionName = \"US_EAST_1\",\n                    },\n                },\n            },\n        },\n    });\n\n    var exampleSearchDeployment = new Mongodbatlas.SearchDeployment(\"example\", new()\n    {\n        ProjectId = exampleProject.Id,\n        ClusterName = exampleAdvancedCluster.Name,\n        Specs = new[]\n        {\n            new Mongodbatlas.Inputs.SearchDeploymentSpecArgs\n            {\n                InstanceSize = \"S20_HIGHCPU_NVME\",\n                NodeCount = 2,\n            },\n        },\n    });\n\n    var example = Mongodbatlas.GetSearchDeployment.Invoke(new()\n    {\n        ProjectId = exampleSearchDeployment.ProjectId,\n        ClusterName = exampleSearchDeployment.ClusterName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"mongodbatlasSearchDeploymentId\"] = example.Apply(getSearchDeploymentResult =\u003e getSearchDeploymentResult.Id),\n        [\"mongodbatlasSearchDeploymentEncryptionAtRestProvider\"] = example.Apply(getSearchDeploymentResult =\u003e getSearchDeploymentResult.EncryptionAtRestProvider),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleProject, err := mongodbatlas.NewProject(ctx, \"example\", \u0026mongodbatlas.ProjectArgs{\n\t\t\tName:  pulumi.String(\"project-name\"),\n\t\t\tOrgId: pulumi.Any(orgId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAdvancedCluster, err := mongodbatlas.NewAdvancedCluster(ctx, \"example\", \u0026mongodbatlas.AdvancedClusterArgs{\n\t\t\tProjectId:   exampleProject.ID(),\n\t\t\tName:        pulumi.String(\"ClusterExample\"),\n\t\t\tClusterType: pulumi.String(\"REPLICASET\"),\n\t\t\tReplicationSpecs: mongodbatlas.AdvancedClusterReplicationSpecArray{\n\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecArgs{\n\t\t\t\t\tRegionConfigs: mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArray{\n\t\t\t\t\t\t\u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigArgs{\n\t\t\t\t\t\t\tElectableSpecs: \u0026mongodbatlas.AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs{\n\t\t\t\t\t\t\t\tInstanceSize: pulumi.String(\"M10\"),\n\t\t\t\t\t\t\t\tNodeCount:    pulumi.Int(3),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tProviderName: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tPriority:     pulumi.Int(7),\n\t\t\t\t\t\t\tRegionName:   pulumi.String(\"US_EAST_1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSearchDeployment, err := mongodbatlas.NewSearchDeployment(ctx, \"example\", \u0026mongodbatlas.SearchDeploymentArgs{\n\t\t\tProjectId:   exampleProject.ID(),\n\t\t\tClusterName: exampleAdvancedCluster.Name,\n\t\t\tSpecs: mongodbatlas.SearchDeploymentSpecArray{\n\t\t\t\t\u0026mongodbatlas.SearchDeploymentSpecArgs{\n\t\t\t\t\tInstanceSize: pulumi.String(\"S20_HIGHCPU_NVME\"),\n\t\t\t\t\tNodeCount:    pulumi.Int(2),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := mongodbatlas.LookupSearchDeploymentOutput(ctx, mongodbatlas.GetSearchDeploymentOutputArgs{\n\t\t\tProjectId:   exampleSearchDeployment.ProjectId,\n\t\t\tClusterName: exampleSearchDeployment.ClusterName,\n\t\t}, nil)\n\t\tctx.Export(\"mongodbatlasSearchDeploymentId\", example.ApplyT(func(example mongodbatlas.GetSearchDeploymentResult) (*string, error) {\n\t\t\treturn \u0026example.Id, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"mongodbatlasSearchDeploymentEncryptionAtRestProvider\", example.ApplyT(func(example mongodbatlas.GetSearchDeploymentResult) (*string, error) {\n\t\t\treturn \u0026example.EncryptionAtRestProvider, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Project;\nimport com.pulumi.mongodbatlas.ProjectArgs;\nimport com.pulumi.mongodbatlas.AdvancedCluster;\nimport com.pulumi.mongodbatlas.AdvancedClusterArgs;\nimport com.pulumi.mongodbatlas.inputs.AdvancedClusterReplicationSpecArgs;\nimport com.pulumi.mongodbatlas.SearchDeployment;\nimport com.pulumi.mongodbatlas.SearchDeploymentArgs;\nimport com.pulumi.mongodbatlas.inputs.SearchDeploymentSpecArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetSearchDeploymentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .name(\"project-name\")\n            .orgId(orgId)\n            .build());\n\n        var exampleAdvancedCluster = new AdvancedCluster(\"exampleAdvancedCluster\", AdvancedClusterArgs.builder()\n            .projectId(exampleProject.id())\n            .name(\"ClusterExample\")\n            .clusterType(\"REPLICASET\")\n            .replicationSpecs(AdvancedClusterReplicationSpecArgs.builder()\n                .regionConfigs(AdvancedClusterReplicationSpecRegionConfigArgs.builder()\n                    .electableSpecs(AdvancedClusterReplicationSpecRegionConfigElectableSpecsArgs.builder()\n                        .instanceSize(\"M10\")\n                        .nodeCount(3)\n                        .build())\n                    .providerName(\"AWS\")\n                    .priority(7)\n                    .regionName(\"US_EAST_1\")\n                    .build())\n                .build())\n            .build());\n\n        var exampleSearchDeployment = new SearchDeployment(\"exampleSearchDeployment\", SearchDeploymentArgs.builder()\n            .projectId(exampleProject.id())\n            .clusterName(exampleAdvancedCluster.name())\n            .specs(SearchDeploymentSpecArgs.builder()\n                .instanceSize(\"S20_HIGHCPU_NVME\")\n                .nodeCount(2)\n                .build())\n            .build());\n\n        final var example = MongodbatlasFunctions.getSearchDeployment(GetSearchDeploymentArgs.builder()\n            .projectId(exampleSearchDeployment.projectId())\n            .clusterName(exampleSearchDeployment.clusterName())\n            .build());\n\n        ctx.export(\"mongodbatlasSearchDeploymentId\", example.applyValue(_example -\u003e _example.id()));\n        ctx.export(\"mongodbatlasSearchDeploymentEncryptionAtRestProvider\", example.applyValue(_example -\u003e _example.encryptionAtRestProvider()));\n    }\n}\n```\n```yaml\nresources:\n  exampleProject:\n    type: mongodbatlas:Project\n    name: example\n    properties:\n      name: project-name\n      orgId: ${orgId}\n  exampleAdvancedCluster:\n    type: mongodbatlas:AdvancedCluster\n    name: example\n    properties:\n      projectId: ${exampleProject.id}\n      name: ClusterExample\n      clusterType: REPLICASET\n      replicationSpecs:\n        - regionConfigs:\n            - electableSpecs:\n                instanceSize: M10\n                nodeCount: 3\n              providerName: AWS\n              priority: 7\n              regionName: US_EAST_1\n  exampleSearchDeployment:\n    type: mongodbatlas:SearchDeployment\n    name: example\n    properties:\n      projectId: ${exampleProject.id}\n      clusterName: ${exampleAdvancedCluster.name}\n      specs:\n        - instanceSize: S20_HIGHCPU_NVME\n          nodeCount: 2\nvariables:\n  example:\n    fn::invoke:\n      function: mongodbatlas:getSearchDeployment\n      arguments:\n        projectId: ${exampleSearchDeployment.projectId}\n        clusterName: ${exampleSearchDeployment.clusterName}\noutputs:\n  mongodbatlasSearchDeploymentId: ${example.id}\n  mongodbatlasSearchDeploymentEncryptionAtRestProvider: ${example.encryptionAtRestProvider}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSearchDeployment.\n","properties":{"clusterName":{"type":"string","description":"Label that identifies the cluster to return the search nodes for.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getSearchDeployment.\n","properties":{"clusterName":{"description":"Label that identifies the cluster to return the search nodes for.\n","type":"string"},"encryptionAtRestProvider":{"description":"Cloud service provider that manages your customer keys to provide an additional layer of Encryption At Rest for the cluster.\n","type":"string"},"id":{"description":"Unique 24-hexadecimal digit string that identifies the search deployment.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"specs":{"description":"List of settings that configure the search nodes for your cluster. This list is currently limited to defining a single element.\n","items":{"$ref":"#/types/mongodbatlas:index/getSearchDeploymentSpec:getSearchDeploymentSpec"},"type":"array"},"stateName":{"description":"Human-readable label that indicates the current operating condition of this search deployment.\n","type":"string"}},"required":["clusterName","encryptionAtRestProvider","id","projectId","specs","stateName"],"type":"object"}},"mongodbatlas:index/getSearchIndex:getSearchIndex":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.SearchIndex`\" pulumi-lang-dotnet=\"`mongodbatlas.SearchIndex`\" pulumi-lang-go=\"`SearchIndex`\" pulumi-lang-python=\"`SearchIndex`\" pulumi-lang-yaml=\"`mongodbatlas.SearchIndex`\" pulumi-lang-java=\"`mongodbatlas.SearchIndex`\"\u003e`mongodbatlas.SearchIndex`\u003c/span\u003e describes a single search indexes. This represents a single search index that have been created.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getSearchIndex({\n    indexId: \"\u003cINDEX_ID\",\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    clusterName: \"\u003cCLUSTER_NAME\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_search_index(index_id=\"\u003cINDEX_ID\",\n    project_id=\"\u003cPROJECT_ID\u003e\",\n    cluster_name=\"\u003cCLUSTER_NAME\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetSearchIndex.Invoke(new()\n    {\n        IndexId = \"\u003cINDEX_ID\",\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        ClusterName = \"\u003cCLUSTER_NAME\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupSearchIndex(ctx, \u0026mongodbatlas.LookupSearchIndexArgs{\n\t\t\tIndexId:     \"\u003cINDEX_ID\",\n\t\t\tProjectId:   \"\u003cPROJECT_ID\u003e\",\n\t\t\tClusterName: \"\u003cCLUSTER_NAME\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetSearchIndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getSearchIndex(GetSearchIndexArgs.builder()\n            .indexId(\"\u003cINDEX_ID\")\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .clusterName(\"\u003cCLUSTER_NAME\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getSearchIndex\n      arguments:\n        indexId: \u003cINDEX_ID\n        projectId: \u003cPROJECT_ID\u003e\n        clusterName: \u003cCLUSTER_NAME\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSearchIndex.\n","properties":{"clusterName":{"type":"string","description":"The name of the cluster containing the collection with one or more Atlas Search indexes.\n"},"indexId":{"type":"string","description":"The unique identifier of the Atlas Search index. Use the \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getSearchIndexes`\" pulumi-lang-dotnet=\"`mongodbatlas.getSearchIndexes`\" pulumi-lang-go=\"`getSearchIndexes`\" pulumi-lang-python=\"`get_search_indexes`\" pulumi-lang-yaml=\"`mongodbatlas.getSearchIndexes`\" pulumi-lang-java=\"`mongodbatlas.getSearchIndexes`\"\u003e`mongodbatlas.getSearchIndexes`\u003c/span\u003edatasource to find the IDs of all Atlas Search indexes.\n"},"projectId":{"type":"string","description":"The unique identifier for the [project](https://docs.atlas.mongodb.com/organizations-projects/#std-label-projects) that contains the specified cluster.\n"}},"type":"object","required":["clusterName","indexId","projectId"]},"outputs":{"description":"A collection of values returned by getSearchIndex.\n","properties":{"analyzer":{"description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when creating the index.\n","type":"string"},"analyzers":{"description":"[Custom analyzers](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/custom/#std-label-custom-analyzers) to use in this index (this is an array of objects).\n","type":"string"},"clusterName":{"type":"string"},"collectionName":{"description":"Name of the collection the index is on.\n","type":"string"},"database":{"description":"Name of the database the collection is in.\n","type":"string"},"fields":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"indexId":{"type":"string"},"mappingsDynamic":{"description":"Flag indicating whether the index uses dynamic or static mappings.\n","type":"boolean"},"mappingsDynamicConfig":{"description":"JSON object for `mappings.dynamic` when Atlas returns an object (Please see the documentation for [dynamic and static mappings](https://www.mongodb.com/docs/atlas/atlas-search/index-definitions/#field-mapping-examples)). Mutually exclusive with \u003cspan pulumi-lang-nodejs=\"`mappingsDynamic`\" pulumi-lang-dotnet=\"`MappingsDynamic`\" pulumi-lang-go=\"`mappingsDynamic`\" pulumi-lang-python=\"`mappings_dynamic`\" pulumi-lang-yaml=\"`mappingsDynamic`\" pulumi-lang-java=\"`mappingsDynamic`\"\u003e`mappings_dynamic`\u003c/span\u003e.\n","type":"string"},"mappingsFields":{"description":"Object containing one or more field specifications.\n","type":"string"},"name":{"description":"Type set name.\n","type":"string"},"numPartitions":{"description":"Number of index partitions.\n","type":"integer"},"projectId":{"type":"string"},"searchAnalyzer":{"description":"[Analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use when searching the index.\n","type":"string"},"status":{"description":"Current status of the index.\n","type":"string"},"storedSource":{"description":"String that can be \"true\" (store all fields), \"false\" (default, don't store any field), or a JSON string that contains the list of fields to store (include) or not store (exclude) on Atlas Search. To learn more, see [Stored Source Fields](https://www.mongodb.com/docs/atlas/atlas-search/stored-source-definition/).\n","type":"string"},"synonyms":{"description":"Synonyms mapping definition to use in this index.\n* `synonyms.#.name` - Name of the [synonym mapping definition](https://docs.atlas.mongodb.com/reference/atlas-search/synonyms/#std-label-synonyms-ref).\n* `synonyms.#.source_collection` - Name of the source MongoDB collection for the synonyms.\n* `synonyms.#.analyzer` - Name of the [analyzer](https://docs.atlas.mongodb.com/reference/atlas-search/analyzers/#std-label-analyzers-ref) to use with this synonym mapping.\n","items":{"$ref":"#/types/mongodbatlas:index/getSearchIndexSynonym:getSearchIndexSynonym"},"type":"array"},"type":{"type":"string"},"typeSets":{"description":"Set of type set definitions (when present). Each item includes:\n","items":{"$ref":"#/types/mongodbatlas:index/getSearchIndexTypeSet:getSearchIndexTypeSet"},"type":"array"}},"required":["analyzer","analyzers","clusterName","collectionName","database","fields","indexId","mappingsDynamic","mappingsDynamicConfig","mappingsFields","name","numPartitions","projectId","searchAnalyzer","status","storedSource","synonyms","type","typeSets","id"],"type":"object"}},"mongodbatlas:index/getSearchIndexes:getSearchIndexes":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getSearchIndexes`\" pulumi-lang-dotnet=\"`mongodbatlas.getSearchIndexes`\" pulumi-lang-go=\"`getSearchIndexes`\" pulumi-lang-python=\"`get_search_indexes`\" pulumi-lang-yaml=\"`mongodbatlas.getSearchIndexes`\" pulumi-lang-java=\"`mongodbatlas.getSearchIndexes`\"\u003e`mongodbatlas.getSearchIndexes`\u003c/span\u003e describes all search indexes. This represents search indexes that have been created.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getSearchIndexes\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        clusterName: \u003cCLUSTER_NAME\u003e\n        databaseName: \u003cDATABASE_NAME\u003e\n        collectionName: \u003cCOLLECTION_NAME\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getSearchIndexes.\n","properties":{"clusterName":{"type":"string","description":"Name of the cluster containing the collection with one or more Atlas Search indexes.\n"},"collectionName":{"type":"string","description":"Name of the collection with one or more Atlas Search indexes.\n"},"database":{"type":"string","description":"(Required) Name of the database the collection is in.\n"},"projectId":{"type":"string","description":"Unique identifier for the [project](https://docs.atlas.mongodb.com/organizations-projects/#std-label-projects) that contains the specified cluster.\n"}},"type":"object","required":["clusterName","collectionName","database","projectId"]},"outputs":{"description":"A collection of values returned by getSearchIndexes.\n","properties":{"clusterName":{"type":"string"},"collectionName":{"description":"(Required) Name of the collection the index is on.\n","type":"string"},"database":{"description":"(Required) Name of the database the collection is in.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"description":"A list where each represents a search index.\n","items":{"$ref":"#/types/mongodbatlas:index/getSearchIndexesResult:getSearchIndexesResult"},"type":"array"},"totalCount":{"description":"Represents the total of the search indexes\n","type":"integer"}},"required":["clusterName","collectionName","database","projectId","results","totalCount","id"],"type":"object"}},"mongodbatlas:index/getServerlessInstance:getServerlessInstance":{"description":"\u003e **DEPRECATION:** This data source is deprecated and will be removed in January 2026. For more details, see Migration Guide: Transition out of Serverless Instances and Shared-tier clusters.\n\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServerlessInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.ServerlessInstance`\" pulumi-lang-go=\"`ServerlessInstance`\" pulumi-lang-python=\"`ServerlessInstance`\" pulumi-lang-yaml=\"`mongodbatlas.ServerlessInstance`\" pulumi-lang-java=\"`mongodbatlas.ServerlessInstance`\"\u003e`mongodbatlas.ServerlessInstance`\u003c/span\u003e describes a single serverless instance. This represents a single serverless instance that have been created.\n\u003e **NOTE:**  Serverless instances do not support some Atlas features at this time.\nFor a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/).\n \n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n### Basic\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testTwo = mongodbatlas.getServerlessInstance({\n    name: \"\u003cSERVERLESS_INSTANCE_NAME\u003e\",\n    projectId: \"\u003cPROJECT_ID \u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_two = mongodbatlas.get_serverless_instance(name=\"\u003cSERVERLESS_INSTANCE_NAME\u003e\",\n    project_id=\"\u003cPROJECT_ID \u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testTwo = Mongodbatlas.GetServerlessInstance.Invoke(new()\n    {\n        Name = \"\u003cSERVERLESS_INSTANCE_NAME\u003e\",\n        ProjectId = \"\u003cPROJECT_ID \u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupServerlessInstance(ctx, \u0026mongodbatlas.LookupServerlessInstanceArgs{\n\t\t\tName:      \"\u003cSERVERLESS_INSTANCE_NAME\u003e\",\n\t\t\tProjectId: \"\u003cPROJECT_ID \u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetServerlessInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var testTwo = MongodbatlasFunctions.getServerlessInstance(GetServerlessInstanceArgs.builder()\n            .name(\"\u003cSERVERLESS_INSTANCE_NAME\u003e\")\n            .projectId(\"\u003cPROJECT_ID \u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  testTwo:\n    fn::invoke:\n      function: mongodbatlas:getServerlessInstance\n      arguments:\n        name: \u003cSERVERLESS_INSTANCE_NAME\u003e\n        projectId: \u003cPROJECT_ID \u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerlessInstance.\n","properties":{"autoIndexing":{"type":"boolean","description":"(Deprecated) Flag that indicates whether the serverless instance uses [Serverless Auto Indexing](https://www.mongodb.com/docs/atlas/performance-advisor/auto-index-serverless/).\n","deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide."},"continuousBackupEnabled":{"type":"boolean","description":"(Deprecated) Flag that indicates whether the serverless instance uses Serverless Continuous Backup.\n","deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide."},"links":{"type":"array","items":{"$ref":"#/types/mongodbatlas:index/getServerlessInstanceLink:getServerlessInstanceLink"}},"name":{"type":"string","description":"Human-readable label that identifies your serverless instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the project that contains your serverless instance.\n"},"stateName":{"type":"string","description":"Stage of deployment of this serverless instance when the resource made its request.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getServerlessInstance.\n","properties":{"autoIndexing":{"deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide.","description":"(Deprecated) Flag that indicates whether the serverless instance uses [Serverless Auto Indexing](https://www.mongodb.com/docs/atlas/performance-advisor/auto-index-serverless/).\n","type":"boolean"},"connectionStringsPrivateEndpointSrvs":{"description":"List of Serverless Private Endpoint Connections\n","items":{"type":"string"},"type":"array"},"connectionStringsStandardSrv":{"description":"Public `mongodb+srv://` connection string that you can use to connect to this serverless instance.\n","type":"string"},"continuousBackupEnabled":{"deprecationMessage":"This parameter is deprecated and will be removed in March 2025. For more details see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/serverless-shared-migration-guide.","description":"(Deprecated) Flag that indicates whether the serverless instance uses Serverless Continuous Backup.\n","type":"boolean"},"createDate":{"type":"string"},"id":{"description":"Unique 24-hexadecimal digit string that identifies the serverless instance.\n","type":"string"},"links":{"items":{"$ref":"#/types/mongodbatlas:index/getServerlessInstanceLink:getServerlessInstanceLink"},"type":"array"},"mongoDbVersion":{"description":"Version of MongoDB that the serverless instance runs, in `\u003cmajor version\u003e`.`\u003cminor version\u003e` format.\n","type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"providerSettingsBackingProviderName":{"description":"Cloud service provider on which MongoDB Cloud provisioned the serverless instance.\n","type":"string"},"providerSettingsProviderName":{"description":"Cloud service provider that applies to the provisioned the serverless instance.\n","type":"string"},"providerSettingsRegionName":{"description":"Human-readable label that identifies the physical location of your MongoDB serverless instance. The region you choose can affect network latency for clients accessing your databases.\n","type":"string"},"stateName":{"description":"Stage of deployment of this serverless instance when the resource made its request.\n","type":"string"},"tags":{"description":"Set that contains key-value pairs between 1 to 255 characters in length for tagging and categorizing the cluster. See below.\n","items":{"$ref":"#/types/mongodbatlas:index/getServerlessInstanceTag:getServerlessInstanceTag"},"type":"array"},"terminationProtectionEnabled":{"description":"Flag that indicates whether termination protection is enabled on the cluster. If set to true, MongoDB Cloud won't delete the cluster. If set to false, MongoDB Cloud will delete the cluster.\n","type":"boolean"}},"required":["autoIndexing","connectionStringsPrivateEndpointSrvs","connectionStringsStandardSrv","continuousBackupEnabled","createDate","id","links","mongoDbVersion","name","projectId","providerSettingsBackingProviderName","providerSettingsProviderName","providerSettingsRegionName","stateName","tags","terminationProtectionEnabled"],"type":"object"}},"mongodbatlas:index/getServerlessInstances:getServerlessInstances":{"description":"\u003e **DEPRECATION:** This data source is deprecated and will be removed in January 2026. For more details, see Migration Guide: Transition out of Serverless Instances and Shared-tier clusters.\n\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getServerlessInstances`\" pulumi-lang-dotnet=\"`mongodbatlas.getServerlessInstances`\" pulumi-lang-go=\"`getServerlessInstances`\" pulumi-lang-python=\"`get_serverless_instances`\" pulumi-lang-yaml=\"`mongodbatlas.getServerlessInstances`\" pulumi-lang-java=\"`mongodbatlas.getServerlessInstances`\"\u003e`mongodbatlas.getServerlessInstances`\u003c/span\u003e describes all serverless instances. This represents serverless instances that have been created for the specified group id.\n\n\u003e **NOTE:**  Serverless instances do not support some Atlas features at this time.\nFor a full list of unsupported features, see [Serverless Instance Limitations](https://docs.atlas.mongodb.com/reference/serverless-instance-limitations/).\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst dataServerless = mongodbatlas.getServerlessInstances({\n    projectId: \"\u003cPROJECT_ID\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ndata_serverless = mongodbatlas.get_serverless_instances(project_id=\"\u003cPROJECT_ID\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var dataServerless = Mongodbatlas.GetServerlessInstances.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupServerlessInstances(ctx, \u0026mongodbatlas.LookupServerlessInstancesArgs{\n\t\t\tProjectId: \"\u003cPROJECT_ID\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetServerlessInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var dataServerless = MongodbatlasFunctions.getServerlessInstances(GetServerlessInstancesArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  dataServerless:\n    fn::invoke:\n      function: mongodbatlas:getServerlessInstances\n      arguments:\n        projectId: \u003cPROJECT_ID\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServerlessInstances.\n","properties":{"projectId":{"type":"string","description":"Unique identifier for the [project](https://docs.atlas.mongodb.com/organizations-projects/#std-label-projects) that contains the specified cluster.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getServerlessInstances.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"description":"A list where each result represents a Serverless Instance. To learn more, see Serverless Instance.\n","items":{"$ref":"#/types/mongodbatlas:index/getServerlessInstancesResult:getServerlessInstancesResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getServiceAccount:getServiceAccount":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServiceAccount`\" pulumi-lang-dotnet=\"`mongodbatlas.ServiceAccount`\" pulumi-lang-go=\"`ServiceAccount`\" pulumi-lang-python=\"`ServiceAccount`\" pulumi-lang-yaml=\"`mongodbatlas.ServiceAccount`\" pulumi-lang-java=\"`mongodbatlas.ServiceAccount`\"\u003e`mongodbatlas.ServiceAccount`\u003c/span\u003e describes a Service Account.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n","inputs":{"description":"A collection of arguments for invoking getServiceAccount.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"type":"object","required":["clientId","orgId"]},"outputs":{"description":"A collection of values returned by getServiceAccount.\n","properties":{"clientId":{"description":"The Client ID of the Service Account.\n","type":"string"},"createdAt":{"description":"The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"description":{"description":"Human readable description for the Service Account.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"Human-readable name for the Service Account.\n","type":"string"},"orgId":{"description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n","type":"string"},"roles":{"description":"A list of Organization roles associated with the Service Account.\n","items":{"type":"string"},"type":"array"},"secrets":{"description":"A list of secrets associated with the specified Service Account.\n","items":{"$ref":"#/types/mongodbatlas:index/getServiceAccountSecret:getServiceAccountSecret"},"type":"array"}},"required":["clientId","createdAt","description","name","orgId","roles","secrets","id"],"type":"object"}},"mongodbatlas:index/getServiceAccountAccessListEntries:getServiceAccountAccessListEntries":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getServiceAccountAccessListEntries`\" pulumi-lang-dotnet=\"`mongodbatlas.getServiceAccountAccessListEntries`\" pulumi-lang-go=\"`getServiceAccountAccessListEntries`\" pulumi-lang-python=\"`get_service_account_access_list_entries`\" pulumi-lang-yaml=\"`mongodbatlas.getServiceAccountAccessListEntries`\" pulumi-lang-java=\"`mongodbatlas.getServiceAccountAccessListEntries`\"\u003e`mongodbatlas.getServiceAccountAccessListEntries`\u003c/span\u003e returns all Access List entries for the specified Service Account.\n\n\u003e **IMPORTANT:** When you remove an entry from the access list, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider, hence a change will force the destruction and recreation of entries.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisServiceAccount = new mongodbatlas.ServiceAccount(\"this\", {\n    orgId: orgId,\n    name: \"example-service-account\",\n    description: \"Example Service Account\",\n    roles: [\"ORG_READ_ONLY\"],\n    secretExpiresAfterHours: 2160,\n});\n// Add IP Access List Entry to Service Account using CIDR Block\nconst cidr = new mongodbatlas.ServiceAccountAccessListEntry(\"cidr\", {\n    orgId: orgId,\n    clientId: thisServiceAccount.clientId,\n    cidrBlock: \"1.2.3.4/32\",\n});\n// Add IP Access List Entry to Service Account using IP Address\nconst ip = new mongodbatlas.ServiceAccountAccessListEntry(\"ip\", {\n    orgId: orgId,\n    clientId: thisServiceAccount.clientId,\n    ipAddress: \"2.3.4.5\",\n});\n// Data source to read a single Access List entry for the Service Account\nconst _this = mongodbatlas.getServiceAccountAccessListEntryOutput({\n    orgId: cidr.orgId,\n    clientId: cidr.clientId,\n    cidrBlock: cidr.cidrBlock,\n});\nexport const accessListEntryCidrBlock = _this.apply(_this =\u003e _this.cidrBlock);\n// Data source to read all Access List entries for the Service Account\nconst thisGetServiceAccountAccessListEntries = mongodbatlas.getServiceAccountAccessListEntriesOutput({\n    orgId: thisServiceAccount.orgId,\n    clientId: thisServiceAccount.clientId,\n});\nexport const allAccessListEntries = thisGetServiceAccountAccessListEntries.apply(thisGetServiceAccountAccessListEntries =\u003e thisGetServiceAccountAccessListEntries.results);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_service_account = mongodbatlas.ServiceAccount(\"this\",\n    org_id=org_id,\n    name=\"example-service-account\",\n    description=\"Example Service Account\",\n    roles=[\"ORG_READ_ONLY\"],\n    secret_expires_after_hours=2160)\n# Add IP Access List Entry to Service Account using CIDR Block\ncidr = mongodbatlas.ServiceAccountAccessListEntry(\"cidr\",\n    org_id=org_id,\n    client_id=this_service_account.client_id,\n    cidr_block=\"1.2.3.4/32\")\n# Add IP Access List Entry to Service Account using IP Address\nip = mongodbatlas.ServiceAccountAccessListEntry(\"ip\",\n    org_id=org_id,\n    client_id=this_service_account.client_id,\n    ip_address=\"2.3.4.5\")\n# Data source to read a single Access List entry for the Service Account\nthis = mongodbatlas.get_service_account_access_list_entry_output(org_id=cidr.org_id,\n    client_id=cidr.client_id,\n    cidr_block=cidr.cidr_block)\npulumi.export(\"accessListEntryCidrBlock\", this.cidr_block)\n# Data source to read all Access List entries for the Service Account\nthis_get_service_account_access_list_entries = mongodbatlas.get_service_account_access_list_entries_output(org_id=this_service_account.org_id,\n    client_id=this_service_account.client_id)\npulumi.export(\"allAccessListEntries\", this_get_service_account_access_list_entries.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisServiceAccount = new Mongodbatlas.ServiceAccount(\"this\", new()\n    {\n        OrgId = orgId,\n        Name = \"example-service-account\",\n        Description = \"Example Service Account\",\n        Roles = new[]\n        {\n            \"ORG_READ_ONLY\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    // Add IP Access List Entry to Service Account using CIDR Block\n    var cidr = new Mongodbatlas.ServiceAccountAccessListEntry(\"cidr\", new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n        CidrBlock = \"1.2.3.4/32\",\n    });\n\n    // Add IP Access List Entry to Service Account using IP Address\n    var ip = new Mongodbatlas.ServiceAccountAccessListEntry(\"ip\", new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n        IpAddress = \"2.3.4.5\",\n    });\n\n    // Data source to read a single Access List entry for the Service Account\n    var @this = Mongodbatlas.GetServiceAccountAccessListEntry.Invoke(new()\n    {\n        OrgId = cidr.OrgId,\n        ClientId = cidr.ClientId,\n        CidrBlock = cidr.CidrBlock,\n    });\n\n    // Data source to read all Access List entries for the Service Account\n    var thisGetServiceAccountAccessListEntries = Mongodbatlas.GetServiceAccountAccessListEntries.Invoke(new()\n    {\n        OrgId = thisServiceAccount.OrgId,\n        ClientId = thisServiceAccount.ClientId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accessListEntryCidrBlock\"] = @this.Apply(@this =\u003e @this.Apply(getServiceAccountAccessListEntryResult =\u003e getServiceAccountAccessListEntryResult.CidrBlock)),\n        [\"allAccessListEntries\"] = thisGetServiceAccountAccessListEntries.Apply(getServiceAccountAccessListEntriesResult =\u003e getServiceAccountAccessListEntriesResult.Results),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisServiceAccount, err := mongodbatlas.NewServiceAccount(ctx, \"this\", \u0026mongodbatlas.ServiceAccountArgs{\n\t\t\tOrgId:       pulumi.Any(orgId),\n\t\t\tName:        pulumi.String(\"example-service-account\"),\n\t\t\tDescription: pulumi.String(\"Example Service Account\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_READ_ONLY\"),\n\t\t\t},\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Service Account using CIDR Block\n\t\tcidr, err := mongodbatlas.NewServiceAccountAccessListEntry(ctx, \"cidr\", \u0026mongodbatlas.ServiceAccountAccessListEntryArgs{\n\t\t\tOrgId:     pulumi.Any(orgId),\n\t\t\tClientId:  thisServiceAccount.ClientId,\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Service Account using IP Address\n\t\t_, err = mongodbatlas.NewServiceAccountAccessListEntry(ctx, \"ip\", \u0026mongodbatlas.ServiceAccountAccessListEntryArgs{\n\t\t\tOrgId:     pulumi.Any(orgId),\n\t\t\tClientId:  thisServiceAccount.ClientId,\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Data source to read a single Access List entry for the Service Account\n\t\tthis := mongodbatlas.LookupServiceAccountAccessListEntryOutput(ctx, mongodbatlas.GetServiceAccountAccessListEntryOutputArgs{\n\t\t\tOrgId:     cidr.OrgId,\n\t\t\tClientId:  cidr.ClientId,\n\t\t\tCidrBlock: cidr.CidrBlock,\n\t\t}, nil)\n\t\tctx.Export(\"accessListEntryCidrBlock\", this.ApplyT(func(this mongodbatlas.GetServiceAccountAccessListEntryResult) (*string, error) {\n\t\t\treturn \u0026this.CidrBlock, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\t// Data source to read all Access List entries for the Service Account\n\t\tthisGetServiceAccountAccessListEntries := mongodbatlas.LookupServiceAccountAccessListEntriesOutput(ctx, mongodbatlas.GetServiceAccountAccessListEntriesOutputArgs{\n\t\t\tOrgId:    thisServiceAccount.OrgId,\n\t\t\tClientId: thisServiceAccount.ClientId,\n\t\t}, nil)\n\t\tctx.Export(\"allAccessListEntries\", thisGetServiceAccountAccessListEntries.ApplyT(func(thisGetServiceAccountAccessListEntries mongodbatlas.GetServiceAccountAccessListEntriesResult) ([]mongodbatlas.GetServiceAccountAccessListEntriesResult, error) {\n\t\t\treturn []mongodbatlas.GetServiceAccountAccessListEntriesResult(thisGetServiceAccountAccessListEntries.Results), nil\n\t\t}).([]mongodbatlas.GetServiceAccountAccessListEntriesResultOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ServiceAccount;\nimport com.pulumi.mongodbatlas.ServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ServiceAccountAccessListEntry;\nimport com.pulumi.mongodbatlas.ServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountAccessListEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisServiceAccount = new ServiceAccount(\"thisServiceAccount\", ServiceAccountArgs.builder()\n            .orgId(orgId)\n            .name(\"example-service-account\")\n            .description(\"Example Service Account\")\n            .roles(\"ORG_READ_ONLY\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        // Add IP Access List Entry to Service Account using CIDR Block\n        var cidr = new ServiceAccountAccessListEntry(\"cidr\", ServiceAccountAccessListEntryArgs.builder()\n            .orgId(orgId)\n            .clientId(thisServiceAccount.clientId())\n            .cidrBlock(\"1.2.3.4/32\")\n            .build());\n\n        // Add IP Access List Entry to Service Account using IP Address\n        var ip = new ServiceAccountAccessListEntry(\"ip\", ServiceAccountAccessListEntryArgs.builder()\n            .orgId(orgId)\n            .clientId(thisServiceAccount.clientId())\n            .ipAddress(\"2.3.4.5\")\n            .build());\n\n        // Data source to read a single Access List entry for the Service Account\n        final var this = MongodbatlasFunctions.getServiceAccountAccessListEntry(GetServiceAccountAccessListEntryArgs.builder()\n            .orgId(cidr.orgId())\n            .clientId(cidr.clientId())\n            .cidrBlock(cidr.cidrBlock())\n            .build());\n\n        ctx.export(\"accessListEntryCidrBlock\", this_.applyValue(_this_ -\u003e _this_.cidrBlock()));\n        // Data source to read all Access List entries for the Service Account\n        final var thisGetServiceAccountAccessListEntries = MongodbatlasFunctions.getServiceAccountAccessListEntries(GetServiceAccountAccessListEntriesArgs.builder()\n            .orgId(thisServiceAccount.orgId())\n            .clientId(thisServiceAccount.clientId())\n            .build());\n\n        ctx.export(\"allAccessListEntries\", thisGetServiceAccountAccessListEntries.applyValue(_thisGetServiceAccountAccessListEntries -\u003e _thisGetServiceAccountAccessListEntries.results()));\n    }\n}\n```\n```yaml\nresources:\n  thisServiceAccount:\n    type: mongodbatlas:ServiceAccount\n    name: this\n    properties:\n      orgId: ${orgId}\n      name: example-service-account\n      description: Example Service Account\n      roles:\n        - ORG_READ_ONLY\n      secretExpiresAfterHours: 2160 # 90 days\n  # Add IP Access List Entry to Service Account using CIDR Block\n  cidr:\n    type: mongodbatlas:ServiceAccountAccessListEntry\n    properties:\n      orgId: ${orgId}\n      clientId: ${thisServiceAccount.clientId}\n      cidrBlock: 1.2.3.4/32\n  # Add IP Access List Entry to Service Account using IP Address\n  ip:\n    type: mongodbatlas:ServiceAccountAccessListEntry\n    properties:\n      orgId: ${orgId}\n      clientId: ${thisServiceAccount.clientId}\n      ipAddress: 2.3.4.5\nvariables:\n  # Data source to read a single Access List entry for the Service Account\n  this:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountAccessListEntry\n      arguments:\n        orgId: ${cidr.orgId}\n        clientId: ${cidr.clientId}\n        cidrBlock: ${cidr.cidrBlock}\n  # Data source to read all Access List entries for the Service Account\n  thisGetServiceAccountAccessListEntries:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountAccessListEntries\n      arguments:\n        orgId: ${thisServiceAccount.orgId}\n        clientId: ${thisServiceAccount.clientId}\noutputs:\n  accessListEntryCidrBlock: ${this.cidrBlock}\n  allAccessListEntries: ${thisGetServiceAccountAccessListEntries.results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceAccountAccessListEntries.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"type":"object","required":["clientId","orgId"]},"outputs":{"description":"A collection of values returned by getServiceAccountAccessListEntries.\n","properties":{"clientId":{"description":"The Client ID of the Service Account.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"orgId":{"description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n","type":"string"},"results":{"description":"List of documents that MongoDB Cloud returns for this request.\n","items":{"$ref":"#/types/mongodbatlas:index/getServiceAccountAccessListEntriesResult:getServiceAccountAccessListEntriesResult"},"type":"array"}},"required":["clientId","orgId","results","id"],"type":"object"}},"mongodbatlas:index/getServiceAccountAccessListEntry:getServiceAccountAccessListEntry":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServiceAccountAccessListEntry`\" pulumi-lang-dotnet=\"`mongodbatlas.ServiceAccountAccessListEntry`\" pulumi-lang-go=\"`ServiceAccountAccessListEntry`\" pulumi-lang-python=\"`ServiceAccountAccessListEntry`\" pulumi-lang-yaml=\"`mongodbatlas.ServiceAccountAccessListEntry`\" pulumi-lang-java=\"`mongodbatlas.ServiceAccountAccessListEntry`\"\u003e`mongodbatlas.ServiceAccountAccessListEntry`\u003c/span\u003e returns an Access List entry for the specified Service Account.\n\n\u003e **IMPORTANT:** When you remove an entry from the access list, existing connections from the removed address(es) may remain open for a variable amount of time. How much time passes before Atlas closes the connection depends on several factors, including how the connection was established, the particular behavior of the application or driver using the address, and the connection protocol (e.g., TCP or UDP). This is particularly important to consider when changing an existing IP address or CIDR block as they cannot be updated via the Provider, hence a change will force the destruction and recreation of entries.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisServiceAccount = new mongodbatlas.ServiceAccount(\"this\", {\n    orgId: orgId,\n    name: \"example-service-account\",\n    description: \"Example Service Account\",\n    roles: [\"ORG_READ_ONLY\"],\n    secretExpiresAfterHours: 2160,\n});\n// Add IP Access List Entry to Service Account using CIDR Block\nconst cidr = new mongodbatlas.ServiceAccountAccessListEntry(\"cidr\", {\n    orgId: orgId,\n    clientId: thisServiceAccount.clientId,\n    cidrBlock: \"1.2.3.4/32\",\n});\n// Add IP Access List Entry to Service Account using IP Address\nconst ip = new mongodbatlas.ServiceAccountAccessListEntry(\"ip\", {\n    orgId: orgId,\n    clientId: thisServiceAccount.clientId,\n    ipAddress: \"2.3.4.5\",\n});\n// Data source to read a single Access List entry for the Service Account\nconst _this = mongodbatlas.getServiceAccountAccessListEntryOutput({\n    orgId: cidr.orgId,\n    clientId: cidr.clientId,\n    cidrBlock: cidr.cidrBlock,\n});\nexport const accessListEntryCidrBlock = _this.apply(_this =\u003e _this.cidrBlock);\n// Data source to read all Access List entries for the Service Account\nconst thisGetServiceAccountAccessListEntries = mongodbatlas.getServiceAccountAccessListEntriesOutput({\n    orgId: thisServiceAccount.orgId,\n    clientId: thisServiceAccount.clientId,\n});\nexport const allAccessListEntries = thisGetServiceAccountAccessListEntries.apply(thisGetServiceAccountAccessListEntries =\u003e thisGetServiceAccountAccessListEntries.results);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_service_account = mongodbatlas.ServiceAccount(\"this\",\n    org_id=org_id,\n    name=\"example-service-account\",\n    description=\"Example Service Account\",\n    roles=[\"ORG_READ_ONLY\"],\n    secret_expires_after_hours=2160)\n# Add IP Access List Entry to Service Account using CIDR Block\ncidr = mongodbatlas.ServiceAccountAccessListEntry(\"cidr\",\n    org_id=org_id,\n    client_id=this_service_account.client_id,\n    cidr_block=\"1.2.3.4/32\")\n# Add IP Access List Entry to Service Account using IP Address\nip = mongodbatlas.ServiceAccountAccessListEntry(\"ip\",\n    org_id=org_id,\n    client_id=this_service_account.client_id,\n    ip_address=\"2.3.4.5\")\n# Data source to read a single Access List entry for the Service Account\nthis = mongodbatlas.get_service_account_access_list_entry_output(org_id=cidr.org_id,\n    client_id=cidr.client_id,\n    cidr_block=cidr.cidr_block)\npulumi.export(\"accessListEntryCidrBlock\", this.cidr_block)\n# Data source to read all Access List entries for the Service Account\nthis_get_service_account_access_list_entries = mongodbatlas.get_service_account_access_list_entries_output(org_id=this_service_account.org_id,\n    client_id=this_service_account.client_id)\npulumi.export(\"allAccessListEntries\", this_get_service_account_access_list_entries.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisServiceAccount = new Mongodbatlas.ServiceAccount(\"this\", new()\n    {\n        OrgId = orgId,\n        Name = \"example-service-account\",\n        Description = \"Example Service Account\",\n        Roles = new[]\n        {\n            \"ORG_READ_ONLY\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    // Add IP Access List Entry to Service Account using CIDR Block\n    var cidr = new Mongodbatlas.ServiceAccountAccessListEntry(\"cidr\", new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n        CidrBlock = \"1.2.3.4/32\",\n    });\n\n    // Add IP Access List Entry to Service Account using IP Address\n    var ip = new Mongodbatlas.ServiceAccountAccessListEntry(\"ip\", new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n        IpAddress = \"2.3.4.5\",\n    });\n\n    // Data source to read a single Access List entry for the Service Account\n    var @this = Mongodbatlas.GetServiceAccountAccessListEntry.Invoke(new()\n    {\n        OrgId = cidr.OrgId,\n        ClientId = cidr.ClientId,\n        CidrBlock = cidr.CidrBlock,\n    });\n\n    // Data source to read all Access List entries for the Service Account\n    var thisGetServiceAccountAccessListEntries = Mongodbatlas.GetServiceAccountAccessListEntries.Invoke(new()\n    {\n        OrgId = thisServiceAccount.OrgId,\n        ClientId = thisServiceAccount.ClientId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"accessListEntryCidrBlock\"] = @this.Apply(@this =\u003e @this.Apply(getServiceAccountAccessListEntryResult =\u003e getServiceAccountAccessListEntryResult.CidrBlock)),\n        [\"allAccessListEntries\"] = thisGetServiceAccountAccessListEntries.Apply(getServiceAccountAccessListEntriesResult =\u003e getServiceAccountAccessListEntriesResult.Results),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisServiceAccount, err := mongodbatlas.NewServiceAccount(ctx, \"this\", \u0026mongodbatlas.ServiceAccountArgs{\n\t\t\tOrgId:       pulumi.Any(orgId),\n\t\t\tName:        pulumi.String(\"example-service-account\"),\n\t\t\tDescription: pulumi.String(\"Example Service Account\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_READ_ONLY\"),\n\t\t\t},\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Service Account using CIDR Block\n\t\tcidr, err := mongodbatlas.NewServiceAccountAccessListEntry(ctx, \"cidr\", \u0026mongodbatlas.ServiceAccountAccessListEntryArgs{\n\t\t\tOrgId:     pulumi.Any(orgId),\n\t\t\tClientId:  thisServiceAccount.ClientId,\n\t\t\tCidrBlock: pulumi.String(\"1.2.3.4/32\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Add IP Access List Entry to Service Account using IP Address\n\t\t_, err = mongodbatlas.NewServiceAccountAccessListEntry(ctx, \"ip\", \u0026mongodbatlas.ServiceAccountAccessListEntryArgs{\n\t\t\tOrgId:     pulumi.Any(orgId),\n\t\t\tClientId:  thisServiceAccount.ClientId,\n\t\t\tIpAddress: pulumi.String(\"2.3.4.5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Data source to read a single Access List entry for the Service Account\n\t\tthis := mongodbatlas.LookupServiceAccountAccessListEntryOutput(ctx, mongodbatlas.GetServiceAccountAccessListEntryOutputArgs{\n\t\t\tOrgId:     cidr.OrgId,\n\t\t\tClientId:  cidr.ClientId,\n\t\t\tCidrBlock: cidr.CidrBlock,\n\t\t}, nil)\n\t\tctx.Export(\"accessListEntryCidrBlock\", this.ApplyT(func(this mongodbatlas.GetServiceAccountAccessListEntryResult) (*string, error) {\n\t\t\treturn \u0026this.CidrBlock, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\t// Data source to read all Access List entries for the Service Account\n\t\tthisGetServiceAccountAccessListEntries := mongodbatlas.LookupServiceAccountAccessListEntriesOutput(ctx, mongodbatlas.GetServiceAccountAccessListEntriesOutputArgs{\n\t\t\tOrgId:    thisServiceAccount.OrgId,\n\t\t\tClientId: thisServiceAccount.ClientId,\n\t\t}, nil)\n\t\tctx.Export(\"allAccessListEntries\", thisGetServiceAccountAccessListEntries.ApplyT(func(thisGetServiceAccountAccessListEntries mongodbatlas.GetServiceAccountAccessListEntriesResult) ([]mongodbatlas.GetServiceAccountAccessListEntriesResult, error) {\n\t\t\treturn []mongodbatlas.GetServiceAccountAccessListEntriesResult(thisGetServiceAccountAccessListEntries.Results), nil\n\t\t}).([]mongodbatlas.GetServiceAccountAccessListEntriesResultOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ServiceAccount;\nimport com.pulumi.mongodbatlas.ServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ServiceAccountAccessListEntry;\nimport com.pulumi.mongodbatlas.ServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountAccessListEntryArgs;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountAccessListEntriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisServiceAccount = new ServiceAccount(\"thisServiceAccount\", ServiceAccountArgs.builder()\n            .orgId(orgId)\n            .name(\"example-service-account\")\n            .description(\"Example Service Account\")\n            .roles(\"ORG_READ_ONLY\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        // Add IP Access List Entry to Service Account using CIDR Block\n        var cidr = new ServiceAccountAccessListEntry(\"cidr\", ServiceAccountAccessListEntryArgs.builder()\n            .orgId(orgId)\n            .clientId(thisServiceAccount.clientId())\n            .cidrBlock(\"1.2.3.4/32\")\n            .build());\n\n        // Add IP Access List Entry to Service Account using IP Address\n        var ip = new ServiceAccountAccessListEntry(\"ip\", ServiceAccountAccessListEntryArgs.builder()\n            .orgId(orgId)\n            .clientId(thisServiceAccount.clientId())\n            .ipAddress(\"2.3.4.5\")\n            .build());\n\n        // Data source to read a single Access List entry for the Service Account\n        final var this = MongodbatlasFunctions.getServiceAccountAccessListEntry(GetServiceAccountAccessListEntryArgs.builder()\n            .orgId(cidr.orgId())\n            .clientId(cidr.clientId())\n            .cidrBlock(cidr.cidrBlock())\n            .build());\n\n        ctx.export(\"accessListEntryCidrBlock\", this_.applyValue(_this_ -\u003e _this_.cidrBlock()));\n        // Data source to read all Access List entries for the Service Account\n        final var thisGetServiceAccountAccessListEntries = MongodbatlasFunctions.getServiceAccountAccessListEntries(GetServiceAccountAccessListEntriesArgs.builder()\n            .orgId(thisServiceAccount.orgId())\n            .clientId(thisServiceAccount.clientId())\n            .build());\n\n        ctx.export(\"allAccessListEntries\", thisGetServiceAccountAccessListEntries.applyValue(_thisGetServiceAccountAccessListEntries -\u003e _thisGetServiceAccountAccessListEntries.results()));\n    }\n}\n```\n```yaml\nresources:\n  thisServiceAccount:\n    type: mongodbatlas:ServiceAccount\n    name: this\n    properties:\n      orgId: ${orgId}\n      name: example-service-account\n      description: Example Service Account\n      roles:\n        - ORG_READ_ONLY\n      secretExpiresAfterHours: 2160 # 90 days\n  # Add IP Access List Entry to Service Account using CIDR Block\n  cidr:\n    type: mongodbatlas:ServiceAccountAccessListEntry\n    properties:\n      orgId: ${orgId}\n      clientId: ${thisServiceAccount.clientId}\n      cidrBlock: 1.2.3.4/32\n  # Add IP Access List Entry to Service Account using IP Address\n  ip:\n    type: mongodbatlas:ServiceAccountAccessListEntry\n    properties:\n      orgId: ${orgId}\n      clientId: ${thisServiceAccount.clientId}\n      ipAddress: 2.3.4.5\nvariables:\n  # Data source to read a single Access List entry for the Service Account\n  this:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountAccessListEntry\n      arguments:\n        orgId: ${cidr.orgId}\n        clientId: ${cidr.clientId}\n        cidrBlock: ${cidr.cidrBlock}\n  # Data source to read all Access List entries for the Service Account\n  thisGetServiceAccountAccessListEntries:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountAccessListEntries\n      arguments:\n        orgId: ${thisServiceAccount.orgId}\n        clientId: ${thisServiceAccount.clientId}\noutputs:\n  accessListEntryCidrBlock: ${this.cidrBlock}\n  allAccessListEntries: ${thisGetServiceAccountAccessListEntries.results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceAccountAccessListEntry.\n","properties":{"cidrBlock":{"type":"string","description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n"},"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"ipAddress":{"type":"string","description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"type":"object","required":["clientId","orgId"]},"outputs":{"description":"A collection of values returned by getServiceAccountAccessListEntry.\n","properties":{"cidrBlock":{"description":"Range of IP addresses in CIDR notation to be added to the access list. You can set a value for this parameter or **ip_address**, but not for both.\n","type":"string"},"clientId":{"description":"The Client ID of the Service Account.\n","type":"string"},"createdAt":{"description":"Date the entry was added to the access list. This attribute expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"ipAddress":{"description":"IP address to be added to the access list. You can set a value for this parameter or **cidr_block**, but not for both.\n","type":"string"},"lastUsedAddress":{"description":"Network address that issued the most recent request to the API.\n","type":"string"},"lastUsedAt":{"description":"Date when the API received the most recent request that originated from this network address.\n","type":"string"},"orgId":{"description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n","type":"string"},"requestCount":{"description":"The number of requests that has originated from this network address.\n","type":"integer"}},"required":["cidrBlock","clientId","createdAt","ipAddress","lastUsedAddress","lastUsedAt","orgId","requestCount","id"],"type":"object"}},"mongodbatlas:index/getServiceAccountProjectAssignment:getServiceAccountProjectAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServiceAccountProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.ServiceAccountProjectAssignment`\" pulumi-lang-go=\"`ServiceAccountProjectAssignment`\" pulumi-lang-python=\"`ServiceAccountProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.ServiceAccountProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.ServiceAccountProjectAssignment`\"\u003e`mongodbatlas.ServiceAccountProjectAssignment`\u003c/span\u003e describes a Service Account assigned to a Project.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisServiceAccount = new mongodbatlas.ServiceAccount(\"this\", {\n    orgId: orgId,\n    name: \"example-service-account\",\n    description: \"Example Service Account\",\n    roles: [\"ORG_MEMBER\"],\n    secretExpiresAfterHours: 2160,\n});\nconst thisServiceAccountProjectAssignment = new mongodbatlas.ServiceAccountProjectAssignment(\"this\", {\n    projectId: projectId,\n    clientId: thisServiceAccount.clientId,\n    roles: [\"GROUP_READ_ONLY\"],\n});\nconst _this = mongodbatlas.getServiceAccountProjectAssignmentOutput({\n    projectId: thisServiceAccountProjectAssignment.projectId,\n    clientId: thisServiceAccountProjectAssignment.clientId,\n});\nconst thisGetServiceAccountProjectAssignments = thisServiceAccount.clientId.apply(clientId =\u003e mongodbatlas.getServiceAccountProjectAssignmentsOutput({\n    orgId: orgId,\n    clientId: clientId,\n}));\nexport const serviceAccountProjectRoles = _this.apply(_this =\u003e _this.roles);\nexport const serviceAccountAssignedProjects = thisGetServiceAccountProjectAssignments.apply(thisGetServiceAccountProjectAssignments =\u003e thisGetServiceAccountProjectAssignments.results);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_service_account = mongodbatlas.ServiceAccount(\"this\",\n    org_id=org_id,\n    name=\"example-service-account\",\n    description=\"Example Service Account\",\n    roles=[\"ORG_MEMBER\"],\n    secret_expires_after_hours=2160)\nthis_service_account_project_assignment = mongodbatlas.ServiceAccountProjectAssignment(\"this\",\n    project_id=project_id,\n    client_id=this_service_account.client_id,\n    roles=[\"GROUP_READ_ONLY\"])\nthis = mongodbatlas.get_service_account_project_assignment_output(project_id=this_service_account_project_assignment.project_id,\n    client_id=this_service_account_project_assignment.client_id)\nthis_get_service_account_project_assignments = this_service_account.client_id.apply(lambda client_id: mongodbatlas.get_service_account_project_assignments_output(org_id=org_id,\n    client_id=client_id))\npulumi.export(\"serviceAccountProjectRoles\", this.roles)\npulumi.export(\"serviceAccountAssignedProjects\", this_get_service_account_project_assignments.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisServiceAccount = new Mongodbatlas.ServiceAccount(\"this\", new()\n    {\n        OrgId = orgId,\n        Name = \"example-service-account\",\n        Description = \"Example Service Account\",\n        Roles = new[]\n        {\n            \"ORG_MEMBER\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var thisServiceAccountProjectAssignment = new Mongodbatlas.ServiceAccountProjectAssignment(\"this\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisServiceAccount.ClientId,\n        Roles = new[]\n        {\n            \"GROUP_READ_ONLY\",\n        },\n    });\n\n    var @this = Mongodbatlas.GetServiceAccountProjectAssignment.Invoke(new()\n    {\n        ProjectId = thisServiceAccountProjectAssignment.ProjectId,\n        ClientId = thisServiceAccountProjectAssignment.ClientId,\n    });\n\n    var thisGetServiceAccountProjectAssignments = Mongodbatlas.GetServiceAccountProjectAssignments.Invoke(new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceAccountProjectRoles\"] = @this.Apply(@this =\u003e @this.Apply(getServiceAccountProjectAssignmentResult =\u003e getServiceAccountProjectAssignmentResult.Roles)),\n        [\"serviceAccountAssignedProjects\"] = thisGetServiceAccountProjectAssignments.Apply(getServiceAccountProjectAssignmentsResult =\u003e getServiceAccountProjectAssignmentsResult.Results),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nthisServiceAccount, err := mongodbatlas.NewServiceAccount(ctx, \"this\", \u0026mongodbatlas.ServiceAccountArgs{\nOrgId: pulumi.Any(orgId),\nName: pulumi.String(\"example-service-account\"),\nDescription: pulumi.String(\"Example Service Account\"),\nRoles: pulumi.StringArray{\npulumi.String(\"ORG_MEMBER\"),\n},\nSecretExpiresAfterHours: pulumi.Int(2160),\n})\nif err != nil {\nreturn err\n}\nthisServiceAccountProjectAssignment, err := mongodbatlas.NewServiceAccountProjectAssignment(ctx, \"this\", \u0026mongodbatlas.ServiceAccountProjectAssignmentArgs{\nProjectId: pulumi.Any(projectId),\nClientId: thisServiceAccount.ClientId,\nRoles: pulumi.StringArray{\npulumi.String(\"GROUP_READ_ONLY\"),\n},\n})\nif err != nil {\nreturn err\n}\nthis := mongodbatlas.LookupServiceAccountProjectAssignmentOutput(ctx, mongodbatlas.GetServiceAccountProjectAssignmentOutputArgs{\nProjectId: thisServiceAccountProjectAssignment.ProjectId,\nClientId: thisServiceAccountProjectAssignment.ClientId,\n}, nil);\nthisGetServiceAccountProjectAssignments := thisServiceAccount.ClientId.ApplyT(func(clientId string) (mongodbatlas.GetServiceAccountProjectAssignmentsResult, error) {\nreturn mongodbatlas.GetServiceAccountProjectAssignmentsResult(interface{}(mongodbatlas.LookupServiceAccountProjectAssignments(ctx, \u0026mongodbatlas.LookupServiceAccountProjectAssignmentsArgs{\nOrgId: orgId,\nClientId: clientId,\n}, nil))), nil\n}).(mongodbatlas.GetServiceAccountProjectAssignmentsResultOutput)\nctx.Export(\"serviceAccountProjectRoles\", this.ApplyT(func(this mongodbatlas.GetServiceAccountProjectAssignmentResult) (interface{}, error) {\nreturn this.Roles, nil\n}).(pulumi.Interface{}Output))\nctx.Export(\"serviceAccountAssignedProjects\", thisGetServiceAccountProjectAssignments.ApplyT(func(thisGetServiceAccountProjectAssignments mongodbatlas.GetServiceAccountProjectAssignmentsResult) ([]mongodbatlas.GetServiceAccountProjectAssignmentsResult, error) {\nreturn []mongodbatlas.GetServiceAccountProjectAssignmentsResult(thisGetServiceAccountProjectAssignments.Results), nil\n}).([]mongodbatlas.GetServiceAccountProjectAssignmentsResultOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ServiceAccount;\nimport com.pulumi.mongodbatlas.ServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ServiceAccountProjectAssignment;\nimport com.pulumi.mongodbatlas.ServiceAccountProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountProjectAssignmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisServiceAccount = new ServiceAccount(\"thisServiceAccount\", ServiceAccountArgs.builder()\n            .orgId(orgId)\n            .name(\"example-service-account\")\n            .description(\"Example Service Account\")\n            .roles(\"ORG_MEMBER\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        var thisServiceAccountProjectAssignment = new ServiceAccountProjectAssignment(\"thisServiceAccountProjectAssignment\", ServiceAccountProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .clientId(thisServiceAccount.clientId())\n            .roles(\"GROUP_READ_ONLY\")\n            .build());\n\n        final var this = MongodbatlasFunctions.getServiceAccountProjectAssignment(GetServiceAccountProjectAssignmentArgs.builder()\n            .projectId(thisServiceAccountProjectAssignment.projectId())\n            .clientId(thisServiceAccountProjectAssignment.clientId())\n            .build());\n\n        final var thisGetServiceAccountProjectAssignments = thisServiceAccount.clientId().applyValue(_clientId -\u003e MongodbatlasFunctions.getServiceAccountProjectAssignments(GetServiceAccountProjectAssignmentsArgs.builder()\n            .orgId(orgId)\n            .clientId(_clientId)\n            .build()));\n\n        ctx.export(\"serviceAccountProjectRoles\", this_.applyValue(_this_ -\u003e _this_.roles()));\n        ctx.export(\"serviceAccountAssignedProjects\", thisGetServiceAccountProjectAssignments.applyValue(_thisGetServiceAccountProjectAssignments -\u003e _thisGetServiceAccountProjectAssignments.results()));\n    }\n}\n```\n```yaml\nresources:\n  thisServiceAccount:\n    type: mongodbatlas:ServiceAccount\n    name: this\n    properties:\n      orgId: ${orgId}\n      name: example-service-account\n      description: Example Service Account\n      roles:\n        - ORG_MEMBER\n      secretExpiresAfterHours: 2160 # 90 days\n  thisServiceAccountProjectAssignment:\n    type: mongodbatlas:ServiceAccountProjectAssignment\n    name: this\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisServiceAccount.clientId}\n      roles:\n        - GROUP_READ_ONLY\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountProjectAssignment\n      arguments:\n        projectId: ${thisServiceAccountProjectAssignment.projectId}\n        clientId: ${thisServiceAccountProjectAssignment.clientId}\n  thisGetServiceAccountProjectAssignments:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountProjectAssignments\n      arguments:\n        orgId: ${orgId}\n        clientId: ${thisServiceAccount.clientId}\noutputs:\n  serviceAccountProjectRoles: ${this.roles}\n  serviceAccountAssignedProjects: ${thisGetServiceAccountProjectAssignments.results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceAccountProjectAssignment.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["clientId","projectId"]},"outputs":{"description":"A collection of values returned by getServiceAccountProjectAssignment.\n","properties":{"clientId":{"description":"The Client ID of the Service Account.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"roles":{"description":"A list of Project roles associated with the Service Account.\n","items":{"type":"string"},"type":"array"}},"required":["clientId","projectId","roles","id"],"type":"object"}},"mongodbatlas:index/getServiceAccountProjectAssignments:getServiceAccountProjectAssignments":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getServiceAccountProjectAssignments`\" pulumi-lang-dotnet=\"`mongodbatlas.getServiceAccountProjectAssignments`\" pulumi-lang-go=\"`getServiceAccountProjectAssignments`\" pulumi-lang-python=\"`get_service_account_project_assignments`\" pulumi-lang-yaml=\"`mongodbatlas.getServiceAccountProjectAssignments`\" pulumi-lang-java=\"`mongodbatlas.getServiceAccountProjectAssignments`\"\u003e`mongodbatlas.getServiceAccountProjectAssignments`\u003c/span\u003e returns all Projects that the specified Service Account is assigned to.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisServiceAccount = new mongodbatlas.ServiceAccount(\"this\", {\n    orgId: orgId,\n    name: \"example-service-account\",\n    description: \"Example Service Account\",\n    roles: [\"ORG_MEMBER\"],\n    secretExpiresAfterHours: 2160,\n});\nconst thisServiceAccountProjectAssignment = new mongodbatlas.ServiceAccountProjectAssignment(\"this\", {\n    projectId: projectId,\n    clientId: thisServiceAccount.clientId,\n    roles: [\"GROUP_READ_ONLY\"],\n});\nconst _this = mongodbatlas.getServiceAccountProjectAssignmentOutput({\n    projectId: thisServiceAccountProjectAssignment.projectId,\n    clientId: thisServiceAccountProjectAssignment.clientId,\n});\nconst thisGetServiceAccountProjectAssignments = thisServiceAccount.clientId.apply(clientId =\u003e mongodbatlas.getServiceAccountProjectAssignmentsOutput({\n    orgId: orgId,\n    clientId: clientId,\n}));\nexport const serviceAccountProjectRoles = _this.apply(_this =\u003e _this.roles);\nexport const serviceAccountAssignedProjects = thisGetServiceAccountProjectAssignments.apply(thisGetServiceAccountProjectAssignments =\u003e thisGetServiceAccountProjectAssignments.results);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_service_account = mongodbatlas.ServiceAccount(\"this\",\n    org_id=org_id,\n    name=\"example-service-account\",\n    description=\"Example Service Account\",\n    roles=[\"ORG_MEMBER\"],\n    secret_expires_after_hours=2160)\nthis_service_account_project_assignment = mongodbatlas.ServiceAccountProjectAssignment(\"this\",\n    project_id=project_id,\n    client_id=this_service_account.client_id,\n    roles=[\"GROUP_READ_ONLY\"])\nthis = mongodbatlas.get_service_account_project_assignment_output(project_id=this_service_account_project_assignment.project_id,\n    client_id=this_service_account_project_assignment.client_id)\nthis_get_service_account_project_assignments = this_service_account.client_id.apply(lambda client_id: mongodbatlas.get_service_account_project_assignments_output(org_id=org_id,\n    client_id=client_id))\npulumi.export(\"serviceAccountProjectRoles\", this.roles)\npulumi.export(\"serviceAccountAssignedProjects\", this_get_service_account_project_assignments.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisServiceAccount = new Mongodbatlas.ServiceAccount(\"this\", new()\n    {\n        OrgId = orgId,\n        Name = \"example-service-account\",\n        Description = \"Example Service Account\",\n        Roles = new[]\n        {\n            \"ORG_MEMBER\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var thisServiceAccountProjectAssignment = new Mongodbatlas.ServiceAccountProjectAssignment(\"this\", new()\n    {\n        ProjectId = projectId,\n        ClientId = thisServiceAccount.ClientId,\n        Roles = new[]\n        {\n            \"GROUP_READ_ONLY\",\n        },\n    });\n\n    var @this = Mongodbatlas.GetServiceAccountProjectAssignment.Invoke(new()\n    {\n        ProjectId = thisServiceAccountProjectAssignment.ProjectId,\n        ClientId = thisServiceAccountProjectAssignment.ClientId,\n    });\n\n    var thisGetServiceAccountProjectAssignments = Mongodbatlas.GetServiceAccountProjectAssignments.Invoke(new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceAccountProjectRoles\"] = @this.Apply(@this =\u003e @this.Apply(getServiceAccountProjectAssignmentResult =\u003e getServiceAccountProjectAssignmentResult.Roles)),\n        [\"serviceAccountAssignedProjects\"] = thisGetServiceAccountProjectAssignments.Apply(getServiceAccountProjectAssignmentsResult =\u003e getServiceAccountProjectAssignmentsResult.Results),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nthisServiceAccount, err := mongodbatlas.NewServiceAccount(ctx, \"this\", \u0026mongodbatlas.ServiceAccountArgs{\nOrgId: pulumi.Any(orgId),\nName: pulumi.String(\"example-service-account\"),\nDescription: pulumi.String(\"Example Service Account\"),\nRoles: pulumi.StringArray{\npulumi.String(\"ORG_MEMBER\"),\n},\nSecretExpiresAfterHours: pulumi.Int(2160),\n})\nif err != nil {\nreturn err\n}\nthisServiceAccountProjectAssignment, err := mongodbatlas.NewServiceAccountProjectAssignment(ctx, \"this\", \u0026mongodbatlas.ServiceAccountProjectAssignmentArgs{\nProjectId: pulumi.Any(projectId),\nClientId: thisServiceAccount.ClientId,\nRoles: pulumi.StringArray{\npulumi.String(\"GROUP_READ_ONLY\"),\n},\n})\nif err != nil {\nreturn err\n}\nthis := mongodbatlas.LookupServiceAccountProjectAssignmentOutput(ctx, mongodbatlas.GetServiceAccountProjectAssignmentOutputArgs{\nProjectId: thisServiceAccountProjectAssignment.ProjectId,\nClientId: thisServiceAccountProjectAssignment.ClientId,\n}, nil);\nthisGetServiceAccountProjectAssignments := thisServiceAccount.ClientId.ApplyT(func(clientId string) (mongodbatlas.GetServiceAccountProjectAssignmentsResult, error) {\nreturn mongodbatlas.GetServiceAccountProjectAssignmentsResult(interface{}(mongodbatlas.LookupServiceAccountProjectAssignments(ctx, \u0026mongodbatlas.LookupServiceAccountProjectAssignmentsArgs{\nOrgId: orgId,\nClientId: clientId,\n}, nil))), nil\n}).(mongodbatlas.GetServiceAccountProjectAssignmentsResultOutput)\nctx.Export(\"serviceAccountProjectRoles\", this.ApplyT(func(this mongodbatlas.GetServiceAccountProjectAssignmentResult) (interface{}, error) {\nreturn this.Roles, nil\n}).(pulumi.Interface{}Output))\nctx.Export(\"serviceAccountAssignedProjects\", thisGetServiceAccountProjectAssignments.ApplyT(func(thisGetServiceAccountProjectAssignments mongodbatlas.GetServiceAccountProjectAssignmentsResult) ([]mongodbatlas.GetServiceAccountProjectAssignmentsResult, error) {\nreturn []mongodbatlas.GetServiceAccountProjectAssignmentsResult(thisGetServiceAccountProjectAssignments.Results), nil\n}).([]mongodbatlas.GetServiceAccountProjectAssignmentsResultOutput))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ServiceAccount;\nimport com.pulumi.mongodbatlas.ServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ServiceAccountProjectAssignment;\nimport com.pulumi.mongodbatlas.ServiceAccountProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountProjectAssignmentsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisServiceAccount = new ServiceAccount(\"thisServiceAccount\", ServiceAccountArgs.builder()\n            .orgId(orgId)\n            .name(\"example-service-account\")\n            .description(\"Example Service Account\")\n            .roles(\"ORG_MEMBER\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        var thisServiceAccountProjectAssignment = new ServiceAccountProjectAssignment(\"thisServiceAccountProjectAssignment\", ServiceAccountProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .clientId(thisServiceAccount.clientId())\n            .roles(\"GROUP_READ_ONLY\")\n            .build());\n\n        final var this = MongodbatlasFunctions.getServiceAccountProjectAssignment(GetServiceAccountProjectAssignmentArgs.builder()\n            .projectId(thisServiceAccountProjectAssignment.projectId())\n            .clientId(thisServiceAccountProjectAssignment.clientId())\n            .build());\n\n        final var thisGetServiceAccountProjectAssignments = thisServiceAccount.clientId().applyValue(_clientId -\u003e MongodbatlasFunctions.getServiceAccountProjectAssignments(GetServiceAccountProjectAssignmentsArgs.builder()\n            .orgId(orgId)\n            .clientId(_clientId)\n            .build()));\n\n        ctx.export(\"serviceAccountProjectRoles\", this_.applyValue(_this_ -\u003e _this_.roles()));\n        ctx.export(\"serviceAccountAssignedProjects\", thisGetServiceAccountProjectAssignments.applyValue(_thisGetServiceAccountProjectAssignments -\u003e _thisGetServiceAccountProjectAssignments.results()));\n    }\n}\n```\n```yaml\nresources:\n  thisServiceAccount:\n    type: mongodbatlas:ServiceAccount\n    name: this\n    properties:\n      orgId: ${orgId}\n      name: example-service-account\n      description: Example Service Account\n      roles:\n        - ORG_MEMBER\n      secretExpiresAfterHours: 2160 # 90 days\n  thisServiceAccountProjectAssignment:\n    type: mongodbatlas:ServiceAccountProjectAssignment\n    name: this\n    properties:\n      projectId: ${projectId}\n      clientId: ${thisServiceAccount.clientId}\n      roles:\n        - GROUP_READ_ONLY\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountProjectAssignment\n      arguments:\n        projectId: ${thisServiceAccountProjectAssignment.projectId}\n        clientId: ${thisServiceAccountProjectAssignment.clientId}\n  thisGetServiceAccountProjectAssignments:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountProjectAssignments\n      arguments:\n        orgId: ${orgId}\n        clientId: ${thisServiceAccount.clientId}\noutputs:\n  serviceAccountProjectRoles: ${this.roles}\n  serviceAccountAssignedProjects: ${thisGetServiceAccountProjectAssignments.results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceAccountProjectAssignments.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"type":"object","required":["clientId","orgId"]},"outputs":{"description":"A collection of values returned by getServiceAccountProjectAssignments.\n","properties":{"clientId":{"description":"The Client ID of the Service Account.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"orgId":{"description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n","type":"string"},"results":{"description":"List of returned documents that MongoDB Cloud provides when completing this request.\n","items":{"$ref":"#/types/mongodbatlas:index/getServiceAccountProjectAssignmentsResult:getServiceAccountProjectAssignmentsResult"},"type":"array"}},"required":["clientId","orgId","results","id"],"type":"object"}},"mongodbatlas:index/getServiceAccountSecret:getServiceAccountSecret":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ServiceAccountSecret`\" pulumi-lang-dotnet=\"`mongodbatlas.ServiceAccountSecret`\" pulumi-lang-go=\"`ServiceAccountSecret`\" pulumi-lang-python=\"`ServiceAccountSecret`\" pulumi-lang-yaml=\"`mongodbatlas.ServiceAccountSecret`\" pulumi-lang-java=\"`mongodbatlas.ServiceAccountSecret`\"\u003e`mongodbatlas.ServiceAccountSecret`\u003c/span\u003e describes a Service Account Secret.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisServiceAccount = new mongodbatlas.ServiceAccount(\"this\", {\n    orgId: orgId,\n    name: \"example-service-account\",\n    description: \"Example Service Account\",\n    roles: [\"ORG_READ_ONLY\"],\n    secretExpiresAfterHours: 2160,\n});\nconst thisServiceAccountSecret = new mongodbatlas.ServiceAccountSecret(\"this\", {\n    orgId: orgId,\n    clientId: thisServiceAccount.clientId,\n    secretExpiresAfterHours: 2160,\n});\nconst _this = pulumi.all([thisServiceAccount.clientId, thisServiceAccountSecret.secretId]).apply(([clientId, secretId]) =\u003e mongodbatlas.getServiceAccountSecretOutput({\n    orgId: orgId,\n    clientId: clientId,\n    secretId: secretId,\n}));\nexport const secretId = thisServiceAccountSecret.secretId;\nexport const secret = thisServiceAccountSecret.secret;\nexport const secretExpiresAt = _this.apply(_this =\u003e _this.expiresAt);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_service_account = mongodbatlas.ServiceAccount(\"this\",\n    org_id=org_id,\n    name=\"example-service-account\",\n    description=\"Example Service Account\",\n    roles=[\"ORG_READ_ONLY\"],\n    secret_expires_after_hours=2160)\nthis_service_account_secret = mongodbatlas.ServiceAccountSecret(\"this\",\n    org_id=org_id,\n    client_id=this_service_account.client_id,\n    secret_expires_after_hours=2160)\nthis = pulumi.Output.all(\n    client_id=this_service_account.client_id,\n    secret_id=this_service_account_secret.secret_id\n).apply(lambda resolved_outputs: mongodbatlas.get_service_account_secret_output(org_id=org_id,\n    client_id=resolved_outputs['client_id'],\n    secret_id=resolved_outputs['secret_id']))\n\npulumi.export(\"secretId\", this_service_account_secret.secret_id)\npulumi.export(\"secret\", this_service_account_secret.secret)\npulumi.export(\"secretExpiresAt\", this.expires_at)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisServiceAccount = new Mongodbatlas.ServiceAccount(\"this\", new()\n    {\n        OrgId = orgId,\n        Name = \"example-service-account\",\n        Description = \"Example Service Account\",\n        Roles = new[]\n        {\n            \"ORG_READ_ONLY\",\n        },\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var thisServiceAccountSecret = new Mongodbatlas.ServiceAccountSecret(\"this\", new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n        SecretExpiresAfterHours = 2160,\n    });\n\n    var @this = Mongodbatlas.GetServiceAccountSecret.Invoke(new()\n    {\n        OrgId = orgId,\n        ClientId = thisServiceAccount.ClientId,\n        SecretId = thisServiceAccountSecret.SecretId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"secretId\"] = thisServiceAccountSecret.SecretId,\n        [\"secret\"] = thisServiceAccountSecret.Secret,\n        [\"secretExpiresAt\"] = @this.Apply(@this =\u003e @this.Apply(getServiceAccountSecretResult =\u003e getServiceAccountSecretResult.ExpiresAt)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisServiceAccount, err := mongodbatlas.NewServiceAccount(ctx, \"this\", \u0026mongodbatlas.ServiceAccountArgs{\n\t\t\tOrgId:       pulumi.Any(orgId),\n\t\t\tName:        pulumi.String(\"example-service-account\"),\n\t\t\tDescription: pulumi.String(\"Example Service Account\"),\n\t\t\tRoles: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"ORG_READ_ONLY\"),\n\t\t\t},\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthisServiceAccountSecret, err := mongodbatlas.NewServiceAccountSecret(ctx, \"this\", \u0026mongodbatlas.ServiceAccountSecretArgs{\n\t\t\tOrgId:                   pulumi.Any(orgId),\n\t\t\tClientId:                thisServiceAccount.ClientId,\n\t\t\tSecretExpiresAfterHours: pulumi.Int(2160),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tthis := pulumi.All(thisServiceAccount.ClientId, thisServiceAccountSecret.SecretId).ApplyT(func(_args []interface{}) (mongodbatlas.GetServiceAccountSecretResult, error) {\n\t\t\tclientId := _args[0].(string)\n\t\t\tsecretId := _args[1].(string)\n\t\t\treturn mongodbatlas.GetServiceAccountSecretResult(interface{}(mongodbatlas.LookupServiceAccountSecret(ctx, \u0026mongodbatlas.LookupServiceAccountSecretArgs{\n\t\t\t\tOrgId:    orgId,\n\t\t\t\tClientId: clientId,\n\t\t\t\tSecretId: secretId,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetServiceAccountSecretResultOutput)\n\t\tctx.Export(\"secretId\", thisServiceAccountSecret.SecretId)\n\t\tctx.Export(\"secret\", thisServiceAccountSecret.Secret)\n\t\tctx.Export(\"secretExpiresAt\", this.ApplyT(func(this mongodbatlas.GetServiceAccountSecretResult) (*string, error) {\n\t\t\treturn \u0026this.ExpiresAt, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ServiceAccount;\nimport com.pulumi.mongodbatlas.ServiceAccountArgs;\nimport com.pulumi.mongodbatlas.ServiceAccountSecret;\nimport com.pulumi.mongodbatlas.ServiceAccountSecretArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetServiceAccountSecretArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisServiceAccount = new ServiceAccount(\"thisServiceAccount\", ServiceAccountArgs.builder()\n            .orgId(orgId)\n            .name(\"example-service-account\")\n            .description(\"Example Service Account\")\n            .roles(\"ORG_READ_ONLY\")\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        var thisServiceAccountSecret = new ServiceAccountSecret(\"thisServiceAccountSecret\", ServiceAccountSecretArgs.builder()\n            .orgId(orgId)\n            .clientId(thisServiceAccount.clientId())\n            .secretExpiresAfterHours(2160)\n            .build());\n\n        final var this = Output.tuple(thisServiceAccount.clientId(), thisServiceAccountSecret.secretId()).applyValue(values -\u003e {\n            var clientId = values.t1;\n            var secretId = values.t2;\n            return MongodbatlasFunctions.getServiceAccountSecret(GetServiceAccountSecretArgs.builder()\n                .orgId(orgId)\n                .clientId(clientId)\n                .secretId(secretId)\n                .build());\n        });\n\n        ctx.export(\"secretId\", thisServiceAccountSecret.secretId());\n        ctx.export(\"secret\", thisServiceAccountSecret.secret());\n        ctx.export(\"secretExpiresAt\", this_.applyValue(_this_ -\u003e _this_.expiresAt()));\n    }\n}\n```\n```yaml\nresources:\n  thisServiceAccount:\n    type: mongodbatlas:ServiceAccount\n    name: this\n    properties:\n      orgId: ${orgId}\n      name: example-service-account\n      description: Example Service Account\n      roles:\n        - ORG_READ_ONLY\n      secretExpiresAfterHours: 2160 # 90 days\n  thisServiceAccountSecret:\n    type: mongodbatlas:ServiceAccountSecret\n    name: this\n    properties:\n      orgId: ${orgId}\n      clientId: ${thisServiceAccount.clientId}\n      secretExpiresAfterHours: 2160 # 90 days\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getServiceAccountSecret\n      arguments:\n        orgId: ${orgId}\n        clientId: ${thisServiceAccount.clientId}\n        secretId: ${thisServiceAccountSecret.secretId}\noutputs:\n  secretId: ${thisServiceAccountSecret.secretId}\n  secret: ${thisServiceAccountSecret.secret}\n  secretExpiresAt: ${this.expiresAt}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceAccountSecret.\n","properties":{"clientId":{"type":"string","description":"The Client ID of the Service Account.\n"},"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"},"secretId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the secret.\n"}},"type":"object","required":["clientId","orgId","secretId"]},"outputs":{"description":"A collection of values returned by getServiceAccountSecret.\n","properties":{"clientId":{"description":"The Client ID of the Service Account.\n","type":"string"},"createdAt":{"description":"The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"expiresAt":{"description":"The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lastUsedAt":{"description":"The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.\n","type":"string"},"maskedSecretValue":{"description":"The masked Service Account secret.\n","type":"string"},"orgId":{"description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n","type":"string"},"secretId":{"description":"Unique 24-hexadecimal digit string that identifies the secret.\n","type":"string"}},"required":["clientId","createdAt","expiresAt","lastUsedAt","maskedSecretValue","orgId","secretId","id"],"type":"object"}},"mongodbatlas:index/getServiceAccounts:getServiceAccounts":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getServiceAccounts`\" pulumi-lang-dotnet=\"`mongodbatlas.getServiceAccounts`\" pulumi-lang-go=\"`getServiceAccounts`\" pulumi-lang-python=\"`get_service_accounts`\" pulumi-lang-yaml=\"`mongodbatlas.getServiceAccounts`\" pulumi-lang-java=\"`mongodbatlas.getServiceAccounts`\"\u003e`mongodbatlas.getServiceAccounts`\u003c/span\u003e returns all Service Accounts for the specified Organization.\n\n\u003e **IMPORTANT WARNING:** Managing Service Accounts with Terraform **exposes sensitive organizational secrets** in Terraform's state. We suggest following Terraform's best practices.\n\n## Example Usage\n\n","inputs":{"description":"A collection of arguments for invoking getServiceAccounts.\n","properties":{"orgId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n"}},"type":"object","required":["orgId"]},"outputs":{"description":"A collection of values returned by getServiceAccounts.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"orgId":{"description":"Unique 24-hexadecimal digit string that identifies the organization that contains your projects.\n","type":"string"},"results":{"description":"List of returned documents that MongoDB Cloud provides when completing this request.\n","items":{"$ref":"#/types/mongodbatlas:index/getServiceAccountsResult:getServiceAccountsResult"},"type":"array"}},"required":["orgId","results","id"],"type":"object"}},"mongodbatlas:index/getSharedTierRestoreJob:getSharedTierRestoreJob":{"inputs":{"description":"A collection of arguments for invoking getSharedTierRestoreJob.\n","properties":{"clusterName":{"type":"string"},"jobId":{"type":"string"},"projectId":{"type":"string"}},"type":"object","required":["clusterName","jobId","projectId"]},"outputs":{"description":"A collection of values returned by getSharedTierRestoreJob.\n","properties":{"clusterName":{"type":"string"},"deliveryType":{"type":"string"},"expirationDate":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"jobId":{"type":"string"},"projectId":{"type":"string"},"restoreFinishedDate":{"type":"string"},"restoreScheduledDate":{"type":"string"},"snapshotFinishedDate":{"type":"string"},"snapshotId":{"type":"string"},"snapshotUrl":{"type":"string"},"status":{"type":"string"},"targetDeploymentItemName":{"type":"string"},"targetProjectId":{"type":"string"}},"required":["clusterName","deliveryType","expirationDate","jobId","projectId","restoreFinishedDate","restoreScheduledDate","snapshotFinishedDate","snapshotId","snapshotUrl","status","targetDeploymentItemName","targetProjectId","id"],"type":"object"}},"mongodbatlas:index/getSharedTierRestoreJobs:getSharedTierRestoreJobs":{"inputs":{"description":"A collection of arguments for invoking getSharedTierRestoreJobs.\n","properties":{"clusterName":{"type":"string"},"projectId":{"type":"string"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getSharedTierRestoreJobs.\n","properties":{"clusterName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getSharedTierRestoreJobsResult:getSharedTierRestoreJobsResult"},"type":"array"},"totalCount":{"type":"integer"}},"required":["clusterName","projectId","results","totalCount","id"],"type":"object"}},"mongodbatlas:index/getSharedTierSnapshot:getSharedTierSnapshot":{"inputs":{"description":"A collection of arguments for invoking getSharedTierSnapshot.\n","properties":{"clusterName":{"type":"string"},"projectId":{"type":"string"},"snapshotId":{"type":"string"}},"type":"object","required":["clusterName","projectId","snapshotId"]},"outputs":{"description":"A collection of values returned by getSharedTierSnapshot.\n","properties":{"clusterName":{"type":"string"},"expiration":{"type":"string"},"finishTime":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"mongoDbVersion":{"type":"string"},"projectId":{"type":"string"},"scheduledTime":{"type":"string"},"snapshotId":{"type":"string"},"startTime":{"type":"string"},"status":{"type":"string"}},"required":["clusterName","expiration","finishTime","mongoDbVersion","projectId","scheduledTime","snapshotId","startTime","status","id"],"type":"object"}},"mongodbatlas:index/getSharedTierSnapshots:getSharedTierSnapshots":{"inputs":{"description":"A collection of arguments for invoking getSharedTierSnapshots.\n","properties":{"clusterName":{"type":"string"},"projectId":{"type":"string"}},"type":"object","required":["clusterName","projectId"]},"outputs":{"description":"A collection of values returned by getSharedTierSnapshots.\n","properties":{"clusterName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getSharedTierSnapshotsResult:getSharedTierSnapshotsResult"},"type":"array"},"totalCount":{"type":"integer"}},"required":["clusterName","projectId","results","totalCount","id"],"type":"object"}},"mongodbatlas:index/getStreamAccountDetails:getStreamAccountDetails":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamAccountDetails`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamAccountDetails`\" pulumi-lang-go=\"`getStreamAccountDetails`\" pulumi-lang-python=\"`get_stream_account_details`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamAccountDetails`\" pulumi-lang-java=\"`mongodbatlas.getStreamAccountDetails`\"\u003e`mongodbatlas.getStreamAccountDetails`\u003c/span\u003e returns the AWS Account ID/Azure Subscription ID, and the AWS VPC ID/Azure Virtual Network Name for the group, cloud provider, and region that you specify.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst accountDetails = mongodbatlas.getStreamAccountDetails({\n    projectId: projectId,\n    cloudProvider: \"aws\",\n    regionName: \"US_EAST_1\",\n});\nexport const awsAccountId = accountDetails.then(accountDetails =\u003e accountDetails.awsAccountId);\nexport const cidrBlock = accountDetails.then(accountDetails =\u003e accountDetails.cidrBlock);\nexport const cloudProvider = accountDetails.then(accountDetails =\u003e accountDetails.cloudProvider);\nexport const vpcId = accountDetails.then(accountDetails =\u003e accountDetails.vpcId);\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\naccount_details = mongodbatlas.get_stream_account_details(project_id=project_id,\n    cloud_provider=\"aws\",\n    region_name=\"US_EAST_1\")\npulumi.export(\"awsAccountId\", account_details.aws_account_id)\npulumi.export(\"cidrBlock\", account_details.cidr_block)\npulumi.export(\"cloudProvider\", account_details.cloud_provider)\npulumi.export(\"vpcId\", account_details.vpc_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var accountDetails = Mongodbatlas.GetStreamAccountDetails.Invoke(new()\n    {\n        ProjectId = projectId,\n        CloudProvider = \"aws\",\n        RegionName = \"US_EAST_1\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"awsAccountId\"] = accountDetails.Apply(getStreamAccountDetailsResult =\u003e getStreamAccountDetailsResult.AwsAccountId),\n        [\"cidrBlock\"] = accountDetails.Apply(getStreamAccountDetailsResult =\u003e getStreamAccountDetailsResult.CidrBlock),\n        [\"cloudProvider\"] = accountDetails.Apply(getStreamAccountDetailsResult =\u003e getStreamAccountDetailsResult.CloudProvider),\n        [\"vpcId\"] = accountDetails.Apply(getStreamAccountDetailsResult =\u003e getStreamAccountDetailsResult.VpcId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taccountDetails, err := mongodbatlas.GetStreamAccountDetails(ctx, \u0026mongodbatlas.GetStreamAccountDetailsArgs{\n\t\t\tProjectId:     projectId,\n\t\t\tCloudProvider: \"aws\",\n\t\t\tRegionName:    \"US_EAST_1\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"awsAccountId\", accountDetails.AwsAccountId)\n\t\tctx.Export(\"cidrBlock\", accountDetails.CidrBlock)\n\t\tctx.Export(\"cloudProvider\", accountDetails.CloudProvider)\n\t\tctx.Export(\"vpcId\", accountDetails.VpcId)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamAccountDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var accountDetails = MongodbatlasFunctions.getStreamAccountDetails(GetStreamAccountDetailsArgs.builder()\n            .projectId(projectId)\n            .cloudProvider(\"aws\")\n            .regionName(\"US_EAST_1\")\n            .build());\n\n        ctx.export(\"awsAccountId\", accountDetails.awsAccountId());\n        ctx.export(\"cidrBlock\", accountDetails.cidrBlock());\n        ctx.export(\"cloudProvider\", accountDetails.cloudProvider());\n        ctx.export(\"vpcId\", accountDetails.vpcId());\n    }\n}\n```\n```yaml\nvariables:\n  accountDetails:\n    fn::invoke:\n      function: mongodbatlas:getStreamAccountDetails\n      arguments:\n        projectId: ${projectId}\n        cloudProvider: aws\n        regionName: US_EAST_1\noutputs:\n  awsAccountId: ${accountDetails.awsAccountId}\n  cidrBlock: ${accountDetails.cidrBlock}\n  cloudProvider: ${accountDetails.cloudProvider}\n  vpcId: ${accountDetails.vpcId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStreamAccountDetails.\n","properties":{"cloudProvider":{"type":"string","description":"One of \u003cspan pulumi-lang-nodejs=\"`aws`\" pulumi-lang-dotnet=\"`Aws`\" pulumi-lang-go=\"`aws`\" pulumi-lang-python=\"`aws`\" pulumi-lang-yaml=\"`aws`\" pulumi-lang-java=\"`aws`\"\u003e`aws`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`azure`\" pulumi-lang-dotnet=\"`Azure`\" pulumi-lang-go=\"`azure`\" pulumi-lang-python=\"`azure`\" pulumi-lang-yaml=\"`azure`\" pulumi-lang-java=\"`azure`\"\u003e`azure`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n"},"regionName":{"type":"string"}},"type":"object","required":["cloudProvider","projectId","regionName"]},"outputs":{"description":"A collection of values returned by getStreamAccountDetails.\n","properties":{"awsAccountId":{"type":"string"},"azureSubscriptionId":{"type":"string"},"cidrBlock":{"type":"string"},"cloudProvider":{"description":"One of \u003cspan pulumi-lang-nodejs=\"`aws`\" pulumi-lang-dotnet=\"`Aws`\" pulumi-lang-go=\"`aws`\" pulumi-lang-python=\"`aws`\" pulumi-lang-yaml=\"`aws`\" pulumi-lang-java=\"`aws`\"\u003e`aws`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`azure`\" pulumi-lang-dotnet=\"`Azure`\" pulumi-lang-go=\"`azure`\" pulumi-lang-python=\"`azure`\" pulumi-lang-yaml=\"`azure`\" pulumi-lang-java=\"`azure`\"\u003e`azure`\u003c/span\u003e.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"regionName":{"type":"string"},"virtualNetworkName":{"type":"string"},"vpcId":{"type":"string"}},"required":["awsAccountId","azureSubscriptionId","cidrBlock","cloudProvider","projectId","regionName","virtualNetworkName","vpcId","id"],"type":"object"}},"mongodbatlas:index/getStreamConnection:getStreamConnection":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamConnection`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamConnection`\" pulumi-lang-go=\"`StreamConnection`\" pulumi-lang-python=\"`StreamConnection`\" pulumi-lang-yaml=\"`mongodbatlas.StreamConnection`\" pulumi-lang-java=\"`mongodbatlas.StreamConnection`\"\u003e`mongodbatlas.StreamConnection`\u003c/span\u003e describes a stream connection.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = mongodbatlas.getStreamConnection({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    workspaceName: \"\u003cWORKSPACE_NAME\u003e\",\n    connectionName: \"\u003cCONNECTION_NAME\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.get_stream_connection(project_id=\"\u003cPROJECT_ID\u003e\",\n    workspace_name=\"\u003cWORKSPACE_NAME\u003e\",\n    connection_name=\"\u003cCONNECTION_NAME\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mongodbatlas.GetStreamConnection.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        WorkspaceName = \"\u003cWORKSPACE_NAME\u003e\",\n        ConnectionName = \"\u003cCONNECTION_NAME\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupStreamConnection(ctx, \u0026mongodbatlas.LookupStreamConnectionArgs{\n\t\t\tProjectId:      \"\u003cPROJECT_ID\u003e\",\n\t\t\tWorkspaceName:  pulumi.StringRef(\"\u003cWORKSPACE_NAME\u003e\"),\n\t\t\tConnectionName: \"\u003cCONNECTION_NAME\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MongodbatlasFunctions.getStreamConnection(GetStreamConnectionArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .workspaceName(\"\u003cWORKSPACE_NAME\u003e\")\n            .connectionName(\"\u003cCONNECTION_NAME\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: mongodbatlas:getStreamConnection\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        workspaceName: \u003cWORKSPACE_NAME\u003e\n        connectionName: \u003cCONNECTION_NAME\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example using\u003cspan pulumi-lang-nodejs=\" workspaceName\n\" pulumi-lang-dotnet=\" WorkspaceName\n\" pulumi-lang-go=\" workspaceName\n\" pulumi-lang-python=\" workspace_name\n\" pulumi-lang-yaml=\" workspaceName\n\" pulumi-lang-java=\" workspaceName\n\"\u003e workspace_name\n\u003c/span\u003e\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = mongodbatlas.getStreamConnection({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    workspaceName: \"\u003cWORKSPACE_NAME\u003e\",\n    connectionName: \"\u003cCONNECTION_NAME\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.get_stream_connection(project_id=\"\u003cPROJECT_ID\u003e\",\n    workspace_name=\"\u003cWORKSPACE_NAME\u003e\",\n    connection_name=\"\u003cCONNECTION_NAME\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mongodbatlas.GetStreamConnection.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        WorkspaceName = \"\u003cWORKSPACE_NAME\u003e\",\n        ConnectionName = \"\u003cCONNECTION_NAME\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupStreamConnection(ctx, \u0026mongodbatlas.LookupStreamConnectionArgs{\n\t\t\tProjectId:      \"\u003cPROJECT_ID\u003e\",\n\t\t\tWorkspaceName:  pulumi.StringRef(\"\u003cWORKSPACE_NAME\u003e\"),\n\t\t\tConnectionName: \"\u003cCONNECTION_NAME\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MongodbatlasFunctions.getStreamConnection(GetStreamConnectionArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .workspaceName(\"\u003cWORKSPACE_NAME\u003e\")\n            .connectionName(\"\u003cCONNECTION_NAME\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: mongodbatlas:getStreamConnection\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        workspaceName: \u003cWORKSPACE_NAME\u003e\n        connectionName: \u003cCONNECTION_NAME\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStreamConnection.\n","properties":{"connectionName":{"type":"string","description":"Label that identifies the stream connection. In the case of the Sample type, this is the name of the sample source.\n\n\u003e **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e must be provided, but not both. These fields are functionally identical and \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e is an alias for \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e should be used instead of \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e.\n"},"instanceName":{"type":"string","description":"Label that identifies the stream processing workspace. Attribute is deprecated and will be removed in following major versions in favor of \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e.\n","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"workspaceName":{"type":"string","description":"Label that identifies the stream processing workspace. Conflicts with \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e.\n"}},"type":"object","required":["connectionName","projectId"]},"outputs":{"description":"A collection of values returned by getStreamConnection.\n","properties":{"authentication":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionAuthentication:getStreamConnectionAuthentication","description":"User credentials required to connect to a Kafka cluster. Includes the authentication type, as well as the parameters for that authentication mode. See authentication.\n"},"aws":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionAws:getStreamConnectionAws","description":"The configuration for AWS Lambda connection. See AWS\n"},"bootstrapServers":{"description":"Comma separated list of server addresses.\n","type":"string"},"clusterName":{"description":"Name of the cluster configured for this connection.\n","type":"string"},"clusterProjectId":{"description":"Unique 24-hexadecimal digit string that identifies the project that contains the configured cluster. Required if the ID does not match the project containing the streams instance. You must first enable the organization setting.\n","type":"string"},"config":{"additionalProperties":{"type":"string"},"description":"A map of Kafka key-value pairs for optional configuration. This is a flat object, and keys can have '.' characters.\n","type":"object"},"connectionName":{"type":"string"},"dbRoleToExecute":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionDbRoleToExecute:getStreamConnectionDbRoleToExecute","description":"The name of a Built in or Custom DB Role to connect to an Atlas Cluster. See DBRoleToExecute.\n"},"headers":{"additionalProperties":{"type":"string"},"description":"A map of key-value pairs for optional headers.\n","type":"object"},"id":{"type":"string"},"instanceName":{"deprecationMessage":"This parameter is deprecated. Please transition to workspace_name.","type":"string"},"networking":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionNetworking:getStreamConnectionNetworking","description":"Networking Access Type can either be `PUBLIC` (default) or `VPC`. See networking.\n"},"projectId":{"type":"string"},"schemaRegistryAuthentication":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionSchemaRegistryAuthentication:getStreamConnectionSchemaRegistryAuthentication","description":"Authentication configuration for Schema Registry. See Schema Registry Authentication.\n"},"schemaRegistryProvider":{"description":"The Schema Registry provider. Must be set to `CONFLUENT`.\n","type":"string"},"schemaRegistryUrls":{"description":"List of Schema Registry endpoint URLs used by this connection. Each URL must use the http or https scheme and specify a valid host and optional port.\n","items":{"type":"string"},"type":"array"},"security":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionSecurity:getStreamConnectionSecurity","description":"Properties for the secure transport connection to Kafka. For SASL_SSL, this can include the trusted certificate to use. See security.\n"},"type":{"description":"Authentication type discriminator. Specifies the authentication mechanism for Confluent Schema Registry. Valid values are `USER_INFO` or `SASL_INHERIT`.\n* `USER_INFO` - Uses username and password authentication for Confluent Schema Registry.\n* `SASL_INHERIT` - Inherits the authentication configuration from Kafka for the Confluent Schema Registry.\n","type":"string"},"url":{"description":"URL of the HTTPs endpoint that will be used for creating a connection.\n","type":"string"},"workspaceName":{"type":"string"}},"required":["authentication","aws","bootstrapServers","clusterName","clusterProjectId","config","connectionName","dbRoleToExecute","headers","id","networking","projectId","schemaRegistryAuthentication","schemaRegistryProvider","schemaRegistryUrls","security","type","url"],"type":"object"}},"mongodbatlas:index/getStreamConnections:getStreamConnections":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamConnections`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamConnections`\" pulumi-lang-go=\"`getStreamConnections`\" pulumi-lang-python=\"`get_stream_connections`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamConnections`\" pulumi-lang-java=\"`mongodbatlas.getStreamConnections`\"\u003e`mongodbatlas.getStreamConnections`\u003c/span\u003e describes all connections of a stream instance for the specified project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getStreamConnections({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    workspaceName: \"\u003cWORKSPACE_NAME\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_stream_connections(project_id=\"\u003cPROJECT_ID\u003e\",\n    workspace_name=\"\u003cWORKSPACE_NAME\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetStreamConnections.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        WorkspaceName = \"\u003cWORKSPACE_NAME\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupStreamConnections(ctx, \u0026mongodbatlas.LookupStreamConnectionsArgs{\n\t\t\tProjectId:     \"\u003cPROJECT_ID\u003e\",\n\t\t\tWorkspaceName: pulumi.StringRef(\"\u003cWORKSPACE_NAME\u003e\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamConnectionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getStreamConnections(GetStreamConnectionsArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .workspaceName(\"\u003cWORKSPACE_NAME\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getStreamConnections\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        workspaceName: \u003cWORKSPACE_NAME\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStreamConnections.\n","properties":{"instanceName":{"type":"string","description":"Label that identifies the stream processing workspace. Attribute is deprecated and will be removed in following major versions in favor of \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e.\n","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"itemsPerPage":{"type":"integer","description":"Number of items that the response returns per page, up to a maximum of \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"pageNum":{"type":"integer","description":"Number of the page that displays the current set of the total objects that the response returns. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"workspaceName":{"type":"string","description":"Label that identifies the stream processing workspace. Conflicts with \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e.\n\n\u003e **NOTE:** Either \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e must be provided, but not both. These fields are functionally identical and \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e is an alias for \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e. \u003cspan pulumi-lang-nodejs=\"`workspaceName`\" pulumi-lang-dotnet=\"`WorkspaceName`\" pulumi-lang-go=\"`workspaceName`\" pulumi-lang-python=\"`workspace_name`\" pulumi-lang-yaml=\"`workspaceName`\" pulumi-lang-java=\"`workspaceName`\"\u003e`workspace_name`\u003c/span\u003e should be used instead of \u003cspan pulumi-lang-nodejs=\"`instanceName`\" pulumi-lang-dotnet=\"`InstanceName`\" pulumi-lang-go=\"`instanceName`\" pulumi-lang-python=\"`instance_name`\" pulumi-lang-yaml=\"`instanceName`\" pulumi-lang-java=\"`instanceName`\"\u003e`instance_name`\u003c/span\u003e.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getStreamConnections.\n","properties":{"id":{"deprecationMessage":"This parameter is deprecated.","type":"string"},"instanceName":{"deprecationMessage":"This parameter is deprecated. Please transition to workspace_name.","type":"string"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"results":{"description":"A list where each element contains a stream connection.\n","items":{"$ref":"#/types/mongodbatlas:index/getStreamConnectionsResult:getStreamConnectionsResult"},"type":"array"},"totalCount":{"description":"Count of the total number of items in the result set. The count might be greater than the number of objects in the results array if the entire result set is paginated.\n","type":"integer"},"workspaceName":{"description":"Label that identifies the stream processing workspace.\n","type":"string"}},"required":["id","projectId","results","totalCount"],"type":"object"}},"mongodbatlas:index/getStreamInstance:getStreamInstance":{"description":"\u003e **DEPRECATED:** This data source is deprecated. Please use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-go=\"`StreamWorkspace`\" pulumi-lang-python=\"`StreamWorkspace`\" pulumi-lang-yaml=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-java=\"`mongodbatlas.StreamWorkspace`\"\u003e`mongodbatlas.StreamWorkspace`\u003c/span\u003e instead.\n\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamInstance`\" pulumi-lang-go=\"`StreamInstance`\" pulumi-lang-python=\"`StreamInstance`\" pulumi-lang-yaml=\"`mongodbatlas.StreamInstance`\" pulumi-lang-java=\"`mongodbatlas.StreamInstance`\"\u003e`mongodbatlas.StreamInstance`\u003c/span\u003e describes a stream instance.\n\n## Migration to\u003cspan pulumi-lang-nodejs=\" streamWorkspace\n\" pulumi-lang-dotnet=\" StreamWorkspace\n\" pulumi-lang-go=\" streamWorkspace\n\" pulumi-lang-python=\" stream_workspace\n\" pulumi-lang-yaml=\" streamWorkspace\n\" pulumi-lang-java=\" streamWorkspace\n\"\u003e stream_workspace\n\u003c/span\u003e\nTo migrate from \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamInstance`\" pulumi-lang-go=\"`StreamInstance`\" pulumi-lang-python=\"`StreamInstance`\" pulumi-lang-yaml=\"`mongodbatlas.StreamInstance`\" pulumi-lang-java=\"`mongodbatlas.StreamInstance`\"\u003e`mongodbatlas.StreamInstance`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-go=\"`StreamWorkspace`\" pulumi-lang-python=\"`StreamWorkspace`\" pulumi-lang-yaml=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-java=\"`mongodbatlas.StreamWorkspace`\"\u003e`mongodbatlas.StreamWorkspace`\u003c/span\u003e, update your data source configuration. See Migration Guide: Stream Instance to Stream Workspace for step-by-step instructions and examples:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// New (recommended)\nconst example = mongodbatlas.getStreamWorkspace({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    workspaceName: \"\u003cWORKSPACE_NAME\u003e\",\n});\n// Old (deprecated)\nconst exampleGetStreamInstance = mongodbatlas.getStreamInstance({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    instanceName: \"\u003cINSTANCE_NAME\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\n# New (recommended)\nexample = mongodbatlas.get_stream_workspace(project_id=\"\u003cPROJECT_ID\u003e\",\n    workspace_name=\"\u003cWORKSPACE_NAME\u003e\")\n# Old (deprecated)\nexample_get_stream_instance = mongodbatlas.get_stream_instance(project_id=\"\u003cPROJECT_ID\u003e\",\n    instance_name=\"\u003cINSTANCE_NAME\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // New (recommended)\n    var example = Mongodbatlas.GetStreamWorkspace.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        WorkspaceName = \"\u003cWORKSPACE_NAME\u003e\",\n    });\n\n    // Old (deprecated)\n    var exampleGetStreamInstance = Mongodbatlas.GetStreamInstance.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        InstanceName = \"\u003cINSTANCE_NAME\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// New (recommended)\n\t\t_, err := mongodbatlas.LookupStreamWorkspace(ctx, \u0026mongodbatlas.LookupStreamWorkspaceArgs{\n\t\t\tProjectId:     \"\u003cPROJECT_ID\u003e\",\n\t\t\tWorkspaceName: \"\u003cWORKSPACE_NAME\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Old (deprecated)\n\t\t_, err = mongodbatlas.LookupStreamInstance(ctx, \u0026mongodbatlas.LookupStreamInstanceArgs{\n\t\t\tProjectId:    \"\u003cPROJECT_ID\u003e\",\n\t\t\tInstanceName: \"\u003cINSTANCE_NAME\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamWorkspaceArgs;\nimport com.pulumi.mongodbatlas.inputs.GetStreamInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // New (recommended)\n        final var example = MongodbatlasFunctions.getStreamWorkspace(GetStreamWorkspaceArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .workspaceName(\"\u003cWORKSPACE_NAME\u003e\")\n            .build());\n\n        // Old (deprecated)\n        final var exampleGetStreamInstance = MongodbatlasFunctions.getStreamInstance(GetStreamInstanceArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .instanceName(\"\u003cINSTANCE_NAME\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # New (recommended)\n  example:\n    fn::invoke:\n      function: mongodbatlas:getStreamWorkspace\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        workspaceName: \u003cWORKSPACE_NAME\u003e\n  # Old (deprecated)\n  exampleGetStreamInstance:\n    fn::invoke:\n      function: mongodbatlas:getStreamInstance\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        instanceName: \u003cINSTANCE_NAME\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = mongodbatlas.getStreamInstance({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    instanceName: \"\u003cINSTANCE_NAME\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.get_stream_instance(project_id=\"\u003cPROJECT_ID\u003e\",\n    instance_name=\"\u003cINSTANCE_NAME\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mongodbatlas.GetStreamInstance.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        InstanceName = \"\u003cINSTANCE_NAME\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupStreamInstance(ctx, \u0026mongodbatlas.LookupStreamInstanceArgs{\n\t\t\tProjectId:    \"\u003cPROJECT_ID\u003e\",\n\t\t\tInstanceName: \"\u003cINSTANCE_NAME\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MongodbatlasFunctions.getStreamInstance(GetStreamInstanceArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .instanceName(\"\u003cINSTANCE_NAME\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: mongodbatlas:getStreamInstance\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        instanceName: \u003cINSTANCE_NAME\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStreamInstance.\n","properties":{"instanceName":{"type":"string","description":"Human-readable label that identifies the stream instance.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["instanceName","projectId"]},"outputs":{"description":"A collection of values returned by getStreamInstance.\n","properties":{"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/getStreamInstanceDataProcessRegion:getStreamInstanceDataProcessRegion","description":"Defines the cloud service provider and region where MongoDB Cloud performs stream processing. See data process region.\n"},"hostnames":{"description":"List that contains the hostnames assigned to the stream instance.\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"instanceName":{"type":"string"},"projectId":{"type":"string"},"streamConfig":{"$ref":"#/types/mongodbatlas:index/getStreamInstanceStreamConfig:getStreamInstanceStreamConfig","description":"Defines the configuration options for an Atlas Stream Processing Instance. See stream config\n"}},"required":["dataProcessRegion","hostnames","id","instanceName","projectId","streamConfig"],"type":"object"}},"mongodbatlas:index/getStreamInstances:getStreamInstances":{"description":"\u003e **DEPRECATED:** This data source is deprecated. Please use \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamWorkspaces`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamWorkspaces`\" pulumi-lang-go=\"`getStreamWorkspaces`\" pulumi-lang-python=\"`get_stream_workspaces`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamWorkspaces`\" pulumi-lang-java=\"`mongodbatlas.getStreamWorkspaces`\"\u003e`mongodbatlas.getStreamWorkspaces`\u003c/span\u003e instead.\n\n\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-go=\"`getStreamInstances`\" pulumi-lang-python=\"`get_stream_instances`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-java=\"`mongodbatlas.getStreamInstances`\"\u003e`mongodbatlas.getStreamInstances`\u003c/span\u003e describes the stream instances defined in a project.\n\n## Migration to\u003cspan pulumi-lang-nodejs=\" streamWorkspaces\n\" pulumi-lang-dotnet=\" StreamWorkspaces\n\" pulumi-lang-go=\" streamWorkspaces\n\" pulumi-lang-python=\" stream_workspaces\n\" pulumi-lang-yaml=\" streamWorkspaces\n\" pulumi-lang-java=\" streamWorkspaces\n\"\u003e stream_workspaces\n\u003c/span\u003e\nTo migrate from \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-go=\"`getStreamInstances`\" pulumi-lang-python=\"`get_stream_instances`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-java=\"`mongodbatlas.getStreamInstances`\"\u003e`mongodbatlas.getStreamInstances`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamWorkspaces`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamWorkspaces`\" pulumi-lang-go=\"`getStreamWorkspaces`\" pulumi-lang-python=\"`get_stream_workspaces`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamWorkspaces`\" pulumi-lang-java=\"`mongodbatlas.getStreamWorkspaces`\"\u003e`mongodbatlas.getStreamWorkspaces`\u003c/span\u003e, update your data source configuration. See Migration Guide: Stream Instance to Stream Workspace for step-by-step instructions and examples:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// New (recommended)\nconst example = mongodbatlas.getStreamWorkspaces({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n});\n// Old (deprecated)\nconst exampleGetStreamInstances = mongodbatlas.getStreamInstances({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\n# New (recommended)\nexample = mongodbatlas.get_stream_workspaces(project_id=\"\u003cPROJECT_ID\u003e\")\n# Old (deprecated)\nexample_get_stream_instances = mongodbatlas.get_stream_instances(project_id=\"\u003cPROJECT_ID\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // New (recommended)\n    var example = Mongodbatlas.GetStreamWorkspaces.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n    });\n\n    // Old (deprecated)\n    var exampleGetStreamInstances = Mongodbatlas.GetStreamInstances.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// New (recommended)\n\t\t_, err := mongodbatlas.LookupStreamWorkspaces(ctx, \u0026mongodbatlas.LookupStreamWorkspacesArgs{\n\t\t\tProjectId: \"\u003cPROJECT_ID\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Old (deprecated)\n\t\t_, err = mongodbatlas.LookupStreamInstances(ctx, \u0026mongodbatlas.LookupStreamInstancesArgs{\n\t\t\tProjectId: \"\u003cPROJECT_ID\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamWorkspacesArgs;\nimport com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // New (recommended)\n        final var example = MongodbatlasFunctions.getStreamWorkspaces(GetStreamWorkspacesArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .build());\n\n        // Old (deprecated)\n        final var exampleGetStreamInstances = MongodbatlasFunctions.getStreamInstances(GetStreamInstancesArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # New (recommended)\n  example:\n    fn::invoke:\n      function: mongodbatlas:getStreamWorkspaces\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n  # Old (deprecated)\n  exampleGetStreamInstances:\n    fn::invoke:\n      function: mongodbatlas:getStreamInstances\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getStreamInstances({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_stream_instances(project_id=\"\u003cPROJECT_ID\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetStreamInstances.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupStreamInstances(ctx, \u0026mongodbatlas.LookupStreamInstancesArgs{\n\t\t\tProjectId: \"\u003cPROJECT_ID\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamInstancesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getStreamInstances(GetStreamInstancesArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getStreamInstances\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStreamInstances.\n","properties":{"itemsPerPage":{"type":"integer","description":"Number of items that the response returns per page, up to a maximum of \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"pageNum":{"type":"integer","description":"Number of the page that displays the current set of the total objects that the response returns. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getStreamInstances.\n","properties":{"id":{"deprecationMessage":"This parameter is deprecated.","type":"string"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"results":{"description":"A list where each element contains a Stream Instance.\n","items":{"$ref":"#/types/mongodbatlas:index/getStreamInstancesResult:getStreamInstancesResult"},"type":"array"},"totalCount":{"description":"Count of the total number of items in the result set. The count might be greater than the number of objects in the results array if the entire result set is paginated.\n","type":"integer"}},"required":["id","projectId","results","totalCount"],"type":"object"}},"mongodbatlas:index/getStreamPrivatelinkEndpoint:getStreamPrivatelinkEndpoint":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamPrivatelinkEndpoint`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamPrivatelinkEndpoint`\" pulumi-lang-go=\"`StreamPrivatelinkEndpoint`\" pulumi-lang-python=\"`StreamPrivatelinkEndpoint`\" pulumi-lang-yaml=\"`mongodbatlas.StreamPrivatelinkEndpoint`\" pulumi-lang-java=\"`mongodbatlas.StreamPrivatelinkEndpoint`\"\u003e`mongodbatlas.StreamPrivatelinkEndpoint`\u003c/span\u003e describes a Privatelink Endpoint for Streams.\n\n## Example Usage\n\n### S\n\n### AWS Confluent Privatelink\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as confluent from \"@pulumi/confluent\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\nimport * as std from \"@pulumi/std\";\n\nconst staging = new confluent.index.Environment(\"staging\", {displayName: \"Staging\"});\nconst privateLink = new confluent.index.Network(\"private_link\", {\n    displayName: \"terraform-test-private-link-network-manual\",\n    cloud: \"AWS\",\n    region: awsRegion,\n    connectionTypes: [\"PRIVATELINK\"],\n    zones: std.index.keys({\n        input: subnetsToPrivatelink,\n    }).result,\n    environment: [{\n        id: staging.id,\n    }],\n    dnsConfig: [{\n        resolution: \"PRIVATE\",\n    }],\n});\nconst aws = new confluent.index.PrivateLinkAccess(\"aws\", {\n    displayName: \"example-private-link-access\",\n    aws: [{\n        account: awsAccountId,\n    }],\n    environment: [{\n        id: staging.id,\n    }],\n    network: [{\n        id: privateLink.id,\n    }],\n});\nconst dedicated = new confluent.index.KafkaCluster(\"dedicated\", {\n    displayName: \"example-dedicated-cluster\",\n    availability: \"MULTI_ZONE\",\n    cloud: privateLink.cloud,\n    region: privateLink.region,\n    dedicated: [{\n        cku: 2,\n    }],\n    environment: [{\n        id: staging.id,\n    }],\n    network: [{\n        id: privateLink.id,\n    }],\n});\nconst test = new mongodbatlas.StreamPrivatelinkEndpoint(\"test\", {\n    projectId: projectId,\n    dnsDomain: privateLink.dnsDomain,\n    providerName: \"AWS\",\n    region: awsRegion,\n    vendor: \"CONFLUENT\",\n    serviceEndpointId: privateLink.aws[0].privateLinkEndpointService,\n    dnsSubDomains: privateLink.zonalSubdomains,\n});\nconst singularDatasource = test.id.apply(id =\u003e mongodbatlas.getStreamPrivatelinkEndpointOutput({\n    projectId: projectId,\n    id: id,\n}));\nconst pluralDatasource = mongodbatlas.getStreamPrivatelinkEndpoints({\n    projectId: projectId,\n});\nexport const interfaceEndpointId = singularDatasource.apply(singularDatasource =\u003e singularDatasource.interfaceEndpointId);\nexport const interfaceEndpointIds = pluralDatasource.then(pluralDatasource =\u003e pluralDatasource.results.map(__item =\u003e __item.interfaceEndpointId));\n```\n```python\nimport pulumi\nimport pulumi_confluent as confluent\nimport pulumi_mongodbatlas as mongodbatlas\nimport pulumi_std as std\n\nstaging = confluent.index.Environment(\"staging\", display_name=Staging)\nprivate_link = confluent.index.Network(\"private_link\",\n    display_name=terraform-test-private-link-network-manual,\n    cloud=AWS,\n    region=aws_region,\n    connection_types=[PRIVATELINK],\n    zones=std.index.keys(input=subnets_to_privatelink).result,\n    environment=[{\n        id: staging.id,\n    }],\n    dns_config=[{\n        resolution: PRIVATE,\n    }])\naws = confluent.index.PrivateLinkAccess(\"aws\",\n    display_name=example-private-link-access,\n    aws=[{\n        account: aws_account_id,\n    }],\n    environment=[{\n        id: staging.id,\n    }],\n    network=[{\n        id: private_link.id,\n    }])\ndedicated = confluent.index.KafkaCluster(\"dedicated\",\n    display_name=example-dedicated-cluster,\n    availability=MULTI_ZONE,\n    cloud=private_link.cloud,\n    region=private_link.region,\n    dedicated=[{\n        cku: 2,\n    }],\n    environment=[{\n        id: staging.id,\n    }],\n    network=[{\n        id: private_link.id,\n    }])\ntest = mongodbatlas.StreamPrivatelinkEndpoint(\"test\",\n    project_id=project_id,\n    dns_domain=private_link[\"dnsDomain\"],\n    provider_name=\"AWS\",\n    region=aws_region,\n    vendor=\"CONFLUENT\",\n    service_endpoint_id=private_link[\"aws\"][0][\"privateLinkEndpointService\"],\n    dns_sub_domains=private_link[\"zonalSubdomains\"])\nsingular_datasource = test.id.apply(lambda id: mongodbatlas.get_stream_privatelink_endpoint_output(project_id=project_id,\n    id=id))\nplural_datasource = mongodbatlas.get_stream_privatelink_endpoints(project_id=project_id)\npulumi.export(\"interfaceEndpointId\", singular_datasource.interface_endpoint_id)\npulumi.export(\"interfaceEndpointIds\", [__item.interface_endpoint_id for __item in plural_datasource.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Confluent = Pulumi.Confluent;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var staging = new Confluent.Index.Environment(\"staging\", new()\n    {\n        DisplayName = \"Staging\",\n    });\n\n    var privateLink = new Confluent.Index.Network(\"private_link\", new()\n    {\n        DisplayName = \"terraform-test-private-link-network-manual\",\n        Cloud = \"AWS\",\n        Region = awsRegion,\n        ConnectionTypes = new[]\n        {\n            \"PRIVATELINK\",\n        },\n        Zones = Std.Index.Keys.Invoke(new()\n        {\n            Input = subnetsToPrivatelink,\n        }).Result,\n        Environment = new[]\n        {\n            \n            {\n                { \"id\", staging.Id },\n            },\n        },\n        DnsConfig = new[]\n        {\n            \n            {\n                { \"resolution\", \"PRIVATE\" },\n            },\n        },\n    });\n\n    var aws = new Confluent.Index.PrivateLinkAccess(\"aws\", new()\n    {\n        DisplayName = \"example-private-link-access\",\n        Aws = new[]\n        {\n            \n            {\n                { \"account\", awsAccountId },\n            },\n        },\n        Environment = new[]\n        {\n            \n            {\n                { \"id\", staging.Id },\n            },\n        },\n        Network = new[]\n        {\n            \n            {\n                { \"id\", privateLink.Id },\n            },\n        },\n    });\n\n    var dedicated = new Confluent.Index.KafkaCluster(\"dedicated\", new()\n    {\n        DisplayName = \"example-dedicated-cluster\",\n        Availability = \"MULTI_ZONE\",\n        Cloud = privateLink.Cloud,\n        Region = privateLink.Region,\n        Dedicated = new[]\n        {\n            \n            {\n                { \"cku\", 2 },\n            },\n        },\n        Environment = new[]\n        {\n            \n            {\n                { \"id\", staging.Id },\n            },\n        },\n        Network = new[]\n        {\n            \n            {\n                { \"id\", privateLink.Id },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.StreamPrivatelinkEndpoint(\"test\", new()\n    {\n        ProjectId = projectId,\n        DnsDomain = privateLink.DnsDomain,\n        ProviderName = \"AWS\",\n        Region = awsRegion,\n        Vendor = \"CONFLUENT\",\n        ServiceEndpointId = privateLink.Aws[0].PrivateLinkEndpointService,\n        DnsSubDomains = privateLink.ZonalSubdomains,\n    });\n\n    var singularDatasource = Mongodbatlas.GetStreamPrivatelinkEndpoint.Invoke(new()\n    {\n        ProjectId = projectId,\n        Id = test.Id,\n    });\n\n    var pluralDatasource = Mongodbatlas.GetStreamPrivatelinkEndpoints.Invoke(new()\n    {\n        ProjectId = projectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"interfaceEndpointId\"] = singularDatasource.Apply(getStreamPrivatelinkEndpointResult =\u003e getStreamPrivatelinkEndpointResult.InterfaceEndpointId),\n        [\"interfaceEndpointIds\"] = pluralDatasource.Apply(getStreamPrivatelinkEndpointsResult =\u003e getStreamPrivatelinkEndpointsResult.Results).Select(__item =\u003e __item.InterfaceEndpointId).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-confluent/sdk/go/confluent\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nstaging, err := confluent.NewEnvironment(ctx, \"staging\", \u0026confluent.EnvironmentArgs{\nDisplayName: \"Staging\",\n})\nif err != nil {\nreturn err\n}\nprivateLink, err := confluent.NewNetwork(ctx, \"private_link\", \u0026confluent.NetworkArgs{\nDisplayName: \"terraform-test-private-link-network-manual\",\nCloud: \"AWS\",\nRegion: awsRegion,\nConnectionTypes: []string{\n\"PRIVATELINK\",\n},\nZones: std.Keys(ctx, map[string]interface{}{\n\"input\": subnetsToPrivatelink,\n}, nil).Result,\nEnvironment: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": staging.Id,\n},\n},\nDnsConfig: []map[string]interface{}{\nmap[string]interface{}{\n\"resolution\": \"PRIVATE\",\n},\n},\n})\nif err != nil {\nreturn err\n}\n_, err = confluent.NewPrivateLinkAccess(ctx, \"aws\", \u0026confluent.PrivateLinkAccessArgs{\nDisplayName: \"example-private-link-access\",\nAws: []map[string]interface{}{\nmap[string]interface{}{\n\"account\": awsAccountId,\n},\n},\nEnvironment: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": staging.Id,\n},\n},\nNetwork: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": privateLink.Id,\n},\n},\n})\nif err != nil {\nreturn err\n}\n_, err = confluent.NewKafkaCluster(ctx, \"dedicated\", \u0026confluent.KafkaClusterArgs{\nDisplayName: \"example-dedicated-cluster\",\nAvailability: \"MULTI_ZONE\",\nCloud: privateLink.Cloud,\nRegion: privateLink.Region,\nDedicated: []map[string]interface{}{\nmap[string]interface{}{\n\"cku\": 2,\n},\n},\nEnvironment: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": staging.Id,\n},\n},\nNetwork: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": privateLink.Id,\n},\n},\n})\nif err != nil {\nreturn err\n}\ntest, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, \"test\", \u0026mongodbatlas.StreamPrivatelinkEndpointArgs{\nProjectId: pulumi.Any(projectId),\nDnsDomain: privateLink.DnsDomain,\nProviderName: pulumi.String(\"AWS\"),\nRegion: pulumi.Any(awsRegion),\nVendor: pulumi.String(\"CONFLUENT\"),\nServiceEndpointId: privateLink.Aws[0].PrivateLinkEndpointService,\nDnsSubDomains: privateLink.ZonalSubdomains,\n})\nif err != nil {\nreturn err\n}\nsingularDatasource := test.ID().ApplyT(func(id string) (mongodbatlas.GetStreamPrivatelinkEndpointResult, error) {\nreturn mongodbatlas.GetStreamPrivatelinkEndpointResult(interface{}(mongodbatlas.LookupStreamPrivatelinkEndpoint(ctx, \u0026mongodbatlas.LookupStreamPrivatelinkEndpointArgs{\nProjectId: projectId,\nId: id,\n}, nil))), nil\n}).(mongodbatlas.GetStreamPrivatelinkEndpointResultOutput)\npluralDatasource, err := mongodbatlas.LookupStreamPrivatelinkEndpoints(ctx, \u0026mongodbatlas.LookupStreamPrivatelinkEndpointsArgs{\nProjectId: projectId,\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"interfaceEndpointId\", singularDatasource.ApplyT(func(singularDatasource mongodbatlas.GetStreamPrivatelinkEndpointResult) (*string, error) {\nreturn \u0026singularDatasource.InterfaceEndpointId, nil\n}).(pulumi.StringPtrOutput))\nctx.Export(\"interfaceEndpointIds\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:74,11-58)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.confluent.Environment;\nimport com.pulumi.confluent.EnvironmentArgs;\nimport com.pulumi.confluent.Network;\nimport com.pulumi.confluent.NetworkArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.confluent.PrivateLinkAccess;\nimport com.pulumi.confluent.PrivateLinkAccessArgs;\nimport com.pulumi.confluent.KafkaCluster;\nimport com.pulumi.confluent.KafkaClusterArgs;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointArgs;\nimport com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var staging = new Environment(\"staging\", EnvironmentArgs.builder()\n            .displayName(\"Staging\")\n            .build());\n\n        var privateLink = new Network(\"privateLink\", NetworkArgs.builder()\n            .displayName(\"terraform-test-private-link-network-manual\")\n            .cloud(\"AWS\")\n            .region(awsRegion)\n            .connectionTypes(List.of(\"PRIVATELINK\"))\n            .zones(StdFunctions.keys(Map.of(\"input\", subnetsToPrivatelink)).result())\n            .environment(List.of(Map.of(\"id\", staging.id())))\n            .dnsConfig(List.of(Map.of(\"resolution\", \"PRIVATE\")))\n            .build());\n\n        var aws = new PrivateLinkAccess(\"aws\", PrivateLinkAccessArgs.builder()\n            .displayName(\"example-private-link-access\")\n            .aws(List.of(Map.of(\"account\", awsAccountId)))\n            .environment(List.of(Map.of(\"id\", staging.id())))\n            .network(List.of(Map.of(\"id\", privateLink.id())))\n            .build());\n\n        var dedicated = new KafkaCluster(\"dedicated\", KafkaClusterArgs.builder()\n            .displayName(\"example-dedicated-cluster\")\n            .availability(\"MULTI_ZONE\")\n            .cloud(privateLink.cloud())\n            .region(privateLink.region())\n            .dedicated(List.of(Map.of(\"cku\", 2)))\n            .environment(List.of(Map.of(\"id\", staging.id())))\n            .network(List.of(Map.of(\"id\", privateLink.id())))\n            .build());\n\n        var test = new StreamPrivatelinkEndpoint(\"test\", StreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .dnsDomain(privateLink.dnsDomain())\n            .providerName(\"AWS\")\n            .region(awsRegion)\n            .vendor(\"CONFLUENT\")\n            .serviceEndpointId(privateLink.aws()[0].privateLinkEndpointService())\n            .dnsSubDomains(privateLink.zonalSubdomains())\n            .build());\n\n        final var singularDatasource = test.id().applyValue(_id -\u003e MongodbatlasFunctions.getStreamPrivatelinkEndpoint(GetStreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .id(_id)\n            .build()));\n\n        final var pluralDatasource = MongodbatlasFunctions.getStreamPrivatelinkEndpoints(GetStreamPrivatelinkEndpointsArgs.builder()\n            .projectId(projectId)\n            .build());\n\n        ctx.export(\"interfaceEndpointId\", singularDatasource.applyValue(_singularDatasource -\u003e _singularDatasource.interfaceEndpointId()));\n        ctx.export(\"interfaceEndpointIds\", pluralDatasource.results().stream().map(element -\u003e element.interfaceEndpointId()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### AWS S3 Privatelink\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// S3 bucket for stream data\nconst streamBucket = new aws.index.S3Bucket(\"stream_bucket\", {\n    bucket: s3BucketName,\n    forceDestroy: true,\n});\nconst streamBucketVersioning = new aws.index.S3BucketVersioning(\"stream_bucket_versioning\", {\n    bucket: streamBucket.id,\n    versioningConfiguration: [{\n        status: \"Enabled\",\n    }],\n});\nconst streamBucketEncryption = new aws.index.S3BucketServerSideEncryptionConfiguration(\"stream_bucket_encryption\", {\n    bucket: streamBucket.id,\n    rule: [{\n        applyServerSideEncryptionByDefault: [{\n            sseAlgorithm: \"AES256\",\n        }],\n    }],\n});\n// PrivateLink for S3\nconst _this = new mongodbatlas.StreamPrivatelinkEndpoint(\"this\", {\n    projectId: projectId,\n    providerName: \"AWS\",\n    vendor: \"S3\",\n    region: region,\n    serviceEndpointId: serviceEndpointId,\n});\nexport const privatelinkEndpointId = _this.id;\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_mongodbatlas as mongodbatlas\n\n# S3 bucket for stream data\nstream_bucket = aws.index.S3Bucket(\"stream_bucket\",\n    bucket=s3_bucket_name,\n    force_destroy=True)\nstream_bucket_versioning = aws.index.S3BucketVersioning(\"stream_bucket_versioning\",\n    bucket=stream_bucket.id,\n    versioning_configuration=[{\n        status: Enabled,\n    }])\nstream_bucket_encryption = aws.index.S3BucketServerSideEncryptionConfiguration(\"stream_bucket_encryption\",\n    bucket=stream_bucket.id,\n    rule=[{\n        applyServerSideEncryptionByDefault: [{\n            sseAlgorithm: AES256,\n        }],\n    }])\n# PrivateLink for S3\nthis = mongodbatlas.StreamPrivatelinkEndpoint(\"this\",\n    project_id=project_id,\n    provider_name=\"AWS\",\n    vendor=\"S3\",\n    region=region,\n    service_endpoint_id=service_endpoint_id)\npulumi.export(\"privatelinkEndpointId\", this.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // S3 bucket for stream data\n    var streamBucket = new Aws.Index.S3Bucket(\"stream_bucket\", new()\n    {\n        Bucket = s3BucketName,\n        ForceDestroy = true,\n    });\n\n    var streamBucketVersioning = new Aws.Index.S3BucketVersioning(\"stream_bucket_versioning\", new()\n    {\n        Bucket = streamBucket.Id,\n        VersioningConfiguration = new[]\n        {\n            \n            {\n                { \"status\", \"Enabled\" },\n            },\n        },\n    });\n\n    var streamBucketEncryption = new Aws.Index.S3BucketServerSideEncryptionConfiguration(\"stream_bucket_encryption\", new()\n    {\n        Bucket = streamBucket.Id,\n        Rule = new[]\n        {\n            \n            {\n                { \"applyServerSideEncryptionByDefault\", new[]\n                {\n                    \n                    {\n                        { \"sseAlgorithm\", \"AES256\" },\n                    },\n                } },\n            },\n        },\n    });\n\n    // PrivateLink for S3\n    var @this = new Mongodbatlas.StreamPrivatelinkEndpoint(\"this\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"AWS\",\n        Vendor = \"S3\",\n        Region = region,\n        ServiceEndpointId = serviceEndpointId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privatelinkEndpointId\"] = @this.Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// S3 bucket for stream data\n\t\tstreamBucket, err := aws.NewS3Bucket(ctx, \"stream_bucket\", \u0026aws.S3BucketArgs{\n\t\t\tBucket:       s3BucketName,\n\t\t\tForceDestroy: true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aws.NewS3BucketVersioning(ctx, \"stream_bucket_versioning\", \u0026aws.S3BucketVersioningArgs{\n\t\t\tBucket: streamBucket.Id,\n\t\t\tVersioningConfiguration: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"status\": \"Enabled\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aws.NewS3BucketServerSideEncryptionConfiguration(ctx, \"stream_bucket_encryption\", \u0026aws.S3BucketServerSideEncryptionConfigurationArgs{\n\t\t\tBucket: streamBucket.Id,\n\t\t\tRule: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"applyServerSideEncryptionByDefault\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"sseAlgorithm\": \"AES256\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// PrivateLink for S3\n\t\tthis, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, \"this\", \u0026mongodbatlas.StreamPrivatelinkEndpointArgs{\n\t\t\tProjectId:         pulumi.Any(projectId),\n\t\t\tProviderName:      pulumi.String(\"AWS\"),\n\t\t\tVendor:            pulumi.String(\"S3\"),\n\t\t\tRegion:            pulumi.Any(region),\n\t\t\tServiceEndpointId: pulumi.Any(serviceEndpointId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"privatelinkEndpointId\", this.ID())\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.S3Bucket;\nimport com.pulumi.aws.S3BucketArgs;\nimport com.pulumi.aws.S3BucketVersioning;\nimport com.pulumi.aws.S3BucketVersioningArgs;\nimport com.pulumi.aws.S3BucketServerSideEncryptionConfiguration;\nimport com.pulumi.aws.S3BucketServerSideEncryptionConfigurationArgs;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // S3 bucket for stream data\n        var streamBucket = new S3Bucket(\"streamBucket\", S3BucketArgs.builder()\n            .bucket(s3BucketName)\n            .forceDestroy(true)\n            .build());\n\n        var streamBucketVersioning = new S3BucketVersioning(\"streamBucketVersioning\", S3BucketVersioningArgs.builder()\n            .bucket(streamBucket.id())\n            .versioningConfiguration(List.of(Map.of(\"status\", \"Enabled\")))\n            .build());\n\n        var streamBucketEncryption = new S3BucketServerSideEncryptionConfiguration(\"streamBucketEncryption\", S3BucketServerSideEncryptionConfigurationArgs.builder()\n            .bucket(streamBucket.id())\n            .rule(List.of(Map.of(\"applyServerSideEncryptionByDefault\", List.of(Map.of(\"sseAlgorithm\", \"AES256\")))))\n            .build());\n\n        // PrivateLink for S3\n        var this_ = new StreamPrivatelinkEndpoint(\"this\", StreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"AWS\")\n            .vendor(\"S3\")\n            .region(region)\n            .serviceEndpointId(serviceEndpointId)\n            .build());\n\n        ctx.export(\"privatelinkEndpointId\", this_.id());\n    }\n}\n```\n```yaml\nresources:\n  # S3 bucket for stream data\n  streamBucket:\n    type: aws:S3Bucket\n    name: stream_bucket\n    properties:\n      bucket: ${s3BucketName}\n      forceDestroy: true\n  streamBucketVersioning:\n    type: aws:S3BucketVersioning\n    name: stream_bucket_versioning\n    properties:\n      bucket: ${streamBucket.id}\n      versioningConfiguration:\n        - status: Enabled\n  streamBucketEncryption:\n    type: aws:S3BucketServerSideEncryptionConfiguration\n    name: stream_bucket_encryption\n    properties:\n      bucket: ${streamBucket.id}\n      rule:\n        - applyServerSideEncryptionByDefault:\n            - sseAlgorithm: AES256\n  # PrivateLink for S3\n  this:\n    type: mongodbatlas:StreamPrivatelinkEndpoint\n    properties:\n      projectId: ${projectId}\n      providerName: AWS\n      vendor: S3\n      region: ${region}\n      serviceEndpointId: ${serviceEndpointId}\noutputs:\n  privatelinkEndpointId: ${this.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### GCP Confluent Privatelink\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst gcpConfluentStreamPrivatelinkEndpoint = new mongodbatlas.StreamPrivatelinkEndpoint(\"gcp_confluent\", {\n    projectId: projectId,\n    providerName: \"GCP\",\n    vendor: \"CONFLUENT\",\n    region: gcpRegion,\n    dnsDomain: confluentDnsDomain,\n    dnsSubDomains: confluentDnsSubdomains,\n    serviceAttachmentUris: [\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\",\n    ],\n});\nconst gcpConfluent = gcpConfluentStreamPrivatelinkEndpoint.id.apply(id =\u003e mongodbatlas.getStreamPrivatelinkEndpointOutput({\n    projectId: projectId,\n    id: id,\n}));\nexport const privatelinkEndpointId = gcpConfluentStreamPrivatelinkEndpoint.id;\nexport const privatelinkEndpointState = gcpConfluent.apply(gcpConfluent =\u003e gcpConfluent.state);\nexport const serviceAttachmentUris = gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris;\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ngcp_confluent_stream_privatelink_endpoint = mongodbatlas.StreamPrivatelinkEndpoint(\"gcp_confluent\",\n    project_id=project_id,\n    provider_name=\"GCP\",\n    vendor=\"CONFLUENT\",\n    region=gcp_region,\n    dns_domain=confluent_dns_domain,\n    dns_sub_domains=confluent_dns_subdomains,\n    service_attachment_uris=[\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\",\n    ])\ngcp_confluent = gcp_confluent_stream_privatelink_endpoint.id.apply(lambda id: mongodbatlas.get_stream_privatelink_endpoint_output(project_id=project_id,\n    id=id))\npulumi.export(\"privatelinkEndpointId\", gcp_confluent_stream_privatelink_endpoint.id)\npulumi.export(\"privatelinkEndpointState\", gcp_confluent.state)\npulumi.export(\"serviceAttachmentUris\", gcp_confluent_stream_privatelink_endpoint.service_attachment_uris)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var gcpConfluentStreamPrivatelinkEndpoint = new Mongodbatlas.StreamPrivatelinkEndpoint(\"gcp_confluent\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"GCP\",\n        Vendor = \"CONFLUENT\",\n        Region = gcpRegion,\n        DnsDomain = confluentDnsDomain,\n        DnsSubDomains = confluentDnsSubdomains,\n        ServiceAttachmentUris = new[]\n        {\n            \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n            \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\",\n        },\n    });\n\n    var gcpConfluent = Mongodbatlas.GetStreamPrivatelinkEndpoint.Invoke(new()\n    {\n        ProjectId = projectId,\n        Id = gcpConfluentStreamPrivatelinkEndpoint.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privatelinkEndpointId\"] = gcpConfluentStreamPrivatelinkEndpoint.Id,\n        [\"privatelinkEndpointState\"] = gcpConfluent.Apply(getStreamPrivatelinkEndpointResult =\u003e getStreamPrivatelinkEndpointResult.State),\n        [\"serviceAttachmentUris\"] = gcpConfluentStreamPrivatelinkEndpoint.ServiceAttachmentUris,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgcpConfluentStreamPrivatelinkEndpoint, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, \"gcp_confluent\", \u0026mongodbatlas.StreamPrivatelinkEndpointArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tProviderName:  pulumi.String(\"GCP\"),\n\t\t\tVendor:        pulumi.String(\"CONFLUENT\"),\n\t\t\tRegion:        pulumi.Any(gcpRegion),\n\t\t\tDnsDomain:     pulumi.Any(confluentDnsDomain),\n\t\t\tDnsSubDomains: pulumi.Any(confluentDnsSubdomains),\n\t\t\tServiceAttachmentUris: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\"),\n\t\t\t\tpulumi.String(\"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgcpConfluent := gcpConfluentStreamPrivatelinkEndpoint.ID().ApplyT(func(id string) (mongodbatlas.GetStreamPrivatelinkEndpointResult, error) {\n\t\t\treturn mongodbatlas.GetStreamPrivatelinkEndpointResult(interface{}(mongodbatlas.LookupStreamPrivatelinkEndpoint(ctx, \u0026mongodbatlas.LookupStreamPrivatelinkEndpointArgs{\n\t\t\t\tProjectId: projectId,\n\t\t\t\tId:        id,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetStreamPrivatelinkEndpointResultOutput)\n\t\tctx.Export(\"privatelinkEndpointId\", gcpConfluentStreamPrivatelinkEndpoint.ID())\n\t\tctx.Export(\"privatelinkEndpointState\", gcpConfluent.ApplyT(func(gcpConfluent mongodbatlas.GetStreamPrivatelinkEndpointResult) (*string, error) {\n\t\t\treturn \u0026gcpConfluent.State, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"serviceAttachmentUris\", gcpConfluentStreamPrivatelinkEndpoint.ServiceAttachmentUris)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var gcpConfluentStreamPrivatelinkEndpoint = new StreamPrivatelinkEndpoint(\"gcpConfluentStreamPrivatelinkEndpoint\", StreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"GCP\")\n            .vendor(\"CONFLUENT\")\n            .region(gcpRegion)\n            .dnsDomain(confluentDnsDomain)\n            .dnsSubDomains(confluentDnsSubdomains)\n            .serviceAttachmentUris(            \n                \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n                \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\")\n            .build());\n\n        final var gcpConfluent = gcpConfluentStreamPrivatelinkEndpoint.id().applyValue(_id -\u003e MongodbatlasFunctions.getStreamPrivatelinkEndpoint(GetStreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .id(_id)\n            .build()));\n\n        ctx.export(\"privatelinkEndpointId\", gcpConfluentStreamPrivatelinkEndpoint.id());\n        ctx.export(\"privatelinkEndpointState\", gcpConfluent.applyValue(_gcpConfluent -\u003e _gcpConfluent.state()));\n        ctx.export(\"serviceAttachmentUris\", gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris());\n    }\n}\n```\n```yaml\nresources:\n  gcpConfluentStreamPrivatelinkEndpoint:\n    type: mongodbatlas:StreamPrivatelinkEndpoint\n    name: gcp_confluent\n    properties:\n      projectId: ${projectId}\n      providerName: GCP\n      vendor: CONFLUENT\n      region: ${gcpRegion}\n      dnsDomain: ${confluentDnsDomain}\n      dnsSubDomains: ${confluentDnsSubdomains}\n      serviceAttachmentUris:\n        - projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\n        - projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\nvariables:\n  gcpConfluent:\n    fn::invoke:\n      function: mongodbatlas:getStreamPrivatelinkEndpoint\n      arguments:\n        projectId: ${projectId}\n        id: ${gcpConfluentStreamPrivatelinkEndpoint.id}\noutputs:\n  privatelinkEndpointId: ${gcpConfluentStreamPrivatelinkEndpoint.id}\n  privatelinkEndpointState: ${gcpConfluent.state}\n  serviceAttachmentUris: ${gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStreamPrivatelinkEndpoint.\n","properties":{"id":{"type":"string"},"projectId":{"type":"string"}},"type":"object","required":["id","projectId"]},"outputs":{"description":"A collection of values returned by getStreamPrivatelinkEndpoint.\n","properties":{"arn":{"type":"string"},"dnsDomain":{"type":"string"},"dnsSubDomains":{"items":{"type":"string"},"type":"array"},"errorMessage":{"type":"string"},"id":{"type":"string"},"interfaceEndpointId":{"type":"string"},"interfaceEndpointName":{"type":"string"},"projectId":{"type":"string"},"providerAccountId":{"type":"string"},"providerName":{"type":"string"},"region":{"type":"string"},"serviceAttachmentUris":{"items":{"type":"string"},"type":"array"},"serviceEndpointId":{"type":"string"},"state":{"type":"string"},"vendor":{"type":"string"}},"required":["arn","dnsDomain","dnsSubDomains","errorMessage","id","interfaceEndpointId","interfaceEndpointName","projectId","providerAccountId","providerName","region","serviceAttachmentUris","serviceEndpointId","state","vendor"],"type":"object"}},"mongodbatlas:index/getStreamPrivatelinkEndpoints:getStreamPrivatelinkEndpoints":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamPrivatelinkEndpoints`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamPrivatelinkEndpoints`\" pulumi-lang-go=\"`getStreamPrivatelinkEndpoints`\" pulumi-lang-python=\"`get_stream_privatelink_endpoints`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamPrivatelinkEndpoints`\" pulumi-lang-java=\"`mongodbatlas.getStreamPrivatelinkEndpoints`\"\u003e`mongodbatlas.getStreamPrivatelinkEndpoints`\u003c/span\u003e describes a Privatelink Endpoint for Streams.\n\n## Example Usage\n\n### S\n\n### AWS Confluent Privatelink\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as confluent from \"@pulumi/confluent\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\nimport * as std from \"@pulumi/std\";\n\nconst staging = new confluent.index.Environment(\"staging\", {displayName: \"Staging\"});\nconst privateLink = new confluent.index.Network(\"private_link\", {\n    displayName: \"terraform-test-private-link-network-manual\",\n    cloud: \"AWS\",\n    region: awsRegion,\n    connectionTypes: [\"PRIVATELINK\"],\n    zones: std.index.keys({\n        input: subnetsToPrivatelink,\n    }).result,\n    environment: [{\n        id: staging.id,\n    }],\n    dnsConfig: [{\n        resolution: \"PRIVATE\",\n    }],\n});\nconst aws = new confluent.index.PrivateLinkAccess(\"aws\", {\n    displayName: \"example-private-link-access\",\n    aws: [{\n        account: awsAccountId,\n    }],\n    environment: [{\n        id: staging.id,\n    }],\n    network: [{\n        id: privateLink.id,\n    }],\n});\nconst dedicated = new confluent.index.KafkaCluster(\"dedicated\", {\n    displayName: \"example-dedicated-cluster\",\n    availability: \"MULTI_ZONE\",\n    cloud: privateLink.cloud,\n    region: privateLink.region,\n    dedicated: [{\n        cku: 2,\n    }],\n    environment: [{\n        id: staging.id,\n    }],\n    network: [{\n        id: privateLink.id,\n    }],\n});\nconst test = new mongodbatlas.StreamPrivatelinkEndpoint(\"test\", {\n    projectId: projectId,\n    dnsDomain: privateLink.dnsDomain,\n    providerName: \"AWS\",\n    region: awsRegion,\n    vendor: \"CONFLUENT\",\n    serviceEndpointId: privateLink.aws[0].privateLinkEndpointService,\n    dnsSubDomains: privateLink.zonalSubdomains,\n});\nconst singularDatasource = test.id.apply(id =\u003e mongodbatlas.getStreamPrivatelinkEndpointOutput({\n    projectId: projectId,\n    id: id,\n}));\nconst pluralDatasource = mongodbatlas.getStreamPrivatelinkEndpoints({\n    projectId: projectId,\n});\nexport const interfaceEndpointId = singularDatasource.apply(singularDatasource =\u003e singularDatasource.interfaceEndpointId);\nexport const interfaceEndpointIds = pluralDatasource.then(pluralDatasource =\u003e pluralDatasource.results.map(__item =\u003e __item.interfaceEndpointId));\n```\n```python\nimport pulumi\nimport pulumi_confluent as confluent\nimport pulumi_mongodbatlas as mongodbatlas\nimport pulumi_std as std\n\nstaging = confluent.index.Environment(\"staging\", display_name=Staging)\nprivate_link = confluent.index.Network(\"private_link\",\n    display_name=terraform-test-private-link-network-manual,\n    cloud=AWS,\n    region=aws_region,\n    connection_types=[PRIVATELINK],\n    zones=std.index.keys(input=subnets_to_privatelink).result,\n    environment=[{\n        id: staging.id,\n    }],\n    dns_config=[{\n        resolution: PRIVATE,\n    }])\naws = confluent.index.PrivateLinkAccess(\"aws\",\n    display_name=example-private-link-access,\n    aws=[{\n        account: aws_account_id,\n    }],\n    environment=[{\n        id: staging.id,\n    }],\n    network=[{\n        id: private_link.id,\n    }])\ndedicated = confluent.index.KafkaCluster(\"dedicated\",\n    display_name=example-dedicated-cluster,\n    availability=MULTI_ZONE,\n    cloud=private_link.cloud,\n    region=private_link.region,\n    dedicated=[{\n        cku: 2,\n    }],\n    environment=[{\n        id: staging.id,\n    }],\n    network=[{\n        id: private_link.id,\n    }])\ntest = mongodbatlas.StreamPrivatelinkEndpoint(\"test\",\n    project_id=project_id,\n    dns_domain=private_link[\"dnsDomain\"],\n    provider_name=\"AWS\",\n    region=aws_region,\n    vendor=\"CONFLUENT\",\n    service_endpoint_id=private_link[\"aws\"][0][\"privateLinkEndpointService\"],\n    dns_sub_domains=private_link[\"zonalSubdomains\"])\nsingular_datasource = test.id.apply(lambda id: mongodbatlas.get_stream_privatelink_endpoint_output(project_id=project_id,\n    id=id))\nplural_datasource = mongodbatlas.get_stream_privatelink_endpoints(project_id=project_id)\npulumi.export(\"interfaceEndpointId\", singular_datasource.interface_endpoint_id)\npulumi.export(\"interfaceEndpointIds\", [__item.interface_endpoint_id for __item in plural_datasource.results])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Confluent = Pulumi.Confluent;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var staging = new Confluent.Index.Environment(\"staging\", new()\n    {\n        DisplayName = \"Staging\",\n    });\n\n    var privateLink = new Confluent.Index.Network(\"private_link\", new()\n    {\n        DisplayName = \"terraform-test-private-link-network-manual\",\n        Cloud = \"AWS\",\n        Region = awsRegion,\n        ConnectionTypes = new[]\n        {\n            \"PRIVATELINK\",\n        },\n        Zones = Std.Index.Keys.Invoke(new()\n        {\n            Input = subnetsToPrivatelink,\n        }).Result,\n        Environment = new[]\n        {\n            \n            {\n                { \"id\", staging.Id },\n            },\n        },\n        DnsConfig = new[]\n        {\n            \n            {\n                { \"resolution\", \"PRIVATE\" },\n            },\n        },\n    });\n\n    var aws = new Confluent.Index.PrivateLinkAccess(\"aws\", new()\n    {\n        DisplayName = \"example-private-link-access\",\n        Aws = new[]\n        {\n            \n            {\n                { \"account\", awsAccountId },\n            },\n        },\n        Environment = new[]\n        {\n            \n            {\n                { \"id\", staging.Id },\n            },\n        },\n        Network = new[]\n        {\n            \n            {\n                { \"id\", privateLink.Id },\n            },\n        },\n    });\n\n    var dedicated = new Confluent.Index.KafkaCluster(\"dedicated\", new()\n    {\n        DisplayName = \"example-dedicated-cluster\",\n        Availability = \"MULTI_ZONE\",\n        Cloud = privateLink.Cloud,\n        Region = privateLink.Region,\n        Dedicated = new[]\n        {\n            \n            {\n                { \"cku\", 2 },\n            },\n        },\n        Environment = new[]\n        {\n            \n            {\n                { \"id\", staging.Id },\n            },\n        },\n        Network = new[]\n        {\n            \n            {\n                { \"id\", privateLink.Id },\n            },\n        },\n    });\n\n    var test = new Mongodbatlas.StreamPrivatelinkEndpoint(\"test\", new()\n    {\n        ProjectId = projectId,\n        DnsDomain = privateLink.DnsDomain,\n        ProviderName = \"AWS\",\n        Region = awsRegion,\n        Vendor = \"CONFLUENT\",\n        ServiceEndpointId = privateLink.Aws[0].PrivateLinkEndpointService,\n        DnsSubDomains = privateLink.ZonalSubdomains,\n    });\n\n    var singularDatasource = Mongodbatlas.GetStreamPrivatelinkEndpoint.Invoke(new()\n    {\n        ProjectId = projectId,\n        Id = test.Id,\n    });\n\n    var pluralDatasource = Mongodbatlas.GetStreamPrivatelinkEndpoints.Invoke(new()\n    {\n        ProjectId = projectId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"interfaceEndpointId\"] = singularDatasource.Apply(getStreamPrivatelinkEndpointResult =\u003e getStreamPrivatelinkEndpointResult.InterfaceEndpointId),\n        [\"interfaceEndpointIds\"] = pluralDatasource.Apply(getStreamPrivatelinkEndpointsResult =\u003e getStreamPrivatelinkEndpointsResult.Results).Select(__item =\u003e __item.InterfaceEndpointId).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-confluent/sdk/go/confluent\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nstaging, err := confluent.NewEnvironment(ctx, \"staging\", \u0026confluent.EnvironmentArgs{\nDisplayName: \"Staging\",\n})\nif err != nil {\nreturn err\n}\nprivateLink, err := confluent.NewNetwork(ctx, \"private_link\", \u0026confluent.NetworkArgs{\nDisplayName: \"terraform-test-private-link-network-manual\",\nCloud: \"AWS\",\nRegion: awsRegion,\nConnectionTypes: []string{\n\"PRIVATELINK\",\n},\nZones: std.Keys(ctx, map[string]interface{}{\n\"input\": subnetsToPrivatelink,\n}, nil).Result,\nEnvironment: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": staging.Id,\n},\n},\nDnsConfig: []map[string]interface{}{\nmap[string]interface{}{\n\"resolution\": \"PRIVATE\",\n},\n},\n})\nif err != nil {\nreturn err\n}\n_, err = confluent.NewPrivateLinkAccess(ctx, \"aws\", \u0026confluent.PrivateLinkAccessArgs{\nDisplayName: \"example-private-link-access\",\nAws: []map[string]interface{}{\nmap[string]interface{}{\n\"account\": awsAccountId,\n},\n},\nEnvironment: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": staging.Id,\n},\n},\nNetwork: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": privateLink.Id,\n},\n},\n})\nif err != nil {\nreturn err\n}\n_, err = confluent.NewKafkaCluster(ctx, \"dedicated\", \u0026confluent.KafkaClusterArgs{\nDisplayName: \"example-dedicated-cluster\",\nAvailability: \"MULTI_ZONE\",\nCloud: privateLink.Cloud,\nRegion: privateLink.Region,\nDedicated: []map[string]interface{}{\nmap[string]interface{}{\n\"cku\": 2,\n},\n},\nEnvironment: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": staging.Id,\n},\n},\nNetwork: []map[string]interface{}{\nmap[string]interface{}{\n\"id\": privateLink.Id,\n},\n},\n})\nif err != nil {\nreturn err\n}\ntest, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, \"test\", \u0026mongodbatlas.StreamPrivatelinkEndpointArgs{\nProjectId: pulumi.Any(projectId),\nDnsDomain: privateLink.DnsDomain,\nProviderName: pulumi.String(\"AWS\"),\nRegion: pulumi.Any(awsRegion),\nVendor: pulumi.String(\"CONFLUENT\"),\nServiceEndpointId: privateLink.Aws[0].PrivateLinkEndpointService,\nDnsSubDomains: privateLink.ZonalSubdomains,\n})\nif err != nil {\nreturn err\n}\nsingularDatasource := test.ID().ApplyT(func(id string) (mongodbatlas.GetStreamPrivatelinkEndpointResult, error) {\nreturn mongodbatlas.GetStreamPrivatelinkEndpointResult(interface{}(mongodbatlas.LookupStreamPrivatelinkEndpoint(ctx, \u0026mongodbatlas.LookupStreamPrivatelinkEndpointArgs{\nProjectId: projectId,\nId: id,\n}, nil))), nil\n}).(mongodbatlas.GetStreamPrivatelinkEndpointResultOutput)\npluralDatasource, err := mongodbatlas.LookupStreamPrivatelinkEndpoints(ctx, \u0026mongodbatlas.LookupStreamPrivatelinkEndpointsArgs{\nProjectId: projectId,\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"interfaceEndpointId\", singularDatasource.ApplyT(func(singularDatasource mongodbatlas.GetStreamPrivatelinkEndpointResult) (*string, error) {\nreturn \u0026singularDatasource.InterfaceEndpointId, nil\n}).(pulumi.StringPtrOutput))\nctx.Export(\"interfaceEndpointIds\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:74,11-58)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.confluent.Environment;\nimport com.pulumi.confluent.EnvironmentArgs;\nimport com.pulumi.confluent.Network;\nimport com.pulumi.confluent.NetworkArgs;\nimport com.pulumi.std.StdFunctions;\nimport com.pulumi.confluent.PrivateLinkAccess;\nimport com.pulumi.confluent.PrivateLinkAccessArgs;\nimport com.pulumi.confluent.KafkaCluster;\nimport com.pulumi.confluent.KafkaClusterArgs;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointArgs;\nimport com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var staging = new Environment(\"staging\", EnvironmentArgs.builder()\n            .displayName(\"Staging\")\n            .build());\n\n        var privateLink = new Network(\"privateLink\", NetworkArgs.builder()\n            .displayName(\"terraform-test-private-link-network-manual\")\n            .cloud(\"AWS\")\n            .region(awsRegion)\n            .connectionTypes(List.of(\"PRIVATELINK\"))\n            .zones(StdFunctions.keys(Map.of(\"input\", subnetsToPrivatelink)).result())\n            .environment(List.of(Map.of(\"id\", staging.id())))\n            .dnsConfig(List.of(Map.of(\"resolution\", \"PRIVATE\")))\n            .build());\n\n        var aws = new PrivateLinkAccess(\"aws\", PrivateLinkAccessArgs.builder()\n            .displayName(\"example-private-link-access\")\n            .aws(List.of(Map.of(\"account\", awsAccountId)))\n            .environment(List.of(Map.of(\"id\", staging.id())))\n            .network(List.of(Map.of(\"id\", privateLink.id())))\n            .build());\n\n        var dedicated = new KafkaCluster(\"dedicated\", KafkaClusterArgs.builder()\n            .displayName(\"example-dedicated-cluster\")\n            .availability(\"MULTI_ZONE\")\n            .cloud(privateLink.cloud())\n            .region(privateLink.region())\n            .dedicated(List.of(Map.of(\"cku\", 2)))\n            .environment(List.of(Map.of(\"id\", staging.id())))\n            .network(List.of(Map.of(\"id\", privateLink.id())))\n            .build());\n\n        var test = new StreamPrivatelinkEndpoint(\"test\", StreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .dnsDomain(privateLink.dnsDomain())\n            .providerName(\"AWS\")\n            .region(awsRegion)\n            .vendor(\"CONFLUENT\")\n            .serviceEndpointId(privateLink.aws()[0].privateLinkEndpointService())\n            .dnsSubDomains(privateLink.zonalSubdomains())\n            .build());\n\n        final var singularDatasource = test.id().applyValue(_id -\u003e MongodbatlasFunctions.getStreamPrivatelinkEndpoint(GetStreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .id(_id)\n            .build()));\n\n        final var pluralDatasource = MongodbatlasFunctions.getStreamPrivatelinkEndpoints(GetStreamPrivatelinkEndpointsArgs.builder()\n            .projectId(projectId)\n            .build());\n\n        ctx.export(\"interfaceEndpointId\", singularDatasource.applyValue(_singularDatasource -\u003e _singularDatasource.interfaceEndpointId()));\n        ctx.export(\"interfaceEndpointIds\", pluralDatasource.results().stream().map(element -\u003e element.interfaceEndpointId()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### AWS S3 Privatelink\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\n// S3 bucket for stream data\nconst streamBucket = new aws.index.S3Bucket(\"stream_bucket\", {\n    bucket: s3BucketName,\n    forceDestroy: true,\n});\nconst streamBucketVersioning = new aws.index.S3BucketVersioning(\"stream_bucket_versioning\", {\n    bucket: streamBucket.id,\n    versioningConfiguration: [{\n        status: \"Enabled\",\n    }],\n});\nconst streamBucketEncryption = new aws.index.S3BucketServerSideEncryptionConfiguration(\"stream_bucket_encryption\", {\n    bucket: streamBucket.id,\n    rule: [{\n        applyServerSideEncryptionByDefault: [{\n            sseAlgorithm: \"AES256\",\n        }],\n    }],\n});\n// PrivateLink for S3\nconst _this = new mongodbatlas.StreamPrivatelinkEndpoint(\"this\", {\n    projectId: projectId,\n    providerName: \"AWS\",\n    vendor: \"S3\",\n    region: region,\n    serviceEndpointId: serviceEndpointId,\n});\nexport const privatelinkEndpointId = _this.id;\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\nimport pulumi_mongodbatlas as mongodbatlas\n\n# S3 bucket for stream data\nstream_bucket = aws.index.S3Bucket(\"stream_bucket\",\n    bucket=s3_bucket_name,\n    force_destroy=True)\nstream_bucket_versioning = aws.index.S3BucketVersioning(\"stream_bucket_versioning\",\n    bucket=stream_bucket.id,\n    versioning_configuration=[{\n        status: Enabled,\n    }])\nstream_bucket_encryption = aws.index.S3BucketServerSideEncryptionConfiguration(\"stream_bucket_encryption\",\n    bucket=stream_bucket.id,\n    rule=[{\n        applyServerSideEncryptionByDefault: [{\n            sseAlgorithm: AES256,\n        }],\n    }])\n# PrivateLink for S3\nthis = mongodbatlas.StreamPrivatelinkEndpoint(\"this\",\n    project_id=project_id,\n    provider_name=\"AWS\",\n    vendor=\"S3\",\n    region=region,\n    service_endpoint_id=service_endpoint_id)\npulumi.export(\"privatelinkEndpointId\", this.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // S3 bucket for stream data\n    var streamBucket = new Aws.Index.S3Bucket(\"stream_bucket\", new()\n    {\n        Bucket = s3BucketName,\n        ForceDestroy = true,\n    });\n\n    var streamBucketVersioning = new Aws.Index.S3BucketVersioning(\"stream_bucket_versioning\", new()\n    {\n        Bucket = streamBucket.Id,\n        VersioningConfiguration = new[]\n        {\n            \n            {\n                { \"status\", \"Enabled\" },\n            },\n        },\n    });\n\n    var streamBucketEncryption = new Aws.Index.S3BucketServerSideEncryptionConfiguration(\"stream_bucket_encryption\", new()\n    {\n        Bucket = streamBucket.Id,\n        Rule = new[]\n        {\n            \n            {\n                { \"applyServerSideEncryptionByDefault\", new[]\n                {\n                    \n                    {\n                        { \"sseAlgorithm\", \"AES256\" },\n                    },\n                } },\n            },\n        },\n    });\n\n    // PrivateLink for S3\n    var @this = new Mongodbatlas.StreamPrivatelinkEndpoint(\"this\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"AWS\",\n        Vendor = \"S3\",\n        Region = region,\n        ServiceEndpointId = serviceEndpointId,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privatelinkEndpointId\"] = @this.Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v7/go/aws\"\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// S3 bucket for stream data\n\t\tstreamBucket, err := aws.NewS3Bucket(ctx, \"stream_bucket\", \u0026aws.S3BucketArgs{\n\t\t\tBucket:       s3BucketName,\n\t\t\tForceDestroy: true,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aws.NewS3BucketVersioning(ctx, \"stream_bucket_versioning\", \u0026aws.S3BucketVersioningArgs{\n\t\t\tBucket: streamBucket.Id,\n\t\t\tVersioningConfiguration: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"status\": \"Enabled\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = aws.NewS3BucketServerSideEncryptionConfiguration(ctx, \"stream_bucket_encryption\", \u0026aws.S3BucketServerSideEncryptionConfigurationArgs{\n\t\t\tBucket: streamBucket.Id,\n\t\t\tRule: []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"applyServerSideEncryptionByDefault\": []map[string]interface{}{\n\t\t\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\t\t\"sseAlgorithm\": \"AES256\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// PrivateLink for S3\n\t\tthis, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, \"this\", \u0026mongodbatlas.StreamPrivatelinkEndpointArgs{\n\t\t\tProjectId:         pulumi.Any(projectId),\n\t\t\tProviderName:      pulumi.String(\"AWS\"),\n\t\t\tVendor:            pulumi.String(\"S3\"),\n\t\t\tRegion:            pulumi.Any(region),\n\t\t\tServiceEndpointId: pulumi.Any(serviceEndpointId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"privatelinkEndpointId\", this.ID())\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.S3Bucket;\nimport com.pulumi.aws.S3BucketArgs;\nimport com.pulumi.aws.S3BucketVersioning;\nimport com.pulumi.aws.S3BucketVersioningArgs;\nimport com.pulumi.aws.S3BucketServerSideEncryptionConfiguration;\nimport com.pulumi.aws.S3BucketServerSideEncryptionConfigurationArgs;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // S3 bucket for stream data\n        var streamBucket = new S3Bucket(\"streamBucket\", S3BucketArgs.builder()\n            .bucket(s3BucketName)\n            .forceDestroy(true)\n            .build());\n\n        var streamBucketVersioning = new S3BucketVersioning(\"streamBucketVersioning\", S3BucketVersioningArgs.builder()\n            .bucket(streamBucket.id())\n            .versioningConfiguration(List.of(Map.of(\"status\", \"Enabled\")))\n            .build());\n\n        var streamBucketEncryption = new S3BucketServerSideEncryptionConfiguration(\"streamBucketEncryption\", S3BucketServerSideEncryptionConfigurationArgs.builder()\n            .bucket(streamBucket.id())\n            .rule(List.of(Map.of(\"applyServerSideEncryptionByDefault\", List.of(Map.of(\"sseAlgorithm\", \"AES256\")))))\n            .build());\n\n        // PrivateLink for S3\n        var this_ = new StreamPrivatelinkEndpoint(\"this\", StreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"AWS\")\n            .vendor(\"S3\")\n            .region(region)\n            .serviceEndpointId(serviceEndpointId)\n            .build());\n\n        ctx.export(\"privatelinkEndpointId\", this_.id());\n    }\n}\n```\n```yaml\nresources:\n  # S3 bucket for stream data\n  streamBucket:\n    type: aws:S3Bucket\n    name: stream_bucket\n    properties:\n      bucket: ${s3BucketName}\n      forceDestroy: true\n  streamBucketVersioning:\n    type: aws:S3BucketVersioning\n    name: stream_bucket_versioning\n    properties:\n      bucket: ${streamBucket.id}\n      versioningConfiguration:\n        - status: Enabled\n  streamBucketEncryption:\n    type: aws:S3BucketServerSideEncryptionConfiguration\n    name: stream_bucket_encryption\n    properties:\n      bucket: ${streamBucket.id}\n      rule:\n        - applyServerSideEncryptionByDefault:\n            - sseAlgorithm: AES256\n  # PrivateLink for S3\n  this:\n    type: mongodbatlas:StreamPrivatelinkEndpoint\n    properties:\n      projectId: ${projectId}\n      providerName: AWS\n      vendor: S3\n      region: ${region}\n      serviceEndpointId: ${serviceEndpointId}\noutputs:\n  privatelinkEndpointId: ${this.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### GCP Confluent Privatelink\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst gcpConfluentStreamPrivatelinkEndpoint = new mongodbatlas.StreamPrivatelinkEndpoint(\"gcp_confluent\", {\n    projectId: projectId,\n    providerName: \"GCP\",\n    vendor: \"CONFLUENT\",\n    region: gcpRegion,\n    dnsDomain: confluentDnsDomain,\n    dnsSubDomains: confluentDnsSubdomains,\n    serviceAttachmentUris: [\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\",\n    ],\n});\nconst gcpConfluent = gcpConfluentStreamPrivatelinkEndpoint.id.apply(id =\u003e mongodbatlas.getStreamPrivatelinkEndpointOutput({\n    projectId: projectId,\n    id: id,\n}));\nexport const privatelinkEndpointId = gcpConfluentStreamPrivatelinkEndpoint.id;\nexport const privatelinkEndpointState = gcpConfluent.apply(gcpConfluent =\u003e gcpConfluent.state);\nexport const serviceAttachmentUris = gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris;\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ngcp_confluent_stream_privatelink_endpoint = mongodbatlas.StreamPrivatelinkEndpoint(\"gcp_confluent\",\n    project_id=project_id,\n    provider_name=\"GCP\",\n    vendor=\"CONFLUENT\",\n    region=gcp_region,\n    dns_domain=confluent_dns_domain,\n    dns_sub_domains=confluent_dns_subdomains,\n    service_attachment_uris=[\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n        \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\",\n    ])\ngcp_confluent = gcp_confluent_stream_privatelink_endpoint.id.apply(lambda id: mongodbatlas.get_stream_privatelink_endpoint_output(project_id=project_id,\n    id=id))\npulumi.export(\"privatelinkEndpointId\", gcp_confluent_stream_privatelink_endpoint.id)\npulumi.export(\"privatelinkEndpointState\", gcp_confluent.state)\npulumi.export(\"serviceAttachmentUris\", gcp_confluent_stream_privatelink_endpoint.service_attachment_uris)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var gcpConfluentStreamPrivatelinkEndpoint = new Mongodbatlas.StreamPrivatelinkEndpoint(\"gcp_confluent\", new()\n    {\n        ProjectId = projectId,\n        ProviderName = \"GCP\",\n        Vendor = \"CONFLUENT\",\n        Region = gcpRegion,\n        DnsDomain = confluentDnsDomain,\n        DnsSubDomains = confluentDnsSubdomains,\n        ServiceAttachmentUris = new[]\n        {\n            \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n            \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\",\n        },\n    });\n\n    var gcpConfluent = Mongodbatlas.GetStreamPrivatelinkEndpoint.Invoke(new()\n    {\n        ProjectId = projectId,\n        Id = gcpConfluentStreamPrivatelinkEndpoint.Id,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"privatelinkEndpointId\"] = gcpConfluentStreamPrivatelinkEndpoint.Id,\n        [\"privatelinkEndpointState\"] = gcpConfluent.Apply(getStreamPrivatelinkEndpointResult =\u003e getStreamPrivatelinkEndpointResult.State),\n        [\"serviceAttachmentUris\"] = gcpConfluentStreamPrivatelinkEndpoint.ServiceAttachmentUris,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgcpConfluentStreamPrivatelinkEndpoint, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, \"gcp_confluent\", \u0026mongodbatlas.StreamPrivatelinkEndpointArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tProviderName:  pulumi.String(\"GCP\"),\n\t\t\tVendor:        pulumi.String(\"CONFLUENT\"),\n\t\t\tRegion:        pulumi.Any(gcpRegion),\n\t\t\tDnsDomain:     pulumi.Any(confluentDnsDomain),\n\t\t\tDnsSubDomains: pulumi.Any(confluentDnsSubdomains),\n\t\t\tServiceAttachmentUris: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\"),\n\t\t\t\tpulumi.String(\"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgcpConfluent := gcpConfluentStreamPrivatelinkEndpoint.ID().ApplyT(func(id string) (mongodbatlas.GetStreamPrivatelinkEndpointResult, error) {\n\t\t\treturn mongodbatlas.GetStreamPrivatelinkEndpointResult(interface{}(mongodbatlas.LookupStreamPrivatelinkEndpoint(ctx, \u0026mongodbatlas.LookupStreamPrivatelinkEndpointArgs{\n\t\t\t\tProjectId: projectId,\n\t\t\t\tId:        id,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetStreamPrivatelinkEndpointResultOutput)\n\t\tctx.Export(\"privatelinkEndpointId\", gcpConfluentStreamPrivatelinkEndpoint.ID())\n\t\tctx.Export(\"privatelinkEndpointState\", gcpConfluent.ApplyT(func(gcpConfluent mongodbatlas.GetStreamPrivatelinkEndpointResult) (*string, error) {\n\t\t\treturn \u0026gcpConfluent.State, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"serviceAttachmentUris\", gcpConfluentStreamPrivatelinkEndpoint.ServiceAttachmentUris)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;\nimport com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var gcpConfluentStreamPrivatelinkEndpoint = new StreamPrivatelinkEndpoint(\"gcpConfluentStreamPrivatelinkEndpoint\", StreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .providerName(\"GCP\")\n            .vendor(\"CONFLUENT\")\n            .region(gcpRegion)\n            .dnsDomain(confluentDnsDomain)\n            .dnsSubDomains(confluentDnsSubdomains)\n            .serviceAttachmentUris(            \n                \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\",\n                \"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\")\n            .build());\n\n        final var gcpConfluent = gcpConfluentStreamPrivatelinkEndpoint.id().applyValue(_id -\u003e MongodbatlasFunctions.getStreamPrivatelinkEndpoint(GetStreamPrivatelinkEndpointArgs.builder()\n            .projectId(projectId)\n            .id(_id)\n            .build()));\n\n        ctx.export(\"privatelinkEndpointId\", gcpConfluentStreamPrivatelinkEndpoint.id());\n        ctx.export(\"privatelinkEndpointState\", gcpConfluent.applyValue(_gcpConfluent -\u003e _gcpConfluent.state()));\n        ctx.export(\"serviceAttachmentUris\", gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris());\n    }\n}\n```\n```yaml\nresources:\n  gcpConfluentStreamPrivatelinkEndpoint:\n    type: mongodbatlas:StreamPrivatelinkEndpoint\n    name: gcp_confluent\n    properties:\n      projectId: ${projectId}\n      providerName: GCP\n      vendor: CONFLUENT\n      region: ${gcpRegion}\n      dnsDomain: ${confluentDnsDomain}\n      dnsSubDomains: ${confluentDnsSubdomains}\n      serviceAttachmentUris:\n        - projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1\n        - projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2\nvariables:\n  gcpConfluent:\n    fn::invoke:\n      function: mongodbatlas:getStreamPrivatelinkEndpoint\n      arguments:\n        projectId: ${projectId}\n        id: ${gcpConfluentStreamPrivatelinkEndpoint.id}\noutputs:\n  privatelinkEndpointId: ${gcpConfluentStreamPrivatelinkEndpoint.id}\n  privatelinkEndpointState: ${gcpConfluent.state}\n  serviceAttachmentUris: ${gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStreamPrivatelinkEndpoints.\n","properties":{"projectId":{"type":"string"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getStreamPrivatelinkEndpoints.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getStreamPrivatelinkEndpointsResult:getStreamPrivatelinkEndpointsResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getStreamProcessor:getStreamProcessor":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamProcessor`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamProcessor`\" pulumi-lang-go=\"`StreamProcessor`\" pulumi-lang-python=\"`StreamProcessor`\" pulumi-lang-yaml=\"`mongodbatlas.StreamProcessor`\" pulumi-lang-java=\"`mongodbatlas.StreamProcessor`\"\u003e`mongodbatlas.StreamProcessor`\u003c/span\u003e describes a stream processor.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.StreamInstance(\"example\", {\n    projectId: projectId,\n    instanceName: \"InstanceName\",\n    dataProcessRegion: {\n        region: \"VIRGINIA_USA\",\n        cloudProvider: \"AWS\",\n    },\n});\nconst example_sample = new mongodbatlas.StreamConnection(\"example-sample\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    connectionName: \"sample_stream_solar\",\n    type: \"Sample\",\n});\nconst example_cluster = new mongodbatlas.StreamConnection(\"example-cluster\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    connectionName: \"ClusterConnection\",\n    type: \"Cluster\",\n    clusterName: clusterName,\n    dbRoleToExecute: {\n        role: \"atlasAdmin\",\n        type: \"BUILT_IN\",\n    },\n});\nconst example_kafka = new mongodbatlas.StreamConnection(\"example-kafka\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    connectionName: \"KafkaPlaintextConnection\",\n    type: \"Kafka\",\n    authentication: {\n        mechanism: \"PLAIN\",\n        username: kafkaUsername,\n        password: kafkaPassword,\n    },\n    bootstrapServers: \"localhost:9092,localhost:9092\",\n    config: {\n        \"auto.offset.reset\": \"earliest\",\n    },\n    security: {\n        protocol: \"SASL_PLAINTEXT\",\n    },\n});\nconst stream_processor_sample_example = new mongodbatlas.StreamProcessor(\"stream-processor-sample-example\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    processorName: \"sampleProcessorName\",\n    pipeline: JSON.stringify([\n        {\n            $source: {\n                connectionName: mongodbatlasStreamConnection[\"example-sample\"].connectionName,\n            },\n        },\n        {\n            $emit: {\n                connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n                db: \"sample\",\n                coll: \"solar\",\n                timeseries: {\n                    timeField: \"_ts\",\n                },\n            },\n        },\n    ]),\n    state: \"STARTED\",\n    tier: \"SP30\",\n});\nconst stream_processor_cluster_to_kafka_example = new mongodbatlas.StreamProcessor(\"stream-processor-cluster-to-kafka-example\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    processorName: \"clusterProcessorName\",\n    pipeline: JSON.stringify([\n        {\n            $source: {\n                connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n            },\n        },\n        {\n            $emit: {\n                connectionName: mongodbatlasStreamConnection[\"example-kafka\"].connectionName,\n                topic: \"topic_from_cluster\",\n            },\n        },\n    ]),\n    state: \"CREATED\",\n});\nconst stream_processor_kafka_to_cluster_example = new mongodbatlas.StreamProcessor(\"stream-processor-kafka-to-cluster-example\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    processorName: \"kafkaProcessorName\",\n    pipeline: JSON.stringify([\n        {\n            $source: {\n                connectionName: mongodbatlasStreamConnection[\"example-kafka\"].connectionName,\n                topic: \"topic_source\",\n            },\n        },\n        {\n            $emit: {\n                connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n                db: \"kafka\",\n                coll: \"topic_source\",\n                timeseries: {\n                    timeField: \"ts\",\n                },\n            },\n        },\n    ]),\n    state: \"CREATED\",\n    options: {\n        dlq: {\n            coll: \"exampleColumn\",\n            connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n            db: \"exampleDb\",\n        },\n    },\n});\nconst example_stream_processors = example.instanceName.apply(instanceName =\u003e mongodbatlas.getStreamProcessorsOutput({\n    projectId: projectId,\n    workspaceName: instanceName,\n}));\nconst example_stream_processor = pulumi.all([example.instanceName, stream_processor_sample_example.processorName]).apply(([instanceName, processorName]) =\u003e mongodbatlas.getStreamProcessorOutput({\n    projectId: projectId,\n    workspaceName: instanceName,\n    processorName: processorName,\n}));\nexport const streamProcessorsState = example_stream_processor.apply(example_stream_processor =\u003e example_stream_processor.state);\nexport const streamProcessorsResults = example_stream_processors.apply(example_stream_processors =\u003e example_stream_processors.results);\n```\n```python\nimport pulumi\nimport json\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.StreamInstance(\"example\",\n    project_id=project_id,\n    instance_name=\"InstanceName\",\n    data_process_region={\n        \"region\": \"VIRGINIA_USA\",\n        \"cloud_provider\": \"AWS\",\n    })\nexample_sample = mongodbatlas.StreamConnection(\"example-sample\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    connection_name=\"sample_stream_solar\",\n    type=\"Sample\")\nexample_cluster = mongodbatlas.StreamConnection(\"example-cluster\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    connection_name=\"ClusterConnection\",\n    type=\"Cluster\",\n    cluster_name=cluster_name,\n    db_role_to_execute={\n        \"role\": \"atlasAdmin\",\n        \"type\": \"BUILT_IN\",\n    })\nexample_kafka = mongodbatlas.StreamConnection(\"example-kafka\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    connection_name=\"KafkaPlaintextConnection\",\n    type=\"Kafka\",\n    authentication={\n        \"mechanism\": \"PLAIN\",\n        \"username\": kafka_username,\n        \"password\": kafka_password,\n    },\n    bootstrap_servers=\"localhost:9092,localhost:9092\",\n    config={\n        \"auto.offset.reset\": \"earliest\",\n    },\n    security={\n        \"protocol\": \"SASL_PLAINTEXT\",\n    })\nstream_processor_sample_example = mongodbatlas.StreamProcessor(\"stream-processor-sample-example\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    processor_name=\"sampleProcessorName\",\n    pipeline=json.dumps([\n        {\n            \"$source\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-sample\"][\"connectionName\"],\n            },\n        },\n        {\n            \"$emit\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n                \"db\": \"sample\",\n                \"coll\": \"solar\",\n                \"timeseries\": {\n                    \"timeField\": \"_ts\",\n                },\n            },\n        },\n    ]),\n    state=\"STARTED\",\n    tier=\"SP30\")\nstream_processor_cluster_to_kafka_example = mongodbatlas.StreamProcessor(\"stream-processor-cluster-to-kafka-example\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    processor_name=\"clusterProcessorName\",\n    pipeline=json.dumps([\n        {\n            \"$source\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n            },\n        },\n        {\n            \"$emit\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-kafka\"][\"connectionName\"],\n                \"topic\": \"topic_from_cluster\",\n            },\n        },\n    ]),\n    state=\"CREATED\")\nstream_processor_kafka_to_cluster_example = mongodbatlas.StreamProcessor(\"stream-processor-kafka-to-cluster-example\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    processor_name=\"kafkaProcessorName\",\n    pipeline=json.dumps([\n        {\n            \"$source\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-kafka\"][\"connectionName\"],\n                \"topic\": \"topic_source\",\n            },\n        },\n        {\n            \"$emit\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n                \"db\": \"kafka\",\n                \"coll\": \"topic_source\",\n                \"timeseries\": {\n                    \"timeField\": \"ts\",\n                },\n            },\n        },\n    ]),\n    state=\"CREATED\",\n    options={\n        \"dlq\": {\n            \"coll\": \"exampleColumn\",\n            \"connection_name\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n            \"db\": \"exampleDb\",\n        },\n    })\nexample_stream_processors = example.instance_name.apply(lambda instance_name: mongodbatlas.get_stream_processors_output(project_id=project_id,\n    workspace_name=instance_name))\nexample_stream_processor = pulumi.Output.all(\n    instance_name=example.instance_name,\n    processor_name=stream_processor_sample_example.processor_name\n).apply(lambda resolved_outputs: mongodbatlas.get_stream_processor_output(project_id=project_id,\n    workspace_name=resolved_outputs['instance_name'],\n    processor_name=resolved_outputs['processor_name']))\n\npulumi.export(\"streamProcessorsState\", example_stream_processor.state)\npulumi.export(\"streamProcessorsResults\", example_stream_processors.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.StreamInstance(\"example\", new()\n    {\n        ProjectId = projectId,\n        InstanceName = \"InstanceName\",\n        DataProcessRegion = new Mongodbatlas.Inputs.StreamInstanceDataProcessRegionArgs\n        {\n            Region = \"VIRGINIA_USA\",\n            CloudProvider = \"AWS\",\n        },\n    });\n\n    var example_sample = new Mongodbatlas.StreamConnection(\"example-sample\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ConnectionName = \"sample_stream_solar\",\n        Type = \"Sample\",\n    });\n\n    var example_cluster = new Mongodbatlas.StreamConnection(\"example-cluster\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ConnectionName = \"ClusterConnection\",\n        Type = \"Cluster\",\n        ClusterName = clusterName,\n        DbRoleToExecute = new Mongodbatlas.Inputs.StreamConnectionDbRoleToExecuteArgs\n        {\n            Role = \"atlasAdmin\",\n            Type = \"BUILT_IN\",\n        },\n    });\n\n    var example_kafka = new Mongodbatlas.StreamConnection(\"example-kafka\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ConnectionName = \"KafkaPlaintextConnection\",\n        Type = \"Kafka\",\n        Authentication = new Mongodbatlas.Inputs.StreamConnectionAuthenticationArgs\n        {\n            Mechanism = \"PLAIN\",\n            Username = kafkaUsername,\n            Password = kafkaPassword,\n        },\n        BootstrapServers = \"localhost:9092,localhost:9092\",\n        Config = \n        {\n            { \"auto.offset.reset\", \"earliest\" },\n        },\n        Security = new Mongodbatlas.Inputs.StreamConnectionSecurityArgs\n        {\n            Protocol = \"SASL_PLAINTEXT\",\n        },\n    });\n\n    var stream_processor_sample_example = new Mongodbatlas.StreamProcessor(\"stream-processor-sample-example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = \"sampleProcessorName\",\n        Pipeline = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$source\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_sample.ConnectionName,\n                },\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$emit\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                    [\"db\"] = \"sample\",\n                    [\"coll\"] = \"solar\",\n                    [\"timeseries\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"timeField\"] = \"_ts\",\n                    },\n                },\n            },\n        }),\n        State = \"STARTED\",\n        Tier = \"SP30\",\n    });\n\n    var stream_processor_cluster_to_kafka_example = new Mongodbatlas.StreamProcessor(\"stream-processor-cluster-to-kafka-example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = \"clusterProcessorName\",\n        Pipeline = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$source\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                },\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$emit\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_kafka.ConnectionName,\n                    [\"topic\"] = \"topic_from_cluster\",\n                },\n            },\n        }),\n        State = \"CREATED\",\n    });\n\n    var stream_processor_kafka_to_cluster_example = new Mongodbatlas.StreamProcessor(\"stream-processor-kafka-to-cluster-example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = \"kafkaProcessorName\",\n        Pipeline = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$source\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_kafka.ConnectionName,\n                    [\"topic\"] = \"topic_source\",\n                },\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$emit\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                    [\"db\"] = \"kafka\",\n                    [\"coll\"] = \"topic_source\",\n                    [\"timeseries\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"timeField\"] = \"ts\",\n                    },\n                },\n            },\n        }),\n        State = \"CREATED\",\n        Options = new Mongodbatlas.Inputs.StreamProcessorOptionsArgs\n        {\n            Dlq = new Mongodbatlas.Inputs.StreamProcessorOptionsDlqArgs\n            {\n                Coll = \"exampleColumn\",\n                ConnectionName = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                Db = \"exampleDb\",\n            },\n        },\n    });\n\n    var example_stream_processors = Mongodbatlas.GetStreamProcessors.Invoke(new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n    });\n\n    var example_stream_processor = Mongodbatlas.GetStreamProcessor.Invoke(new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = stream_processor_sample_example.ProcessorName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"streamProcessorsState\"] = example_stream_processor.Apply(example_stream_processor =\u003e example_stream_processor.Apply(getStreamProcessorResult =\u003e getStreamProcessorResult.State)),\n        [\"streamProcessorsResults\"] = example_stream_processors.Apply(example_stream_processors =\u003e example_stream_processors.Apply(getStreamProcessorsResult =\u003e getStreamProcessorsResult.Results)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.NewStreamInstance(ctx, \"example\", \u0026mongodbatlas.StreamInstanceArgs{\n\t\t\tProjectId:    pulumi.Any(projectId),\n\t\t\tInstanceName: pulumi.String(\"InstanceName\"),\n\t\t\tDataProcessRegion: \u0026mongodbatlas.StreamInstanceDataProcessRegionArgs{\n\t\t\t\tRegion:        pulumi.String(\"VIRGINIA_USA\"),\n\t\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewStreamConnection(ctx, \"example-sample\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.InstanceName,\n\t\t\tConnectionName: pulumi.String(\"sample_stream_solar\"),\n\t\t\tType:           pulumi.String(\"Sample\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewStreamConnection(ctx, \"example-cluster\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.InstanceName,\n\t\t\tConnectionName: pulumi.String(\"ClusterConnection\"),\n\t\t\tType:           pulumi.String(\"Cluster\"),\n\t\t\tClusterName:    pulumi.Any(clusterName),\n\t\t\tDbRoleToExecute: \u0026mongodbatlas.StreamConnectionDbRoleToExecuteArgs{\n\t\t\t\tRole: pulumi.String(\"atlasAdmin\"),\n\t\t\t\tType: pulumi.String(\"BUILT_IN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewStreamConnection(ctx, \"example-kafka\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.InstanceName,\n\t\t\tConnectionName: pulumi.String(\"KafkaPlaintextConnection\"),\n\t\t\tType:           pulumi.String(\"Kafka\"),\n\t\t\tAuthentication: \u0026mongodbatlas.StreamConnectionAuthenticationArgs{\n\t\t\t\tMechanism: pulumi.String(\"PLAIN\"),\n\t\t\t\tUsername:  pulumi.Any(kafkaUsername),\n\t\t\t\tPassword:  pulumi.Any(kafkaPassword),\n\t\t\t},\n\t\t\tBootstrapServers: pulumi.String(\"localhost:9092,localhost:9092\"),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"auto.offset.reset\": pulumi.String(\"earliest\"),\n\t\t\t},\n\t\t\tSecurity: \u0026mongodbatlas.StreamConnectionSecurityArgs{\n\t\t\t\tProtocol: pulumi.String(\"SASL_PLAINTEXT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$source\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleSample.ConnectionName,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$emit\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleCluster.ConnectionName,\n\t\t\t\t\t\"db\":             \"sample\",\n\t\t\t\t\t\"coll\":           \"solar\",\n\t\t\t\t\t\"timeseries\": map[string]interface{}{\n\t\t\t\t\t\t\"timeField\": \"_ts\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tstream_processor_sample_example, err := mongodbatlas.NewStreamProcessor(ctx, \"stream-processor-sample-example\", \u0026mongodbatlas.StreamProcessorArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: example.InstanceName,\n\t\t\tProcessorName: pulumi.String(\"sampleProcessorName\"),\n\t\t\tPipeline:      pulumi.String(json0),\n\t\t\tState:         pulumi.String(\"STARTED\"),\n\t\t\tTier:          pulumi.String(\"SP30\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$source\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleCluster.ConnectionName,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$emit\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleKafka.ConnectionName,\n\t\t\t\t\t\"topic\":          \"topic_from_cluster\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = mongodbatlas.NewStreamProcessor(ctx, \"stream-processor-cluster-to-kafka-example\", \u0026mongodbatlas.StreamProcessorArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: example.InstanceName,\n\t\t\tProcessorName: pulumi.String(\"clusterProcessorName\"),\n\t\t\tPipeline:      pulumi.String(json1),\n\t\t\tState:         pulumi.String(\"CREATED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON2, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$source\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleKafka.ConnectionName,\n\t\t\t\t\t\"topic\":          \"topic_source\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$emit\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleCluster.ConnectionName,\n\t\t\t\t\t\"db\":             \"kafka\",\n\t\t\t\t\t\"coll\":           \"topic_source\",\n\t\t\t\t\t\"timeseries\": map[string]interface{}{\n\t\t\t\t\t\t\"timeField\": \"ts\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson2 := string(tmpJSON2)\n\t\t_, err = mongodbatlas.NewStreamProcessor(ctx, \"stream-processor-kafka-to-cluster-example\", \u0026mongodbatlas.StreamProcessorArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: example.InstanceName,\n\t\t\tProcessorName: pulumi.String(\"kafkaProcessorName\"),\n\t\t\tPipeline:      pulumi.String(json2),\n\t\t\tState:         pulumi.String(\"CREATED\"),\n\t\t\tOptions: \u0026mongodbatlas.StreamProcessorOptionsArgs{\n\t\t\t\tDlq: \u0026mongodbatlas.StreamProcessorOptionsDlqArgs{\n\t\t\t\t\tColl:           pulumi.String(\"exampleColumn\"),\n\t\t\t\t\tConnectionName: pulumi.Any(mongodbatlasStreamConnection.ExampleCluster.ConnectionName),\n\t\t\t\t\tDb:             pulumi.String(\"exampleDb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_stream_processors := example.InstanceName.ApplyT(func(instanceName string) (mongodbatlas.GetStreamProcessorsResult, error) {\n\t\t\treturn mongodbatlas.GetStreamProcessorsResult(interface{}(mongodbatlas.LookupStreamProcessors(ctx, \u0026mongodbatlas.LookupStreamProcessorsArgs{\n\t\t\t\tProjectId:     projectId,\n\t\t\t\tWorkspaceName: pulumi.StringRef(pulumi.StringRef(instanceName)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetStreamProcessorsResultOutput)\n\t\texample_stream_processor := pulumi.All(example.InstanceName, stream_processor_sample_example.ProcessorName).ApplyT(func(_args []interface{}) (mongodbatlas.GetStreamProcessorResult, error) {\n\t\t\tinstanceName := _args[0].(string)\n\t\t\tprocessorName := _args[1].(string)\n\t\t\treturn mongodbatlas.GetStreamProcessorResult(interface{}(mongodbatlas.LookupStreamProcessor(ctx, \u0026mongodbatlas.LookupStreamProcessorArgs{\n\t\t\t\tProjectId:     projectId,\n\t\t\t\tWorkspaceName: pulumi.StringRef(pulumi.StringRef(instanceName)),\n\t\t\t\tProcessorName: processorName,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetStreamProcessorResultOutput)\n\t\tctx.Export(\"streamProcessorsState\", example_stream_processor.ApplyT(func(example_stream_processor mongodbatlas.GetStreamProcessorResult) (*string, error) {\n\t\t\treturn \u0026example_stream_processor.State, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"streamProcessorsResults\", example_stream_processors.ApplyT(func(example_stream_processors mongodbatlas.GetStreamProcessorsResult) ([]mongodbatlas.GetStreamProcessorsResult, error) {\n\t\t\treturn []mongodbatlas.GetStreamProcessorsResult(example_stream_processors.Results), nil\n\t\t}).([]mongodbatlas.GetStreamProcessorsResultOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamInstance;\nimport com.pulumi.mongodbatlas.StreamInstanceArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;\nimport com.pulumi.mongodbatlas.StreamProcessor;\nimport com.pulumi.mongodbatlas.StreamProcessorArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;\nimport com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new StreamInstance(\"example\", StreamInstanceArgs.builder()\n            .projectId(projectId)\n            .instanceName(\"InstanceName\")\n            .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()\n                .region(\"VIRGINIA_USA\")\n                .cloudProvider(\"AWS\")\n                .build())\n            .build());\n\n        var example_sample = new StreamConnection(\"example-sample\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .connectionName(\"sample_stream_solar\")\n            .type(\"Sample\")\n            .build());\n\n        var example_cluster = new StreamConnection(\"example-cluster\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .connectionName(\"ClusterConnection\")\n            .type(\"Cluster\")\n            .clusterName(clusterName)\n            .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()\n                .role(\"atlasAdmin\")\n                .type(\"BUILT_IN\")\n                .build())\n            .build());\n\n        var example_kafka = new StreamConnection(\"example-kafka\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .connectionName(\"KafkaPlaintextConnection\")\n            .type(\"Kafka\")\n            .authentication(StreamConnectionAuthenticationArgs.builder()\n                .mechanism(\"PLAIN\")\n                .username(kafkaUsername)\n                .password(kafkaPassword)\n                .build())\n            .bootstrapServers(\"localhost:9092,localhost:9092\")\n            .config(Map.of(\"auto.offset.reset\", \"earliest\"))\n            .security(StreamConnectionSecurityArgs.builder()\n                .protocol(\"SASL_PLAINTEXT\")\n                .build())\n            .build());\n\n        var stream_processor_sample_example = new StreamProcessor(\"stream-processor-sample-example\", StreamProcessorArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .processorName(\"sampleProcessorName\")\n            .pipeline(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"$source\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-sample().connectionName())\n                        ))\n                    ), \n                    jsonObject(\n                        jsonProperty(\"$emit\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-cluster().connectionName()),\n                            jsonProperty(\"db\", \"sample\"),\n                            jsonProperty(\"coll\", \"solar\"),\n                            jsonProperty(\"timeseries\", jsonObject(\n                                jsonProperty(\"timeField\", \"_ts\")\n                            ))\n                        ))\n                    )\n                )))\n            .state(\"STARTED\")\n            .tier(\"SP30\")\n            .build());\n\n        var stream_processor_cluster_to_kafka_example = new StreamProcessor(\"stream-processor-cluster-to-kafka-example\", StreamProcessorArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .processorName(\"clusterProcessorName\")\n            .pipeline(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"$source\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-cluster().connectionName())\n                        ))\n                    ), \n                    jsonObject(\n                        jsonProperty(\"$emit\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-kafka().connectionName()),\n                            jsonProperty(\"topic\", \"topic_from_cluster\")\n                        ))\n                    )\n                )))\n            .state(\"CREATED\")\n            .build());\n\n        var stream_processor_kafka_to_cluster_example = new StreamProcessor(\"stream-processor-kafka-to-cluster-example\", StreamProcessorArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .processorName(\"kafkaProcessorName\")\n            .pipeline(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"$source\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-kafka().connectionName()),\n                            jsonProperty(\"topic\", \"topic_source\")\n                        ))\n                    ), \n                    jsonObject(\n                        jsonProperty(\"$emit\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-cluster().connectionName()),\n                            jsonProperty(\"db\", \"kafka\"),\n                            jsonProperty(\"coll\", \"topic_source\"),\n                            jsonProperty(\"timeseries\", jsonObject(\n                                jsonProperty(\"timeField\", \"ts\")\n                            ))\n                        ))\n                    )\n                )))\n            .state(\"CREATED\")\n            .options(StreamProcessorOptionsArgs.builder()\n                .dlq(StreamProcessorOptionsDlqArgs.builder()\n                    .coll(\"exampleColumn\")\n                    .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())\n                    .db(\"exampleDb\")\n                    .build())\n                .build())\n            .build());\n\n        final var example-stream-processors = example.instanceName().applyValue(_instanceName -\u003e MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()\n            .projectId(projectId)\n            .workspaceName(_instanceName)\n            .build()));\n\n        final var example-stream-processor = Output.tuple(example.instanceName(), stream_processor_sample_example.processorName()).applyValue(values -\u003e {\n            var instanceName = values.t1;\n            var processorName = values.t2;\n            return MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()\n                .projectId(projectId)\n                .workspaceName(instanceName)\n                .processorName(processorName)\n                .build());\n        });\n\n        ctx.export(\"streamProcessorsState\", example_stream_processor.applyValue(_example_stream_processor -\u003e _example_stream_processor.state()));\n        ctx.export(\"streamProcessorsResults\", example_stream_processors.applyValue(_example_stream_processors -\u003e _example_stream_processors.results()));\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:StreamInstance\n    properties:\n      projectId: ${projectId}\n      instanceName: InstanceName\n      dataProcessRegion:\n        region: VIRGINIA_USA\n        cloudProvider: AWS\n  example-sample:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      connectionName: sample_stream_solar\n      type: Sample\n  example-cluster:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      connectionName: ClusterConnection\n      type: Cluster\n      clusterName: ${clusterName}\n      dbRoleToExecute:\n        role: atlasAdmin\n        type: BUILT_IN\n  example-kafka:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      connectionName: KafkaPlaintextConnection\n      type: Kafka\n      authentication:\n        mechanism: PLAIN\n        username: ${kafkaUsername}\n        password: ${kafkaPassword}\n      bootstrapServers: localhost:9092,localhost:9092\n      config:\n        auto.offset.reset: earliest\n      security:\n        protocol: SASL_PLAINTEXT\n  stream-processor-sample-example:\n    type: mongodbatlas:StreamProcessor\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      processorName: sampleProcessorName\n      pipeline:\n        fn::toJSON:\n          - $source:\n              connectionName: ${mongodbatlasStreamConnection\"example-sample\"[%!s(MISSING)].connectionName}\n          - $emit:\n              connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n              db: sample\n              coll: solar\n              timeseries:\n                timeField: _ts\n      state: STARTED\n      tier: SP30\n  stream-processor-cluster-to-kafka-example:\n    type: mongodbatlas:StreamProcessor\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      processorName: clusterProcessorName\n      pipeline:\n        fn::toJSON:\n          - $source:\n              connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n          - $emit:\n              connectionName: ${mongodbatlasStreamConnection\"example-kafka\"[%!s(MISSING)].connectionName}\n              topic: topic_from_cluster\n      state: CREATED\n  stream-processor-kafka-to-cluster-example:\n    type: mongodbatlas:StreamProcessor\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      processorName: kafkaProcessorName\n      pipeline:\n        fn::toJSON:\n          - $source:\n              connectionName: ${mongodbatlasStreamConnection\"example-kafka\"[%!s(MISSING)].connectionName}\n              topic: topic_source\n          - $emit:\n              connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n              db: kafka\n              coll: topic_source\n              timeseries:\n                timeField: ts\n      state: CREATED\n      options:\n        dlq:\n          coll: exampleColumn\n          connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n          db: exampleDb\nvariables:\n  example-stream-processors:\n    fn::invoke:\n      function: mongodbatlas:getStreamProcessors\n      arguments:\n        projectId: ${projectId}\n        workspaceName: ${example.instanceName}\n  example-stream-processor:\n    fn::invoke:\n      function: mongodbatlas:getStreamProcessor\n      arguments:\n        projectId: ${projectId}\n        workspaceName: ${example.instanceName}\n        processorName: ${[\"stream-processor-sample-example\"].processorName}\noutputs:\n  # example making use of data sources\n  streamProcessorsState: ${[\"example-stream-processor\"].state}\n  streamProcessorsResults: ${[\"example-stream-processors\"].results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStreamProcessor.\n","properties":{"instanceName":{"type":"string","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"processorName":{"type":"string","description":"Label that identifies the stream processor.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"workspaceName":{"type":"string"}},"type":"object","required":["processorName","projectId"]},"outputs":{"description":"A collection of values returned by getStreamProcessor.\n","properties":{"id":{"type":"string"},"instanceName":{"deprecationMessage":"This parameter is deprecated. Please transition to workspace_name.","type":"string"},"options":{"$ref":"#/types/mongodbatlas:index/getStreamProcessorOptions:getStreamProcessorOptions"},"pipeline":{"type":"string"},"processorName":{"description":"Label that identifies the stream processor.\n","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"state":{"type":"string"},"stats":{"type":"string"},"tier":{"type":"string"},"workspaceName":{"type":"string"}},"required":["id","options","pipeline","processorName","projectId","state","stats","tier"],"type":"object"}},"mongodbatlas:index/getStreamProcessors:getStreamProcessors":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamProcessors`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamProcessors`\" pulumi-lang-go=\"`getStreamProcessors`\" pulumi-lang-python=\"`get_stream_processors`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamProcessors`\" pulumi-lang-java=\"`mongodbatlas.getStreamProcessors`\"\u003e`mongodbatlas.getStreamProcessors`\u003c/span\u003e returns all stream processors in a stream instance.\n\n## Example Usage\n\n### S\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = new mongodbatlas.StreamInstance(\"example\", {\n    projectId: projectId,\n    instanceName: \"InstanceName\",\n    dataProcessRegion: {\n        region: \"VIRGINIA_USA\",\n        cloudProvider: \"AWS\",\n    },\n});\nconst example_sample = new mongodbatlas.StreamConnection(\"example-sample\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    connectionName: \"sample_stream_solar\",\n    type: \"Sample\",\n});\nconst example_cluster = new mongodbatlas.StreamConnection(\"example-cluster\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    connectionName: \"ClusterConnection\",\n    type: \"Cluster\",\n    clusterName: clusterName,\n    dbRoleToExecute: {\n        role: \"atlasAdmin\",\n        type: \"BUILT_IN\",\n    },\n});\nconst example_kafka = new mongodbatlas.StreamConnection(\"example-kafka\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    connectionName: \"KafkaPlaintextConnection\",\n    type: \"Kafka\",\n    authentication: {\n        mechanism: \"PLAIN\",\n        username: kafkaUsername,\n        password: kafkaPassword,\n    },\n    bootstrapServers: \"localhost:9092,localhost:9092\",\n    config: {\n        \"auto.offset.reset\": \"earliest\",\n    },\n    security: {\n        protocol: \"SASL_PLAINTEXT\",\n    },\n});\nconst stream_processor_sample_example = new mongodbatlas.StreamProcessor(\"stream-processor-sample-example\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    processorName: \"sampleProcessorName\",\n    pipeline: JSON.stringify([\n        {\n            $source: {\n                connectionName: mongodbatlasStreamConnection[\"example-sample\"].connectionName,\n            },\n        },\n        {\n            $emit: {\n                connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n                db: \"sample\",\n                coll: \"solar\",\n                timeseries: {\n                    timeField: \"_ts\",\n                },\n            },\n        },\n    ]),\n    state: \"STARTED\",\n    tier: \"SP30\",\n});\nconst stream_processor_cluster_to_kafka_example = new mongodbatlas.StreamProcessor(\"stream-processor-cluster-to-kafka-example\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    processorName: \"clusterProcessorName\",\n    pipeline: JSON.stringify([\n        {\n            $source: {\n                connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n            },\n        },\n        {\n            $emit: {\n                connectionName: mongodbatlasStreamConnection[\"example-kafka\"].connectionName,\n                topic: \"topic_from_cluster\",\n            },\n        },\n    ]),\n    state: \"CREATED\",\n});\nconst stream_processor_kafka_to_cluster_example = new mongodbatlas.StreamProcessor(\"stream-processor-kafka-to-cluster-example\", {\n    projectId: projectId,\n    workspaceName: example.instanceName,\n    processorName: \"kafkaProcessorName\",\n    pipeline: JSON.stringify([\n        {\n            $source: {\n                connectionName: mongodbatlasStreamConnection[\"example-kafka\"].connectionName,\n                topic: \"topic_source\",\n            },\n        },\n        {\n            $emit: {\n                connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n                db: \"kafka\",\n                coll: \"topic_source\",\n                timeseries: {\n                    timeField: \"ts\",\n                },\n            },\n        },\n    ]),\n    state: \"CREATED\",\n    options: {\n        dlq: {\n            coll: \"exampleColumn\",\n            connectionName: mongodbatlasStreamConnection[\"example-cluster\"].connectionName,\n            db: \"exampleDb\",\n        },\n    },\n});\nconst example_stream_processors = example.instanceName.apply(instanceName =\u003e mongodbatlas.getStreamProcessorsOutput({\n    projectId: projectId,\n    workspaceName: instanceName,\n}));\nconst example_stream_processor = pulumi.all([example.instanceName, stream_processor_sample_example.processorName]).apply(([instanceName, processorName]) =\u003e mongodbatlas.getStreamProcessorOutput({\n    projectId: projectId,\n    workspaceName: instanceName,\n    processorName: processorName,\n}));\nexport const streamProcessorsState = example_stream_processor.apply(example_stream_processor =\u003e example_stream_processor.state);\nexport const streamProcessorsResults = example_stream_processors.apply(example_stream_processors =\u003e example_stream_processors.results);\n```\n```python\nimport pulumi\nimport json\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.StreamInstance(\"example\",\n    project_id=project_id,\n    instance_name=\"InstanceName\",\n    data_process_region={\n        \"region\": \"VIRGINIA_USA\",\n        \"cloud_provider\": \"AWS\",\n    })\nexample_sample = mongodbatlas.StreamConnection(\"example-sample\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    connection_name=\"sample_stream_solar\",\n    type=\"Sample\")\nexample_cluster = mongodbatlas.StreamConnection(\"example-cluster\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    connection_name=\"ClusterConnection\",\n    type=\"Cluster\",\n    cluster_name=cluster_name,\n    db_role_to_execute={\n        \"role\": \"atlasAdmin\",\n        \"type\": \"BUILT_IN\",\n    })\nexample_kafka = mongodbatlas.StreamConnection(\"example-kafka\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    connection_name=\"KafkaPlaintextConnection\",\n    type=\"Kafka\",\n    authentication={\n        \"mechanism\": \"PLAIN\",\n        \"username\": kafka_username,\n        \"password\": kafka_password,\n    },\n    bootstrap_servers=\"localhost:9092,localhost:9092\",\n    config={\n        \"auto.offset.reset\": \"earliest\",\n    },\n    security={\n        \"protocol\": \"SASL_PLAINTEXT\",\n    })\nstream_processor_sample_example = mongodbatlas.StreamProcessor(\"stream-processor-sample-example\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    processor_name=\"sampleProcessorName\",\n    pipeline=json.dumps([\n        {\n            \"$source\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-sample\"][\"connectionName\"],\n            },\n        },\n        {\n            \"$emit\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n                \"db\": \"sample\",\n                \"coll\": \"solar\",\n                \"timeseries\": {\n                    \"timeField\": \"_ts\",\n                },\n            },\n        },\n    ]),\n    state=\"STARTED\",\n    tier=\"SP30\")\nstream_processor_cluster_to_kafka_example = mongodbatlas.StreamProcessor(\"stream-processor-cluster-to-kafka-example\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    processor_name=\"clusterProcessorName\",\n    pipeline=json.dumps([\n        {\n            \"$source\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n            },\n        },\n        {\n            \"$emit\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-kafka\"][\"connectionName\"],\n                \"topic\": \"topic_from_cluster\",\n            },\n        },\n    ]),\n    state=\"CREATED\")\nstream_processor_kafka_to_cluster_example = mongodbatlas.StreamProcessor(\"stream-processor-kafka-to-cluster-example\",\n    project_id=project_id,\n    workspace_name=example.instance_name,\n    processor_name=\"kafkaProcessorName\",\n    pipeline=json.dumps([\n        {\n            \"$source\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-kafka\"][\"connectionName\"],\n                \"topic\": \"topic_source\",\n            },\n        },\n        {\n            \"$emit\": {\n                \"connectionName\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n                \"db\": \"kafka\",\n                \"coll\": \"topic_source\",\n                \"timeseries\": {\n                    \"timeField\": \"ts\",\n                },\n            },\n        },\n    ]),\n    state=\"CREATED\",\n    options={\n        \"dlq\": {\n            \"coll\": \"exampleColumn\",\n            \"connection_name\": mongodbatlas_stream_connection[\"example-cluster\"][\"connectionName\"],\n            \"db\": \"exampleDb\",\n        },\n    })\nexample_stream_processors = example.instance_name.apply(lambda instance_name: mongodbatlas.get_stream_processors_output(project_id=project_id,\n    workspace_name=instance_name))\nexample_stream_processor = pulumi.Output.all(\n    instance_name=example.instance_name,\n    processor_name=stream_processor_sample_example.processor_name\n).apply(lambda resolved_outputs: mongodbatlas.get_stream_processor_output(project_id=project_id,\n    workspace_name=resolved_outputs['instance_name'],\n    processor_name=resolved_outputs['processor_name']))\n\npulumi.export(\"streamProcessorsState\", example_stream_processor.state)\npulumi.export(\"streamProcessorsResults\", example_stream_processors.results)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new Mongodbatlas.StreamInstance(\"example\", new()\n    {\n        ProjectId = projectId,\n        InstanceName = \"InstanceName\",\n        DataProcessRegion = new Mongodbatlas.Inputs.StreamInstanceDataProcessRegionArgs\n        {\n            Region = \"VIRGINIA_USA\",\n            CloudProvider = \"AWS\",\n        },\n    });\n\n    var example_sample = new Mongodbatlas.StreamConnection(\"example-sample\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ConnectionName = \"sample_stream_solar\",\n        Type = \"Sample\",\n    });\n\n    var example_cluster = new Mongodbatlas.StreamConnection(\"example-cluster\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ConnectionName = \"ClusterConnection\",\n        Type = \"Cluster\",\n        ClusterName = clusterName,\n        DbRoleToExecute = new Mongodbatlas.Inputs.StreamConnectionDbRoleToExecuteArgs\n        {\n            Role = \"atlasAdmin\",\n            Type = \"BUILT_IN\",\n        },\n    });\n\n    var example_kafka = new Mongodbatlas.StreamConnection(\"example-kafka\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ConnectionName = \"KafkaPlaintextConnection\",\n        Type = \"Kafka\",\n        Authentication = new Mongodbatlas.Inputs.StreamConnectionAuthenticationArgs\n        {\n            Mechanism = \"PLAIN\",\n            Username = kafkaUsername,\n            Password = kafkaPassword,\n        },\n        BootstrapServers = \"localhost:9092,localhost:9092\",\n        Config = \n        {\n            { \"auto.offset.reset\", \"earliest\" },\n        },\n        Security = new Mongodbatlas.Inputs.StreamConnectionSecurityArgs\n        {\n            Protocol = \"SASL_PLAINTEXT\",\n        },\n    });\n\n    var stream_processor_sample_example = new Mongodbatlas.StreamProcessor(\"stream-processor-sample-example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = \"sampleProcessorName\",\n        Pipeline = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$source\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_sample.ConnectionName,\n                },\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$emit\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                    [\"db\"] = \"sample\",\n                    [\"coll\"] = \"solar\",\n                    [\"timeseries\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"timeField\"] = \"_ts\",\n                    },\n                },\n            },\n        }),\n        State = \"STARTED\",\n        Tier = \"SP30\",\n    });\n\n    var stream_processor_cluster_to_kafka_example = new Mongodbatlas.StreamProcessor(\"stream-processor-cluster-to-kafka-example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = \"clusterProcessorName\",\n        Pipeline = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$source\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                },\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$emit\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_kafka.ConnectionName,\n                    [\"topic\"] = \"topic_from_cluster\",\n                },\n            },\n        }),\n        State = \"CREATED\",\n    });\n\n    var stream_processor_kafka_to_cluster_example = new Mongodbatlas.StreamProcessor(\"stream-processor-kafka-to-cluster-example\", new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = \"kafkaProcessorName\",\n        Pipeline = JsonSerializer.Serialize(new[]\n        {\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$source\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_kafka.ConnectionName,\n                    [\"topic\"] = \"topic_source\",\n                },\n            },\n            new Dictionary\u003cstring, object?\u003e\n            {\n                [\"$emit\"] = new Dictionary\u003cstring, object?\u003e\n                {\n                    [\"connectionName\"] = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                    [\"db\"] = \"kafka\",\n                    [\"coll\"] = \"topic_source\",\n                    [\"timeseries\"] = new Dictionary\u003cstring, object?\u003e\n                    {\n                        [\"timeField\"] = \"ts\",\n                    },\n                },\n            },\n        }),\n        State = \"CREATED\",\n        Options = new Mongodbatlas.Inputs.StreamProcessorOptionsArgs\n        {\n            Dlq = new Mongodbatlas.Inputs.StreamProcessorOptionsDlqArgs\n            {\n                Coll = \"exampleColumn\",\n                ConnectionName = mongodbatlasStreamConnection.Example_cluster.ConnectionName,\n                Db = \"exampleDb\",\n            },\n        },\n    });\n\n    var example_stream_processors = Mongodbatlas.GetStreamProcessors.Invoke(new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n    });\n\n    var example_stream_processor = Mongodbatlas.GetStreamProcessor.Invoke(new()\n    {\n        ProjectId = projectId,\n        WorkspaceName = example.InstanceName,\n        ProcessorName = stream_processor_sample_example.ProcessorName,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"streamProcessorsState\"] = example_stream_processor.Apply(example_stream_processor =\u003e example_stream_processor.Apply(getStreamProcessorResult =\u003e getStreamProcessorResult.State)),\n        [\"streamProcessorsResults\"] = example_stream_processors.Apply(example_stream_processors =\u003e example_stream_processors.Apply(getStreamProcessorsResult =\u003e getStreamProcessorsResult.Results)),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := mongodbatlas.NewStreamInstance(ctx, \"example\", \u0026mongodbatlas.StreamInstanceArgs{\n\t\t\tProjectId:    pulumi.Any(projectId),\n\t\t\tInstanceName: pulumi.String(\"InstanceName\"),\n\t\t\tDataProcessRegion: \u0026mongodbatlas.StreamInstanceDataProcessRegionArgs{\n\t\t\t\tRegion:        pulumi.String(\"VIRGINIA_USA\"),\n\t\t\t\tCloudProvider: pulumi.String(\"AWS\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewStreamConnection(ctx, \"example-sample\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.InstanceName,\n\t\t\tConnectionName: pulumi.String(\"sample_stream_solar\"),\n\t\t\tType:           pulumi.String(\"Sample\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewStreamConnection(ctx, \"example-cluster\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.InstanceName,\n\t\t\tConnectionName: pulumi.String(\"ClusterConnection\"),\n\t\t\tType:           pulumi.String(\"Cluster\"),\n\t\t\tClusterName:    pulumi.Any(clusterName),\n\t\t\tDbRoleToExecute: \u0026mongodbatlas.StreamConnectionDbRoleToExecuteArgs{\n\t\t\t\tRole: pulumi.String(\"atlasAdmin\"),\n\t\t\t\tType: pulumi.String(\"BUILT_IN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewStreamConnection(ctx, \"example-kafka\", \u0026mongodbatlas.StreamConnectionArgs{\n\t\t\tProjectId:      pulumi.Any(projectId),\n\t\t\tWorkspaceName:  example.InstanceName,\n\t\t\tConnectionName: pulumi.String(\"KafkaPlaintextConnection\"),\n\t\t\tType:           pulumi.String(\"Kafka\"),\n\t\t\tAuthentication: \u0026mongodbatlas.StreamConnectionAuthenticationArgs{\n\t\t\t\tMechanism: pulumi.String(\"PLAIN\"),\n\t\t\t\tUsername:  pulumi.Any(kafkaUsername),\n\t\t\t\tPassword:  pulumi.Any(kafkaPassword),\n\t\t\t},\n\t\t\tBootstrapServers: pulumi.String(\"localhost:9092,localhost:9092\"),\n\t\t\tConfig: pulumi.StringMap{\n\t\t\t\t\"auto.offset.reset\": pulumi.String(\"earliest\"),\n\t\t\t},\n\t\t\tSecurity: \u0026mongodbatlas.StreamConnectionSecurityArgs{\n\t\t\t\tProtocol: pulumi.String(\"SASL_PLAINTEXT\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$source\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleSample.ConnectionName,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$emit\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleCluster.ConnectionName,\n\t\t\t\t\t\"db\":             \"sample\",\n\t\t\t\t\t\"coll\":           \"solar\",\n\t\t\t\t\t\"timeseries\": map[string]interface{}{\n\t\t\t\t\t\t\"timeField\": \"_ts\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\tstream_processor_sample_example, err := mongodbatlas.NewStreamProcessor(ctx, \"stream-processor-sample-example\", \u0026mongodbatlas.StreamProcessorArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: example.InstanceName,\n\t\t\tProcessorName: pulumi.String(\"sampleProcessorName\"),\n\t\t\tPipeline:      pulumi.String(json0),\n\t\t\tState:         pulumi.String(\"STARTED\"),\n\t\t\tTier:          pulumi.String(\"SP30\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$source\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleCluster.ConnectionName,\n\t\t\t\t},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$emit\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleKafka.ConnectionName,\n\t\t\t\t\t\"topic\":          \"topic_from_cluster\",\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson1 := string(tmpJSON1)\n\t\t_, err = mongodbatlas.NewStreamProcessor(ctx, \"stream-processor-cluster-to-kafka-example\", \u0026mongodbatlas.StreamProcessorArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: example.InstanceName,\n\t\t\tProcessorName: pulumi.String(\"clusterProcessorName\"),\n\t\t\tPipeline:      pulumi.String(json1),\n\t\t\tState:         pulumi.String(\"CREATED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON2, err := json.Marshal([]interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$source\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleKafka.ConnectionName,\n\t\t\t\t\t\"topic\":          \"topic_source\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"$emit\": map[string]interface{}{\n\t\t\t\t\t\"connectionName\": mongodbatlasStreamConnection.ExampleCluster.ConnectionName,\n\t\t\t\t\t\"db\":             \"kafka\",\n\t\t\t\t\t\"coll\":           \"topic_source\",\n\t\t\t\t\t\"timeseries\": map[string]interface{}{\n\t\t\t\t\t\t\"timeField\": \"ts\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson2 := string(tmpJSON2)\n\t\t_, err = mongodbatlas.NewStreamProcessor(ctx, \"stream-processor-kafka-to-cluster-example\", \u0026mongodbatlas.StreamProcessorArgs{\n\t\t\tProjectId:     pulumi.Any(projectId),\n\t\t\tWorkspaceName: example.InstanceName,\n\t\t\tProcessorName: pulumi.String(\"kafkaProcessorName\"),\n\t\t\tPipeline:      pulumi.String(json2),\n\t\t\tState:         pulumi.String(\"CREATED\"),\n\t\t\tOptions: \u0026mongodbatlas.StreamProcessorOptionsArgs{\n\t\t\t\tDlq: \u0026mongodbatlas.StreamProcessorOptionsDlqArgs{\n\t\t\t\t\tColl:           pulumi.String(\"exampleColumn\"),\n\t\t\t\t\tConnectionName: pulumi.Any(mongodbatlasStreamConnection.ExampleCluster.ConnectionName),\n\t\t\t\t\tDb:             pulumi.String(\"exampleDb\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_stream_processors := example.InstanceName.ApplyT(func(instanceName string) (mongodbatlas.GetStreamProcessorsResult, error) {\n\t\t\treturn mongodbatlas.GetStreamProcessorsResult(interface{}(mongodbatlas.LookupStreamProcessors(ctx, \u0026mongodbatlas.LookupStreamProcessorsArgs{\n\t\t\t\tProjectId:     projectId,\n\t\t\t\tWorkspaceName: pulumi.StringRef(pulumi.StringRef(instanceName)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetStreamProcessorsResultOutput)\n\t\texample_stream_processor := pulumi.All(example.InstanceName, stream_processor_sample_example.ProcessorName).ApplyT(func(_args []interface{}) (mongodbatlas.GetStreamProcessorResult, error) {\n\t\t\tinstanceName := _args[0].(string)\n\t\t\tprocessorName := _args[1].(string)\n\t\t\treturn mongodbatlas.GetStreamProcessorResult(interface{}(mongodbatlas.LookupStreamProcessor(ctx, \u0026mongodbatlas.LookupStreamProcessorArgs{\n\t\t\t\tProjectId:     projectId,\n\t\t\t\tWorkspaceName: pulumi.StringRef(pulumi.StringRef(instanceName)),\n\t\t\t\tProcessorName: processorName,\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetStreamProcessorResultOutput)\n\t\tctx.Export(\"streamProcessorsState\", example_stream_processor.ApplyT(func(example_stream_processor mongodbatlas.GetStreamProcessorResult) (*string, error) {\n\t\t\treturn \u0026example_stream_processor.State, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"streamProcessorsResults\", example_stream_processors.ApplyT(func(example_stream_processors mongodbatlas.GetStreamProcessorsResult) ([]mongodbatlas.GetStreamProcessorsResult, error) {\n\t\t\treturn []mongodbatlas.GetStreamProcessorsResult(example_stream_processors.Results), nil\n\t\t}).([]mongodbatlas.GetStreamProcessorsResultOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.StreamInstance;\nimport com.pulumi.mongodbatlas.StreamInstanceArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamInstanceDataProcessRegionArgs;\nimport com.pulumi.mongodbatlas.StreamConnection;\nimport com.pulumi.mongodbatlas.StreamConnectionArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionDbRoleToExecuteArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionAuthenticationArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamConnectionSecurityArgs;\nimport com.pulumi.mongodbatlas.StreamProcessor;\nimport com.pulumi.mongodbatlas.StreamProcessorArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsArgs;\nimport com.pulumi.mongodbatlas.inputs.StreamProcessorOptionsDlqArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamProcessorsArgs;\nimport com.pulumi.mongodbatlas.inputs.GetStreamProcessorArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new StreamInstance(\"example\", StreamInstanceArgs.builder()\n            .projectId(projectId)\n            .instanceName(\"InstanceName\")\n            .dataProcessRegion(StreamInstanceDataProcessRegionArgs.builder()\n                .region(\"VIRGINIA_USA\")\n                .cloudProvider(\"AWS\")\n                .build())\n            .build());\n\n        var example_sample = new StreamConnection(\"example-sample\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .connectionName(\"sample_stream_solar\")\n            .type(\"Sample\")\n            .build());\n\n        var example_cluster = new StreamConnection(\"example-cluster\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .connectionName(\"ClusterConnection\")\n            .type(\"Cluster\")\n            .clusterName(clusterName)\n            .dbRoleToExecute(StreamConnectionDbRoleToExecuteArgs.builder()\n                .role(\"atlasAdmin\")\n                .type(\"BUILT_IN\")\n                .build())\n            .build());\n\n        var example_kafka = new StreamConnection(\"example-kafka\", StreamConnectionArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .connectionName(\"KafkaPlaintextConnection\")\n            .type(\"Kafka\")\n            .authentication(StreamConnectionAuthenticationArgs.builder()\n                .mechanism(\"PLAIN\")\n                .username(kafkaUsername)\n                .password(kafkaPassword)\n                .build())\n            .bootstrapServers(\"localhost:9092,localhost:9092\")\n            .config(Map.of(\"auto.offset.reset\", \"earliest\"))\n            .security(StreamConnectionSecurityArgs.builder()\n                .protocol(\"SASL_PLAINTEXT\")\n                .build())\n            .build());\n\n        var stream_processor_sample_example = new StreamProcessor(\"stream-processor-sample-example\", StreamProcessorArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .processorName(\"sampleProcessorName\")\n            .pipeline(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"$source\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-sample().connectionName())\n                        ))\n                    ), \n                    jsonObject(\n                        jsonProperty(\"$emit\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-cluster().connectionName()),\n                            jsonProperty(\"db\", \"sample\"),\n                            jsonProperty(\"coll\", \"solar\"),\n                            jsonProperty(\"timeseries\", jsonObject(\n                                jsonProperty(\"timeField\", \"_ts\")\n                            ))\n                        ))\n                    )\n                )))\n            .state(\"STARTED\")\n            .tier(\"SP30\")\n            .build());\n\n        var stream_processor_cluster_to_kafka_example = new StreamProcessor(\"stream-processor-cluster-to-kafka-example\", StreamProcessorArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .processorName(\"clusterProcessorName\")\n            .pipeline(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"$source\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-cluster().connectionName())\n                        ))\n                    ), \n                    jsonObject(\n                        jsonProperty(\"$emit\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-kafka().connectionName()),\n                            jsonProperty(\"topic\", \"topic_from_cluster\")\n                        ))\n                    )\n                )))\n            .state(\"CREATED\")\n            .build());\n\n        var stream_processor_kafka_to_cluster_example = new StreamProcessor(\"stream-processor-kafka-to-cluster-example\", StreamProcessorArgs.builder()\n            .projectId(projectId)\n            .workspaceName(example.instanceName())\n            .processorName(\"kafkaProcessorName\")\n            .pipeline(serializeJson(\n                jsonArray(\n                    jsonObject(\n                        jsonProperty(\"$source\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-kafka().connectionName()),\n                            jsonProperty(\"topic\", \"topic_source\")\n                        ))\n                    ), \n                    jsonObject(\n                        jsonProperty(\"$emit\", jsonObject(\n                            jsonProperty(\"connectionName\", mongodbatlasStreamConnection.example-cluster().connectionName()),\n                            jsonProperty(\"db\", \"kafka\"),\n                            jsonProperty(\"coll\", \"topic_source\"),\n                            jsonProperty(\"timeseries\", jsonObject(\n                                jsonProperty(\"timeField\", \"ts\")\n                            ))\n                        ))\n                    )\n                )))\n            .state(\"CREATED\")\n            .options(StreamProcessorOptionsArgs.builder()\n                .dlq(StreamProcessorOptionsDlqArgs.builder()\n                    .coll(\"exampleColumn\")\n                    .connectionName(mongodbatlasStreamConnection.example-cluster().connectionName())\n                    .db(\"exampleDb\")\n                    .build())\n                .build())\n            .build());\n\n        final var example-stream-processors = example.instanceName().applyValue(_instanceName -\u003e MongodbatlasFunctions.getStreamProcessors(GetStreamProcessorsArgs.builder()\n            .projectId(projectId)\n            .workspaceName(_instanceName)\n            .build()));\n\n        final var example-stream-processor = Output.tuple(example.instanceName(), stream_processor_sample_example.processorName()).applyValue(values -\u003e {\n            var instanceName = values.t1;\n            var processorName = values.t2;\n            return MongodbatlasFunctions.getStreamProcessor(GetStreamProcessorArgs.builder()\n                .projectId(projectId)\n                .workspaceName(instanceName)\n                .processorName(processorName)\n                .build());\n        });\n\n        ctx.export(\"streamProcessorsState\", example_stream_processor.applyValue(_example_stream_processor -\u003e _example_stream_processor.state()));\n        ctx.export(\"streamProcessorsResults\", example_stream_processors.applyValue(_example_stream_processors -\u003e _example_stream_processors.results()));\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: mongodbatlas:StreamInstance\n    properties:\n      projectId: ${projectId}\n      instanceName: InstanceName\n      dataProcessRegion:\n        region: VIRGINIA_USA\n        cloudProvider: AWS\n  example-sample:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      connectionName: sample_stream_solar\n      type: Sample\n  example-cluster:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      connectionName: ClusterConnection\n      type: Cluster\n      clusterName: ${clusterName}\n      dbRoleToExecute:\n        role: atlasAdmin\n        type: BUILT_IN\n  example-kafka:\n    type: mongodbatlas:StreamConnection\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      connectionName: KafkaPlaintextConnection\n      type: Kafka\n      authentication:\n        mechanism: PLAIN\n        username: ${kafkaUsername}\n        password: ${kafkaPassword}\n      bootstrapServers: localhost:9092,localhost:9092\n      config:\n        auto.offset.reset: earliest\n      security:\n        protocol: SASL_PLAINTEXT\n  stream-processor-sample-example:\n    type: mongodbatlas:StreamProcessor\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      processorName: sampleProcessorName\n      pipeline:\n        fn::toJSON:\n          - $source:\n              connectionName: ${mongodbatlasStreamConnection\"example-sample\"[%!s(MISSING)].connectionName}\n          - $emit:\n              connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n              db: sample\n              coll: solar\n              timeseries:\n                timeField: _ts\n      state: STARTED\n      tier: SP30\n  stream-processor-cluster-to-kafka-example:\n    type: mongodbatlas:StreamProcessor\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      processorName: clusterProcessorName\n      pipeline:\n        fn::toJSON:\n          - $source:\n              connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n          - $emit:\n              connectionName: ${mongodbatlasStreamConnection\"example-kafka\"[%!s(MISSING)].connectionName}\n              topic: topic_from_cluster\n      state: CREATED\n  stream-processor-kafka-to-cluster-example:\n    type: mongodbatlas:StreamProcessor\n    properties:\n      projectId: ${projectId}\n      workspaceName: ${example.instanceName}\n      processorName: kafkaProcessorName\n      pipeline:\n        fn::toJSON:\n          - $source:\n              connectionName: ${mongodbatlasStreamConnection\"example-kafka\"[%!s(MISSING)].connectionName}\n              topic: topic_source\n          - $emit:\n              connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n              db: kafka\n              coll: topic_source\n              timeseries:\n                timeField: ts\n      state: CREATED\n      options:\n        dlq:\n          coll: exampleColumn\n          connectionName: ${mongodbatlasStreamConnection\"example-cluster\"[%!s(MISSING)].connectionName}\n          db: exampleDb\nvariables:\n  example-stream-processors:\n    fn::invoke:\n      function: mongodbatlas:getStreamProcessors\n      arguments:\n        projectId: ${projectId}\n        workspaceName: ${example.instanceName}\n  example-stream-processor:\n    fn::invoke:\n      function: mongodbatlas:getStreamProcessor\n      arguments:\n        projectId: ${projectId}\n        workspaceName: ${example.instanceName}\n        processorName: ${[\"stream-processor-sample-example\"].processorName}\noutputs:\n  # example making use of data sources\n  streamProcessorsState: ${[\"example-stream-processor\"].state}\n  streamProcessorsResults: ${[\"example-stream-processors\"].results}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getStreamProcessors.\n","properties":{"instanceName":{"type":"string","deprecationMessage":"This parameter is deprecated. Please transition to workspace_name."},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n"},"workspaceName":{"type":"string"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getStreamProcessors.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"instanceName":{"deprecationMessage":"This parameter is deprecated. Please transition to workspace_name.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"results":{"items":{"$ref":"#/types/mongodbatlas:index/getStreamProcessorsResult:getStreamProcessorsResult"},"type":"array"},"workspaceName":{"type":"string"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getStreamWorkspace:getStreamWorkspace":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-go=\"`StreamWorkspace`\" pulumi-lang-python=\"`StreamWorkspace`\" pulumi-lang-yaml=\"`mongodbatlas.StreamWorkspace`\" pulumi-lang-java=\"`mongodbatlas.StreamWorkspace`\"\u003e`mongodbatlas.StreamWorkspace`\u003c/span\u003e describes a stream workspace that contains configurations for stream processing.\n\n\u003e **NOTE:** Use this data source for new configurations instead of \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamInstance`\" pulumi-lang-go=\"`StreamInstance`\" pulumi-lang-python=\"`StreamInstance`\" pulumi-lang-yaml=\"`mongodbatlas.StreamInstance`\" pulumi-lang-java=\"`mongodbatlas.StreamInstance`\"\u003e`mongodbatlas.StreamInstance`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst example = mongodbatlas.getStreamWorkspace({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n    workspaceName: \"\u003cWORKSPACE_NAME\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nexample = mongodbatlas.get_stream_workspace(project_id=\"\u003cPROJECT_ID\u003e\",\n    workspace_name=\"\u003cWORKSPACE_NAME\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Mongodbatlas.GetStreamWorkspace.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n        WorkspaceName = \"\u003cWORKSPACE_NAME\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupStreamWorkspace(ctx, \u0026mongodbatlas.LookupStreamWorkspaceArgs{\n\t\t\tProjectId:     \"\u003cPROJECT_ID\u003e\",\n\t\t\tWorkspaceName: \"\u003cWORKSPACE_NAME\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamWorkspaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = MongodbatlasFunctions.getStreamWorkspace(GetStreamWorkspaceArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .workspaceName(\"\u003cWORKSPACE_NAME\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: mongodbatlas:getStreamWorkspace\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n        workspaceName: \u003cWORKSPACE_NAME\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Migration from\u003cspan pulumi-lang-nodejs=\" streamInstance\n\" pulumi-lang-dotnet=\" StreamInstance\n\" pulumi-lang-go=\" streamInstance\n\" pulumi-lang-python=\" stream_instance\n\" pulumi-lang-yaml=\" streamInstance\n\" pulumi-lang-java=\" streamInstance\n\"\u003e stream_instance\n\u003c/span\u003e\nIf you're migrating from the deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.StreamInstance`\" pulumi-lang-dotnet=\"`mongodbatlas.StreamInstance`\" pulumi-lang-go=\"`StreamInstance`\" pulumi-lang-python=\"`StreamInstance`\" pulumi-lang-yaml=\"`mongodbatlas.StreamInstance`\" pulumi-lang-java=\"`mongodbatlas.StreamInstance`\"\u003e`mongodbatlas.StreamInstance`\u003c/span\u003e data source, see the Migration Guide: Stream Instance to Stream Workspace for step-by-step instructions and examples.\n","inputs":{"description":"A collection of arguments for invoking getStreamWorkspace.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"},"workspaceName":{"type":"string","description":"Label that identifies the stream workspace.\n"}},"type":"object","required":["projectId","workspaceName"]},"outputs":{"description":"A collection of values returned by getStreamWorkspace.\n","properties":{"dataProcessRegion":{"$ref":"#/types/mongodbatlas:index/getStreamWorkspaceDataProcessRegion:getStreamWorkspaceDataProcessRegion","description":"Defines the cloud service provider and region where MongoDB Cloud performs stream processing. See data process region.\n"},"hostnames":{"description":"List that contains the hostnames assigned to the stream workspace.\n","items":{"type":"string"},"type":"array"},"id":{"type":"string"},"projectId":{"type":"string"},"streamConfig":{"$ref":"#/types/mongodbatlas:index/getStreamWorkspaceStreamConfig:getStreamWorkspaceStreamConfig","description":"Defines the configuration options for an Atlas Stream Processing Instance. See stream config\n"},"workspaceName":{"type":"string"}},"required":["dataProcessRegion","hostnames","id","projectId","streamConfig","workspaceName"],"type":"object"}},"mongodbatlas:index/getStreamWorkspaces:getStreamWorkspaces":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamWorkspaces`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamWorkspaces`\" pulumi-lang-go=\"`getStreamWorkspaces`\" pulumi-lang-python=\"`get_stream_workspaces`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamWorkspaces`\" pulumi-lang-java=\"`mongodbatlas.getStreamWorkspaces`\"\u003e`mongodbatlas.getStreamWorkspaces`\u003c/span\u003e describes the stream workspaces defined in a project.\n\n\u003e **NOTE:** Use this data source for new configurations instead of \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-go=\"`getStreamInstances`\" pulumi-lang-python=\"`get_stream_instances`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-java=\"`mongodbatlas.getStreamInstances`\"\u003e`mongodbatlas.getStreamInstances`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = mongodbatlas.getStreamWorkspaces({\n    projectId: \"\u003cPROJECT_ID\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.get_stream_workspaces(project_id=\"\u003cPROJECT_ID\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = Mongodbatlas.GetStreamWorkspaces.Invoke(new()\n    {\n        ProjectId = \"\u003cPROJECT_ID\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mongodbatlas.LookupStreamWorkspaces(ctx, \u0026mongodbatlas.LookupStreamWorkspacesArgs{\n\t\t\tProjectId: \"\u003cPROJECT_ID\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetStreamWorkspacesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var test = MongodbatlasFunctions.getStreamWorkspaces(GetStreamWorkspacesArgs.builder()\n            .projectId(\"\u003cPROJECT_ID\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getStreamWorkspaces\n      arguments:\n        projectId: \u003cPROJECT_ID\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Migration from\u003cspan pulumi-lang-nodejs=\" streamInstances\n\" pulumi-lang-dotnet=\" StreamInstances\n\" pulumi-lang-go=\" streamInstances\n\" pulumi-lang-python=\" stream_instances\n\" pulumi-lang-yaml=\" streamInstances\n\" pulumi-lang-java=\" streamInstances\n\"\u003e stream_instances\n\u003c/span\u003e\nIf you're migrating from the deprecated \u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-dotnet=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-go=\"`getStreamInstances`\" pulumi-lang-python=\"`get_stream_instances`\" pulumi-lang-yaml=\"`mongodbatlas.getStreamInstances`\" pulumi-lang-java=\"`mongodbatlas.getStreamInstances`\"\u003e`mongodbatlas.getStreamInstances`\u003c/span\u003e data source, see the Migration Guide: Stream Instance to Stream Workspace for step-by-step instructions and examples.\n","inputs":{"description":"A collection of arguments for invoking getStreamWorkspaces.\n","properties":{"itemsPerPage":{"type":"integer","description":"Number of items that the response returns per page, up to a maximum of \u003cspan pulumi-lang-nodejs=\"`500`\" pulumi-lang-dotnet=\"`500`\" pulumi-lang-go=\"`500`\" pulumi-lang-python=\"`500`\" pulumi-lang-yaml=\"`500`\" pulumi-lang-java=\"`500`\"\u003e`500`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"},"pageNum":{"type":"integer","description":"Number of the page that displays the current set of the total objects that the response returns. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getStreamWorkspaces.\n","properties":{"id":{"deprecationMessage":"This parameter is deprecated.","type":"string"},"itemsPerPage":{"type":"integer"},"pageNum":{"type":"integer"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project.\n","type":"string"},"results":{"description":"A list where each element contains a Stream Workspace.\n","items":{"$ref":"#/types/mongodbatlas:index/getStreamWorkspacesResult:getStreamWorkspacesResult"},"type":"array"},"totalCount":{"description":"Count of the total number of items in the result set. The count might be greater than the number of objects in the results array if the entire result set is paginated.\n","type":"integer"}},"required":["id","projectId","results","totalCount"],"type":"object"}},"mongodbatlas:index/getTeam:getTeam":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.Team`\" pulumi-lang-dotnet=\"`mongodbatlas.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`mongodbatlas.Team`\" pulumi-lang-java=\"`mongodbatlas.Team`\"\u003e`mongodbatlas.Team`\u003c/span\u003e describes a Team. The resource requires your Organization ID, Project ID and Team ID.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find \u003cspan pulumi-lang-nodejs=\"`groupId`\" pulumi-lang-dotnet=\"`GroupId`\" pulumi-lang-go=\"`groupId`\" pulumi-lang-python=\"`group_id`\" pulumi-lang-yaml=\"`groupId`\" pulumi-lang-java=\"`groupId`\"\u003e`group_id`\u003c/span\u003e in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testTeam = new mongodbatlas.Team(\"test\", {\n    orgId: \"\u003cORGANIZATION-ID\u003e\",\n    name: \"myNewTeam\",\n    usernames: [\n        \"user1\",\n        \"user2\",\n        \"user3\",\n    ],\n});\nconst test = mongodbatlas.getTeamOutput({\n    orgId: testTeam.orgId,\n    teamId: testTeam.teamId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_team = mongodbatlas.Team(\"test\",\n    org_id=\"\u003cORGANIZATION-ID\u003e\",\n    name=\"myNewTeam\",\n    usernames=[\n        \"user1\",\n        \"user2\",\n        \"user3\",\n    ])\ntest = mongodbatlas.get_team_output(org_id=test_team.org_id,\n    team_id=test_team.team_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testTeam = new Mongodbatlas.Team(\"test\", new()\n    {\n        OrgId = \"\u003cORGANIZATION-ID\u003e\",\n        Name = \"myNewTeam\",\n        Usernames = new[]\n        {\n            \"user1\",\n            \"user2\",\n            \"user3\",\n        },\n    });\n\n    var test = Mongodbatlas.GetTeam.Invoke(new()\n    {\n        OrgId = testTeam.OrgId,\n        TeamId = testTeam.TeamId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestTeam, err := mongodbatlas.NewTeam(ctx, \"test\", \u0026mongodbatlas.TeamArgs{\n\t\t\tOrgId: pulumi.String(\"\u003cORGANIZATION-ID\u003e\"),\n\t\t\tName:  pulumi.String(\"myNewTeam\"),\n\t\t\tUsernames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"user1\"),\n\t\t\t\tpulumi.String(\"user2\"),\n\t\t\t\tpulumi.String(\"user3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupTeamOutput(ctx, mongodbatlas.GetTeamOutputArgs{\n\t\t\tOrgId:  testTeam.OrgId,\n\t\t\tTeamId: testTeam.TeamId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Team;\nimport com.pulumi.mongodbatlas.TeamArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetTeamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testTeam = new Team(\"testTeam\", TeamArgs.builder()\n            .orgId(\"\u003cORGANIZATION-ID\u003e\")\n            .name(\"myNewTeam\")\n            .usernames(            \n                \"user1\",\n                \"user2\",\n                \"user3\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getTeam(GetTeamArgs.builder()\n            .orgId(testTeam.orgId())\n            .teamId(testTeam.teamId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testTeam:\n    type: mongodbatlas:Team\n    name: test\n    properties:\n      orgId: \u003cORGANIZATION-ID\u003e\n      name: myNewTeam\n      usernames:\n        - user1\n        - user2\n        - user3\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getTeam\n      arguments:\n        orgId: ${testTeam.orgId}\n        teamId: ${testTeam.teamId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst test = new mongodbatlas.Team(\"test\", {\n    orgId: \"\u003cORGANIZATION-ID\u003e\",\n    name: \"myNewTeam\",\n    usernames: [\n        \"user1\",\n        \"user2\",\n        \"user3\",\n    ],\n});\nconst test2 = mongodbatlas.getTeamOutput({\n    orgId: test.orgId,\n    name: test.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest = mongodbatlas.Team(\"test\",\n    org_id=\"\u003cORGANIZATION-ID\u003e\",\n    name=\"myNewTeam\",\n    usernames=[\n        \"user1\",\n        \"user2\",\n        \"user3\",\n    ])\ntest2 = mongodbatlas.get_team_output(org_id=test.org_id,\n    name=test.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new Mongodbatlas.Team(\"test\", new()\n    {\n        OrgId = \"\u003cORGANIZATION-ID\u003e\",\n        Name = \"myNewTeam\",\n        Usernames = new[]\n        {\n            \"user1\",\n            \"user2\",\n            \"user3\",\n        },\n    });\n\n    var test2 = Mongodbatlas.GetTeam.Invoke(new()\n    {\n        OrgId = test.OrgId,\n        Name = test.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := mongodbatlas.NewTeam(ctx, \"test\", \u0026mongodbatlas.TeamArgs{\n\t\t\tOrgId: pulumi.String(\"\u003cORGANIZATION-ID\u003e\"),\n\t\t\tName:  pulumi.String(\"myNewTeam\"),\n\t\t\tUsernames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"user1\"),\n\t\t\t\tpulumi.String(\"user2\"),\n\t\t\t\tpulumi.String(\"user3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupTeamOutput(ctx, mongodbatlas.GetTeamOutputArgs{\n\t\t\tOrgId: test.OrgId,\n\t\t\tName:  test.Name,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.Team;\nimport com.pulumi.mongodbatlas.TeamArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetTeamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new Team(\"test\", TeamArgs.builder()\n            .orgId(\"\u003cORGANIZATION-ID\u003e\")\n            .name(\"myNewTeam\")\n            .usernames(            \n                \"user1\",\n                \"user2\",\n                \"user3\")\n            .build());\n\n        final var test2 = MongodbatlasFunctions.getTeam(GetTeamArgs.builder()\n            .orgId(test.orgId())\n            .name(test.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: mongodbatlas:Team\n    properties:\n      orgId: \u003cORGANIZATION-ID\u003e\n      name: myNewTeam\n      usernames:\n        - user1\n        - user2\n        - user3\nvariables:\n  test2:\n    fn::invoke:\n      function: mongodbatlas:getTeam\n      arguments:\n        orgId: ${test.orgId}\n        name: ${test.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTeam.\n","properties":{"name":{"type":"string","description":"The team name.\n\n\u003e **IMPORTANT:** Either \u003cspan pulumi-lang-nodejs=\"`teamId`\" pulumi-lang-dotnet=\"`TeamId`\" pulumi-lang-go=\"`teamId`\" pulumi-lang-python=\"`team_id`\" pulumi-lang-yaml=\"`teamId`\" pulumi-lang-java=\"`teamId`\"\u003e`team_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e must be configured.\n"},"orgId":{"type":"string","description":"The unique identifier for the organization you want to associate the team with.\n"},"teamId":{"type":"string","description":"The unique identifier for the team.\n"}},"type":"object","required":["orgId"]},"outputs":{"description":"A collection of values returned by getTeam.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the team you want to create.\n","type":"string"},"orgId":{"type":"string"},"teamId":{"description":"The unique identifier for the team.\n","type":"string"},"usernames":{"deprecationMessage":"This parameter is deprecated and will be removed in the next major release. Please transition to `data.mongodbatlas_team.users`. For more details, see https://registry.terraform.io/providers/mongodb/mongodbatlas/latest/docs/guides/atlas-user-management.","description":"**(DEPRECATED)** The users who are part of the team. This attribute is deprecated and will be removed in the next major release. Please transition to `data.mongodbatlas_team.users`. For more details, see Migration Guide: Team Usernames Attribute to Cloud User Team Assignment.\n","items":{"type":"string"},"type":"array"},"users":{"description":"Returns a list of all pending and active MongoDB Cloud users associated with the specified team.\n","items":{"$ref":"#/types/mongodbatlas:index/getTeamUser:getTeamUser"},"type":"array"}},"required":["name","orgId","teamId","usernames","users","id"],"type":"object"}},"mongodbatlas:index/getTeamProjectAssignment:getTeamProjectAssignment":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-dotnet=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-go=\"`TeamProjectAssignment`\" pulumi-lang-python=\"`TeamProjectAssignment`\" pulumi-lang-yaml=\"`mongodbatlas.TeamProjectAssignment`\" pulumi-lang-java=\"`mongodbatlas.TeamProjectAssignment`\"\u003e`mongodbatlas.TeamProjectAssignment`\u003c/span\u003e provides a Team Project Assignment data source. The data source lets you retrieve a team assigned to a project.\n\n## Example Usage\n\n### S\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst thisTeamProjectAssignment = new mongodbatlas.TeamProjectAssignment(\"this\", {\n    projectId: projectId,\n    teamId: teamId,\n    roleNames: [\n        \"GROUP_OWNER\",\n        \"GROUP_DATA_ACCESS_ADMIN\",\n    ],\n});\nconst _this = mongodbatlas.getTeamProjectAssignmentOutput({\n    projectId: thisTeamProjectAssignment.projectId,\n    teamId: thisTeamProjectAssignment.teamId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nthis_team_project_assignment = mongodbatlas.TeamProjectAssignment(\"this\",\n    project_id=project_id,\n    team_id=team_id,\n    role_names=[\n        \"GROUP_OWNER\",\n        \"GROUP_DATA_ACCESS_ADMIN\",\n    ])\nthis = mongodbatlas.get_team_project_assignment_output(project_id=this_team_project_assignment.project_id,\n    team_id=this_team_project_assignment.team_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var thisTeamProjectAssignment = new Mongodbatlas.TeamProjectAssignment(\"this\", new()\n    {\n        ProjectId = projectId,\n        TeamId = teamId,\n        RoleNames = new[]\n        {\n            \"GROUP_OWNER\",\n            \"GROUP_DATA_ACCESS_ADMIN\",\n        },\n    });\n\n    var @this = Mongodbatlas.GetTeamProjectAssignment.Invoke(new()\n    {\n        ProjectId = thisTeamProjectAssignment.ProjectId,\n        TeamId = thisTeamProjectAssignment.TeamId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tthisTeamProjectAssignment, err := mongodbatlas.NewTeamProjectAssignment(ctx, \"this\", \u0026mongodbatlas.TeamProjectAssignmentArgs{\n\t\t\tProjectId: pulumi.Any(projectId),\n\t\t\tTeamId:    pulumi.Any(teamId),\n\t\t\tRoleNames: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GROUP_OWNER\"),\n\t\t\t\tpulumi.String(\"GROUP_DATA_ACCESS_ADMIN\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupTeamProjectAssignmentOutput(ctx, mongodbatlas.GetTeamProjectAssignmentOutputArgs{\n\t\t\tProjectId: thisTeamProjectAssignment.ProjectId,\n\t\t\tTeamId:    thisTeamProjectAssignment.TeamId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.TeamProjectAssignment;\nimport com.pulumi.mongodbatlas.TeamProjectAssignmentArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetTeamProjectAssignmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var thisTeamProjectAssignment = new TeamProjectAssignment(\"thisTeamProjectAssignment\", TeamProjectAssignmentArgs.builder()\n            .projectId(projectId)\n            .teamId(teamId)\n            .roleNames(            \n                \"GROUP_OWNER\",\n                \"GROUP_DATA_ACCESS_ADMIN\")\n            .build());\n\n        final var this = MongodbatlasFunctions.getTeamProjectAssignment(GetTeamProjectAssignmentArgs.builder()\n            .projectId(thisTeamProjectAssignment.projectId())\n            .teamId(thisTeamProjectAssignment.teamId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  thisTeamProjectAssignment:\n    type: mongodbatlas:TeamProjectAssignment\n    name: this\n    properties:\n      projectId: ${projectId}\n      teamId: ${teamId}\n      roleNames:\n        - GROUP_OWNER\n        - GROUP_DATA_ACCESS_ADMIN\nvariables:\n  this:\n    fn::invoke:\n      function: mongodbatlas:getTeamProjectAssignment\n      arguments:\n        projectId: ${thisTeamProjectAssignment.projectId}\n        teamId: ${thisTeamProjectAssignment.teamId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getTeamProjectAssignment.\n","properties":{"projectId":{"type":"string","description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n"},"teamId":{"type":"string"}},"type":"object","required":["projectId","teamId"]},"outputs":{"description":"A collection of values returned by getTeamProjectAssignment.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-listprojects) endpoint to retrieve all projects to which the authenticated user has access.\n","type":"string"},"roleNames":{"items":{"type":"string"},"type":"array"},"teamId":{"type":"string"}},"required":["projectId","roleNames","teamId","id"],"type":"object"}},"mongodbatlas:index/getThirdPartyIntegration:getThirdPartyIntegration":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.ThirdPartyIntegration`\" pulumi-lang-dotnet=\"`mongodbatlas.ThirdPartyIntegration`\" pulumi-lang-go=\"`ThirdPartyIntegration`\" pulumi-lang-python=\"`ThirdPartyIntegration`\" pulumi-lang-yaml=\"`mongodbatlas.ThirdPartyIntegration`\" pulumi-lang-java=\"`mongodbatlas.ThirdPartyIntegration`\"\u003e`mongodbatlas.ThirdPartyIntegration`\u003c/span\u003e describes a Third-Party Integration Settings for the given type.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testDatadog = new mongodbatlas.ThirdPartyIntegration(\"test_datadog\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    type: \"DATADOG\",\n    apiKey: \"\u003cAPI-KEY\u003e\",\n    region: \"\u003cREGION\u003e\",\n});\nconst test = mongodbatlas.getThirdPartyIntegrationOutput({\n    projectId: testDatadog.projectId,\n    type: \"DATADOG\",\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_datadog = mongodbatlas.ThirdPartyIntegration(\"test_datadog\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    type=\"DATADOG\",\n    api_key=\"\u003cAPI-KEY\u003e\",\n    region=\"\u003cREGION\u003e\")\ntest = mongodbatlas.get_third_party_integration_output(project_id=test_datadog.project_id,\n    type=\"DATADOG\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testDatadog = new Mongodbatlas.ThirdPartyIntegration(\"test_datadog\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Type = \"DATADOG\",\n        ApiKey = \"\u003cAPI-KEY\u003e\",\n        Region = \"\u003cREGION\u003e\",\n    });\n\n    var test = Mongodbatlas.GetThirdPartyIntegration.Invoke(new()\n    {\n        ProjectId = testDatadog.ProjectId,\n        Type = \"DATADOG\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestDatadog, err := mongodbatlas.NewThirdPartyIntegration(ctx, \"test_datadog\", \u0026mongodbatlas.ThirdPartyIntegrationArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tType:      pulumi.String(\"DATADOG\"),\n\t\t\tApiKey:    pulumi.String(\"\u003cAPI-KEY\u003e\"),\n\t\t\tRegion:    pulumi.String(\"\u003cREGION\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupThirdPartyIntegrationOutput(ctx, mongodbatlas.GetThirdPartyIntegrationOutputArgs{\n\t\t\tProjectId: testDatadog.ProjectId,\n\t\t\tType:      pulumi.String(\"DATADOG\"),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ThirdPartyIntegration;\nimport com.pulumi.mongodbatlas.ThirdPartyIntegrationArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetThirdPartyIntegrationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testDatadog = new ThirdPartyIntegration(\"testDatadog\", ThirdPartyIntegrationArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .type(\"DATADOG\")\n            .apiKey(\"\u003cAPI-KEY\u003e\")\n            .region(\"\u003cREGION\u003e\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getThirdPartyIntegration(GetThirdPartyIntegrationArgs.builder()\n            .projectId(testDatadog.projectId())\n            .type(\"DATADOG\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testDatadog:\n    type: mongodbatlas:ThirdPartyIntegration\n    name: test_datadog\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      type: DATADOG\n      apiKey: \u003cAPI-KEY\u003e\n      region: \u003cREGION\u003e\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getThirdPartyIntegration\n      arguments:\n        projectId: ${testDatadog.projectId}\n        type: DATADOG\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getThirdPartyIntegration.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project to get all Third-Party service integrations\n"},"type":{"type":"string","description":"Third-Party service integration type\n* PAGER_DUTY\n* DATADOG\n* OPS_GENIE\n* VICTOR_OPS\n* WEBHOOK\n* MICROSOFT_TEAMS\n* PROMETHEUS\n"}},"type":"object","required":["projectId","type"]},"outputs":{"description":"A collection of values returned by getThirdPartyIntegration.\n","properties":{"accountId":{"type":"string"},"apiKey":{"description":"Your API Key.\n","secret":true,"type":"string"},"channelName":{"type":"string"},"enabled":{"description":"Whether your cluster has Prometheus enabled.\n","type":"boolean"},"id":{"description":"Unique identifier of the integration.\n","type":"string"},"microsoftTeamsWebhookUrl":{"description":"Your Microsoft Teams incoming webhook URL.\n* `PROMETHEUS`\n","secret":true,"type":"string"},"projectId":{"type":"string"},"region":{"description":"Two-letter code that indicates which API URL to use. See the \u003cspan pulumi-lang-nodejs=\"`region`\" pulumi-lang-dotnet=\"`Region`\" pulumi-lang-go=\"`region`\" pulumi-lang-python=\"`region`\" pulumi-lang-yaml=\"`region`\" pulumi-lang-java=\"`region`\"\u003e`region`\u003c/span\u003e response field of [MongoDB API Third-Party Service Integration documentation](https://www.mongodb.com/docs/api/doc/atlas-admin-api-v2/operation/operation-getthirdpartyintegration) for more details. Opsgenie will use US by default.\n* `VICTOR_OPS`\n","type":"string"},"routingKey":{"description":"An optional field for your Routing Key.\n* `WEBHOOK`\n","secret":true,"type":"string"},"secret":{"description":"An optional field for your webhook secret.\n* `MICROSOFT_TEAMS`\n","secret":true,"type":"string"},"sendCollectionLatencyMetrics":{"description":"Toggle sending collection latency metrics that includes database names and collection names and latency metrics on reads, writes, commands, and transactions.\n","type":"boolean"},"sendDatabaseMetrics":{"description":"Toggle sending database metrics that includes database names and metrics on the number of collections, storage size, and index size.\n","type":"boolean"},"sendQueryStatsMetrics":{"description":"Toggle sending query shape metrics that includes query hash and metrics on latency, execution frequency, documents returned, and timestamps.\n* `OPS_GENIE`\n","type":"boolean"},"sendUserProvidedResourceTags":{"description":"Toggle sending user provided group and cluster resource tags with the Datadog metrics.\n","type":"boolean"},"serviceDiscovery":{"description":"Indicates which service discovery method is used, either file or http.\n","secret":true,"type":"string"},"serviceKey":{"description":"Your Service Key.\n* `DATADOG`\n","secret":true,"type":"string"},"teamName":{"type":"string"},"type":{"type":"string"},"url":{"description":"Your webhook URL.\n","type":"string"},"userName":{"description":"Your Prometheus username.\n","secret":true,"type":"string"}},"required":["accountId","apiKey","channelName","enabled","id","microsoftTeamsWebhookUrl","projectId","region","routingKey","secret","sendCollectionLatencyMetrics","sendDatabaseMetrics","sendQueryStatsMetrics","sendUserProvidedResourceTags","serviceDiscovery","serviceKey","teamName","type","url","userName"],"type":"object"}},"mongodbatlas:index/getThirdPartyIntegrations:getThirdPartyIntegrations":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.getThirdPartyIntegrations`\" pulumi-lang-dotnet=\"`mongodbatlas.getThirdPartyIntegrations`\" pulumi-lang-go=\"`getThirdPartyIntegrations`\" pulumi-lang-python=\"`get_third_party_integrations`\" pulumi-lang-yaml=\"`mongodbatlas.getThirdPartyIntegrations`\" pulumi-lang-java=\"`mongodbatlas.getThirdPartyIntegrations`\"\u003e`mongodbatlas.getThirdPartyIntegrations`\u003c/span\u003e describes all Third-Party Integration Settings. This represents two Third-Party services `PAGER_DUTY` and `DATADOG`\napplied across the project. \n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find `groupId` in the official documentation.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testPagerDuty = new mongodbatlas.ThirdPartyIntegration(\"test_pager_duty\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    type: \"PAGER_DUTY\",\n    serviceKey: \"\u003cPAGER-DUTY-SERVICE-KEY\u003e\",\n});\nconst testDatadog = new mongodbatlas.ThirdPartyIntegration(\"test_datadog\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    type: \"DATADOG\",\n    apiKey: \"\u003cAPI-KEY\u003e\",\n    region: \"\u003cREGION\u003e\",\n});\nconst test = mongodbatlas.getThirdPartyIntegrationsOutput({\n    projectId: testPagerDuty.projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_pager_duty = mongodbatlas.ThirdPartyIntegration(\"test_pager_duty\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    type=\"PAGER_DUTY\",\n    service_key=\"\u003cPAGER-DUTY-SERVICE-KEY\u003e\")\ntest_datadog = mongodbatlas.ThirdPartyIntegration(\"test_datadog\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    type=\"DATADOG\",\n    api_key=\"\u003cAPI-KEY\u003e\",\n    region=\"\u003cREGION\u003e\")\ntest = mongodbatlas.get_third_party_integrations_output(project_id=test_pager_duty.project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testPagerDuty = new Mongodbatlas.ThirdPartyIntegration(\"test_pager_duty\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Type = \"PAGER_DUTY\",\n        ServiceKey = \"\u003cPAGER-DUTY-SERVICE-KEY\u003e\",\n    });\n\n    var testDatadog = new Mongodbatlas.ThirdPartyIntegration(\"test_datadog\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Type = \"DATADOG\",\n        ApiKey = \"\u003cAPI-KEY\u003e\",\n        Region = \"\u003cREGION\u003e\",\n    });\n\n    var test = Mongodbatlas.GetThirdPartyIntegrations.Invoke(new()\n    {\n        ProjectId = testPagerDuty.ProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestPagerDuty, err := mongodbatlas.NewThirdPartyIntegration(ctx, \"test_pager_duty\", \u0026mongodbatlas.ThirdPartyIntegrationArgs{\n\t\t\tProjectId:  pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tType:       pulumi.String(\"PAGER_DUTY\"),\n\t\t\tServiceKey: pulumi.String(\"\u003cPAGER-DUTY-SERVICE-KEY\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mongodbatlas.NewThirdPartyIntegration(ctx, \"test_datadog\", \u0026mongodbatlas.ThirdPartyIntegrationArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tType:      pulumi.String(\"DATADOG\"),\n\t\t\tApiKey:    pulumi.String(\"\u003cAPI-KEY\u003e\"),\n\t\t\tRegion:    pulumi.String(\"\u003cREGION\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupThirdPartyIntegrationsOutput(ctx, mongodbatlas.GetThirdPartyIntegrationsOutputArgs{\n\t\t\tProjectId: testPagerDuty.ProjectId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.ThirdPartyIntegration;\nimport com.pulumi.mongodbatlas.ThirdPartyIntegrationArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetThirdPartyIntegrationsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testPagerDuty = new ThirdPartyIntegration(\"testPagerDuty\", ThirdPartyIntegrationArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .type(\"PAGER_DUTY\")\n            .serviceKey(\"\u003cPAGER-DUTY-SERVICE-KEY\u003e\")\n            .build());\n\n        var testDatadog = new ThirdPartyIntegration(\"testDatadog\", ThirdPartyIntegrationArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .type(\"DATADOG\")\n            .apiKey(\"\u003cAPI-KEY\u003e\")\n            .region(\"\u003cREGION\u003e\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getThirdPartyIntegrations(GetThirdPartyIntegrationsArgs.builder()\n            .projectId(testPagerDuty.projectId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testPagerDuty:\n    type: mongodbatlas:ThirdPartyIntegration\n    name: test_pager_duty\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      type: PAGER_DUTY\n      serviceKey: \u003cPAGER-DUTY-SERVICE-KEY\u003e\n  testDatadog:\n    type: mongodbatlas:ThirdPartyIntegration\n    name: test_datadog\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      type: DATADOG\n      apiKey: \u003cAPI-KEY\u003e\n      region: \u003cREGION\u003e\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getThirdPartyIntegrations\n      arguments:\n        projectId: ${testPagerDuty.projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getThirdPartyIntegrations.\n","properties":{"projectId":{"type":"string","description":"The unique ID for the project to get all Third-Party service integrations\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getThirdPartyIntegrations.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"ID of the Atlas project the Third-Party Service Integration belongs to.\n","type":"string"},"results":{"description":"A list where each represents a Third-Party service integration.\n","items":{"$ref":"#/types/mongodbatlas:index/getThirdPartyIntegrationsResult:getThirdPartyIntegrationsResult"},"type":"array"}},"required":["projectId","results","id"],"type":"object"}},"mongodbatlas:index/getX509AuthenticationDatabaseUser:getX509AuthenticationDatabaseUser":{"description":"\u003cspan pulumi-lang-nodejs=\"`mongodbatlas.X509AuthenticationDatabaseUser`\" pulumi-lang-dotnet=\"`mongodbatlas.X509AuthenticationDatabaseUser`\" pulumi-lang-go=\"`X509AuthenticationDatabaseUser`\" pulumi-lang-python=\"`X509AuthenticationDatabaseUser`\" pulumi-lang-yaml=\"`mongodbatlas.X509AuthenticationDatabaseUser`\" pulumi-lang-java=\"`mongodbatlas.X509AuthenticationDatabaseUser`\"\u003e`mongodbatlas.X509AuthenticationDatabaseUser`\u003c/span\u003e describes a X509 Authentication Database User. This represents a X509 Authentication Database User.\n\n\u003e **NOTE:** Groups and projects are synonymous terms. You may find\u003cspan pulumi-lang-nodejs=\" groupId \" pulumi-lang-dotnet=\" GroupId \" pulumi-lang-go=\" groupId \" pulumi-lang-python=\" group_id \" pulumi-lang-yaml=\" groupId \" pulumi-lang-java=\" groupId \"\u003e group_id \u003c/span\u003ein the official documentation.\n\n## Example Usage\n\n### S\n\n### Example Usage: Generate an Atlas-managed X.509 certificate for a MongoDB user\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst user = new mongodbatlas.DatabaseUser(\"user\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    username: \"myUsername\",\n    x509Type: \"MANAGED\",\n    databaseName: \"$external\",\n    roles: [{\n        roleName: \"atlasAdmin\",\n        databaseName: \"admin\",\n    }],\n    labels: [{\n        key: \"My Key\",\n        value: \"My Value\",\n    }],\n});\nconst testX509AuthenticationDatabaseUser = new mongodbatlas.X509AuthenticationDatabaseUser(\"test\", {\n    projectId: user.projectId,\n    username: user.username,\n    monthsUntilExpiration: 2,\n});\nconst test = pulumi.all([testX509AuthenticationDatabaseUser.projectId, testX509AuthenticationDatabaseUser.username]).apply(([projectId, username]) =\u003e mongodbatlas.getX509AuthenticationDatabaseUserOutput({\n    projectId: projectId,\n    username: username,\n}));\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\nuser = mongodbatlas.DatabaseUser(\"user\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    username=\"myUsername\",\n    x509_type=\"MANAGED\",\n    database_name=\"$external\",\n    roles=[{\n        \"role_name\": \"atlasAdmin\",\n        \"database_name\": \"admin\",\n    }],\n    labels=[{\n        \"key\": \"My Key\",\n        \"value\": \"My Value\",\n    }])\ntest_x509_authentication_database_user = mongodbatlas.X509AuthenticationDatabaseUser(\"test\",\n    project_id=user.project_id,\n    username=user.username,\n    months_until_expiration=2)\ntest = pulumi.Output.all(\n    project_id=test_x509_authentication_database_user.project_id,\n    username=test_x509_authentication_database_user.username\n).apply(lambda resolved_outputs: mongodbatlas.get_x509_authentication_database_user_output(project_id=resolved_outputs['project_id'],\n    username=resolved_outputs['username']))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user = new Mongodbatlas.DatabaseUser(\"user\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        Username = \"myUsername\",\n        X509Type = \"MANAGED\",\n        DatabaseName = \"$external\",\n        Roles = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserRoleArgs\n            {\n                RoleName = \"atlasAdmin\",\n                DatabaseName = \"admin\",\n            },\n        },\n        Labels = new[]\n        {\n            new Mongodbatlas.Inputs.DatabaseUserLabelArgs\n            {\n                Key = \"My Key\",\n                Value = \"My Value\",\n            },\n        },\n    });\n\n    var testX509AuthenticationDatabaseUser = new Mongodbatlas.X509AuthenticationDatabaseUser(\"test\", new()\n    {\n        ProjectId = user.ProjectId,\n        Username = user.Username,\n        MonthsUntilExpiration = 2,\n    });\n\n    var test = Mongodbatlas.GetX509AuthenticationDatabaseUser.Invoke(new()\n    {\n        ProjectId = testX509AuthenticationDatabaseUser.ProjectId,\n        Username = testX509AuthenticationDatabaseUser.Username,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser, err := mongodbatlas.NewDatabaseUser(ctx, \"user\", \u0026mongodbatlas.DatabaseUserArgs{\n\t\t\tProjectId:    pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tUsername:     pulumi.String(\"myUsername\"),\n\t\t\tX509Type:     pulumi.String(\"MANAGED\"),\n\t\t\tDatabaseName: \"$external\",\n\t\t\tRoles: mongodbatlas.DatabaseUserRoleArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserRoleArgs{\n\t\t\t\t\tRoleName:     pulumi.String(\"atlasAdmin\"),\n\t\t\t\t\tDatabaseName: pulumi.String(\"admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLabels: mongodbatlas.DatabaseUserLabelArray{\n\t\t\t\t\u0026mongodbatlas.DatabaseUserLabelArgs{\n\t\t\t\t\tKey:   pulumi.String(\"My Key\"),\n\t\t\t\t\tValue: pulumi.String(\"My Value\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestX509AuthenticationDatabaseUser, err := mongodbatlas.NewX509AuthenticationDatabaseUser(ctx, \"test\", \u0026mongodbatlas.X509AuthenticationDatabaseUserArgs{\n\t\t\tProjectId:             user.ProjectId,\n\t\t\tUsername:              user.Username,\n\t\t\tMonthsUntilExpiration: pulumi.Int(2),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = pulumi.All(testX509AuthenticationDatabaseUser.ProjectId, testX509AuthenticationDatabaseUser.Username).ApplyT(func(_args []interface{}) (mongodbatlas.GetX509AuthenticationDatabaseUserResult, error) {\n\t\t\tprojectId := _args[0].(string)\n\t\t\tusername := _args[1].(*string)\n\t\t\treturn mongodbatlas.GetX509AuthenticationDatabaseUserResult(interface{}(mongodbatlas.LookupX509AuthenticationDatabaseUser(ctx, \u0026mongodbatlas.LookupX509AuthenticationDatabaseUserArgs{\n\t\t\t\tProjectId: projectId,\n\t\t\t\tUsername:  pulumi.StringRef(pulumi.StringRef(username)),\n\t\t\t}, nil))), nil\n\t\t}).(mongodbatlas.GetX509AuthenticationDatabaseUserResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.DatabaseUser;\nimport com.pulumi.mongodbatlas.DatabaseUserArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserRoleArgs;\nimport com.pulumi.mongodbatlas.inputs.DatabaseUserLabelArgs;\nimport com.pulumi.mongodbatlas.X509AuthenticationDatabaseUser;\nimport com.pulumi.mongodbatlas.X509AuthenticationDatabaseUserArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetX509AuthenticationDatabaseUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var user = new DatabaseUser(\"user\", DatabaseUserArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .username(\"myUsername\")\n            .x509Type(\"MANAGED\")\n            .databaseName(\"$external\")\n            .roles(DatabaseUserRoleArgs.builder()\n                .roleName(\"atlasAdmin\")\n                .databaseName(\"admin\")\n                .build())\n            .labels(DatabaseUserLabelArgs.builder()\n                .key(\"My Key\")\n                .value(\"My Value\")\n                .build())\n            .build());\n\n        var testX509AuthenticationDatabaseUser = new X509AuthenticationDatabaseUser(\"testX509AuthenticationDatabaseUser\", X509AuthenticationDatabaseUserArgs.builder()\n            .projectId(user.projectId())\n            .username(user.username())\n            .monthsUntilExpiration(2)\n            .build());\n\n        final var test = Output.tuple(testX509AuthenticationDatabaseUser.projectId(), testX509AuthenticationDatabaseUser.username()).applyValue(values -\u003e {\n            var projectId = values.t1;\n            var username = values.t2;\n            return MongodbatlasFunctions.getX509AuthenticationDatabaseUser(GetX509AuthenticationDatabaseUserArgs.builder()\n                .projectId(projectId)\n                .username(username)\n                .build());\n        });\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: mongodbatlas:DatabaseUser\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      username: myUsername\n      x509Type: MANAGED\n      databaseName: $external\n      roles:\n        - roleName: atlasAdmin\n          databaseName: admin\n      labels:\n        - key: My Key\n          value: My Value\n  testX509AuthenticationDatabaseUser:\n    type: mongodbatlas:X509AuthenticationDatabaseUser\n    name: test\n    properties:\n      projectId: ${user.projectId}\n      username: ${user.username}\n      monthsUntilExpiration: 2\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getX509AuthenticationDatabaseUser\n      arguments:\n        projectId: ${testX509AuthenticationDatabaseUser.projectId}\n        username: ${testX509AuthenticationDatabaseUser.username}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example Usage: Save a customer-managed X.509 configuration for an Atlas project\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as mongodbatlas from \"@pulumi/mongodbatlas\";\n\nconst testX509AuthenticationDatabaseUser = new mongodbatlas.X509AuthenticationDatabaseUser(\"test\", {\n    projectId: \"\u003cPROJECT-ID\u003e\",\n    customerX509Cas: `-----BEGIN CERTIFICATE-----\nMIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\nc3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\nSIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\nMDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\nVGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\nBAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\nc3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\niQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\ncURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\nFh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\niul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n-----END CERTIFICATE-----\\\\\"\n`,\n});\nconst test = mongodbatlas.getX509AuthenticationDatabaseUserOutput({\n    projectId: testX509AuthenticationDatabaseUser.projectId,\n});\n```\n```python\nimport pulumi\nimport pulumi_mongodbatlas as mongodbatlas\n\ntest_x509_authentication_database_user = mongodbatlas.X509AuthenticationDatabaseUser(\"test\",\n    project_id=\"\u003cPROJECT-ID\u003e\",\n    customer_x509_cas=\"\"\"-----BEGIN CERTIFICATE-----\nMIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\nc3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\nSIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\nMDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\nVGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\nBAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\nc3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\niQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\ncURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\nFh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\niul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n-----END CERTIFICATE-----\\\"\n\"\"\")\ntest = mongodbatlas.get_x509_authentication_database_user_output(project_id=test_x509_authentication_database_user.project_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Mongodbatlas = Pulumi.Mongodbatlas;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var testX509AuthenticationDatabaseUser = new Mongodbatlas.X509AuthenticationDatabaseUser(\"test\", new()\n    {\n        ProjectId = \"\u003cPROJECT-ID\u003e\",\n        CustomerX509Cas = @\"-----BEGIN CERTIFICATE-----\nMIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\nc3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\nSIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\nMDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\nVGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\nBAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\nc3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\niQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\ncURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\nFh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\niul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n-----END CERTIFICATE-----\\\"\"\n\",\n    });\n\n    var test = Mongodbatlas.GetX509AuthenticationDatabaseUser.Invoke(new()\n    {\n        ProjectId = testX509AuthenticationDatabaseUser.ProjectId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestX509AuthenticationDatabaseUser, err := mongodbatlas.NewX509AuthenticationDatabaseUser(ctx, \"test\", \u0026mongodbatlas.X509AuthenticationDatabaseUserArgs{\n\t\t\tProjectId: pulumi.String(\"\u003cPROJECT-ID\u003e\"),\n\t\t\tCustomerX509Cas: pulumi.String(`-----BEGIN CERTIFICATE-----\nMIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\nc3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\nSIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\nMDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\nVGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\nBAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\nc3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\niQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\ncURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\nFh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\niul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n-----END CERTIFICATE-----\\\"\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = mongodbatlas.LookupX509AuthenticationDatabaseUserOutput(ctx, mongodbatlas.GetX509AuthenticationDatabaseUserOutputArgs{\n\t\t\tProjectId: testX509AuthenticationDatabaseUser.ProjectId,\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.mongodbatlas.X509AuthenticationDatabaseUser;\nimport com.pulumi.mongodbatlas.X509AuthenticationDatabaseUserArgs;\nimport com.pulumi.mongodbatlas.MongodbatlasFunctions;\nimport com.pulumi.mongodbatlas.inputs.GetX509AuthenticationDatabaseUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var testX509AuthenticationDatabaseUser = new X509AuthenticationDatabaseUser(\"testX509AuthenticationDatabaseUser\", X509AuthenticationDatabaseUserArgs.builder()\n            .projectId(\"\u003cPROJECT-ID\u003e\")\n            .customerX509Cas(\"\"\"\n-----BEGIN CERTIFICATE-----\nMIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\nVVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\nc3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\nSIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\nMDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\nVGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\nBAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\nc3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\niQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\ncURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\nFh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\nSIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\niul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n-----END CERTIFICATE-----\\\"\n            \"\"\")\n            .build());\n\n        final var test = MongodbatlasFunctions.getX509AuthenticationDatabaseUser(GetX509AuthenticationDatabaseUserArgs.builder()\n            .projectId(testX509AuthenticationDatabaseUser.projectId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  testX509AuthenticationDatabaseUser:\n    type: mongodbatlas:X509AuthenticationDatabaseUser\n    name: test\n    properties:\n      projectId: \u003cPROJECT-ID\u003e\n      customerX509Cas: |\n        -----BEGIN CERTIFICATE-----\n        MIICmTCCAgICCQDZnHzklxsT9TANBgkqhkiG9w0BAQsFADCBkDELMAkGA1UEBhMC\n        VVMxDjAMBgNVBAgMBVRleGFzMQ8wDQYDVQQHDAZBdXN0aW4xETAPBgNVBAoMCHRl\n        c3QuY29tMQ0wCwYDVQQLDARUZXN0MREwDwYDVQQDDAh0ZXN0LmNvbTErMCkGCSqG\n        SIb3DQEJARYcbWVsaXNzYS5wbHVua2V0dEBtb25nb2RiLmNvbTAeFw0yMDAyMDQy\n        MDQ2MDFaFw0yMTAyMDMyMDQ2MDFaMIGQMQswCQYDVQQGEwJVUzEOMAwGA1UECAwF\n        VGV4YXMxDzANBgNVBAcMBkF1c3RpbjERMA8GA1UECgwIdGVzdC5jb20xDTALBgNV\n        BAsMBFRlc3QxETAPBgNVBAMMCHRlc3QuY29tMSswKQYJKoZIhvcNAQkBFhxtZWxp\n        c3NhLnBsdW5rZXR0QG1vbmdvZGIuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB\n        iQKBgQCf1LRqr1zftzdYx2Aj9G76tb0noMPtj6faGLlPji1+m6Rn7RWD9L0ntWAr\n        cURxvypa9jZ9MXFzDtLevvd3tHEmfrUT3ukNDX6+Jtc4kWm+Dh2A70Pd+deKZ2/O\n        Fh8audEKAESGXnTbeJCeQa1XKlIkjqQHBNwES5h1b9vJtFoLJwIDAQABMA0GCSqG\n        SIb3DQEBCwUAA4GBADMUncjEPV/MiZUcVNGmktP6BPmEqMXQWUDpdGW2+Tg2JtUA\n        7MMILtepBkFzLO+GlpZxeAlXO0wxiNgEmCRONgh4+t2w3e7a8GFijYQ99FHrAC5A\n        iul59bdl18gVqXia1Yeq/iK7Ohfy/Jwd7Hsm530elwkM/ZEkYDjBlZSXYdyz\n        -----END CERTIFICATE-----\\\"\nvariables:\n  test:\n    fn::invoke:\n      function: mongodbatlas:getX509AuthenticationDatabaseUser\n      arguments:\n        projectId: ${testX509AuthenticationDatabaseUser.projectId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getX509AuthenticationDatabaseUser.\n","properties":{"projectId":{"type":"string","description":"Identifier for the Atlas project associated with the X.509 configuration.\n","willReplaceOnChanges":true},"username":{"type":"string","description":"Username of the database user to create a certificate for.\n","willReplaceOnChanges":true}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getX509AuthenticationDatabaseUser.\n","properties":{"certificates":{"description":"Array of objects where each details one unexpired database user certificate.\n","items":{"$ref":"#/types/mongodbatlas:index/getX509AuthenticationDatabaseUserCertificate:getX509AuthenticationDatabaseUserCertificate"},"type":"array"},"customerX509Cas":{"secret":true,"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"username":{"type":"string"}},"required":["certificates","customerX509Cas","projectId","id"],"type":"object"}},"pulumi:providers:mongodbatlas/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"type":"ref","$ref":"#/provider"}},"type":"pulumi:providers:mongodbatlas/terraformConfig","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}}}